This file is indexed.

/usr/i686-w64-mingw32/include/p2p.h is in mingw-w64-i686-dev 2.0.3-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
/**
 * 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*/