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