| /** | |
| * This file has no copyright assigned and is placed in the Public Domain. | |
| * This file is part of the w64 mingw-runtime package. | |
| * No warranty is given; refer to the file DISCLAIMER.PD within this package. | |
| */ | |
| #ifndef _INC_P2P | |
| #define _INC_P2P | |
| #if (_WIN32_WINNT >= 0x0600) | |
| #ifdef __cplusplus | |
| extern "C" { | |
| #endif | |
| typedef enum _PEER_APPLICATION_REGISTRATION_TYPE { | |
| PEER_APPLICATION_CURRENT_USER, | |
| PEER_APPLICATION_ALL_USERS | |
| } PEER_APPLICATION_REGISTRATION_TYPE, PEER_APPLICATION_REGISTRATION_FLAGS; | |
| typedef enum _PEER_CHANGE_TYPE { | |
| PEER_CHANGE_ADDED, | |
| PEER_CHANGE_DELETED, | |
| PEER_CHANGE_UPDATED | |
| } PEER_CHANGE_TYPE; | |
| typedef enum _PEER_COLLAB_EVENT_TYPE { | |
| PEER_EVENT_WATCHLIST_CHANGED, | |
| PEER_EVENT_ENDPOINT_CHANGED, | |
| PEER_EVENT_ENDPOINT_PRESENCE_CHANGED, | |
| PEER_EVENT_ENDPOINT_APPLICATION_CHANGED, | |
| PEER_EVENT_ENDPOINT_OBJECT_CHANGED, | |
| PEER_EVENT_MY_ENDPOINT_CHANGED, | |
| PEER_EVENT_MY_PRESENCE_CHANGED, | |
| PEER_EVENT_MY_APPLICATION_CHANGED, | |
| PEER_EVENT_MY_OBJECT_CHANGED, | |
| PEER_EVENT_PEOPLE_NEAR_ME_CHANGED, | |
| PEER_EVENT_REQUEST_STATUS_CHANGED | |
| } PEER_COLLAB_EVENT_TYPE; | |
| typedef enum _PEER_GROUP_AUTHENTICATION_SCHEME { | |
| PEER_GROUP_GMC_AUTHENTICATION = 0x00000001, | |
| PEER_GROUP_PASSWORD_AUTHENTICATION = 0x00000002 | |
| } PEER_GROUP_AUTHENTICATION_SCHEME; | |
| typedef enum _PEER_GROUP_ISSUE_CREDENTIAL_FLAGS { | |
| PEER_GROUP_STORE_CREDENTIALS = 0x0001 | |
| } PEER_GROUP_ISSUE_CREDENTIAL_FLAGS; | |
| typedef enum _PEER_INVITATION_RESPONSE_TYPE { | |
| PEER_INVITATION_RESPONSE_DECLINED, | |
| PEER_INVITATION_RESPONSE_ACCEPTED, | |
| PEER_INVITATION_RESPONSE_EXPIRED, | |
| PEER_INVITATION_RESPONSE_ERROR | |
| } PEER_INVITATION_RESPONSE_TYPE; | |
| typedef enum _PEER_PRESENCE_STATUS { | |
| PEER_PRESENCE_OFFLINE, | |
| PEER_PRESENCE_OUT_TO_LUNCH, | |
| PEER_PRESENCE_AWAY, | |
| PEER_PRESENCE_BE_RIGHT_BACK, | |
| PEER_PRESENCE_IDLE, | |
| PEER_PRESENCE_BUSY, | |
| PEER_PRESENCE_ON_THE_PHONE, | |
| PEER_PRESENCE_ONLINE | |
| } PEER_PRESENCE_STATUS; | |
| typedef enum _PEER_PUBLICATION_SCOPE { | |
| PEER_PUBLICATION_SCOPE_NONE, | |
| PEER_PUBLICATION_SCOPE_NEAR_ME, | |
| PEER_PUBLICATION_SCOPE_INTERNET, | |
| PEER_PUBLICATION_SCOPE_ALL | |
| } PEER_PUBLICATION_SCOPE; | |
| typedef enum _PEER_SIGNIN_FLAGS { | |
| PEER_SIGNIN_NONE, | |
| PEER_SIGNIN_NEAR_ME, | |
| PEER_SIGNIN_INTERNET, | |
| PEER_SIGNIN_ALL | |
| } PEER_SIGNIN_FLAGS; | |
| typedef enum _PEER_WATCH_PERMISSION { | |
| PEER_WATCH_BLOCKED, | |
| PEER_WATCH_ALLOWED | |
| } PEER_WATCH_PERMISSION; | |
| typedef struct _PEER_CONTACT *PPEER_CONTACT; | |
| typedef struct _PEER_ENDPOINT *PPEER_ENDPOINT; | |
| typedef struct _PEER_INVITATION *PPEER_INVITATION; | |
| typedef struct _PEER_OBJECT *PPEER_OBJECT; | |
| typedef struct _PEER_PEOPLE_NEAR_ME *PPEER_PEOPLE_NEAR_ME; | |
| typedef struct _PEER_PRESENCE_INFO *PPEER_PRESENCE_INFO; | |
| typedef LPVOID HPEERENUM; | |
| typedef LPVOID HPEEREVENT; | |
| typedef struct peer_address_tag { | |
| DWORD dwSize; | |
| SOCKADDR_IN6 sin6; | |
| } PEER_ADDRESS, *PPEER_ADDRESS; | |
| typedef struct _PEER_APP_LAUNCH_INFO { | |
| PPEER_CONTACT pContact; | |
| PPEER_ENDPOINT pEndpoint; | |
| PPEER_INVITATION pInvitation; | |
| } PEER_APP_LAUNCH_INFO, *PPEER_APP_LAUNCH_INFO; | |
| typedef const PEER_APP_LAUNCH_INFO *PCPEER_APP_LAUNCH_INFO; | |
| typedef struct peer_data_tag { | |
| ULONG cbData; | |
| PBYTE pbData; | |
| } PEER_DATA, *PPEER_DATA; | |
| typedef struct _PEER_APPLICATION { | |
| GUID id; | |
| PEER_DATA data; | |
| PWSTR pwzDescription; | |
| } PEER_APPLICATION, *PPEER_APPLICATION; | |
| typedef const PEER_APPLICATION *PCPEER_APPLICATION; | |
| typedef struct _PEER_APPLICATION_REGISTRATION_INFO { | |
| PEER_APPLICATION application; | |
| PWSTR pwzApplicationToLaunch; | |
| PWSTR pwzApplicationArguments; | |
| DWORD dwPublicationScope; | |
| } PEER_APPLICATION_REGISTRATION_INFO, *PPEER_APPLICATION_REGISTRATION_INFO; | |
| typedef const PEER_APPLICATION_REGISTRATION_INFO *PCPEER_APPLICATION_REGISTRATION_INFO; | |
| typedef struct _PEER_EVENT_APPLICATION_CHANGED_DATA { | |
| PPEER_CONTACT pContact; | |
| PPEER_ENDPOINT pEndpoint; | |
| PEER_CHANGE_TYPE changeType; | |
| PPEER_APPLICATION pApplication; | |
| } PEER_EVENT_APPLICATION_CHANGED_DATA, *PPEER_EVENT_APPLICATION_CHANGED_DATA; | |
| typedef struct _PEER_EVENT_ENDPOINT_CHANGED_DATA { | |
| PPEER_CONTACT pContact; | |
| PPEER_ENDPOINT pEndpoint; | |
| } PEER_EVENT_ENDPOINT_CHANGED_DATA, *PPEER_EVENT_ENDPOINT_CHANGED_DATA; | |
| typedef struct _PEER_EVENT_OBJECT_CHANGED_DATA { | |
| PPEER_CONTACT pContact; | |
| PPEER_ENDPOINT pEndpoint; | |
| PEER_CHANGE_TYPE changeType; | |
| PPEER_OBJECT pObject; | |
| } PEER_EVENT_OBJECT_CHANGED_DATA, *PPEER_EVENT_OBJECT_CHANGED_DATA; | |
| typedef struct _PEER_EVENT_PEOPLE_NEAR_ME_CHANGED_DATA { | |
| PEER_CHANGE_TYPE changeType; | |
| PPEER_PEOPLE_NEAR_ME pPeopleNearMe; | |
| } PEER_EVENT_PEOPLE_NEAR_ME_CHANGED_DATA, *PPEER_EVENT_PEOPLE_NEAR_ME_CHANGED_DATA; | |
| typedef struct _PEER_EVENT_PRESENCE_CHANGED_DATA { | |
| PPEER_CONTACT pContact; | |
| PPEER_ENDPOINT pEndpoint; | |
| PEER_CHANGE_TYPE changeType; | |
| PPEER_PRESENCE_INFO pPresenceInfo; | |
| } PEER_EVENT_PRESENCE_CHANGED_DATA, *PPEER_EVENT_PRESENCE_CHANGED_DATA; | |
| typedef struct _PEER_EVENT_REQUEST_STATUS_CHANGED_DATA { | |
| PPEER_ENDPOINT pEndpoint; | |
| HRESULT hrChange; | |
| } PEER_EVENT_REQUEST_STATUS_CHANGED_DATA, *PPEER_EVENT_REQUEST_STATUS_CHANGED_DATA; | |
| typedef struct _PEER_EVENT_WATCHLIST_CHANGED_DATA { | |
| PPEER_CONTACT pContact; | |
| PEER_CHANGE_TYPE changeType; | |
| } PEER_EVENT_WATCHLIST_CHANGED_DATA, *PPEER_EVENT_WATCHLIST_CHANGED_DATA; | |
| typedef struct _PEER_INVITATION { | |
| GUID applicationId; | |
| PEER_DATA applicationData; | |
| PWSTR pwzMessage; | |
| } PEER_INVITATION, *PPEER_INVITATION; | |
| typedef const PEER_INVITATION *PCPEER_INVITATION; | |
| typedef union _PEER_COLLAB_EVENT_DATA { | |
| PEER_COLLAB_EVENT_TYPE eventType; | |
| __C89_NAMELESS union { | |
| PEER_EVENT_WATCHLIST_CHANGED_DATA watchlistChangedData; | |
| PEER_EVENT_PRESENCE_CHANGED_DATA presenceChangedData; | |
| PEER_EVENT_APPLICATION_CHANGED_DATA applicationChangedData; | |
| PEER_EVENT_OBJECT_CHANGED_DATA objectChangedData; | |
| PEER_EVENT_ENDPOINT_CHANGED_DATA endpointChangedData; | |
| PEER_EVENT_PEOPLE_NEAR_ME_CHANGED_DATA peopleNearMeChangedData; | |
| PEER_EVENT_REQUEST_STATUS_CHANGED_DATA requestStatusChangedData; | |
| } DUMMYUNIONNAME; | |
| } PEER_COLLAB_EVENT_DATA, *PPEER_COLLAB_EVENT_DATA; | |
| typedef struct _PEER_COLLAB_EVENT_REGISTRATION{ | |
| PEER_COLLAB_EVENT_TYPE eventType; | |
| GUID * pInstance; | |
| } PEER_COLLAB_EVENT_REGISTRATION, *PPEER_COLLAB_EVENT_REGISTRATION; | |
| typedef const PEER_COLLAB_EVENT_REGISTRATION *PCPEER_COLLAB_EVENT_REGISTRATION; | |
| typedef struct { | |
| PEER_INVITATION_RESPONSE_TYPE action; | |
| PWSTR pwzMessage; | |
| HRESULT hrExtendedInfo; | |
| } PEER_INVITATION_RESPONSE, *PPEER_INVITATION_RESPONSE; | |
| typedef const PEER_INVITATION_RESPONSE *PCPEER_INVITATION_RESPONSE; | |
| typedef struct _PEER_CONTACT { | |
| PWSTR pwzPeerName; | |
| PWSTR pwzNickName; | |
| PWSTR pwzDisplayName; | |
| PWSTR pwzEmailAddress; | |
| WINBOOL fWatch; | |
| PEER_WATCH_PERMISSION WatcherPermissions; | |
| PEER_DATA credentials; | |
| } PEER_CONTACT, *PPEER_CONTACT; | |
| typedef const PEER_CONTACT *PCPEER_CONTACT; | |
| typedef struct _PEER_ENDPOINT { | |
| PEER_ADDRESS address; | |
| PWSTR pwzEndpointName; | |
| } PEER_ENDPOINT, *PPEER_ENDPOINT; | |
| typedef const PEER_ENDPOINT *PCPEER_ENDPOINT; | |
| typedef struct _PEER_OBJECT { | |
| GUID id; | |
| PEER_DATA data; | |
| DWORD dwPublicationScope; | |
| } PEER_OBJECT, *PPEER_OBJECT; | |
| typedef const PEER_OBJECT *PCPEER_OBJECT; | |
| typedef struct _PEER_PEOPLE_NEAR_ME { | |
| PWSTR pwzNickName; | |
| PEER_ENDPOINT endpoint; | |
| GUID id; | |
| } PEER_PEOPLE_NEAR_ME, *PPEER_PEOPLE_NEAR_ME, *PCPEER_PEOPLE_NEAR_ME, **PPPEER_PEOPLE_NEAR_ME; | |
| typedef struct _PEER_PRESENCE_INFO { | |
| PEER_PRESENCE_STATUS status; | |
| PWSTR pwzDescriptiveText; | |
| } PEER_PRESENCE_INFO, *PPEER_PRESENCE_INFO; | |
| typedef const PEER_PRESENCE_INFO *PCPEER_PRESENCE_INFO; | |
| HRESULT WINAPI PeerCollabAddContact( | |
| PCWSTR pwzContactData, | |
| PPEER_CONTACT *ppContact | |
| ); | |
| HRESULT WINAPI PeerCollabAsyncInviteContact( | |
| PCPEER_CONTACT pcContact, | |
| PPEER_ENDPOINT pcEndpoint, | |
| PCPEER_INVITATION pcInvitation, | |
| HANDLE hEvent, | |
| HANDLE *phInvitation | |
| ); | |
| HRESULT WINAPI PeerCollabAsyncInviteEndpoint( | |
| PPEER_ENDPOINT pcEndpoint, | |
| PCPEER_INVITATION pcInvitation, | |
| HANDLE hEvent, | |
| HANDLE *phInvitation | |
| ); | |
| HRESULT WINAPI PeerCollabCancelInvitation( | |
| HANDLE hInvitation | |
| ); | |
| HRESULT WINAPI PeerCollabCloseHandle( | |
| HANDLE handle | |
| ); | |
| HRESULT WINAPI PeerCollabDeleteContact( | |
| PCWSTR pwzPeerName | |
| ); | |
| HRESULT WINAPI PeerCollabDeleteEndpointData( | |
| PCPEER_ENDPOINT pcEndpoint | |
| ); | |
| HRESULT WINAPI PeerCollabDeleteObject( | |
| const GUID *pObjectId | |
| ); | |
| HRESULT WINAPI PeerCollabEnumApplicationRegistrationInfo( | |
| PEER_APPLICATION_REGISTRATION_TYPE registrationType, | |
| HPEERENUM *phPeerEnum | |
| ); | |
| HRESULT WINAPI PeerCollabEnumApplications( | |
| PCPEER_ENDPOINT pcEndpoint, | |
| const GUID *pApplicationId, | |
| HPEERENUM *phPeerEnum | |
| ); | |
| HRESULT WINAPI PeerCollabEnumContacts( | |
| HPEERENUM *phPeerEnum | |
| ); | |
| HRESULT WINAPI PeerCollabEnumEndpoints( | |
| PCPEER_CONTACT pcContact, | |
| HPEERENUM *phPeerEnum | |
| ); | |
| HRESULT WINAPI PeerCollabEnumObjects( | |
| PCPEER_ENDPOINT pcEndpoint, | |
| const GUID *pObjectId, | |
| HPEERENUM *phPeerEnum | |
| ); | |
| HRESULT WINAPI PeerCollabEnumPeopleNearMe( | |
| HPEERENUM *phPeerEnum | |
| ); | |
| HRESULT WINAPI PeerCollabExportContact( | |
| PWSTR pwzPeerName, | |
| PWSTR *ppwzContactData | |
| ); | |
| HRESULT WINAPI PeerCollabGetAppLaunchInfo( | |
| PPEER_APP_LAUNCH_INFO *ppLaunchInfo | |
| ); | |
| HRESULT WINAPI PeerCollabGetApplicationRegistrationInfo( | |
| const GUID *pApplicationId, | |
| PEER_APPLICATION_REGISTRATION_TYPE registrationType, | |
| PPEER_APPLICATION_REGISTRATION_INFO *ppRegInfo | |
| ); | |
| HRESULT WINAPI PeerCollabGetContact( | |
| PWSTR pwzPeerName, | |
| PCPEER_CONTACT *ppContact | |
| ); | |
| HRESULT WINAPI PeerCollabGetEndpointName( | |
| PWSTR *ppwzEndpointName | |
| ); | |
| HRESULT WINAPI PeerCollabGetEventData( | |
| HPEEREVENT hPeerEvent, | |
| PPEER_COLLAB_EVENT_DATA *ppEventData | |
| ); | |
| HRESULT WINAPI PeerCollabGetInvitationResponse( | |
| HANDLE hInvitation, | |
| PPEER_INVITATION_RESPONSE *ppInvitationResponse | |
| ); | |
| HRESULT WINAPI PeerCollabGetPresenceInfo( | |
| PCPEER_ENDPOINT pEndpoint, | |
| PPEER_PRESENCE_INFO *ppPresenceInfo | |
| ); | |
| HRESULT WINAPI PeerCollabGetSigninOptions( | |
| DWORD *dwSigninOptions | |
| ); | |
| HRESULT WINAPI PeerCollabInviteContact( | |
| PCPEER_CONTACT pcContact, | |
| PCPEER_ENDPOINT pcEndpoint, | |
| const PCPEER_INVITATION pcInvitation, | |
| PPEER_INVITATION_RESPONSE *ppResponse | |
| ); | |
| HRESULT WINAPI PeerCollabInviteEndpoint( | |
| PCPEER_ENDPOINT pcEndpoint, | |
| PCPEER_INVITATION pcInvitation, | |
| PPEER_INVITATION_RESPONSE *ppResponse | |
| ); | |
| HRESULT WINAPI PeerCollabParseContact( | |
| PWSTR pwzContactData, | |
| PCPEER_CONTACT *ppContact | |
| ); | |
| HRESULT WINAPI PeerCollabQueryContactData( | |
| PCPEER_ENDPOINT pcEndpoint, | |
| PWSTR *ppwzContactData | |
| ); | |
| HRESULT WINAPI PeerCollabRefreshEndpointData( | |
| PCPEER_ENDPOINT pcEndpoint | |
| ); | |
| HRESULT WINAPI PeerCollabRegisterApplication( | |
| PCPEER_APPLICATION_REGISTRATION_INFO pcApplication, | |
| PEER_APPLICATION_REGISTRATION_FLAGS registrationType | |
| ); | |
| HRESULT WINAPI PeerCollabRegisterEvent( | |
| HANDLE hEvent, | |
| DWORD cEventRegistration, | |
| PPEER_COLLAB_EVENT_REGISTRATION pEventRegistrations, | |
| HPEEREVENT *phPeerEvent | |
| ); | |
| HRESULT WINAPI PeerCollabSetEndpointName( | |
| PCWSTR pwzEndpointName | |
| ); | |
| HRESULT WINAPI PeerCollabSetObject( | |
| PCPEER_OBJECT pcObject | |
| ); | |
| HRESULT WINAPI PeerCollabSetPresenceInfo( | |
| PCPEER_PRESENCE_INFO pcPresenceInfo | |
| ); | |
| HRESULT WINAPI PeerCollabShutdown(void); | |
| HRESULT WINAPI PeerCollabSignin( | |
| HWND hwndParent, | |
| DWORD dwSigninOptions | |
| ); | |
| HRESULT WINAPI PeerCollabSignout( | |
| DWORD dwSignoutOptions | |
| ); | |
| HRESULT WINAPI PeerCollabStartup( | |
| WORD wVersionRequested | |
| ); | |
| HRESULT WINAPI PeerCollabSubscribeEndpointData( | |
| PCPEER_ENDPOINT pcEndpoint | |
| ); | |
| HRESULT WINAPI PeerCollabUnregisterApplication( | |
| const GUID *pApplicationID, | |
| PEER_APPLICATION_REGISTRATION_FLAGS registrationType | |
| ); | |
| HRESULT WINAPI PeerCollabUnregisterEvent( | |
| HPEEREVENT hPeerEvent | |
| ); | |
| HRESULT WINAPI PeerCollabUnsubscribeEndpointData( | |
| PCPEER_ENDPOINT pcEndpoint | |
| ); | |
| HRESULT WINAPI PeerCollabUpdateContact( | |
| PCPEER_CONTACT pContact | |
| ); | |
| #ifdef __cplusplus | |
| } | |
| #endif | |
| #endif /* (_WIN32_WINNT >= 0x0600) */ | |
| #endif /*_INC_P2P*/ |