source: Daodan/MSYS2/mingw32/i686-w64-mingw32/include/alg.idl@ 1194

Last change on this file since 1194 was 1166, checked in by rossy, 3 years ago

Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File size: 8.9 KB
RevLine 
[1166]1/**
2 * This file is part of the mingw-w64 runtime package.
3 * No warranty is given; refer to the file DISCLAIMER within this package.
4 */
5
6import "oaidl.idl";
7import "ocidl.idl";
8
9cpp_quote("#include <winapifamily.h>")
10cpp_quote("")
11cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
12
13typedef enum _ALG_ADAPTER_TYPE {
14 eALG_PRIVATE = 0x1,
15 eALG_BOUNDARY = 0x2,
16 eALG_FIREWALLED = 0x4
17} ALG_ADAPTER_TYPE;
18
19typedef enum _ALG_CAPTURE {
20 eALG_SOURCE_CAPTURE = 0x1,
21 eALG_DESTINATION_CAPTURE = 0x2
22} ALG_CAPTURE;
23
24typedef enum _ALG_DIRECTION {
25 eALG_INBOUND = 0x1,
26 eALG_OUTBOUND = 0x2,
27 eALG_BOTH = 0x3
28} ALG_DIRECTION;
29
30typedef enum _ALG_NOTIFICATION {
31 eALG_NONE = 0x0,
32 eALG_SESSION_CREATION = 0x1,
33 eALG_SESSION_DELETION = 0x2,
34 eALG_SESSION_BOTH = 0x3
35} ALG_NOTIFICATION;
36
37typedef enum _ALG_PROTOCOL {
38 eALG_TCP = 0x1,
39 eALG_UDP = 0x2
40} ALG_PROTOCOL;
41
42typedef struct _ALG_PRIMARY_CHANNEL_PROPERTIES {
43 ALG_PROTOCOL eProtocol;
44 USHORT usCapturePort;
45 ALG_CAPTURE eCaptureType;
46 BOOL fCaptureInbound;
47 ULONG ulListeningAddress;
48 USHORT usListeningPort;
49 ULONG ulAdapterIndex;
50} ALG_PRIMARY_CHANNEL_PROPERTIES;
51
52typedef struct _ALG_SECONDARY_CHANNEL_PROPERTIES {
53 ALG_PROTOCOL eProtocol;
54 ULONG ulPrivateAddress;
55 USHORT usPrivatePort;
56 ULONG ulPublicAddress;
57 USHORT usPublicPort;
58 ULONG ulRemoteAddress;
59 USHORT usRemotePort;
60 ULONG ulListenAddress;
61 USHORT usListenPort;
62 ALG_DIRECTION eDirection;
63 BOOL fPersistent;
64} ALG_SECONDARY_CHANNEL_PROPERTIES;
65
66typedef struct _ALG_DATA_CHANNEL_PROPERTIES {
67 ALG_PROTOCOL eProtocol;
68 ULONG ulPrivateAddress;
69 USHORT usPrivatePort;
70 ULONG ulPublicAddress;
71 USHORT usPublicPort;
72 ULONG ulRemoteAddress;
73 USHORT usRemotePort;
74 ALG_DIRECTION eDirection;
75 ALG_NOTIFICATION eDesiredNotification;
76} ALG_DATA_CHANNEL_PROPERTIES;
77
78typedef struct _ALG_PERSISTENT_DATA_CHANNEL_PROPERTIES {
79 ALG_PROTOCOL eProtocol;
80 ULONG ulPrivateAddress;
81 USHORT usPrivatePort;
82 ULONG ulPublicAddress;
83 USHORT usPublicPort;
84 ULONG ulRemoteAddress;
85 USHORT usRemotePort;
86 ALG_DIRECTION eDirection;
87} ALG_PERSISTENT_DATA_CHANNEL_PROPERTIES;
88
89const int ALG_MAXIMUM_PORT_RANGE_SIZE = 10;
90
91[object, uuid (480bf94a-09fd-4f8a-a3e0-b0700282d84d), pointer_default (unique)]
92interface IAdapterInfo : IUnknown {
93 HRESULT GetAdapterIndex ([out] ULONG *pulIndex);
94 HRESULT GetAdapterType ([out] ALG_ADAPTER_TYPE *pAdapterType);
95 HRESULT GetAdapterAddresses ([out] ULONG *pulAddressCount,[out, size_is (,*pulAddressCount)] ULONG **prgAddresses);
96};
97
98[object, uuid (B68E5043-3e3d-4cc2-b9c1-5f8f88fee81c), pointer_default (unique)]
99interface IPendingProxyConnection : IUnknown {
100 HRESULT Cancel ();
101};
102
103[object, local, uuid (ad42d12a-4ad0-4856-919e-e854c91d1856), pointer_default (unique)]
104interface IDataChannel : IUnknown {
105 HRESULT Cancel ();
106 HRESULT GetChannelProperties ([out] ALG_DATA_CHANNEL_PROPERTIES **ppProperties);
107 HRESULT GetSessionCreationEventHandle ([out] HANDLE *pHandle);
108 HRESULT GetSessionDeletionEventHandle ([out] HANDLE *pHandle);
109};
110
111[object, uuid (a180e934-d92a-415d-9144-759f8054e8f6), pointer_default (unique)]
112interface IPersistentDataChannel : IUnknown {
113 HRESULT Cancel ();
114 HRESULT GetChannelProperties ([out] ALG_PERSISTENT_DATA_CHANNEL_PROPERTIES **ppProperties);
115};
116
117[object, uuid (1a2e8b62-9012-4be6-84ae-32bd66ba657a), pointer_default (unique)]
118interface IPrimaryControlChannel : IUnknown {
119 HRESULT Cancel ();
120 HRESULT GetChannelProperties ([out] ALG_PRIMARY_CHANNEL_PROPERTIES **ppProperties);
121 HRESULT GetOriginalDestinationInformation ([in] ULONG ulSourceAddress,[in] USHORT usSourcePort,[out] ULONG *pulOriginalDestinationAddress,[out] USHORT *pusOriginalDestinationPort,[out] ULONG *pulRemapDestinationAddress,[out] USHORT *pulRemapDestinationPort,[out] IAdapterInfo **ppReceiveAdapter);
122};
123
124[object, uuid (a23f9d10-714c-41fe-8471-ffb19bc28454), pointer_default (unique)]
125interface ISecondaryControlChannel : IUnknown {
126 HRESULT Cancel ();
127 HRESULT GetChannelProperties ([out] ALG_SECONDARY_CHANNEL_PROPERTIES **ppProperties);
128 HRESULT GetOriginalDestinationInformation ([in] ULONG ulSourceAddress,[in] USHORT usSourcePort,[out] ULONG *pulOriginalDestinationAddress,[out] USHORT *pusOriginalDestinationPort,[out] IAdapterInfo **ppReceiveAdapter);
129};
130
131[object, uuid (a23f9d11-714c-41fe-8471-ffb19bc28454), pointer_default (unique)]
132interface IEnumAdapterInfo : IUnknown {
133 HRESULT Next ([in] ULONG celt,[out, size_is (celt), length_is (*pCeltFetched)] IAdapterInfo **rgAI,[out] ULONG *pCeltFetched);
134 HRESULT Skip ([in] ULONG celt);
135 HRESULT Reset ();
136 HRESULT Clone ([out] IEnumAdapterInfo **ppEnum);
137}
138
139[object, uuid (44ab2dc3-23b2-47de-8228-2e1cceeb9911), pointer_default (unique)]
140interface IAdapterNotificationSink : IUnknown {
141 HRESULT AdapterAdded (IAdapterInfo *pAdapter);
142 HRESULT AdapterRemoved (IAdapterInfo *pAdapter);
143 HRESULT AdapterModified (IAdapterInfo *pAdapter);
144 HRESULT AdapterUpdatePortMapping (IAdapterInfo *pAdapter);
145};
146
147[object, uuid (5134842a-fdce-485d-93cd-de1640643bbe), pointer_default (unique)]
148interface IApplicationGatewayServices : IUnknown {
149 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);
150 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);
151 HRESULT GetBestSourceAddressForDestinationAddress ([in] ULONG ulDstAddress,[in] BOOL fDemandDial,[out] ULONG *pulBestSrcAddress);
152 HRESULT PrepareProxyConnection ([in] ALG_PROTOCOL eProtocol,[in] ULONG ulSrcAddress,[in] USHORT usSrcPort,[in] ULONG ulDstAddress,[in] USHORT usDstPort,[in] BOOL fNoTimeout,[out] IPendingProxyConnection **ppPendingConnection);
153 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);
154 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);
155 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);
156 HRESULT ReservePort ([in] USHORT usPortCount,[out] USHORT *pusReservedPort);
157 HRESULT ReleaseReservedPort ([in] USHORT usReservedPortBase,[in] USHORT usPortCount);
158 HRESULT EnumerateAdapters ([out] IEnumAdapterInfo **ppIEnumAdapterInfo);
159 HRESULT StartAdapterNotifications ([in] IAdapterNotificationSink *pSink,[in] DWORD *pdwCookie);
160 HRESULT StopAdapterNotifications ([in] DWORD dwCookieOfSink);
161 HRESULT LookupAdapterPortMapping ([in] ULONG ulAdapterIndex,[in] UCHAR Protocol,[in] ULONG ulDestinationAddress,[in] USHORT usDestinationPort,[out] ULONG *pulRemapAddress,[out] USHORT *pusRemapPort);
162};
163
164[object, uuid (5134842b-fdce-485d-93cd-de1640643bbe), pointer_default (unique)]
165interface IApplicationGateway : IUnknown {
166 HRESULT Initialize ([in] IApplicationGatewayServices *pAlgServices);
167 HRESULT Stop (void);
168};
169
170[uuid (b6d1d098-e235-4b99-ba98-7c624fd875db), version (1.0)]
171library ALGLib {
172 importlib ("stdole32.tlb");
173 importlib ("stdole2.tlb");
174
175 [uuid (f8ade1d3-49df-4b75-9005-ef9508e6a337)]
176 coclass ApplicationGatewayServices {
177 [default] interface IApplicationGatewayServices;
178 };
179 [uuid (3ceb5509-C1CD-432f-9d8f-65d1e286aa80)]
180 coclass PrimaryControlChannel {
181 [default] interface IPrimaryControlChannel;
182 };
183 [uuid (7b3181a0-c92F-4567-b0fa-cd9a10ecd7d1)]
184 coclass SecondaryControlChannel {
185 [default] interface ISecondaryControlChannel;
186 };
187 [uuid (6f9942c9-c1b1-4ab5-93da-6058991dc8f3)]
188 coclass AdapterInfo {
189 [default] interface IAdapterInfo;
190 };
191 [uuid (6f9942ca-c1b1-4ab5-93da-6058991dc8f3)]
192 coclass EnumAdapterInfo {
193 [default] interface IEnumAdapterInfo;
194 };
195 [uuid (d8a68e5e-2b37-426c-a329-c117c14c429e)]
196 coclass PendingProxyConnection {
197 [default] interface IPendingProxyConnection;
198 };
199 [uuid (bbb36f15-408d-4056-8c27-920843d40be5)]
200 coclass DataChannel {
201 [default] interface IDataChannel;
202 };
203 [uuid (bc9B54ab-7883-4c13-909f-033d03267990)]
204
205 coclass PersistentDataChannel {
206 [default] interface IPersistentDataChannel;
207 };
208};
209cpp_quote("#endif")
Note: See TracBrowser for help on using the repository browser.