zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

netlistmgr.h (70920B) - Raw


      1 /*** Autogenerated by WIDL 10.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 inline HRESULT INetworkCostManager_QueryInterface(INetworkCostManager* This,REFIID riid,void **ppvObject) {
    340     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    341 }
    342 static inline ULONG INetworkCostManager_AddRef(INetworkCostManager* This) {
    343     return This->lpVtbl->AddRef(This);
    344 }
    345 static inline ULONG INetworkCostManager_Release(INetworkCostManager* This) {
    346     return This->lpVtbl->Release(This);
    347 }
    348 /*** INetworkCostManager methods ***/
    349 static inline HRESULT INetworkCostManager_GetCost(INetworkCostManager* This,DWORD *pCost,NLM_SOCKADDR *pDestIPAddr) {
    350     return This->lpVtbl->GetCost(This,pCost,pDestIPAddr);
    351 }
    352 static inline HRESULT INetworkCostManager_GetDataPlanStatus(INetworkCostManager* This,NLM_DATAPLAN_STATUS *pDataPlanStatus,NLM_SOCKADDR *pDestIPAddr) {
    353     return This->lpVtbl->GetDataPlanStatus(This,pDataPlanStatus,pDestIPAddr);
    354 }
    355 static inline 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 inline HRESULT INetworkConnectionCost_QueryInterface(INetworkConnectionCost* This,REFIID riid,void **ppvObject) {
    431     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    432 }
    433 static inline ULONG INetworkConnectionCost_AddRef(INetworkConnectionCost* This) {
    434     return This->lpVtbl->AddRef(This);
    435 }
    436 static inline ULONG INetworkConnectionCost_Release(INetworkConnectionCost* This) {
    437     return This->lpVtbl->Release(This);
    438 }
    439 /*** INetworkConnectionCost methods ***/
    440 static inline HRESULT INetworkConnectionCost_GetCost(INetworkConnectionCost* This,DWORD *pCost) {
    441     return This->lpVtbl->GetCost(This,pCost);
    442 }
    443 static inline 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 inline HRESULT INetworkCostManagerEvents_QueryInterface(INetworkCostManagerEvents* This,REFIID riid,void **ppvObject) {
    521     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    522 }
    523 static inline ULONG INetworkCostManagerEvents_AddRef(INetworkCostManagerEvents* This) {
    524     return This->lpVtbl->AddRef(This);
    525 }
    526 static inline ULONG INetworkCostManagerEvents_Release(INetworkCostManagerEvents* This) {
    527     return This->lpVtbl->Release(This);
    528 }
    529 /*** INetworkCostManagerEvents methods ***/
    530 static inline HRESULT INetworkCostManagerEvents_CostChanged(INetworkCostManagerEvents* This,DWORD newCost,NLM_SOCKADDR *pDestAddr) {
    531     return This->lpVtbl->CostChanged(This,newCost,pDestAddr);
    532 }
    533 static inline 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 inline HRESULT IEnumNetworks_QueryInterface(IEnumNetworks* This,REFIID riid,void **ppvObject) {
    671     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    672 }
    673 static inline ULONG IEnumNetworks_AddRef(IEnumNetworks* This) {
    674     return This->lpVtbl->AddRef(This);
    675 }
    676 static inline ULONG IEnumNetworks_Release(IEnumNetworks* This) {
    677     return This->lpVtbl->Release(This);
    678 }
    679 /*** IDispatch methods ***/
    680 static inline HRESULT IEnumNetworks_GetTypeInfoCount(IEnumNetworks* This,UINT *pctinfo) {
    681     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
    682 }
    683 static inline HRESULT IEnumNetworks_GetTypeInfo(IEnumNetworks* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
    684     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
    685 }
    686 static inline 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 inline 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 inline HRESULT IEnumNetworks_get__NewEnum(IEnumNetworks* This,IEnumVARIANT **ppEnumVar) {
    694     return This->lpVtbl->get__NewEnum(This,ppEnumVar);
    695 }
    696 static inline HRESULT IEnumNetworks_Next(IEnumNetworks* This,ULONG celt,INetwork **rgelt,ULONG *pceltFetched) {
    697     return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
    698 }
    699 static inline HRESULT IEnumNetworks_Skip(IEnumNetworks* This,ULONG celt) {
    700     return This->lpVtbl->Skip(This,celt);
    701 }
    702 static inline HRESULT IEnumNetworks_Reset(IEnumNetworks* This) {
    703     return This->lpVtbl->Reset(This);
    704 }
    705 static inline 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 inline HRESULT IEnumNetworkConnections_QueryInterface(IEnumNetworkConnections* This,REFIID riid,void **ppvObject) {
    843     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    844 }
    845 static inline ULONG IEnumNetworkConnections_AddRef(IEnumNetworkConnections* This) {
    846     return This->lpVtbl->AddRef(This);
    847 }
    848 static inline ULONG IEnumNetworkConnections_Release(IEnumNetworkConnections* This) {
    849     return This->lpVtbl->Release(This);
    850 }
    851 /*** IDispatch methods ***/
    852 static inline HRESULT IEnumNetworkConnections_GetTypeInfoCount(IEnumNetworkConnections* This,UINT *pctinfo) {
    853     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
    854 }
    855 static inline HRESULT IEnumNetworkConnections_GetTypeInfo(IEnumNetworkConnections* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
    856     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
    857 }
    858 static inline 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 inline 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 inline HRESULT IEnumNetworkConnections_get__NewEnum(IEnumNetworkConnections* This,IEnumVARIANT **ppEnumVar) {
    866     return This->lpVtbl->get__NewEnum(This,ppEnumVar);
    867 }
    868 static inline HRESULT IEnumNetworkConnections_Next(IEnumNetworkConnections* This,ULONG celt,INetworkConnection **rgelt,ULONG *pceltFetched) {
    869     return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
    870 }
    871 static inline HRESULT IEnumNetworkConnections_Skip(IEnumNetworkConnections* This,ULONG celt) {
    872     return This->lpVtbl->Skip(This,celt);
    873 }
    874 static inline HRESULT IEnumNetworkConnections_Reset(IEnumNetworkConnections* This) {
    875     return This->lpVtbl->Reset(This);
    876 }
    877 static inline 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 inline HRESULT INetworkListManager_QueryInterface(INetworkListManager* This,REFIID riid,void **ppvObject) {
   1034     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1035 }
   1036 static inline ULONG INetworkListManager_AddRef(INetworkListManager* This) {
   1037     return This->lpVtbl->AddRef(This);
   1038 }
   1039 static inline ULONG INetworkListManager_Release(INetworkListManager* This) {
   1040     return This->lpVtbl->Release(This);
   1041 }
   1042 /*** IDispatch methods ***/
   1043 static inline HRESULT INetworkListManager_GetTypeInfoCount(INetworkListManager* This,UINT *pctinfo) {
   1044     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
   1045 }
   1046 static inline HRESULT INetworkListManager_GetTypeInfo(INetworkListManager* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
   1047     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
   1048 }
   1049 static inline 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 inline 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 inline HRESULT INetworkListManager_GetNetworks(INetworkListManager* This,NLM_ENUM_NETWORK Flags,IEnumNetworks **ppEnumNetwork) {
   1057     return This->lpVtbl->GetNetworks(This,Flags,ppEnumNetwork);
   1058 }
   1059 static inline HRESULT INetworkListManager_GetNetwork(INetworkListManager* This,GUID gdNetworkId,INetwork **ppNetwork) {
   1060     return This->lpVtbl->GetNetwork(This,gdNetworkId,ppNetwork);
   1061 }
   1062 static inline HRESULT INetworkListManager_GetNetworkConnections(INetworkListManager* This,IEnumNetworkConnections **ppEnum) {
   1063     return This->lpVtbl->GetNetworkConnections(This,ppEnum);
   1064 }
   1065 static inline HRESULT INetworkListManager_GetNetworkConnection(INetworkListManager* This,GUID gdNetworkConnectionId,INetworkConnection **ppNetworkConnection) {
   1066     return This->lpVtbl->GetNetworkConnection(This,gdNetworkConnectionId,ppNetworkConnection);
   1067 }
   1068 static inline HRESULT INetworkListManager_IsConnectedToInternet(INetworkListManager* This,VARIANT_BOOL *pbIsConnected) {
   1069     return This->lpVtbl->IsConnectedToInternet(This,pbIsConnected);
   1070 }
   1071 static inline HRESULT INetworkListManager_IsConnected(INetworkListManager* This,VARIANT_BOOL *pbIsConnected) {
   1072     return This->lpVtbl->IsConnected(This,pbIsConnected);
   1073 }
   1074 static inline 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 inline HRESULT INetworkListManagerEvents_QueryInterface(INetworkListManagerEvents* This,REFIID riid,void **ppvObject) {
   1155     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1156 }
   1157 static inline ULONG INetworkListManagerEvents_AddRef(INetworkListManagerEvents* This) {
   1158     return This->lpVtbl->AddRef(This);
   1159 }
   1160 static inline ULONG INetworkListManagerEvents_Release(INetworkListManagerEvents* This) {
   1161     return This->lpVtbl->Release(This);
   1162 }
   1163 /*** INetworkListManagerEvents methods ***/
   1164 static inline 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 inline HRESULT INetworkConnectionEvents_QueryInterface(INetworkConnectionEvents* This,REFIID riid,void **ppvObject) {
   1247     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1248 }
   1249 static inline ULONG INetworkConnectionEvents_AddRef(INetworkConnectionEvents* This) {
   1250     return This->lpVtbl->AddRef(This);
   1251 }
   1252 static inline ULONG INetworkConnectionEvents_Release(INetworkConnectionEvents* This) {
   1253     return This->lpVtbl->Release(This);
   1254 }
   1255 /*** INetworkConnectionEvents methods ***/
   1256 static inline HRESULT INetworkConnectionEvents_NetworkConnectionConnectivityChanged(INetworkConnectionEvents* This,GUID connectionId,NLM_CONNECTIVITY newConnectivity) {
   1257     return This->lpVtbl->NetworkConnectionConnectivityChanged(This,connectionId,newConnectivity);
   1258 }
   1259 static inline 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 inline HRESULT INetworkConnection_QueryInterface(INetworkConnection* This,REFIID riid,void **ppvObject) {
   1410     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1411 }
   1412 static inline ULONG INetworkConnection_AddRef(INetworkConnection* This) {
   1413     return This->lpVtbl->AddRef(This);
   1414 }
   1415 static inline ULONG INetworkConnection_Release(INetworkConnection* This) {
   1416     return This->lpVtbl->Release(This);
   1417 }
   1418 /*** IDispatch methods ***/
   1419 static inline HRESULT INetworkConnection_GetTypeInfoCount(INetworkConnection* This,UINT *pctinfo) {
   1420     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
   1421 }
   1422 static inline HRESULT INetworkConnection_GetTypeInfo(INetworkConnection* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
   1423     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
   1424 }
   1425 static inline 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 inline 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 inline HRESULT INetworkConnection_GetNetwork(INetworkConnection* This,INetwork **ppNetwork) {
   1433     return This->lpVtbl->GetNetwork(This,ppNetwork);
   1434 }
   1435 static inline HRESULT INetworkConnection_get_IsConnectedToInternet(INetworkConnection* This,VARIANT_BOOL *pbIsConnected) {
   1436     return This->lpVtbl->get_IsConnectedToInternet(This,pbIsConnected);
   1437 }
   1438 static inline HRESULT INetworkConnection_get_IsConnected(INetworkConnection* This,VARIANT_BOOL *pbIsConnected) {
   1439     return This->lpVtbl->get_IsConnected(This,pbIsConnected);
   1440 }
   1441 static inline HRESULT INetworkConnection_GetConnectivity(INetworkConnection* This,NLM_CONNECTIVITY *pConnectivity) {
   1442     return This->lpVtbl->GetConnectivity(This,pConnectivity);
   1443 }
   1444 static inline HRESULT INetworkConnection_GetConnectionId(INetworkConnection* This,GUID *pgdConnectionId) {
   1445     return This->lpVtbl->GetConnectionId(This,pgdConnectionId);
   1446 }
   1447 static inline HRESULT INetworkConnection_GetAdapterId(INetworkConnection* This,GUID *pgdAdapterId) {
   1448     return This->lpVtbl->GetAdapterId(This,pgdAdapterId);
   1449 }
   1450 static inline 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 inline HRESULT INetwork_QueryInterface(INetwork* This,REFIID riid,void **ppvObject) {
   1660     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1661 }
   1662 static inline ULONG INetwork_AddRef(INetwork* This) {
   1663     return This->lpVtbl->AddRef(This);
   1664 }
   1665 static inline ULONG INetwork_Release(INetwork* This) {
   1666     return This->lpVtbl->Release(This);
   1667 }
   1668 /*** IDispatch methods ***/
   1669 static inline HRESULT INetwork_GetTypeInfoCount(INetwork* This,UINT *pctinfo) {
   1670     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
   1671 }
   1672 static inline HRESULT INetwork_GetTypeInfo(INetwork* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
   1673     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
   1674 }
   1675 static inline 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 inline 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 inline HRESULT INetwork_GetName(INetwork* This,BSTR *pszNetworkName) {
   1683     return This->lpVtbl->GetName(This,pszNetworkName);
   1684 }
   1685 static inline HRESULT INetwork_SetName(INetwork* This,BSTR szNetworkNewName) {
   1686     return This->lpVtbl->SetName(This,szNetworkNewName);
   1687 }
   1688 static inline HRESULT INetwork_GetDescription(INetwork* This,BSTR *pszDescription) {
   1689     return This->lpVtbl->GetDescription(This,pszDescription);
   1690 }
   1691 static inline HRESULT INetwork_SetDescription(INetwork* This,BSTR szDescription) {
   1692     return This->lpVtbl->SetDescription(This,szDescription);
   1693 }
   1694 static inline HRESULT INetwork_GetNetworkId(INetwork* This,GUID *pgdGuidNetworkId) {
   1695     return This->lpVtbl->GetNetworkId(This,pgdGuidNetworkId);
   1696 }
   1697 static inline HRESULT INetwork_GetDomainType(INetwork* This,NLM_DOMAIN_TYPE *pNetworkType) {
   1698     return This->lpVtbl->GetDomainType(This,pNetworkType);
   1699 }
   1700 static inline HRESULT INetwork_GetNetworkConnections(INetwork* This,IEnumNetworkConnections **ppEnumNetworkConnection) {
   1701     return This->lpVtbl->GetNetworkConnections(This,ppEnumNetworkConnection);
   1702 }
   1703 static inline 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 inline HRESULT INetwork_get_IsConnectedToInternet(INetwork* This,VARIANT_BOOL *pbIsConnected) {
   1707     return This->lpVtbl->get_IsConnectedToInternet(This,pbIsConnected);
   1708 }
   1709 static inline HRESULT INetwork_get_IsConnected(INetwork* This,VARIANT_BOOL *pbIsConnected) {
   1710     return This->lpVtbl->get_IsConnected(This,pbIsConnected);
   1711 }
   1712 static inline HRESULT INetwork_GetConnectivity(INetwork* This,NLM_CONNECTIVITY *pConnectivity) {
   1713     return This->lpVtbl->GetConnectivity(This,pConnectivity);
   1714 }
   1715 static inline HRESULT INetwork_GetCategory(INetwork* This,NLM_NETWORK_CATEGORY *pCategory) {
   1716     return This->lpVtbl->GetCategory(This,pCategory);
   1717 }
   1718 static inline 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 inline HRESULT INetworkEvents_QueryInterface(INetworkEvents* This,REFIID riid,void **ppvObject) {
   1821     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1822 }
   1823 static inline ULONG INetworkEvents_AddRef(INetworkEvents* This) {
   1824     return This->lpVtbl->AddRef(This);
   1825 }
   1826 static inline ULONG INetworkEvents_Release(INetworkEvents* This) {
   1827     return This->lpVtbl->Release(This);
   1828 }
   1829 /*** INetworkEvents methods ***/
   1830 static inline HRESULT INetworkEvents_NetworkAdded(INetworkEvents* This,GUID networkId) {
   1831     return This->lpVtbl->NetworkAdded(This,networkId);
   1832 }
   1833 static inline HRESULT INetworkEvents_NetworkDeleted(INetworkEvents* This,GUID networkId) {
   1834     return This->lpVtbl->NetworkDeleted(This,networkId);
   1835 }
   1836 static inline HRESULT INetworkEvents_NetworkConnectivityChanged(INetworkEvents* This,GUID networkId,NLM_CONNECTIVITY newConnectivity) {
   1837     return This->lpVtbl->NetworkConnectivityChanged(This,networkId,newConnectivity);
   1838 }
   1839 static inline 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__ */