WNetOpenEnum
The WNetOpenEnum
function starts an enumeration of network resources or existing connections.
DWORD WNetOpenEnum(
DWORD dwScope, |
// scope of
enumeration |
DWORD dwType, |
// resource types
to list |
DWORD dwUsage, |
// resource usage
to list |
LPNETRESOURCE lpNetResource, |
// pointer to
resource structure |
LPHANDLE lphEnum |
// pointer to
enumeration handle buffer |
); |
|
Parameters
dwScope
Specifies the
scope of the enumeration. This parameter can be one of the following values:
Value |
Meaning |
RESOURCE_CONNECTED |
All
currently connected resources (the dwUsage parameter is ignored). |
RESOURCE_GLOBALNET |
All
resources on the network. |
RESOURCE_REMEMBERED |
All
remembered (persistent) connections (dwUsage is ignored). |
dwType
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 network
provider cannot distinguish between print and disk resources, it may enumerate
all resources.
dwUsage
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 |
This
parameter is ignored if the dwScope parameter is not RESOURCE_GLOBALNET.
lpNetResource
Points to a NETRESOURCE
If this parameter is NULL, the root of the network is assumed. Windows
organizes a network as a hierarchy; the root is the topmost container in the
network.
If this parameter is not NULL, it must point to a NETRESOURCE
structure. This structure can be filled in by the application or be returned by
a call to the WNetEnumResource
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 WNetEnumResource to enumerate
resources. If one of the resources in the NETRESOURCE array returned by
the WNetEnumResource function is a container resource, WNetOpenEnum
can be used to open the resource for further enumeration.
If the dwScope parameter is not RESOURCE_GLOBALNET, this
parameter must be NULL.
lphEnum
Points to a
variable filled with an enumeration handle that can be used in a subsequent
call to WNetEnumResource
Return Values
If the
function succeeds, the return value is NO_ERROR.
If the
function fails, the return value is an error code. To get extended error information,
call GetLastError
Value |
Meaning |
ERROR_NOT_CONTAINER |
The lpNetResource
parameter does not point to a container. |
ERROR_INVALID_PARAMETER |
Either the dwScope
or dwType parameter is invalid, or there is a bad combination of
parameters. |
ERROR_NO_NETWORK |
No network
is present. |
ERROR_EXTENDED_ERROR |
A
network-specific error occurred. To get a description of the error, use the WNetGetLastError |
The function
returns error codes for compatibility with Windows version 3.1. For
compatibility with Windows NT, the function also sets the error code value
returned by GetLastError
Remarks
The WNetOpenEnum
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 (container, in this case the provider)
MARKETING
(container, in this case the server)
SYS (disk,
first one on any Netware server)
ANOTHERVOLUME (disk)
LASERJET
(print)
See Also