IUccCategoryInstance.InstanceId Property

This content is no longer actively maintained. It is provided as is, for anyone who may still be using these technologies, with no warranties or claims of accuracy with regard to the most recent product version or service release.

Gets the ID of this category instance.

Namespace: Microsoft.Office.Interop.UccApi
Assembly: Microsoft.Office.Interop.UccApi (in microsoft.office.interop.uccapi.dll)

Syntax

'Declaration
ReadOnly Property InstanceId As Integer
int InstanceId { get; }
property int InstanceId {
    int get ();
}
/** @property */
int get_InstanceId ()
function get InstanceId () : int

Property Value

A value of the LONG* (int, for a .NET application) type.

Remarks

The combination of InstanceId, category context, and container Id uniquely identifies a category instance published by a given presentity. The InstanceId value is set by the publishing client. For example: Two "contactCard" category instances with different containerId values and published by the same presentity, will have different InstanceId values.

A client may cache received category instances in a way that allows individual category instances to be retrieved from the cache using the InstanceId as a key value.

Win32 COM/C++ Syntax

HRESULT get_InstanceId
(
   LONG* plInstanceId
);

Note

In a Win32 application, the return value of a method or property is always an HRESULT value indicating the status of the call to the interface member. Any result of the operation is returned as a parameter marked with the [out, retval] attribute. In contrast, in a .NET application the HRESULT value indicating an error condition is returned as a COM exception and the [out, retval] parameter becomes the return value. For the UCC API-defined HRESULT values, see Trace and Handle Errors in Unified Communications Client API.

Example

The following example handles OnCategoryInstanceAdded events in a class that has advised for presentity, category context, and category instance events published by the local user. In this example then, the following code caches the local user's own published category instances as they are provisioned on the client using the Unified Communications server in-band provisioning method. As a category instance is received in this event handler, the context, InstanceId, and ContainerID are used as a combined key value in a Dictionary lookup method. If the category instance was previously received, it is removed from the dictionary and replaced with the current instance.

private Dictionary<string, IUccCategoryInstance> myInstances;
...
void _IUccCategoryContextEvents.OnCategoryInstanceAdded(
   IUccCategoryContext pCategoryCtx, 
   UccCategoryInstanceEvent pCategory)
{
   IUccCategoryInstance ci = pCategory.CategoryInstance;
   string instanceKey = ci.CategoryContext.Name +
      ci.InstanceId +
      ci.ContainerId;

   if (this.myInstances.ContainsKey(
      instanceKey))
   {
      this.myInstances.Remove(
         instanceKey);
   }
   this.myInstances.Add(
      instanceKey,
      pCategory.CategoryInstance);
}

Thread Safety

All public static (Shared in Visual Basic) members of this type are thread-safe. Instance members are not guaranteed to be thread-safe.

Platforms

Development Platforms

Windows XP Professional with Service Pack 2 (SP2), Windows Server 2000 with Service Pack 4, Windows Server 2003, Windows Vista Ultimate Edition, Windows Vista Business Edition, Windows Vista Enterprise Edition

Target Platforms

See Also

Reference

IUccCategoryInstance Interface
IUccCategoryInstance Members
Microsoft.Office.Interop.UccApi Namespace