Export (0) Print
Expand All

PeerCollaboration::RegisterApplication Method

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

Namespace:  System.Net.PeerToPeer.Collaboration
Assembly:  System.Net (in System.Net.dll)

static void RegisterApplication(
	PeerApplication^ application, 
	PeerApplicationRegistrationType type


Type: System.Net.PeerToPeer.Collaboration::PeerApplication

The PeerApplication for which to register the calling peer within the associated scope (global, local, and link-local).

Type: System.Net.PeerToPeer.Collaboration::PeerApplicationRegistrationType

The type of registration to perform. The application may be registered for just the calling peer or for all peers using the machine.

  • The Path property on the PeerApplication object passed to application is null.

  • The peer application instance provided has the same globally unique Id as an application which is already registered. The existing registration must be unregistered before a new application can be registered with the provided identifier.


The application and type parameters cannot be nullptr. Both parameters must be specified.


The type parameter is not set to a known value in the PeerApplicationRegistrationType enumeration.


The RegisterApplication operation cannot be completed until the caller has signed-in to the infrastructure.

The calling peer is required to sign in to the peer collaboration infrastructure with the SignIn method prior to calling this method.

Access to this method requires a PermissionState of Unrestricted. This state is created when the Peer collaboration session begins.

The following code example illustrates how to register an application with the Collaboration infrastructure:

// Registering Notepad.exe as a collab application with a fixed GUID. 
// Note: If you're using the application to send invitations, 
// the same application with the same GUID must be registered on the remote peer machine. 
private static PeerApplication RegisterCollabApp()
    PeerApplication application = null;
    string pathToApp = "%SystemRoot%\\notepad.exe";
    Guid appGuid = new Guid(0xAAAAAAAA, 0xFADE, 0xDEAF, 0xBE, 0xEF, 0xFF, 0xEE, 0xDD, 0xCC, 0xBB, 0xAE);

    application = new PeerApplication();
    application.Id = appGuid;
    application.Path = pathToApp;
    application.Description = "Peer Collaboration Sample -- notepad.exe";
    application.PeerScope = PeerScope.All;
    application.CommandLineArgs = "n";
    application.Data = ASCIIEncoding.ASCII.GetBytes("Test");

    Console.WriteLine("Attempting to register the application \"notepad.exe\"...");

        PeerApplicationCollection pac = PeerCollaboration.GetLocalRegisteredApplications(PeerApplicationRegistrationType.AllUsers);
        if (pac.Contains(application))
            Console.WriteLine("The application is already registered on the peer.");
            PeerCollaboration.RegisterApplication(application, PeerApplicationRegistrationType.AllUsers);
            Console.WriteLine("Application registration succeeded!");
    catch (ArgumentException argEx)
        Console.WriteLine("The application was previously registered with the Peer Collaboration Infrastructure: {0}.", argEx.Message);
    catch (PeerToPeerException p2pEx)
        Console.WriteLine("The application failed to register with the Peer Collaboration Infrastructure: {0}", p2pEx.Message);
    catch (Exception ex)
        Console.WriteLine("An unexpected exception occurred when trying to register the application: {0}.", ex.Message);
    return application;

.NET Framework

Supported in: 4.5, 4, 3.5

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

© 2014 Microsoft