//
// Copyright (c) Microsoft Corporation. All rights reserved.
// 
//
// File generated by WinMDIDL version 8.00.0013
//

import "inspectable.idl";
import "AsyncInfo.idl";
import "EventToken.idl";
import "Windows.Foundation.idl";
import "Windows.Globalization.idl";
import "Windows.Networking.Sockets.idl";
import "Windows.Security.Credentials.idl";
import "Windows.Security.Cryptography.Certificates.idl";
// Additional imports to ensure that all required headers are included
cpp_quote("#if defined(__cplusplus)")
cpp_quote("}")
cpp_quote("#endif // defined(__cplusplus)")
cpp_quote("#include <Windows.Foundation.h>")
cpp_quote("#if !defined(__windows2Eglobalization_h__)")
cpp_quote("#include <Windows.Globalization.h>")
cpp_quote("#endif // !defined(__windows2Eglobalization_h__)")
cpp_quote("#if !defined(__windows2Enetworking2Esockets_h__)")
cpp_quote("#include <Windows.Networking.Sockets.h>")
cpp_quote("#endif // !defined(__windows2Enetworking2Esockets_h__)")
cpp_quote("#if !defined(__windows2Esecurity2Ecredentials_h__)")
cpp_quote("#include <Windows.Security.Credentials.h>")
cpp_quote("#endif // !defined(__windows2Esecurity2Ecredentials_h__)")
cpp_quote("#if !defined(__windows2Esecurity2Ecryptography2Ecertificates_h__)")
cpp_quote("#include <Windows.Security.Cryptography.Certificates.h>")
cpp_quote("#endif // !defined(__windows2Esecurity2Ecryptography2Ecertificates_h__)")
cpp_quote("#if defined(__cplusplus)")
cpp_quote("extern \"C\" {")
cpp_quote("#endif // defined(__cplusplus)")

// Forward Declare
namespace Windows
{
    namespace Foundation
    {
        typedef struct DateTime DateTime;

        runtimeclass Deferral;

        typedef struct TimeSpan TimeSpan;

        runtimeclass Uri;
    }
}
namespace Windows
{
    namespace Globalization
    {
        runtimeclass Language;
    }
}
namespace Windows
{
    namespace Networking
    {
        namespace Sockets
        {
            typedef enum SocketSslErrorSeverity SocketSslErrorSeverity;
        }
    }
}
namespace Windows
{
    namespace Security
    {
        namespace Credentials
        {
            runtimeclass PasswordCredential;
        }
    }
}
namespace Windows
{
    namespace Security
    {
        namespace Cryptography
        {
            namespace Certificates
            {
                runtimeclass Certificate;

                typedef enum ChainValidationResult ChainValidationResult;
            }
        }
    }
}
namespace Windows
{
    namespace Devices
    {
        namespace AllJoyn
        {
            typedef enum AllJoynAuthenticationMechanism AllJoynAuthenticationMechanism;

            typedef enum AllJoynBusAttachmentState AllJoynBusAttachmentState;

            typedef enum AllJoynTrafficType AllJoynTrafficType;

            typedef enum AllJoynSessionLostReason AllJoynSessionLostReason;

            interface IAllJoynStatusStatics;

            interface IAllJoynBusAttachment;

            interface IAllJoynBusAttachmentStateChangedEventArgs;

            interface IAllJoynCredentials;

            interface IAllJoynCredentialsRequestedEventArgs;

            interface IAllJoynCredentialsVerificationRequestedEventArgs;

            interface IAllJoynAuthenticationCompleteEventArgs;

            interface IAllJoynBusAttachmentFactory;

            interface IAllJoynServiceInfo;

            interface IAllJoynServiceInfoFactory;

            interface IAllJoynAboutDataViewStatics;

            interface IAllJoynAboutDataView;

            interface IAllJoynAboutData;

            interface IAllJoynAcceptSessionJoinerEventArgs;

            interface IAllJoynAcceptSessionJoiner;

            interface IAllJoynAcceptSessionJoinerEventArgsFactory;

            interface IAllJoynSessionMemberAddedEventArgs;

            interface IAllJoynSessionMemberAddedEventArgsFactory;

            interface IAllJoynSessionMemberRemovedEventArgs;

            interface IAllJoynSessionMemberRemovedEventArgsFactory;

            interface IAllJoynSessionLostEventArgs;

            interface IAllJoynSessionLostEventArgsFactory;

            interface IAllJoynProducerStoppedEventArgs;

            interface IAllJoynProducerStoppedEventArgsFactory;

            interface IAllJoynWatcherStoppedEventArgs;

            interface IAllJoynWatcherStoppedEventArgsFactory;

            interface IAllJoynServiceInfoRemovedEventArgs;

