4.2 Determining Server Object Identity
This example assumes that the client already has an interface pointer to an instance of an object that implements IServicedComponentInfo. The example also assumes that the server already has a unique identifier encoded into a URI to identify the server object instance. The following diagram helps to illustrate this example.

Figure 4: Call sequence for determining server object identity
The client calls the IServicedComponentInfo::GetComponentInfo method.
HRESULT GetComponentInfo{ [in,out] int* infoMask = 0x00000004, [out] SAFEARRAY(BSTR)* infoArray = {An uninitialized pointer to receive the SAFEARRAY}};The server receives the call, verifies the parameters, and returns a SAFEARRAY of type VT_BSTR into the infoArray that contains the URI for the server object instance.
HRESULT = S_OK GetComponentInfo{ [in,out] int* infoMask = 0x00000004, [out] SAFEARRAY(BSTR)* infoArray = {VT_BSTR, "http://56C8D6F0ED8B4d658F42148430C65CEE" }};The client records the URI of the server object instance, and uses it to distinguish between two different server object instances.