ID: Q119216
From the MS-DOS prompt, you can enumerate the network connections (drives) by using the following command:
net use
Programmatically, you would call WNetOpenEnum() to start the enumeration of
connected resources and WNetEnumResources() to continue the enumeration.
The following sample code enumerates the network connections:
#include <windows.h>
#include <stdio.h>
void main()
{
DWORD dwResult;
HANDLE hEnum;
DWORD cbBuffer = 16384;
DWORD cEntries = 0xFFFFFFFF;
LPNETRESOURCE lpnrDrv;
DWORD i;
dwResult = WNetOpenEnum( RESOURCE_CONNECTED,
RESOURCETYPE_ANY,
0,
NULL,
&hEnum );
if (dwResult != NO_ERROR)
{
printf( "\nCannot enumerate network drives.\n" );
return;
}
printf( "\nNetwork drives:\n\n" );
do
{
lpnrDrv = (LPNETRESOURCE) GlobalAlloc( GPTR, cbBuffer );
dwResult = WNetEnumResource( hEnum, &cEntries, lpnrDrv, &cbBuffer
);
if (dwResult == NO_ERROR)
{
for( i = 0; i < cEntries; i++ )
{
if( lpnrDrv[i].lpLocalName != NULL )
{
printf( "%s\t%s\n", lpnrDrv[i].lpLocalName,
lpnrDrv[i].lpRemoteName );
}
}
}
else if( dwResult != ERROR_NO_MORE_ITEMS )
{
printf( "Cannot complete network drive enumeration" );
GlobalFree( (HGLOBAL) lpnrDrv );
break;
}
GlobalFree( (HGLOBAL) lpnrDrv );
}
while( dwResult != ERROR_NO_MORE_ITEMS );
WNetCloseEnum(hEnum);
}
Additional query words:
Keywords : kbnetwork kbAPI kbNTOS310 kbNTOS350 kbNTOS351 kbSDKPlatform kbWinOS95 kbWNet kbGrpNet
Last Reviewed: July 31, 1998