1 /*** Autogenerated by WIDL 6.4 from include/netlistmgr.idl - Do not edit ***/
2 
3 #ifdef _WIN32
4 #ifndef __REQUIRED_RPCNDR_H_VERSION__
5 #define __REQUIRED_RPCNDR_H_VERSION__ 475
6 #endif
7 #include <rpc.h>
8 #include <rpcndr.h>
9 #endif
10 
11 #ifndef COM_NO_WINDOWS_H
12 #include <windows.h>
13 #include <ole2.h>
14 #endif
15 
16 #ifndef __netlistmgr_h__
17 #define __netlistmgr_h__
18 
19 /* Forward declarations */
20 
21 #ifndef __INetworkCostManager_FWD_DEFINED__
22 #define __INetworkCostManager_FWD_DEFINED__
23 typedef interface INetworkCostManager INetworkCostManager;
24 #ifdef __cplusplus
25 interface INetworkCostManager;
26 #endif /* __cplusplus */
27 #endif
28 
29 #ifndef __INetworkConnectionCost_FWD_DEFINED__
30 #define __INetworkConnectionCost_FWD_DEFINED__
31 typedef interface INetworkConnectionCost INetworkConnectionCost;
32 #ifdef __cplusplus
33 interface INetworkConnectionCost;
34 #endif /* __cplusplus */
35 #endif
36 
37 #ifndef __INetworkCostManagerEvents_FWD_DEFINED__
38 #define __INetworkCostManagerEvents_FWD_DEFINED__
39 typedef interface INetworkCostManagerEvents INetworkCostManagerEvents;
40 #ifdef __cplusplus
41 interface INetworkCostManagerEvents;
42 #endif /* __cplusplus */
43 #endif
44 
45 #ifndef __IEnumNetworks_FWD_DEFINED__
46 #define __IEnumNetworks_FWD_DEFINED__
47 typedef interface IEnumNetworks IEnumNetworks;
48 #ifdef __cplusplus
49 interface IEnumNetworks;
50 #endif /* __cplusplus */
51 #endif
52 
53 #ifndef __IEnumNetworkConnections_FWD_DEFINED__
54 #define __IEnumNetworkConnections_FWD_DEFINED__
55 typedef interface IEnumNetworkConnections IEnumNetworkConnections;
56 #ifdef __cplusplus
57 interface IEnumNetworkConnections;
58 #endif /* __cplusplus */
59 #endif
60 
61 #ifndef __INetworkListManager_FWD_DEFINED__
62 #define __INetworkListManager_FWD_DEFINED__
63 typedef interface INetworkListManager INetworkListManager;
64 #ifdef __cplusplus
65 interface INetworkListManager;
66 #endif /* __cplusplus */
67 #endif
68 
69 #ifndef __NetworkListManager_FWD_DEFINED__
70 #define __NetworkListManager_FWD_DEFINED__
71 #ifdef __cplusplus
72 typedef class NetworkListManager NetworkListManager;
73 #else
74 typedef struct NetworkListManager NetworkListManager;
75 #endif /* defined __cplusplus */
76 #endif /* defined __NetworkListManager_FWD_DEFINED__ */
77 
78 #ifndef __INetworkListManagerEvents_FWD_DEFINED__
79 #define __INetworkListManagerEvents_FWD_DEFINED__
80 typedef interface INetworkListManagerEvents INetworkListManagerEvents;
81 #ifdef __cplusplus
82 interface INetworkListManagerEvents;
83 #endif /* __cplusplus */
84 #endif
85 
86 #ifndef __INetworkConnectionEvents_FWD_DEFINED__
87 #define __INetworkConnectionEvents_FWD_DEFINED__
88 typedef interface INetworkConnectionEvents INetworkConnectionEvents;
89 #ifdef __cplusplus
90 interface INetworkConnectionEvents;
91 #endif /* __cplusplus */
92 #endif
93 
94 #ifndef __INetworkConnection_FWD_DEFINED__
95 #define __INetworkConnection_FWD_DEFINED__
96 typedef interface INetworkConnection INetworkConnection;
97 #ifdef __cplusplus
98 interface INetworkConnection;
99 #endif /* __cplusplus */
100 #endif
101 
102 #ifndef __INetwork_FWD_DEFINED__
103 #define __INetwork_FWD_DEFINED__
104 typedef interface INetwork INetwork;
105 #ifdef __cplusplus
106 interface INetwork;
107 #endif /* __cplusplus */
108 #endif
109 
110 #ifndef __INetworkEvents_FWD_DEFINED__
111 #define __INetworkEvents_FWD_DEFINED__
112 typedef interface INetworkEvents INetworkEvents;
113 #ifdef __cplusplus
114 interface INetworkEvents;
115 #endif /* __cplusplus */
116 #endif
117 
118 /* Headers for imported files */
119 
120 #include <oaidl.h>
121 #include <objidl.h>
122 
123 #ifdef __cplusplus
124 extern "C" {
125 #endif
126 
127 #ifndef __IEnumNetworks_FWD_DEFINED__
128 #define __IEnumNetworks_FWD_DEFINED__
129 typedef interface IEnumNetworks IEnumNetworks;
130 #ifdef __cplusplus
131 interface IEnumNetworks;
132 #endif /* __cplusplus */
133 #endif
134 
135 #ifndef __IEnumNetworkConnections_FWD_DEFINED__
136 #define __IEnumNetworkConnections_FWD_DEFINED__
137 typedef interface IEnumNetworkConnections IEnumNetworkConnections;
138 #ifdef __cplusplus
139 interface IEnumNetworkConnections;
140 #endif /* __cplusplus */
141 #endif
142 
143 #ifndef __INetwork_FWD_DEFINED__
144 #define __INetwork_FWD_DEFINED__
145 typedef interface INetwork INetwork;
146 #ifdef __cplusplus
147 interface INetwork;
148 #endif /* __cplusplus */
149 #endif
150 
151 #ifndef __INetworkConnection_FWD_DEFINED__
152 #define __INetworkConnection_FWD_DEFINED__
153 typedef interface INetworkConnection INetworkConnection;
154 #ifdef __cplusplus
155 interface INetworkConnection;
156 #endif /* __cplusplus */
157 #endif
158 
159 #ifndef __INetworkConnectionEvents_FWD_DEFINED__
160 #define __INetworkConnectionEvents_FWD_DEFINED__
161 typedef interface INetworkConnectionEvents INetworkConnectionEvents;
162 #ifdef __cplusplus
163 interface INetworkConnectionEvents;
164 #endif /* __cplusplus */
165 #endif
166 
167 #ifndef __INetworkCostManager_FWD_DEFINED__
168 #define __INetworkCostManager_FWD_DEFINED__
169 typedef interface INetworkCostManager INetworkCostManager;
170 #ifdef __cplusplus
171 interface INetworkCostManager;
172 #endif /* __cplusplus */
173 #endif
174 
175 #ifndef __INetworkEvents_FWD_DEFINED__
176 #define __INetworkEvents_FWD_DEFINED__
177 typedef interface INetworkEvents INetworkEvents;
178 #ifdef __cplusplus
179 interface INetworkEvents;
180 #endif /* __cplusplus */
181 #endif
182 
183 #ifndef __INetworkListManager_FWD_DEFINED__
184 #define __INetworkListManager_FWD_DEFINED__
185 typedef interface INetworkListManager INetworkListManager;
186 #ifdef __cplusplus
187 interface INetworkListManager;
188 #endif /* __cplusplus */
189 #endif
190 
191 #ifndef __INetworkListManagerEvents_FWD_DEFINED__
192 #define __INetworkListManagerEvents_FWD_DEFINED__
193 typedef interface INetworkListManagerEvents INetworkListManagerEvents;
194 #ifdef __cplusplus
195 interface INetworkListManagerEvents;
196 #endif /* __cplusplus */
197 #endif
198 
199 typedef enum NLM_NETWORK_CLASS {
200     NLM_NETWORK_IDENTIFYING = 0x1,
201     NLM_NETWORK_IDENTIFIED = 0x2,
202     NLM_NETWORK_UNIDENTIFIED = 0x3
203 } NLM_NETWORK_CLASS;
204 typedef enum NLM_INTERNET_CONNECTIVITY {
205     NLM_INTERNET_CONNECTIVITY_WEBHIJACK = 0x1,
206     NLM_INTERNET_CONNECTIVITY_PROXIED = 0x2,
207     NLM_INTERNET_CONNECTIVITY_CORPORATE = 0x4
208 } NLM_INTERNET_CONNECTIVITY;
209 typedef enum NLM_CONNECTIVITY {
210     NLM_CONNECTIVITY_DISCONNECTED = 0x0,
211     NLM_CONNECTIVITY_IPV4_NOTRAFFIC = 0x1,
212     NLM_CONNECTIVITY_IPV6_NOTRAFFIC = 0x2,
213     NLM_CONNECTIVITY_IPV4_SUBNET = 0x10,
214     NLM_CONNECTIVITY_IPV4_LOCALNETWORK = 0x20,
215     NLM_CONNECTIVITY_IPV4_INTERNET = 0x40,
216     NLM_CONNECTIVITY_IPV6_SUBNET = 0x100,
217     NLM_CONNECTIVITY_IPV6_LOCALNETWORK = 0x200,
218     NLM_CONNECTIVITY_IPV6_INTERNET = 0x400
219 } NLM_CONNECTIVITY;
220 typedef enum NLM_DOMAIN_TYPE {
221     NLM_DOMAIN_TYPE_NON_DOMAIN_NETWORK = 0x0,
222     NLM_DOMAIN_TYPE_DOMAIN_NETWORK = 0x1,
223     NLM_DOMAIN_TYPE_DOMAIN_AUTHENTICATED = 0x2
224 } NLM_DOMAIN_TYPE;
225 typedef enum NLM_ENUM_NETWORK {
226     NLM_ENUM_NETWORK_CONNECTED = 0x1,
227     NLM_ENUM_NETWORK_DISCONNECTED = 0x2,
228     NLM_ENUM_NETWORK_ALL = 0x3
229 } NLM_ENUM_NETWORK;
230 typedef enum NLM_CONNECTION_COST {
231     NLM_CONNECTION_COST_UNKNOWN = 0x0,
232     NLM_CONNECTION_COST_UNRESTRICTED = 0x1,
233     NLM_CONNECTION_COST_FIXED = 0x2,
234     NLM_CONNECTION_COST_VARIABLE = 0x4,
235     NLM_CONNECTION_COST_OVERDATALIMIT = 0x10000,
236     NLM_CONNECTION_COST_CONGESTED = 0x20000,
237     NLM_CONNECTION_COST_ROAMING = 0x40000,
238     NLM_CONNECTION_COST_APPROACHINGDATALIMIT = 0x80000
239 } NLM_CONNECTION_COST;
240 typedef struct NLM_SOCKADDR {
241     BYTE data[128];
242 } NLM_SOCKADDR;
243 #define NLM_UNKNOWN_DATAPLAN_STATUS (0xffffffff)
244 
245 typedef struct NLM_USAGE_DATA {
246     DWORD UsageInMegabytes;
247     FILETIME LastSyncTime;
248 } NLM_USAGE_DATA;
249 typedef struct NLM_DATAPLAN_STATUS {
250     GUID InterfaceGuid;
251     NLM_USAGE_DATA UsageData;
252     DWORD DataLimitInMegabytes;
253     DWORD InboundBandwidthInKbps;
254     DWORD OutboundBandwidthInKbps;
255     FILETIME NextBillingCycle;
256     DWORD MaxTransferSizeInMegabytes;
257     DWORD Reserved;
258 } NLM_DATAPLAN_STATUS;
259 /*****************************************************************************
260  * INetworkCostManager interface
261  */
262 #ifndef __INetworkCostManager_INTERFACE_DEFINED__
263 #define __INetworkCostManager_INTERFACE_DEFINED__
264 
265 DEFINE_GUID(IID_INetworkCostManager, 0xdcb00008, 0x570f, 0x4a9b, 0x8d,0x69, 0x19,0x9f,0xdb,0xa5,0x72,0x3b);
266 #if defined(__cplusplus) && !defined(CINTERFACE)
267 MIDL_INTERFACE("dcb00008-570f-4a9b-8d69-199fdba5723b")
268 INetworkCostManager : public IUnknown
269 {
270     virtual HRESULT STDMETHODCALLTYPE GetCost(
271         DWORD *pCost,
272         NLM_SOCKADDR *pDestIPAddr) = 0;
273 
274     virtual HRESULT STDMETHODCALLTYPE GetDataPlanStatus(
275         NLM_DATAPLAN_STATUS *pDataPlanStatus,
276         NLM_SOCKADDR *pDestIPAddr) = 0;
277 
278     virtual HRESULT STDMETHODCALLTYPE SetDestinationAddresses(
279         UINT32 length,
280         NLM_SOCKADDR *pDestIPAddrList,
281         VARIANT_BOOL bAppend) = 0;
282 
283 };
284 #ifdef __CRT_UUID_DECL
285 __CRT_UUID_DECL(INetworkCostManager, 0xdcb00008, 0x570f, 0x4a9b, 0x8d,0x69, 0x19,0x9f,0xdb,0xa5,0x72,0x3b)
286 #endif
287 #else
288 typedef struct INetworkCostManagerVtbl {
289     BEGIN_INTERFACE
290 
291     /*** IUnknown methods ***/
292     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
293         INetworkCostManager *This,
294         REFIID riid,
295         void **ppvObject);
296 
297     ULONG (STDMETHODCALLTYPE *AddRef)(
298         INetworkCostManager *This);
299 
300     ULONG (STDMETHODCALLTYPE *Release)(
301         INetworkCostManager *This);
302 
303     /*** INetworkCostManager methods ***/
304     HRESULT (STDMETHODCALLTYPE *GetCost)(
305         INetworkCostManager *This,
306         DWORD *pCost,
307         NLM_SOCKADDR *pDestIPAddr);
308 
309     HRESULT (STDMETHODCALLTYPE *GetDataPlanStatus)(
310         INetworkCostManager *This,
311         NLM_DATAPLAN_STATUS *pDataPlanStatus,
312         NLM_SOCKADDR *pDestIPAddr);
313 
314     HRESULT (STDMETHODCALLTYPE *SetDestinationAddresses)(
315         INetworkCostManager *This,
316         UINT32 length,
317         NLM_SOCKADDR *pDestIPAddrList,
318         VARIANT_BOOL bAppend);
319 
320     END_INTERFACE
321 } INetworkCostManagerVtbl;
322 
323 interface INetworkCostManager {
324     CONST_VTBL INetworkCostManagerVtbl* lpVtbl;
325 };
326 
327 #ifdef COBJMACROS
328 #ifndef WIDL_C_INLINE_WRAPPERS
329 /*** IUnknown methods ***/
330 #define INetworkCostManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
331 #define INetworkCostManager_AddRef(This) (This)->lpVtbl->AddRef(This)
332 #define INetworkCostManager_Release(This) (This)->lpVtbl->Release(This)
333 /*** INetworkCostManager methods ***/
334 #define INetworkCostManager_GetCost(This,pCost,pDestIPAddr) (This)->lpVtbl->GetCost(This,pCost,pDestIPAddr)
335 #define INetworkCostManager_GetDataPlanStatus(This,pDataPlanStatus,pDestIPAddr) (This)->lpVtbl->GetDataPlanStatus(This,pDataPlanStatus,pDestIPAddr)
336 #define INetworkCostManager_SetDestinationAddresses(This,length,pDestIPAddrList,bAppend) (This)->lpVtbl->SetDestinationAddresses(This,length,pDestIPAddrList,bAppend)
337 #else
338 /*** IUnknown methods ***/
339 static FORCEINLINE HRESULT INetworkCostManager_QueryInterface(INetworkCostManager* This,REFIID riid,void **ppvObject) {
340     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
341 }
342 static FORCEINLINE ULONG INetworkCostManager_AddRef(INetworkCostManager* This) {
343     return This->lpVtbl->AddRef(This);
344 }
345 static FORCEINLINE ULONG INetworkCostManager_Release(INetworkCostManager* This) {
346     return This->lpVtbl->Release(This);
347 }
348 /*** INetworkCostManager methods ***/
349 static FORCEINLINE HRESULT INetworkCostManager_GetCost(INetworkCostManager* This,DWORD *pCost,NLM_SOCKADDR *pDestIPAddr) {
350     return This->lpVtbl->GetCost(This,pCost,pDestIPAddr);
351 }
352 static FORCEINLINE HRESULT INetworkCostManager_GetDataPlanStatus(INetworkCostManager* This,NLM_DATAPLAN_STATUS *pDataPlanStatus,NLM_SOCKADDR *pDestIPAddr) {
353     return This->lpVtbl->GetDataPlanStatus(This,pDataPlanStatus,pDestIPAddr);
354 }
355 static FORCEINLINE HRESULT INetworkCostManager_SetDestinationAddresses(INetworkCostManager* This,UINT32 length,NLM_SOCKADDR *pDestIPAddrList,VARIANT_BOOL bAppend) {
356     return This->lpVtbl->SetDestinationAddresses(This,length,pDestIPAddrList,bAppend);
357 }
358 #endif
359 #endif
360 
361 #endif
362 
363 
364 #endif  /* __INetworkCostManager_INTERFACE_DEFINED__ */
365 
366 /*****************************************************************************
367  * INetworkConnectionCost interface
368  */
369 #ifndef __INetworkConnectionCost_INTERFACE_DEFINED__
370 #define __INetworkConnectionCost_INTERFACE_DEFINED__
371 
372 DEFINE_GUID(IID_INetworkConnectionCost, 0xdcb0000a, 0x570f, 0x4a9b, 0x8d,0x69, 0x19,0x9f,0xdb,0xa5,0x72,0x3b);
373 #if defined(__cplusplus) && !defined(CINTERFACE)
374 MIDL_INTERFACE("dcb0000a-570f-4a9b-8d69-199fdba5723b")
375 INetworkConnectionCost : public IUnknown
376 {
377     virtual HRESULT STDMETHODCALLTYPE GetCost(
378         DWORD *pCost) = 0;
379 
380     virtual HRESULT STDMETHODCALLTYPE GetDataPlanStatus(
381         NLM_DATAPLAN_STATUS *pDataPlanStatus) = 0;
382 
383 };
384 #ifdef __CRT_UUID_DECL
385 __CRT_UUID_DECL(INetworkConnectionCost, 0xdcb0000a, 0x570f, 0x4a9b, 0x8d,0x69, 0x19,0x9f,0xdb,0xa5,0x72,0x3b)
386 #endif
387 #else
388 typedef struct INetworkConnectionCostVtbl {
389     BEGIN_INTERFACE
390 
391     /*** IUnknown methods ***/
392     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
393         INetworkConnectionCost *This,
394         REFIID riid,
395         void **ppvObject);
396 
397     ULONG (STDMETHODCALLTYPE *AddRef)(
398         INetworkConnectionCost *This);
399 
400     ULONG (STDMETHODCALLTYPE *Release)(
401         INetworkConnectionCost *This);
402 
403     /*** INetworkConnectionCost methods ***/
404     HRESULT (STDMETHODCALLTYPE *GetCost)(
405         INetworkConnectionCost *This,
406         DWORD *pCost);
407 
408     HRESULT (STDMETHODCALLTYPE *GetDataPlanStatus)(
409         INetworkConnectionCost *This,
410         NLM_DATAPLAN_STATUS *pDataPlanStatus);
411 
412     END_INTERFACE
413 } INetworkConnectionCostVtbl;
414 
415 interface INetworkConnectionCost {
416     CONST_VTBL INetworkConnectionCostVtbl* lpVtbl;
417 };
418 
419 #ifdef COBJMACROS
420 #ifndef WIDL_C_INLINE_WRAPPERS
421 /*** IUnknown methods ***/
422 #define INetworkConnectionCost_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
423 #define INetworkConnectionCost_AddRef(This) (This)->lpVtbl->AddRef(This)
424 #define INetworkConnectionCost_Release(This) (This)->lpVtbl->Release(This)
425 /*** INetworkConnectionCost methods ***/
426 #define INetworkConnectionCost_GetCost(This,pCost) (This)->lpVtbl->GetCost(This,pCost)
427 #define INetworkConnectionCost_GetDataPlanStatus(This,pDataPlanStatus) (This)->lpVtbl->GetDataPlanStatus(This,pDataPlanStatus)
428 #else
429 /*** IUnknown methods ***/
430 static FORCEINLINE HRESULT INetworkConnectionCost_QueryInterface(INetworkConnectionCost* This,REFIID riid,void **ppvObject) {
431     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
432 }
433 static FORCEINLINE ULONG INetworkConnectionCost_AddRef(INetworkConnectionCost* This) {
434     return This->lpVtbl->AddRef(This);
435 }
436 static FORCEINLINE ULONG INetworkConnectionCost_Release(INetworkConnectionCost* This) {
437     return This->lpVtbl->Release(This);
438 }
439 /*** INetworkConnectionCost methods ***/
440 static FORCEINLINE HRESULT INetworkConnectionCost_GetCost(INetworkConnectionCost* This,DWORD *pCost) {
441     return This->lpVtbl->GetCost(This,pCost);
442 }
443 static FORCEINLINE HRESULT INetworkConnectionCost_GetDataPlanStatus(INetworkConnectionCost* This,NLM_DATAPLAN_STATUS *pDataPlanStatus) {
444     return This->lpVtbl->GetDataPlanStatus(This,pDataPlanStatus);
445 }
446 #endif
447 #endif
448 
449 #endif
450 
451 
452 #endif  /* __INetworkConnectionCost_INTERFACE_DEFINED__ */
453 
454 /*****************************************************************************
455  * INetworkCostManagerEvents interface
456  */
457 #ifndef __INetworkCostManagerEvents_INTERFACE_DEFINED__
458 #define __INetworkCostManagerEvents_INTERFACE_DEFINED__
459 
460 DEFINE_GUID(IID_INetworkCostManagerEvents, 0xdcb00009, 0x570f, 0x4a9b, 0x8d,0x69, 0x19,0x9f,0xdb,0xa5,0x72,0x3b);
461 #if defined(__cplusplus) && !defined(CINTERFACE)
462 MIDL_INTERFACE("dcb00009-570f-4a9b-8d69-199fdba5723b")
463 INetworkCostManagerEvents : public IUnknown
464 {
465     virtual HRESULT STDMETHODCALLTYPE CostChanged(
466         DWORD newCost,
467         NLM_SOCKADDR *pDestAddr) = 0;
468 
469     virtual HRESULT STDMETHODCALLTYPE DataPlanStatusChanged(
470         NLM_SOCKADDR *pDestAddr) = 0;
471 
472 };
473 #ifdef __CRT_UUID_DECL
474 __CRT_UUID_DECL(INetworkCostManagerEvents, 0xdcb00009, 0x570f, 0x4a9b, 0x8d,0x69, 0x19,0x9f,0xdb,0xa5,0x72,0x3b)
475 #endif
476 #else
477 typedef struct INetworkCostManagerEventsVtbl {
478     BEGIN_INTERFACE
479 
480     /*** IUnknown methods ***/
481     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
482         INetworkCostManagerEvents *This,
483         REFIID riid,
484         void **ppvObject);
485 
486     ULONG (STDMETHODCALLTYPE *AddRef)(
487         INetworkCostManagerEvents *This);
488 
489     ULONG (STDMETHODCALLTYPE *Release)(
490         INetworkCostManagerEvents *This);
491 
492     /*** INetworkCostManagerEvents methods ***/
493     HRESULT (STDMETHODCALLTYPE *CostChanged)(
494         INetworkCostManagerEvents *This,
495         DWORD newCost,
496         NLM_SOCKADDR *pDestAddr);
497 
498     HRESULT (STDMETHODCALLTYPE *DataPlanStatusChanged)(
499         INetworkCostManagerEvents *This,
500         NLM_SOCKADDR *pDestAddr);
501 
502     END_INTERFACE
503 } INetworkCostManagerEventsVtbl;
504 
505 interface INetworkCostManagerEvents {
506     CONST_VTBL INetworkCostManagerEventsVtbl* lpVtbl;
507 };
508 
509 #ifdef COBJMACROS
510 #ifndef WIDL_C_INLINE_WRAPPERS
511 /*** IUnknown methods ***/
512 #define INetworkCostManagerEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
513 #define INetworkCostManagerEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
514 #define INetworkCostManagerEvents_Release(This) (This)->lpVtbl->Release(This)
515 /*** INetworkCostManagerEvents methods ***/
516 #define INetworkCostManagerEvents_CostChanged(This,newCost,pDestAddr) (This)->lpVtbl->CostChanged(This,newCost,pDestAddr)
517 #define INetworkCostManagerEvents_DataPlanStatusChanged(This,pDestAddr) (This)->lpVtbl->DataPlanStatusChanged(This,pDestAddr)
518 #else
519 /*** IUnknown methods ***/
520 static FORCEINLINE HRESULT INetworkCostManagerEvents_QueryInterface(INetworkCostManagerEvents* This,REFIID riid,void **ppvObject) {
521     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
522 }
523 static FORCEINLINE ULONG INetworkCostManagerEvents_AddRef(INetworkCostManagerEvents* This) {
524     return This->lpVtbl->AddRef(This);
525 }
526 static FORCEINLINE ULONG INetworkCostManagerEvents_Release(INetworkCostManagerEvents* This) {
527     return This->lpVtbl->Release(This);
528 }
529 /*** INetworkCostManagerEvents methods ***/
530 static FORCEINLINE HRESULT INetworkCostManagerEvents_CostChanged(INetworkCostManagerEvents* This,DWORD newCost,NLM_SOCKADDR *pDestAddr) {
531     return This->lpVtbl->CostChanged(This,newCost,pDestAddr);
532 }
533 static FORCEINLINE HRESULT INetworkCostManagerEvents_DataPlanStatusChanged(INetworkCostManagerEvents* This,NLM_SOCKADDR *pDestAddr) {
534     return This->lpVtbl->DataPlanStatusChanged(This,pDestAddr);
535 }
536 #endif
537 #endif
538 
539 #endif
540 
541 
542 #endif  /* __INetworkCostManagerEvents_INTERFACE_DEFINED__ */
543 
544 /*****************************************************************************
545  * IEnumNetworks interface
546  */
547 #ifndef __IEnumNetworks_INTERFACE_DEFINED__
548 #define __IEnumNetworks_INTERFACE_DEFINED__
549 
550 DEFINE_GUID(IID_IEnumNetworks, 0xdcb00003, 0x570f, 0x4a9b, 0x8d,0x69, 0x19,0x9f,0xdb,0xa5,0x72,0x3b);
551 #if defined(__cplusplus) && !defined(CINTERFACE)
552 MIDL_INTERFACE("dcb00003-570f-4a9b-8d69-199fdba5723b")
553 IEnumNetworks : public IDispatch
554 {
555     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
556         IEnumVARIANT **ppEnumVar) = 0;
557 
558     virtual HRESULT STDMETHODCALLTYPE Next(
559         ULONG celt,
560         INetwork **rgelt,
561         ULONG *pceltFetched) = 0;
562 
563     virtual HRESULT STDMETHODCALLTYPE Skip(
564         ULONG celt) = 0;
565 
566     virtual HRESULT STDMETHODCALLTYPE Reset(
567         ) = 0;
568 
569     virtual HRESULT STDMETHODCALLTYPE Clone(
570         IEnumNetworks **ppEnumNetwork) = 0;
571 
572 };
573 #ifdef __CRT_UUID_DECL
574 __CRT_UUID_DECL(IEnumNetworks, 0xdcb00003, 0x570f, 0x4a9b, 0x8d,0x69, 0x19,0x9f,0xdb,0xa5,0x72,0x3b)
575 #endif
576 #else
577 typedef struct IEnumNetworksVtbl {
578     BEGIN_INTERFACE
579 
580     /*** IUnknown methods ***/
581     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
582         IEnumNetworks *This,
583         REFIID riid,
584         void **ppvObject);
585 
586     ULONG (STDMETHODCALLTYPE *AddRef)(
587         IEnumNetworks *This);
588 
589     ULONG (STDMETHODCALLTYPE *Release)(
590         IEnumNetworks *This);
591 
592     /*** IDispatch methods ***/
593     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
594         IEnumNetworks *This,
595         UINT *pctinfo);
596 
597     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
598         IEnumNetworks *This,
599         UINT iTInfo,
600         LCID lcid,
601         ITypeInfo **ppTInfo);
602 
603     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
604         IEnumNetworks *This,
605         REFIID riid,
606         LPOLESTR *rgszNames,
607         UINT cNames,
608         LCID lcid,
609         DISPID *rgDispId);
610 
611     HRESULT (STDMETHODCALLTYPE *Invoke)(
612         IEnumNetworks *This,
613         DISPID dispIdMember,
614         REFIID riid,
615         LCID lcid,
616         WORD wFlags,
617         DISPPARAMS *pDispParams,
618         VARIANT *pVarResult,
619         EXCEPINFO *pExcepInfo,
620         UINT *puArgErr);
621 
622     /*** IEnumNetworks methods ***/
623     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
624         IEnumNetworks *This,
625         IEnumVARIANT **ppEnumVar);
626 
627     HRESULT (STDMETHODCALLTYPE *Next)(
628         IEnumNetworks *This,
629         ULONG celt,
630         INetwork **rgelt,
631         ULONG *pceltFetched);
632 
633     HRESULT (STDMETHODCALLTYPE *Skip)(
634         IEnumNetworks *This,
635         ULONG celt);
636 
637     HRESULT (STDMETHODCALLTYPE *Reset)(
638         IEnumNetworks *This);
639 
640     HRESULT (STDMETHODCALLTYPE *Clone)(
641         IEnumNetworks *This,
642         IEnumNetworks **ppEnumNetwork);
643 
644     END_INTERFACE
645 } IEnumNetworksVtbl;
646 
647 interface IEnumNetworks {
648     CONST_VTBL IEnumNetworksVtbl* lpVtbl;
649 };
650 
651 #ifdef COBJMACROS
652 #ifndef WIDL_C_INLINE_WRAPPERS
653 /*** IUnknown methods ***/
654 #define IEnumNetworks_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
655 #define IEnumNetworks_AddRef(This) (This)->lpVtbl->AddRef(This)
656 #define IEnumNetworks_Release(This) (This)->lpVtbl->Release(This)
657 /*** IDispatch methods ***/
658 #define IEnumNetworks_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
659 #define IEnumNetworks_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
660 #define IEnumNetworks_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
661 #define IEnumNetworks_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
662 /*** IEnumNetworks methods ***/
663 #define IEnumNetworks_get__NewEnum(This,ppEnumVar) (This)->lpVtbl->get__NewEnum(This,ppEnumVar)
664 #define IEnumNetworks_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
665 #define IEnumNetworks_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
666 #define IEnumNetworks_Reset(This) (This)->lpVtbl->Reset(This)
667 #define IEnumNetworks_Clone(This,ppEnumNetwork) (This)->lpVtbl->Clone(This,ppEnumNetwork)
668 #else
669 /*** IUnknown methods ***/
670 static FORCEINLINE HRESULT IEnumNetworks_QueryInterface(IEnumNetworks* This,REFIID riid,void **ppvObject) {
671     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
672 }
673 static FORCEINLINE ULONG IEnumNetworks_AddRef(IEnumNetworks* This) {
674     return This->lpVtbl->AddRef(This);
675 }
676 static FORCEINLINE ULONG IEnumNetworks_Release(IEnumNetworks* This) {
677     return This->lpVtbl->Release(This);
678 }
679 /*** IDispatch methods ***/
680 static FORCEINLINE HRESULT IEnumNetworks_GetTypeInfoCount(IEnumNetworks* This,UINT *pctinfo) {
681     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
682 }
683 static FORCEINLINE HRESULT IEnumNetworks_GetTypeInfo(IEnumNetworks* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
684     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
685 }
686 static FORCEINLINE HRESULT IEnumNetworks_GetIDsOfNames(IEnumNetworks* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
687     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
688 }
689 static FORCEINLINE HRESULT IEnumNetworks_Invoke(IEnumNetworks* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
690     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
691 }
692 /*** IEnumNetworks methods ***/
693 static FORCEINLINE HRESULT IEnumNetworks_get__NewEnum(IEnumNetworks* This,IEnumVARIANT **ppEnumVar) {
694     return This->lpVtbl->get__NewEnum(This,ppEnumVar);
695 }
696 static FORCEINLINE HRESULT IEnumNetworks_Next(IEnumNetworks* This,ULONG celt,INetwork **rgelt,ULONG *pceltFetched) {
697     return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
698 }
699 static FORCEINLINE HRESULT IEnumNetworks_Skip(IEnumNetworks* This,ULONG celt) {
700     return This->lpVtbl->Skip(This,celt);
701 }
702 static FORCEINLINE HRESULT IEnumNetworks_Reset(IEnumNetworks* This) {
703     return This->lpVtbl->Reset(This);
704 }
705 static FORCEINLINE HRESULT IEnumNetworks_Clone(IEnumNetworks* This,IEnumNetworks **ppEnumNetwork) {
706     return This->lpVtbl->Clone(This,ppEnumNetwork);
707 }
708 #endif
709 #endif
710 
711 #endif
712 
713 
714 #endif  /* __IEnumNetworks_INTERFACE_DEFINED__ */
715 
716 /*****************************************************************************
717  * IEnumNetworkConnections interface
718  */
719 #ifndef __IEnumNetworkConnections_INTERFACE_DEFINED__
720 #define __IEnumNetworkConnections_INTERFACE_DEFINED__
721 
722 DEFINE_GUID(IID_IEnumNetworkConnections, 0xdcb00006, 0x570f, 0x4a9b, 0x8d,0x69, 0x19,0x9f,0xdb,0xa5,0x72,0x3b);
723 #if defined(__cplusplus) && !defined(CINTERFACE)
724 MIDL_INTERFACE("dcb00006-570f-4a9b-8d69-199fdba5723b")
725 IEnumNetworkConnections : public IDispatch
726 {
727     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
728         IEnumVARIANT **ppEnumVar) = 0;
729 
730     virtual HRESULT STDMETHODCALLTYPE Next(
731         ULONG celt,
732         INetworkConnection **rgelt,
733         ULONG *pceltFetched) = 0;
734 
735     virtual HRESULT STDMETHODCALLTYPE Skip(
736         ULONG celt) = 0;
737 
738     virtual HRESULT STDMETHODCALLTYPE Reset(
739         ) = 0;
740 
741     virtual HRESULT STDMETHODCALLTYPE Clone(
742         IEnumNetworkConnections **ppEnumNetwork) = 0;
743 
744 };
745 #ifdef __CRT_UUID_DECL
746 __CRT_UUID_DECL(IEnumNetworkConnections, 0xdcb00006, 0x570f, 0x4a9b, 0x8d,0x69, 0x19,0x9f,0xdb,0xa5,0x72,0x3b)
747 #endif
748 #else
749 typedef struct IEnumNetworkConnectionsVtbl {
750     BEGIN_INTERFACE
751 
752     /*** IUnknown methods ***/
753     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
754         IEnumNetworkConnections *This,
755         REFIID riid,
756         void **ppvObject);
757 
758     ULONG (STDMETHODCALLTYPE *AddRef)(
759         IEnumNetworkConnections *This);
760 
761     ULONG (STDMETHODCALLTYPE *Release)(
762         IEnumNetworkConnections *This);
763 
764     /*** IDispatch methods ***/
765     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
766         IEnumNetworkConnections *This,
767         UINT *pctinfo);
768 
769     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
770         IEnumNetworkConnections *This,
771         UINT iTInfo,
772         LCID lcid,
773         ITypeInfo **ppTInfo);
774 
775     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
776         IEnumNetworkConnections *This,
777         REFIID riid,
778         LPOLESTR *rgszNames,
779         UINT cNames,
780         LCID lcid,
781         DISPID *rgDispId);
782 
783     HRESULT (STDMETHODCALLTYPE *Invoke)(
784         IEnumNetworkConnections *This,
785         DISPID dispIdMember,
786         REFIID riid,
787         LCID lcid,
788         WORD wFlags,
789         DISPPARAMS *pDispParams,
790         VARIANT *pVarResult,
791         EXCEPINFO *pExcepInfo,
792         UINT *puArgErr);
793 
794     /*** IEnumNetworkConnections methods ***/
795     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
796         IEnumNetworkConnections *This,
797         IEnumVARIANT **ppEnumVar);
798 
799     HRESULT (STDMETHODCALLTYPE *Next)(
800         IEnumNetworkConnections *This,
801         ULONG celt,
802         INetworkConnection **rgelt,
803         ULONG *pceltFetched);
804 
805     HRESULT (STDMETHODCALLTYPE *Skip)(
806         IEnumNetworkConnections *This,
807         ULONG celt);
808 
809     HRESULT (STDMETHODCALLTYPE *Reset)(
810         IEnumNetworkConnections *This);
811 
812     HRESULT (STDMETHODCALLTYPE *Clone)(
813         IEnumNetworkConnections *This,
814         IEnumNetworkConnections **ppEnumNetwork);
815 
816     END_INTERFACE
817 } IEnumNetworkConnectionsVtbl;
818 
819 interface IEnumNetworkConnections {
820     CONST_VTBL IEnumNetworkConnectionsVtbl* lpVtbl;
821 };
822 
823 #ifdef COBJMACROS
824 #ifndef WIDL_C_INLINE_WRAPPERS
825 /*** IUnknown methods ***/
826 #define IEnumNetworkConnections_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
827 #define IEnumNetworkConnections_AddRef(This) (This)->lpVtbl->AddRef(This)
828 #define IEnumNetworkConnections_Release(This) (This)->lpVtbl->Release(This)
829 /*** IDispatch methods ***/
830 #define IEnumNetworkConnections_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
831 #define IEnumNetworkConnections_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
832 #define IEnumNetworkConnections_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
833 #define IEnumNetworkConnections_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
834 /*** IEnumNetworkConnections methods ***/
835 #define IEnumNetworkConnections_get__NewEnum(This,ppEnumVar) (This)->lpVtbl->get__NewEnum(This,ppEnumVar)
836 #define IEnumNetworkConnections_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
837 #define IEnumNetworkConnections_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
838 #define IEnumNetworkConnections_Reset(This) (This)->lpVtbl->Reset(This)
839 #define IEnumNetworkConnections_Clone(This,ppEnumNetwork) (This)->lpVtbl->Clone(This,ppEnumNetwork)
840 #else
841 /*** IUnknown methods ***/
842 static FORCEINLINE HRESULT IEnumNetworkConnections_QueryInterface(IEnumNetworkConnections* This,REFIID riid,void **ppvObject) {
843     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
844 }
845 static FORCEINLINE ULONG IEnumNetworkConnections_AddRef(IEnumNetworkConnections* This) {
846     return This->lpVtbl->AddRef(This);
847 }
848 static FORCEINLINE ULONG IEnumNetworkConnections_Release(IEnumNetworkConnections* This) {
849     return This->lpVtbl->Release(This);
850 }
851 /*** IDispatch methods ***/
852 static FORCEINLINE HRESULT IEnumNetworkConnections_GetTypeInfoCount(IEnumNetworkConnections* This,UINT *pctinfo) {
853     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
854 }
855 static FORCEINLINE HRESULT IEnumNetworkConnections_GetTypeInfo(IEnumNetworkConnections* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
856     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
857 }
858 static FORCEINLINE HRESULT IEnumNetworkConnections_GetIDsOfNames(IEnumNetworkConnections* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
859     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
860 }
861 static FORCEINLINE HRESULT IEnumNetworkConnections_Invoke(IEnumNetworkConnections* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
862     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
863 }
864 /*** IEnumNetworkConnections methods ***/
865 static FORCEINLINE HRESULT IEnumNetworkConnections_get__NewEnum(IEnumNetworkConnections* This,IEnumVARIANT **ppEnumVar) {
866     return This->lpVtbl->get__NewEnum(This,ppEnumVar);
867 }
868 static FORCEINLINE HRESULT IEnumNetworkConnections_Next(IEnumNetworkConnections* This,ULONG celt,INetworkConnection **rgelt,ULONG *pceltFetched) {
869     return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
870 }
871 static FORCEINLINE HRESULT IEnumNetworkConnections_Skip(IEnumNetworkConnections* This,ULONG celt) {
872     return This->lpVtbl->Skip(This,celt);
873 }
874 static FORCEINLINE HRESULT IEnumNetworkConnections_Reset(IEnumNetworkConnections* This) {
875     return This->lpVtbl->Reset(This);
876 }
877 static FORCEINLINE HRESULT IEnumNetworkConnections_Clone(IEnumNetworkConnections* This,IEnumNetworkConnections **ppEnumNetwork) {
878     return This->lpVtbl->Clone(This,ppEnumNetwork);
879 }
880 #endif
881 #endif
882 
883 #endif
884 
885 
886 #endif  /* __IEnumNetworkConnections_INTERFACE_DEFINED__ */
887 
888 /*****************************************************************************
889  * INetworkListManager interface
890  */
891 #ifndef __INetworkListManager_INTERFACE_DEFINED__
892 #define __INetworkListManager_INTERFACE_DEFINED__
893 
894 DEFINE_GUID(IID_INetworkListManager, 0xdcb00000, 0x570f, 0x4a9b, 0x8d,0x69, 0x19,0x9f,0xdb,0xa5,0x72,0x3b);
895 #if defined(__cplusplus) && !defined(CINTERFACE)
896 MIDL_INTERFACE("dcb00000-570f-4a9b-8d69-199fdba5723b")
897 INetworkListManager : public IDispatch
898 {
899     virtual HRESULT STDMETHODCALLTYPE GetNetworks(
900         NLM_ENUM_NETWORK Flags,
901         IEnumNetworks **ppEnumNetwork) = 0;
902 
903     virtual HRESULT STDMETHODCALLTYPE GetNetwork(
904         GUID gdNetworkId,
905         INetwork **ppNetwork) = 0;
906 
907     virtual HRESULT STDMETHODCALLTYPE GetNetworkConnections(
908         IEnumNetworkConnections **ppEnum) = 0;
909 
910     virtual HRESULT STDMETHODCALLTYPE GetNetworkConnection(
911         GUID gdNetworkConnectionId,
912         INetworkConnection **ppNetworkConnection) = 0;
913 
914     virtual HRESULT STDMETHODCALLTYPE IsConnectedToInternet(
915         VARIANT_BOOL *pbIsConnected) = 0;
916 
917     virtual HRESULT STDMETHODCALLTYPE IsConnected(
918         VARIANT_BOOL *pbIsConnected) = 0;
919 
920     virtual HRESULT STDMETHODCALLTYPE GetConnectivity(
921         NLM_CONNECTIVITY *pConnectivity) = 0;
922 
923 };
924 #ifdef __CRT_UUID_DECL
925 __CRT_UUID_DECL(INetworkListManager, 0xdcb00000, 0x570f, 0x4a9b, 0x8d,0x69, 0x19,0x9f,0xdb,0xa5,0x72,0x3b)
926 #endif
927 #else
928 typedef struct INetworkListManagerVtbl {
929     BEGIN_INTERFACE
930 
931     /*** IUnknown methods ***/
932     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
933         INetworkListManager *This,
934         REFIID riid,
935         void **ppvObject);
936 
937     ULONG (STDMETHODCALLTYPE *AddRef)(
938         INetworkListManager *This);
939 
940     ULONG (STDMETHODCALLTYPE *Release)(
941         INetworkListManager *This);
942 
943     /*** IDispatch methods ***/
944     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
945         INetworkListManager *This,
946         UINT *pctinfo);
947 
948     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
949         INetworkListManager *This,
950         UINT iTInfo,
951         LCID lcid,
952         ITypeInfo **ppTInfo);
953 
954     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
955         INetworkListManager *This,
956         REFIID riid,
957         LPOLESTR *rgszNames,
958         UINT cNames,
959         LCID lcid,
960         DISPID *rgDispId);
961 
962     HRESULT (STDMETHODCALLTYPE *Invoke)(
963         INetworkListManager *This,
964         DISPID dispIdMember,
965         REFIID riid,
966         LCID lcid,
967         WORD wFlags,
968         DISPPARAMS *pDispParams,
969         VARIANT *pVarResult,
970         EXCEPINFO *pExcepInfo,
971         UINT *puArgErr);
972 
973     /*** INetworkListManager methods ***/
974     HRESULT (STDMETHODCALLTYPE *GetNetworks)(
975         INetworkListManager *This,
976         NLM_ENUM_NETWORK Flags,
977         IEnumNetworks **ppEnumNetwork);
978 
979     HRESULT (STDMETHODCALLTYPE *GetNetwork)(
980         INetworkListManager *This,
981         GUID gdNetworkId,
982         INetwork **ppNetwork);
983 
984     HRESULT (STDMETHODCALLTYPE *GetNetworkConnections)(
985         INetworkListManager *This,
986         IEnumNetworkConnections **ppEnum);
987 
988     HRESULT (STDMETHODCALLTYPE *GetNetworkConnection)(
989         INetworkListManager *This,
990         GUID gdNetworkConnectionId,
991         INetworkConnection **ppNetworkConnection);
992 
993     HRESULT (STDMETHODCALLTYPE *IsConnectedToInternet)(
994         INetworkListManager *This,
995         VARIANT_BOOL *pbIsConnected);
996 
997     HRESULT (STDMETHODCALLTYPE *IsConnected)(
998         INetworkListManager *This,
999         VARIANT_BOOL *pbIsConnected);
1000 
1001     HRESULT (STDMETHODCALLTYPE *GetConnectivity)(
1002         INetworkListManager *This,
1003         NLM_CONNECTIVITY *pConnectivity);
1004 
1005     END_INTERFACE
1006 } INetworkListManagerVtbl;
1007 
1008 interface INetworkListManager {
1009     CONST_VTBL INetworkListManagerVtbl* lpVtbl;
1010 };
1011 
1012 #ifdef COBJMACROS
1013 #ifndef WIDL_C_INLINE_WRAPPERS
1014 /*** IUnknown methods ***/
1015 #define INetworkListManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1016 #define INetworkListManager_AddRef(This) (This)->lpVtbl->AddRef(This)
1017 #define INetworkListManager_Release(This) (This)->lpVtbl->Release(This)
1018 /*** IDispatch methods ***/
1019 #define INetworkListManager_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
1020 #define INetworkListManager_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
1021 #define INetworkListManager_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
1022 #define INetworkListManager_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
1023 /*** INetworkListManager methods ***/
1024 #define INetworkListManager_GetNetworks(This,Flags,ppEnumNetwork) (This)->lpVtbl->GetNetworks(This,Flags,ppEnumNetwork)
1025 #define INetworkListManager_GetNetwork(This,gdNetworkId,ppNetwork) (This)->lpVtbl->GetNetwork(This,gdNetworkId,ppNetwork)
1026 #define INetworkListManager_GetNetworkConnections(This,ppEnum) (This)->lpVtbl->GetNetworkConnections(This,ppEnum)
1027 #define INetworkListManager_GetNetworkConnection(This,gdNetworkConnectionId,ppNetworkConnection) (This)->lpVtbl->GetNetworkConnection(This,gdNetworkConnectionId,ppNetworkConnection)
1028 #define INetworkListManager_IsConnectedToInternet(This,pbIsConnected) (This)->lpVtbl->IsConnectedToInternet(This,pbIsConnected)
1029 #define INetworkListManager_IsConnected(This,pbIsConnected) (This)->lpVtbl->IsConnected(This,pbIsConnected)
1030 #define INetworkListManager_GetConnectivity(This,pConnectivity) (This)->lpVtbl->GetConnectivity(This,pConnectivity)
1031 #else
1032 /*** IUnknown methods ***/
1033 static FORCEINLINE HRESULT INetworkListManager_QueryInterface(INetworkListManager* This,REFIID riid,void **ppvObject) {
1034     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1035 }
1036 static FORCEINLINE ULONG INetworkListManager_AddRef(INetworkListManager* This) {
1037     return This->lpVtbl->AddRef(This);
1038 }
1039 static FORCEINLINE ULONG INetworkListManager_Release(INetworkListManager* This) {
1040     return This->lpVtbl->Release(This);
1041 }
1042 /*** IDispatch methods ***/
1043 static FORCEINLINE HRESULT INetworkListManager_GetTypeInfoCount(INetworkListManager* This,UINT *pctinfo) {
1044     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
1045 }
1046 static FORCEINLINE HRESULT INetworkListManager_GetTypeInfo(INetworkListManager* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
1047     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
1048 }
1049 static FORCEINLINE HRESULT INetworkListManager_GetIDsOfNames(INetworkListManager* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
1050     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
1051 }
1052 static FORCEINLINE HRESULT INetworkListManager_Invoke(INetworkListManager* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
1053     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
1054 }
1055 /*** INetworkListManager methods ***/
1056 static FORCEINLINE HRESULT INetworkListManager_GetNetworks(INetworkListManager* This,NLM_ENUM_NETWORK Flags,IEnumNetworks **ppEnumNetwork) {
1057     return This->lpVtbl->GetNetworks(This,Flags,ppEnumNetwork);
1058 }
1059 static FORCEINLINE HRESULT INetworkListManager_GetNetwork(INetworkListManager* This,GUID gdNetworkId,INetwork **ppNetwork) {
1060     return This->lpVtbl->GetNetwork(This,gdNetworkId,ppNetwork);
1061 }
1062 static FORCEINLINE HRESULT INetworkListManager_GetNetworkConnections(INetworkListManager* This,IEnumNetworkConnections **ppEnum) {
1063     return This->lpVtbl->GetNetworkConnections(This,ppEnum);
1064 }
1065 static FORCEINLINE HRESULT INetworkListManager_GetNetworkConnection(INetworkListManager* This,GUID gdNetworkConnectionId,INetworkConnection **ppNetworkConnection) {
1066     return This->lpVtbl->GetNetworkConnection(This,gdNetworkConnectionId,ppNetworkConnection);
1067 }
1068 static FORCEINLINE HRESULT INetworkListManager_IsConnectedToInternet(INetworkListManager* This,VARIANT_BOOL *pbIsConnected) {
1069     return This->lpVtbl->IsConnectedToInternet(This,pbIsConnected);
1070 }
1071 static FORCEINLINE HRESULT INetworkListManager_IsConnected(INetworkListManager* This,VARIANT_BOOL *pbIsConnected) {
1072     return This->lpVtbl->IsConnected(This,pbIsConnected);
1073 }
1074 static FORCEINLINE HRESULT INetworkListManager_GetConnectivity(INetworkListManager* This,NLM_CONNECTIVITY *pConnectivity) {
1075     return This->lpVtbl->GetConnectivity(This,pConnectivity);
1076 }
1077 #endif
1078 #endif
1079 
1080 #endif
1081 
1082 
1083 #endif  /* __INetworkListManager_INTERFACE_DEFINED__ */
1084 
1085 /*****************************************************************************
1086  * NetworkListManager coclass
1087  */
1088 
1089 DEFINE_GUID(CLSID_NetworkListManager, 0xdcb00c01, 0x570f, 0x4a9b, 0x8d,0x69, 0x19,0x9f,0xdb,0xa5,0x72,0x3b);
1090 
1091 #ifdef __cplusplus
1092 class DECLSPEC_UUID("dcb00c01-570f-4a9b-8d69-199fdba5723b") NetworkListManager;
1093 #ifdef __CRT_UUID_DECL
1094 __CRT_UUID_DECL(NetworkListManager, 0xdcb00c01, 0x570f, 0x4a9b, 0x8d,0x69, 0x19,0x9f,0xdb,0xa5,0x72,0x3b)
1095 #endif
1096 #endif
1097 
1098 /*****************************************************************************
1099  * INetworkListManagerEvents interface
1100  */
1101 #ifndef __INetworkListManagerEvents_INTERFACE_DEFINED__
1102 #define __INetworkListManagerEvents_INTERFACE_DEFINED__
1103 
1104 DEFINE_GUID(IID_INetworkListManagerEvents, 0xdcb00001, 0x570f, 0x4a9b, 0x8d,0x69, 0x19,0x9f,0xdb,0xa5,0x72,0x3b);
1105 #if defined(__cplusplus) && !defined(CINTERFACE)
1106 MIDL_INTERFACE("dcb00001-570f-4a9b-8d69-199fdba5723b")
1107 INetworkListManagerEvents : public IUnknown
1108 {
1109     virtual HRESULT STDMETHODCALLTYPE ConnectivityChanged(
1110         NLM_CONNECTIVITY newConnectivity) = 0;
1111 
1112 };
1113 #ifdef __CRT_UUID_DECL
1114 __CRT_UUID_DECL(INetworkListManagerEvents, 0xdcb00001, 0x570f, 0x4a9b, 0x8d,0x69, 0x19,0x9f,0xdb,0xa5,0x72,0x3b)
1115 #endif
1116 #else
1117 typedef struct INetworkListManagerEventsVtbl {
1118     BEGIN_INTERFACE
1119 
1120     /*** IUnknown methods ***/
1121     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1122         INetworkListManagerEvents *This,
1123         REFIID riid,
1124         void **ppvObject);
1125 
1126     ULONG (STDMETHODCALLTYPE *AddRef)(
1127         INetworkListManagerEvents *This);
1128 
1129     ULONG (STDMETHODCALLTYPE *Release)(
1130         INetworkListManagerEvents *This);
1131 
1132     /*** INetworkListManagerEvents methods ***/
1133     HRESULT (STDMETHODCALLTYPE *ConnectivityChanged)(
1134         INetworkListManagerEvents *This,
1135         NLM_CONNECTIVITY newConnectivity);
1136 
1137     END_INTERFACE
1138 } INetworkListManagerEventsVtbl;
1139 
1140 interface INetworkListManagerEvents {
1141     CONST_VTBL INetworkListManagerEventsVtbl* lpVtbl;
1142 };
1143 
1144 #ifdef COBJMACROS
1145 #ifndef WIDL_C_INLINE_WRAPPERS
1146 /*** IUnknown methods ***/
1147 #define INetworkListManagerEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1148 #define INetworkListManagerEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
1149 #define INetworkListManagerEvents_Release(This) (This)->lpVtbl->Release(This)
1150 /*** INetworkListManagerEvents methods ***/
1151 #define INetworkListManagerEvents_ConnectivityChanged(This,newConnectivity) (This)->lpVtbl->ConnectivityChanged(This,newConnectivity)
1152 #else
1153 /*** IUnknown methods ***/
1154 static FORCEINLINE HRESULT INetworkListManagerEvents_QueryInterface(INetworkListManagerEvents* This,REFIID riid,void **ppvObject) {
1155     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1156 }
1157 static FORCEINLINE ULONG INetworkListManagerEvents_AddRef(INetworkListManagerEvents* This) {
1158     return This->lpVtbl->AddRef(This);
1159 }
1160 static FORCEINLINE ULONG INetworkListManagerEvents_Release(INetworkListManagerEvents* This) {
1161     return This->lpVtbl->Release(This);
1162 }
1163 /*** INetworkListManagerEvents methods ***/
1164 static FORCEINLINE HRESULT INetworkListManagerEvents_ConnectivityChanged(INetworkListManagerEvents* This,NLM_CONNECTIVITY newConnectivity) {
1165     return This->lpVtbl->ConnectivityChanged(This,newConnectivity);
1166 }
1167 #endif
1168 #endif
1169 
1170 #endif
1171 
1172 
1173 #endif  /* __INetworkListManagerEvents_INTERFACE_DEFINED__ */
1174 
1175 /*****************************************************************************
1176  * INetworkConnectionEvents interface
1177  */
1178 #ifndef __INetworkConnectionEvents_INTERFACE_DEFINED__
1179 #define __INetworkConnectionEvents_INTERFACE_DEFINED__
1180 
1181 typedef enum NLM_CONNECTION_PROPERTY_CHANGE {
1182     NLM_CONNECTION_PROPERTY_CHANGE_AUTHENTICATION = 1
1183 } NLM_CONNECTION_PROPERTY_CHANGE;
1184 DEFINE_GUID(IID_INetworkConnectionEvents, 0xdcb00007, 0x570f, 0x4a9b, 0x8d,0x69, 0x19,0x9f,0xdb,0xa5,0x72,0x3b);
1185 #if defined(__cplusplus) && !defined(CINTERFACE)
1186 MIDL_INTERFACE("dcb00007-570f-4a9b-8d69-199fdba5723b")
1187 INetworkConnectionEvents : public IUnknown
1188 {
1189     virtual HRESULT STDMETHODCALLTYPE NetworkConnectionConnectivityChanged(
1190         GUID connectionId,
1191         NLM_CONNECTIVITY newConnectivity) = 0;
1192 
1193     virtual HRESULT STDMETHODCALLTYPE NetworkConnectionPropertyChanged(
1194         GUID connectionId,
1195         NLM_CONNECTION_PROPERTY_CHANGE flags) = 0;
1196 
1197 };
1198 #ifdef __CRT_UUID_DECL
1199 __CRT_UUID_DECL(INetworkConnectionEvents, 0xdcb00007, 0x570f, 0x4a9b, 0x8d,0x69, 0x19,0x9f,0xdb,0xa5,0x72,0x3b)
1200 #endif
1201 #else
1202 typedef struct INetworkConnectionEventsVtbl {
1203     BEGIN_INTERFACE
1204 
1205     /*** IUnknown methods ***/
1206     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1207         INetworkConnectionEvents *This,
1208         REFIID riid,
1209         void **ppvObject);
1210 
1211     ULONG (STDMETHODCALLTYPE *AddRef)(
1212         INetworkConnectionEvents *This);
1213 
1214     ULONG (STDMETHODCALLTYPE *Release)(
1215         INetworkConnectionEvents *This);
1216 
1217     /*** INetworkConnectionEvents methods ***/
1218     HRESULT (STDMETHODCALLTYPE *NetworkConnectionConnectivityChanged)(
1219         INetworkConnectionEvents *This,
1220         GUID connectionId,
1221         NLM_CONNECTIVITY newConnectivity);
1222 
1223     HRESULT (STDMETHODCALLTYPE *NetworkConnectionPropertyChanged)(
1224         INetworkConnectionEvents *This,
1225         GUID connectionId,
1226         NLM_CONNECTION_PROPERTY_CHANGE flags);
1227 
1228     END_INTERFACE
1229 } INetworkConnectionEventsVtbl;
1230 
1231 interface INetworkConnectionEvents {
1232     CONST_VTBL INetworkConnectionEventsVtbl* lpVtbl;
1233 };
1234 
1235 #ifdef COBJMACROS
1236 #ifndef WIDL_C_INLINE_WRAPPERS
1237 /*** IUnknown methods ***/
1238 #define INetworkConnectionEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1239 #define INetworkConnectionEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
1240 #define INetworkConnectionEvents_Release(This) (This)->lpVtbl->Release(This)
1241 /*** INetworkConnectionEvents methods ***/
1242 #define INetworkConnectionEvents_NetworkConnectionConnectivityChanged(This,connectionId,newConnectivity) (This)->lpVtbl->NetworkConnectionConnectivityChanged(This,connectionId,newConnectivity)
1243 #define INetworkConnectionEvents_NetworkConnectionPropertyChanged(This,connectionId,flags) (This)->lpVtbl->NetworkConnectionPropertyChanged(This,connectionId,flags)
1244 #else
1245 /*** IUnknown methods ***/
1246 static FORCEINLINE HRESULT INetworkConnectionEvents_QueryInterface(INetworkConnectionEvents* This,REFIID riid,void **ppvObject) {
1247     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1248 }
1249 static FORCEINLINE ULONG INetworkConnectionEvents_AddRef(INetworkConnectionEvents* This) {
1250     return This->lpVtbl->AddRef(This);
1251 }
1252 static FORCEINLINE ULONG INetworkConnectionEvents_Release(INetworkConnectionEvents* This) {
1253     return This->lpVtbl->Release(This);
1254 }
1255 /*** INetworkConnectionEvents methods ***/
1256 static FORCEINLINE HRESULT INetworkConnectionEvents_NetworkConnectionConnectivityChanged(INetworkConnectionEvents* This,GUID connectionId,NLM_CONNECTIVITY newConnectivity) {
1257     return This->lpVtbl->NetworkConnectionConnectivityChanged(This,connectionId,newConnectivity);
1258 }
1259 static FORCEINLINE HRESULT INetworkConnectionEvents_NetworkConnectionPropertyChanged(INetworkConnectionEvents* This,GUID connectionId,NLM_CONNECTION_PROPERTY_CHANGE flags) {
1260     return This->lpVtbl->NetworkConnectionPropertyChanged(This,connectionId,flags);
1261 }
1262 #endif
1263 #endif
1264 
1265 #endif
1266 
1267 
1268 #endif  /* __INetworkConnectionEvents_INTERFACE_DEFINED__ */
1269 
1270 /*****************************************************************************
1271  * INetworkConnection interface
1272  */
1273 #ifndef __INetworkConnection_INTERFACE_DEFINED__
1274 #define __INetworkConnection_INTERFACE_DEFINED__
1275 
1276 DEFINE_GUID(IID_INetworkConnection, 0xdcb00005, 0x570f, 0x4a9b, 0x8d,0x69, 0x19,0x9f,0xdb,0xa5,0x72,0x3b);
1277 #if defined(__cplusplus) && !defined(CINTERFACE)
1278 MIDL_INTERFACE("dcb00005-570f-4a9b-8d69-199fdba5723b")
1279 INetworkConnection : public IDispatch
1280 {
1281     virtual HRESULT STDMETHODCALLTYPE GetNetwork(
1282         INetwork **ppNetwork) = 0;
1283 
1284     virtual HRESULT STDMETHODCALLTYPE get_IsConnectedToInternet(
1285         VARIANT_BOOL *pbIsConnected) = 0;
1286 
1287     virtual HRESULT STDMETHODCALLTYPE get_IsConnected(
1288         VARIANT_BOOL *pbIsConnected) = 0;
1289 
1290     virtual HRESULT STDMETHODCALLTYPE GetConnectivity(
1291         NLM_CONNECTIVITY *pConnectivity) = 0;
1292 
1293     virtual HRESULT STDMETHODCALLTYPE GetConnectionId(
1294         GUID *pgdConnectionId) = 0;
1295 
1296     virtual HRESULT STDMETHODCALLTYPE GetAdapterId(
1297         GUID *pgdAdapterId) = 0;
1298 
1299     virtual HRESULT STDMETHODCALLTYPE GetDomainType(
1300         NLM_DOMAIN_TYPE *pDomainType) = 0;
1301 
1302 };
1303 #ifdef __CRT_UUID_DECL
1304 __CRT_UUID_DECL(INetworkConnection, 0xdcb00005, 0x570f, 0x4a9b, 0x8d,0x69, 0x19,0x9f,0xdb,0xa5,0x72,0x3b)
1305 #endif
1306 #else
1307 typedef struct INetworkConnectionVtbl {
1308     BEGIN_INTERFACE
1309 
1310     /*** IUnknown methods ***/
1311     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1312         INetworkConnection *This,
1313         REFIID riid,
1314         void **ppvObject);
1315 
1316     ULONG (STDMETHODCALLTYPE *AddRef)(
1317         INetworkConnection *This);
1318 
1319     ULONG (STDMETHODCALLTYPE *Release)(
1320         INetworkConnection *This);
1321 
1322     /*** IDispatch methods ***/
1323     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
1324         INetworkConnection *This,
1325         UINT *pctinfo);
1326 
1327     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
1328         INetworkConnection *This,
1329         UINT iTInfo,
1330         LCID lcid,
1331         ITypeInfo **ppTInfo);
1332 
1333     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
1334         INetworkConnection *This,
1335         REFIID riid,
1336         LPOLESTR *rgszNames,
1337         UINT cNames,
1338         LCID lcid,
1339         DISPID *rgDispId);
1340 
1341     HRESULT (STDMETHODCALLTYPE *Invoke)(
1342         INetworkConnection *This,
1343         DISPID dispIdMember,
1344         REFIID riid,
1345         LCID lcid,
1346         WORD wFlags,
1347         DISPPARAMS *pDispParams,
1348         VARIANT *pVarResult,
1349         EXCEPINFO *pExcepInfo,
1350         UINT *puArgErr);
1351 
1352     /*** INetworkConnection methods ***/
1353     HRESULT (STDMETHODCALLTYPE *GetNetwork)(
1354         INetworkConnection *This,
1355         INetwork **ppNetwork);
1356 
1357     HRESULT (STDMETHODCALLTYPE *get_IsConnectedToInternet)(
1358         INetworkConnection *This,
1359         VARIANT_BOOL *pbIsConnected);
1360 
1361     HRESULT (STDMETHODCALLTYPE *get_IsConnected)(
1362         INetworkConnection *This,
1363         VARIANT_BOOL *pbIsConnected);
1364 
1365     HRESULT (STDMETHODCALLTYPE *GetConnectivity)(
1366         INetworkConnection *This,
1367         NLM_CONNECTIVITY *pConnectivity);
1368 
1369     HRESULT (STDMETHODCALLTYPE *GetConnectionId)(
1370         INetworkConnection *This,
1371         GUID *pgdConnectionId);
1372 
1373     HRESULT (STDMETHODCALLTYPE *GetAdapterId)(
1374         INetworkConnection *This,
1375         GUID *pgdAdapterId);
1376 
1377     HRESULT (STDMETHODCALLTYPE *GetDomainType)(
1378         INetworkConnection *This,
1379         NLM_DOMAIN_TYPE *pDomainType);
1380 
1381     END_INTERFACE
1382 } INetworkConnectionVtbl;
1383 
1384 interface INetworkConnection {
1385     CONST_VTBL INetworkConnectionVtbl* lpVtbl;
1386 };
1387 
1388 #ifdef COBJMACROS
1389 #ifndef WIDL_C_INLINE_WRAPPERS
1390 /*** IUnknown methods ***/
1391 #define INetworkConnection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1392 #define INetworkConnection_AddRef(This) (This)->lpVtbl->AddRef(This)
1393 #define INetworkConnection_Release(This) (This)->lpVtbl->Release(This)
1394 /*** IDispatch methods ***/
1395 #define INetworkConnection_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
1396 #define INetworkConnection_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
1397 #define INetworkConnection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
1398 #define INetworkConnection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
1399 /*** INetworkConnection methods ***/
1400 #define INetworkConnection_GetNetwork(This,ppNetwork) (This)->lpVtbl->GetNetwork(This,ppNetwork)
1401 #define INetworkConnection_get_IsConnectedToInternet(This,pbIsConnected) (This)->lpVtbl->get_IsConnectedToInternet(This,pbIsConnected)
1402 #define INetworkConnection_get_IsConnected(This,pbIsConnected) (This)->lpVtbl->get_IsConnected(This,pbIsConnected)
1403 #define INetworkConnection_GetConnectivity(This,pConnectivity) (This)->lpVtbl->GetConnectivity(This,pConnectivity)
1404 #define INetworkConnection_GetConnectionId(This,pgdConnectionId) (This)->lpVtbl->GetConnectionId(This,pgdConnectionId)
1405 #define INetworkConnection_GetAdapterId(This,pgdAdapterId) (This)->lpVtbl->GetAdapterId(This,pgdAdapterId)
1406 #define INetworkConnection_GetDomainType(This,pDomainType) (This)->lpVtbl->GetDomainType(This,pDomainType)
1407 #else
1408 /*** IUnknown methods ***/
1409 static FORCEINLINE HRESULT INetworkConnection_QueryInterface(INetworkConnection* This,REFIID riid,void **ppvObject) {
1410     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1411 }
1412 static FORCEINLINE ULONG INetworkConnection_AddRef(INetworkConnection* This) {
1413     return This->lpVtbl->AddRef(This);
1414 }
1415 static FORCEINLINE ULONG INetworkConnection_Release(INetworkConnection* This) {
1416     return This->lpVtbl->Release(This);
1417 }
1418 /*** IDispatch methods ***/
1419 static FORCEINLINE HRESULT INetworkConnection_GetTypeInfoCount(INetworkConnection* This,UINT *pctinfo) {
1420     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
1421 }
1422 static FORCEINLINE HRESULT INetworkConnection_GetTypeInfo(INetworkConnection* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
1423     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
1424 }
1425 static FORCEINLINE HRESULT INetworkConnection_GetIDsOfNames(INetworkConnection* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
1426     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
1427 }
1428 static FORCEINLINE HRESULT INetworkConnection_Invoke(INetworkConnection* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
1429     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
1430 }
1431 /*** INetworkConnection methods ***/
1432 static FORCEINLINE HRESULT INetworkConnection_GetNetwork(INetworkConnection* This,INetwork **ppNetwork) {
1433     return This->lpVtbl->GetNetwork(This,ppNetwork);
1434 }
1435 static FORCEINLINE HRESULT INetworkConnection_get_IsConnectedToInternet(INetworkConnection* This,VARIANT_BOOL *pbIsConnected) {
1436     return This->lpVtbl->get_IsConnectedToInternet(This,pbIsConnected);
1437 }
1438 static FORCEINLINE HRESULT INetworkConnection_get_IsConnected(INetworkConnection* This,VARIANT_BOOL *pbIsConnected) {
1439     return This->lpVtbl->get_IsConnected(This,pbIsConnected);
1440 }
1441 static FORCEINLINE HRESULT INetworkConnection_GetConnectivity(INetworkConnection* This,NLM_CONNECTIVITY *pConnectivity) {
1442     return This->lpVtbl->GetConnectivity(This,pConnectivity);
1443 }
1444 static FORCEINLINE HRESULT INetworkConnection_GetConnectionId(INetworkConnection* This,GUID *pgdConnectionId) {
1445     return This->lpVtbl->GetConnectionId(This,pgdConnectionId);
1446 }
1447 static FORCEINLINE HRESULT INetworkConnection_GetAdapterId(INetworkConnection* This,GUID *pgdAdapterId) {
1448     return This->lpVtbl->GetAdapterId(This,pgdAdapterId);
1449 }
1450 static FORCEINLINE HRESULT INetworkConnection_GetDomainType(INetworkConnection* This,NLM_DOMAIN_TYPE *pDomainType) {
1451     return This->lpVtbl->GetDomainType(This,pDomainType);
1452 }
1453 #endif
1454 #endif
1455 
1456 #endif
1457 
1458 
1459 #endif  /* __INetworkConnection_INTERFACE_DEFINED__ */
1460 
1461 /*****************************************************************************
1462  * INetwork interface
1463  */
1464 #ifndef __INetwork_INTERFACE_DEFINED__
1465 #define __INetwork_INTERFACE_DEFINED__
1466 
1467 typedef enum NLM_NETWORK_CATEGORY {
1468     NLM_NETWORK_CATEGORY_PUBLIC = 0x0,
1469     NLM_NETWORK_CATEGORY_PRIVATE = 0x1,
1470     NLM_NETWORK_CATEGORY_DOMAIN_AUTHENTICATED = 0x2
1471 } NLM_NETWORK_CATEGORY;
1472 DEFINE_GUID(IID_INetwork, 0xdcb00002, 0x570f, 0x4a9b, 0x8d,0x69, 0x19,0x9f,0xdb,0xa5,0x72,0x3b);
1473 #if defined(__cplusplus) && !defined(CINTERFACE)
1474 MIDL_INTERFACE("dcb00002-570f-4a9b-8d69-199fdba5723b")
1475 INetwork : public IDispatch
1476 {
1477     virtual HRESULT STDMETHODCALLTYPE GetName(
1478         BSTR *pszNetworkName) = 0;
1479 
1480     virtual HRESULT STDMETHODCALLTYPE SetName(
1481         BSTR szNetworkNewName) = 0;
1482 
1483     virtual HRESULT STDMETHODCALLTYPE GetDescription(
1484         BSTR *pszDescription) = 0;
1485 
1486     virtual HRESULT STDMETHODCALLTYPE SetDescription(
1487         BSTR szDescription) = 0;
1488 
1489     virtual HRESULT STDMETHODCALLTYPE GetNetworkId(
1490         GUID *pgdGuidNetworkId) = 0;
1491 
1492     virtual HRESULT STDMETHODCALLTYPE GetDomainType(
1493         NLM_DOMAIN_TYPE *pNetworkType) = 0;
1494 
1495     virtual HRESULT STDMETHODCALLTYPE GetNetworkConnections(
1496         IEnumNetworkConnections **ppEnumNetworkConnection) = 0;
1497 
1498     virtual HRESULT STDMETHODCALLTYPE GetTimeCreatedAndConnected(
1499         DWORD *pdwLowDateTimeCreated,
1500         DWORD *pdwHighDateTimeCreated,
1501         DWORD *pdwLowDateTimeConnected,
1502         DWORD *pdwHighDateTimeConnected) = 0;
1503 
1504     virtual HRESULT STDMETHODCALLTYPE get_IsConnectedToInternet(
1505         VARIANT_BOOL *pbIsConnected) = 0;
1506 
1507     virtual HRESULT STDMETHODCALLTYPE get_IsConnected(
1508         VARIANT_BOOL *pbIsConnected) = 0;
1509 
1510     virtual HRESULT STDMETHODCALLTYPE GetConnectivity(
1511         NLM_CONNECTIVITY *pConnectivity) = 0;
1512 
1513     virtual HRESULT STDMETHODCALLTYPE GetCategory(
1514         NLM_NETWORK_CATEGORY *pCategory) = 0;
1515 
1516     virtual HRESULT STDMETHODCALLTYPE SetCategory(
1517         NLM_NETWORK_CATEGORY NewCategory) = 0;
1518 
1519 };
1520 #ifdef __CRT_UUID_DECL
1521 __CRT_UUID_DECL(INetwork, 0xdcb00002, 0x570f, 0x4a9b, 0x8d,0x69, 0x19,0x9f,0xdb,0xa5,0x72,0x3b)
1522 #endif
1523 #else
1524 typedef struct INetworkVtbl {
1525     BEGIN_INTERFACE
1526 
1527     /*** IUnknown methods ***/
1528     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1529         INetwork *This,
1530         REFIID riid,
1531         void **ppvObject);
1532 
1533     ULONG (STDMETHODCALLTYPE *AddRef)(
1534         INetwork *This);
1535 
1536     ULONG (STDMETHODCALLTYPE *Release)(
1537         INetwork *This);
1538 
1539     /*** IDispatch methods ***/
1540     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
1541         INetwork *This,
1542         UINT *pctinfo);
1543 
1544     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
1545         INetwork *This,
1546         UINT iTInfo,
1547         LCID lcid,
1548         ITypeInfo **ppTInfo);
1549 
1550     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
1551         INetwork *This,
1552         REFIID riid,
1553         LPOLESTR *rgszNames,
1554         UINT cNames,
1555         LCID lcid,
1556         DISPID *rgDispId);
1557 
1558     HRESULT (STDMETHODCALLTYPE *Invoke)(
1559         INetwork *This,
1560         DISPID dispIdMember,
1561         REFIID riid,
1562         LCID lcid,
1563         WORD wFlags,
1564         DISPPARAMS *pDispParams,
1565         VARIANT *pVarResult,
1566         EXCEPINFO *pExcepInfo,
1567         UINT *puArgErr);
1568 
1569     /*** INetwork methods ***/
1570     HRESULT (STDMETHODCALLTYPE *GetName)(
1571         INetwork *This,
1572         BSTR *pszNetworkName);
1573 
1574     HRESULT (STDMETHODCALLTYPE *SetName)(
1575         INetwork *This,
1576         BSTR szNetworkNewName);
1577 
1578     HRESULT (STDMETHODCALLTYPE *GetDescription)(
1579         INetwork *This,
1580         BSTR *pszDescription);
1581 
1582     HRESULT (STDMETHODCALLTYPE *SetDescription)(
1583         INetwork *This,
1584         BSTR szDescription);
1585 
1586     HRESULT (STDMETHODCALLTYPE *GetNetworkId)(
1587         INetwork *This,
1588         GUID *pgdGuidNetworkId);
1589 
1590     HRESULT (STDMETHODCALLTYPE *GetDomainType)(
1591         INetwork *This,
1592         NLM_DOMAIN_TYPE *pNetworkType);
1593 
1594     HRESULT (STDMETHODCALLTYPE *GetNetworkConnections)(
1595         INetwork *This,
1596         IEnumNetworkConnections **ppEnumNetworkConnection);
1597 
1598     HRESULT (STDMETHODCALLTYPE *GetTimeCreatedAndConnected)(
1599         INetwork *This,
1600         DWORD *pdwLowDateTimeCreated,
1601         DWORD *pdwHighDateTimeCreated,
1602         DWORD *pdwLowDateTimeConnected,
1603         DWORD *pdwHighDateTimeConnected);
1604 
1605     HRESULT (STDMETHODCALLTYPE *get_IsConnectedToInternet)(
1606         INetwork *This,
1607         VARIANT_BOOL *pbIsConnected);
1608 
1609     HRESULT (STDMETHODCALLTYPE *get_IsConnected)(
1610         INetwork *This,
1611         VARIANT_BOOL *pbIsConnected);
1612 
1613     HRESULT (STDMETHODCALLTYPE *GetConnectivity)(
1614         INetwork *This,
1615         NLM_CONNECTIVITY *pConnectivity);
1616 
1617     HRESULT (STDMETHODCALLTYPE *GetCategory)(
1618         INetwork *This,
1619         NLM_NETWORK_CATEGORY *pCategory);
1620 
1621     HRESULT (STDMETHODCALLTYPE *SetCategory)(
1622         INetwork *This,
1623         NLM_NETWORK_CATEGORY NewCategory);
1624 
1625     END_INTERFACE
1626 } INetworkVtbl;
1627 
1628 interface INetwork {
1629     CONST_VTBL INetworkVtbl* lpVtbl;
1630 };
1631 
1632 #ifdef COBJMACROS
1633 #ifndef WIDL_C_INLINE_WRAPPERS
1634 /*** IUnknown methods ***/
1635 #define INetwork_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1636 #define INetwork_AddRef(This) (This)->lpVtbl->AddRef(This)
1637 #define INetwork_Release(This) (This)->lpVtbl->Release(This)
1638 /*** IDispatch methods ***/
1639 #define INetwork_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
1640 #define INetwork_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
1641 #define INetwork_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
1642 #define INetwork_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
1643 /*** INetwork methods ***/
1644 #define INetwork_GetName(This,pszNetworkName) (This)->lpVtbl->GetName(This,pszNetworkName)
1645 #define INetwork_SetName(This,szNetworkNewName) (This)->lpVtbl->SetName(This,szNetworkNewName)
1646 #define INetwork_GetDescription(This,pszDescription) (This)->lpVtbl->GetDescription(This,pszDescription)
1647 #define INetwork_SetDescription(This,szDescription) (This)->lpVtbl->SetDescription(This,szDescription)
1648 #define INetwork_GetNetworkId(This,pgdGuidNetworkId) (This)->lpVtbl->GetNetworkId(This,pgdGuidNetworkId)
1649 #define INetwork_GetDomainType(This,pNetworkType) (This)->lpVtbl->GetDomainType(This,pNetworkType)
1650 #define INetwork_GetNetworkConnections(This,ppEnumNetworkConnection) (This)->lpVtbl->GetNetworkConnections(This,ppEnumNetworkConnection)
1651 #define INetwork_GetTimeCreatedAndConnected(This,pdwLowDateTimeCreated,pdwHighDateTimeCreated,pdwLowDateTimeConnected,pdwHighDateTimeConnected) (This)->lpVtbl->GetTimeCreatedAndConnected(This,pdwLowDateTimeCreated,pdwHighDateTimeCreated,pdwLowDateTimeConnected,pdwHighDateTimeConnected)
1652 #define INetwork_get_IsConnectedToInternet(This,pbIsConnected) (This)->lpVtbl->get_IsConnectedToInternet(This,pbIsConnected)
1653 #define INetwork_get_IsConnected(This,pbIsConnected) (This)->lpVtbl->get_IsConnected(This,pbIsConnected)
1654 #define INetwork_GetConnectivity(This,pConnectivity) (This)->lpVtbl->GetConnectivity(This,pConnectivity)
1655 #define INetwork_GetCategory(This,pCategory) (This)->lpVtbl->GetCategory(This,pCategory)
1656 #define INetwork_SetCategory(This,NewCategory) (This)->lpVtbl->SetCategory(This,NewCategory)
1657 #else
1658 /*** IUnknown methods ***/
1659 static FORCEINLINE HRESULT INetwork_QueryInterface(INetwork* This,REFIID riid,void **ppvObject) {
1660     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1661 }
1662 static FORCEINLINE ULONG INetwork_AddRef(INetwork* This) {
1663     return This->lpVtbl->AddRef(This);
1664 }
1665 static FORCEINLINE ULONG INetwork_Release(INetwork* This) {
1666     return This->lpVtbl->Release(This);
1667 }
1668 /*** IDispatch methods ***/
1669 static FORCEINLINE HRESULT INetwork_GetTypeInfoCount(INetwork* This,UINT *pctinfo) {
1670     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
1671 }
1672 static FORCEINLINE HRESULT INetwork_GetTypeInfo(INetwork* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
1673     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
1674 }
1675 static FORCEINLINE HRESULT INetwork_GetIDsOfNames(INetwork* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
1676     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
1677 }
1678 static FORCEINLINE HRESULT INetwork_Invoke(INetwork* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
1679     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
1680 }
1681 /*** INetwork methods ***/
1682 static FORCEINLINE HRESULT INetwork_GetName(INetwork* This,BSTR *pszNetworkName) {
1683     return This->lpVtbl->GetName(This,pszNetworkName);
1684 }
1685 static FORCEINLINE HRESULT INetwork_SetName(INetwork* This,BSTR szNetworkNewName) {
1686     return This->lpVtbl->SetName(This,szNetworkNewName);
1687 }
1688 static FORCEINLINE HRESULT INetwork_GetDescription(INetwork* This,BSTR *pszDescription) {
1689     return This->lpVtbl->GetDescription(This,pszDescription);
1690 }
1691 static FORCEINLINE HRESULT INetwork_SetDescription(INetwork* This,BSTR szDescription) {
1692     return This->lpVtbl->SetDescription(This,szDescription);
1693 }
1694 static FORCEINLINE HRESULT INetwork_GetNetworkId(INetwork* This,GUID *pgdGuidNetworkId) {
1695     return This->lpVtbl->GetNetworkId(This,pgdGuidNetworkId);
1696 }
1697 static FORCEINLINE HRESULT INetwork_GetDomainType(INetwork* This,NLM_DOMAIN_TYPE *pNetworkType) {
1698     return This->lpVtbl->GetDomainType(This,pNetworkType);
1699 }
1700 static FORCEINLINE HRESULT INetwork_GetNetworkConnections(INetwork* This,IEnumNetworkConnections **ppEnumNetworkConnection) {
1701     return This->lpVtbl->GetNetworkConnections(This,ppEnumNetworkConnection);
1702 }
1703 static FORCEINLINE HRESULT INetwork_GetTimeCreatedAndConnected(INetwork* This,DWORD *pdwLowDateTimeCreated,DWORD *pdwHighDateTimeCreated,DWORD *pdwLowDateTimeConnected,DWORD *pdwHighDateTimeConnected) {
1704     return This->lpVtbl->GetTimeCreatedAndConnected(This,pdwLowDateTimeCreated,pdwHighDateTimeCreated,pdwLowDateTimeConnected,pdwHighDateTimeConnected);
1705 }
1706 static FORCEINLINE HRESULT INetwork_get_IsConnectedToInternet(INetwork* This,VARIANT_BOOL *pbIsConnected) {
1707     return This->lpVtbl->get_IsConnectedToInternet(This,pbIsConnected);
1708 }
1709 static FORCEINLINE HRESULT INetwork_get_IsConnected(INetwork* This,VARIANT_BOOL *pbIsConnected) {
1710     return This->lpVtbl->get_IsConnected(This,pbIsConnected);
1711 }
1712 static FORCEINLINE HRESULT INetwork_GetConnectivity(INetwork* This,NLM_CONNECTIVITY *pConnectivity) {
1713     return This->lpVtbl->GetConnectivity(This,pConnectivity);
1714 }
1715 static FORCEINLINE HRESULT INetwork_GetCategory(INetwork* This,NLM_NETWORK_CATEGORY *pCategory) {
1716     return This->lpVtbl->GetCategory(This,pCategory);
1717 }
1718 static FORCEINLINE HRESULT INetwork_SetCategory(INetwork* This,NLM_NETWORK_CATEGORY NewCategory) {
1719     return This->lpVtbl->SetCategory(This,NewCategory);
1720 }
1721 #endif
1722 #endif
1723 
1724 #endif
1725 
1726 
1727 #endif  /* __INetwork_INTERFACE_DEFINED__ */
1728 
1729 /*****************************************************************************
1730  * INetworkEvents interface
1731  */
1732 #ifndef __INetworkEvents_INTERFACE_DEFINED__
1733 #define __INetworkEvents_INTERFACE_DEFINED__
1734 
1735 typedef enum NLM_NETWORK_PROPERTY_CHANGE {
1736     NLM_NETWORK_PROPERTY_CHANGE_CONNECTION = 0x1,
1737     NLM_NETWORK_PROPERTY_CHANGE_DESCRIPTION = 0x2,
1738     NLM_NETWORK_PROPERTY_CHANGE_NAME = 0x4,
1739     NLM_NETWORK_PROPERTY_CHANGE_ICON = 0x8,
1740     NLM_NETWORK_PROPERTY_CHANGE_CATEGORY_VALUE = 0x10
1741 } NLM_NETWORK_PROPERTY_CHANGE;
1742 DEFINE_GUID(IID_INetworkEvents, 0xdcb00004, 0x570f, 0x4a9b, 0x8d,0x69, 0x19,0x9f,0xdb,0xa5,0x72,0x3b);
1743 #if defined(__cplusplus) && !defined(CINTERFACE)
1744 MIDL_INTERFACE("dcb00004-570f-4a9b-8d69-199fdba5723b")
1745 INetworkEvents : public IUnknown
1746 {
1747     virtual HRESULT STDMETHODCALLTYPE NetworkAdded(
1748         GUID networkId) = 0;
1749 
1750     virtual HRESULT STDMETHODCALLTYPE NetworkDeleted(
1751         GUID networkId) = 0;
1752 
1753     virtual HRESULT STDMETHODCALLTYPE NetworkConnectivityChanged(
1754         GUID networkId,
1755         NLM_CONNECTIVITY newConnectivity) = 0;
1756 
1757     virtual HRESULT STDMETHODCALLTYPE NetworkPropertyChanged(
1758         GUID networkId,
1759         NLM_NETWORK_PROPERTY_CHANGE flags) = 0;
1760 
1761 };
1762 #ifdef __CRT_UUID_DECL
1763 __CRT_UUID_DECL(INetworkEvents, 0xdcb00004, 0x570f, 0x4a9b, 0x8d,0x69, 0x19,0x9f,0xdb,0xa5,0x72,0x3b)
1764 #endif
1765 #else
1766 typedef struct INetworkEventsVtbl {
1767     BEGIN_INTERFACE
1768 
1769     /*** IUnknown methods ***/
1770     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1771         INetworkEvents *This,
1772         REFIID riid,
1773         void **ppvObject);
1774 
1775     ULONG (STDMETHODCALLTYPE *AddRef)(
1776         INetworkEvents *This);
1777 
1778     ULONG (STDMETHODCALLTYPE *Release)(
1779         INetworkEvents *This);
1780 
1781     /*** INetworkEvents methods ***/
1782     HRESULT (STDMETHODCALLTYPE *NetworkAdded)(
1783         INetworkEvents *This,
1784         GUID networkId);
1785 
1786     HRESULT (STDMETHODCALLTYPE *NetworkDeleted)(
1787         INetworkEvents *This,
1788         GUID networkId);
1789 
1790     HRESULT (STDMETHODCALLTYPE *NetworkConnectivityChanged)(
1791         INetworkEvents *This,
1792         GUID networkId,
1793         NLM_CONNECTIVITY newConnectivity);
1794 
1795     HRESULT (STDMETHODCALLTYPE *NetworkPropertyChanged)(
1796         INetworkEvents *This,
1797         GUID networkId,
1798         NLM_NETWORK_PROPERTY_CHANGE flags);
1799 
1800     END_INTERFACE
1801 } INetworkEventsVtbl;
1802 
1803 interface INetworkEvents {
1804     CONST_VTBL INetworkEventsVtbl* lpVtbl;
1805 };
1806 
1807 #ifdef COBJMACROS
1808 #ifndef WIDL_C_INLINE_WRAPPERS
1809 /*** IUnknown methods ***/
1810 #define INetworkEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1811 #define INetworkEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
1812 #define INetworkEvents_Release(This) (This)->lpVtbl->Release(This)
1813 /*** INetworkEvents methods ***/
1814 #define INetworkEvents_NetworkAdded(This,networkId) (This)->lpVtbl->NetworkAdded(This,networkId)
1815 #define INetworkEvents_NetworkDeleted(This,networkId) (This)->lpVtbl->NetworkDeleted(This,networkId)
1816 #define INetworkEvents_NetworkConnectivityChanged(This,networkId,newConnectivity) (This)->lpVtbl->NetworkConnectivityChanged(This,networkId,newConnectivity)
1817 #define INetworkEvents_NetworkPropertyChanged(This,networkId,flags) (This)->lpVtbl->NetworkPropertyChanged(This,networkId,flags)
1818 #else
1819 /*** IUnknown methods ***/
1820 static FORCEINLINE HRESULT INetworkEvents_QueryInterface(INetworkEvents* This,REFIID riid,void **ppvObject) {
1821     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1822 }
1823 static FORCEINLINE ULONG INetworkEvents_AddRef(INetworkEvents* This) {
1824     return This->lpVtbl->AddRef(This);
1825 }
1826 static FORCEINLINE ULONG INetworkEvents_Release(INetworkEvents* This) {
1827     return This->lpVtbl->Release(This);
1828 }
1829 /*** INetworkEvents methods ***/
1830 static FORCEINLINE HRESULT INetworkEvents_NetworkAdded(INetworkEvents* This,GUID networkId) {
1831     return This->lpVtbl->NetworkAdded(This,networkId);
1832 }
1833 static FORCEINLINE HRESULT INetworkEvents_NetworkDeleted(INetworkEvents* This,GUID networkId) {
1834     return This->lpVtbl->NetworkDeleted(This,networkId);
1835 }
1836 static FORCEINLINE HRESULT INetworkEvents_NetworkConnectivityChanged(INetworkEvents* This,GUID networkId,NLM_CONNECTIVITY newConnectivity) {
1837     return This->lpVtbl->NetworkConnectivityChanged(This,networkId,newConnectivity);
1838 }
1839 static FORCEINLINE HRESULT INetworkEvents_NetworkPropertyChanged(INetworkEvents* This,GUID networkId,NLM_NETWORK_PROPERTY_CHANGE flags) {
1840     return This->lpVtbl->NetworkPropertyChanged(This,networkId,flags);
1841 }
1842 #endif
1843 #endif
1844 
1845 #endif
1846 
1847 
1848 #endif  /* __INetworkEvents_INTERFACE_DEFINED__ */
1849 
1850 /* Begin additional prototypes for all interfaces */
1851 
1852 ULONG           __RPC_USER BSTR_UserSize     (ULONG *, ULONG, BSTR *);
1853 unsigned char * __RPC_USER BSTR_UserMarshal  (ULONG *, unsigned char *, BSTR *);
1854 unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
1855 void            __RPC_USER BSTR_UserFree     (ULONG *, BSTR *);
1856 
1857 /* End additional prototypes */
1858 
1859 #ifdef __cplusplus
1860 }
1861 #endif
1862 
1863 #endif /* __netlistmgr_h__ */
1864