Add ALG-API interfaces. git-svn-id: svn+ssh://svn.code.sf.net/p/mingw-w64/code/trunk@6552 4407c894-4637-0410-b4f5-ada5f102cad1
diff --git a/mingw-w64-headers/Makefile.am b/mingw-w64-headers/Makefile.am index ffbd843..58dec81 100644 --- a/mingw-w64-headers/Makefile.am +++ b/mingw-w64-headers/Makefile.am
@@ -65,6 +65,7 @@ include/activprof.idl \ include/activscp.idl \ include/adhoc.idl \ + include/alg.idl \ include/audioclient.idl \ include/audioendpoints.idl \ include/audiopolicy.idl \
diff --git a/mingw-w64-headers/Makefile.in b/mingw-w64-headers/Makefile.in index b28f10f..b09e933 100644 --- a/mingw-w64-headers/Makefile.in +++ b/mingw-w64-headers/Makefile.in
@@ -289,6 +289,7 @@ @HAVE_WIDL_TRUE@ include/activprof.idl \ @HAVE_WIDL_TRUE@ include/activscp.idl \ @HAVE_WIDL_TRUE@ include/adhoc.idl \ +@HAVE_WIDL_TRUE@ include/alg.idl \ @HAVE_WIDL_TRUE@ include/audioclient.idl \ @HAVE_WIDL_TRUE@ include/audioendpoints.idl \ @HAVE_WIDL_TRUE@ include/audiopolicy.idl \
diff --git a/mingw-w64-headers/include/alg.h b/mingw-w64-headers/include/alg.h new file mode 100644 index 0000000..2e423d9 --- /dev/null +++ b/mingw-w64-headers/include/alg.h
@@ -0,0 +1,1933 @@ +/*** Autogenerated by WIDL 1.6 from alg.idl - Do not edit ***/ + +#ifndef __REQUIRED_RPCNDR_H_VERSION__ +#define __REQUIRED_RPCNDR_H_VERSION__ 475 +#endif + +#include <rpc.h> +#include <rpcndr.h> + +#ifndef COM_NO_WINDOWS_H +#include <windows.h> +#include <ole2.h> +#endif + +#ifndef __alg_h__ +#define __alg_h__ + +/* Forward declarations */ + +#ifndef __IAdapterInfo_FWD_DEFINED__ +#define __IAdapterInfo_FWD_DEFINED__ +typedef interface IAdapterInfo IAdapterInfo; +#endif + +#ifndef __IPendingProxyConnection_FWD_DEFINED__ +#define __IPendingProxyConnection_FWD_DEFINED__ +typedef interface IPendingProxyConnection IPendingProxyConnection; +#endif + +#ifndef __IDataChannel_FWD_DEFINED__ +#define __IDataChannel_FWD_DEFINED__ +typedef interface IDataChannel IDataChannel; +#endif + +#ifndef __IPersistentDataChannel_FWD_DEFINED__ +#define __IPersistentDataChannel_FWD_DEFINED__ +typedef interface IPersistentDataChannel IPersistentDataChannel; +#endif + +#ifndef __IPrimaryControlChannel_FWD_DEFINED__ +#define __IPrimaryControlChannel_FWD_DEFINED__ +typedef interface IPrimaryControlChannel IPrimaryControlChannel; +#endif + +#ifndef __ISecondaryControlChannel_FWD_DEFINED__ +#define __ISecondaryControlChannel_FWD_DEFINED__ +typedef interface ISecondaryControlChannel ISecondaryControlChannel; +#endif + +#ifndef __IEnumAdapterInfo_FWD_DEFINED__ +#define __IEnumAdapterInfo_FWD_DEFINED__ +typedef interface IEnumAdapterInfo IEnumAdapterInfo; +#endif + +#ifndef __IAdapterNotificationSink_FWD_DEFINED__ +#define __IAdapterNotificationSink_FWD_DEFINED__ +typedef interface IAdapterNotificationSink IAdapterNotificationSink; +#endif + +#ifndef __IApplicationGatewayServices_FWD_DEFINED__ +#define __IApplicationGatewayServices_FWD_DEFINED__ +typedef interface IApplicationGatewayServices IApplicationGatewayServices; +#endif + +#ifndef __IApplicationGateway_FWD_DEFINED__ +#define __IApplicationGateway_FWD_DEFINED__ +typedef interface IApplicationGateway IApplicationGateway; +#endif + +#ifndef __ApplicationGatewayServices_FWD_DEFINED__ +#define __ApplicationGatewayServices_FWD_DEFINED__ +#ifdef __cplusplus +typedef class ApplicationGatewayServices ApplicationGatewayServices; +#else +typedef struct ApplicationGatewayServices ApplicationGatewayServices; +#endif /* defined __cplusplus */ +#endif /* defined __ApplicationGatewayServices_FWD_DEFINED__ */ + +#ifndef __PrimaryControlChannel_FWD_DEFINED__ +#define __PrimaryControlChannel_FWD_DEFINED__ +#ifdef __cplusplus +typedef class PrimaryControlChannel PrimaryControlChannel; +#else +typedef struct PrimaryControlChannel PrimaryControlChannel; +#endif /* defined __cplusplus */ +#endif /* defined __PrimaryControlChannel_FWD_DEFINED__ */ + +#ifndef __SecondaryControlChannel_FWD_DEFINED__ +#define __SecondaryControlChannel_FWD_DEFINED__ +#ifdef __cplusplus +typedef class SecondaryControlChannel SecondaryControlChannel; +#else +typedef struct SecondaryControlChannel SecondaryControlChannel; +#endif /* defined __cplusplus */ +#endif /* defined __SecondaryControlChannel_FWD_DEFINED__ */ + +#ifndef __AdapterInfo_FWD_DEFINED__ +#define __AdapterInfo_FWD_DEFINED__ +#ifdef __cplusplus +typedef class AdapterInfo AdapterInfo; +#else +typedef struct AdapterInfo AdapterInfo; +#endif /* defined __cplusplus */ +#endif /* defined __AdapterInfo_FWD_DEFINED__ */ + +#ifndef __EnumAdapterInfo_FWD_DEFINED__ +#define __EnumAdapterInfo_FWD_DEFINED__ +#ifdef __cplusplus +typedef class EnumAdapterInfo EnumAdapterInfo; +#else +typedef struct EnumAdapterInfo EnumAdapterInfo; +#endif /* defined __cplusplus */ +#endif /* defined __EnumAdapterInfo_FWD_DEFINED__ */ + +#ifndef __PendingProxyConnection_FWD_DEFINED__ +#define __PendingProxyConnection_FWD_DEFINED__ +#ifdef __cplusplus +typedef class PendingProxyConnection PendingProxyConnection; +#else +typedef struct PendingProxyConnection PendingProxyConnection; +#endif /* defined __cplusplus */ +#endif /* defined __PendingProxyConnection_FWD_DEFINED__ */ + +#ifndef __DataChannel_FWD_DEFINED__ +#define __DataChannel_FWD_DEFINED__ +#ifdef __cplusplus +typedef class DataChannel DataChannel; +#else +typedef struct DataChannel DataChannel; +#endif /* defined __cplusplus */ +#endif /* defined __DataChannel_FWD_DEFINED__ */ + +#ifndef __PersistentDataChannel_FWD_DEFINED__ +#define __PersistentDataChannel_FWD_DEFINED__ +#ifdef __cplusplus +typedef class PersistentDataChannel PersistentDataChannel; +#else +typedef struct PersistentDataChannel PersistentDataChannel; +#endif /* defined __cplusplus */ +#endif /* defined __PersistentDataChannel_FWD_DEFINED__ */ + +/* Headers for imported files */ + +#include <oaidl.h> +#include <ocidl.h> + +#ifdef __cplusplus +extern "C" { +#endif + +#include <winapifamily.h> + +#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) +typedef enum _ALG_ADAPTER_TYPE { + eALG_PRIVATE = 0x1, + eALG_BOUNDARY = 0x2, + eALG_FIREWALLED = 0x4 +} ALG_ADAPTER_TYPE; +typedef enum _ALG_CAPTURE { + eALG_SOURCE_CAPTURE = 0x1, + eALG_DESTINATION_CAPTURE = 0x2 +} ALG_CAPTURE; +typedef enum _ALG_DIRECTION { + eALG_INBOUND = 0x1, + eALG_OUTBOUND = 0x2, + eALG_BOTH = 0x3 +} ALG_DIRECTION; +typedef enum _ALG_NOTIFICATION { + eALG_NONE = 0x0, + eALG_SESSION_CREATION = 0x1, + eALG_SESSION_DELETION = 0x2, + eALG_SESSION_BOTH = 0x3 +} ALG_NOTIFICATION; +typedef enum _ALG_PROTOCOL { + eALG_TCP = 0x1, + eALG_UDP = 0x2 +} ALG_PROTOCOL; +typedef struct _ALG_PRIMARY_CHANNEL_PROPERTIES { + ALG_PROTOCOL eProtocol; + USHORT usCapturePort; + ALG_CAPTURE eCaptureType; + WINBOOL fCaptureInbound; + ULONG ulListeningAddress; + USHORT usListeningPort; + ULONG ulAdapterIndex; +} ALG_PRIMARY_CHANNEL_PROPERTIES; +typedef struct _ALG_SECONDARY_CHANNEL_PROPERTIES { + ALG_PROTOCOL eProtocol; + ULONG ulPrivateAddress; + USHORT usPrivatePort; + ULONG ulPublicAddress; + USHORT usPublicPort; + ULONG ulRemoteAddress; + USHORT usRemotePort; + ULONG ulListenAddress; + USHORT usListenPort; + ALG_DIRECTION eDirection; + WINBOOL fPersistent; +} ALG_SECONDARY_CHANNEL_PROPERTIES; +typedef struct _ALG_DATA_CHANNEL_PROPERTIES { + ALG_PROTOCOL eProtocol; + ULONG ulPrivateAddress; + USHORT usPrivatePort; + ULONG ulPublicAddress; + USHORT usPublicPort; + ULONG ulRemoteAddress; + USHORT usRemotePort; + ALG_DIRECTION eDirection; + ALG_NOTIFICATION eDesiredNotification; +} ALG_DATA_CHANNEL_PROPERTIES; +typedef struct _ALG_PERSISTENT_DATA_CHANNEL_PROPERTIES { + ALG_PROTOCOL eProtocol; + ULONG ulPrivateAddress; + USHORT usPrivatePort; + ULONG ulPublicAddress; + USHORT usPublicPort; + ULONG ulRemoteAddress; + USHORT usRemotePort; + ALG_DIRECTION eDirection; +} ALG_PERSISTENT_DATA_CHANNEL_PROPERTIES; +#define ALG_MAXIMUM_PORT_RANGE_SIZE (10) + +/***************************************************************************** + * IAdapterInfo interface + */ +#ifndef __IAdapterInfo_INTERFACE_DEFINED__ +#define __IAdapterInfo_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IAdapterInfo, 0x480bf94a, 0x09fd, 0x4f8a, 0xa3,0xe0, 0xb0,0x70,0x02,0x82,0xd8,0x4d); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("480bf94a-09fd-4f8a-a3e0-b0700282d84d") +IAdapterInfo : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE GetAdapterIndex( + ULONG *pulIndex) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetAdapterType( + ALG_ADAPTER_TYPE *pAdapterType) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetAdapterAddresses( + ULONG *pulAddressCount, + ULONG **prgAddresses) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IAdapterInfo, 0x480bf94a, 0x09fd, 0x4f8a, 0xa3,0xe0, 0xb0,0x70,0x02,0x82,0xd8,0x4d) +#endif +#else +typedef struct IAdapterInfoVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IAdapterInfo* This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IAdapterInfo* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IAdapterInfo* This); + + /*** IAdapterInfo methods ***/ + HRESULT (STDMETHODCALLTYPE *GetAdapterIndex)( + IAdapterInfo* This, + ULONG *pulIndex); + + HRESULT (STDMETHODCALLTYPE *GetAdapterType)( + IAdapterInfo* This, + ALG_ADAPTER_TYPE *pAdapterType); + + HRESULT (STDMETHODCALLTYPE *GetAdapterAddresses)( + IAdapterInfo* This, + ULONG *pulAddressCount, + ULONG **prgAddresses); + + END_INTERFACE +} IAdapterInfoVtbl; +interface IAdapterInfo { + CONST_VTBL IAdapterInfoVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IAdapterInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IAdapterInfo_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IAdapterInfo_Release(This) (This)->lpVtbl->Release(This) +/*** IAdapterInfo methods ***/ +#define IAdapterInfo_GetAdapterIndex(This,pulIndex) (This)->lpVtbl->GetAdapterIndex(This,pulIndex) +#define IAdapterInfo_GetAdapterType(This,pAdapterType) (This)->lpVtbl->GetAdapterType(This,pAdapterType) +#define IAdapterInfo_GetAdapterAddresses(This,pulAddressCount,prgAddresses) (This)->lpVtbl->GetAdapterAddresses(This,pulAddressCount,prgAddresses) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IAdapterInfo_QueryInterface(IAdapterInfo* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IAdapterInfo_AddRef(IAdapterInfo* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IAdapterInfo_Release(IAdapterInfo* This) { + return This->lpVtbl->Release(This); +} +/*** IAdapterInfo methods ***/ +static FORCEINLINE HRESULT IAdapterInfo_GetAdapterIndex(IAdapterInfo* This,ULONG *pulIndex) { + return This->lpVtbl->GetAdapterIndex(This,pulIndex); +} +static FORCEINLINE HRESULT IAdapterInfo_GetAdapterType(IAdapterInfo* This,ALG_ADAPTER_TYPE *pAdapterType) { + return This->lpVtbl->GetAdapterType(This,pAdapterType); +} +static FORCEINLINE HRESULT IAdapterInfo_GetAdapterAddresses(IAdapterInfo* This,ULONG *pulAddressCount,ULONG **prgAddresses) { + return This->lpVtbl->GetAdapterAddresses(This,pulAddressCount,prgAddresses); +} +#endif +#endif + +#endif + +HRESULT STDMETHODCALLTYPE IAdapterInfo_GetAdapterIndex_Proxy( + IAdapterInfo* This, + ULONG *pulIndex); +void __RPC_STUB IAdapterInfo_GetAdapterIndex_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IAdapterInfo_GetAdapterType_Proxy( + IAdapterInfo* This, + ALG_ADAPTER_TYPE *pAdapterType); +void __RPC_STUB IAdapterInfo_GetAdapterType_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IAdapterInfo_GetAdapterAddresses_Proxy( + IAdapterInfo* This, + ULONG *pulAddressCount, + ULONG **prgAddresses); +void __RPC_STUB IAdapterInfo_GetAdapterAddresses_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IAdapterInfo_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IPendingProxyConnection interface + */ +#ifndef __IPendingProxyConnection_INTERFACE_DEFINED__ +#define __IPendingProxyConnection_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IPendingProxyConnection, 0xb68e5043, 0x3e3d, 0x4cc2, 0xb9,0xc1, 0x5f,0x8f,0x88,0xfe,0xe8,0x1c); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("b68e5043-3e3d-4cc2-b9c1-5f8f88fee81c") +IPendingProxyConnection : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE Cancel( + ) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IPendingProxyConnection, 0xb68e5043, 0x3e3d, 0x4cc2, 0xb9,0xc1, 0x5f,0x8f,0x88,0xfe,0xe8,0x1c) +#endif +#else +typedef struct IPendingProxyConnectionVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IPendingProxyConnection* This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IPendingProxyConnection* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IPendingProxyConnection* This); + + /*** IPendingProxyConnection methods ***/ + HRESULT (STDMETHODCALLTYPE *Cancel)( + IPendingProxyConnection* This); + + END_INTERFACE +} IPendingProxyConnectionVtbl; +interface IPendingProxyConnection { + CONST_VTBL IPendingProxyConnectionVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IPendingProxyConnection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IPendingProxyConnection_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IPendingProxyConnection_Release(This) (This)->lpVtbl->Release(This) +/*** IPendingProxyConnection methods ***/ +#define IPendingProxyConnection_Cancel(This) (This)->lpVtbl->Cancel(This) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IPendingProxyConnection_QueryInterface(IPendingProxyConnection* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IPendingProxyConnection_AddRef(IPendingProxyConnection* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IPendingProxyConnection_Release(IPendingProxyConnection* This) { + return This->lpVtbl->Release(This); +} +/*** IPendingProxyConnection methods ***/ +static FORCEINLINE HRESULT IPendingProxyConnection_Cancel(IPendingProxyConnection* This) { + return This->lpVtbl->Cancel(This); +} +#endif +#endif + +#endif + +HRESULT STDMETHODCALLTYPE IPendingProxyConnection_Cancel_Proxy( + IPendingProxyConnection* This); +void __RPC_STUB IPendingProxyConnection_Cancel_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IPendingProxyConnection_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDataChannel interface + */ +#ifndef __IDataChannel_INTERFACE_DEFINED__ +#define __IDataChannel_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDataChannel, 0xad42d12a, 0x4ad0, 0x4856, 0x91,0x9e, 0xe8,0x54,0xc9,0x1d,0x18,0x56); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("ad42d12a-4ad0-4856-919e-e854c91d1856") +IDataChannel : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE Cancel( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetChannelProperties( + ALG_DATA_CHANNEL_PROPERTIES **ppProperties) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetSessionCreationEventHandle( + HANDLE *pHandle) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetSessionDeletionEventHandle( + HANDLE *pHandle) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDataChannel, 0xad42d12a, 0x4ad0, 0x4856, 0x91,0x9e, 0xe8,0x54,0xc9,0x1d,0x18,0x56) +#endif +#else +typedef struct IDataChannelVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDataChannel* This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDataChannel* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDataChannel* This); + + /*** IDataChannel methods ***/ + HRESULT (STDMETHODCALLTYPE *Cancel)( + IDataChannel* This); + + HRESULT (STDMETHODCALLTYPE *GetChannelProperties)( + IDataChannel* This, + ALG_DATA_CHANNEL_PROPERTIES **ppProperties); + + HRESULT (STDMETHODCALLTYPE *GetSessionCreationEventHandle)( + IDataChannel* This, + HANDLE *pHandle); + + HRESULT (STDMETHODCALLTYPE *GetSessionDeletionEventHandle)( + IDataChannel* This, + HANDLE *pHandle); + + END_INTERFACE +} IDataChannelVtbl; +interface IDataChannel { + CONST_VTBL IDataChannelVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDataChannel_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDataChannel_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDataChannel_Release(This) (This)->lpVtbl->Release(This) +/*** IDataChannel methods ***/ +#define IDataChannel_Cancel(This) (This)->lpVtbl->Cancel(This) +#define IDataChannel_GetChannelProperties(This,ppProperties) (This)->lpVtbl->GetChannelProperties(This,ppProperties) +#define IDataChannel_GetSessionCreationEventHandle(This,pHandle) (This)->lpVtbl->GetSessionCreationEventHandle(This,pHandle) +#define IDataChannel_GetSessionDeletionEventHandle(This,pHandle) (This)->lpVtbl->GetSessionDeletionEventHandle(This,pHandle) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDataChannel_QueryInterface(IDataChannel* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDataChannel_AddRef(IDataChannel* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDataChannel_Release(IDataChannel* This) { + return This->lpVtbl->Release(This); +} +/*** IDataChannel methods ***/ +static FORCEINLINE HRESULT IDataChannel_Cancel(IDataChannel* This) { + return This->lpVtbl->Cancel(This); +} +static FORCEINLINE HRESULT IDataChannel_GetChannelProperties(IDataChannel* This,ALG_DATA_CHANNEL_PROPERTIES **ppProperties) { + return This->lpVtbl->GetChannelProperties(This,ppProperties); +} +static FORCEINLINE HRESULT IDataChannel_GetSessionCreationEventHandle(IDataChannel* This,HANDLE *pHandle) { + return This->lpVtbl->GetSessionCreationEventHandle(This,pHandle); +} +static FORCEINLINE HRESULT IDataChannel_GetSessionDeletionEventHandle(IDataChannel* This,HANDLE *pHandle) { + return This->lpVtbl->GetSessionDeletionEventHandle(This,pHandle); +} +#endif +#endif + +#endif + +HRESULT STDMETHODCALLTYPE IDataChannel_Cancel_Proxy( + IDataChannel* This); +void __RPC_STUB IDataChannel_Cancel_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IDataChannel_GetChannelProperties_Proxy( + IDataChannel* This, + ALG_DATA_CHANNEL_PROPERTIES **ppProperties); +void __RPC_STUB IDataChannel_GetChannelProperties_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IDataChannel_GetSessionCreationEventHandle_Proxy( + IDataChannel* This, + HANDLE *pHandle); +void __RPC_STUB IDataChannel_GetSessionCreationEventHandle_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IDataChannel_GetSessionDeletionEventHandle_Proxy( + IDataChannel* This, + HANDLE *pHandle); +void __RPC_STUB IDataChannel_GetSessionDeletionEventHandle_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IDataChannel_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IPersistentDataChannel interface + */ +#ifndef __IPersistentDataChannel_INTERFACE_DEFINED__ +#define __IPersistentDataChannel_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IPersistentDataChannel, 0xa180e934, 0xd92a, 0x415d, 0x91,0x44, 0x75,0x9f,0x80,0x54,0xe8,0xf6); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("a180e934-d92a-415d-9144-759f8054e8f6") +IPersistentDataChannel : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE Cancel( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetChannelProperties( + ALG_PERSISTENT_DATA_CHANNEL_PROPERTIES **ppProperties) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IPersistentDataChannel, 0xa180e934, 0xd92a, 0x415d, 0x91,0x44, 0x75,0x9f,0x80,0x54,0xe8,0xf6) +#endif +#else +typedef struct IPersistentDataChannelVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IPersistentDataChannel* This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IPersistentDataChannel* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IPersistentDataChannel* This); + + /*** IPersistentDataChannel methods ***/ + HRESULT (STDMETHODCALLTYPE *Cancel)( + IPersistentDataChannel* This); + + HRESULT (STDMETHODCALLTYPE *GetChannelProperties)( + IPersistentDataChannel* This, + ALG_PERSISTENT_DATA_CHANNEL_PROPERTIES **ppProperties); + + END_INTERFACE +} IPersistentDataChannelVtbl; +interface IPersistentDataChannel { + CONST_VTBL IPersistentDataChannelVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IPersistentDataChannel_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IPersistentDataChannel_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IPersistentDataChannel_Release(This) (This)->lpVtbl->Release(This) +/*** IPersistentDataChannel methods ***/ +#define IPersistentDataChannel_Cancel(This) (This)->lpVtbl->Cancel(This) +#define IPersistentDataChannel_GetChannelProperties(This,ppProperties) (This)->lpVtbl->GetChannelProperties(This,ppProperties) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IPersistentDataChannel_QueryInterface(IPersistentDataChannel* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IPersistentDataChannel_AddRef(IPersistentDataChannel* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IPersistentDataChannel_Release(IPersistentDataChannel* This) { + return This->lpVtbl->Release(This); +} +/*** IPersistentDataChannel methods ***/ +static FORCEINLINE HRESULT IPersistentDataChannel_Cancel(IPersistentDataChannel* This) { + return This->lpVtbl->Cancel(This); +} +static FORCEINLINE HRESULT IPersistentDataChannel_GetChannelProperties(IPersistentDataChannel* This,ALG_PERSISTENT_DATA_CHANNEL_PROPERTIES **ppProperties) { + return This->lpVtbl->GetChannelProperties(This,ppProperties); +} +#endif +#endif + +#endif + +HRESULT STDMETHODCALLTYPE IPersistentDataChannel_Cancel_Proxy( + IPersistentDataChannel* This); +void __RPC_STUB IPersistentDataChannel_Cancel_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IPersistentDataChannel_GetChannelProperties_Proxy( + IPersistentDataChannel* This, + ALG_PERSISTENT_DATA_CHANNEL_PROPERTIES **ppProperties); +void __RPC_STUB IPersistentDataChannel_GetChannelProperties_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IPersistentDataChannel_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IPrimaryControlChannel interface + */ +#ifndef __IPrimaryControlChannel_INTERFACE_DEFINED__ +#define __IPrimaryControlChannel_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IPrimaryControlChannel, 0x1a2e8b62, 0x9012, 0x4be6, 0x84,0xae, 0x32,0xbd,0x66,0xba,0x65,0x7a); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("1a2e8b62-9012-4be6-84ae-32bd66ba657a") +IPrimaryControlChannel : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE Cancel( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetChannelProperties( + ALG_PRIMARY_CHANNEL_PROPERTIES **ppProperties) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetOriginalDestinationInformation( + ULONG ulSourceAddress, + USHORT usSourcePort, + ULONG *pulOriginalDestinationAddress, + USHORT *pusOriginalDestinationPort, + ULONG *pulRemapDestinationAddress, + USHORT *pulRemapDestinationPort, + IAdapterInfo **ppReceiveAdapter) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IPrimaryControlChannel, 0x1a2e8b62, 0x9012, 0x4be6, 0x84,0xae, 0x32,0xbd,0x66,0xba,0x65,0x7a) +#endif +#else +typedef struct IPrimaryControlChannelVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IPrimaryControlChannel* This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IPrimaryControlChannel* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IPrimaryControlChannel* This); + + /*** IPrimaryControlChannel methods ***/ + HRESULT (STDMETHODCALLTYPE *Cancel)( + IPrimaryControlChannel* This); + + HRESULT (STDMETHODCALLTYPE *GetChannelProperties)( + IPrimaryControlChannel* This, + ALG_PRIMARY_CHANNEL_PROPERTIES **ppProperties); + + HRESULT (STDMETHODCALLTYPE *GetOriginalDestinationInformation)( + IPrimaryControlChannel* This, + ULONG ulSourceAddress, + USHORT usSourcePort, + ULONG *pulOriginalDestinationAddress, + USHORT *pusOriginalDestinationPort, + ULONG *pulRemapDestinationAddress, + USHORT *pulRemapDestinationPort, + IAdapterInfo **ppReceiveAdapter); + + END_INTERFACE +} IPrimaryControlChannelVtbl; +interface IPrimaryControlChannel { + CONST_VTBL IPrimaryControlChannelVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IPrimaryControlChannel_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IPrimaryControlChannel_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IPrimaryControlChannel_Release(This) (This)->lpVtbl->Release(This) +/*** IPrimaryControlChannel methods ***/ +#define IPrimaryControlChannel_Cancel(This) (This)->lpVtbl->Cancel(This) +#define IPrimaryControlChannel_GetChannelProperties(This,ppProperties) (This)->lpVtbl->GetChannelProperties(This,ppProperties) +#define IPrimaryControlChannel_GetOriginalDestinationInformation(This,ulSourceAddress,usSourcePort,pulOriginalDestinationAddress,pusOriginalDestinationPort,pulRemapDestinationAddress,pulRemapDestinationPort,ppReceiveAdapter) (This)->lpVtbl->GetOriginalDestinationInformation(This,ulSourceAddress,usSourcePort,pulOriginalDestinationAddress,pusOriginalDestinationPort,pulRemapDestinationAddress,pulRemapDestinationPort,ppReceiveAdapter) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IPrimaryControlChannel_QueryInterface(IPrimaryControlChannel* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IPrimaryControlChannel_AddRef(IPrimaryControlChannel* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IPrimaryControlChannel_Release(IPrimaryControlChannel* This) { + return This->lpVtbl->Release(This); +} +/*** IPrimaryControlChannel methods ***/ +static FORCEINLINE HRESULT IPrimaryControlChannel_Cancel(IPrimaryControlChannel* This) { + return This->lpVtbl->Cancel(This); +} +static FORCEINLINE HRESULT IPrimaryControlChannel_GetChannelProperties(IPrimaryControlChannel* This,ALG_PRIMARY_CHANNEL_PROPERTIES **ppProperties) { + return This->lpVtbl->GetChannelProperties(This,ppProperties); +} +static FORCEINLINE HRESULT IPrimaryControlChannel_GetOriginalDestinationInformation(IPrimaryControlChannel* This,ULONG ulSourceAddress,USHORT usSourcePort,ULONG *pulOriginalDestinationAddress,USHORT *pusOriginalDestinationPort,ULONG *pulRemapDestinationAddress,USHORT *pulRemapDestinationPort,IAdapterInfo **ppReceiveAdapter) { + return This->lpVtbl->GetOriginalDestinationInformation(This,ulSourceAddress,usSourcePort,pulOriginalDestinationAddress,pusOriginalDestinationPort,pulRemapDestinationAddress,pulRemapDestinationPort,ppReceiveAdapter); +} +#endif +#endif + +#endif + +HRESULT STDMETHODCALLTYPE IPrimaryControlChannel_Cancel_Proxy( + IPrimaryControlChannel* This); +void __RPC_STUB IPrimaryControlChannel_Cancel_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IPrimaryControlChannel_GetChannelProperties_Proxy( + IPrimaryControlChannel* This, + ALG_PRIMARY_CHANNEL_PROPERTIES **ppProperties); +void __RPC_STUB IPrimaryControlChannel_GetChannelProperties_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IPrimaryControlChannel_GetOriginalDestinationInformation_Proxy( + IPrimaryControlChannel* This, + ULONG ulSourceAddress, + USHORT usSourcePort, + ULONG *pulOriginalDestinationAddress, + USHORT *pusOriginalDestinationPort, + ULONG *pulRemapDestinationAddress, + USHORT *pulRemapDestinationPort, + IAdapterInfo **ppReceiveAdapter); +void __RPC_STUB IPrimaryControlChannel_GetOriginalDestinationInformation_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IPrimaryControlChannel_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * ISecondaryControlChannel interface + */ +#ifndef __ISecondaryControlChannel_INTERFACE_DEFINED__ +#define __ISecondaryControlChannel_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_ISecondaryControlChannel, 0xa23f9d10, 0x714c, 0x41fe, 0x84,0x71, 0xff,0xb1,0x9b,0xc2,0x84,0x54); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("a23f9d10-714c-41fe-8471-ffb19bc28454") +ISecondaryControlChannel : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE Cancel( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetChannelProperties( + ALG_SECONDARY_CHANNEL_PROPERTIES **ppProperties) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetOriginalDestinationInformation( + ULONG ulSourceAddress, + USHORT usSourcePort, + ULONG *pulOriginalDestinationAddress, + USHORT *pusOriginalDestinationPort, + IAdapterInfo **ppReceiveAdapter) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(ISecondaryControlChannel, 0xa23f9d10, 0x714c, 0x41fe, 0x84,0x71, 0xff,0xb1,0x9b,0xc2,0x84,0x54) +#endif +#else +typedef struct ISecondaryControlChannelVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + ISecondaryControlChannel* This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + ISecondaryControlChannel* This); + + ULONG (STDMETHODCALLTYPE *Release)( + ISecondaryControlChannel* This); + + /*** ISecondaryControlChannel methods ***/ + HRESULT (STDMETHODCALLTYPE *Cancel)( + ISecondaryControlChannel* This); + + HRESULT (STDMETHODCALLTYPE *GetChannelProperties)( + ISecondaryControlChannel* This, + ALG_SECONDARY_CHANNEL_PROPERTIES **ppProperties); + + HRESULT (STDMETHODCALLTYPE *GetOriginalDestinationInformation)( + ISecondaryControlChannel* This, + ULONG ulSourceAddress, + USHORT usSourcePort, + ULONG *pulOriginalDestinationAddress, + USHORT *pusOriginalDestinationPort, + IAdapterInfo **ppReceiveAdapter); + + END_INTERFACE +} ISecondaryControlChannelVtbl; +interface ISecondaryControlChannel { + CONST_VTBL ISecondaryControlChannelVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define ISecondaryControlChannel_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define ISecondaryControlChannel_AddRef(This) (This)->lpVtbl->AddRef(This) +#define ISecondaryControlChannel_Release(This) (This)->lpVtbl->Release(This) +/*** ISecondaryControlChannel methods ***/ +#define ISecondaryControlChannel_Cancel(This) (This)->lpVtbl->Cancel(This) +#define ISecondaryControlChannel_GetChannelProperties(This,ppProperties) (This)->lpVtbl->GetChannelProperties(This,ppProperties) +#define ISecondaryControlChannel_GetOriginalDestinationInformation(This,ulSourceAddress,usSourcePort,pulOriginalDestinationAddress,pusOriginalDestinationPort,ppReceiveAdapter) (This)->lpVtbl->GetOriginalDestinationInformation(This,ulSourceAddress,usSourcePort,pulOriginalDestinationAddress,pusOriginalDestinationPort,ppReceiveAdapter) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT ISecondaryControlChannel_QueryInterface(ISecondaryControlChannel* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG ISecondaryControlChannel_AddRef(ISecondaryControlChannel* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG ISecondaryControlChannel_Release(ISecondaryControlChannel* This) { + return This->lpVtbl->Release(This); +} +/*** ISecondaryControlChannel methods ***/ +static FORCEINLINE HRESULT ISecondaryControlChannel_Cancel(ISecondaryControlChannel* This) { + return This->lpVtbl->Cancel(This); +} +static FORCEINLINE HRESULT ISecondaryControlChannel_GetChannelProperties(ISecondaryControlChannel* This,ALG_SECONDARY_CHANNEL_PROPERTIES **ppProperties) { + return This->lpVtbl->GetChannelProperties(This,ppProperties); +} +static FORCEINLINE HRESULT ISecondaryControlChannel_GetOriginalDestinationInformation(ISecondaryControlChannel* This,ULONG ulSourceAddress,USHORT usSourcePort,ULONG *pulOriginalDestinationAddress,USHORT *pusOriginalDestinationPort,IAdapterInfo **ppReceiveAdapter) { + return This->lpVtbl->GetOriginalDestinationInformation(This,ulSourceAddress,usSourcePort,pulOriginalDestinationAddress,pusOriginalDestinationPort,ppReceiveAdapter); +} +#endif +#endif + +#endif + +HRESULT STDMETHODCALLTYPE ISecondaryControlChannel_Cancel_Proxy( + ISecondaryControlChannel* This); +void __RPC_STUB ISecondaryControlChannel_Cancel_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE ISecondaryControlChannel_GetChannelProperties_Proxy( + ISecondaryControlChannel* This, + ALG_SECONDARY_CHANNEL_PROPERTIES **ppProperties); +void __RPC_STUB ISecondaryControlChannel_GetChannelProperties_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE ISecondaryControlChannel_GetOriginalDestinationInformation_Proxy( + ISecondaryControlChannel* This, + ULONG ulSourceAddress, + USHORT usSourcePort, + ULONG *pulOriginalDestinationAddress, + USHORT *pusOriginalDestinationPort, + IAdapterInfo **ppReceiveAdapter); +void __RPC_STUB ISecondaryControlChannel_GetOriginalDestinationInformation_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __ISecondaryControlChannel_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IEnumAdapterInfo interface + */ +#ifndef __IEnumAdapterInfo_INTERFACE_DEFINED__ +#define __IEnumAdapterInfo_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IEnumAdapterInfo, 0xa23f9d11, 0x714c, 0x41fe, 0x84,0x71, 0xff,0xb1,0x9b,0xc2,0x84,0x54); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("a23f9d11-714c-41fe-8471-ffb19bc28454") +IEnumAdapterInfo : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE Next( + ULONG celt, + IAdapterInfo **rgAI, + ULONG *pCeltFetched) = 0; + + virtual HRESULT STDMETHODCALLTYPE Skip( + ULONG celt) = 0; + + virtual HRESULT STDMETHODCALLTYPE Reset( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE Clone( + IEnumAdapterInfo **ppEnum) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IEnumAdapterInfo, 0xa23f9d11, 0x714c, 0x41fe, 0x84,0x71, 0xff,0xb1,0x9b,0xc2,0x84,0x54) +#endif +#else +typedef struct IEnumAdapterInfoVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IEnumAdapterInfo* This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IEnumAdapterInfo* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IEnumAdapterInfo* This); + + /*** IEnumAdapterInfo methods ***/ + HRESULT (STDMETHODCALLTYPE *Next)( + IEnumAdapterInfo* This, + ULONG celt, + IAdapterInfo **rgAI, + ULONG *pCeltFetched); + + HRESULT (STDMETHODCALLTYPE *Skip)( + IEnumAdapterInfo* This, + ULONG celt); + + HRESULT (STDMETHODCALLTYPE *Reset)( + IEnumAdapterInfo* This); + + HRESULT (STDMETHODCALLTYPE *Clone)( + IEnumAdapterInfo* This, + IEnumAdapterInfo **ppEnum); + + END_INTERFACE +} IEnumAdapterInfoVtbl; +interface IEnumAdapterInfo { + CONST_VTBL IEnumAdapterInfoVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IEnumAdapterInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IEnumAdapterInfo_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IEnumAdapterInfo_Release(This) (This)->lpVtbl->Release(This) +/*** IEnumAdapterInfo methods ***/ +#define IEnumAdapterInfo_Next(This,celt,rgAI,pCeltFetched) (This)->lpVtbl->Next(This,celt,rgAI,pCeltFetched) +#define IEnumAdapterInfo_Skip(This,celt) (This)->lpVtbl->Skip(This,celt) +#define IEnumAdapterInfo_Reset(This) (This)->lpVtbl->Reset(This) +#define IEnumAdapterInfo_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IEnumAdapterInfo_QueryInterface(IEnumAdapterInfo* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IEnumAdapterInfo_AddRef(IEnumAdapterInfo* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IEnumAdapterInfo_Release(IEnumAdapterInfo* This) { + return This->lpVtbl->Release(This); +} +/*** IEnumAdapterInfo methods ***/ +static FORCEINLINE HRESULT IEnumAdapterInfo_Next(IEnumAdapterInfo* This,ULONG celt,IAdapterInfo **rgAI,ULONG *pCeltFetched) { + return This->lpVtbl->Next(This,celt,rgAI,pCeltFetched); +} +static FORCEINLINE HRESULT IEnumAdapterInfo_Skip(IEnumAdapterInfo* This,ULONG celt) { + return This->lpVtbl->Skip(This,celt); +} +static FORCEINLINE HRESULT IEnumAdapterInfo_Reset(IEnumAdapterInfo* This) { + return This->lpVtbl->Reset(This); +} +static FORCEINLINE HRESULT IEnumAdapterInfo_Clone(IEnumAdapterInfo* This,IEnumAdapterInfo **ppEnum) { + return This->lpVtbl->Clone(This,ppEnum); +} +#endif +#endif + +#endif + +HRESULT STDMETHODCALLTYPE IEnumAdapterInfo_Next_Proxy( + IEnumAdapterInfo* This, + ULONG celt, + IAdapterInfo **rgAI, + ULONG *pCeltFetched); +void __RPC_STUB IEnumAdapterInfo_Next_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IEnumAdapterInfo_Skip_Proxy( + IEnumAdapterInfo* This, + ULONG celt); +void __RPC_STUB IEnumAdapterInfo_Skip_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IEnumAdapterInfo_Reset_Proxy( + IEnumAdapterInfo* This); +void __RPC_STUB IEnumAdapterInfo_Reset_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IEnumAdapterInfo_Clone_Proxy( + IEnumAdapterInfo* This, + IEnumAdapterInfo **ppEnum); +void __RPC_STUB IEnumAdapterInfo_Clone_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IEnumAdapterInfo_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IAdapterNotificationSink interface + */ +#ifndef __IAdapterNotificationSink_INTERFACE_DEFINED__ +#define __IAdapterNotificationSink_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IAdapterNotificationSink, 0x44ab2dc3, 0x23b2, 0x47de, 0x82,0x28, 0x2e,0x1c,0xce,0xeb,0x99,0x11); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("44ab2dc3-23b2-47de-8228-2e1cceeb9911") +IAdapterNotificationSink : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE AdapterAdded( + IAdapterInfo *pAdapter) = 0; + + virtual HRESULT STDMETHODCALLTYPE AdapterRemoved( + IAdapterInfo *pAdapter) = 0; + + virtual HRESULT STDMETHODCALLTYPE AdapterModified( + IAdapterInfo *pAdapter) = 0; + + virtual HRESULT STDMETHODCALLTYPE AdapterUpdatePortMapping( + IAdapterInfo *pAdapter) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IAdapterNotificationSink, 0x44ab2dc3, 0x23b2, 0x47de, 0x82,0x28, 0x2e,0x1c,0xce,0xeb,0x99,0x11) +#endif +#else +typedef struct IAdapterNotificationSinkVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IAdapterNotificationSink* This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IAdapterNotificationSink* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IAdapterNotificationSink* This); + + /*** IAdapterNotificationSink methods ***/ + HRESULT (STDMETHODCALLTYPE *AdapterAdded)( + IAdapterNotificationSink* This, + IAdapterInfo *pAdapter); + + HRESULT (STDMETHODCALLTYPE *AdapterRemoved)( + IAdapterNotificationSink* This, + IAdapterInfo *pAdapter); + + HRESULT (STDMETHODCALLTYPE *AdapterModified)( + IAdapterNotificationSink* This, + IAdapterInfo *pAdapter); + + HRESULT (STDMETHODCALLTYPE *AdapterUpdatePortMapping)( + IAdapterNotificationSink* This, + IAdapterInfo *pAdapter); + + END_INTERFACE +} IAdapterNotificationSinkVtbl; +interface IAdapterNotificationSink { + CONST_VTBL IAdapterNotificationSinkVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IAdapterNotificationSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IAdapterNotificationSink_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IAdapterNotificationSink_Release(This) (This)->lpVtbl->Release(This) +/*** IAdapterNotificationSink methods ***/ +#define IAdapterNotificationSink_AdapterAdded(This,pAdapter) (This)->lpVtbl->AdapterAdded(This,pAdapter) +#define IAdapterNotificationSink_AdapterRemoved(This,pAdapter) (This)->lpVtbl->AdapterRemoved(This,pAdapter) +#define IAdapterNotificationSink_AdapterModified(This,pAdapter) (This)->lpVtbl->AdapterModified(This,pAdapter) +#define IAdapterNotificationSink_AdapterUpdatePortMapping(This,pAdapter) (This)->lpVtbl->AdapterUpdatePortMapping(This,pAdapter) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IAdapterNotificationSink_QueryInterface(IAdapterNotificationSink* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IAdapterNotificationSink_AddRef(IAdapterNotificationSink* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IAdapterNotificationSink_Release(IAdapterNotificationSink* This) { + return This->lpVtbl->Release(This); +} +/*** IAdapterNotificationSink methods ***/ +static FORCEINLINE HRESULT IAdapterNotificationSink_AdapterAdded(IAdapterNotificationSink* This,IAdapterInfo *pAdapter) { + return This->lpVtbl->AdapterAdded(This,pAdapter); +} +static FORCEINLINE HRESULT IAdapterNotificationSink_AdapterRemoved(IAdapterNotificationSink* This,IAdapterInfo *pAdapter) { + return This->lpVtbl->AdapterRemoved(This,pAdapter); +} +static FORCEINLINE HRESULT IAdapterNotificationSink_AdapterModified(IAdapterNotificationSink* This,IAdapterInfo *pAdapter) { + return This->lpVtbl->AdapterModified(This,pAdapter); +} +static FORCEINLINE HRESULT IAdapterNotificationSink_AdapterUpdatePortMapping(IAdapterNotificationSink* This,IAdapterInfo *pAdapter) { + return This->lpVtbl->AdapterUpdatePortMapping(This,pAdapter); +} +#endif +#endif + +#endif + +HRESULT STDMETHODCALLTYPE IAdapterNotificationSink_AdapterAdded_Proxy( + IAdapterNotificationSink* This, + IAdapterInfo *pAdapter); +void __RPC_STUB IAdapterNotificationSink_AdapterAdded_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IAdapterNotificationSink_AdapterRemoved_Proxy( + IAdapterNotificationSink* This, + IAdapterInfo *pAdapter); +void __RPC_STUB IAdapterNotificationSink_AdapterRemoved_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IAdapterNotificationSink_AdapterModified_Proxy( + IAdapterNotificationSink* This, + IAdapterInfo *pAdapter); +void __RPC_STUB IAdapterNotificationSink_AdapterModified_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IAdapterNotificationSink_AdapterUpdatePortMapping_Proxy( + IAdapterNotificationSink* This, + IAdapterInfo *pAdapter); +void __RPC_STUB IAdapterNotificationSink_AdapterUpdatePortMapping_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IAdapterNotificationSink_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IApplicationGatewayServices interface + */ +#ifndef __IApplicationGatewayServices_INTERFACE_DEFINED__ +#define __IApplicationGatewayServices_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IApplicationGatewayServices, 0x5134842a, 0xfdce, 0x485d, 0x93,0xcd, 0xde,0x16,0x40,0x64,0x3b,0xbe); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("5134842a-fdce-485d-93cd-de1640643bbe") +IApplicationGatewayServices : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE CreatePrimaryControlChannel( + ULONG uAdapterIndex, + ALG_PROTOCOL eProtocol, + USHORT usPortToCapture, + ALG_CAPTURE eCaptureType, + WINBOOL fCaptureInbound, + ULONG ulListenAddress, + USHORT usListenPort, + IPrimaryControlChannel **ppIControlChannel) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateSecondaryControlChannel( + 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) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetBestSourceAddressForDestinationAddress( + ULONG ulDstAddress, + WINBOOL fDemandDial, + ULONG *pulBestSrcAddress) = 0; + + virtual HRESULT STDMETHODCALLTYPE PrepareProxyConnection( + ALG_PROTOCOL eProtocol, + ULONG ulSrcAddress, + USHORT usSrcPort, + ULONG ulDstAddress, + USHORT usDstPort, + WINBOOL fNoTimeout, + IPendingProxyConnection **ppPendingConnection) = 0; + + virtual HRESULT STDMETHODCALLTYPE PrepareSourceModifiedProxyConnection( + ALG_PROTOCOL eProtocol, + ULONG ulSrcAddress, + USHORT usSrcPort, + ULONG ulDstAddress, + USHORT usDstPort, + ULONG ulNewSrcAddress, + USHORT usNewSourcePort, + IPendingProxyConnection **ppPendingConnection) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateDataChannel( + 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) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreatePersistentDataChannel( + ALG_PROTOCOL eProtocol, + ULONG ulPrivateAddress, + USHORT usPrivatePort, + ULONG ulPublicAddress, + USHORT usPublicPort, + ULONG ulRemoteAddress, + USHORT usRemotePort, + ALG_DIRECTION eDirection, + IPersistentDataChannel **ppIPersistentDataChannel) = 0; + + virtual HRESULT STDMETHODCALLTYPE ReservePort( + USHORT usPortCount, + USHORT *pusReservedPort) = 0; + + virtual HRESULT STDMETHODCALLTYPE ReleaseReservedPort( + USHORT usReservedPortBase, + USHORT usPortCount) = 0; + + virtual HRESULT STDMETHODCALLTYPE EnumerateAdapters( + IEnumAdapterInfo **ppIEnumAdapterInfo) = 0; + + virtual HRESULT STDMETHODCALLTYPE StartAdapterNotifications( + IAdapterNotificationSink *pSink, + DWORD *pdwCookie) = 0; + + virtual HRESULT STDMETHODCALLTYPE StopAdapterNotifications( + DWORD dwCookieOfSink) = 0; + + virtual HRESULT STDMETHODCALLTYPE LookupAdapterPortMapping( + ULONG ulAdapterIndex, + UCHAR Protocol, + ULONG ulDestinationAddress, + USHORT usDestinationPort, + ULONG *pulRemapAddress, + USHORT *pusRemapPort) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IApplicationGatewayServices, 0x5134842a, 0xfdce, 0x485d, 0x93,0xcd, 0xde,0x16,0x40,0x64,0x3b,0xbe) +#endif +#else +typedef struct IApplicationGatewayServicesVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IApplicationGatewayServices* This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IApplicationGatewayServices* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IApplicationGatewayServices* This); + + /*** IApplicationGatewayServices methods ***/ + HRESULT (STDMETHODCALLTYPE *CreatePrimaryControlChannel)( + IApplicationGatewayServices* This, + ULONG uAdapterIndex, + ALG_PROTOCOL eProtocol, + USHORT usPortToCapture, + ALG_CAPTURE eCaptureType, + WINBOOL fCaptureInbound, + ULONG ulListenAddress, + USHORT usListenPort, + IPrimaryControlChannel **ppIControlChannel); + + HRESULT (STDMETHODCALLTYPE *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); + + HRESULT (STDMETHODCALLTYPE *GetBestSourceAddressForDestinationAddress)( + IApplicationGatewayServices* This, + ULONG ulDstAddress, + WINBOOL fDemandDial, + ULONG *pulBestSrcAddress); + + HRESULT (STDMETHODCALLTYPE *PrepareProxyConnection)( + IApplicationGatewayServices* This, + ALG_PROTOCOL eProtocol, + ULONG ulSrcAddress, + USHORT usSrcPort, + ULONG ulDstAddress, + USHORT usDstPort, + WINBOOL fNoTimeout, + IPendingProxyConnection **ppPendingConnection); + + HRESULT (STDMETHODCALLTYPE *PrepareSourceModifiedProxyConnection)( + IApplicationGatewayServices* This, + ALG_PROTOCOL eProtocol, + ULONG ulSrcAddress, + USHORT usSrcPort, + ULONG ulDstAddress, + USHORT usDstPort, + ULONG ulNewSrcAddress, + USHORT usNewSourcePort, + IPendingProxyConnection **ppPendingConnection); + + HRESULT (STDMETHODCALLTYPE *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); + + HRESULT (STDMETHODCALLTYPE *CreatePersistentDataChannel)( + IApplicationGatewayServices* This, + ALG_PROTOCOL eProtocol, + ULONG ulPrivateAddress, + USHORT usPrivatePort, + ULONG ulPublicAddress, + USHORT usPublicPort, + ULONG ulRemoteAddress, + USHORT usRemotePort, + ALG_DIRECTION eDirection, + IPersistentDataChannel **ppIPersistentDataChannel); + + HRESULT (STDMETHODCALLTYPE *ReservePort)( + IApplicationGatewayServices* This, + USHORT usPortCount, + USHORT *pusReservedPort); + + HRESULT (STDMETHODCALLTYPE *ReleaseReservedPort)( + IApplicationGatewayServices* This, + USHORT usReservedPortBase, + USHORT usPortCount); + + HRESULT (STDMETHODCALLTYPE *EnumerateAdapters)( + IApplicationGatewayServices* This, + IEnumAdapterInfo **ppIEnumAdapterInfo); + + HRESULT (STDMETHODCALLTYPE *StartAdapterNotifications)( + IApplicationGatewayServices* This, + IAdapterNotificationSink *pSink, + DWORD *pdwCookie); + + HRESULT (STDMETHODCALLTYPE *StopAdapterNotifications)( + IApplicationGatewayServices* This, + DWORD dwCookieOfSink); + + HRESULT (STDMETHODCALLTYPE *LookupAdapterPortMapping)( + IApplicationGatewayServices* This, + ULONG ulAdapterIndex, + UCHAR Protocol, + ULONG ulDestinationAddress, + USHORT usDestinationPort, + ULONG *pulRemapAddress, + USHORT *pusRemapPort); + + END_INTERFACE +} IApplicationGatewayServicesVtbl; +interface IApplicationGatewayServices { + CONST_VTBL IApplicationGatewayServicesVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IApplicationGatewayServices_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IApplicationGatewayServices_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IApplicationGatewayServices_Release(This) (This)->lpVtbl->Release(This) +/*** IApplicationGatewayServices methods ***/ +#define IApplicationGatewayServices_CreatePrimaryControlChannel(This,uAdapterIndex,eProtocol,usPortToCapture,eCaptureType,fCaptureInbound,ulListenAddress,usListenPort,ppIControlChannel) (This)->lpVtbl->CreatePrimaryControlChannel(This,uAdapterIndex,eProtocol,usPortToCapture,eCaptureType,fCaptureInbound,ulListenAddress,usListenPort,ppIControlChannel) +#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) +#define IApplicationGatewayServices_GetBestSourceAddressForDestinationAddress(This,ulDstAddress,fDemandDial,pulBestSrcAddress) (This)->lpVtbl->GetBestSourceAddressForDestinationAddress(This,ulDstAddress,fDemandDial,pulBestSrcAddress) +#define IApplicationGatewayServices_PrepareProxyConnection(This,eProtocol,ulSrcAddress,usSrcPort,ulDstAddress,usDstPort,fNoTimeout,ppPendingConnection) (This)->lpVtbl->PrepareProxyConnection(This,eProtocol,ulSrcAddress,usSrcPort,ulDstAddress,usDstPort,fNoTimeout,ppPendingConnection) +#define IApplicationGatewayServices_PrepareSourceModifiedProxyConnection(This,eProtocol,ulSrcAddress,usSrcPort,ulDstAddress,usDstPort,ulNewSrcAddress,usNewSourcePort,ppPendingConnection) (This)->lpVtbl->PrepareSourceModifiedProxyConnection(This,eProtocol,ulSrcAddress,usSrcPort,ulDstAddress,usDstPort,ulNewSrcAddress,usNewSourcePort,ppPendingConnection) +#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) +#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) +#define IApplicationGatewayServices_ReservePort(This,usPortCount,pusReservedPort) (This)->lpVtbl->ReservePort(This,usPortCount,pusReservedPort) +#define IApplicationGatewayServices_ReleaseReservedPort(This,usReservedPortBase,usPortCount) (This)->lpVtbl->ReleaseReservedPort(This,usReservedPortBase,usPortCount) +#define IApplicationGatewayServices_EnumerateAdapters(This,ppIEnumAdapterInfo) (This)->lpVtbl->EnumerateAdapters(This,ppIEnumAdapterInfo) +#define IApplicationGatewayServices_StartAdapterNotifications(This,pSink,pdwCookie) (This)->lpVtbl->StartAdapterNotifications(This,pSink,pdwCookie) +#define IApplicationGatewayServices_StopAdapterNotifications(This,dwCookieOfSink) (This)->lpVtbl->StopAdapterNotifications(This,dwCookieOfSink) +#define IApplicationGatewayServices_LookupAdapterPortMapping(This,ulAdapterIndex,Protocol,ulDestinationAddress,usDestinationPort,pulRemapAddress,pusRemapPort) (This)->lpVtbl->LookupAdapterPortMapping(This,ulAdapterIndex,Protocol,ulDestinationAddress,usDestinationPort,pulRemapAddress,pusRemapPort) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IApplicationGatewayServices_QueryInterface(IApplicationGatewayServices* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IApplicationGatewayServices_AddRef(IApplicationGatewayServices* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IApplicationGatewayServices_Release(IApplicationGatewayServices* This) { + return This->lpVtbl->Release(This); +} +/*** IApplicationGatewayServices methods ***/ +static FORCEINLINE HRESULT IApplicationGatewayServices_CreatePrimaryControlChannel(IApplicationGatewayServices* This,ULONG uAdapterIndex,ALG_PROTOCOL eProtocol,USHORT usPortToCapture,ALG_CAPTURE eCaptureType,WINBOOL fCaptureInbound,ULONG ulListenAddress,USHORT usListenPort,IPrimaryControlChannel **ppIControlChannel) { + return This->lpVtbl->CreatePrimaryControlChannel(This,uAdapterIndex,eProtocol,usPortToCapture,eCaptureType,fCaptureInbound,ulListenAddress,usListenPort,ppIControlChannel); +} +static FORCEINLINE HRESULT IApplicationGatewayServices_CreateSecondaryControlChannel(IApplicationGatewayServices* This,ALG_PROTOCOL eProtocol,ULONG ulPrivateAddress,USHORT usPrivatePort,ULONG ulPublicAddress,USHORT usPublicPort,ULONG ulRemoteAddress,USHORT usRemotePort,ULONG ulListenAddress,USHORT usListenPort,ALG_DIRECTION eDirection,WINBOOL fPersistent,ISecondaryControlChannel **ppControlChannel) { + return This->lpVtbl->CreateSecondaryControlChannel(This,eProtocol,ulPrivateAddress,usPrivatePort,ulPublicAddress,usPublicPort,ulRemoteAddress,usRemotePort,ulListenAddress,usListenPort,eDirection,fPersistent,ppControlChannel); +} +static FORCEINLINE HRESULT IApplicationGatewayServices_GetBestSourceAddressForDestinationAddress(IApplicationGatewayServices* This,ULONG ulDstAddress,WINBOOL fDemandDial,ULONG *pulBestSrcAddress) { + return This->lpVtbl->GetBestSourceAddressForDestinationAddress(This,ulDstAddress,fDemandDial,pulBestSrcAddress); +} +static FORCEINLINE HRESULT IApplicationGatewayServices_PrepareProxyConnection(IApplicationGatewayServices* This,ALG_PROTOCOL eProtocol,ULONG ulSrcAddress,USHORT usSrcPort,ULONG ulDstAddress,USHORT usDstPort,WINBOOL fNoTimeout,IPendingProxyConnection **ppPendingConnection) { + return This->lpVtbl->PrepareProxyConnection(This,eProtocol,ulSrcAddress,usSrcPort,ulDstAddress,usDstPort,fNoTimeout,ppPendingConnection); +} +static FORCEINLINE HRESULT IApplicationGatewayServices_PrepareSourceModifiedProxyConnection(IApplicationGatewayServices* This,ALG_PROTOCOL eProtocol,ULONG ulSrcAddress,USHORT usSrcPort,ULONG ulDstAddress,USHORT usDstPort,ULONG ulNewSrcAddress,USHORT usNewSourcePort,IPendingProxyConnection **ppPendingConnection) { + return This->lpVtbl->PrepareSourceModifiedProxyConnection(This,eProtocol,ulSrcAddress,usSrcPort,ulDstAddress,usDstPort,ulNewSrcAddress,usNewSourcePort,ppPendingConnection); +} +static FORCEINLINE HRESULT IApplicationGatewayServices_CreateDataChannel(IApplicationGatewayServices* This,ALG_PROTOCOL eProtocol,ULONG ulPrivateAddress,USHORT usPrivatePort,ULONG ulPublicAddress,USHORT usPublicPort,ULONG ulRemoteAddress,USHORT usRemotePort,ALG_DIRECTION eDirection,ALG_NOTIFICATION eDesiredNotification,WINBOOL fNoTimeout,IDataChannel **ppDataChannel) { + return This->lpVtbl->CreateDataChannel(This,eProtocol,ulPrivateAddress,usPrivatePort,ulPublicAddress,usPublicPort,ulRemoteAddress,usRemotePort,eDirection,eDesiredNotification,fNoTimeout,ppDataChannel); +} +static FORCEINLINE HRESULT IApplicationGatewayServices_CreatePersistentDataChannel(IApplicationGatewayServices* This,ALG_PROTOCOL eProtocol,ULONG ulPrivateAddress,USHORT usPrivatePort,ULONG ulPublicAddress,USHORT usPublicPort,ULONG ulRemoteAddress,USHORT usRemotePort,ALG_DIRECTION eDirection,IPersistentDataChannel **ppIPersistentDataChannel) { + return This->lpVtbl->CreatePersistentDataChannel(This,eProtocol,ulPrivateAddress,usPrivatePort,ulPublicAddress,usPublicPort,ulRemoteAddress,usRemotePort,eDirection,ppIPersistentDataChannel); +} +static FORCEINLINE HRESULT IApplicationGatewayServices_ReservePort(IApplicationGatewayServices* This,USHORT usPortCount,USHORT *pusReservedPort) { + return This->lpVtbl->ReservePort(This,usPortCount,pusReservedPort); +} +static FORCEINLINE HRESULT IApplicationGatewayServices_ReleaseReservedPort(IApplicationGatewayServices* This,USHORT usReservedPortBase,USHORT usPortCount) { + return This->lpVtbl->ReleaseReservedPort(This,usReservedPortBase,usPortCount); +} +static FORCEINLINE HRESULT IApplicationGatewayServices_EnumerateAdapters(IApplicationGatewayServices* This,IEnumAdapterInfo **ppIEnumAdapterInfo) { + return This->lpVtbl->EnumerateAdapters(This,ppIEnumAdapterInfo); +} +static FORCEINLINE HRESULT IApplicationGatewayServices_StartAdapterNotifications(IApplicationGatewayServices* This,IAdapterNotificationSink *pSink,DWORD *pdwCookie) { + return This->lpVtbl->StartAdapterNotifications(This,pSink,pdwCookie); +} +static FORCEINLINE HRESULT IApplicationGatewayServices_StopAdapterNotifications(IApplicationGatewayServices* This,DWORD dwCookieOfSink) { + return This->lpVtbl->StopAdapterNotifications(This,dwCookieOfSink); +} +static FORCEINLINE HRESULT IApplicationGatewayServices_LookupAdapterPortMapping(IApplicationGatewayServices* This,ULONG ulAdapterIndex,UCHAR Protocol,ULONG ulDestinationAddress,USHORT usDestinationPort,ULONG *pulRemapAddress,USHORT *pusRemapPort) { + return This->lpVtbl->LookupAdapterPortMapping(This,ulAdapterIndex,Protocol,ulDestinationAddress,usDestinationPort,pulRemapAddress,pusRemapPort); +} +#endif +#endif + +#endif + +HRESULT STDMETHODCALLTYPE IApplicationGatewayServices_CreatePrimaryControlChannel_Proxy( + IApplicationGatewayServices* This, + ULONG uAdapterIndex, + ALG_PROTOCOL eProtocol, + USHORT usPortToCapture, + ALG_CAPTURE eCaptureType, + WINBOOL fCaptureInbound, + ULONG ulListenAddress, + USHORT usListenPort, + IPrimaryControlChannel **ppIControlChannel); +void __RPC_STUB IApplicationGatewayServices_CreatePrimaryControlChannel_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IApplicationGatewayServices_CreateSecondaryControlChannel_Proxy( + 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); +void __RPC_STUB IApplicationGatewayServices_CreateSecondaryControlChannel_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IApplicationGatewayServices_GetBestSourceAddressForDestinationAddress_Proxy( + IApplicationGatewayServices* This, + ULONG ulDstAddress, + WINBOOL fDemandDial, + ULONG *pulBestSrcAddress); +void __RPC_STUB IApplicationGatewayServices_GetBestSourceAddressForDestinationAddress_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IApplicationGatewayServices_PrepareProxyConnection_Proxy( + IApplicationGatewayServices* This, + ALG_PROTOCOL eProtocol, + ULONG ulSrcAddress, + USHORT usSrcPort, + ULONG ulDstAddress, + USHORT usDstPort, + WINBOOL fNoTimeout, + IPendingProxyConnection **ppPendingConnection); +void __RPC_STUB IApplicationGatewayServices_PrepareProxyConnection_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IApplicationGatewayServices_PrepareSourceModifiedProxyConnection_Proxy( + IApplicationGatewayServices* This, + ALG_PROTOCOL eProtocol, + ULONG ulSrcAddress, + USHORT usSrcPort, + ULONG ulDstAddress, + USHORT usDstPort, + ULONG ulNewSrcAddress, + USHORT usNewSourcePort, + IPendingProxyConnection **ppPendingConnection); +void __RPC_STUB IApplicationGatewayServices_PrepareSourceModifiedProxyConnection_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IApplicationGatewayServices_CreateDataChannel_Proxy( + 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); +void __RPC_STUB IApplicationGatewayServices_CreateDataChannel_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IApplicationGatewayServices_CreatePersistentDataChannel_Proxy( + IApplicationGatewayServices* This, + ALG_PROTOCOL eProtocol, + ULONG ulPrivateAddress, + USHORT usPrivatePort, + ULONG ulPublicAddress, + USHORT usPublicPort, + ULONG ulRemoteAddress, + USHORT usRemotePort, + ALG_DIRECTION eDirection, + IPersistentDataChannel **ppIPersistentDataChannel); +void __RPC_STUB IApplicationGatewayServices_CreatePersistentDataChannel_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IApplicationGatewayServices_ReservePort_Proxy( + IApplicationGatewayServices* This, + USHORT usPortCount, + USHORT *pusReservedPort); +void __RPC_STUB IApplicationGatewayServices_ReservePort_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IApplicationGatewayServices_ReleaseReservedPort_Proxy( + IApplicationGatewayServices* This, + USHORT usReservedPortBase, + USHORT usPortCount); +void __RPC_STUB IApplicationGatewayServices_ReleaseReservedPort_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IApplicationGatewayServices_EnumerateAdapters_Proxy( + IApplicationGatewayServices* This, + IEnumAdapterInfo **ppIEnumAdapterInfo); +void __RPC_STUB IApplicationGatewayServices_EnumerateAdapters_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IApplicationGatewayServices_StartAdapterNotifications_Proxy( + IApplicationGatewayServices* This, + IAdapterNotificationSink *pSink, + DWORD *pdwCookie); +void __RPC_STUB IApplicationGatewayServices_StartAdapterNotifications_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IApplicationGatewayServices_StopAdapterNotifications_Proxy( + IApplicationGatewayServices* This, + DWORD dwCookieOfSink); +void __RPC_STUB IApplicationGatewayServices_StopAdapterNotifications_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IApplicationGatewayServices_LookupAdapterPortMapping_Proxy( + IApplicationGatewayServices* This, + ULONG ulAdapterIndex, + UCHAR Protocol, + ULONG ulDestinationAddress, + USHORT usDestinationPort, + ULONG *pulRemapAddress, + USHORT *pusRemapPort); +void __RPC_STUB IApplicationGatewayServices_LookupAdapterPortMapping_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IApplicationGatewayServices_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IApplicationGateway interface + */ +#ifndef __IApplicationGateway_INTERFACE_DEFINED__ +#define __IApplicationGateway_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IApplicationGateway, 0x5134842b, 0xfdce, 0x485d, 0x93,0xcd, 0xde,0x16,0x40,0x64,0x3b,0xbe); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("5134842b-fdce-485d-93cd-de1640643bbe") +IApplicationGateway : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE Initialize( + IApplicationGatewayServices *pAlgServices) = 0; + + virtual HRESULT STDMETHODCALLTYPE Stop( + ) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IApplicationGateway, 0x5134842b, 0xfdce, 0x485d, 0x93,0xcd, 0xde,0x16,0x40,0x64,0x3b,0xbe) +#endif +#else +typedef struct IApplicationGatewayVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IApplicationGateway* This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IApplicationGateway* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IApplicationGateway* This); + + /*** IApplicationGateway methods ***/ + HRESULT (STDMETHODCALLTYPE *Initialize)( + IApplicationGateway* This, + IApplicationGatewayServices *pAlgServices); + + HRESULT (STDMETHODCALLTYPE *Stop)( + IApplicationGateway* This); + + END_INTERFACE +} IApplicationGatewayVtbl; +interface IApplicationGateway { + CONST_VTBL IApplicationGatewayVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IApplicationGateway_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IApplicationGateway_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IApplicationGateway_Release(This) (This)->lpVtbl->Release(This) +/*** IApplicationGateway methods ***/ +#define IApplicationGateway_Initialize(This,pAlgServices) (This)->lpVtbl->Initialize(This,pAlgServices) +#define IApplicationGateway_Stop(This) (This)->lpVtbl->Stop(This) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IApplicationGateway_QueryInterface(IApplicationGateway* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IApplicationGateway_AddRef(IApplicationGateway* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IApplicationGateway_Release(IApplicationGateway* This) { + return This->lpVtbl->Release(This); +} +/*** IApplicationGateway methods ***/ +static FORCEINLINE HRESULT IApplicationGateway_Initialize(IApplicationGateway* This,IApplicationGatewayServices *pAlgServices) { + return This->lpVtbl->Initialize(This,pAlgServices); +} +static FORCEINLINE HRESULT IApplicationGateway_Stop(IApplicationGateway* This) { + return This->lpVtbl->Stop(This); +} +#endif +#endif + +#endif + +HRESULT STDMETHODCALLTYPE IApplicationGateway_Initialize_Proxy( + IApplicationGateway* This, + IApplicationGatewayServices *pAlgServices); +void __RPC_STUB IApplicationGateway_Initialize_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IApplicationGateway_Stop_Proxy( + IApplicationGateway* This); +void __RPC_STUB IApplicationGateway_Stop_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IApplicationGateway_INTERFACE_DEFINED__ */ + + +DEFINE_GUID(LIBID_ALGLib, 0xb6d1d098, 0xe235, 0x4b99, 0xba,0x98, 0x7c,0x62,0x4f,0xd8,0x75,0xdb); + +/***************************************************************************** + * ApplicationGatewayServices coclass + */ + +DEFINE_GUID(CLSID_ApplicationGatewayServices, 0xf8ade1d3, 0x49df, 0x4b75, 0x90,0x05, 0xef,0x95,0x08,0xe6,0xa3,0x37); + +#ifdef __cplusplus +class DECLSPEC_UUID("f8ade1d3-49df-4b75-9005-ef9508e6a337") ApplicationGatewayServices; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(ApplicationGatewayServices, 0xf8ade1d3, 0x49df, 0x4b75, 0x90,0x05, 0xef,0x95,0x08,0xe6,0xa3,0x37) +#endif +#endif + +/***************************************************************************** + * PrimaryControlChannel coclass + */ + +DEFINE_GUID(CLSID_PrimaryControlChannel, 0x3ceb5509, 0xc1cd, 0x432f, 0x9d,0x8f, 0x65,0xd1,0xe2,0x86,0xaa,0x80); + +#ifdef __cplusplus +class DECLSPEC_UUID("3ceb5509-c1cd-432f-9d8f-65d1e286aa80") PrimaryControlChannel; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(PrimaryControlChannel, 0x3ceb5509, 0xc1cd, 0x432f, 0x9d,0x8f, 0x65,0xd1,0xe2,0x86,0xaa,0x80) +#endif +#endif + +/***************************************************************************** + * SecondaryControlChannel coclass + */ + +DEFINE_GUID(CLSID_SecondaryControlChannel, 0x7b3181a0, 0xc92f, 0x4567, 0xb0,0xfa, 0xcd,0x9a,0x10,0xec,0xd7,0xd1); + +#ifdef __cplusplus +class DECLSPEC_UUID("7b3181a0-c92f-4567-b0fa-cd9a10ecd7d1") SecondaryControlChannel; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(SecondaryControlChannel, 0x7b3181a0, 0xc92f, 0x4567, 0xb0,0xfa, 0xcd,0x9a,0x10,0xec,0xd7,0xd1) +#endif +#endif + +/***************************************************************************** + * AdapterInfo coclass + */ + +DEFINE_GUID(CLSID_AdapterInfo, 0x6f9942c9, 0xc1b1, 0x4ab5, 0x93,0xda, 0x60,0x58,0x99,0x1d,0xc8,0xf3); + +#ifdef __cplusplus +class DECLSPEC_UUID("6f9942c9-c1b1-4ab5-93da-6058991dc8f3") AdapterInfo; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(AdapterInfo, 0x6f9942c9, 0xc1b1, 0x4ab5, 0x93,0xda, 0x60,0x58,0x99,0x1d,0xc8,0xf3) +#endif +#endif + +/***************************************************************************** + * EnumAdapterInfo coclass + */ + +DEFINE_GUID(CLSID_EnumAdapterInfo, 0x6f9942ca, 0xc1b1, 0x4ab5, 0x93,0xda, 0x60,0x58,0x99,0x1d,0xc8,0xf3); + +#ifdef __cplusplus +class DECLSPEC_UUID("6f9942ca-c1b1-4ab5-93da-6058991dc8f3") EnumAdapterInfo; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(EnumAdapterInfo, 0x6f9942ca, 0xc1b1, 0x4ab5, 0x93,0xda, 0x60,0x58,0x99,0x1d,0xc8,0xf3) +#endif +#endif + +/***************************************************************************** + * PendingProxyConnection coclass + */ + +DEFINE_GUID(CLSID_PendingProxyConnection, 0xd8a68e5e, 0x2b37, 0x426c, 0xa3,0x29, 0xc1,0x17,0xc1,0x4c,0x42,0x9e); + +#ifdef __cplusplus +class DECLSPEC_UUID("d8a68e5e-2b37-426c-a329-c117c14c429e") PendingProxyConnection; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(PendingProxyConnection, 0xd8a68e5e, 0x2b37, 0x426c, 0xa3,0x29, 0xc1,0x17,0xc1,0x4c,0x42,0x9e) +#endif +#endif + +/***************************************************************************** + * DataChannel coclass + */ + +DEFINE_GUID(CLSID_DataChannel, 0xbbb36f15, 0x408d, 0x4056, 0x8c,0x27, 0x92,0x08,0x43,0xd4,0x0b,0xe5); + +#ifdef __cplusplus +class DECLSPEC_UUID("bbb36f15-408d-4056-8c27-920843d40be5") DataChannel; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(DataChannel, 0xbbb36f15, 0x408d, 0x4056, 0x8c,0x27, 0x92,0x08,0x43,0xd4,0x0b,0xe5) +#endif +#endif + +/***************************************************************************** + * PersistentDataChannel coclass + */ + +DEFINE_GUID(CLSID_PersistentDataChannel, 0xbc9b54ab, 0x7883, 0x4c13, 0x90,0x9f, 0x03,0x3d,0x03,0x26,0x79,0x90); + +#ifdef __cplusplus +class DECLSPEC_UUID("bc9b54ab-7883-4c13-909f-033d03267990") PersistentDataChannel; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(PersistentDataChannel, 0xbc9b54ab, 0x7883, 0x4c13, 0x90,0x9f, 0x03,0x3d,0x03,0x26,0x79,0x90) +#endif +#endif + +#endif +/* Begin additional prototypes for all interfaces */ + + +/* End additional prototypes */ + +#ifdef __cplusplus +} +#endif + +#endif /* __alg_h__ */
diff --git a/mingw-w64-headers/include/alg.idl b/mingw-w64-headers/include/alg.idl new file mode 100755 index 0000000..7119212 --- /dev/null +++ b/mingw-w64-headers/include/alg.idl
@@ -0,0 +1,209 @@ +/** + * This file is part of the mingw-w64 runtime package. + * No warranty is given; refer to the file DISCLAIMER within this package. + */ + +import "oaidl.idl"; +import "ocidl.idl"; + +cpp_quote("#include <winapifamily.h>") +cpp_quote("") +cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)") + +typedef enum _ALG_ADAPTER_TYPE { + eALG_PRIVATE = 0x1, + eALG_BOUNDARY = 0x2, + eALG_FIREWALLED = 0x4 +} ALG_ADAPTER_TYPE; + +typedef enum _ALG_CAPTURE { + eALG_SOURCE_CAPTURE = 0x1, + eALG_DESTINATION_CAPTURE = 0x2 +} ALG_CAPTURE; + +typedef enum _ALG_DIRECTION { + eALG_INBOUND = 0x1, + eALG_OUTBOUND = 0x2, + eALG_BOTH = 0x3 +} ALG_DIRECTION; + +typedef enum _ALG_NOTIFICATION { + eALG_NONE = 0x0, + eALG_SESSION_CREATION = 0x1, + eALG_SESSION_DELETION = 0x2, + eALG_SESSION_BOTH = 0x3 +} ALG_NOTIFICATION; + +typedef enum _ALG_PROTOCOL { + eALG_TCP = 0x1, + eALG_UDP = 0x2 +} ALG_PROTOCOL; + +typedef struct _ALG_PRIMARY_CHANNEL_PROPERTIES { + ALG_PROTOCOL eProtocol; + USHORT usCapturePort; + ALG_CAPTURE eCaptureType; + BOOL fCaptureInbound; + ULONG ulListeningAddress; + USHORT usListeningPort; + ULONG ulAdapterIndex; +} ALG_PRIMARY_CHANNEL_PROPERTIES; + +typedef struct _ALG_SECONDARY_CHANNEL_PROPERTIES { + ALG_PROTOCOL eProtocol; + ULONG ulPrivateAddress; + USHORT usPrivatePort; + ULONG ulPublicAddress; + USHORT usPublicPort; + ULONG ulRemoteAddress; + USHORT usRemotePort; + ULONG ulListenAddress; + USHORT usListenPort; + ALG_DIRECTION eDirection; + BOOL fPersistent; +} ALG_SECONDARY_CHANNEL_PROPERTIES; + +typedef struct _ALG_DATA_CHANNEL_PROPERTIES { + ALG_PROTOCOL eProtocol; + ULONG ulPrivateAddress; + USHORT usPrivatePort; + ULONG ulPublicAddress; + USHORT usPublicPort; + ULONG ulRemoteAddress; + USHORT usRemotePort; + ALG_DIRECTION eDirection; + ALG_NOTIFICATION eDesiredNotification; +} ALG_DATA_CHANNEL_PROPERTIES; + +typedef struct _ALG_PERSISTENT_DATA_CHANNEL_PROPERTIES { + ALG_PROTOCOL eProtocol; + ULONG ulPrivateAddress; + USHORT usPrivatePort; + ULONG ulPublicAddress; + USHORT usPublicPort; + ULONG ulRemoteAddress; + USHORT usRemotePort; + ALG_DIRECTION eDirection; +} ALG_PERSISTENT_DATA_CHANNEL_PROPERTIES; + +const int ALG_MAXIMUM_PORT_RANGE_SIZE = 10; + +[object, uuid (480bf94a-09fd-4f8a-a3e0-b0700282d84d), pointer_default (unique)] +interface IAdapterInfo : IUnknown { + HRESULT GetAdapterIndex ([out] ULONG *pulIndex); + HRESULT GetAdapterType ([out] ALG_ADAPTER_TYPE *pAdapterType); + HRESULT GetAdapterAddresses ([out] ULONG *pulAddressCount,[out, size_is (,*pulAddressCount)] ULONG **prgAddresses); +}; + +[object, uuid (B68E5043-3e3d-4cc2-b9c1-5f8f88fee81c), pointer_default (unique)] +interface IPendingProxyConnection : IUnknown { + HRESULT Cancel (); +}; + +[object, local, uuid (ad42d12a-4ad0-4856-919e-e854c91d1856), pointer_default (unique)] +interface IDataChannel : IUnknown { + HRESULT Cancel (); + HRESULT GetChannelProperties ([out] ALG_DATA_CHANNEL_PROPERTIES **ppProperties); + HRESULT GetSessionCreationEventHandle ([out] HANDLE *pHandle); + HRESULT GetSessionDeletionEventHandle ([out] HANDLE *pHandle); +}; + +[object, uuid (a180e934-d92a-415d-9144-759f8054e8f6), pointer_default (unique)] +interface IPersistentDataChannel : IUnknown { + HRESULT Cancel (); + HRESULT GetChannelProperties ([out] ALG_PERSISTENT_DATA_CHANNEL_PROPERTIES **ppProperties); +}; + +[object, uuid (1a2e8b62-9012-4be6-84ae-32bd66ba657a), pointer_default (unique)] +interface IPrimaryControlChannel : IUnknown { + HRESULT Cancel (); + HRESULT GetChannelProperties ([out] ALG_PRIMARY_CHANNEL_PROPERTIES **ppProperties); + HRESULT GetOriginalDestinationInformation ([in] ULONG ulSourceAddress,[in] USHORT usSourcePort,[out] ULONG *pulOriginalDestinationAddress,[out] USHORT *pusOriginalDestinationPort,[out] ULONG *pulRemapDestinationAddress,[out] USHORT *pulRemapDestinationPort,[out] IAdapterInfo **ppReceiveAdapter); +}; + +[object, uuid (a23f9d10-714c-41fe-8471-ffb19bc28454), pointer_default (unique)] +interface ISecondaryControlChannel : IUnknown { + HRESULT Cancel (); + HRESULT GetChannelProperties ([out] ALG_SECONDARY_CHANNEL_PROPERTIES **ppProperties); + HRESULT GetOriginalDestinationInformation ([in] ULONG ulSourceAddress,[in] USHORT usSourcePort,[out] ULONG *pulOriginalDestinationAddress,[out] USHORT *pusOriginalDestinationPort,[out] IAdapterInfo **ppReceiveAdapter); +}; + +[object, uuid (a23f9d11-714c-41fe-8471-ffb19bc28454), pointer_default (unique)] +interface IEnumAdapterInfo : IUnknown { + HRESULT Next ([in] ULONG celt,[out, size_is (celt), length_is (*pCeltFetched)] IAdapterInfo **rgAI,[out] ULONG *pCeltFetched); + HRESULT Skip ([in] ULONG celt); + HRESULT Reset (); + HRESULT Clone ([out] IEnumAdapterInfo **ppEnum); +} + +[object, uuid (44ab2dc3-23b2-47de-8228-2e1cceeb9911), pointer_default (unique)] +interface IAdapterNotificationSink : IUnknown { + HRESULT AdapterAdded (IAdapterInfo *pAdapter); + HRESULT AdapterRemoved (IAdapterInfo *pAdapter); + HRESULT AdapterModified (IAdapterInfo *pAdapter); + HRESULT AdapterUpdatePortMapping (IAdapterInfo *pAdapter); +}; + +[object, uuid (5134842a-fdce-485d-93cd-de1640643bbe), pointer_default (unique)] +interface IApplicationGatewayServices : IUnknown { + HRESULT CreatePrimaryControlChannel ([in] ULONG uAdapterIndex,[in] ALG_PROTOCOL eProtocol,[in] USHORT usPortToCapture,[in] ALG_CAPTURE eCaptureType,[in] BOOL fCaptureInbound,[in] ULONG ulListenAddress,[in] USHORT usListenPort,[out] IPrimaryControlChannel **ppIControlChannel); + HRESULT CreateSecondaryControlChannel ([in] ALG_PROTOCOL eProtocol,[in] ULONG ulPrivateAddress,[in] USHORT usPrivatePort,[in] ULONG ulPublicAddress,[in] USHORT usPublicPort,[in] ULONG ulRemoteAddress,[in] USHORT usRemotePort,[in] ULONG ulListenAddress,[in] USHORT usListenPort,[in] ALG_DIRECTION eDirection,[in] BOOL fPersistent,[out] ISecondaryControlChannel **ppControlChannel); + HRESULT GetBestSourceAddressForDestinationAddress ([in] ULONG ulDstAddress,[in] BOOL fDemandDial,[out] ULONG *pulBestSrcAddress); + HRESULT PrepareProxyConnection ([in] ALG_PROTOCOL eProtocol,[in] ULONG ulSrcAddress,[in] USHORT usSrcPort,[in] ULONG ulDstAddress,[in] USHORT usDstPort,[in] BOOL fNoTimeout,[out] IPendingProxyConnection **ppPendingConnection); + HRESULT PrepareSourceModifiedProxyConnection ([in] ALG_PROTOCOL eProtocol,[in] ULONG ulSrcAddress,[in] USHORT usSrcPort,[in] ULONG ulDstAddress,[in] USHORT usDstPort,[in] ULONG ulNewSrcAddress,[in] USHORT usNewSourcePort,[out] IPendingProxyConnection **ppPendingConnection); + HRESULT CreateDataChannel ([in] ALG_PROTOCOL eProtocol,[in] ULONG ulPrivateAddress,[in] USHORT usPrivatePort,[in] ULONG ulPublicAddress,[in] USHORT usPublicPort,[in] ULONG ulRemoteAddress,[in] USHORT usRemotePort,[in] ALG_DIRECTION eDirection,[in] ALG_NOTIFICATION eDesiredNotification,[in] BOOL fNoTimeout,[out] IDataChannel **ppDataChannel); + HRESULT CreatePersistentDataChannel ([in] ALG_PROTOCOL eProtocol,[in] ULONG ulPrivateAddress,[in] USHORT usPrivatePort,[in] ULONG ulPublicAddress,[in] USHORT usPublicPort,[in] ULONG ulRemoteAddress,[in] USHORT usRemotePort,[in] ALG_DIRECTION eDirection,[out] IPersistentDataChannel **ppIPersistentDataChannel); + HRESULT ReservePort ([in] USHORT usPortCount,[out] USHORT *pusReservedPort); + HRESULT ReleaseReservedPort ([in] USHORT usReservedPortBase,[in] USHORT usPortCount); + HRESULT EnumerateAdapters ([out] IEnumAdapterInfo **ppIEnumAdapterInfo); + HRESULT StartAdapterNotifications ([in] IAdapterNotificationSink *pSink,[in] DWORD *pdwCookie); + HRESULT StopAdapterNotifications ([in] DWORD dwCookieOfSink); + HRESULT LookupAdapterPortMapping ([in] ULONG ulAdapterIndex,[in] UCHAR Protocol,[in] ULONG ulDestinationAddress,[in] USHORT usDestinationPort,[out] ULONG *pulRemapAddress,[out] USHORT *pusRemapPort); +}; + +[object, uuid (5134842b-fdce-485d-93cd-de1640643bbe), pointer_default (unique)] +interface IApplicationGateway : IUnknown { + HRESULT Initialize ([in] IApplicationGatewayServices *pAlgServices); + HRESULT Stop (void); +}; + +[uuid (b6d1d098-e235-4b99-ba98-7c624fd875db), version (1.0)] +library ALGLib { + importlib ("stdole32.tlb"); + importlib ("stdole2.tlb"); + + [uuid (f8ade1d3-49df-4b75-9005-ef9508e6a337)] + coclass ApplicationGatewayServices { + [default] interface IApplicationGatewayServices; + }; + [uuid (3ceb5509-C1CD-432f-9d8f-65d1e286aa80)] + coclass PrimaryControlChannel { + [default] interface IPrimaryControlChannel; + }; + [uuid (7b3181a0-c92F-4567-b0fa-cd9a10ecd7d1)] + coclass SecondaryControlChannel { + [default] interface ISecondaryControlChannel; + }; + [uuid (6f9942c9-c1b1-4ab5-93da-6058991dc8f3)] + coclass AdapterInfo { + [default] interface IAdapterInfo; + }; + [uuid (6f9942ca-c1b1-4ab5-93da-6058991dc8f3)] + coclass EnumAdapterInfo { + [default] interface IEnumAdapterInfo; + }; + [uuid (d8a68e5e-2b37-426c-a329-c117c14c429e)] + coclass PendingProxyConnection { + [default] interface IPendingProxyConnection; + }; + [uuid (bbb36f15-408d-4056-8c27-920843d40be5)] + coclass DataChannel { + [default] interface IDataChannel; + }; + [uuid (bc9B54ab-7883-4c13-909f-033d03267990)] + + coclass PersistentDataChannel { + [default] interface IPersistentDataChannel; + }; +}; +cpp_quote("#endif")