This is a sample program to demonstrate how to enumerate resources on the network, using the WNetOpenEnum() Win32 API function. The program is short, and almost self explanatory, but there are a couple of things worth mentioning.
When using WNetResourceEnum(), you should allocate a buffer to
receive the data, 16K is a typical value used, and then call WNetResourceEnum()
as many times are needed to get all the info. Also notice, that the function only gets resources
one level deep. To go deeper, you have to recursively call WNetOpenEnum() for
each container, passing to it the NETRESOURCE structure you get from WNetResourceEnum()
One more thing: because the sample is written in a recursive way, it could
cause a stack overflow when run on a large network. Without anything further, here's the code:
nrsenum.c
Update: May 12 - 2000: Thanks to Stefan Kuhr for pointing out to me a little bug that would cause a buffer overrun on large networks. It's now corrected. Thanks Stephan!