3.1.4.18.5 GetEventClassesForIID2 (Opnum 7)

This method is called by a client to get information about the event classes associated with an IID that are configured in a specified partition.

 HRESULT GetEventClassesForIID2(
   [in, string, unique] LPWSTR wszIID,
   [in] GUID* PartitionId,
   [out] DWORD* pcClasses,
   [out, string, size_is(, *pcClasses)] 
     LPWSTR** pawszCLSIDs,
   [out, string, size_is(, *pcClasses)] 
     LPWSTR** pawszProgIDs,
   [out, string, size_is(, *pcClasses)] 
     LPWSTR** pawszDescriptions,
   [out, string, size_is(, *pcClasses)] 
     LPWSTR** pawszConglomerationIDs,
   [out, size_is(, *pcClasses)] DWORD** padwIsPrivate
 );

wszIID: The Curly Braced GUID String Syntax ([MS-DTYP] section 2.3.4.3) representation of the IID for which event classes will be retrieved, or NULL or an empty (zero-length) string to indicate all event classes.

PartitionId: The partition identifier of a partition within which to limit the selection of configurations of event classes.

pcClasses: A pointer to a value that, upon successful completion, MUST be set to the number of event classes for which information was returned.

pawszCLSIDs: A pointer to a value that, upon successful completion, MUST be set to an array of Curly Braced GUID String Syntax ([MS-DTYP] section 2.3.4.3) representations of CLSIDs of event classes.

pawszProgIDs: A pointer to a value that, upon successful completion, MUST be set to an array of ProgIDs of event classes, in the same order as pawszCLSIDs.

pawszDescriptions: A pointer to a value that, upon successful completion, MUST be set to an array of descriptions of event classes, in the same order as pawszCLSIDs.

pawszConglomerationIDs: A pointer to a value that, upon successful completion, MUST be set to an array of Curly Braced GUID String Syntax ([MS-DTYP] section 2.3.4.3) representations of the conglomerations in which the event classes are configuration, in the same order as pawszCLSIDs.

padwIsPrivate: A pointer to a value that, upon successful completion, MUST be set to an array of value indicating whether the configurations are private, in other words the IsPrivate property has the value TRUE (0x000000001), in the same order as pawszCLSIDs.

Return Values: This method MUST return S_OK (0x00000000) on success, and a failure result, as specified in [MS-ERREF] section 2.1, on failure. All failure results MUST be treated identically.

Upon receiving a call to this method, the server MUST verify that catalog version negotiation has been performed by checking the negotiated catalog version (see section 3.1.1.5), and fail the call if not.

Upon receiving this method, the server MUST verify that all parameters conform to the preceding specifications, and fail the call if not.

The server then MUST perform the following:

  • If wszIID is NULL or an empty string, the server MUST attempt to select from its catalog all entries in the EventClasses table (section 3.1.1.3.22), and fail the call if it cannot.

  • Otherwise, the server then MUST attempt to select all entries from the EventClasses table for which the IID property is equal to that specified in wszIID, and Description properties, and fail the call if it cannot.

The server then MUST remove from the selection all event classes that do not have a component configuration in the partition specified in PartitionId, and for the remaining event classes select the component configuration of the event class in that partition, and fail the call if it cannot.

The server then MUST attempt to set the values referenced by the out parameters as follows:

  • The server MUST attempt to set the value referenced by pcClasses to the number of configured event classes selected, and the values referenced by pawszCLSIDs, pawszProgIDs, pawszDescriptions, pawszConglomerationIDs, and padwIsPrivate to arrays of values for the CLSID, ProgID, Description, ConglomerationIdentifier, and IsPrivate properties for the selected component configurations, and fail the call if it cannot.