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__
  23typedef interface IAdapterInfo IAdapterInfo;
  24#ifdef __cplusplus
  25interface IAdapterInfo;
  26#endif /* __cplusplus */
  27#endif
  28
  29#ifndef __IPendingProxyConnection_FWD_DEFINED__
  30#define __IPendingProxyConnection_FWD_DEFINED__
  31typedef interface IPendingProxyConnection IPendingProxyConnection;
  32#ifdef __cplusplus
  33interface IPendingProxyConnection;
  34#endif /* __cplusplus */
  35#endif
  36
  37#ifndef __IDataChannel_FWD_DEFINED__
  38#define __IDataChannel_FWD_DEFINED__
  39typedef interface IDataChannel IDataChannel;
  40#ifdef __cplusplus
  41interface IDataChannel;
  42#endif /* __cplusplus */
  43#endif
  44
  45#ifndef __IPersistentDataChannel_FWD_DEFINED__
  46#define __IPersistentDataChannel_FWD_DEFINED__
  47typedef interface IPersistentDataChannel IPersistentDataChannel;
  48#ifdef __cplusplus
  49interface IPersistentDataChannel;
  50#endif /* __cplusplus */
  51#endif
  52
  53#ifndef __IPrimaryControlChannel_FWD_DEFINED__
  54#define __IPrimaryControlChannel_FWD_DEFINED__
  55typedef interface IPrimaryControlChannel IPrimaryControlChannel;
  56#ifdef __cplusplus
  57interface IPrimaryControlChannel;
  58#endif /* __cplusplus */
  59#endif
  60
  61#ifndef __ISecondaryControlChannel_FWD_DEFINED__
  62#define __ISecondaryControlChannel_FWD_DEFINED__
  63typedef interface ISecondaryControlChannel ISecondaryControlChannel;
  64#ifdef __cplusplus
  65interface ISecondaryControlChannel;
  66#endif /* __cplusplus */
  67#endif
  68
  69#ifndef __IEnumAdapterInfo_FWD_DEFINED__
  70#define __IEnumAdapterInfo_FWD_DEFINED__
  71typedef interface IEnumAdapterInfo IEnumAdapterInfo;
  72#ifdef __cplusplus
  73interface IEnumAdapterInfo;
  74#endif /* __cplusplus */
  75#endif
  76
  77#ifndef __IAdapterNotificationSink_FWD_DEFINED__
  78#define __IAdapterNotificationSink_FWD_DEFINED__
  79typedef interface IAdapterNotificationSink IAdapterNotificationSink;
  80#ifdef __cplusplus
  81interface IAdapterNotificationSink;
  82#endif /* __cplusplus */
  83#endif
  84
  85#ifndef __IApplicationGatewayServices_FWD_DEFINED__
  86#define __IApplicationGatewayServices_FWD_DEFINED__
  87typedef interface IApplicationGatewayServices IApplicationGatewayServices;
  88#ifdef __cplusplus
  89interface IApplicationGatewayServices;
  90#endif /* __cplusplus */
  91#endif
  92
  93#ifndef __IApplicationGateway_FWD_DEFINED__
  94#define __IApplicationGateway_FWD_DEFINED__
  95typedef interface IApplicationGateway IApplicationGateway;
  96#ifdef __cplusplus
  97interface IApplicationGateway;
  98#endif /* __cplusplus */
  99#endif
 100
 101#ifndef __ApplicationGatewayServices_FWD_DEFINED__
 102#define __ApplicationGatewayServices_FWD_DEFINED__
 103#ifdef __cplusplus
 104typedef class ApplicationGatewayServices ApplicationGatewayServices;
 105#else
 106typedef 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
 113typedef class PrimaryControlChannel PrimaryControlChannel;
 114#else
 115typedef 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
 122typedef class SecondaryControlChannel SecondaryControlChannel;
 123#else
 124typedef 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
 131typedef class AdapterInfo AdapterInfo;
 132#else
 133typedef 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
 140typedef class EnumAdapterInfo EnumAdapterInfo;
 141#else
 142typedef 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
 149typedef class PendingProxyConnection PendingProxyConnection;
 150#else
 151typedef 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
 158typedef class DataChannel DataChannel;
 159#else
 160typedef 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
 167typedef class PersistentDataChannel PersistentDataChannel;
 168#else
 169typedef 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
 179extern "C" {
 180#endif
 181
 182#include <winapifamily.h>
 183
 184#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
 185typedef enum _ALG_ADAPTER_TYPE {
 186    eALG_PRIVATE = 0x1,
 187    eALG_BOUNDARY = 0x2,
 188    eALG_FIREWALLED = 0x4
 189} ALG_ADAPTER_TYPE;
 190typedef enum _ALG_CAPTURE {
 191    eALG_SOURCE_CAPTURE = 0x1,
 192    eALG_DESTINATION_CAPTURE = 0x2
 193} ALG_CAPTURE;
 194typedef enum _ALG_DIRECTION {
 195    eALG_INBOUND = 0x1,
 196    eALG_OUTBOUND = 0x2,
 197    eALG_BOTH = 0x3
 198} ALG_DIRECTION;
 199typedef 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;
 205typedef enum _ALG_PROTOCOL {
 206    eALG_TCP = 0x1,
 207    eALG_UDP = 0x2
 208} ALG_PROTOCOL;
 209typedef 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;
 218typedef 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;
 231typedef 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;
 242typedef 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
 260DEFINE_GUID(IID_IAdapterInfo, 0x480bf94a, 0x09fd, 0x4f8a, 0xa3,0xe0, 0xb0,0x70,0x02,0x82,0xd8,0x4d);
 261#if defined(__cplusplus) && !defined(CINTERFACE)
 262MIDL_INTERFACE("480bf94a-09fd-4f8a-a3e0-b0700282d84d")
 263IAdapterInfo : 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
 280typedef 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
 312interface 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 ***/
 328static inline HRESULT IAdapterInfo_QueryInterface(IAdapterInfo* This,REFIID riid,void **ppvObject) {
 329    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 330}
 331static inline ULONG IAdapterInfo_AddRef(IAdapterInfo* This) {
 332    return This->lpVtbl->AddRef(This);
 333}
 334static inline ULONG IAdapterInfo_Release(IAdapterInfo* This) {
 335    return This->lpVtbl->Release(This);
 336}
 337/*** IAdapterInfo methods ***/
 338static inline HRESULT IAdapterInfo_GetAdapterIndex(IAdapterInfo* This,ULONG *pulIndex) {
 339    return This->lpVtbl->GetAdapterIndex(This,pulIndex);
 340}
 341static inline HRESULT IAdapterInfo_GetAdapterType(IAdapterInfo* This,ALG_ADAPTER_TYPE *pAdapterType) {
 342    return This->lpVtbl->GetAdapterType(This,pAdapterType);
 343}
 344static 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
 361DEFINE_GUID(IID_IPendingProxyConnection, 0xb68e5043, 0x3e3d, 0x4cc2, 0xb9,0xc1, 0x5f,0x8f,0x88,0xfe,0xe8,0x1c);
 362#if defined(__cplusplus) && !defined(CINTERFACE)
 363MIDL_INTERFACE("b68e5043-3e3d-4cc2-b9c1-5f8f88fee81c")
 364IPendingProxyConnection : 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
 374typedef 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
 396interface 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 ***/
 410static inline HRESULT IPendingProxyConnection_QueryInterface(IPendingProxyConnection* This,REFIID riid,void **ppvObject) {
 411    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 412}
 413static inline ULONG IPendingProxyConnection_AddRef(IPendingProxyConnection* This) {
 414    return This->lpVtbl->AddRef(This);
 415}
 416static inline ULONG IPendingProxyConnection_Release(IPendingProxyConnection* This) {
 417    return This->lpVtbl->Release(This);
 418}
 419/*** IPendingProxyConnection methods ***/
 420static 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
 437DEFINE_GUID(IID_IDataChannel, 0xad42d12a, 0x4ad0, 0x4856, 0x91,0x9e, 0xe8,0x54,0xc9,0x1d,0x18,0x56);
 438#if defined(__cplusplus) && !defined(CINTERFACE)
 439MIDL_INTERFACE("ad42d12a-4ad0-4856-919e-e854c91d1856")
 440IDataChannel : 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
 459typedef 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
 493interface 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 ***/
 510static inline HRESULT IDataChannel_QueryInterface(IDataChannel* This,REFIID riid,void **ppvObject) {
 511    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 512}
 513static inline ULONG IDataChannel_AddRef(IDataChannel* This) {
 514    return This->lpVtbl->AddRef(This);
 515}
 516static inline ULONG IDataChannel_Release(IDataChannel* This) {
 517    return This->lpVtbl->Release(This);
 518}
 519/*** IDataChannel methods ***/
 520static inline HRESULT IDataChannel_Cancel(IDataChannel* This) {
 521    return This->lpVtbl->Cancel(This);
 522}
 523static inline HRESULT IDataChannel_GetChannelProperties(IDataChannel* This,ALG_DATA_CHANNEL_PROPERTIES **ppProperties) {
 524    return This->lpVtbl->GetChannelProperties(This,ppProperties);
 525}
 526static inline HRESULT IDataChannel_GetSessionCreationEventHandle(IDataChannel* This,HANDLE *pHandle) {
 527    return This->lpVtbl->GetSessionCreationEventHandle(This,pHandle);
 528}
 529static 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
 546DEFINE_GUID(IID_IPersistentDataChannel, 0xa180e934, 0xd92a, 0x415d, 0x91,0x44, 0x75,0x9f,0x80,0x54,0xe8,0xf6);
 547#if defined(__cplusplus) && !defined(CINTERFACE)
 548MIDL_INTERFACE("a180e934-d92a-415d-9144-759f8054e8f6")
 549IPersistentDataChannel : 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
 562typedef 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
 588interface 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 ***/
 603static inline HRESULT IPersistentDataChannel_QueryInterface(IPersistentDataChannel* This,REFIID riid,void **ppvObject) {
 604    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 605}
 606static inline ULONG IPersistentDataChannel_AddRef(IPersistentDataChannel* This) {
 607    return This->lpVtbl->AddRef(This);
 608}
 609static inline ULONG IPersistentDataChannel_Release(IPersistentDataChannel* This) {
 610    return This->lpVtbl->Release(This);
 611}
 612/*** IPersistentDataChannel methods ***/
 613static inline HRESULT IPersistentDataChannel_Cancel(IPersistentDataChannel* This) {
 614    return This->lpVtbl->Cancel(This);
 615}
 616static 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
 633DEFINE_GUID(IID_IPrimaryControlChannel, 0x1a2e8b62, 0x9012, 0x4be6, 0x84,0xae, 0x32,0xbd,0x66,0xba,0x65,0x7a);
 634#if defined(__cplusplus) && !defined(CINTERFACE)
 635MIDL_INTERFACE("1a2e8b62-9012-4be6-84ae-32bd66ba657a")
 636IPrimaryControlChannel : 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
 658typedef 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
 694interface 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 ***/
 710static inline HRESULT IPrimaryControlChannel_QueryInterface(IPrimaryControlChannel* This,REFIID riid,void **ppvObject) {
 711    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 712}
 713static inline ULONG IPrimaryControlChannel_AddRef(IPrimaryControlChannel* This) {
 714    return This->lpVtbl->AddRef(This);
 715}
 716static inline ULONG IPrimaryControlChannel_Release(IPrimaryControlChannel* This) {
 717    return This->lpVtbl->Release(This);
 718}
 719/*** IPrimaryControlChannel methods ***/
 720static inline HRESULT IPrimaryControlChannel_Cancel(IPrimaryControlChannel* This) {
 721    return This->lpVtbl->Cancel(This);
 722}
 723static inline HRESULT IPrimaryControlChannel_GetChannelProperties(IPrimaryControlChannel* This,ALG_PRIMARY_CHANNEL_PROPERTIES **ppProperties) {
 724    return This->lpVtbl->GetChannelProperties(This,ppProperties);
 725}
 726static 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
 743DEFINE_GUID(IID_ISecondaryControlChannel, 0xa23f9d10, 0x714c, 0x41fe, 0x84,0x71, 0xff,0xb1,0x9b,0xc2,0x84,0x54);
 744#if defined(__cplusplus) && !defined(CINTERFACE)
 745MIDL_INTERFACE("a23f9d10-714c-41fe-8471-ffb19bc28454")
 746ISecondaryControlChannel : 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
 766typedef 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
 800interface 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 ***/
 816static inline HRESULT ISecondaryControlChannel_QueryInterface(ISecondaryControlChannel* This,REFIID riid,void **ppvObject) {
 817    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 818}
 819static inline ULONG ISecondaryControlChannel_AddRef(ISecondaryControlChannel* This) {
 820    return This->lpVtbl->AddRef(This);
 821}
 822static inline ULONG ISecondaryControlChannel_Release(ISecondaryControlChannel* This) {
 823    return This->lpVtbl->Release(This);
 824}
 825/*** ISecondaryControlChannel methods ***/
 826static inline HRESULT ISecondaryControlChannel_Cancel(ISecondaryControlChannel* This) {
 827    return This->lpVtbl->Cancel(This);
 828}
 829static inline HRESULT ISecondaryControlChannel_GetChannelProperties(ISecondaryControlChannel* This,ALG_SECONDARY_CHANNEL_PROPERTIES **ppProperties) {
 830    return This->lpVtbl->GetChannelProperties(This,ppProperties);
 831}
 832static 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
 849DEFINE_GUID(IID_IEnumAdapterInfo, 0xa23f9d11, 0x714c, 0x41fe, 0x84,0x71, 0xff,0xb1,0x9b,0xc2,0x84,0x54);
 850#if defined(__cplusplus) && !defined(CINTERFACE)
 851MIDL_INTERFACE("a23f9d11-714c-41fe-8471-ffb19bc28454")
 852IEnumAdapterInfo : 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
 873typedef 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
 909interface 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 ***/
 926static inline HRESULT IEnumAdapterInfo_QueryInterface(IEnumAdapterInfo* This,REFIID riid,void **ppvObject) {
 927    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 928}
 929static inline ULONG IEnumAdapterInfo_AddRef(IEnumAdapterInfo* This) {
 930    return This->lpVtbl->AddRef(This);
 931}
 932static inline ULONG IEnumAdapterInfo_Release(IEnumAdapterInfo* This) {
 933    return This->lpVtbl->Release(This);
 934}
 935/*** IEnumAdapterInfo methods ***/
 936static inline HRESULT IEnumAdapterInfo_Next(IEnumAdapterInfo* This,ULONG celt,IAdapterInfo **rgAI,ULONG *pCeltFetched) {
 937    return This->lpVtbl->Next(This,celt,rgAI,pCeltFetched);
 938}
 939static inline HRESULT IEnumAdapterInfo_Skip(IEnumAdapterInfo* This,ULONG celt) {
 940    return This->lpVtbl->Skip(This,celt);
 941}
 942static inline HRESULT IEnumAdapterInfo_Reset(IEnumAdapterInfo* This) {
 943    return This->lpVtbl->Reset(This);
 944}
 945static 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
 962DEFINE_GUID(IID_IAdapterNotificationSink, 0x44ab2dc3, 0x23b2, 0x47de, 0x82,0x28, 0x2e,0x1c,0xce,0xeb,0x99,0x11);
 963#if defined(__cplusplus) && !defined(CINTERFACE)
 964MIDL_INTERFACE("44ab2dc3-23b2-47de-8228-2e1cceeb9911")
 965IAdapterNotificationSink : 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
 984typedef 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
1019interface 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 ***/
1036static inline HRESULT IAdapterNotificationSink_QueryInterface(IAdapterNotificationSink* This,REFIID riid,void **ppvObject) {
1037    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1038}
1039static inline ULONG IAdapterNotificationSink_AddRef(IAdapterNotificationSink* This) {
1040    return This->lpVtbl->AddRef(This);
1041}
1042static inline ULONG IAdapterNotificationSink_Release(IAdapterNotificationSink* This) {
1043    return This->lpVtbl->Release(This);
1044}
1045/*** IAdapterNotificationSink methods ***/
1046static inline HRESULT IAdapterNotificationSink_AdapterAdded(IAdapterNotificationSink* This,IAdapterInfo *pAdapter) {
1047    return This->lpVtbl->AdapterAdded(This,pAdapter);
1048}
1049static inline HRESULT IAdapterNotificationSink_AdapterRemoved(IAdapterNotificationSink* This,IAdapterInfo *pAdapter) {
1050    return This->lpVtbl->AdapterRemoved(This,pAdapter);
1051}
1052static inline HRESULT IAdapterNotificationSink_AdapterModified(IAdapterNotificationSink* This,IAdapterInfo *pAdapter) {
1053    return This->lpVtbl->AdapterModified(This,pAdapter);
1054}
1055static 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
1072DEFINE_GUID(IID_IApplicationGatewayServices, 0x5134842a, 0xfdce, 0x485d, 0x93,0xcd, 0xde,0x16,0x40,0x64,0x3b,0xbe);
1073#if defined(__cplusplus) && !defined(CINTERFACE)
1074MIDL_INTERFACE("5134842a-fdce-485d-93cd-de1640643bbe")
1075IApplicationGatewayServices : 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
1180typedef 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
1310interface 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 ***/
1336static inline HRESULT IApplicationGatewayServices_QueryInterface(IApplicationGatewayServices* This,REFIID riid,void **ppvObject) {
1337    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1338}
1339static inline ULONG IApplicationGatewayServices_AddRef(IApplicationGatewayServices* This) {
1340    return This->lpVtbl->AddRef(This);
1341}
1342static inline ULONG IApplicationGatewayServices_Release(IApplicationGatewayServices* This) {
1343    return This->lpVtbl->Release(This);
1344}
1345/*** IApplicationGatewayServices methods ***/
1346static 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}
1349static 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}
1352static inline HRESULT IApplicationGatewayServices_GetBestSourceAddressForDestinationAddress(IApplicationGatewayServices* This,ULONG ulDstAddress,WINBOOL fDemandDial,ULONG *pulBestSrcAddress) {
1353    return This->lpVtbl->GetBestSourceAddressForDestinationAddress(This,ulDstAddress,fDemandDial,pulBestSrcAddress);
1354}
1355static 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}
1358static 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}
1361static 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}
1364static 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}
1367static inline HRESULT IApplicationGatewayServices_ReservePort(IApplicationGatewayServices* This,USHORT usPortCount,USHORT *pusReservedPort) {
1368    return This->lpVtbl->ReservePort(This,usPortCount,pusReservedPort);
1369}
1370static inline HRESULT IApplicationGatewayServices_ReleaseReservedPort(IApplicationGatewayServices* This,USHORT usReservedPortBase,USHORT usPortCount) {
1371    return This->lpVtbl->ReleaseReservedPort(This,usReservedPortBase,usPortCount);
1372}
1373static inline HRESULT IApplicationGatewayServices_EnumerateAdapters(IApplicationGatewayServices* This,IEnumAdapterInfo **ppIEnumAdapterInfo) {
1374    return This->lpVtbl->EnumerateAdapters(This,ppIEnumAdapterInfo);
1375}
1376static inline HRESULT IApplicationGatewayServices_StartAdapterNotifications(IApplicationGatewayServices* This,IAdapterNotificationSink *pSink,DWORD *pdwCookie) {
1377    return This->lpVtbl->StartAdapterNotifications(This,pSink,pdwCookie);
1378}
1379static inline HRESULT IApplicationGatewayServices_StopAdapterNotifications(IApplicationGatewayServices* This,DWORD dwCookieOfSink) {
1380    return This->lpVtbl->StopAdapterNotifications(This,dwCookieOfSink);
1381}
1382static 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
1399DEFINE_GUID(IID_IApplicationGateway, 0x5134842b, 0xfdce, 0x485d, 0x93,0xcd, 0xde,0x16,0x40,0x64,0x3b,0xbe);
1400#if defined(__cplusplus) && !defined(CINTERFACE)
1401MIDL_INTERFACE("5134842b-fdce-485d-93cd-de1640643bbe")
1402IApplicationGateway : 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
1415typedef 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
1441interface 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 ***/
1456static inline HRESULT IApplicationGateway_QueryInterface(IApplicationGateway* This,REFIID riid,void **ppvObject) {
1457    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1458}
1459static inline ULONG IApplicationGateway_AddRef(IApplicationGateway* This) {
1460    return This->lpVtbl->AddRef(This);
1461}
1462static inline ULONG IApplicationGateway_Release(IApplicationGateway* This) {
1463    return This->lpVtbl->Release(This);
1464}
1465/*** IApplicationGateway methods ***/
1466static inline HRESULT IApplicationGateway_Initialize(IApplicationGateway* This,IApplicationGatewayServices *pAlgServices) {
1467    return This->lpVtbl->Initialize(This,pAlgServices);
1468}
1469static 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
1483DEFINE_GUID(LIBID_ALGLib, 0xb6d1d098, 0xe235, 0x4b99, 0xba,0x98, 0x7c,0x62,0x4f,0xd8,0x75,0xdb);
1484
1485/*****************************************************************************
1486 * ApplicationGatewayServices coclass
1487 */
1488
1489DEFINE_GUID(CLSID_ApplicationGatewayServices, 0xf8ade1d3, 0x49df, 0x4b75, 0x90,0x05, 0xef,0x95,0x08,0xe6,0xa3,0x37);
1490
1491#ifdef __cplusplus
1492class 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
1502DEFINE_GUID(CLSID_PrimaryControlChannel, 0x3ceb5509, 0xc1cd, 0x432f, 0x9d,0x8f, 0x65,0xd1,0xe2,0x86,0xaa,0x80);
1503
1504#ifdef __cplusplus
1505class 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
1515DEFINE_GUID(CLSID_SecondaryControlChannel, 0x7b3181a0, 0xc92f, 0x4567, 0xb0,0xfa, 0xcd,0x9a,0x10,0xec,0xd7,0xd1);
1516
1517#ifdef __cplusplus
1518class 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
1528DEFINE_GUID(CLSID_AdapterInfo, 0x6f9942c9, 0xc1b1, 0x4ab5, 0x93,0xda, 0x60,0x58,0x99,0x1d,0xc8,0xf3);
1529
1530#ifdef __cplusplus
1531class 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
1541DEFINE_GUID(CLSID_EnumAdapterInfo, 0x6f9942ca, 0xc1b1, 0x4ab5, 0x93,0xda, 0x60,0x58,0x99,0x1d,0xc8,0xf3);
1542
1543#ifdef __cplusplus
1544class 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
1554DEFINE_GUID(CLSID_PendingProxyConnection, 0xd8a68e5e, 0x2b37, 0x426c, 0xa3,0x29, 0xc1,0x17,0xc1,0x4c,0x42,0x9e);
1555
1556#ifdef __cplusplus
1557class 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
1567DEFINE_GUID(CLSID_DataChannel, 0xbbb36f15, 0x408d, 0x4056, 0x8c,0x27, 0x92,0x08,0x43,0xd4,0x0b,0xe5);
1568
1569#ifdef __cplusplus
1570class 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
1580DEFINE_GUID(CLSID_PersistentDataChannel, 0xbc9b54ab, 0x7883, 0x4c13, 0x90,0x9f, 0x03,0x3d,0x03,0x26,0x79,0x90);
1581
1582#ifdef __cplusplus
1583class 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__ */