            interface IAllJoynServiceInfoRemovedEventArgsFactory;

            interface IAllJoynMessageInfo;

            interface IAllJoynMessageInfoFactory;

            runtimeclass AllJoynStatus;

            runtimeclass AllJoynAboutData;

            runtimeclass AllJoynBusAttachment;

            runtimeclass AllJoynBusAttachmentStateChangedEventArgs;

            runtimeclass AllJoynCredentialsRequestedEventArgs;

            runtimeclass AllJoynCredentialsVerificationRequestedEventArgs;

            runtimeclass AllJoynAuthenticationCompleteEventArgs;

            runtimeclass AllJoynCredentials;

            runtimeclass AllJoynServiceInfo;

            runtimeclass AllJoynAboutDataView;

            runtimeclass AllJoynAcceptSessionJoinerEventArgs;

            runtimeclass AllJoynSessionMemberAddedEventArgs;

            runtimeclass AllJoynSessionMemberRemovedEventArgs;

            runtimeclass AllJoynSessionLostEventArgs;

            runtimeclass AllJoynProducerStoppedEventArgs;

            runtimeclass AllJoynWatcherStoppedEventArgs;

            runtimeclass AllJoynServiceInfoRemovedEventArgs;

            runtimeclass AllJoynMessageInfo;
        }
    }
}

// Generic instantiations
namespace Windows
{
    namespace Devices
    {
        namespace AllJoyn
        {
            declare
            {
                interface Windows.Foundation.Collections.IIterable<Windows.Devices.AllJoyn.AllJoynAuthenticationMechanism>;

                interface Windows.Foundation.Collections.IIterator<Windows.Devices.AllJoyn.AllJoynAuthenticationMechanism>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Devices.AllJoyn.AllJoynAuthenticationMechanism>;

                interface Windows.Foundation.Collections.IVector<Windows.Devices.AllJoyn.AllJoynAuthenticationMechanism>;

                interface Windows.Foundation.IAsyncOperation<Windows.Devices.AllJoyn.AllJoynAboutDataView*>;

                interface Windows.Foundation.TypedEventHandler<Windows.Devices.AllJoyn.AllJoynBusAttachment*, Windows.Devices.AllJoyn.AllJoynAuthenticationCompleteEventArgs*>;

                interface Windows.Foundation.TypedEventHandler<Windows.Devices.AllJoyn.AllJoynBusAttachment*, Windows.Devices.AllJoyn.AllJoynBusAttachmentStateChangedEventArgs*>;

                interface Windows.Foundation.TypedEventHandler<Windows.Devices.AllJoyn.AllJoynBusAttachment*, Windows.Devices.AllJoyn.AllJoynCredentialsRequestedEventArgs*>;

                interface Windows.Foundation.TypedEventHandler<Windows.Devices.AllJoyn.AllJoynBusAttachment*, Windows.Devices.AllJoyn.AllJoynCredentialsVerificationRequestedEventArgs*>;
            }
        }
    }
}

// Type definition
namespace Windows
{
    namespace Devices
    {
        namespace AllJoyn
        {
            [version(0x0A000000)]
            enum AllJoynAuthenticationMechanism
            {
                None         = 0,
                SrpAnonymous = 1,
                SrpLogon     = 2,
                EcdheNull    = 3,
                EcdhePsk     = 4,
                EcdheEcdsa   = 5
            };

            [version(0x0A000000)]
            enum AllJoynBusAttachmentState
            {
                Disconnected  = 0,
                Connecting    = 1,
                Connected     = 2,
                Disconnecting = 3
            };

            [version(0x0A000000)]
            enum AllJoynTrafficType
            {
                Unknown       = 0,
                Messages      = 1,
                RawUnreliable = 2,
                RawReliable   = 4
            };

            [version(0x0A000000)]
            enum AllJoynSessionLostReason
            {
                None                   = 0,
                ProducerLeftSession    = 1,
                ProducerClosedAbruptly = 2,
                RemovedByProducer      = 3,
                LinkTimeout            = 4,
                Other                  = 5
            };

