IMSAdminBase::EnumData

The IMSAdminBase::EnumData method enumerates the data entries of a key in the metabase. One entry is enumerated per call. Set dwMDEnumDataIndex to 0 on the first call and increment by 1 on each subsequent call until the method returns HRESULT_FROM_WIN32(ERROR_NO_MORE_ITEMS).

HRESULT EnumData(
      METADATA_HANDLE hMDHandle,
      LPCWSTR pszMDPath,
      PMETADATA_RECORD pmdrMDData,
      DWORD dwMDEnumDataIndex,
      DWORD* pdwMDRequiredDataLen
);

Parameters

  • hMDHandle
    Specifies the handle to a key in the metabase. The handle can be METADATA_MASTER_ROOT_HANDLE or a handle, with read permission, returned by the IMSAdminBase::OpenKey method.

  • pszMDPath
    Specifies the path of the key to be enumerated, 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.

  • pmdrMDData
    Points to a METADATA_RECORD structure that specifies the data to retrieve and receives the data.

  • dwMDEnumDataIndex
    Specifies the index of the entry 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.

  • pdwMDRequiredDataLen
    Points to a DWORD that receives the required buffer size if the method returns HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER).

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.

HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER)

The buffer passed into the method call is too small to receive the data.

E_INVALIDARG

The parameter is incorrect.

HRESULT_FROM_WIN32(ERROR_NO_MORE_ITEMS)

There are no more entries to enumerate.

HRESULT_FROM_WIN32(ERROR_PATH_NOT_FOUND)

The specified path is 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.