22.214.171.124.4.7 INtmsObjectManagement1::EnumerateNtmsObject (Opnum 9)
The EnumerateNtmsObject method enumerates the objects of the container specified by the lpContainerId parameter.
HRESULT EnumerateNtmsObject( [in, unique] const LPNTMS_GUID lpContainerId, [out, size_is(*lpdwListBufferSize), length_is(*lpdwListBufferSize)] LPNTMS_GUID lpList, [in] DWORD* lpdwListBufferSize, [out] DWORD* lpdwListSize, [in] DWORD dwType, [in] DWORD dwOptions );
lpContainerId: A pointer to the GUID of the container for which to enumerate objects; can be set to NULL to enumerate all objects of type dwType.
If the lpContainerId parameter is set to NULL, the server MUST enumerate top-level objects (such as libraries). If more than one object is listed, the object can be enumerated from more than one container. The NULL container is the highest-level container, and enumerates all objects in a system. lpContainerId can be an object identifier (for example, a library identifier) which would return the objects associated with it, depending on the type of object chosen in the dwType parameter.
lpList: An array of object identifiers.
lpdwListBufferSize: A pointer to the size, in bytes, of lpList.
lpdwListSize: A pointer to the number of elements in lpList.
dwType: A value from the NtmsObjectsTypes (section 126.96.36.199) enumeration specifying the type of the object.
dwOptions: This parameter is unused. It MUST be 0 and MUST be ignored on receipt.
The call was successful.
Access to an object was denied.
An allocation failure occurred during processing.
The lpdwListSize pointer is NULL, or lpContainerId is not of the object type specified by dwType.
The specified buffer size is too small. The required size is returned in the lpdwListSize parameter.
The lpContainerId is not the identifier of any container in the database.
Upon receiving this message, the server MUST verify that lpdwListSize is not NULL. If parameter validation fails, the server MUST immediately fail the operation and return ERROR_INVALID_PARAMETER (0x80070057).
If parameter validation succeeds, the server MUST verify that the user has the required access rights. If the client does not have the required access rights, the server MUST return ERROR_ACCESS_DENIED (0x80070005).
If the available number of IDs specified in the lpdwListSize parameter is greater than the current buffer size, lpdwListSize MUST return the required size in lpdwListSize and ERROR_INSUFFICIENT_BUFFER (0x8007007A). The client MUST then allocate a larger buffer and try again.
If the lpContainerId parameter is set to NULL, the server MUST enumerate top-level objects (such as libraries).
If more than one object is listed, the object can be enumerated from more than one container. The NULL container is the highest-level container, and enumerates all objects in a system.