IMSAdminBase::EnumKeys

The IMSAdminBase::EnumKeys method enumerates the subkeys of the specified key. A subkey can be enumerated once per call. Subkeys are numbered from 0 to (NumKeys - 1), with NumKeys equal to the number of subkeys below the key.

If dwMDEnumKeyIndex is greater than or equal to the number of subkeys, HRESULT_FROM_WIN32(ERROR_NO_MORE_ITEMS) is returned.

HRESULT EnumKeys(
      METADATA_HANDLE hMDHandle,
      LPCWSTR pszMDPath,
      LPWSTR pszMDName,
      DWORD dwMDEnumKeyIndex
);

Parameters

  • hMDHandle
    Specifies a handle to a metabase key. This can be either METADATA_MASTER_ROOT_HANDLE, or a handle with read permissions returned by the IMSAdminBase::OpenKey method.

  • pszMDPath
    Points to a string that contains the path of the key relative to the path of hMDHandle. For example, if the handle references the /LM key, you could specify the Web services subkey using the path /W3SVC. In this case the subkeys of /LM/W3SVC would be enumerated.

  • pszMDName
    Points to a string buffer that receives the names of the metabase subkeys enumerated. This buffer must be at least METADATA_MAX_NAME_LEN characters long.

  • dwMDEnumKeyIndex
    Specifies the index of the subkey to be retrieved. Set this to 0 before the first call and increment it by 1 on each successive call until HRESULT_FROM_WIN32(ERROR_NO_MORE_ITEMS) is returned.

Return Values

Returns an HRESULT that contains one of the following values:

Value

Description

E_ACCESSDENIED

Access is denied. Either the open handle does not have read or write permission as needed, or the user does not have sufficient permissions to perform the operation.

E_INVALIDARG

The parameter is incorrect.

HRESULT_FROM_WIN32(ERROR_NO_MORE_ITEMS)

There are no more subkeys to enumerate.

HRESULT_FROM_WIN32(ERROR_PATH_NOT_FOUND)

The specified path was not found in the metabase.

S_OK

The method succeeded.

Remarks

The handle, METADATA_MASTER_ROOT_HANDLE, provides no guarantee against multiple thread access. If your application requires a constant data state, use a handle returned by IMSAdminBase::OpenKey.

Requirements

Client: Requires Windows XP Professional, Windows 2000 Professional, or Windows NT Workstation 4.0.

Server: Requires Windows Server 2003, Windows 2000 Server, or Windows NT Server 4.0.

Product: IIS

Header: Declared in iadmw.h; include iiscnfg.h.