            [exclusiveto(Windows.Devices.AllJoyn.AllJoynStatus)]
            [uuid(D0B7A17E-0D29-4DA9-8AC6-54C554BEDBC5)]
            [version(0x0A000000)]
            interface IAllJoynStatusStatics : IInspectable
            {
                [propget] HRESULT Ok([out] [retval] INT32* value);
                [propget] HRESULT Fail([out] [retval] INT32* value);
                [propget] HRESULT OperationTimedOut([out] [retval] INT32* value);
                [propget] HRESULT OtherEndClosed([out] [retval] INT32* value);
                [propget] HRESULT ConnectionRefused([out] [retval] INT32* value);
                [propget] HRESULT AuthenticationFailed([out] [retval] INT32* value);
                [propget] HRESULT AuthenticationRejectedByUser([out] [retval] INT32* value);
                [propget] HRESULT SslConnectFailed([out] [retval] INT32* value);
                [propget] HRESULT SslIdentityVerificationFailed([out] [retval] INT32* value);
                [propget] HRESULT InsufficientSecurity([out] [retval] INT32* value);
                [propget] HRESULT InvalidArgument1([out] [retval] INT32* value);
                [propget] HRESULT InvalidArgument2([out] [retval] INT32* value);
                [propget] HRESULT InvalidArgument3([out] [retval] INT32* value);
                [propget] HRESULT InvalidArgument4([out] [retval] INT32* value);
                [propget] HRESULT InvalidArgument5([out] [retval] INT32* value);
                [propget] HRESULT InvalidArgument6([out] [retval] INT32* value);
                [propget] HRESULT InvalidArgument7([out] [retval] INT32* value);
                [propget] HRESULT InvalidArgument8([out] [retval] INT32* value);
            }

