DWORD WNetOpenEnum(fdwScope, fdwType, fdwUsage, lpNetResource, lphEnum) | |||||
DWORD fdwScope; | /* scope of enumeration | */ | |||
DWORD fdwType; | /* resource types to list | */ | |||
DWORD fdwUsage; | /* resource usage to list | */ | |||
LPNETRESOURCE lpNetResource; | /* structure specifies container | */ | |||
LPHANDLE lphEnum; | /* pointer to buffer for returned handle | */ |
The WNetOpenEnum function starts an enumeration of network resources or existing connections.
fdwScope
Determines the scope of the enumeration. This parameter can be one of the following values:
Value | Meaning |
RESOURCE_CONNECTED | ||
All currently connected resources (fdwUsage is ignored). | ||
RESOURCE_GLOBALNET | ||
All resources on the network. | ||
RESOURCE_REMEMBERED | ||
All remembered connections (fdwUsage is ignored). |
fdwType
Specifies the resource types to enumerate. This parameter can be a combination of the following values:
Value | Meaning |
RESOURCETYPE_ANY | ||
All resources. (This value cannot be combined with RESOURCETYPE_DISK or RESOURCETYPE_PRINT.) | ||
RESOURCETYPE_DISK | ||
All disk resources. | ||
RESOURCETYPE_PRINT | ||
All print resources. |
If a provider cannot distinguish between print and disk resources, it should enumerate all resources.
fdwUsage
Specifies the resource usage to be enumerated. This parameter can be a combination of the following values:
Value | Meaning |
0 | ||
All resources. | ||
RESOURCEUSAGE_CONNECTABLE | ||
All connectable resources. | ||
RESOURCEUSAGE_CONTAINER | ||
All container resources. |
The fdwUsage parameter is ignored if fdwScope is not RESOURCE_GLOBALNET.
lpNetResource
Specifies the container to enumerate. If lpNetResource is NULL, the logical root of the network is assumed. Windows organizes a network as a hierarchy; the “logical root” is the topmost container in the network. (For an overview of the Windows network functions, see Chapter 16, “Networks.”)
If lpNetResource is not NULL, it must point to a NETRESOURCE structure returned by a call to the WNetEnumResource function that specified a container resource (that is, a call that set the RESOURCEUSAGE_CONTAINER bit in the dwUsage member).
To enumerate all network resources, an application can begin the enumeration by calling WNetOpenEnum with lpNetResource set to NULL and then use the returned handle with the WNetEnumResource function to enumerate resources. If one of the resources in the NETRESOURCE array returned by the WNetEnumResource function is a container resource, the WNetOpenEnum function can be used to open the resource for further enumeration.
If fdwScope is not RESOURCE_GLOBALNET, lpNetResource must be NULL.
lphEnum
Points to variable that is filled in with a handle that can be used in a subsequent call to the WNetEnumResource function.
If the function is successful, the return value is NO_ERROR. Otherwise, it is an error code, which may be one of the following:
Value | Meaning |
ERROR_NOT_CONTAINER | The lpNetResource parameter does not point to a container. |
ERROR_INVALID_PARAMETER | Either fdwScope or fdwType is invalid, or there was a bad combination of parameters. |
ERROR_NO_NETWORK | No network is present. |
ERROR_EXTENDED_ERROR | A network-specific error occurred. Use the WNetGetLastError function to obtain a description of the error. |
This function returns error codes for compatibility with Windows 3.1. For compatibility with Win32, the function also sets the error-code value returned by the GetLastError function.
This function is used to begin enumeration of the resources in a single container. The following examples show the hierarchical structure of a Microsoft LAN Manager network and a Novell Netware network:
LanMan (container, in this case the provider)
ACCOUNTING (container, in this case the domain)
ACCTSPAY (container, in this case the server)
PAYFILES (disk)
LASERJET (print)
Netware
MARKETING (container, in this case the server)
SYS (disk, first one on any Netware server)
ANOTHERVOLUME (disk)
LASERJET (print)
WNetCloseEnum, WNetEnumResource