<div class="content" name="GetEventClassesForIID2" uuid="7da5c4fd-622c-457f-8f71-88b0bdfb2852"><p>This method is called by a client to get information about
the <a href="3f01a312-3391-4109-a96e-95358babf191#gt_e8df25db-9bff-46df-b607-d072dd29c02b" data-linktype="relative-path">event classes</a>
associated with an IID that are configured in a specified <a href="3f01a312-3391-4109-a96e-95358babf191#gt_2f24f458-7d39-47a2-93f7-de433ea85c75" data-linktype="relative-path">partition</a>.</p><dl>
<dd>
<div><pre> 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
 );
</pre></div>
</dd></dl><p><b>wszIID: </b>The Curly Braced GUID String Syntax (<a href="../ms-dtyp/cca27429-5689-4a16-b2b4-9325d93e4ba2" data-linktype="relative-path">[MS-DTYP]</a>
section <a href="../ms-dtyp/222af2d3-5c00-4899-bc87-ed4c6515e80d" data-linktype="relative-path">2.3.4.3</a>)
representation of the IID for which event classes will be retrieved, or NULL or
an empty (zero-length) string to indicate all event classes.</p><p><b>PartitionId: </b>The <a href="3f01a312-3391-4109-a96e-95358babf191#gt_9587a9d3-3fd7-45c6-aab1-c74ff17a22b7" data-linktype="relative-path">partition identifier</a> of a
partition within which to limit the selection of configurations of event
classes.</p><p><b>pcClasses: </b>A pointer to a value that, upon
successful completion, MUST be set to the number of event classes for which
information was returned.</p><p><b>pawszCLSIDs: </b>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 <a href="3f01a312-3391-4109-a96e-95358babf191#gt_e433c806-6cb6-46a2-bb95-523df8818c99" data-linktype="relative-path">CLSIDs</a> of event classes.</p><p><b>pawszProgIDs: </b>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 <i>pawszCLSIDs</i>.</p><p><b>pawszDescriptions: </b>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 <i>pawszCLSIDs</i>.</p><p><b>pawszConglomerationIDs: </b>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 <a href="3f01a312-3391-4109-a96e-95358babf191#gt_ea5c531f-5dd5-43aa-9da1-2ae068c622db" data-linktype="relative-path">conglomerations</a> in which
the event classes are configuration, in the same order as <i>pawszCLSIDs</i>.</p><p><b>padwIsPrivate: </b>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 <i>pawszCLSIDs</i>.</p><p><b>Return Values: </b>This method MUST return S_OK
(0x00000000) on success, and a failure result, as specified in <a href="../ms-erref/1bc92ddf-b79e-413c-bbaa-99a5281a6c90" data-linktype="relative-path">[MS-ERREF]</a>
section <a href="../ms-erref/0642cb2f-2075-4469-918c-4441e69c548a" data-linktype="relative-path">2.1</a>,
on failure. All failure results MUST be treated identically.</p><p>Upon receiving a call to this method, the server MUST verify
that <a href="3f01a312-3391-4109-a96e-95358babf191#gt_0944227d-0566-49e1-989f-2fff6e02542d" data-linktype="relative-path">catalog</a> version
negotiation has been performed by checking the negotiated catalog version (see
section <a href="a667265b-22a8-43bb-b462-13528061e009" data-linktype="relative-path">3.1.1.5</a>), and
fail the call if not.</p><p>Upon receiving this method, the server MUST verify that all
parameters conform to the preceding specifications, and fail the call if not.</p><p>The server then MUST perform the following:</p><ul><li><p><span><span> 
</span></span>If <i>wszIID</i> is NULL or an empty string, the server MUST
attempt to select from its catalog all entries in the <a href="a250b039-56dd-495b-8636-147a989995e0" data-linktype="relative-path">EventClasses
table (section 3.1.1.3.22)</a>, and fail the call if it cannot.</p>
</li><li><p><span><span> 
</span></span>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 <i>wszIID</i>, and Description properties, and fail the call if it
cannot.</p>
</li></ul><p>The server then MUST remove from the selection all event
classes that do not have a <a href="3f01a312-3391-4109-a96e-95358babf191#gt_31ed3bc7-a750-4fdd-a72d-d275caeab53e" data-linktype="relative-path">component
configuration</a> in the partition specified in <i>PartitionId</i>, and for the
remaining event classes select the component configuration of the event class
in that partition, and fail the call if it cannot.</p><p>The server then MUST attempt to set the values referenced by
the out parameters as follows:</p><ul><li><p><span><span> 
</span></span>The server MUST attempt to set the value referenced by <i>pcClasses</i>
to the number of configured event classes selected, and the values referenced
by <i>pawszCLSIDs</i>, <i>pawszProgIDs</i>, <i>pawszDescriptions</i>, <i>pawszConglomerationIDs</i>,
and <i>padwIsPrivate</i> to arrays of values for the CLSID, ProgID,
Description, ConglomerationIdentifier, and IsPrivate properties for the
selected <a href="3f01a312-3391-4109-a96e-95358babf191#gt_670903d8-6f25-4b7e-b038-a09194865d4a" data-linktype="relative-path">component
configurations</a>, and fail the call if it cannot.</p>
</li></ul></div>