            [exclusiveto(Windows.Devices.AllJoyn.AllJoynBusAttachment)]
            [uuid(F309F153-1EED-42C3-A20E-436D41FE62F6)]
            [version(0x0A000000)]
            interface IAllJoynBusAttachment : IInspectable
            {
                [propget] HRESULT AboutData([out] [retval] Windows.Devices.AllJoyn.AllJoynAboutData** value);
                [propget] HRESULT ConnectionSpecification([out] [retval] HSTRING* value);
                [propget] HRESULT State([out] [retval] Windows.Devices.AllJoyn.AllJoynBusAttachmentState* value);
                [propget] HRESULT UniqueName([out] [retval] HSTRING* value);
                HRESULT PingAsync([in] HSTRING uniqueName, [out] [retval] Windows.Foundation.IAsyncOperation<INT32>** operation);
                HRESULT Connect();
                HRESULT Disconnect();
                [eventadd] HRESULT StateChanged([in] Windows.Foundation.TypedEventHandler<Windows.Devices.AllJoyn.AllJoynBusAttachment*, Windows.Devices.AllJoyn.AllJoynBusAttachmentStateChangedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT StateChanged([in] EventRegistrationToken token);
                [propget] HRESULT AuthenticationMechanisms([out] [retval] Windows.Foundation.Collections.IVector<Windows.Devices.AllJoyn.AllJoynAuthenticationMechanism>** value);
                [eventadd] HRESULT CredentialsRequested([in] Windows.Foundation.TypedEventHandler<Windows.Devices.AllJoyn.AllJoynBusAttachment*, Windows.Devices.AllJoyn.AllJoynCredentialsRequestedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT CredentialsRequested([in] EventRegistrationToken token);
                [eventadd] HRESULT CredentialsVerificationRequested([in] Windows.Foundation.TypedEventHandler<Windows.Devices.AllJoyn.AllJoynBusAttachment*, Windows.Devices.AllJoyn.AllJoynCredentialsVerificationRequestedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT CredentialsVerificationRequested([in] EventRegistrationToken token);
                [eventadd] HRESULT AuthenticationComplete([in] Windows.Foundation.TypedEventHandler<Windows.Devices.AllJoyn.AllJoynBusAttachment*, Windows.Devices.AllJoyn.AllJoynAuthenticationCompleteEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT AuthenticationComplete([in] EventRegistrationToken token);
            }

            [exclusiveto(Windows.Devices.AllJoyn.AllJoynBusAttachmentStateChangedEventArgs)]
            [uuid(D82E75F4-C02A-41EC-A8D5-EAB1558953AA)]
            [version(0x0A000000)]
            interface IAllJoynBusAttachmentStateChangedEventArgs : IInspectable
            {
                [propget] HRESULT State([out] [retval] Windows.Devices.AllJoyn.AllJoynBusAttachmentState* value);
                [propget] HRESULT Status([out] [retval] INT32* value);
            }

            [exclusiveto(Windows.Devices.AllJoyn.AllJoynCredentials)]
            [uuid(824650F2-A190-40B1-ABAB-349EC244DFAA)]
            [version(0x0A000000)]
            interface IAllJoynCredentials : IInspectable
            {
                [propget] HRESULT AuthenticationMechanism([out] [retval] Windows.Devices.AllJoyn.AllJoynAuthenticationMechanism* value);
                [propget] HRESULT Certificate([out] [retval] Windows.Security.Cryptography.Certificates.Certificate** value);
                [propput] HRESULT Certificate([in] Windows.Security.Cryptography.Certificates.Certificate* value);
                [propget] HRESULT PasswordCredential([out] [retval] Windows.Security.Credentials.PasswordCredential** value);
                [propput] HRESULT PasswordCredential([in] Windows.Security.Credentials.PasswordCredential* value);
                [propget] HRESULT Timeout([out] [retval] Windows.Foundation.TimeSpan* value);
                [propput] HRESULT Timeout([in] Windows.Foundation.TimeSpan value);
            }

            [exclusiveto(Windows.Devices.AllJoyn.AllJoynCredentialsRequestedEventArgs)]
            [uuid(6A87E34E-B069-4B80-9E1A-41BC837C65D2)]
            [version(0x0A000000)]
            interface IAllJoynCredentialsRequestedEventArgs : IInspectable
            {
                [propget] HRESULT AttemptCount([out] [retval] UINT16* value);
                [propget] HRESULT Credentials([out] [retval] Windows.Devices.AllJoyn.AllJoynCredentials** value);
                [propget] HRESULT PeerUniqueName([out] [retval] HSTRING* value);
                [propget] HRESULT RequestedUserName([out] [retval] HSTRING* value);
                HRESULT GetDeferral([out] [retval] Windows.Foundation.Deferral** result);
            }

            [exclusiveto(Windows.Devices.AllJoyn.AllJoynCredentialsVerificationRequestedEventArgs)]
            [uuid(800A7612-B805-44AF-A2E1-792AB655A2D0)]
            [version(0x0A000000)]
            interface IAllJoynCredentialsVerificationRequestedEventArgs : IInspectable
            {
                [propget] HRESULT AuthenticationMechanism([out] [retval] Windows.Devices.AllJoyn.AllJoynAuthenticationMechanism* value);
                [propget] HRESULT PeerUniqueName([out] [retval] HSTRING* value);
                [propget] HRESULT PeerCertificate([out] [retval] Windows.Security.Cryptography.Certificates.Certificate** value);
                [propget] HRESULT PeerCertificateErrorSeverity([out] [retval] Windows.Networking.Sockets.SocketSslErrorSeverity* value);
                [propget] HRESULT PeerCertificateErrors([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Security.Cryptography.Certificates.ChainValidationResult>** value);
                [propget] HRESULT PeerIntermediateCertificates([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Security.Cryptography.Certificates.Certificate*>** value);
                HRESULT Accept();
                HRESULT GetDeferral([out] [retval] Windows.Foundation.Deferral** result);
            }

            [exclusiveto(Windows.Devices.AllJoyn.AllJoynAuthenticationCompleteEventArgs)]
            [uuid(97B4701C-15DC-4B53-B6A4-7D134300D7BF)]
            [version(0x0A000000)]
            interface IAllJoynAuthenticationCompleteEventArgs : IInspectable
            {
                [propget] HRESULT AuthenticationMechanism([out] [retval] Windows.Devices.AllJoyn.AllJoynAuthenticationMechanism* value);
                [propget] HRESULT PeerUniqueName([out] [retval] HSTRING* value);
                [propget] HRESULT Succeeded([out] [retval] boolean* value);
            }

            [exclusiveto(Windows.Devices.AllJoyn.AllJoynBusAttachment)]
            [uuid(642EF1A4-AD85-4DDF-90AE-604452B22288)]
            [version(0x0A000000)]
            interface IAllJoynBusAttachmentFactory : IInspectable
            {
                HRESULT Create([in] HSTRING connectionSpecification, [out] [retval] Windows.Devices.AllJoyn.AllJoynBusAttachment** result);
            }

            [exclusiveto(Windows.Devices.AllJoyn.AllJoynServiceInfo)]
            [uuid(4CBE8209-B93E-4182-999B-DDD000F9C575)]
            [version(0x0A000000)]
            interface IAllJoynServiceInfo : IInspectable
            {
                [propget] HRESULT UniqueName([out] [retval] HSTRING* value);
                [propget] HRESULT ObjectPath([out] [retval] HSTRING* value);
                [propget] HRESULT SessionPort([out] [retval] UINT16* value);
            }

            [exclusiveto(Windows.Devices.AllJoyn.AllJoynServiceInfo)]
            [uuid(7581DABD-FE03-4F4B-94A4-F02FDCBD11B8)]
            [version(0x0A000000)]
            interface IAllJoynServiceInfoFactory : IInspectable
            {
                HRESULT Create([in] HSTRING uniqueName, [in] HSTRING objectPath, [in] UINT16 sessionPort, [out] [retval] Windows.Devices.AllJoyn.AllJoynServiceInfo** result);
            }

            [exclusiveto(Windows.Devices.AllJoyn.AllJoynAboutDataView)]
            [uuid(57EDB688-0C5E-416E-88B5-39B32D25C47D)]
            [version(0x0A000000)]
            interface IAllJoynAboutDataViewStatics : IInspectable
            {
                [overload("GetDataBySessionPortAsync")] HRESULT GetDataBySessionPortAsync([in] HSTRING uniqueName, [in] Windows.Devices.AllJoyn.AllJoynBusAttachment* busAttachment, [in] UINT16 sessionPort, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Devices.AllJoyn.AllJoynAboutDataView*>** operation);
                [overload("GetDataBySessionPortAsync")] HRESULT GetDataBySessionPortWithLanguageAsync([in] HSTRING uniqueName, [in] Windows.Devices.AllJoyn.AllJoynBusAttachment* busAttachment, [in] UINT16 sessionPort, [in] Windows.Globalization.Language* language, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Devices.AllJoyn.AllJoynAboutDataView*>** operation);
            }

            [exclusiveto(Windows.Devices.AllJoyn.AllJoynAboutDataView)]
            [uuid(6823111F-6212-4934-9C48-E19CA4984288)]
            [version(0x0A000000)]
            interface IAllJoynAboutDataView : IInspectable
            {
                [propget] HRESULT Status([out] [retval] INT32* value);
                [propget] HRESULT Properties([out] [retval] Windows.Foundation.Collections.IMapView<HSTRING, IInspectable*>** value);
                [propget] HRESULT AJSoftwareVersion([out] [retval] HSTRING* value);
                [propget] HRESULT AppId([out] [retval] GUID* value);
                [propget] HRESULT DateOfManufacture([out] [retval] Windows.Foundation.IReference<Windows.Foundation.DateTime>** value);
                [propget] HRESULT DefaultLanguage([out] [retval] Windows.Globalization.Language** value);
                [propget] HRESULT DeviceId([out] [retval] HSTRING* value);
                [propget] HRESULT HardwareVersion([out] [retval] HSTRING* value);
                [propget] HRESULT ModelNumber([out] [retval] HSTRING* value);
                [propget] HRESULT SoftwareVersion([out] [retval] HSTRING* value);
                [propget] HRESULT SupportedLanguages([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Globalization.Language*>** value);
                [propget] HRESULT SupportUrl([out] [retval] Windows.Foundation.Uri** value);
                [propget] HRESULT AppName([out] [retval] HSTRING* value);
                [propget] HRESULT Description([out] [retval] HSTRING* value);
                [propget] HRESULT DeviceName([out] [retval] HSTRING* value);
                [propget] HRESULT Manufacturer([out] [retval] HSTRING* value);
            }

            [exclusiveto(Windows.Devices.AllJoyn.AllJoynAboutData)]
            [uuid(E5A9BF00-1FA2-4839-93EF-F9DF404890F7)]
            [version(0x0A000000)]
            interface IAllJoynAboutData : IInspectable
            {
                [propget] HRESULT IsEnabled([out] [retval] boolean* value);
                [propput] HRESULT IsEnabled([in] boolean value);
                [propget] HRESULT DefaultAppName([out] [retval] HSTRING* value);
                [propput] HRESULT DefaultAppName([in] HSTRING value);
                [propget] HRESULT AppNames([out] [retval] Windows.Foundation.Collections.IMap<HSTRING, HSTRING>** value);
                [propget] HRESULT DateOfManufacture([out] [retval] Windows.Foundation.IReference<Windows.Foundation.DateTime>** value);
                [propput] HRESULT DateOfManufacture([in] Windows.Foundation.IReference<Windows.Foundation.DateTime>* value);
                [propget] HRESULT DefaultDescription([out] [retval] HSTRING* value);
                [propput] HRESULT DefaultDescription([in] HSTRING value);
                [propget] HRESULT Descriptions([out] [retval] Windows.Foundation.Collections.IMap<HSTRING, HSTRING>** value);
                [propget] HRESULT DefaultManufacturer([out] [retval] HSTRING* value);
                [propput] HRESULT DefaultManufacturer([in] HSTRING value);
                [propget] HRESULT Manufacturers([out] [retval] Windows.Foundation.Collections.IMap<HSTRING, HSTRING>** value);
                [propget] HRESULT ModelNumber([out] [retval] HSTRING* value);
                [propput] HRESULT ModelNumber([in] HSTRING value);
                [propget] HRESULT SoftwareVersion([out] [retval] HSTRING* value);
                [propput] HRESULT SoftwareVersion([in] HSTRING value);
                [propget] HRESULT SupportUrl([out] [retval] Windows.Foundation.Uri** value);
                [propput] HRESULT SupportUrl([in] Windows.Foundation.Uri* value);
                [propget] HRESULT AppId([out] [retval] GUID* value);
                [propput] HRESULT AppId([in] GUID value);
            }

            [exclusiveto(Windows.Devices.AllJoyn.AllJoynAcceptSessionJoinerEventArgs)]
            [uuid(4EFB5365-3E8A-4257-8F10-539CE0D56C0F)]
            [version(0x0A000000)]
            interface IAllJoynAcceptSessionJoinerEventArgs : IInspectable
            {
                [propget] HRESULT UniqueName([out] [retval] HSTRING* value);
                [propget] HRESULT SessionPort([out] [retval] UINT16* value);
                [propget] HRESULT TrafficType([out] [retval] Windows.Devices.AllJoyn.AllJoynTrafficType* value);
                [propget] HRESULT SamePhysicalNode([out] [retval] boolean* value);
                [propget] HRESULT SameNetwork([out] [retval] boolean* value);
                HRESULT Accept();
            }

            [uuid(4DA817D2-CD1D-4023-A7C4-16DEF89C28DF)]
            [version(0x0A000000)]
            interface IAllJoynAcceptSessionJoiner : IInspectable
            {
                HRESULT Accept();
            }

            [exclusiveto(Windows.Devices.AllJoyn.AllJoynAcceptSessionJoinerEventArgs)]
            [uuid(B4435BC0-6145-429E-84DB-D5BFE772B14F)]
            [version(0x0A000000)]
            interface IAllJoynAcceptSessionJoinerEventArgsFactory : IInspectable
            {
                HRESULT Create([in] HSTRING uniqueName, [in] UINT16 sessionPort, [in] Windows.Devices.AllJoyn.AllJoynTrafficType trafficType, [in] BYTE proximity, [in] Windows.Devices.AllJoyn.IAllJoynAcceptSessionJoiner* acceptSessionJoiner, [out] [retval] Windows.Devices.AllJoyn.AllJoynAcceptSessionJoinerEventArgs** result);
            }

            [exclusiveto(Windows.Devices.AllJoyn.AllJoynSessionMemberAddedEventArgs)]
            [uuid(49A2798A-0DD1-46C1-9CD6-27190E503A5E)]
            [version(0x0A000000)]
            interface IAllJoynSessionMemberAddedEventArgs : IInspectable
            {
                [propget] HRESULT UniqueName([out] [retval] HSTRING* value);
            }

            [exclusiveto(Windows.Devices.AllJoyn.AllJoynSessionMemberAddedEventArgs)]
            [uuid(341DE352-1D33-40A1-A1D3-E5777020E1F1)]
            [version(0x0A000000)]
            interface IAllJoynSessionMemberAddedEventArgsFactory : IInspectable
            {
                HRESULT Create([in] HSTRING uniqueName, [out] [retval] Windows.Devices.AllJoyn.AllJoynSessionMemberAddedEventArgs** result);
            }

            [exclusiveto(Windows.Devices.AllJoyn.AllJoynSessionMemberRemovedEventArgs)]
            [uuid(409A219F-AA4A-4893-B430-BAA1B63C6219)]
            [version(0x0A000000)]
            interface IAllJoynSessionMemberRemovedEventArgs : IInspectable
            {
                [propget] HRESULT UniqueName([out] [retval] HSTRING* value);
            }

            [exclusiveto(Windows.Devices.AllJoyn.AllJoynSessionMemberRemovedEventArgs)]
            [uuid(C4D355E8-42B8-4B67-B757-D0CFCAD59280)]
            [version(0x0A000000)]
            interface IAllJoynSessionMemberRemovedEventArgsFactory : IInspectable
            {
                HRESULT Create([in] HSTRING uniqueName, [out] [retval] Windows.Devices.AllJoyn.AllJoynSessionMemberRemovedEventArgs** result);
            }

            [exclusiveto(Windows.Devices.AllJoyn.AllJoynSessionLostEventArgs)]
            [uuid(E766A48A-8BB8-4954-AE67-D2FA43D1F96B)]
            [version(0x0A000000)]
            interface IAllJoynSessionLostEventArgs : IInspectable
            {
                [propget] HRESULT Reason([out] [retval] Windows.Devices.AllJoyn.AllJoynSessionLostReason* value);
            }

            [exclusiveto(Windows.Devices.AllJoyn.AllJoynSessionLostEventArgs)]
            [uuid(13BBFD32-D2F4-49C9-980E-2805E13586B1)]
            [version(0x0A000000)]
            interface IAllJoynSessionLostEventArgsFactory : IInspectable
            {
                HRESULT Create([in] Windows.Devices.AllJoyn.AllJoynSessionLostReason reason, [out] [retval] Windows.Devices.AllJoyn.AllJoynSessionLostEventArgs** result);
            }

            [exclusiveto(Windows.Devices.AllJoyn.AllJoynProducerStoppedEventArgs)]
            [uuid(51309770-4937-492D-8080-236439987CEB)]
            [version(0x0A000000)]
            interface IAllJoynProducerStoppedEventArgs : IInspectable
            {
                [propget] HRESULT Status([out] [retval] INT32* value);
            }

            [exclusiveto(Windows.Devices.AllJoyn.AllJoynProducerStoppedEventArgs)]
            [uuid(56529961-B219-4D6E-9F78-FA3F99FA8FE5)]
            [version(0x0A000000)]
            interface IAllJoynProducerStoppedEventArgsFactory : IInspectable
            {
                HRESULT Create([in] INT32 status, [out] [retval] Windows.Devices.AllJoyn.AllJoynProducerStoppedEventArgs** result);
            }

            [exclusiveto(Windows.Devices.AllJoyn.AllJoynWatcherStoppedEventArgs)]
            [uuid(C9FCA03B-701D-4AA8-97DD-A2BB0A8F5FA3)]
            [version(0x0A000000)]
            interface IAllJoynWatcherStoppedEventArgs : IInspectable
            {
                [propget] HRESULT Status([out] [retval] INT32* value);
            }

            [exclusiveto(Windows.Devices.AllJoyn.AllJoynWatcherStoppedEventArgs)]
            [uuid(878FA5A8-2D50-47E1-904A-20BF0D48C782)]
            [version(0x0A000000)]
            interface IAllJoynWatcherStoppedEventArgsFactory : IInspectable
            {
                HRESULT Create([in] INT32 status, [out] [retval] Windows.Devices.AllJoyn.AllJoynWatcherStoppedEventArgs** result);
            }

            [exclusiveto(Windows.Devices.AllJoyn.AllJoynServiceInfoRemovedEventArgs)]
            [uuid(3057A95F-1D3F-41F3-8969-E32792627396)]
            [version(0x0A000000)]
            interface IAllJoynServiceInfoRemovedEventArgs : IInspectable
            {
                [propget] HRESULT UniqueName([out] [retval] HSTRING* value);
            }

            [exclusiveto(Windows.Devices.AllJoyn.AllJoynServiceInfoRemovedEventArgs)]
            [uuid(0DBF8627-9AFF-4955-9227-6953BAF41569)]
            [version(0x0A000000)]
            interface IAllJoynServiceInfoRemovedEventArgsFactory : IInspectable
            {
                HRESULT Create([in] HSTRING uniqueName, [out] [retval] Windows.Devices.AllJoyn.AllJoynServiceInfoRemovedEventArgs** result);
            }

            [exclusiveto(Windows.Devices.AllJoyn.AllJoynMessageInfo)]
            [uuid(FF2B0127-2C12-4859-AA3A-C74461EE814C)]
            [version(0x0A000000)]
            interface IAllJoynMessageInfo : IInspectable
            {
                [propget] HRESULT SenderUniqueName([out] [retval] HSTRING* value);
            }

            [exclusiveto(Windows.Devices.AllJoyn.AllJoynMessageInfo)]
            [uuid(34664C2A-8289-43D4-B4A8-3F4DE359F043)]
            [version(0x0A000000)]
            interface IAllJoynMessageInfoFactory : IInspectable
            {
                HRESULT Create([in] HSTRING senderUniqueName, [out] [retval] Windows.Devices.AllJoyn.AllJoynMessageInfo** result);
            }

            [marshaling_behavior(agile)]
            [static(Windows.Devices.AllJoyn.IAllJoynStatusStatics, 0x0A000000)]
            [version(0x0A000000)]
            runtimeclass AllJoynStatus
            {
            }

            [marshaling_behavior(agile)]
            [version(0x0A000000)]
            runtimeclass AllJoynAboutData
            {
                [default] interface Windows.Devices.AllJoyn.IAllJoynAboutData;
            }

            [activatable(0x0A000000)]
            [activatable(Windows.Devices.AllJoyn.IAllJoynBusAttachmentFactory, 0x0A000000)]
            [marshaling_behavior(agile)]
            [version(0x0A000000)]
            runtimeclass AllJoynBusAttachment
            {
                [default] interface Windows.Devices.AllJoyn.IAllJoynBusAttachment;
            }

            [marshaling_behavior(agile)]
            [version(0x0A000000)]
            runtimeclass AllJoynBusAttachmentStateChangedEventArgs
            {
                [default] interface Windows.Devices.AllJoyn.IAllJoynBusAttachmentStateChangedEventArgs;
            }

            [marshaling_behavior(agile)]
            [version(0x0A000000)]
            runtimeclass AllJoynCredentialsRequestedEventArgs
            {
                [default] interface Windows.Devices.AllJoyn.IAllJoynCredentialsRequestedEventArgs;
            }

            [marshaling_behavior(agile)]
            [version(0x0A000000)]
            runtimeclass AllJoynCredentialsVerificationRequestedEventArgs
            {
                [default] interface Windows.Devices.AllJoyn.IAllJoynCredentialsVerificationRequestedEventArgs;
            }

            [marshaling_behavior(agile)]
            [version(0x0A000000)]
            runtimeclass AllJoynAuthenticationCompleteEventArgs
            {
                [default] interface Windows.Devices.AllJoyn.IAllJoynAuthenticationCompleteEventArgs;
            }

            [marshaling_behavior(agile)]
            [version(0x0A000000)]
            runtimeclass AllJoynCredentials
            {
                [default] interface Windows.Devices.AllJoyn.IAllJoynCredentials;
            }

            [activatable(Windows.Devices.AllJoyn.IAllJoynServiceInfoFactory, 0x0A000000)]
            [marshaling_behavior(agile)]
            [version(0x0A000000)]
            runtimeclass AllJoynServiceInfo
            {
                [default] interface Windows.Devices.AllJoyn.IAllJoynServiceInfo;
            }

            [marshaling_behavior(agile)]
            [static(Windows.Devices.AllJoyn.IAllJoynAboutDataViewStatics, 0x0A000000)]
            [version(0x0A000000)]
            runtimeclass AllJoynAboutDataView
            {
                [default] interface Windows.Devices.AllJoyn.IAllJoynAboutDataView;
            }

            [activatable(Windows.Devices.AllJoyn.IAllJoynAcceptSessionJoinerEventArgsFactory, 0x0A000000)]
            [marshaling_behavior(agile)]
            [version(0x0A000000)]
            runtimeclass AllJoynAcceptSessionJoinerEventArgs
            {
                [default] interface Windows.Devices.AllJoyn.IAllJoynAcceptSessionJoinerEventArgs;
            }

            [activatable(Windows.Devices.AllJoyn.IAllJoynSessionMemberAddedEventArgsFactory, 0x0A000000)]
            [marshaling_behavior(agile)]
            [version(0x0A000000)]
            runtimeclass AllJoynSessionMemberAddedEventArgs
            {
                [default] interface Windows.Devices.AllJoyn.IAllJoynSessionMemberAddedEventArgs;
            }

            [activatable(Windows.Devices.AllJoyn.IAllJoynSessionMemberRemovedEventArgsFactory, 0x0A000000)]
            [marshaling_behavior(agile)]
            [version(0x0A000000)]
            runtimeclass AllJoynSessionMemberRemovedEventArgs
            {
                [default] interface Windows.Devices.AllJoyn.IAllJoynSessionMemberRemovedEventArgs;
            }

            [activatable(Windows.Devices.AllJoyn.IAllJoynSessionLostEventArgsFactory, 0x0A000000)]
            [marshaling_behavior(agile)]
            [version(0x0A000000)]
            runtimeclass AllJoynSessionLostEventArgs
            {
                [default] interface Windows.Devices.AllJoyn.IAllJoynSessionLostEventArgs;
            }

            [activatable(Windows.Devices.AllJoyn.IAllJoynProducerStoppedEventArgsFactory, 0x0A000000)]
            [marshaling_behavior(agile)]
            [version(0x0A000000)]
            runtimeclass AllJoynProducerStoppedEventArgs
            {
                [default] interface Windows.Devices.AllJoyn.IAllJoynProducerStoppedEventArgs;
            }

            [activatable(Windows.Devices.AllJoyn.IAllJoynWatcherStoppedEventArgsFactory, 0x0A000000)]
            [marshaling_behavior(agile)]
            [version(0x0A000000)]
            runtimeclass AllJoynWatcherStoppedEventArgs
            {
                [default] interface Windows.Devices.AllJoyn.IAllJoynWatcherStoppedEventArgs;
            }

            [activatable(Windows.Devices.AllJoyn.IAllJoynServiceInfoRemovedEventArgsFactory, 0x0A000000)]
            [marshaling_behavior(agile)]
            [version(0x0A000000)]
            runtimeclass AllJoynServiceInfoRemovedEventArgs
            {
                [default] interface Windows.Devices.AllJoyn.IAllJoynServiceInfoRemovedEventArgs;
            }

            [activatable(Windows.Devices.AllJoyn.IAllJoynMessageInfoFactory, 0x0A000000)]
            [marshaling_behavior(agile)]
            [version(0x0A000000)]
            runtimeclass AllJoynMessageInfo
            {
                [default] interface Windows.Devices.AllJoyn.IAllJoynMessageInfo;
            }
        }
    }
}
