zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

alg.h (62604B) - Raw


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