Share via

PeerCollaboration Class


Interacts with the Peer Collaboration infrastructure. Many of the core collaboration scenarios begin with this class.

public ref class PeerCollaboration abstract sealed
public static class PeerCollaboration
type PeerCollaboration = class
Public Class PeerCollaboration


This class is a static class - it is sealed, abstract and does not have a public constructor. It is used to contain and manage application, object, and presence information for peers that have accepted invitations to a collaboration session. In terms of peers, objects, and applications, the PeerCollaboration class provides three accessors, one for each collection, as an interface or point of connectivity for whatever else is happening on the machine. This class cannot be inherited; a compile-time error will occur if this sealed class is specified as the base class.

Methods and properties in this class can be used to:

  • Launch and manage collaborative applications

  • Register and delete applications and collaboration objects (such as certificates, pictures, avatars, and text descriptions)

  • Invite peers to collaboration sessions, including items such as scope and objects which will identify them over the Internet

  • Allow peers to SignIn and SignOut of the collaboration infrastructure, manage lists of contacts, or publish their presence to each other

  • Utilize SynchronizingObject properties and events to coordinate asynchronous application communication, especially for changes in name, presence, application, or other objects.

"Link-local cloud", "subnet of the calling peer", and "NearMe scope" are synonymous terms. "Internet scope" and "serverless presence" are synonymous. The site-local PnrpScope has no equivalent in the collaboration namespace.

The use of every method or property in this class requires a PermissionState of Unrestricted. This state is created when the peer collaboration session begins.



Gets the PeerApplicationLaunchInfo object that contains information needed when an application is started due to a collaboration request from a remote peer.


Gets the persistent store that contains all PeerContact objects for remote peers.


Gets or sets the name of the PeerEndPoint associated with the calling peer.


Gets or sets the presence for the calling peer within the PeerCollaboration infrastructure.


Gets the PeerScope to which the calling peer can publish presence, capability and object information.


Gets or sets the event handler callback object for all event handlers.



Unregisters a PeerObject associated with the calling peer.


Gets all PeerApplication objects that are registered on the local machine.


Gets a collection of all PeerApplication objects that are registered on the local machine for the specified PeerApplicationRegistrationType.


Obtains all PeerObject instances registered by the calling peer with the PeerCollaboration infrastructure on this machine.


Returns a collection of all the PeerCollaboration endpoints currently signed in on the network subnet of the calling peer.

RegisterApplication(PeerApplication, PeerApplicationRegistrationType)

Registers the specified PeerApplication for a collaboration session with the calling peer.


Registers a PeerObject associated with the calling peer.


Signs the peer into the collaboration infrastructure with the specified PeerScope.


Signs the peer out of the specified scope.

UnregisterApplication(PeerApplication, PeerApplicationRegistrationType)

Unregisters the specified PeerApplication from the PeerCollaboration infrastructure.



Raised when a PeerApplication in the PeerApplicationCollection for the local peer on the local host has changed.


Raised when the name of the PeerEndPoint on the local host for the local peer has changed.


A PeerObject in the PeerObjectCollection for the local peer on the local host has changed.


The PeerPresenceInfo of the local peer on the local host has changed.

Applies to