1 | /*
|
---|
2 | * Copyright 2009 Jacek Caban for CodeWeavers
|
---|
3 | *
|
---|
4 | * This library is free software; you can redistribute it and/or
|
---|
5 | * modify it under the terms of the GNU Lesser General Public
|
---|
6 | * License as published by the Free Software Foundation; either
|
---|
7 | * version 2.1 of the License, or (at your option) any later version.
|
---|
8 | *
|
---|
9 | * This library is distributed in the hope that it will be useful,
|
---|
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
---|
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
---|
12 | * Lesser General Public License for more details.
|
---|
13 | *
|
---|
14 | * You should have received a copy of the GNU Lesser General Public
|
---|
15 | * License along with this library; if not, write to the Free Software
|
---|
16 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
---|
17 | */
|
---|
18 |
|
---|
19 | /*
|
---|
20 | * Sun LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
|
---|
21 | * other than GPL or LGPL is available it will apply instead, Sun elects to use only
|
---|
22 | * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
|
---|
23 | * a choice of LGPL license versions is made available with the language indicating
|
---|
24 | * that LGPLv2 or any later version may be used, or where a choice of which version
|
---|
25 | * of the LGPL is applied is otherwise unspecified.
|
---|
26 | */
|
---|
27 |
|
---|
28 | #ifndef DO_NO_IMPORTS
|
---|
29 | import "oaidl.idl";
|
---|
30 | import "unknwn.idl";
|
---|
31 | import "wtypes.idl";
|
---|
32 | /* import "prsht.idl"; */
|
---|
33 | #endif
|
---|
34 |
|
---|
35 | cpp_quote("DEFINE_GUID(CLSID_NetSharingManager,0x5c63c1ad,0x3956,0x4ff8,0x84,0x86,0x40,0x03,0x47,0x58,0x31,0x5b);")
|
---|
36 |
|
---|
37 | [
|
---|
38 | object,
|
---|
39 | uuid(c08956a1-1cd3-11d1-b1c5-00805fc1270e),
|
---|
40 | pointer_default(unique)
|
---|
41 | ]
|
---|
42 | interface INetConnection : IUnknown
|
---|
43 | {
|
---|
44 | typedef enum tagNETCON_CHARACTERISTIC_FLAGS
|
---|
45 | {
|
---|
46 | NCCF_NONE = 0x0000,
|
---|
47 | NCCF_ALL_USERS = 0x0001,
|
---|
48 | NCCF_ALLOW_DUPLICATION = 0x0002,
|
---|
49 | NCCF_ALLOW_REMOVAL = 0x0004,
|
---|
50 | NCCF_ALLOW_RENAME = 0x0008,
|
---|
51 | NCCF_INCOMING_ONLY = 0x0020,
|
---|
52 | NCCF_OUTGOING_ONLY = 0x0040,
|
---|
53 | NCCF_BRANDED = 0x0080,
|
---|
54 | NCCF_SHARED = 0x0100,
|
---|
55 | NCCF_BRIDGED = 0x0200,
|
---|
56 | NCCF_FIREWALLED = 0x0400,
|
---|
57 | NCCF_DEFAULT = 0x0800,
|
---|
58 | NCCF_HOMENET_CAPABLE = 0x1000,
|
---|
59 | NCCF_SHARED_PRIVATE = 0x2000,
|
---|
60 | NCCF_QUARANTINED = 0x4000,
|
---|
61 | NCCF_RESERVED = 0x8000,
|
---|
62 | NCCF_BLUETOOTH_MASK = 0x000F0000,
|
---|
63 | NCCF_LAN_MASK = 0x00F00000
|
---|
64 | } NETCON_CHARACTERISTIC_FLAGS;
|
---|
65 |
|
---|
66 | typedef enum tagNETCON_STATUS
|
---|
67 | {
|
---|
68 | NCS_DISCONNECTED,
|
---|
69 | NCS_CONNECTING,
|
---|
70 | NCS_CONNECTED,
|
---|
71 | NCS_DISCONNECTING,
|
---|
72 | NCS_HARDWARE_NOT_PRESENT,
|
---|
73 | NCS_HARDWARE_DISABLED,
|
---|
74 | NCS_HARDWARE_MALFUNCTION,
|
---|
75 | NCS_MEDIA_DISCONNECTED,
|
---|
76 | NCS_AUTHENTICATING,
|
---|
77 | NCS_AUTHENTICATION_SUCCEEDED,
|
---|
78 | NCS_AUTHENTICATION_FAILED,
|
---|
79 | NCS_INVALID_ADDRESS,
|
---|
80 | NCS_CREDENTIALS_REQUIRED
|
---|
81 | } NETCON_STATUS;
|
---|
82 |
|
---|
83 | typedef enum tagNETCON_TYPE
|
---|
84 | {
|
---|
85 | NCT_DIRECT_CONNECT,
|
---|
86 | NCT_INBOUND,
|
---|
87 | NCT_INTERNET,
|
---|
88 | NCT_LAN,
|
---|
89 | NCT_PHONE,
|
---|
90 | NCT_TUNNEL,
|
---|
91 | NCT_BRIDGE
|
---|
92 | } NETCON_TYPE;
|
---|
93 |
|
---|
94 | typedef enum tagNETCON_MEDIATYPE
|
---|
95 | {
|
---|
96 | NCM_NONE,
|
---|
97 | NCM_DIRECT,
|
---|
98 | NCM_ISDN,
|
---|
99 | NCM_LAN,
|
---|
100 | NCM_PHONE,
|
---|
101 | NCM_TUNNEL,
|
---|
102 | NCM_PPPOE,
|
---|
103 | NCM_BRIDGE,
|
---|
104 | NCM_SHAREDACCESSHOST_LAN,
|
---|
105 | NCM_SHAREDACCESSHOST_RAS
|
---|
106 | } NETCON_MEDIATYPE;
|
---|
107 |
|
---|
108 | typedef struct tagNETCON_PROPERTIES
|
---|
109 | {
|
---|
110 | GUID guidId;
|
---|
111 | [string] LPWSTR pszwName;
|
---|
112 | [string] LPWSTR pszwDeviceName;
|
---|
113 | NETCON_STATUS Status;
|
---|
114 | NETCON_MEDIATYPE MediaType;
|
---|
115 | DWORD dwCharacter;
|
---|
116 | CLSID clsidThisObject;
|
---|
117 | CLSID clsidUiObject;
|
---|
118 | } NETCON_PROPERTIES;
|
---|
119 |
|
---|
120 | HRESULT Connect();
|
---|
121 |
|
---|
122 | HRESULT Disconnect();
|
---|
123 |
|
---|
124 | HRESULT Delete();
|
---|
125 |
|
---|
126 | HRESULT Duplicate(
|
---|
127 | [in, string] LPCWSTR pszwDuplicateName,
|
---|
128 | [out] INetConnection **ppCon);
|
---|
129 |
|
---|
130 | HRESULT GetProperties([out] NETCON_PROPERTIES **ppProps);
|
---|
131 |
|
---|
132 | HRESULT GetUiObjectClassId([out, ref] CLSID *pclsid);
|
---|
133 |
|
---|
134 | HRESULT Rename([in, string] LPCWSTR pszwNewName);
|
---|
135 | }
|
---|
136 |
|
---|
137 | [
|
---|
138 | object,
|
---|
139 | uuid(24b7e9b5-e38f-4685-851b-00892cf5f940),
|
---|
140 | oleautomation,
|
---|
141 | dual,
|
---|
142 | pointer_default(unique)
|
---|
143 | ]
|
---|
144 | interface INetSharingPortMappingProps : IDispatch
|
---|
145 | {
|
---|
146 | [propget, id(1)]
|
---|
147 | HRESULT Name([out, retval] BSTR *pbstrName);
|
---|
148 |
|
---|
149 | [propget, id(2)]
|
---|
150 | HRESULT IPProtocol([out, retval] UCHAR *pucIPProt);
|
---|
151 |
|
---|
152 | [propget, id(3)]
|
---|
153 | HRESULT ExternalPort([out, retval] long *pusPort);
|
---|
154 |
|
---|
155 | [propget, id(4)]
|
---|
156 | HRESULT InternalPort([out, retval] long *pusPort);
|
---|
157 |
|
---|
158 | [propget, id(5)]
|
---|
159 | HRESULT Options([out, retval] long *pdwOptions);
|
---|
160 |
|
---|
161 | [propget, id(6)]
|
---|
162 | HRESULT TargetName([out, retval] BSTR *pbstrTargetName);
|
---|
163 |
|
---|
164 | [propget, id(7)]
|
---|
165 | HRESULT TargetIPAddress([out, retval] BSTR *pbstrTargetIPAddress);
|
---|
166 |
|
---|
167 | [propget, id(8)]
|
---|
168 | HRESULT Enabled([out, retval] VARIANT_BOOL *pbool);
|
---|
169 | }
|
---|
170 |
|
---|
171 | [
|
---|
172 | object,
|
---|
173 | uuid(c08956b1-1cd3-11d1-b1c5-00805fc1270e),
|
---|
174 | oleautomation,
|
---|
175 | dual,
|
---|
176 | pointer_default(unique)
|
---|
177 | ]
|
---|
178 | interface INetSharingPortMapping : IDispatch
|
---|
179 | {
|
---|
180 | [id(1)]
|
---|
181 | HRESULT Disable();
|
---|
182 |
|
---|
183 | [id(2)]
|
---|
184 | HRESULT Enable();
|
---|
185 |
|
---|
186 | [propget, id(3)]
|
---|
187 | HRESULT Properties([out, retval] INetSharingPortMappingProps **ppNSPMP);
|
---|
188 |
|
---|
189 | [id(4)]
|
---|
190 | HRESULT Delete();
|
---|
191 | };
|
---|
192 | [
|
---|
193 | object,
|
---|
194 | uuid(02e4a2de-da20-4e34-89c8-ac22275a010b),
|
---|
195 | oleautomation,
|
---|
196 | dual,
|
---|
197 | pointer_default(unique)
|
---|
198 | ]
|
---|
199 | interface INetSharingPortMappingCollection : IDispatch
|
---|
200 | {
|
---|
201 | [propget, id(DISPID_NEWENUM), restricted]
|
---|
202 | HRESULT _NewEnum([out, retval] IUnknown **pVal);
|
---|
203 |
|
---|
204 | [propget, id(1)]
|
---|
205 | HRESULT Count([out, retval] long *pVal);
|
---|
206 | }
|
---|
207 |
|
---|
208 | [
|
---|
209 | object,
|
---|
210 | uuid(c08956b6-1cd3-11d1-b1c5-00805fc1270e),
|
---|
211 | oleautomation,
|
---|
212 | dual,
|
---|
213 | pointer_default(unique)
|
---|
214 | ]
|
---|
215 | interface INetSharingConfiguration : IDispatch
|
---|
216 | {
|
---|
217 | typedef enum tagSHARINGCONNECTIONTYPE {
|
---|
218 | ICSSHARINGTYPE_PUBLIC,
|
---|
219 | ICSSHARINGTYPE_PRIVATE
|
---|
220 | } SHARINGCONNECTIONTYPE, *LPSHARINGCONNECTIONTYPE;
|
---|
221 |
|
---|
222 | typedef enum tagSHARINGCONNECTION_ENUM_FLAGS {
|
---|
223 | ICSSC_DEFAULT,
|
---|
224 | ICSSC_ENABLED
|
---|
225 | } SHARINGCONNECTION_ENUM_FLAGS;
|
---|
226 |
|
---|
227 | typedef enum tagICS_TARGETTYPE {
|
---|
228 | ICSTT_NAME,
|
---|
229 | ICSTT_IPADDRESS
|
---|
230 | }ICS_TARGETTYPE;
|
---|
231 |
|
---|
232 | [propget, id(1)]
|
---|
233 | HRESULT SharingEnabled([out, retval] VARIANT_BOOL *pbEnabled);
|
---|
234 |
|
---|
235 | [propget, id(2)]
|
---|
236 | HRESULT SharingConnectionType([out, retval] SHARINGCONNECTIONTYPE *pType);
|
---|
237 |
|
---|
238 | [id(3)]
|
---|
239 | HRESULT DisableSharing();
|
---|
240 |
|
---|
241 | [id(4)]
|
---|
242 | HRESULT EnableSharing([in] SHARINGCONNECTIONTYPE Type);
|
---|
243 |
|
---|
244 | [propget, id(5)]
|
---|
245 | HRESULT InternetFirewallEnabled([out, retval] VARIANT_BOOL *pbEnabled);
|
---|
246 |
|
---|
247 | [id(6)]
|
---|
248 | HRESULT DisableInternetFirewall();
|
---|
249 |
|
---|
250 | [id(7)]
|
---|
251 | HRESULT EnableInternetFirewall();
|
---|
252 |
|
---|
253 | [propget, id(8)]
|
---|
254 | HRESULT EnumPortMappings(
|
---|
255 | [in] SHARINGCONNECTION_ENUM_FLAGS Flags,
|
---|
256 | [out, retval] INetSharingPortMappingCollection **ppColl);
|
---|
257 |
|
---|
258 | [id(9)]
|
---|
259 | HRESULT AddPortMapping(
|
---|
260 | [in] BSTR bstrName,
|
---|
261 | [in] UCHAR ucIPProtocol,
|
---|
262 | [in] USHORT usExternalPort,
|
---|
263 | [in] USHORT usInternalPort,
|
---|
264 | [in] DWORD dwOptions,
|
---|
265 | [in] BSTR bstrTargetNameOrIPAddress,
|
---|
266 | [in] ICS_TARGETTYPE eTargetType,
|
---|
267 | [out, retval] INetSharingPortMapping **ppMapping );
|
---|
268 |
|
---|
269 | [id(10)]
|
---|
270 | HRESULT RemovePortMapping([in] INetSharingPortMapping *pMapping);
|
---|
271 | }
|
---|
272 |
|
---|
273 | [
|
---|
274 | object,
|
---|
275 | uuid(c08956b4-1cd3-11d1-b1c5-00805fc1270e),
|
---|
276 | pointer_default(unique)
|
---|
277 | ]
|
---|
278 | interface IEnumNetSharingPublicConnection : IUnknown
|
---|
279 | {
|
---|
280 | HRESULT Next(
|
---|
281 | [in] ULONG celt,
|
---|
282 | [out, size_is(celt), length_is(*pceltFetched)] VARIANT *rgVar,
|
---|
283 | [out] ULONG *pceltFetched);
|
---|
284 |
|
---|
285 | HRESULT Skip([in] ULONG celt);
|
---|
286 |
|
---|
287 | HRESULT Reset();
|
---|
288 |
|
---|
289 | HRESULT Clone([out] IEnumNetSharingPublicConnection **ppenum);
|
---|
290 | }
|
---|
291 |
|
---|
292 | [
|
---|
293 | object,
|
---|
294 | uuid(c08956b5-1cd3-11d1-b1c5-00805fc1270e),
|
---|
295 | pointer_default(unique)
|
---|
296 | ]
|
---|
297 | interface IEnumNetSharingPrivateConnection : IUnknown
|
---|
298 | {
|
---|
299 | HRESULT Next(
|
---|
300 | [in] ULONG celt,
|
---|
301 | [out, size_is(celt), length_is(*pCeltFetched)] VARIANT *rgVar,
|
---|
302 | [out] ULONG *pCeltFetched);
|
---|
303 |
|
---|
304 | HRESULT Skip([in] ULONG celt);
|
---|
305 |
|
---|
306 | HRESULT Reset();
|
---|
307 |
|
---|
308 | HRESULT Clone([out] IEnumNetSharingPrivateConnection **ppenum);
|
---|
309 | }
|
---|
310 |
|
---|
311 | [
|
---|
312 | object,
|
---|
313 | uuid(f4277c95-ce5b-463d-8167-5662d9bcaa72),
|
---|
314 | oleautomation,
|
---|
315 | dual,
|
---|
316 | pointer_default(unique)
|
---|
317 | ]
|
---|
318 | interface INetConnectionProps : IDispatch
|
---|
319 | {
|
---|
320 | [propget, id(1)]
|
---|
321 | HRESULT Guid([out, retval] BSTR *pbstrGuid);
|
---|
322 |
|
---|
323 | [propget, id(2)]
|
---|
324 | HRESULT Name([out, retval] BSTR *pbstrName);
|
---|
325 |
|
---|
326 | [propget, id(3)]
|
---|
327 | HRESULT DeviceName([out, retval] BSTR *pbstrDeviceName);
|
---|
328 |
|
---|
329 | [propget, id(4)]
|
---|
330 | HRESULT Status([out, retval] NETCON_STATUS *pStatus);
|
---|
331 |
|
---|
332 | [propget, id(5)]
|
---|
333 | HRESULT MediaType([out, retval] NETCON_MEDIATYPE *pMediaType);
|
---|
334 |
|
---|
335 | [propget, id(6)]
|
---|
336 | HRESULT Characteristics([out, retval] DWORD *pdwFlags);
|
---|
337 | }
|
---|
338 |
|
---|
339 | [
|
---|
340 | object,
|
---|
341 | uuid(7d7a6355-f372-4971-a149-bfc927be762a),
|
---|
342 | oleautomation,
|
---|
343 | dual,
|
---|
344 | pointer_default(unique)
|
---|
345 | ]
|
---|
346 | interface INetSharingPublicConnectionCollection : IDispatch
|
---|
347 | {
|
---|
348 | [propget, id(DISPID_NEWENUM), restricted]
|
---|
349 | HRESULT _NewEnum([out, retval] IUnknown **pVal);
|
---|
350 |
|
---|
351 | [propget, id(1)]
|
---|
352 | HRESULT Count([out, retval] long *pVal);
|
---|
353 | }
|
---|
354 |
|
---|
355 | [
|
---|
356 | object,
|
---|
357 | uuid(33c4643c-7811-46fa-a89a-768597bd7223),
|
---|
358 | oleautomation,
|
---|
359 | dual,
|
---|
360 | pointer_default(unique)
|
---|
361 | ]
|
---|
362 | interface INetSharingEveryConnectionCollection : IDispatch
|
---|
363 | {
|
---|
364 | [propget, id(DISPID_NEWENUM), restricted]
|
---|
365 | HRESULT _NewEnum([out, retval] IUnknown **pVal);
|
---|
366 |
|
---|
367 | [propget, id(1)]
|
---|
368 | HRESULT Count([out, retval] long *pVal);
|
---|
369 | }
|
---|
370 |
|
---|
371 | [
|
---|
372 | object,
|
---|
373 | uuid(38ae69e0-4409-402a-a2cb-e965c727f840),
|
---|
374 | oleautomation,
|
---|
375 | dual,
|
---|
376 | pointer_default(unique)
|
---|
377 | ]
|
---|
378 | interface INetSharingPrivateConnectionCollection : IDispatch
|
---|
379 | {
|
---|
380 | [propget, id(DISPID_NEWENUM), restricted]
|
---|
381 | HRESULT _NewEnum([out, retval] IUnknown **pVal);
|
---|
382 |
|
---|
383 | [propget, id(1)]
|
---|
384 | HRESULT Count([out, retval] long *pVal);
|
---|
385 | }
|
---|
386 |
|
---|
387 | [
|
---|
388 | object,
|
---|
389 | uuid(c08956b7-1cd3-11d1-b1c5-00805fc1270e),
|
---|
390 | oleautomation,
|
---|
391 | dual,
|
---|
392 | pointer_default(unique)
|
---|
393 | ]
|
---|
394 | interface INetSharingManager : IDispatch
|
---|
395 | {
|
---|
396 | [propget, id(1)]
|
---|
397 | HRESULT SharingInstalled([out, retval] VARIANT_BOOL *pbInstalled);
|
---|
398 |
|
---|
399 | [propget, id(2)]
|
---|
400 | HRESULT EnumPublicConnections(
|
---|
401 | [in] SHARINGCONNECTION_ENUM_FLAGS Flags,
|
---|
402 | [out, retval] INetSharingPublicConnectionCollection **ppColl);
|
---|
403 |
|
---|
404 | [propget, id(3)]
|
---|
405 | HRESULT EnumPrivateConnections(
|
---|
406 | [in] SHARINGCONNECTION_ENUM_FLAGS Flags,
|
---|
407 | [out, retval] INetSharingPrivateConnectionCollection **ppColl);
|
---|
408 |
|
---|
409 | [propget, id(6)]
|
---|
410 | HRESULT INetSharingConfigurationForINetConnection(
|
---|
411 | [in] INetConnection *pNetConnection,
|
---|
412 | [out, retval] INetSharingConfiguration **ppNetSharingConfiguration);
|
---|
413 |
|
---|
414 | [propget, id(7)]
|
---|
415 | HRESULT EnumEveryConnection([out, retval] INetSharingEveryConnectionCollection **ppColl);
|
---|
416 |
|
---|
417 | [propget, id(8)]
|
---|
418 | HRESULT NetConnectionProps(
|
---|
419 | [in] INetConnection *pNetConnection,
|
---|
420 | [out, retval] INetConnectionProps **ppProps);
|
---|
421 | }
|
---|