IUccPresentity Interface
Assembly: Microsoft.Office.Interop.UccApi (in microsoft.office.interop.uccapi.dll)
This interface includes properties for discovering the categories published by a user as well as information about the user. From the user related properties, a client can discover the following properties:
-
Is the publishing user the local user?
-
The source network of the publishing user.
-
The Uri-related properties of the publishing user.
-
The application context associated with the publishing user.
-
The categories published by the user.
An instance of IUccPresentity can be obtained from an instance of IUccSubscription by calling into CreatePresentity. A client can also obtain a reference to the interface from a Presentity property exposed by IUccCategoryInstance, IUccCategoryContext, _IUccPresentityEvents, and IUccSubscriptionEvent.
To receive this user's published presence category information, a client application must advise for:
-
_IUccPresentityEvents.
The presentity event handler for OnCategoryContextAdded is the best place to advise for _IUccCategoryContextEvents events. Each time the client receives OnCategoryInstanceAdded, the event handler must advise for _IUccCategoryInstanceEvents for the new category instance.
An instance of IUccCategoryInstance received in a OnCategoryInstanceValueModified event provides the actual presence data published by the presentity whose events initiated the chain of presence information-related events.
Win32 COM/C++ Syntax
interface IUccPresentity : IUnknown
The following example accepts an instance of IUccSubscription and a UccUri instance representing the local user. The subscription instance is utilized as a factory object for a new presentity representing the local user. Note that the example immediately advises for _IUccPresentityEvents, specifying the class private field this.selfPresentity as the event source and the class itself as the presentity event sink.
private void StartPresentityEventsChain(UccUri localUser)
{
//IUccPresentity this.selfPresentity is class scoped private field
this.selfPresentity = CreateSelfPresentity(
this.selfSubscription,
localUser);
UCC_Advise<_IUccPresentityEvents>(
this.selfPresentity,
this);
}
private UccPresentity CreateSelfPresentity(IUccSubscription selfSubscription, UccUri localUser)
{
UccPresentity returnValue = null;
if (selfSubscription == null || localUser == null)
{
throw new ArgumentNullException();
}
returnValue = selfSubscription.CreatePresentity(localUser, null);
return returnValue;
}