• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*** Autogenerated by WIDL 4.12.1 from include/alg.idl - Do not edit ***/
2 
3 #ifdef _WIN32
4 #ifndef __REQUIRED_RPCNDR_H_VERSION__
5 #define __REQUIRED_RPCNDR_H_VERSION__ 475
6 #endif
7 #include <rpc.h>
8 #include <rpcndr.h>
9 #endif
10 
11 #ifndef COM_NO_WINDOWS_H
12 #include <windows.h>
13 #include <ole2.h>
14 #endif
15 
16 #ifndef __alg_h__
17 #define __alg_h__
18 
19 /* Forward declarations */
20 
21 #ifndef __IAdapterInfo_FWD_DEFINED__
22 #define __IAdapterInfo_FWD_DEFINED__
23 typedef interface IAdapterInfo IAdapterInfo;
24 #ifdef __cplusplus
25 interface IAdapterInfo;
26 #endif /* __cplusplus */
27 #endif
28 
29 #ifndef __IPendingProxyConnection_FWD_DEFINED__
30 #define __IPendingProxyConnection_FWD_DEFINED__
31 typedef interface IPendingProxyConnection IPendingProxyConnection;
32 #ifdef __cplusplus
33 interface IPendingProxyConnection;
34 #endif /* __cplusplus */
35 #endif
36 
37 #ifndef __IDataChannel_FWD_DEFINED__
38 #define __IDataChannel_FWD_DEFINED__
39 typedef interface IDataChannel IDataChannel;
40 #ifdef __cplusplus
41 interface IDataChannel;
42 #endif /* __cplusplus */
43 #endif
44 
45 #ifndef __IPersistentDataChannel_FWD_DEFINED__
46 #define __IPersistentDataChannel_FWD_DEFINED__
47 typedef interface IPersistentDataChannel IPersistentDataChannel;
48 #ifdef __cplusplus
49 interface IPersistentDataChannel;
50 #endif /* __cplusplus */
51 #endif
52 
53 #ifndef __IPrimaryControlChannel_FWD_DEFINED__
54 #define __IPrimaryControlChannel_FWD_DEFINED__
55 typedef interface IPrimaryControlChannel IPrimaryControlChannel;
56 #ifdef __cplusplus
57 interface IPrimaryControlChannel;
58 #endif /* __cplusplus */
59 #endif
60 
61 #ifndef __ISecondaryControlChannel_FWD_DEFINED__
62 #define __ISecondaryControlChannel_FWD_DEFINED__
63 typedef interface ISecondaryControlChannel ISecondaryControlChannel;
64 #ifdef __cplusplus
65 interface ISecondaryControlChannel;
66 #endif /* __cplusplus */
67 #endif
68 
69 #ifndef __IEnumAdapterInfo_FWD_DEFINED__
70 #define __IEnumAdapterInfo_FWD_DEFINED__
71 typedef interface IEnumAdapterInfo IEnumAdapterInfo;
72 #ifdef __cplusplus
73 interface IEnumAdapterInfo;
74 #endif /* __cplusplus */
75 #endif
76 
77 #ifndef __IAdapterNotificationSink_FWD_DEFINED__
78 #define __IAdapterNotificationSink_FWD_DEFINED__
79 typedef interface IAdapterNotificationSink IAdapterNotificationSink;
80 #ifdef __cplusplus
81 interface IAdapterNotificationSink;
82 #endif /* __cplusplus */
83 #endif
84 
85 #ifndef __IApplicationGatewayServices_FWD_DEFINED__
86 #define __IApplicationGatewayServices_FWD_DEFINED__
87 typedef interface IApplicationGatewayServices IApplicationGatewayServices;
88 #ifdef __cplusplus
89 interface IApplicationGatewayServices;
90 #endif /* __cplusplus */
91 #endif
92 
93 #ifndef __IApplicationGateway_FWD_DEFINED__
94 #define __IApplicationGateway_FWD_DEFINED__
95 typedef interface IApplicationGateway IApplicationGateway;
96 #ifdef __cplusplus
97 interface IApplicationGateway;
98 #endif /* __cplusplus */
99 #endif
100 
101 #ifndef __ApplicationGatewayServices_FWD_DEFINED__
102 #define __ApplicationGatewayServices_FWD_DEFINED__
103 #ifdef __cplusplus
104 typedef class ApplicationGatewayServices ApplicationGatewayServices;
105 #else
106 typedef struct ApplicationGatewayServices ApplicationGatewayServices;
107 #endif /* defined __cplusplus */
108 #endif /* defined __ApplicationGatewayServices_FWD_DEFINED__ */
109 
110 #ifndef __PrimaryControlChannel_FWD_DEFINED__
111 #define __PrimaryControlChannel_FWD_DEFINED__
112 #ifdef __cplusplus
113 typedef class PrimaryControlChannel PrimaryControlChannel;
114 #else
115 typedef struct PrimaryControlChannel PrimaryControlChannel;
116 #endif /* defined __cplusplus */
117 #endif /* defined __PrimaryControlChannel_FWD_DEFINED__ */
118 
119 #ifndef __SecondaryControlChannel_FWD_DEFINED__
120 #define __SecondaryControlChannel_FWD_DEFINED__
121 #ifdef __cplusplus
122 typedef class SecondaryControlChannel SecondaryControlChannel;
123 #else
124 typedef struct SecondaryControlChannel SecondaryControlChannel;
125 #endif /* defined __cplusplus */
126 #endif /* defined __SecondaryControlChannel_FWD_DEFINED__ */
127 
128 #ifndef __AdapterInfo_FWD_DEFINED__
129 #define __AdapterInfo_FWD_DEFINED__
130 #ifdef __cplusplus
131 typedef class AdapterInfo AdapterInfo;
132 #else
133 typedef struct AdapterInfo AdapterInfo;
134 #endif /* defined __cplusplus */
135 #endif /* defined __AdapterInfo_FWD_DEFINED__ */
136 
137 #ifndef __EnumAdapterInfo_FWD_DEFINED__
138 #define __EnumAdapterInfo_FWD_DEFINED__
139 #ifdef __cplusplus
140 typedef class EnumAdapterInfo EnumAdapterInfo;
141 #else
142 typedef struct EnumAdapterInfo EnumAdapterInfo;
143 #endif /* defined __cplusplus */
144 #endif /* defined __EnumAdapterInfo_FWD_DEFINED__ */
145 
146 #ifndef __PendingProxyConnection_FWD_DEFINED__
147 #define __PendingProxyConnection_FWD_DEFINED__
148 #ifdef __cplusplus
149 typedef class PendingProxyConnection PendingProxyConnection;
150 #else
151 typedef struct PendingProxyConnection PendingProxyConnection;
152 #endif /* defined __cplusplus */
153 #endif /* defined __PendingProxyConnection_FWD_DEFINED__ */
154 
155 #ifndef __DataChannel_FWD_DEFINED__
156 #define __DataChannel_FWD_DEFINED__
157 #ifdef __cplusplus
158 typedef class DataChannel DataChannel;
159 #else
160 typedef struct DataChannel DataChannel;
161 #endif /* defined __cplusplus */
162 #endif /* defined __DataChannel_FWD_DEFINED__ */
163 
164 #ifndef __PersistentDataChannel_FWD_DEFINED__
165 #define __PersistentDataChannel_FWD_DEFINED__
166 #ifdef __cplusplus
167 typedef class PersistentDataChannel PersistentDataChannel;
168 #else
169 typedef struct PersistentDataChannel PersistentDataChannel;
170 #endif /* defined __cplusplus */
171 #endif /* defined __PersistentDataChannel_FWD_DEFINED__ */
172 
173 /* Headers for imported files */
174 
175 #include <oaidl.h>
176 #include <ocidl.h>
177 
178 #ifdef __cplusplus
179 extern "C" {
180 #endif
181 
182 #include <winapifamily.h>
183 
184 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
185 typedef enum _ALG_ADAPTER_TYPE {
186     eALG_PRIVATE = 0x1,
187     eALG_BOUNDARY = 0x2,
188     eALG_FIREWALLED = 0x4
189 } ALG_ADAPTER_TYPE;
190 typedef enum _ALG_CAPTURE {
191     eALG_SOURCE_CAPTURE = 0x1,
192     eALG_DESTINATION_CAPTURE = 0x2
193 } ALG_CAPTURE;
194 typedef enum _ALG_DIRECTION {
195     eALG_INBOUND = 0x1,
196     eALG_OUTBOUND = 0x2,
197     eALG_BOTH = 0x3
198 } ALG_DIRECTION;
199 typedef enum _ALG_NOTIFICATION {
200     eALG_NONE = 0x0,
201     eALG_SESSION_CREATION = 0x1,
202     eALG_SESSION_DELETION = 0x2,
203     eALG_SESSION_BOTH = 0x3
204 } ALG_NOTIFICATION;
205 typedef enum _ALG_PROTOCOL {
206     eALG_TCP = 0x1,
207     eALG_UDP = 0x2
208 } ALG_PROTOCOL;
209 typedef struct _ALG_PRIMARY_CHANNEL_PROPERTIES {
210     ALG_PROTOCOL eProtocol;
211     USHORT usCapturePort;
212     ALG_CAPTURE eCaptureType;
213     WINBOOL fCaptureInbound;
214     ULONG ulListeningAddress;
215     USHORT usListeningPort;
216     ULONG ulAdapterIndex;
217 } ALG_PRIMARY_CHANNEL_PROPERTIES;
218 typedef struct _ALG_SECONDARY_CHANNEL_PROPERTIES {
219     ALG_PROTOCOL eProtocol;
220     ULONG ulPrivateAddress;
221     USHORT usPrivatePort;
222     ULONG ulPublicAddress;
223     USHORT usPublicPort;
224     ULONG ulRemoteAddress;
225     USHORT usRemotePort;
226     ULONG ulListenAddress;
227     USHORT usListenPort;
228     ALG_DIRECTION eDirection;
229     WINBOOL fPersistent;
230 } ALG_SECONDARY_CHANNEL_PROPERTIES;
231 typedef struct _ALG_DATA_CHANNEL_PROPERTIES {
232     ALG_PROTOCOL eProtocol;
233     ULONG ulPrivateAddress;
234     USHORT usPrivatePort;
235     ULONG ulPublicAddress;
236     USHORT usPublicPort;
237     ULONG ulRemoteAddress;
238     USHORT usRemotePort;
239     ALG_DIRECTION eDirection;
240     ALG_NOTIFICATION eDesiredNotification;
241 } ALG_DATA_CHANNEL_PROPERTIES;
242 typedef struct _ALG_PERSISTENT_DATA_CHANNEL_PROPERTIES {
243     ALG_PROTOCOL eProtocol;
244     ULONG ulPrivateAddress;
245     USHORT usPrivatePort;
246     ULONG ulPublicAddress;
247     USHORT usPublicPort;
248     ULONG ulRemoteAddress;
249     USHORT usRemotePort;
250     ALG_DIRECTION eDirection;
251 } ALG_PERSISTENT_DATA_CHANNEL_PROPERTIES;
252 #define ALG_MAXIMUM_PORT_RANGE_SIZE (10)
253 
254 /*****************************************************************************
255  * IAdapterInfo interface
256  */
257 #ifndef __IAdapterInfo_INTERFACE_DEFINED__
258 #define __IAdapterInfo_INTERFACE_DEFINED__
259 
260 DEFINE_GUID(IID_IAdapterInfo, 0x480bf94a, 0x09fd, 0x4f8a, 0xa3,0xe0, 0xb0,0x70,0x02,0x82,0xd8,0x4d);
261 #if defined(__cplusplus) && !defined(CINTERFACE)
262 MIDL_INTERFACE("480bf94a-09fd-4f8a-a3e0-b0700282d84d")
263 IAdapterInfo : public IUnknown
264 {
265     virtual HRESULT STDMETHODCALLTYPE GetAdapterIndex(
266         ULONG *pulIndex) = 0;
267 
268     virtual HRESULT STDMETHODCALLTYPE GetAdapterType(
269         ALG_ADAPTER_TYPE *pAdapterType) = 0;
270 
271     virtual HRESULT STDMETHODCALLTYPE GetAdapterAddresses(
272         ULONG *pulAddressCount,
273         ULONG **prgAddresses) = 0;
274 
275 };
276 #ifdef __CRT_UUID_DECL
277 __CRT_UUID_DECL(IAdapterInfo, 0x480bf94a, 0x09fd, 0x4f8a, 0xa3,0xe0, 0xb0,0x70,0x02,0x82,0xd8,0x4d)
278 #endif
279 #else
280 typedef struct IAdapterInfoVtbl {
281     BEGIN_INTERFACE
282 
283     /*** IUnknown methods ***/
284     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
285         IAdapterInfo *This,
286         REFIID riid,
287         void **ppvObject);
288 
289     ULONG (STDMETHODCALLTYPE *AddRef)(
290         IAdapterInfo *This);
291 
292     ULONG (STDMETHODCALLTYPE *Release)(
293         IAdapterInfo *This);
294 
295     /*** IAdapterInfo methods ***/
296     HRESULT (STDMETHODCALLTYPE *GetAdapterIndex)(
297         IAdapterInfo *This,
298         ULONG *pulIndex);
299 
300     HRESULT (STDMETHODCALLTYPE *GetAdapterType)(
301         IAdapterInfo *This,
302         ALG_ADAPTER_TYPE *pAdapterType);
303 
304     HRESULT (STDMETHODCALLTYPE *GetAdapterAddresses)(
305         IAdapterInfo *This,
306         ULONG *pulAddressCount,
307         ULONG **prgAddresses);
308 
309     END_INTERFACE
310 } IAdapterInfoVtbl;
311 
312 interface IAdapterInfo {
313     CONST_VTBL IAdapterInfoVtbl* lpVtbl;
314 };
315 
316 #ifdef COBJMACROS
317 #ifndef WIDL_C_INLINE_WRAPPERS
318 /*** IUnknown methods ***/
319 #define IAdapterInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
320 #define IAdapterInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
321 #define IAdapterInfo_Release(This) (This)->lpVtbl->Release(This)
322 /*** IAdapterInfo methods ***/
323 #define IAdapterInfo_GetAdapterIndex(This,pulIndex) (This)->lpVtbl->GetAdapterIndex(This,pulIndex)
324 #define IAdapterInfo_GetAdapterType(This,pAdapterType) (This)->lpVtbl->GetAdapterType(This,pAdapterType)
325 #define IAdapterInfo_GetAdapterAddresses(This,pulAddressCount,prgAddresses) (This)->lpVtbl->GetAdapterAddresses(This,pulAddressCount,prgAddresses)
326 #else
327 /*** IUnknown methods ***/
328 static FORCEINLINE HRESULT IAdapterInfo_QueryInterface(IAdapterInfo* This,REFIID riid,void **ppvObject) {
329     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
330 }
331 static FORCEINLINE ULONG IAdapterInfo_AddRef(IAdapterInfo* This) {
332     return This->lpVtbl->AddRef(This);
333 }
334 static FORCEINLINE ULONG IAdapterInfo_Release(IAdapterInfo* This) {
335     return This->lpVtbl->Release(This);
336 }
337 /*** IAdapterInfo methods ***/
338 static FORCEINLINE HRESULT IAdapterInfo_GetAdapterIndex(IAdapterInfo* This,ULONG *pulIndex) {
339     return This->lpVtbl->GetAdapterIndex(This,pulIndex);
340 }
341 static FORCEINLINE HRESULT IAdapterInfo_GetAdapterType(IAdapterInfo* This,ALG_ADAPTER_TYPE *pAdapterType) {
342     return This->lpVtbl->GetAdapterType(This,pAdapterType);
343 }
344 static FORCEINLINE HRESULT IAdapterInfo_GetAdapterAddresses(IAdapterInfo* This,ULONG *pulAddressCount,ULONG **prgAddresses) {
345     return This->lpVtbl->GetAdapterAddresses(This,pulAddressCount,prgAddresses);
346 }
347 #endif
348 #endif
349 
350 #endif
351 
352 
353 #endif  /* __IAdapterInfo_INTERFACE_DEFINED__ */
354 
355 /*****************************************************************************
356  * IPendingProxyConnection interface
357  */
358 #ifndef __IPendingProxyConnection_INTERFACE_DEFINED__
359 #define __IPendingProxyConnection_INTERFACE_DEFINED__
360 
361 DEFINE_GUID(IID_IPendingProxyConnection, 0xb68e5043, 0x3e3d, 0x4cc2, 0xb9,0xc1, 0x5f,0x8f,0x88,0xfe,0xe8,0x1c);
362 #if defined(__cplusplus) && !defined(CINTERFACE)
363 MIDL_INTERFACE("b68e5043-3e3d-4cc2-b9c1-5f8f88fee81c")
364 IPendingProxyConnection : public IUnknown
365 {
366     virtual HRESULT STDMETHODCALLTYPE Cancel(
367         ) = 0;
368 
369 };
370 #ifdef __CRT_UUID_DECL
371 __CRT_UUID_DECL(IPendingProxyConnection, 0xb68e5043, 0x3e3d, 0x4cc2, 0xb9,0xc1, 0x5f,0x8f,0x88,0xfe,0xe8,0x1c)
372 #endif
373 #else
374 typedef struct IPendingProxyConnectionVtbl {
375     BEGIN_INTERFACE
376 
377     /*** IUnknown methods ***/
378     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
379         IPendingProxyConnection *This,
380         REFIID riid,
381         void **ppvObject);
382 
383     ULONG (STDMETHODCALLTYPE *AddRef)(
384         IPendingProxyConnection *This);
385 
386     ULONG (STDMETHODCALLTYPE *Release)(
387         IPendingProxyConnection *This);
388 
389     /*** IPendingProxyConnection methods ***/
390     HRESULT (STDMETHODCALLTYPE *Cancel)(
391         IPendingProxyConnection *This);
392 
393     END_INTERFACE
394 } IPendingProxyConnectionVtbl;
395 
396 interface IPendingProxyConnection {
397     CONST_VTBL IPendingProxyConnectionVtbl* lpVtbl;
398 };
399 
400 #ifdef COBJMACROS
401 #ifndef WIDL_C_INLINE_WRAPPERS
402 /*** IUnknown methods ***/
403 #define IPendingProxyConnection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
404 #define IPendingProxyConnection_AddRef(This) (This)->lpVtbl->AddRef(This)
405 #define IPendingProxyConnection_Release(This) (This)->lpVtbl->Release(This)
406 /*** IPendingProxyConnection methods ***/
407 #define IPendingProxyConnection_Cancel(This) (This)->lpVtbl->Cancel(This)
408 #else
409 /*** IUnknown methods ***/
410 static FORCEINLINE HRESULT IPendingProxyConnection_QueryInterface(IPendingProxyConnection* This,REFIID riid,void **ppvObject) {
411     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
412 }
413 static FORCEINLINE ULONG IPendingProxyConnection_AddRef(IPendingProxyConnection* This) {
414     return This->lpVtbl->AddRef(This);
415 }
416 static FORCEINLINE ULONG IPendingProxyConnection_Release(IPendingProxyConnection* This) {
417     return This->lpVtbl->Release(This);
418 }
419 /*** IPendingProxyConnection methods ***/
420 static FORCEINLINE HRESULT IPendingProxyConnection_Cancel(IPendingProxyConnection* This) {
421     return This->lpVtbl->Cancel(This);
422 }
423 #endif
424 #endif
425 
426 #endif
427 
428 
429 #endif  /* __IPendingProxyConnection_INTERFACE_DEFINED__ */
430 
431 /*****************************************************************************
432  * IDataChannel interface
433  */
434 #ifndef __IDataChannel_INTERFACE_DEFINED__
435 #define __IDataChannel_INTERFACE_DEFINED__
436 
437 DEFINE_GUID(IID_IDataChannel, 0xad42d12a, 0x4ad0, 0x4856, 0x91,0x9e, 0xe8,0x54,0xc9,0x1d,0x18,0x56);
438 #if defined(__cplusplus) && !defined(CINTERFACE)
439 MIDL_INTERFACE("ad42d12a-4ad0-4856-919e-e854c91d1856")
440 IDataChannel : public IUnknown
441 {
442     virtual HRESULT STDMETHODCALLTYPE Cancel(
443         ) = 0;
444 
445     virtual HRESULT STDMETHODCALLTYPE GetChannelProperties(
446         ALG_DATA_CHANNEL_PROPERTIES **ppProperties) = 0;
447 
448     virtual HRESULT STDMETHODCALLTYPE GetSessionCreationEventHandle(
449         HANDLE *pHandle) = 0;
450 
451     virtual HRESULT STDMETHODCALLTYPE GetSessionDeletionEventHandle(
452         HANDLE *pHandle) = 0;
453 
454 };
455 #ifdef __CRT_UUID_DECL
456 __CRT_UUID_DECL(IDataChannel, 0xad42d12a, 0x4ad0, 0x4856, 0x91,0x9e, 0xe8,0x54,0xc9,0x1d,0x18,0x56)
457 #endif
458 #else
459 typedef struct IDataChannelVtbl {
460     BEGIN_INTERFACE
461 
462     /*** IUnknown methods ***/
463     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
464         IDataChannel *This,
465         REFIID riid,
466         void **ppvObject);
467 
468     ULONG (STDMETHODCALLTYPE *AddRef)(
469         IDataChannel *This);
470 
471     ULONG (STDMETHODCALLTYPE *Release)(
472         IDataChannel *This);
473 
474     /*** IDataChannel methods ***/
475     HRESULT (STDMETHODCALLTYPE *Cancel)(
476         IDataChannel *This);
477 
478     HRESULT (STDMETHODCALLTYPE *GetChannelProperties)(
479         IDataChannel *This,
480         ALG_DATA_CHANNEL_PROPERTIES **ppProperties);
481 
482     HRESULT (STDMETHODCALLTYPE *GetSessionCreationEventHandle)(
483         IDataChannel *This,
484         HANDLE *pHandle);
485 
486     HRESULT (STDMETHODCALLTYPE *GetSessionDeletionEventHandle)(
487         IDataChannel *This,
488         HANDLE *pHandle);
489 
490     END_INTERFACE
491 } IDataChannelVtbl;
492 
493 interface IDataChannel {
494     CONST_VTBL IDataChannelVtbl* lpVtbl;
495 };
496 
497 #ifdef COBJMACROS
498 #ifndef WIDL_C_INLINE_WRAPPERS
499 /*** IUnknown methods ***/
500 #define IDataChannel_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
501 #define IDataChannel_AddRef(This) (This)->lpVtbl->AddRef(This)
502 #define IDataChannel_Release(This) (This)->lpVtbl->Release(This)
503 /*** IDataChannel methods ***/
504 #define IDataChannel_Cancel(This) (This)->lpVtbl->Cancel(This)
505 #define IDataChannel_GetChannelProperties(This,ppProperties) (This)->lpVtbl->GetChannelProperties(This,ppProperties)
506 #define IDataChannel_GetSessionCreationEventHandle(This,pHandle) (This)->lpVtbl->GetSessionCreationEventHandle(This,pHandle)
507 #define IDataChannel_GetSessionDeletionEventHandle(This,pHandle) (This)->lpVtbl->GetSessionDeletionEventHandle(This,pHandle)
508 #else
509 /*** IUnknown methods ***/
510 static FORCEINLINE HRESULT IDataChannel_QueryInterface(IDataChannel* This,REFIID riid,void **ppvObject) {
511     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
512 }
513 static FORCEINLINE ULONG IDataChannel_AddRef(IDataChannel* This) {
514     return This->lpVtbl->AddRef(This);
515 }
516 static FORCEINLINE ULONG IDataChannel_Release(IDataChannel* This) {
517     return This->lpVtbl->Release(This);
518 }
519 /*** IDataChannel methods ***/
520 static FORCEINLINE HRESULT IDataChannel_Cancel(IDataChannel* This) {
521     return This->lpVtbl->Cancel(This);
522 }
523 static FORCEINLINE HRESULT IDataChannel_GetChannelProperties(IDataChannel* This,ALG_DATA_CHANNEL_PROPERTIES **ppProperties) {
524     return This->lpVtbl->GetChannelProperties(This,ppProperties);
525 }
526 static FORCEINLINE HRESULT IDataChannel_GetSessionCreationEventHandle(IDataChannel* This,HANDLE *pHandle) {
527     return This->lpVtbl->GetSessionCreationEventHandle(This,pHandle);
528 }
529 static FORCEINLINE HRESULT IDataChannel_GetSessionDeletionEventHandle(IDataChannel* This,HANDLE *pHandle) {
530     return This->lpVtbl->GetSessionDeletionEventHandle(This,pHandle);
531 }
532 #endif
533 #endif
534 
535 #endif
536 
537 
538 #endif  /* __IDataChannel_INTERFACE_DEFINED__ */
539 
540 /*****************************************************************************
541  * IPersistentDataChannel interface
542  */
543 #ifndef __IPersistentDataChannel_INTERFACE_DEFINED__
544 #define __IPersistentDataChannel_INTERFACE_DEFINED__
545 
546 DEFINE_GUID(IID_IPersistentDataChannel, 0xa180e934, 0xd92a, 0x415d, 0x91,0x44, 0x75,0x9f,0x80,0x54,0xe8,0xf6);
547 #if defined(__cplusplus) && !defined(CINTERFACE)
548 MIDL_INTERFACE("a180e934-d92a-415d-9144-759f8054e8f6")
549 IPersistentDataChannel : public IUnknown
550 {
551     virtual HRESULT STDMETHODCALLTYPE Cancel(
552         ) = 0;
553 
554     virtual HRESULT STDMETHODCALLTYPE GetChannelProperties(
555         ALG_PERSISTENT_DATA_CHANNEL_PROPERTIES **ppProperties) = 0;
556 
557 };
558 #ifdef __CRT_UUID_DECL
559 __CRT_UUID_DECL(IPersistentDataChannel, 0xa180e934, 0xd92a, 0x415d, 0x91,0x44, 0x75,0x9f,0x80,0x54,0xe8,0xf6)
560 #endif
561 #else
562 typedef struct IPersistentDataChannelVtbl {
563     BEGIN_INTERFACE
564 
565     /*** IUnknown methods ***/
566     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
567         IPersistentDataChannel *This,
568         REFIID riid,
569         void **ppvObject);
570 
571     ULONG (STDMETHODCALLTYPE *AddRef)(
572         IPersistentDataChannel *This);
573 
574     ULONG (STDMETHODCALLTYPE *Release)(
575         IPersistentDataChannel *This);
576 
577     /*** IPersistentDataChannel methods ***/
578     HRESULT (STDMETHODCALLTYPE *Cancel)(
579         IPersistentDataChannel *This);
580 
581     HRESULT (STDMETHODCALLTYPE *GetChannelProperties)(
582         IPersistentDataChannel *This,
583         ALG_PERSISTENT_DATA_CHANNEL_PROPERTIES **ppProperties);
584 
585     END_INTERFACE
586 } IPersistentDataChannelVtbl;
587 
588 interface IPersistentDataChannel {
589     CONST_VTBL IPersistentDataChannelVtbl* lpVtbl;
590 };
591 
592 #ifdef COBJMACROS
593 #ifndef WIDL_C_INLINE_WRAPPERS
594 /*** IUnknown methods ***/
595 #define IPersistentDataChannel_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
596 #define IPersistentDataChannel_AddRef(This) (This)->lpVtbl->AddRef(This)
597 #define IPersistentDataChannel_Release(This) (This)->lpVtbl->Release(This)
598 /*** IPersistentDataChannel methods ***/
599 #define IPersistentDataChannel_Cancel(This) (This)->lpVtbl->Cancel(This)
600 #define IPersistentDataChannel_GetChannelProperties(This,ppProperties) (This)->lpVtbl->GetChannelProperties(This,ppProperties)
601 #else
602 /*** IUnknown methods ***/
603 static FORCEINLINE HRESULT IPersistentDataChannel_QueryInterface(IPersistentDataChannel* This,REFIID riid,void **ppvObject) {
604     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
605 }
606 static FORCEINLINE ULONG IPersistentDataChannel_AddRef(IPersistentDataChannel* This) {
607     return This->lpVtbl->AddRef(This);
608 }
609 static FORCEINLINE ULONG IPersistentDataChannel_Release(IPersistentDataChannel* This) {
610     return This->lpVtbl->Release(This);
611 }
612 /*** IPersistentDataChannel methods ***/
613 static FORCEINLINE HRESULT IPersistentDataChannel_Cancel(IPersistentDataChannel* This) {
614     return This->lpVtbl->Cancel(This);
615 }
616 static FORCEINLINE HRESULT IPersistentDataChannel_GetChannelProperties(IPersistentDataChannel* This,ALG_PERSISTENT_DATA_CHANNEL_PROPERTIES **ppProperties) {
617     return This->lpVtbl->GetChannelProperties(This,ppProperties);
618 }
619 #endif
620 #endif
621 
622 #endif
623 
624 
625 #endif  /* __IPersistentDataChannel_INTERFACE_DEFINED__ */
626 
627 /*****************************************************************************
628  * IPrimaryControlChannel interface
629  */
630 #ifndef __IPrimaryControlChannel_INTERFACE_DEFINED__
631 #define __IPrimaryControlChannel_INTERFACE_DEFINED__
632 
633 DEFINE_GUID(IID_IPrimaryControlChannel, 0x1a2e8b62, 0x9012, 0x4be6, 0x84,0xae, 0x32,0xbd,0x66,0xba,0x65,0x7a);
634 #if defined(__cplusplus) && !defined(CINTERFACE)
635 MIDL_INTERFACE("1a2e8b62-9012-4be6-84ae-32bd66ba657a")
636 IPrimaryControlChannel : public IUnknown
637 {
638     virtual HRESULT STDMETHODCALLTYPE Cancel(
639         ) = 0;
640 
641     virtual HRESULT STDMETHODCALLTYPE GetChannelProperties(
642         ALG_PRIMARY_CHANNEL_PROPERTIES **ppProperties) = 0;
643 
644     virtual HRESULT STDMETHODCALLTYPE GetOriginalDestinationInformation(
645         ULONG ulSourceAddress,
646         USHORT usSourcePort,
647         ULONG *pulOriginalDestinationAddress,
648         USHORT *pusOriginalDestinationPort,
649         ULONG *pulRemapDestinationAddress,
650         USHORT *pulRemapDestinationPort,
651         IAdapterInfo **ppReceiveAdapter) = 0;
652 
653 };
654 #ifdef __CRT_UUID_DECL
655 __CRT_UUID_DECL(IPrimaryControlChannel, 0x1a2e8b62, 0x9012, 0x4be6, 0x84,0xae, 0x32,0xbd,0x66,0xba,0x65,0x7a)
656 #endif
657 #else
658 typedef struct IPrimaryControlChannelVtbl {
659     BEGIN_INTERFACE
660 
661     /*** IUnknown methods ***/
662     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
663         IPrimaryControlChannel *This,
664         REFIID riid,
665         void **ppvObject);
666 
667     ULONG (STDMETHODCALLTYPE *AddRef)(
668         IPrimaryControlChannel *This);
669 
670     ULONG (STDMETHODCALLTYPE *Release)(
671         IPrimaryControlChannel *This);
672 
673     /*** IPrimaryControlChannel methods ***/
674     HRESULT (STDMETHODCALLTYPE *Cancel)(
675         IPrimaryControlChannel *This);
676 
677     HRESULT (STDMETHODCALLTYPE *GetChannelProperties)(
678         IPrimaryControlChannel *This,
679         ALG_PRIMARY_CHANNEL_PROPERTIES **ppProperties);
680 
681     HRESULT (STDMETHODCALLTYPE *GetOriginalDestinationInformation)(
682         IPrimaryControlChannel *This,
683         ULONG ulSourceAddress,
684         USHORT usSourcePort,
685         ULONG *pulOriginalDestinationAddress,
686         USHORT *pusOriginalDestinationPort,
687         ULONG *pulRemapDestinationAddress,
688         USHORT *pulRemapDestinationPort,
689         IAdapterInfo **ppReceiveAdapter);
690 
691     END_INTERFACE
692 } IPrimaryControlChannelVtbl;
693 
694 interface IPrimaryControlChannel {
695     CONST_VTBL IPrimaryControlChannelVtbl* lpVtbl;
696 };
697 
698 #ifdef COBJMACROS
699 #ifndef WIDL_C_INLINE_WRAPPERS
700 /*** IUnknown methods ***/
701 #define IPrimaryControlChannel_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
702 #define IPrimaryControlChannel_AddRef(This) (This)->lpVtbl->AddRef(This)
703 #define IPrimaryControlChannel_Release(This) (This)->lpVtbl->Release(This)
704 /*** IPrimaryControlChannel methods ***/
705 #define IPrimaryControlChannel_Cancel(This) (This)->lpVtbl->Cancel(This)
706 #define IPrimaryControlChannel_GetChannelProperties(This,ppProperties) (This)->lpVtbl->GetChannelProperties(This,ppProperties)
707 #define IPrimaryControlChannel_GetOriginalDestinationInformation(This,ulSourceAddress,usSourcePort,pulOriginalDestinationAddress,pusOriginalDestinationPort,pulRemapDestinationAddress,pulRemapDestinationPort,ppReceiveAdapter) (This)->lpVtbl->GetOriginalDestinationInformation(This,ulSourceAddress,usSourcePort,pulOriginalDestinationAddress,pusOriginalDestinationPort,pulRemapDestinationAddress,pulRemapDestinationPort,ppReceiveAdapter)
708 #else
709 /*** IUnknown methods ***/
710 static FORCEINLINE HRESULT IPrimaryControlChannel_QueryInterface(IPrimaryControlChannel* This,REFIID riid,void **ppvObject) {
711     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
712 }
713 static FORCEINLINE ULONG IPrimaryControlChannel_AddRef(IPrimaryControlChannel* This) {
714     return This->lpVtbl->AddRef(This);
715 }
716 static FORCEINLINE ULONG IPrimaryControlChannel_Release(IPrimaryControlChannel* This) {
717     return This->lpVtbl->Release(This);
718 }
719 /*** IPrimaryControlChannel methods ***/
720 static FORCEINLINE HRESULT IPrimaryControlChannel_Cancel(IPrimaryControlChannel* This) {
721     return This->lpVtbl->Cancel(This);
722 }
723 static FORCEINLINE HRESULT IPrimaryControlChannel_GetChannelProperties(IPrimaryControlChannel* This,ALG_PRIMARY_CHANNEL_PROPERTIES **ppProperties) {
724     return This->lpVtbl->GetChannelProperties(This,ppProperties);
725 }
726 static FORCEINLINE HRESULT IPrimaryControlChannel_GetOriginalDestinationInformation(IPrimaryControlChannel* This,ULONG ulSourceAddress,USHORT usSourcePort,ULONG *pulOriginalDestinationAddress,USHORT *pusOriginalDestinationPort,ULONG *pulRemapDestinationAddress,USHORT *pulRemapDestinationPort,IAdapterInfo **ppReceiveAdapter) {
727     return This->lpVtbl->GetOriginalDestinationInformation(This,ulSourceAddress,usSourcePort,pulOriginalDestinationAddress,pusOriginalDestinationPort,pulRemapDestinationAddress,pulRemapDestinationPort,ppReceiveAdapter);
728 }
729 #endif
730 #endif
731 
732 #endif
733 
734 
735 #endif  /* __IPrimaryControlChannel_INTERFACE_DEFINED__ */
736 
737 /*****************************************************************************
738  * ISecondaryControlChannel interface
739  */
740 #ifndef __ISecondaryControlChannel_INTERFACE_DEFINED__
741 #define __ISecondaryControlChannel_INTERFACE_DEFINED__
742 
743 DEFINE_GUID(IID_ISecondaryControlChannel, 0xa23f9d10, 0x714c, 0x41fe, 0x84,0x71, 0xff,0xb1,0x9b,0xc2,0x84,0x54);
744 #if defined(__cplusplus) && !defined(CINTERFACE)
745 MIDL_INTERFACE("a23f9d10-714c-41fe-8471-ffb19bc28454")
746 ISecondaryControlChannel : public IUnknown
747 {
748     virtual HRESULT STDMETHODCALLTYPE Cancel(
749         ) = 0;
750 
751     virtual HRESULT STDMETHODCALLTYPE GetChannelProperties(
752         ALG_SECONDARY_CHANNEL_PROPERTIES **ppProperties) = 0;
753 
754     virtual HRESULT STDMETHODCALLTYPE GetOriginalDestinationInformation(
755         ULONG ulSourceAddress,
756         USHORT usSourcePort,
757         ULONG *pulOriginalDestinationAddress,
758         USHORT *pusOriginalDestinationPort,
759         IAdapterInfo **ppReceiveAdapter) = 0;
760 
761 };
762 #ifdef __CRT_UUID_DECL
763 __CRT_UUID_DECL(ISecondaryControlChannel, 0xa23f9d10, 0x714c, 0x41fe, 0x84,0x71, 0xff,0xb1,0x9b,0xc2,0x84,0x54)
764 #endif
765 #else
766 typedef struct ISecondaryControlChannelVtbl {
767     BEGIN_INTERFACE
768 
769     /*** IUnknown methods ***/
770     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
771         ISecondaryControlChannel *This,
772         REFIID riid,
773         void **ppvObject);
774 
775     ULONG (STDMETHODCALLTYPE *AddRef)(
776         ISecondaryControlChannel *This);
777 
778     ULONG (STDMETHODCALLTYPE *Release)(
779         ISecondaryControlChannel *This);
780 
781     /*** ISecondaryControlChannel methods ***/
782     HRESULT (STDMETHODCALLTYPE *Cancel)(
783         ISecondaryControlChannel *This);
784 
785     HRESULT (STDMETHODCALLTYPE *GetChannelProperties)(
786         ISecondaryControlChannel *This,
787         ALG_SECONDARY_CHANNEL_PROPERTIES **ppProperties);
788 
789     HRESULT (STDMETHODCALLTYPE *GetOriginalDestinationInformation)(
790         ISecondaryControlChannel *This,
791         ULONG ulSourceAddress,
792         USHORT usSourcePort,
793         ULONG *pulOriginalDestinationAddress,
794         USHORT *pusOriginalDestinationPort,
795         IAdapterInfo **ppReceiveAdapter);
796 
797     END_INTERFACE
798 } ISecondaryControlChannelVtbl;
799 
800 interface ISecondaryControlChannel {
801     CONST_VTBL ISecondaryControlChannelVtbl* lpVtbl;
802 };
803 
804 #ifdef COBJMACROS
805 #ifndef WIDL_C_INLINE_WRAPPERS
806 /*** IUnknown methods ***/
807 #define ISecondaryControlChannel_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
808 #define ISecondaryControlChannel_AddRef(This) (This)->lpVtbl->AddRef(This)
809 #define ISecondaryControlChannel_Release(This) (This)->lpVtbl->Release(This)
810 /*** ISecondaryControlChannel methods ***/
811 #define ISecondaryControlChannel_Cancel(This) (This)->lpVtbl->Cancel(This)
812 #define ISecondaryControlChannel_GetChannelProperties(This,ppProperties) (This)->lpVtbl->GetChannelProperties(This,ppProperties)
813 #define ISecondaryControlChannel_GetOriginalDestinationInformation(This,ulSourceAddress,usSourcePort,pulOriginalDestinationAddress,pusOriginalDestinationPort,ppReceiveAdapter) (This)->lpVtbl->GetOriginalDestinationInformation(This,ulSourceAddress,usSourcePort,pulOriginalDestinationAddress,pusOriginalDestinationPort,ppReceiveAdapter)
814 #else
815 /*** IUnknown methods ***/
816 static FORCEINLINE HRESULT ISecondaryControlChannel_QueryInterface(ISecondaryControlChannel* This,REFIID riid,void **ppvObject) {
817     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
818 }
819 static FORCEINLINE ULONG ISecondaryControlChannel_AddRef(ISecondaryControlChannel* This) {
820     return This->lpVtbl->AddRef(This);
821 }
822 static FORCEINLINE ULONG ISecondaryControlChannel_Release(ISecondaryControlChannel* This) {
823     return This->lpVtbl->Release(This);
824 }
825 /*** ISecondaryControlChannel methods ***/
826 static FORCEINLINE HRESULT ISecondaryControlChannel_Cancel(ISecondaryControlChannel* This) {
827     return This->lpVtbl->Cancel(This);
828 }
829 static FORCEINLINE HRESULT ISecondaryControlChannel_GetChannelProperties(ISecondaryControlChannel* This,ALG_SECONDARY_CHANNEL_PROPERTIES **ppProperties) {
830     return This->lpVtbl->GetChannelProperties(This,ppProperties);
831 }
832 static FORCEINLINE HRESULT ISecondaryControlChannel_GetOriginalDestinationInformation(ISecondaryControlChannel* This,ULONG ulSourceAddress,USHORT usSourcePort,ULONG *pulOriginalDestinationAddress,USHORT *pusOriginalDestinationPort,IAdapterInfo **ppReceiveAdapter) {
833     return This->lpVtbl->GetOriginalDestinationInformation(This,ulSourceAddress,usSourcePort,pulOriginalDestinationAddress,pusOriginalDestinationPort,ppReceiveAdapter);
834 }
835 #endif
836 #endif
837 
838 #endif
839 
840 
841 #endif  /* __ISecondaryControlChannel_INTERFACE_DEFINED__ */
842 
843 /*****************************************************************************
844  * IEnumAdapterInfo interface
845  */
846 #ifndef __IEnumAdapterInfo_INTERFACE_DEFINED__
847 #define __IEnumAdapterInfo_INTERFACE_DEFINED__
848 
849 DEFINE_GUID(IID_IEnumAdapterInfo, 0xa23f9d11, 0x714c, 0x41fe, 0x84,0x71, 0xff,0xb1,0x9b,0xc2,0x84,0x54);
850 #if defined(__cplusplus) && !defined(CINTERFACE)
851 MIDL_INTERFACE("a23f9d11-714c-41fe-8471-ffb19bc28454")
852 IEnumAdapterInfo : public IUnknown
853 {
854     virtual HRESULT STDMETHODCALLTYPE Next(
855         ULONG celt,
856         IAdapterInfo **rgAI,
857         ULONG *pCeltFetched) = 0;
858 
859     virtual HRESULT STDMETHODCALLTYPE Skip(
860         ULONG celt) = 0;
861 
862     virtual HRESULT STDMETHODCALLTYPE Reset(
863         ) = 0;
864 
865     virtual HRESULT STDMETHODCALLTYPE Clone(
866         IEnumAdapterInfo **ppEnum) = 0;
867 
868 };
869 #ifdef __CRT_UUID_DECL
870 __CRT_UUID_DECL(IEnumAdapterInfo, 0xa23f9d11, 0x714c, 0x41fe, 0x84,0x71, 0xff,0xb1,0x9b,0xc2,0x84,0x54)
871 #endif
872 #else
873 typedef struct IEnumAdapterInfoVtbl {
874     BEGIN_INTERFACE
875 
876     /*** IUnknown methods ***/
877     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
878         IEnumAdapterInfo *This,
879         REFIID riid,
880         void **ppvObject);
881 
882     ULONG (STDMETHODCALLTYPE *AddRef)(
883         IEnumAdapterInfo *This);
884 
885     ULONG (STDMETHODCALLTYPE *Release)(
886         IEnumAdapterInfo *This);
887 
888     /*** IEnumAdapterInfo methods ***/
889     HRESULT (STDMETHODCALLTYPE *Next)(
890         IEnumAdapterInfo *This,
891         ULONG celt,
892         IAdapterInfo **rgAI,
893         ULONG *pCeltFetched);
894 
895     HRESULT (STDMETHODCALLTYPE *Skip)(
896         IEnumAdapterInfo *This,
897         ULONG celt);
898 
899     HRESULT (STDMETHODCALLTYPE *Reset)(
900         IEnumAdapterInfo *This);
901 
902     HRESULT (STDMETHODCALLTYPE *Clone)(
903         IEnumAdapterInfo *This,
904         IEnumAdapterInfo **ppEnum);
905 
906     END_INTERFACE
907 } IEnumAdapterInfoVtbl;
908 
909 interface IEnumAdapterInfo {
910     CONST_VTBL IEnumAdapterInfoVtbl* lpVtbl;
911 };
912 
913 #ifdef COBJMACROS
914 #ifndef WIDL_C_INLINE_WRAPPERS
915 /*** IUnknown methods ***/
916 #define IEnumAdapterInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
917 #define IEnumAdapterInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
918 #define IEnumAdapterInfo_Release(This) (This)->lpVtbl->Release(This)
919 /*** IEnumAdapterInfo methods ***/
920 #define IEnumAdapterInfo_Next(This,celt,rgAI,pCeltFetched) (This)->lpVtbl->Next(This,celt,rgAI,pCeltFetched)
921 #define IEnumAdapterInfo_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
922 #define IEnumAdapterInfo_Reset(This) (This)->lpVtbl->Reset(This)
923 #define IEnumAdapterInfo_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
924 #else
925 /*** IUnknown methods ***/
926 static FORCEINLINE HRESULT IEnumAdapterInfo_QueryInterface(IEnumAdapterInfo* This,REFIID riid,void **ppvObject) {
927     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
928 }
929 static FORCEINLINE ULONG IEnumAdapterInfo_AddRef(IEnumAdapterInfo* This) {
930     return This->lpVtbl->AddRef(This);
931 }
932 static FORCEINLINE ULONG IEnumAdapterInfo_Release(IEnumAdapterInfo* This) {
933     return This->lpVtbl->Release(This);
934 }
935 /*** IEnumAdapterInfo methods ***/
936 static FORCEINLINE HRESULT IEnumAdapterInfo_Next(IEnumAdapterInfo* This,ULONG celt,IAdapterInfo **rgAI,ULONG *pCeltFetched) {
937     return This->lpVtbl->Next(This,celt,rgAI,pCeltFetched);
938 }
939 static FORCEINLINE HRESULT IEnumAdapterInfo_Skip(IEnumAdapterInfo* This,ULONG celt) {
940     return This->lpVtbl->Skip(This,celt);
941 }
942 static FORCEINLINE HRESULT IEnumAdapterInfo_Reset(IEnumAdapterInfo* This) {
943     return This->lpVtbl->Reset(This);
944 }
945 static FORCEINLINE HRESULT IEnumAdapterInfo_Clone(IEnumAdapterInfo* This,IEnumAdapterInfo **ppEnum) {
946     return This->lpVtbl->Clone(This,ppEnum);
947 }
948 #endif
949 #endif
950 
951 #endif
952 
953 
954 #endif  /* __IEnumAdapterInfo_INTERFACE_DEFINED__ */
955 
956 /*****************************************************************************
957  * IAdapterNotificationSink interface
958  */
959 #ifndef __IAdapterNotificationSink_INTERFACE_DEFINED__
960 #define __IAdapterNotificationSink_INTERFACE_DEFINED__
961 
962 DEFINE_GUID(IID_IAdapterNotificationSink, 0x44ab2dc3, 0x23b2, 0x47de, 0x82,0x28, 0x2e,0x1c,0xce,0xeb,0x99,0x11);
963 #if defined(__cplusplus) && !defined(CINTERFACE)
964 MIDL_INTERFACE("44ab2dc3-23b2-47de-8228-2e1cceeb9911")
965 IAdapterNotificationSink : public IUnknown
966 {
967     virtual HRESULT STDMETHODCALLTYPE AdapterAdded(
968         IAdapterInfo *pAdapter) = 0;
969 
970     virtual HRESULT STDMETHODCALLTYPE AdapterRemoved(
971         IAdapterInfo *pAdapter) = 0;
972 
973     virtual HRESULT STDMETHODCALLTYPE AdapterModified(
974         IAdapterInfo *pAdapter) = 0;
975 
976     virtual HRESULT STDMETHODCALLTYPE AdapterUpdatePortMapping(
977         IAdapterInfo *pAdapter) = 0;
978 
979 };
980 #ifdef __CRT_UUID_DECL
981 __CRT_UUID_DECL(IAdapterNotificationSink, 0x44ab2dc3, 0x23b2, 0x47de, 0x82,0x28, 0x2e,0x1c,0xce,0xeb,0x99,0x11)
982 #endif
983 #else
984 typedef struct IAdapterNotificationSinkVtbl {
985     BEGIN_INTERFACE
986 
987     /*** IUnknown methods ***/
988     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
989         IAdapterNotificationSink *This,
990         REFIID riid,
991         void **ppvObject);
992 
993     ULONG (STDMETHODCALLTYPE *AddRef)(
994         IAdapterNotificationSink *This);
995 
996     ULONG (STDMETHODCALLTYPE *Release)(
997         IAdapterNotificationSink *This);
998 
999     /*** IAdapterNotificationSink methods ***/
1000     HRESULT (STDMETHODCALLTYPE *AdapterAdded)(
1001         IAdapterNotificationSink *This,
1002         IAdapterInfo *pAdapter);
1003 
1004     HRESULT (STDMETHODCALLTYPE *AdapterRemoved)(
1005         IAdapterNotificationSink *This,
1006         IAdapterInfo *pAdapter);
1007 
1008     HRESULT (STDMETHODCALLTYPE *AdapterModified)(
1009         IAdapterNotificationSink *This,
1010         IAdapterInfo *pAdapter);
1011 
1012     HRESULT (STDMETHODCALLTYPE *AdapterUpdatePortMapping)(
1013         IAdapterNotificationSink *This,
1014         IAdapterInfo *pAdapter);
1015 
1016     END_INTERFACE
1017 } IAdapterNotificationSinkVtbl;
1018 
1019 interface IAdapterNotificationSink {
1020     CONST_VTBL IAdapterNotificationSinkVtbl* lpVtbl;
1021 };
1022 
1023 #ifdef COBJMACROS
1024 #ifndef WIDL_C_INLINE_WRAPPERS
1025 /*** IUnknown methods ***/
1026 #define IAdapterNotificationSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1027 #define IAdapterNotificationSink_AddRef(This) (This)->lpVtbl->AddRef(This)
1028 #define IAdapterNotificationSink_Release(This) (This)->lpVtbl->Release(This)
1029 /*** IAdapterNotificationSink methods ***/
1030 #define IAdapterNotificationSink_AdapterAdded(This,pAdapter) (This)->lpVtbl->AdapterAdded(This,pAdapter)
1031 #define IAdapterNotificationSink_AdapterRemoved(This,pAdapter) (This)->lpVtbl->AdapterRemoved(This,pAdapter)
1032 #define IAdapterNotificationSink_AdapterModified(This,pAdapter) (This)->lpVtbl->AdapterModified(This,pAdapter)
1033 #define IAdapterNotificationSink_AdapterUpdatePortMapping(This,pAdapter) (This)->lpVtbl->AdapterUpdatePortMapping(This,pAdapter)
1034 #else
1035 /*** IUnknown methods ***/
1036 static FORCEINLINE HRESULT IAdapterNotificationSink_QueryInterface(IAdapterNotificationSink* This,REFIID riid,void **ppvObject) {
1037     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1038 }
1039 static FORCEINLINE ULONG IAdapterNotificationSink_AddRef(IAdapterNotificationSink* This) {
1040     return This->lpVtbl->AddRef(This);
1041 }
1042 static FORCEINLINE ULONG IAdapterNotificationSink_Release(IAdapterNotificationSink* This) {
1043     return This->lpVtbl->Release(This);
1044 }
1045 /*** IAdapterNotificationSink methods ***/
1046 static FORCEINLINE HRESULT IAdapterNotificationSink_AdapterAdded(IAdapterNotificationSink* This,IAdapterInfo *pAdapter) {
1047     return This->lpVtbl->AdapterAdded(This,pAdapter);
1048 }
1049 static FORCEINLINE HRESULT IAdapterNotificationSink_AdapterRemoved(IAdapterNotificationSink* This,IAdapterInfo *pAdapter) {
1050     return This->lpVtbl->AdapterRemoved(This,pAdapter);
1051 }
1052 static FORCEINLINE HRESULT IAdapterNotificationSink_AdapterModified(IAdapterNotificationSink* This,IAdapterInfo *pAdapter) {
1053     return This->lpVtbl->AdapterModified(This,pAdapter);
1054 }
1055 static FORCEINLINE HRESULT IAdapterNotificationSink_AdapterUpdatePortMapping(IAdapterNotificationSink* This,IAdapterInfo *pAdapter) {
1056     return This->lpVtbl->AdapterUpdatePortMapping(This,pAdapter);
1057 }
1058 #endif
1059 #endif
1060 
1061 #endif
1062 
1063 
1064 #endif  /* __IAdapterNotificationSink_INTERFACE_DEFINED__ */
1065 
1066 /*****************************************************************************
1067  * IApplicationGatewayServices interface
1068  */
1069 #ifndef __IApplicationGatewayServices_INTERFACE_DEFINED__
1070 #define __IApplicationGatewayServices_INTERFACE_DEFINED__
1071 
1072 DEFINE_GUID(IID_IApplicationGatewayServices, 0x5134842a, 0xfdce, 0x485d, 0x93,0xcd, 0xde,0x16,0x40,0x64,0x3b,0xbe);
1073 #if defined(__cplusplus) && !defined(CINTERFACE)
1074 MIDL_INTERFACE("5134842a-fdce-485d-93cd-de1640643bbe")
1075 IApplicationGatewayServices : public IUnknown
1076 {
1077     virtual HRESULT STDMETHODCALLTYPE CreatePrimaryControlChannel(
1078         ULONG uAdapterIndex,
1079         ALG_PROTOCOL eProtocol,
1080         USHORT usPortToCapture,
1081         ALG_CAPTURE eCaptureType,
1082         WINBOOL fCaptureInbound,
1083         ULONG ulListenAddress,
1084         USHORT usListenPort,
1085         IPrimaryControlChannel **ppIControlChannel) = 0;
1086 
1087     virtual HRESULT STDMETHODCALLTYPE CreateSecondaryControlChannel(
1088         ALG_PROTOCOL eProtocol,
1089         ULONG ulPrivateAddress,
1090         USHORT usPrivatePort,
1091         ULONG ulPublicAddress,
1092         USHORT usPublicPort,
1093         ULONG ulRemoteAddress,
1094         USHORT usRemotePort,
1095         ULONG ulListenAddress,
1096         USHORT usListenPort,
1097         ALG_DIRECTION eDirection,
1098         WINBOOL fPersistent,
1099         ISecondaryControlChannel **ppControlChannel) = 0;
1100 
1101     virtual HRESULT STDMETHODCALLTYPE GetBestSourceAddressForDestinationAddress(
1102         ULONG ulDstAddress,
1103         WINBOOL fDemandDial,
1104         ULONG *pulBestSrcAddress) = 0;
1105 
1106     virtual HRESULT STDMETHODCALLTYPE PrepareProxyConnection(
1107         ALG_PROTOCOL eProtocol,
1108         ULONG ulSrcAddress,
1109         USHORT usSrcPort,
1110         ULONG ulDstAddress,
1111         USHORT usDstPort,
1112         WINBOOL fNoTimeout,
1113         IPendingProxyConnection **ppPendingConnection) = 0;
1114 
1115     virtual HRESULT STDMETHODCALLTYPE PrepareSourceModifiedProxyConnection(
1116         ALG_PROTOCOL eProtocol,
1117         ULONG ulSrcAddress,
1118         USHORT usSrcPort,
1119         ULONG ulDstAddress,
1120         USHORT usDstPort,
1121         ULONG ulNewSrcAddress,
1122         USHORT usNewSourcePort,
1123         IPendingProxyConnection **ppPendingConnection) = 0;
1124 
1125     virtual HRESULT STDMETHODCALLTYPE CreateDataChannel(
1126         ALG_PROTOCOL eProtocol,
1127         ULONG ulPrivateAddress,
1128         USHORT usPrivatePort,
1129         ULONG ulPublicAddress,
1130         USHORT usPublicPort,
1131         ULONG ulRemoteAddress,
1132         USHORT usRemotePort,
1133         ALG_DIRECTION eDirection,
1134         ALG_NOTIFICATION eDesiredNotification,
1135         WINBOOL fNoTimeout,
1136         IDataChannel **ppDataChannel) = 0;
1137 
1138     virtual HRESULT STDMETHODCALLTYPE CreatePersistentDataChannel(
1139         ALG_PROTOCOL eProtocol,
1140         ULONG ulPrivateAddress,
1141         USHORT usPrivatePort,
1142         ULONG ulPublicAddress,
1143         USHORT usPublicPort,
1144         ULONG ulRemoteAddress,
1145         USHORT usRemotePort,
1146         ALG_DIRECTION eDirection,
1147         IPersistentDataChannel **ppIPersistentDataChannel) = 0;
1148 
1149     virtual HRESULT STDMETHODCALLTYPE ReservePort(
1150         USHORT usPortCount,
1151         USHORT *pusReservedPort) = 0;
1152 
1153     virtual HRESULT STDMETHODCALLTYPE ReleaseReservedPort(
1154         USHORT usReservedPortBase,
1155         USHORT usPortCount) = 0;
1156 
1157     virtual HRESULT STDMETHODCALLTYPE EnumerateAdapters(
1158         IEnumAdapterInfo **ppIEnumAdapterInfo) = 0;
1159 
1160     virtual HRESULT STDMETHODCALLTYPE StartAdapterNotifications(
1161         IAdapterNotificationSink *pSink,
1162         DWORD *pdwCookie) = 0;
1163 
1164     virtual HRESULT STDMETHODCALLTYPE StopAdapterNotifications(
1165         DWORD dwCookieOfSink) = 0;
1166 
1167     virtual HRESULT STDMETHODCALLTYPE LookupAdapterPortMapping(
1168         ULONG ulAdapterIndex,
1169         UCHAR Protocol,
1170         ULONG ulDestinationAddress,
1171         USHORT usDestinationPort,
1172         ULONG *pulRemapAddress,
1173         USHORT *pusRemapPort) = 0;
1174 
1175 };
1176 #ifdef __CRT_UUID_DECL
1177 __CRT_UUID_DECL(IApplicationGatewayServices, 0x5134842a, 0xfdce, 0x485d, 0x93,0xcd, 0xde,0x16,0x40,0x64,0x3b,0xbe)
1178 #endif
1179 #else
1180 typedef struct IApplicationGatewayServicesVtbl {
1181     BEGIN_INTERFACE
1182 
1183     /*** IUnknown methods ***/
1184     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1185         IApplicationGatewayServices *This,
1186         REFIID riid,
1187         void **ppvObject);
1188 
1189     ULONG (STDMETHODCALLTYPE *AddRef)(
1190         IApplicationGatewayServices *This);
1191 
1192     ULONG (STDMETHODCALLTYPE *Release)(
1193         IApplicationGatewayServices *This);
1194 
1195     /*** IApplicationGatewayServices methods ***/
1196     HRESULT (STDMETHODCALLTYPE *CreatePrimaryControlChannel)(
1197         IApplicationGatewayServices *This,
1198         ULONG uAdapterIndex,
1199         ALG_PROTOCOL eProtocol,
1200         USHORT usPortToCapture,
1201         ALG_CAPTURE eCaptureType,
1202         WINBOOL fCaptureInbound,
1203         ULONG ulListenAddress,
1204         USHORT usListenPort,
1205         IPrimaryControlChannel **ppIControlChannel);
1206 
1207     HRESULT (STDMETHODCALLTYPE *CreateSecondaryControlChannel)(
1208         IApplicationGatewayServices *This,
1209         ALG_PROTOCOL eProtocol,
1210         ULONG ulPrivateAddress,
1211         USHORT usPrivatePort,
1212         ULONG ulPublicAddress,
1213         USHORT usPublicPort,
1214         ULONG ulRemoteAddress,
1215         USHORT usRemotePort,
1216         ULONG ulListenAddress,
1217         USHORT usListenPort,
1218         ALG_DIRECTION eDirection,
1219         WINBOOL fPersistent,
1220         ISecondaryControlChannel **ppControlChannel);
1221 
1222     HRESULT (STDMETHODCALLTYPE *GetBestSourceAddressForDestinationAddress)(
1223         IApplicationGatewayServices *This,
1224         ULONG ulDstAddress,
1225         WINBOOL fDemandDial,
1226         ULONG *pulBestSrcAddress);
1227 
1228     HRESULT (STDMETHODCALLTYPE *PrepareProxyConnection)(
1229         IApplicationGatewayServices *This,
1230         ALG_PROTOCOL eProtocol,
1231         ULONG ulSrcAddress,
1232         USHORT usSrcPort,
1233         ULONG ulDstAddress,
1234         USHORT usDstPort,
1235         WINBOOL fNoTimeout,
1236         IPendingProxyConnection **ppPendingConnection);
1237 
1238     HRESULT (STDMETHODCALLTYPE *PrepareSourceModifiedProxyConnection)(
1239         IApplicationGatewayServices *This,
1240         ALG_PROTOCOL eProtocol,
1241         ULONG ulSrcAddress,
1242         USHORT usSrcPort,
1243         ULONG ulDstAddress,
1244         USHORT usDstPort,
1245         ULONG ulNewSrcAddress,
1246         USHORT usNewSourcePort,
1247         IPendingProxyConnection **ppPendingConnection);
1248 
1249     HRESULT (STDMETHODCALLTYPE *CreateDataChannel)(
1250         IApplicationGatewayServices *This,
1251         ALG_PROTOCOL eProtocol,
1252         ULONG ulPrivateAddress,
1253         USHORT usPrivatePort,
1254         ULONG ulPublicAddress,
1255         USHORT usPublicPort,
1256         ULONG ulRemoteAddress,
1257         USHORT usRemotePort,
1258         ALG_DIRECTION eDirection,
1259         ALG_NOTIFICATION eDesiredNotification,
1260         WINBOOL fNoTimeout,
1261         IDataChannel **ppDataChannel);
1262 
1263     HRESULT (STDMETHODCALLTYPE *CreatePersistentDataChannel)(
1264         IApplicationGatewayServices *This,
1265         ALG_PROTOCOL eProtocol,
1266         ULONG ulPrivateAddress,
1267         USHORT usPrivatePort,
1268         ULONG ulPublicAddress,
1269         USHORT usPublicPort,
1270         ULONG ulRemoteAddress,
1271         USHORT usRemotePort,
1272         ALG_DIRECTION eDirection,
1273         IPersistentDataChannel **ppIPersistentDataChannel);
1274 
1275     HRESULT (STDMETHODCALLTYPE *ReservePort)(
1276         IApplicationGatewayServices *This,
1277         USHORT usPortCount,
1278         USHORT *pusReservedPort);
1279 
1280     HRESULT (STDMETHODCALLTYPE *ReleaseReservedPort)(
1281         IApplicationGatewayServices *This,
1282         USHORT usReservedPortBase,
1283         USHORT usPortCount);
1284 
1285     HRESULT (STDMETHODCALLTYPE *EnumerateAdapters)(
1286         IApplicationGatewayServices *This,
1287         IEnumAdapterInfo **ppIEnumAdapterInfo);
1288 
1289     HRESULT (STDMETHODCALLTYPE *StartAdapterNotifications)(
1290         IApplicationGatewayServices *This,
1291         IAdapterNotificationSink *pSink,
1292         DWORD *pdwCookie);
1293 
1294     HRESULT (STDMETHODCALLTYPE *StopAdapterNotifications)(
1295         IApplicationGatewayServices *This,
1296         DWORD dwCookieOfSink);
1297 
1298     HRESULT (STDMETHODCALLTYPE *LookupAdapterPortMapping)(
1299         IApplicationGatewayServices *This,
1300         ULONG ulAdapterIndex,
1301         UCHAR Protocol,
1302         ULONG ulDestinationAddress,
1303         USHORT usDestinationPort,
1304         ULONG *pulRemapAddress,
1305         USHORT *pusRemapPort);
1306 
1307     END_INTERFACE
1308 } IApplicationGatewayServicesVtbl;
1309 
1310 interface IApplicationGatewayServices {
1311     CONST_VTBL IApplicationGatewayServicesVtbl* lpVtbl;
1312 };
1313 
1314 #ifdef COBJMACROS
1315 #ifndef WIDL_C_INLINE_WRAPPERS
1316 /*** IUnknown methods ***/
1317 #define IApplicationGatewayServices_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1318 #define IApplicationGatewayServices_AddRef(This) (This)->lpVtbl->AddRef(This)
1319 #define IApplicationGatewayServices_Release(This) (This)->lpVtbl->Release(This)
1320 /*** IApplicationGatewayServices methods ***/
1321 #define IApplicationGatewayServices_CreatePrimaryControlChannel(This,uAdapterIndex,eProtocol,usPortToCapture,eCaptureType,fCaptureInbound,ulListenAddress,usListenPort,ppIControlChannel) (This)->lpVtbl->CreatePrimaryControlChannel(This,uAdapterIndex,eProtocol,usPortToCapture,eCaptureType,fCaptureInbound,ulListenAddress,usListenPort,ppIControlChannel)
1322 #define IApplicationGatewayServices_CreateSecondaryControlChannel(This,eProtocol,ulPrivateAddress,usPrivatePort,ulPublicAddress,usPublicPort,ulRemoteAddress,usRemotePort,ulListenAddress,usListenPort,eDirection,fPersistent,ppControlChannel) (This)->lpVtbl->CreateSecondaryControlChannel(This,eProtocol,ulPrivateAddress,usPrivatePort,ulPublicAddress,usPublicPort,ulRemoteAddress,usRemotePort,ulListenAddress,usListenPort,eDirection,fPersistent,ppControlChannel)
1323 #define IApplicationGatewayServices_GetBestSourceAddressForDestinationAddress(This,ulDstAddress,fDemandDial,pulBestSrcAddress) (This)->lpVtbl->GetBestSourceAddressForDestinationAddress(This,ulDstAddress,fDemandDial,pulBestSrcAddress)
1324 #define IApplicationGatewayServices_PrepareProxyConnection(This,eProtocol,ulSrcAddress,usSrcPort,ulDstAddress,usDstPort,fNoTimeout,ppPendingConnection) (This)->lpVtbl->PrepareProxyConnection(This,eProtocol,ulSrcAddress,usSrcPort,ulDstAddress,usDstPort,fNoTimeout,ppPendingConnection)
1325 #define IApplicationGatewayServices_PrepareSourceModifiedProxyConnection(This,eProtocol,ulSrcAddress,usSrcPort,ulDstAddress,usDstPort,ulNewSrcAddress,usNewSourcePort,ppPendingConnection) (This)->lpVtbl->PrepareSourceModifiedProxyConnection(This,eProtocol,ulSrcAddress,usSrcPort,ulDstAddress,usDstPort,ulNewSrcAddress,usNewSourcePort,ppPendingConnection)
1326 #define IApplicationGatewayServices_CreateDataChannel(This,eProtocol,ulPrivateAddress,usPrivatePort,ulPublicAddress,usPublicPort,ulRemoteAddress,usRemotePort,eDirection,eDesiredNotification,fNoTimeout,ppDataChannel) (This)->lpVtbl->CreateDataChannel(This,eProtocol,ulPrivateAddress,usPrivatePort,ulPublicAddress,usPublicPort,ulRemoteAddress,usRemotePort,eDirection,eDesiredNotification,fNoTimeout,ppDataChannel)
1327 #define IApplicationGatewayServices_CreatePersistentDataChannel(This,eProtocol,ulPrivateAddress,usPrivatePort,ulPublicAddress,usPublicPort,ulRemoteAddress,usRemotePort,eDirection,ppIPersistentDataChannel) (This)->lpVtbl->CreatePersistentDataChannel(This,eProtocol,ulPrivateAddress,usPrivatePort,ulPublicAddress,usPublicPort,ulRemoteAddress,usRemotePort,eDirection,ppIPersistentDataChannel)
1328 #define IApplicationGatewayServices_ReservePort(This,usPortCount,pusReservedPort) (This)->lpVtbl->ReservePort(This,usPortCount,pusReservedPort)
1329 #define IApplicationGatewayServices_ReleaseReservedPort(This,usReservedPortBase,usPortCount) (This)->lpVtbl->ReleaseReservedPort(This,usReservedPortBase,usPortCount)
1330 #define IApplicationGatewayServices_EnumerateAdapters(This,ppIEnumAdapterInfo) (This)->lpVtbl->EnumerateAdapters(This,ppIEnumAdapterInfo)
1331 #define IApplicationGatewayServices_StartAdapterNotifications(This,pSink,pdwCookie) (This)->lpVtbl->StartAdapterNotifications(This,pSink,pdwCookie)
1332 #define IApplicationGatewayServices_StopAdapterNotifications(This,dwCookieOfSink) (This)->lpVtbl->StopAdapterNotifications(This,dwCookieOfSink)
1333 #define IApplicationGatewayServices_LookupAdapterPortMapping(This,ulAdapterIndex,Protocol,ulDestinationAddress,usDestinationPort,pulRemapAddress,pusRemapPort) (This)->lpVtbl->LookupAdapterPortMapping(This,ulAdapterIndex,Protocol,ulDestinationAddress,usDestinationPort,pulRemapAddress,pusRemapPort)
1334 #else
1335 /*** IUnknown methods ***/
1336 static FORCEINLINE HRESULT IApplicationGatewayServices_QueryInterface(IApplicationGatewayServices* This,REFIID riid,void **ppvObject) {
1337     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1338 }
1339 static FORCEINLINE ULONG IApplicationGatewayServices_AddRef(IApplicationGatewayServices* This) {
1340     return This->lpVtbl->AddRef(This);
1341 }
1342 static FORCEINLINE ULONG IApplicationGatewayServices_Release(IApplicationGatewayServices* This) {
1343     return This->lpVtbl->Release(This);
1344 }
1345 /*** IApplicationGatewayServices methods ***/
1346 static FORCEINLINE HRESULT IApplicationGatewayServices_CreatePrimaryControlChannel(IApplicationGatewayServices* This,ULONG uAdapterIndex,ALG_PROTOCOL eProtocol,USHORT usPortToCapture,ALG_CAPTURE eCaptureType,WINBOOL fCaptureInbound,ULONG ulListenAddress,USHORT usListenPort,IPrimaryControlChannel **ppIControlChannel) {
1347     return This->lpVtbl->CreatePrimaryControlChannel(This,uAdapterIndex,eProtocol,usPortToCapture,eCaptureType,fCaptureInbound,ulListenAddress,usListenPort,ppIControlChannel);
1348 }
1349 static FORCEINLINE HRESULT IApplicationGatewayServices_CreateSecondaryControlChannel(IApplicationGatewayServices* This,ALG_PROTOCOL eProtocol,ULONG ulPrivateAddress,USHORT usPrivatePort,ULONG ulPublicAddress,USHORT usPublicPort,ULONG ulRemoteAddress,USHORT usRemotePort,ULONG ulListenAddress,USHORT usListenPort,ALG_DIRECTION eDirection,WINBOOL fPersistent,ISecondaryControlChannel **ppControlChannel) {
1350     return This->lpVtbl->CreateSecondaryControlChannel(This,eProtocol,ulPrivateAddress,usPrivatePort,ulPublicAddress,usPublicPort,ulRemoteAddress,usRemotePort,ulListenAddress,usListenPort,eDirection,fPersistent,ppControlChannel);
1351 }
1352 static FORCEINLINE HRESULT IApplicationGatewayServices_GetBestSourceAddressForDestinationAddress(IApplicationGatewayServices* This,ULONG ulDstAddress,WINBOOL fDemandDial,ULONG *pulBestSrcAddress) {
1353     return This->lpVtbl->GetBestSourceAddressForDestinationAddress(This,ulDstAddress,fDemandDial,pulBestSrcAddress);
1354 }
1355 static FORCEINLINE HRESULT IApplicationGatewayServices_PrepareProxyConnection(IApplicationGatewayServices* This,ALG_PROTOCOL eProtocol,ULONG ulSrcAddress,USHORT usSrcPort,ULONG ulDstAddress,USHORT usDstPort,WINBOOL fNoTimeout,IPendingProxyConnection **ppPendingConnection) {
1356     return This->lpVtbl->PrepareProxyConnection(This,eProtocol,ulSrcAddress,usSrcPort,ulDstAddress,usDstPort,fNoTimeout,ppPendingConnection);
1357 }
1358 static FORCEINLINE HRESULT IApplicationGatewayServices_PrepareSourceModifiedProxyConnection(IApplicationGatewayServices* This,ALG_PROTOCOL eProtocol,ULONG ulSrcAddress,USHORT usSrcPort,ULONG ulDstAddress,USHORT usDstPort,ULONG ulNewSrcAddress,USHORT usNewSourcePort,IPendingProxyConnection **ppPendingConnection) {
1359     return This->lpVtbl->PrepareSourceModifiedProxyConnection(This,eProtocol,ulSrcAddress,usSrcPort,ulDstAddress,usDstPort,ulNewSrcAddress,usNewSourcePort,ppPendingConnection);
1360 }
1361 static FORCEINLINE HRESULT IApplicationGatewayServices_CreateDataChannel(IApplicationGatewayServices* This,ALG_PROTOCOL eProtocol,ULONG ulPrivateAddress,USHORT usPrivatePort,ULONG ulPublicAddress,USHORT usPublicPort,ULONG ulRemoteAddress,USHORT usRemotePort,ALG_DIRECTION eDirection,ALG_NOTIFICATION eDesiredNotification,WINBOOL fNoTimeout,IDataChannel **ppDataChannel) {
1362     return This->lpVtbl->CreateDataChannel(This,eProtocol,ulPrivateAddress,usPrivatePort,ulPublicAddress,usPublicPort,ulRemoteAddress,usRemotePort,eDirection,eDesiredNotification,fNoTimeout,ppDataChannel);
1363 }
1364 static FORCEINLINE HRESULT IApplicationGatewayServices_CreatePersistentDataChannel(IApplicationGatewayServices* This,ALG_PROTOCOL eProtocol,ULONG ulPrivateAddress,USHORT usPrivatePort,ULONG ulPublicAddress,USHORT usPublicPort,ULONG ulRemoteAddress,USHORT usRemotePort,ALG_DIRECTION eDirection,IPersistentDataChannel **ppIPersistentDataChannel) {
1365     return This->lpVtbl->CreatePersistentDataChannel(This,eProtocol,ulPrivateAddress,usPrivatePort,ulPublicAddress,usPublicPort,ulRemoteAddress,usRemotePort,eDirection,ppIPersistentDataChannel);
1366 }
1367 static FORCEINLINE HRESULT IApplicationGatewayServices_ReservePort(IApplicationGatewayServices* This,USHORT usPortCount,USHORT *pusReservedPort) {
1368     return This->lpVtbl->ReservePort(This,usPortCount,pusReservedPort);
1369 }
1370 static FORCEINLINE HRESULT IApplicationGatewayServices_ReleaseReservedPort(IApplicationGatewayServices* This,USHORT usReservedPortBase,USHORT usPortCount) {
1371     return This->lpVtbl->ReleaseReservedPort(This,usReservedPortBase,usPortCount);
1372 }
1373 static FORCEINLINE HRESULT IApplicationGatewayServices_EnumerateAdapters(IApplicationGatewayServices* This,IEnumAdapterInfo **ppIEnumAdapterInfo) {
1374     return This->lpVtbl->EnumerateAdapters(This,ppIEnumAdapterInfo);
1375 }
1376 static FORCEINLINE HRESULT IApplicationGatewayServices_StartAdapterNotifications(IApplicationGatewayServices* This,IAdapterNotificationSink *pSink,DWORD *pdwCookie) {
1377     return This->lpVtbl->StartAdapterNotifications(This,pSink,pdwCookie);
1378 }
1379 static FORCEINLINE HRESULT IApplicationGatewayServices_StopAdapterNotifications(IApplicationGatewayServices* This,DWORD dwCookieOfSink) {
1380     return This->lpVtbl->StopAdapterNotifications(This,dwCookieOfSink);
1381 }
1382 static FORCEINLINE HRESULT IApplicationGatewayServices_LookupAdapterPortMapping(IApplicationGatewayServices* This,ULONG ulAdapterIndex,UCHAR Protocol,ULONG ulDestinationAddress,USHORT usDestinationPort,ULONG *pulRemapAddress,USHORT *pusRemapPort) {
1383     return This->lpVtbl->LookupAdapterPortMapping(This,ulAdapterIndex,Protocol,ulDestinationAddress,usDestinationPort,pulRemapAddress,pusRemapPort);
1384 }
1385 #endif
1386 #endif
1387 
1388 #endif
1389 
1390 
1391 #endif  /* __IApplicationGatewayServices_INTERFACE_DEFINED__ */
1392 
1393 /*****************************************************************************
1394  * IApplicationGateway interface
1395  */
1396 #ifndef __IApplicationGateway_INTERFACE_DEFINED__
1397 #define __IApplicationGateway_INTERFACE_DEFINED__
1398 
1399 DEFINE_GUID(IID_IApplicationGateway, 0x5134842b, 0xfdce, 0x485d, 0x93,0xcd, 0xde,0x16,0x40,0x64,0x3b,0xbe);
1400 #if defined(__cplusplus) && !defined(CINTERFACE)
1401 MIDL_INTERFACE("5134842b-fdce-485d-93cd-de1640643bbe")
1402 IApplicationGateway : public IUnknown
1403 {
1404     virtual HRESULT STDMETHODCALLTYPE Initialize(
1405         IApplicationGatewayServices *pAlgServices) = 0;
1406 
1407     virtual HRESULT STDMETHODCALLTYPE Stop(
1408         ) = 0;
1409 
1410 };
1411 #ifdef __CRT_UUID_DECL
1412 __CRT_UUID_DECL(IApplicationGateway, 0x5134842b, 0xfdce, 0x485d, 0x93,0xcd, 0xde,0x16,0x40,0x64,0x3b,0xbe)
1413 #endif
1414 #else
1415 typedef struct IApplicationGatewayVtbl {
1416     BEGIN_INTERFACE
1417 
1418     /*** IUnknown methods ***/
1419     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1420         IApplicationGateway *This,
1421         REFIID riid,
1422         void **ppvObject);
1423 
1424     ULONG (STDMETHODCALLTYPE *AddRef)(
1425         IApplicationGateway *This);
1426 
1427     ULONG (STDMETHODCALLTYPE *Release)(
1428         IApplicationGateway *This);
1429 
1430     /*** IApplicationGateway methods ***/
1431     HRESULT (STDMETHODCALLTYPE *Initialize)(
1432         IApplicationGateway *This,
1433         IApplicationGatewayServices *pAlgServices);
1434 
1435     HRESULT (STDMETHODCALLTYPE *Stop)(
1436         IApplicationGateway *This);
1437 
1438     END_INTERFACE
1439 } IApplicationGatewayVtbl;
1440 
1441 interface IApplicationGateway {
1442     CONST_VTBL IApplicationGatewayVtbl* lpVtbl;
1443 };
1444 
1445 #ifdef COBJMACROS
1446 #ifndef WIDL_C_INLINE_WRAPPERS
1447 /*** IUnknown methods ***/
1448 #define IApplicationGateway_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1449 #define IApplicationGateway_AddRef(This) (This)->lpVtbl->AddRef(This)
1450 #define IApplicationGateway_Release(This) (This)->lpVtbl->Release(This)
1451 /*** IApplicationGateway methods ***/
1452 #define IApplicationGateway_Initialize(This,pAlgServices) (This)->lpVtbl->Initialize(This,pAlgServices)
1453 #define IApplicationGateway_Stop(This) (This)->lpVtbl->Stop(This)
1454 #else
1455 /*** IUnknown methods ***/
1456 static FORCEINLINE HRESULT IApplicationGateway_QueryInterface(IApplicationGateway* This,REFIID riid,void **ppvObject) {
1457     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1458 }
1459 static FORCEINLINE ULONG IApplicationGateway_AddRef(IApplicationGateway* This) {
1460     return This->lpVtbl->AddRef(This);
1461 }
1462 static FORCEINLINE ULONG IApplicationGateway_Release(IApplicationGateway* This) {
1463     return This->lpVtbl->Release(This);
1464 }
1465 /*** IApplicationGateway methods ***/
1466 static FORCEINLINE HRESULT IApplicationGateway_Initialize(IApplicationGateway* This,IApplicationGatewayServices *pAlgServices) {
1467     return This->lpVtbl->Initialize(This,pAlgServices);
1468 }
1469 static FORCEINLINE HRESULT IApplicationGateway_Stop(IApplicationGateway* This) {
1470     return This->lpVtbl->Stop(This);
1471 }
1472 #endif
1473 #endif
1474 
1475 #endif
1476 
1477 
1478 #endif  /* __IApplicationGateway_INTERFACE_DEFINED__ */
1479 
1480 
1481 DEFINE_GUID(LIBID_ALGLib, 0xb6d1d098, 0xe235, 0x4b99, 0xba,0x98, 0x7c,0x62,0x4f,0xd8,0x75,0xdb);
1482 
1483 /*****************************************************************************
1484  * ApplicationGatewayServices coclass
1485  */
1486 
1487 DEFINE_GUID(CLSID_ApplicationGatewayServices, 0xf8ade1d3, 0x49df, 0x4b75, 0x90,0x05, 0xef,0x95,0x08,0xe6,0xa3,0x37);
1488 
1489 #ifdef __cplusplus
1490 class DECLSPEC_UUID("f8ade1d3-49df-4b75-9005-ef9508e6a337") ApplicationGatewayServices;
1491 #ifdef __CRT_UUID_DECL
1492 __CRT_UUID_DECL(ApplicationGatewayServices, 0xf8ade1d3, 0x49df, 0x4b75, 0x90,0x05, 0xef,0x95,0x08,0xe6,0xa3,0x37)
1493 #endif
1494 #endif
1495 
1496 /*****************************************************************************
1497  * PrimaryControlChannel coclass
1498  */
1499 
1500 DEFINE_GUID(CLSID_PrimaryControlChannel, 0x3ceb5509, 0xc1cd, 0x432f, 0x9d,0x8f, 0x65,0xd1,0xe2,0x86,0xaa,0x80);
1501 
1502 #ifdef __cplusplus
1503 class DECLSPEC_UUID("3ceb5509-c1cd-432f-9d8f-65d1e286aa80") PrimaryControlChannel;
1504 #ifdef __CRT_UUID_DECL
1505 __CRT_UUID_DECL(PrimaryControlChannel, 0x3ceb5509, 0xc1cd, 0x432f, 0x9d,0x8f, 0x65,0xd1,0xe2,0x86,0xaa,0x80)
1506 #endif
1507 #endif
1508 
1509 /*****************************************************************************
1510  * SecondaryControlChannel coclass
1511  */
1512 
1513 DEFINE_GUID(CLSID_SecondaryControlChannel, 0x7b3181a0, 0xc92f, 0x4567, 0xb0,0xfa, 0xcd,0x9a,0x10,0xec,0xd7,0xd1);
1514 
1515 #ifdef __cplusplus
1516 class DECLSPEC_UUID("7b3181a0-c92f-4567-b0fa-cd9a10ecd7d1") SecondaryControlChannel;
1517 #ifdef __CRT_UUID_DECL
1518 __CRT_UUID_DECL(SecondaryControlChannel, 0x7b3181a0, 0xc92f, 0x4567, 0xb0,0xfa, 0xcd,0x9a,0x10,0xec,0xd7,0xd1)
1519 #endif
1520 #endif
1521 
1522 /*****************************************************************************
1523  * AdapterInfo coclass
1524  */
1525 
1526 DEFINE_GUID(CLSID_AdapterInfo, 0x6f9942c9, 0xc1b1, 0x4ab5, 0x93,0xda, 0x60,0x58,0x99,0x1d,0xc8,0xf3);
1527 
1528 #ifdef __cplusplus
1529 class DECLSPEC_UUID("6f9942c9-c1b1-4ab5-93da-6058991dc8f3") AdapterInfo;
1530 #ifdef __CRT_UUID_DECL
1531 __CRT_UUID_DECL(AdapterInfo, 0x6f9942c9, 0xc1b1, 0x4ab5, 0x93,0xda, 0x60,0x58,0x99,0x1d,0xc8,0xf3)
1532 #endif
1533 #endif
1534 
1535 /*****************************************************************************
1536  * EnumAdapterInfo coclass
1537  */
1538 
1539 DEFINE_GUID(CLSID_EnumAdapterInfo, 0x6f9942ca, 0xc1b1, 0x4ab5, 0x93,0xda, 0x60,0x58,0x99,0x1d,0xc8,0xf3);
1540 
1541 #ifdef __cplusplus
1542 class DECLSPEC_UUID("6f9942ca-c1b1-4ab5-93da-6058991dc8f3") EnumAdapterInfo;
1543 #ifdef __CRT_UUID_DECL
1544 __CRT_UUID_DECL(EnumAdapterInfo, 0x6f9942ca, 0xc1b1, 0x4ab5, 0x93,0xda, 0x60,0x58,0x99,0x1d,0xc8,0xf3)
1545 #endif
1546 #endif
1547 
1548 /*****************************************************************************
1549  * PendingProxyConnection coclass
1550  */
1551 
1552 DEFINE_GUID(CLSID_PendingProxyConnection, 0xd8a68e5e, 0x2b37, 0x426c, 0xa3,0x29, 0xc1,0x17,0xc1,0x4c,0x42,0x9e);
1553 
1554 #ifdef __cplusplus
1555 class DECLSPEC_UUID("d8a68e5e-2b37-426c-a329-c117c14c429e") PendingProxyConnection;
1556 #ifdef __CRT_UUID_DECL
1557 __CRT_UUID_DECL(PendingProxyConnection, 0xd8a68e5e, 0x2b37, 0x426c, 0xa3,0x29, 0xc1,0x17,0xc1,0x4c,0x42,0x9e)
1558 #endif
1559 #endif
1560 
1561 /*****************************************************************************
1562  * DataChannel coclass
1563  */
1564 
1565 DEFINE_GUID(CLSID_DataChannel, 0xbbb36f15, 0x408d, 0x4056, 0x8c,0x27, 0x92,0x08,0x43,0xd4,0x0b,0xe5);
1566 
1567 #ifdef __cplusplus
1568 class DECLSPEC_UUID("bbb36f15-408d-4056-8c27-920843d40be5") DataChannel;
1569 #ifdef __CRT_UUID_DECL
1570 __CRT_UUID_DECL(DataChannel, 0xbbb36f15, 0x408d, 0x4056, 0x8c,0x27, 0x92,0x08,0x43,0xd4,0x0b,0xe5)
1571 #endif
1572 #endif
1573 
1574 /*****************************************************************************
1575  * PersistentDataChannel coclass
1576  */
1577 
1578 DEFINE_GUID(CLSID_PersistentDataChannel, 0xbc9b54ab, 0x7883, 0x4c13, 0x90,0x9f, 0x03,0x3d,0x03,0x26,0x79,0x90);
1579 
1580 #ifdef __cplusplus
1581 class DECLSPEC_UUID("bc9b54ab-7883-4c13-909f-033d03267990") PersistentDataChannel;
1582 #ifdef __CRT_UUID_DECL
1583 __CRT_UUID_DECL(PersistentDataChannel, 0xbc9b54ab, 0x7883, 0x4c13, 0x90,0x9f, 0x03,0x3d,0x03,0x26,0x79,0x90)
1584 #endif
1585 #endif
1586 
1587 #endif
1588 /* Begin additional prototypes for all interfaces */
1589 
1590 
1591 /* End additional prototypes */
1592 
1593 #ifdef __cplusplus
1594 }
1595 #endif
1596 
1597 #endif /* __alg_h__ */
1598