Home | History | Annotate | Download | only in include
      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