Pierre Schweitzer <pierre(a)reactos.org> wrote:
+ size = 0x1000; + resources = HeapAlloc(GetProcessHeap(), 0, size); + if (!resources) + { + WNetCloseEnum(connected); + return WN_OUT_OF_MEMORY; + } + + do + { + size = 0x1000; + count = -1;
There is no need to initialize count, you are not verifying it anyway after the API call.
+ + memset(resources, 0, size); + ret = WNetEnumResourceW(connected, &count, resources, &size); + if (ret == WN_SUCCESS || ret == WN_MORE_DATA) + { + iter = resources; + for (; count; count--) + { + WNetCancelConnection2W(iter->lpLocalName, 0, TRUE); + + iter++; + } + } + else + break; + } while (ret != WN_NO_MORE_ENTRIES);
Since you are using an arbitrary size for NETRESOURCEW array it should be possible to avoid dynamic heap allocation by using a fixed size array of NETRESOURCEW structures (say 16), or even a single item. That would simplify the code. -- Dmitry.