headers: Generate netcfgx.h from IDL

Signed-off-by: Liu Hao <lh_mouse@126.com>
diff --git a/mingw-w64-headers/include/netcfgx.h b/mingw-w64-headers/include/netcfgx.h
new file mode 100644
index 0000000..b39de7a
--- /dev/null
+++ b/mingw-w64-headers/include/netcfgx.h
@@ -0,0 +1,2034 @@
+/*** Autogenerated by WIDL 5.0-rc1 from netcfgx.idl - Do not edit ***/
+
+#ifdef _WIN32
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+#include <rpc.h>
+#include <rpcndr.h>
+#endif
+
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
+
+#ifndef __netcfgx_h__
+#define __netcfgx_h__
+
+/* Forward declarations */
+
+#ifndef __IEnumNetCfgBindingInterface_FWD_DEFINED__
+#define __IEnumNetCfgBindingInterface_FWD_DEFINED__
+typedef interface IEnumNetCfgBindingInterface IEnumNetCfgBindingInterface;
+#ifdef __cplusplus
+interface IEnumNetCfgBindingInterface;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IEnumNetCfgBindingPath_FWD_DEFINED__
+#define __IEnumNetCfgBindingPath_FWD_DEFINED__
+typedef interface IEnumNetCfgBindingPath IEnumNetCfgBindingPath;
+#ifdef __cplusplus
+interface IEnumNetCfgBindingPath;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IEnumNetCfgComponent_FWD_DEFINED__
+#define __IEnumNetCfgComponent_FWD_DEFINED__
+typedef interface IEnumNetCfgComponent IEnumNetCfgComponent;
+#ifdef __cplusplus
+interface IEnumNetCfgComponent;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __INetCfg_FWD_DEFINED__
+#define __INetCfg_FWD_DEFINED__
+typedef interface INetCfg INetCfg;
+#ifdef __cplusplus
+interface INetCfg;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __CNetCfg_FWD_DEFINED__
+#define __CNetCfg_FWD_DEFINED__
+#ifdef __cplusplus
+typedef class CNetCfg CNetCfg;
+#else
+typedef struct CNetCfg CNetCfg;
+#endif /* defined __cplusplus */
+#endif /* defined __CNetCfg_FWD_DEFINED__ */
+
+#ifndef __INetCfgLock_FWD_DEFINED__
+#define __INetCfgLock_FWD_DEFINED__
+typedef interface INetCfgLock INetCfgLock;
+#ifdef __cplusplus
+interface INetCfgLock;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __INetCfgBindingInterface_FWD_DEFINED__
+#define __INetCfgBindingInterface_FWD_DEFINED__
+typedef interface INetCfgBindingInterface INetCfgBindingInterface;
+#ifdef __cplusplus
+interface INetCfgBindingInterface;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __INetCfgBindingPath_FWD_DEFINED__
+#define __INetCfgBindingPath_FWD_DEFINED__
+typedef interface INetCfgBindingPath INetCfgBindingPath;
+#ifdef __cplusplus
+interface INetCfgBindingPath;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __INetCfgClass_FWD_DEFINED__
+#define __INetCfgClass_FWD_DEFINED__
+typedef interface INetCfgClass INetCfgClass;
+#ifdef __cplusplus
+interface INetCfgClass;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __INetCfgClassSetup_FWD_DEFINED__
+#define __INetCfgClassSetup_FWD_DEFINED__
+typedef interface INetCfgClassSetup INetCfgClassSetup;
+#ifdef __cplusplus
+interface INetCfgClassSetup;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __INetCfgClassSetup2_FWD_DEFINED__
+#define __INetCfgClassSetup2_FWD_DEFINED__
+typedef interface INetCfgClassSetup2 INetCfgClassSetup2;
+#ifdef __cplusplus
+interface INetCfgClassSetup2;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __INetCfgComponent_FWD_DEFINED__
+#define __INetCfgComponent_FWD_DEFINED__
+typedef interface INetCfgComponent INetCfgComponent;
+#ifdef __cplusplus
+interface INetCfgComponent;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __INetCfgComponentBindings_FWD_DEFINED__
+#define __INetCfgComponentBindings_FWD_DEFINED__
+typedef interface INetCfgComponentBindings INetCfgComponentBindings;
+#ifdef __cplusplus
+interface INetCfgComponentBindings;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __INetCfgSysPrep_FWD_DEFINED__
+#define __INetCfgSysPrep_FWD_DEFINED__
+typedef interface INetCfgSysPrep INetCfgSysPrep;
+#ifdef __cplusplus
+interface INetCfgSysPrep;
+#endif /* __cplusplus */
+#endif
+
+/* Headers for imported files */
+
+#include <unknwn.h>
+#include <wtypes.h>
+#include <prsht.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <winapifamily.h>
+#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
+
+#define NETCFG_E_ALREADY_INITIALIZED MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0xa020)
+#define NETCFG_E_NOT_INITIALIZED MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0xa021)
+#define NETCFG_E_IN_USE MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0xa022)
+#define NETCFG_E_NO_WRITE_LOCK MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0xa024)
+#define NETCFG_E_NEED_REBOOT MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0xa025)
+#define NETCFG_E_ACTIVE_RAS_CONNECTIONS MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0xa026)
+#define NETCFG_E_ADAPTER_NOT_FOUND MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0xa027)
+#define NETCFG_E_COMPONENT_REMOVED_PENDING_REBOOT MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0xa028)
+#define NETCFG_E_MAX_FILTER_LIMIT MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0xa029)
+#define NETCFG_E_VMSWITCH_ACTIVE_OVER_ADAPTER MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0xa02a)
+#define NETCFG_E_DUPLICATE_INSTANCEID MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0xa02b)
+
+#define NETCFG_S_REBOOT MAKE_HRESULT(SEVERITY_SUCCESS, FACILITY_ITF, 0xa020)
+#define NETCFG_S_DISABLE_QUERY MAKE_HRESULT(SEVERITY_SUCCESS, FACILITY_ITF, 0xa022)
+#define NETCFG_S_STILL_REFERENCED MAKE_HRESULT(SEVERITY_SUCCESS, FACILITY_ITF, 0xa023)
+#define NETCFG_S_CAUSED_SETUP_CHANGE MAKE_HRESULT(SEVERITY_SUCCESS, FACILITY_ITF, 0xa024)
+#define NETCFG_S_COMMIT_NOW MAKE_HRESULT(SEVERITY_SUCCESS, FACILITY_ITF, 0xa025)
+
+#define NETCFG_CLIENT_CID_MS_MSClient TEXT("ms_msclient")
+#define NETCFG_SERVICE_CID_MS_SERVER TEXT("ms_server")
+#define NETCFG_SERVICE_CID_MS_NETBIOS TEXT("ms_netbios")
+#define NETCFG_SERVICE_CID_MS_PSCHED TEXT("ms_pschedpc")
+#define NETCFG_SERVICE_CID_MS_WLBS TEXT("ms_wlbs")
+#define NETCFG_TRANS_CID_MS_APPLETALK TEXT("ms_appletalk")
+#define NETCFG_TRANS_CID_MS_NETBEUI TEXT("ms_netbeui")
+#define NETCFG_TRANS_CID_MS_NETMON TEXT("ms_netmon")
+#define NETCFG_TRANS_CID_MS_NWIPX TEXT("ms_nwipx")
+#define NETCFG_TRANS_CID_MS_NWSPX TEXT("ms_nwspx")
+#define NETCFG_TRANS_CID_MS_TCPIP TEXT("ms_tcpip")
+
+#ifndef __IEnumNetCfgBindingInterface_FWD_DEFINED__
+#define __IEnumNetCfgBindingInterface_FWD_DEFINED__
+typedef interface IEnumNetCfgBindingInterface IEnumNetCfgBindingInterface;
+#ifdef __cplusplus
+interface IEnumNetCfgBindingInterface;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IEnumNetCfgBindingPath_FWD_DEFINED__
+#define __IEnumNetCfgBindingPath_FWD_DEFINED__
+typedef interface IEnumNetCfgBindingPath IEnumNetCfgBindingPath;
+#ifdef __cplusplus
+interface IEnumNetCfgBindingPath;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IEnumNetCfgComponent_FWD_DEFINED__
+#define __IEnumNetCfgComponent_FWD_DEFINED__
+typedef interface IEnumNetCfgComponent IEnumNetCfgComponent;
+#ifdef __cplusplus
+interface IEnumNetCfgComponent;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __INetCfg_FWD_DEFINED__
+#define __INetCfg_FWD_DEFINED__
+typedef interface INetCfg INetCfg;
+#ifdef __cplusplus
+interface INetCfg;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __INetCfgProperties_FWD_DEFINED__
+#define __INetCfgProperties_FWD_DEFINED__
+typedef interface INetCfgProperties INetCfgProperties;
+#ifdef __cplusplus
+interface INetCfgProperties;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __INetCfgLock_FWD_DEFINED__
+#define __INetCfgLock_FWD_DEFINED__
+typedef interface INetCfgLock INetCfgLock;
+#ifdef __cplusplus
+interface INetCfgLock;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __INetCfgBindingInterface_FWD_DEFINED__
+#define __INetCfgBindingInterface_FWD_DEFINED__
+typedef interface INetCfgBindingInterface INetCfgBindingInterface;
+#ifdef __cplusplus
+interface INetCfgBindingInterface;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __INetCfgBindingPath_FWD_DEFINED__
+#define __INetCfgBindingPath_FWD_DEFINED__
+typedef interface INetCfgBindingPath INetCfgBindingPath;
+#ifdef __cplusplus
+interface INetCfgBindingPath;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __INetCfgComponentBindings_FWD_DEFINED__
+#define __INetCfgComponentBindings_FWD_DEFINED__
+typedef interface INetCfgComponentBindings INetCfgComponentBindings;
+#ifdef __cplusplus
+interface INetCfgComponentBindings;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __INetCfgBindingPath_FWD_DEFINED__
+#define __INetCfgBindingPath_FWD_DEFINED__
+typedef interface INetCfgBindingPath INetCfgBindingPath;
+#ifdef __cplusplus
+interface INetCfgBindingPath;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __INetCfgClass_FWD_DEFINED__
+#define __INetCfgClass_FWD_DEFINED__
+typedef interface INetCfgClass INetCfgClass;
+#ifdef __cplusplus
+interface INetCfgClass;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __INetCfgComponent_FWD_DEFINED__
+#define __INetCfgComponent_FWD_DEFINED__
+typedef interface INetCfgComponent INetCfgComponent;
+#ifdef __cplusplus
+interface INetCfgComponent;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __INetCfgIdentification_FWD_DEFINED__
+#define __INetCfgIdentification_FWD_DEFINED__
+typedef interface INetCfgIdentification INetCfgIdentification;
+#ifdef __cplusplus
+interface INetCfgIdentification;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __INetCfgClassSetup_FWD_DEFINED__
+#define __INetCfgClassSetup_FWD_DEFINED__
+typedef interface INetCfgClassSetup INetCfgClassSetup;
+#ifdef __cplusplus
+interface INetCfgClassSetup;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __INetCfgClassSetup2_FWD_DEFINED__
+#define __INetCfgClassSetup2_FWD_DEFINED__
+typedef interface INetCfgClassSetup2 INetCfgClassSetup2;
+#ifdef __cplusplus
+interface INetCfgClassSetup2;
+#endif /* __cplusplus */
+#endif
+
+
+/*****************************************************************************
+ * IEnumNetCfgBindingInterface interface
+ */
+#ifndef __IEnumNetCfgBindingInterface_INTERFACE_DEFINED__
+#define __IEnumNetCfgBindingInterface_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IEnumNetCfgBindingInterface, 0xc0e8ae90, 0x306e, 0x11d1, 0xaa,0xcf, 0x00,0x80,0x5f,0xc1,0x27,0x0e);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("c0e8ae90-306e-11d1-aacf-00805fc1270e")
+IEnumNetCfgBindingInterface : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE Next(
+        ULONG celt,
+        INetCfgBindingInterface **rgelt,
+        ULONG *pceltFetched) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Skip(
+        ULONG celt) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Reset(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Clone(
+        IEnumNetCfgBindingInterface **ppenum) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IEnumNetCfgBindingInterface, 0xc0e8ae90, 0x306e, 0x11d1, 0xaa,0xcf, 0x00,0x80,0x5f,0xc1,0x27,0x0e)
+#endif
+#else
+typedef struct IEnumNetCfgBindingInterfaceVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IEnumNetCfgBindingInterface *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IEnumNetCfgBindingInterface *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IEnumNetCfgBindingInterface *This);
+
+    /*** IEnumNetCfgBindingInterface methods ***/
+    HRESULT (STDMETHODCALLTYPE *Next)(
+        IEnumNetCfgBindingInterface *This,
+        ULONG celt,
+        INetCfgBindingInterface **rgelt,
+        ULONG *pceltFetched);
+
+    HRESULT (STDMETHODCALLTYPE *Skip)(
+        IEnumNetCfgBindingInterface *This,
+        ULONG celt);
+
+    HRESULT (STDMETHODCALLTYPE *Reset)(
+        IEnumNetCfgBindingInterface *This);
+
+    HRESULT (STDMETHODCALLTYPE *Clone)(
+        IEnumNetCfgBindingInterface *This,
+        IEnumNetCfgBindingInterface **ppenum);
+
+    END_INTERFACE
+} IEnumNetCfgBindingInterfaceVtbl;
+
+interface IEnumNetCfgBindingInterface {
+    CONST_VTBL IEnumNetCfgBindingInterfaceVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IEnumNetCfgBindingInterface_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IEnumNetCfgBindingInterface_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IEnumNetCfgBindingInterface_Release(This) (This)->lpVtbl->Release(This)
+/*** IEnumNetCfgBindingInterface methods ***/
+#define IEnumNetCfgBindingInterface_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
+#define IEnumNetCfgBindingInterface_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
+#define IEnumNetCfgBindingInterface_Reset(This) (This)->lpVtbl->Reset(This)
+#define IEnumNetCfgBindingInterface_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IEnumNetCfgBindingInterface_QueryInterface(IEnumNetCfgBindingInterface* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IEnumNetCfgBindingInterface_AddRef(IEnumNetCfgBindingInterface* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IEnumNetCfgBindingInterface_Release(IEnumNetCfgBindingInterface* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IEnumNetCfgBindingInterface methods ***/
+static FORCEINLINE HRESULT IEnumNetCfgBindingInterface_Next(IEnumNetCfgBindingInterface* This,ULONG celt,INetCfgBindingInterface **rgelt,ULONG *pceltFetched) {
+    return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
+}
+static FORCEINLINE HRESULT IEnumNetCfgBindingInterface_Skip(IEnumNetCfgBindingInterface* This,ULONG celt) {
+    return This->lpVtbl->Skip(This,celt);
+}
+static FORCEINLINE HRESULT IEnumNetCfgBindingInterface_Reset(IEnumNetCfgBindingInterface* This) {
+    return This->lpVtbl->Reset(This);
+}
+static FORCEINLINE HRESULT IEnumNetCfgBindingInterface_Clone(IEnumNetCfgBindingInterface* This,IEnumNetCfgBindingInterface **ppenum) {
+    return This->lpVtbl->Clone(This,ppenum);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IEnumNetCfgBindingInterface_INTERFACE_DEFINED__ */
+
+
+/*****************************************************************************
+ * IEnumNetCfgBindingPath interface
+ */
+#ifndef __IEnumNetCfgBindingPath_INTERFACE_DEFINED__
+#define __IEnumNetCfgBindingPath_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IEnumNetCfgBindingPath, 0xc0e8ae91, 0x306e, 0x11d1, 0xaa,0xcf, 0x00,0x80,0x5f,0xc1,0x27,0x0e);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("c0e8ae91-306e-11d1-aacf-00805fc1270e")
+IEnumNetCfgBindingPath : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE Next(
+        ULONG celt,
+        INetCfgBindingPath **rgelt,
+        ULONG *pceltFetched) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Skip(
+        ULONG celt) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Reset(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Clone(
+        IEnumNetCfgBindingPath **ppenum) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IEnumNetCfgBindingPath, 0xc0e8ae91, 0x306e, 0x11d1, 0xaa,0xcf, 0x00,0x80,0x5f,0xc1,0x27,0x0e)
+#endif
+#else
+typedef struct IEnumNetCfgBindingPathVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IEnumNetCfgBindingPath *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IEnumNetCfgBindingPath *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IEnumNetCfgBindingPath *This);
+
+    /*** IEnumNetCfgBindingPath methods ***/
+    HRESULT (STDMETHODCALLTYPE *Next)(
+        IEnumNetCfgBindingPath *This,
+        ULONG celt,
+        INetCfgBindingPath **rgelt,
+        ULONG *pceltFetched);
+
+    HRESULT (STDMETHODCALLTYPE *Skip)(
+        IEnumNetCfgBindingPath *This,
+        ULONG celt);
+
+    HRESULT (STDMETHODCALLTYPE *Reset)(
+        IEnumNetCfgBindingPath *This);
+
+    HRESULT (STDMETHODCALLTYPE *Clone)(
+        IEnumNetCfgBindingPath *This,
+        IEnumNetCfgBindingPath **ppenum);
+
+    END_INTERFACE
+} IEnumNetCfgBindingPathVtbl;
+
+interface IEnumNetCfgBindingPath {
+    CONST_VTBL IEnumNetCfgBindingPathVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IEnumNetCfgBindingPath_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IEnumNetCfgBindingPath_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IEnumNetCfgBindingPath_Release(This) (This)->lpVtbl->Release(This)
+/*** IEnumNetCfgBindingPath methods ***/
+#define IEnumNetCfgBindingPath_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
+#define IEnumNetCfgBindingPath_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
+#define IEnumNetCfgBindingPath_Reset(This) (This)->lpVtbl->Reset(This)
+#define IEnumNetCfgBindingPath_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IEnumNetCfgBindingPath_QueryInterface(IEnumNetCfgBindingPath* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IEnumNetCfgBindingPath_AddRef(IEnumNetCfgBindingPath* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IEnumNetCfgBindingPath_Release(IEnumNetCfgBindingPath* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IEnumNetCfgBindingPath methods ***/
+static FORCEINLINE HRESULT IEnumNetCfgBindingPath_Next(IEnumNetCfgBindingPath* This,ULONG celt,INetCfgBindingPath **rgelt,ULONG *pceltFetched) {
+    return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
+}
+static FORCEINLINE HRESULT IEnumNetCfgBindingPath_Skip(IEnumNetCfgBindingPath* This,ULONG celt) {
+    return This->lpVtbl->Skip(This,celt);
+}
+static FORCEINLINE HRESULT IEnumNetCfgBindingPath_Reset(IEnumNetCfgBindingPath* This) {
+    return This->lpVtbl->Reset(This);
+}
+static FORCEINLINE HRESULT IEnumNetCfgBindingPath_Clone(IEnumNetCfgBindingPath* This,IEnumNetCfgBindingPath **ppenum) {
+    return This->lpVtbl->Clone(This,ppenum);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IEnumNetCfgBindingPath_INTERFACE_DEFINED__ */
+
+
+/*****************************************************************************
+ * IEnumNetCfgComponent interface
+ */
+#ifndef __IEnumNetCfgComponent_INTERFACE_DEFINED__
+#define __IEnumNetCfgComponent_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IEnumNetCfgComponent, 0xc0e8ae92, 0x306e, 0x11d1, 0xaa,0xcf, 0x00,0x80,0x5f,0xc1,0x27,0x0e);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("c0e8ae92-306e-11d1-aacf-00805fc1270e")
+IEnumNetCfgComponent : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE Next(
+        ULONG celt,
+        INetCfgComponent **rgelt,
+        ULONG *pceltFetched) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Skip(
+        ULONG celt) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Reset(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Clone(
+        IEnumNetCfgComponent **ppenum) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IEnumNetCfgComponent, 0xc0e8ae92, 0x306e, 0x11d1, 0xaa,0xcf, 0x00,0x80,0x5f,0xc1,0x27,0x0e)
+#endif
+#else
+typedef struct IEnumNetCfgComponentVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IEnumNetCfgComponent *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IEnumNetCfgComponent *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IEnumNetCfgComponent *This);
+
+    /*** IEnumNetCfgComponent methods ***/
+    HRESULT (STDMETHODCALLTYPE *Next)(
+        IEnumNetCfgComponent *This,
+        ULONG celt,
+        INetCfgComponent **rgelt,
+        ULONG *pceltFetched);
+
+    HRESULT (STDMETHODCALLTYPE *Skip)(
+        IEnumNetCfgComponent *This,
+        ULONG celt);
+
+    HRESULT (STDMETHODCALLTYPE *Reset)(
+        IEnumNetCfgComponent *This);
+
+    HRESULT (STDMETHODCALLTYPE *Clone)(
+        IEnumNetCfgComponent *This,
+        IEnumNetCfgComponent **ppenum);
+
+    END_INTERFACE
+} IEnumNetCfgComponentVtbl;
+
+interface IEnumNetCfgComponent {
+    CONST_VTBL IEnumNetCfgComponentVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IEnumNetCfgComponent_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IEnumNetCfgComponent_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IEnumNetCfgComponent_Release(This) (This)->lpVtbl->Release(This)
+/*** IEnumNetCfgComponent methods ***/
+#define IEnumNetCfgComponent_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
+#define IEnumNetCfgComponent_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
+#define IEnumNetCfgComponent_Reset(This) (This)->lpVtbl->Reset(This)
+#define IEnumNetCfgComponent_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IEnumNetCfgComponent_QueryInterface(IEnumNetCfgComponent* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IEnumNetCfgComponent_AddRef(IEnumNetCfgComponent* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IEnumNetCfgComponent_Release(IEnumNetCfgComponent* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IEnumNetCfgComponent methods ***/
+static FORCEINLINE HRESULT IEnumNetCfgComponent_Next(IEnumNetCfgComponent* This,ULONG celt,INetCfgComponent **rgelt,ULONG *pceltFetched) {
+    return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
+}
+static FORCEINLINE HRESULT IEnumNetCfgComponent_Skip(IEnumNetCfgComponent* This,ULONG celt) {
+    return This->lpVtbl->Skip(This,celt);
+}
+static FORCEINLINE HRESULT IEnumNetCfgComponent_Reset(IEnumNetCfgComponent* This) {
+    return This->lpVtbl->Reset(This);
+}
+static FORCEINLINE HRESULT IEnumNetCfgComponent_Clone(IEnumNetCfgComponent* This,IEnumNetCfgComponent **ppenum) {
+    return This->lpVtbl->Clone(This,ppenum);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IEnumNetCfgComponent_INTERFACE_DEFINED__ */
+
+
+/*****************************************************************************
+ * INetCfg interface
+ */
+#ifndef __INetCfg_INTERFACE_DEFINED__
+#define __INetCfg_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_INetCfg, 0xc0e8ae93, 0x306e, 0x11d1, 0xaa,0xcf, 0x00,0x80,0x5f,0xc1,0x27,0x0e);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("c0e8ae93-306e-11d1-aacf-00805fc1270e")
+INetCfg : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE Initialize(
+        PVOID pvReserved) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Uninitialize(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Apply(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Cancel(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE EnumComponents(
+        const GUID *pguidClass,
+        IEnumNetCfgComponent **ppenumComponent) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE FindComponent(
+        LPCWSTR pszwInfId,
+        INetCfgComponent **pComponent) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE QueryNetCfgClass(
+        const GUID *pguidClass,
+        REFIID riid,
+        void **ppvObject) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(INetCfg, 0xc0e8ae93, 0x306e, 0x11d1, 0xaa,0xcf, 0x00,0x80,0x5f,0xc1,0x27,0x0e)
+#endif
+#else
+typedef struct INetCfgVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        INetCfg *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        INetCfg *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        INetCfg *This);
+
+    /*** INetCfg methods ***/
+    HRESULT (STDMETHODCALLTYPE *Initialize)(
+        INetCfg *This,
+        PVOID pvReserved);
+
+    HRESULT (STDMETHODCALLTYPE *Uninitialize)(
+        INetCfg *This);
+
+    HRESULT (STDMETHODCALLTYPE *Apply)(
+        INetCfg *This);
+
+    HRESULT (STDMETHODCALLTYPE *Cancel)(
+        INetCfg *This);
+
+    HRESULT (STDMETHODCALLTYPE *EnumComponents)(
+        INetCfg *This,
+        const GUID *pguidClass,
+        IEnumNetCfgComponent **ppenumComponent);
+
+    HRESULT (STDMETHODCALLTYPE *FindComponent)(
+        INetCfg *This,
+        LPCWSTR pszwInfId,
+        INetCfgComponent **pComponent);
+
+    HRESULT (STDMETHODCALLTYPE *QueryNetCfgClass)(
+        INetCfg *This,
+        const GUID *pguidClass,
+        REFIID riid,
+        void **ppvObject);
+
+    END_INTERFACE
+} INetCfgVtbl;
+
+interface INetCfg {
+    CONST_VTBL INetCfgVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define INetCfg_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define INetCfg_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define INetCfg_Release(This) (This)->lpVtbl->Release(This)
+/*** INetCfg methods ***/
+#define INetCfg_Initialize(This,pvReserved) (This)->lpVtbl->Initialize(This,pvReserved)
+#define INetCfg_Uninitialize(This) (This)->lpVtbl->Uninitialize(This)
+#define INetCfg_Apply(This) (This)->lpVtbl->Apply(This)
+#define INetCfg_Cancel(This) (This)->lpVtbl->Cancel(This)
+#define INetCfg_EnumComponents(This,pguidClass,ppenumComponent) (This)->lpVtbl->EnumComponents(This,pguidClass,ppenumComponent)
+#define INetCfg_FindComponent(This,pszwInfId,pComponent) (This)->lpVtbl->FindComponent(This,pszwInfId,pComponent)
+#define INetCfg_QueryNetCfgClass(This,pguidClass,riid,ppvObject) (This)->lpVtbl->QueryNetCfgClass(This,pguidClass,riid,ppvObject)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT INetCfg_QueryInterface(INetCfg* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG INetCfg_AddRef(INetCfg* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG INetCfg_Release(INetCfg* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** INetCfg methods ***/
+static FORCEINLINE HRESULT INetCfg_Initialize(INetCfg* This,PVOID pvReserved) {
+    return This->lpVtbl->Initialize(This,pvReserved);
+}
+static FORCEINLINE HRESULT INetCfg_Uninitialize(INetCfg* This) {
+    return This->lpVtbl->Uninitialize(This);
+}
+static FORCEINLINE HRESULT INetCfg_Apply(INetCfg* This) {
+    return This->lpVtbl->Apply(This);
+}
+static FORCEINLINE HRESULT INetCfg_Cancel(INetCfg* This) {
+    return This->lpVtbl->Cancel(This);
+}
+static FORCEINLINE HRESULT INetCfg_EnumComponents(INetCfg* This,const GUID *pguidClass,IEnumNetCfgComponent **ppenumComponent) {
+    return This->lpVtbl->EnumComponents(This,pguidClass,ppenumComponent);
+}
+static FORCEINLINE HRESULT INetCfg_FindComponent(INetCfg* This,LPCWSTR pszwInfId,INetCfgComponent **pComponent) {
+    return This->lpVtbl->FindComponent(This,pszwInfId,pComponent);
+}
+static FORCEINLINE HRESULT INetCfg_QueryNetCfgClass(INetCfg* This,const GUID *pguidClass,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryNetCfgClass(This,pguidClass,riid,ppvObject);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __INetCfg_INTERFACE_DEFINED__ */
+
+
+/*****************************************************************************
+ * CNetCfg coclass
+ */
+
+DEFINE_GUID(CLSID_CNetCfg, 0x5b035261, 0x40f9, 0x11d1, 0xaa,0xec, 0x00,0x80,0x5f,0xc1,0x27,0x0e);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("5b035261-40f9-11d1-aaec-00805fc1270e") CNetCfg;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(CNetCfg, 0x5b035261, 0x40f9, 0x11d1, 0xaa,0xec, 0x00,0x80,0x5f,0xc1,0x27,0x0e)
+#endif
+#endif
+
+
+/*****************************************************************************
+ * INetCfgLock interface
+ */
+#ifndef __INetCfgLock_INTERFACE_DEFINED__
+#define __INetCfgLock_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_INetCfgLock, 0xc0e8ae9f, 0x306e, 0x11d1, 0xaa,0xcf, 0x00,0x80,0x5f,0xc1,0x27,0x0e);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("c0e8ae9f-306e-11d1-aacf-00805fc1270e")
+INetCfgLock : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE AcquireWriteLock(
+        DWORD cmsTimeout,
+        LPCWSTR pszwClientDescription,
+        LPWSTR *ppszwClientDescription) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE ReleaseWriteLock(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE IsWriteLocked(
+        LPWSTR *ppszwClientDescription) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(INetCfgLock, 0xc0e8ae9f, 0x306e, 0x11d1, 0xaa,0xcf, 0x00,0x80,0x5f,0xc1,0x27,0x0e)
+#endif
+#else
+typedef struct INetCfgLockVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        INetCfgLock *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        INetCfgLock *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        INetCfgLock *This);
+
+    /*** INetCfgLock methods ***/
+    HRESULT (STDMETHODCALLTYPE *AcquireWriteLock)(
+        INetCfgLock *This,
+        DWORD cmsTimeout,
+        LPCWSTR pszwClientDescription,
+        LPWSTR *ppszwClientDescription);
+
+    HRESULT (STDMETHODCALLTYPE *ReleaseWriteLock)(
+        INetCfgLock *This);
+
+    HRESULT (STDMETHODCALLTYPE *IsWriteLocked)(
+        INetCfgLock *This,
+        LPWSTR *ppszwClientDescription);
+
+    END_INTERFACE
+} INetCfgLockVtbl;
+
+interface INetCfgLock {
+    CONST_VTBL INetCfgLockVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define INetCfgLock_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define INetCfgLock_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define INetCfgLock_Release(This) (This)->lpVtbl->Release(This)
+/*** INetCfgLock methods ***/
+#define INetCfgLock_AcquireWriteLock(This,cmsTimeout,pszwClientDescription,ppszwClientDescription) (This)->lpVtbl->AcquireWriteLock(This,cmsTimeout,pszwClientDescription,ppszwClientDescription)
+#define INetCfgLock_ReleaseWriteLock(This) (This)->lpVtbl->ReleaseWriteLock(This)
+#define INetCfgLock_IsWriteLocked(This,ppszwClientDescription) (This)->lpVtbl->IsWriteLocked(This,ppszwClientDescription)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT INetCfgLock_QueryInterface(INetCfgLock* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG INetCfgLock_AddRef(INetCfgLock* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG INetCfgLock_Release(INetCfgLock* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** INetCfgLock methods ***/
+static FORCEINLINE HRESULT INetCfgLock_AcquireWriteLock(INetCfgLock* This,DWORD cmsTimeout,LPCWSTR pszwClientDescription,LPWSTR *ppszwClientDescription) {
+    return This->lpVtbl->AcquireWriteLock(This,cmsTimeout,pszwClientDescription,ppszwClientDescription);
+}
+static FORCEINLINE HRESULT INetCfgLock_ReleaseWriteLock(INetCfgLock* This) {
+    return This->lpVtbl->ReleaseWriteLock(This);
+}
+static FORCEINLINE HRESULT INetCfgLock_IsWriteLocked(INetCfgLock* This,LPWSTR *ppszwClientDescription) {
+    return This->lpVtbl->IsWriteLocked(This,ppszwClientDescription);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __INetCfgLock_INTERFACE_DEFINED__ */
+
+
+/*****************************************************************************
+ * INetCfgBindingInterface interface
+ */
+#ifndef __INetCfgBindingInterface_INTERFACE_DEFINED__
+#define __INetCfgBindingInterface_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_INetCfgBindingInterface, 0xc0e8ae94, 0x306e, 0x11d1, 0xaa,0xcf, 0x00,0x80,0x5f,0xc1,0x27,0x0e);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("c0e8ae94-306e-11d1-aacf-00805fc1270e")
+INetCfgBindingInterface : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE GetName(
+        LPWSTR *ppszwInterfaceName) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetUpperComponent(
+        INetCfgComponent **ppnccItem) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetLowerComponent(
+        INetCfgComponent **ppnccItem) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(INetCfgBindingInterface, 0xc0e8ae94, 0x306e, 0x11d1, 0xaa,0xcf, 0x00,0x80,0x5f,0xc1,0x27,0x0e)
+#endif
+#else
+typedef struct INetCfgBindingInterfaceVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        INetCfgBindingInterface *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        INetCfgBindingInterface *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        INetCfgBindingInterface *This);
+
+    /*** INetCfgBindingInterface methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetName)(
+        INetCfgBindingInterface *This,
+        LPWSTR *ppszwInterfaceName);
+
+    HRESULT (STDMETHODCALLTYPE *GetUpperComponent)(
+        INetCfgBindingInterface *This,
+        INetCfgComponent **ppnccItem);
+
+    HRESULT (STDMETHODCALLTYPE *GetLowerComponent)(
+        INetCfgBindingInterface *This,
+        INetCfgComponent **ppnccItem);
+
+    END_INTERFACE
+} INetCfgBindingInterfaceVtbl;
+
+interface INetCfgBindingInterface {
+    CONST_VTBL INetCfgBindingInterfaceVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define INetCfgBindingInterface_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define INetCfgBindingInterface_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define INetCfgBindingInterface_Release(This) (This)->lpVtbl->Release(This)
+/*** INetCfgBindingInterface methods ***/
+#define INetCfgBindingInterface_GetName(This,ppszwInterfaceName) (This)->lpVtbl->GetName(This,ppszwInterfaceName)
+#define INetCfgBindingInterface_GetUpperComponent(This,ppnccItem) (This)->lpVtbl->GetUpperComponent(This,ppnccItem)
+#define INetCfgBindingInterface_GetLowerComponent(This,ppnccItem) (This)->lpVtbl->GetLowerComponent(This,ppnccItem)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT INetCfgBindingInterface_QueryInterface(INetCfgBindingInterface* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG INetCfgBindingInterface_AddRef(INetCfgBindingInterface* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG INetCfgBindingInterface_Release(INetCfgBindingInterface* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** INetCfgBindingInterface methods ***/
+static FORCEINLINE HRESULT INetCfgBindingInterface_GetName(INetCfgBindingInterface* This,LPWSTR *ppszwInterfaceName) {
+    return This->lpVtbl->GetName(This,ppszwInterfaceName);
+}
+static FORCEINLINE HRESULT INetCfgBindingInterface_GetUpperComponent(INetCfgBindingInterface* This,INetCfgComponent **ppnccItem) {
+    return This->lpVtbl->GetUpperComponent(This,ppnccItem);
+}
+static FORCEINLINE HRESULT INetCfgBindingInterface_GetLowerComponent(INetCfgBindingInterface* This,INetCfgComponent **ppnccItem) {
+    return This->lpVtbl->GetLowerComponent(This,ppnccItem);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __INetCfgBindingInterface_INTERFACE_DEFINED__ */
+
+
+/*****************************************************************************
+ * INetCfgBindingPath interface
+ */
+#ifndef __INetCfgBindingPath_INTERFACE_DEFINED__
+#define __INetCfgBindingPath_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_INetCfgBindingPath, 0xc0e8ae96, 0x306e, 0x11d1, 0xaa,0xcf, 0x00,0x80,0x5f,0xc1,0x27,0x0e);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("c0e8ae96-306e-11d1-aacf-00805fc1270e")
+INetCfgBindingPath : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE IsSamePathAs(
+        INetCfgBindingPath *pPath) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE IsSubPathOf(
+        INetCfgBindingPath *pPath) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE IsEnabled(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Enable(
+        WINBOOL fEnable) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetPathToken(
+        LPWSTR *ppszwPathToken) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetOwner(
+        INetCfgComponent **ppComponent) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetDepth(
+        ULONG *pcInterfaces) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE EnumBindingInterfaces(
+        IEnumNetCfgBindingInterface **ppenumInterface) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(INetCfgBindingPath, 0xc0e8ae96, 0x306e, 0x11d1, 0xaa,0xcf, 0x00,0x80,0x5f,0xc1,0x27,0x0e)
+#endif
+#else
+typedef struct INetCfgBindingPathVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        INetCfgBindingPath *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        INetCfgBindingPath *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        INetCfgBindingPath *This);
+
+    /*** INetCfgBindingPath methods ***/
+    HRESULT (STDMETHODCALLTYPE *IsSamePathAs)(
+        INetCfgBindingPath *This,
+        INetCfgBindingPath *pPath);
+
+    HRESULT (STDMETHODCALLTYPE *IsSubPathOf)(
+        INetCfgBindingPath *This,
+        INetCfgBindingPath *pPath);
+
+    HRESULT (STDMETHODCALLTYPE *IsEnabled)(
+        INetCfgBindingPath *This);
+
+    HRESULT (STDMETHODCALLTYPE *Enable)(
+        INetCfgBindingPath *This,
+        WINBOOL fEnable);
+
+    HRESULT (STDMETHODCALLTYPE *GetPathToken)(
+        INetCfgBindingPath *This,
+        LPWSTR *ppszwPathToken);
+
+    HRESULT (STDMETHODCALLTYPE *GetOwner)(
+        INetCfgBindingPath *This,
+        INetCfgComponent **ppComponent);
+
+    HRESULT (STDMETHODCALLTYPE *GetDepth)(
+        INetCfgBindingPath *This,
+        ULONG *pcInterfaces);
+
+    HRESULT (STDMETHODCALLTYPE *EnumBindingInterfaces)(
+        INetCfgBindingPath *This,
+        IEnumNetCfgBindingInterface **ppenumInterface);
+
+    END_INTERFACE
+} INetCfgBindingPathVtbl;
+
+interface INetCfgBindingPath {
+    CONST_VTBL INetCfgBindingPathVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define INetCfgBindingPath_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define INetCfgBindingPath_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define INetCfgBindingPath_Release(This) (This)->lpVtbl->Release(This)
+/*** INetCfgBindingPath methods ***/
+#define INetCfgBindingPath_IsSamePathAs(This,pPath) (This)->lpVtbl->IsSamePathAs(This,pPath)
+#define INetCfgBindingPath_IsSubPathOf(This,pPath) (This)->lpVtbl->IsSubPathOf(This,pPath)
+#define INetCfgBindingPath_IsEnabled(This) (This)->lpVtbl->IsEnabled(This)
+#define INetCfgBindingPath_Enable(This,fEnable) (This)->lpVtbl->Enable(This,fEnable)
+#define INetCfgBindingPath_GetPathToken(This,ppszwPathToken) (This)->lpVtbl->GetPathToken(This,ppszwPathToken)
+#define INetCfgBindingPath_GetOwner(This,ppComponent) (This)->lpVtbl->GetOwner(This,ppComponent)
+#define INetCfgBindingPath_GetDepth(This,pcInterfaces) (This)->lpVtbl->GetDepth(This,pcInterfaces)
+#define INetCfgBindingPath_EnumBindingInterfaces(This,ppenumInterface) (This)->lpVtbl->EnumBindingInterfaces(This,ppenumInterface)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT INetCfgBindingPath_QueryInterface(INetCfgBindingPath* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG INetCfgBindingPath_AddRef(INetCfgBindingPath* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG INetCfgBindingPath_Release(INetCfgBindingPath* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** INetCfgBindingPath methods ***/
+static FORCEINLINE HRESULT INetCfgBindingPath_IsSamePathAs(INetCfgBindingPath* This,INetCfgBindingPath *pPath) {
+    return This->lpVtbl->IsSamePathAs(This,pPath);
+}
+static FORCEINLINE HRESULT INetCfgBindingPath_IsSubPathOf(INetCfgBindingPath* This,INetCfgBindingPath *pPath) {
+    return This->lpVtbl->IsSubPathOf(This,pPath);
+}
+static FORCEINLINE HRESULT INetCfgBindingPath_IsEnabled(INetCfgBindingPath* This) {
+    return This->lpVtbl->IsEnabled(This);
+}
+static FORCEINLINE HRESULT INetCfgBindingPath_Enable(INetCfgBindingPath* This,WINBOOL fEnable) {
+    return This->lpVtbl->Enable(This,fEnable);
+}
+static FORCEINLINE HRESULT INetCfgBindingPath_GetPathToken(INetCfgBindingPath* This,LPWSTR *ppszwPathToken) {
+    return This->lpVtbl->GetPathToken(This,ppszwPathToken);
+}
+static FORCEINLINE HRESULT INetCfgBindingPath_GetOwner(INetCfgBindingPath* This,INetCfgComponent **ppComponent) {
+    return This->lpVtbl->GetOwner(This,ppComponent);
+}
+static FORCEINLINE HRESULT INetCfgBindingPath_GetDepth(INetCfgBindingPath* This,ULONG *pcInterfaces) {
+    return This->lpVtbl->GetDepth(This,pcInterfaces);
+}
+static FORCEINLINE HRESULT INetCfgBindingPath_EnumBindingInterfaces(INetCfgBindingPath* This,IEnumNetCfgBindingInterface **ppenumInterface) {
+    return This->lpVtbl->EnumBindingInterfaces(This,ppenumInterface);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __INetCfgBindingPath_INTERFACE_DEFINED__ */
+
+
+/*****************************************************************************
+ * INetCfgClass interface
+ */
+#ifndef __INetCfgClass_INTERFACE_DEFINED__
+#define __INetCfgClass_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_INetCfgClass, 0xc0e8ae97, 0x306e, 0x11d1, 0xaa,0xcf, 0x00,0x80,0x5f,0xc1,0x27,0x0e);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("c0e8ae97-306e-11d1-aacf-00805fc1270e")
+INetCfgClass : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE FindComponent(
+        LPCWSTR pszwInfId,
+        INetCfgComponent **ppnccItem) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE EnumComponents(
+        IEnumNetCfgComponent **ppenumComponent) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(INetCfgClass, 0xc0e8ae97, 0x306e, 0x11d1, 0xaa,0xcf, 0x00,0x80,0x5f,0xc1,0x27,0x0e)
+#endif
+#else
+typedef struct INetCfgClassVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        INetCfgClass *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        INetCfgClass *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        INetCfgClass *This);
+
+    /*** INetCfgClass methods ***/
+    HRESULT (STDMETHODCALLTYPE *FindComponent)(
+        INetCfgClass *This,
+        LPCWSTR pszwInfId,
+        INetCfgComponent **ppnccItem);
+
+    HRESULT (STDMETHODCALLTYPE *EnumComponents)(
+        INetCfgClass *This,
+        IEnumNetCfgComponent **ppenumComponent);
+
+    END_INTERFACE
+} INetCfgClassVtbl;
+
+interface INetCfgClass {
+    CONST_VTBL INetCfgClassVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define INetCfgClass_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define INetCfgClass_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define INetCfgClass_Release(This) (This)->lpVtbl->Release(This)
+/*** INetCfgClass methods ***/
+#define INetCfgClass_FindComponent(This,pszwInfId,ppnccItem) (This)->lpVtbl->FindComponent(This,pszwInfId,ppnccItem)
+#define INetCfgClass_EnumComponents(This,ppenumComponent) (This)->lpVtbl->EnumComponents(This,ppenumComponent)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT INetCfgClass_QueryInterface(INetCfgClass* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG INetCfgClass_AddRef(INetCfgClass* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG INetCfgClass_Release(INetCfgClass* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** INetCfgClass methods ***/
+static FORCEINLINE HRESULT INetCfgClass_FindComponent(INetCfgClass* This,LPCWSTR pszwInfId,INetCfgComponent **ppnccItem) {
+    return This->lpVtbl->FindComponent(This,pszwInfId,ppnccItem);
+}
+static FORCEINLINE HRESULT INetCfgClass_EnumComponents(INetCfgClass* This,IEnumNetCfgComponent **ppenumComponent) {
+    return This->lpVtbl->EnumComponents(This,ppenumComponent);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __INetCfgClass_INTERFACE_DEFINED__ */
+
+
+/*****************************************************************************
+ * INetCfgClassSetup interface
+ */
+#ifndef __INetCfgClassSetup_INTERFACE_DEFINED__
+#define __INetCfgClassSetup_INTERFACE_DEFINED__
+
+typedef enum tagOBO_TOKEN_TYPE {
+    OBO_USER = 1,
+    OBO_COMPONENT = 2,
+    OBO_SOFTWARE = 3
+} OBO_TOKEN_TYPE;
+typedef struct tagOBO_TOKEN {
+    OBO_TOKEN_TYPE Type;
+    INetCfgComponent *pncc;
+    LPCWSTR pszwManufacturer;
+    LPCWSTR pszwProduct;
+    LPCWSTR pszwDisplayName;
+    WINBOOL fRegistered;
+} OBO_TOKEN;
+DEFINE_GUID(IID_INetCfgClassSetup, 0xc0e8ae9d, 0x306e, 0x11d1, 0xaa,0xcf, 0x00,0x80,0x5f,0xc1,0x27,0x0e);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("c0e8ae9d-306e-11d1-aacf-00805fc1270e")
+INetCfgClassSetup : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE SelectAndInstall(
+        HWND hwndParent,
+        OBO_TOKEN *pOboToken,
+        INetCfgComponent **ppnccItem) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Install(
+        LPCWSTR pszwInfId,
+        OBO_TOKEN *pOboToken,
+        DWORD dwSetupFlags,
+        DWORD dwUpgradeFromBuildNo,
+        LPCWSTR pszwAnswerFile,
+        LPCWSTR pszwAnswerSections,
+        INetCfgComponent **ppnccItem) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE DeInstall(
+        INetCfgComponent *pComponent,
+        OBO_TOKEN *pOboToken,
+        LPWSTR *pmszwRefs) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(INetCfgClassSetup, 0xc0e8ae9d, 0x306e, 0x11d1, 0xaa,0xcf, 0x00,0x80,0x5f,0xc1,0x27,0x0e)
+#endif
+#else
+typedef struct INetCfgClassSetupVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        INetCfgClassSetup *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        INetCfgClassSetup *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        INetCfgClassSetup *This);
+
+    /*** INetCfgClassSetup methods ***/
+    HRESULT (STDMETHODCALLTYPE *SelectAndInstall)(
+        INetCfgClassSetup *This,
+        HWND hwndParent,
+        OBO_TOKEN *pOboToken,
+        INetCfgComponent **ppnccItem);
+
+    HRESULT (STDMETHODCALLTYPE *Install)(
+        INetCfgClassSetup *This,
+        LPCWSTR pszwInfId,
+        OBO_TOKEN *pOboToken,
+        DWORD dwSetupFlags,
+        DWORD dwUpgradeFromBuildNo,
+        LPCWSTR pszwAnswerFile,
+        LPCWSTR pszwAnswerSections,
+        INetCfgComponent **ppnccItem);
+
+    HRESULT (STDMETHODCALLTYPE *DeInstall)(
+        INetCfgClassSetup *This,
+        INetCfgComponent *pComponent,
+        OBO_TOKEN *pOboToken,
+        LPWSTR *pmszwRefs);
+
+    END_INTERFACE
+} INetCfgClassSetupVtbl;
+
+interface INetCfgClassSetup {
+    CONST_VTBL INetCfgClassSetupVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define INetCfgClassSetup_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define INetCfgClassSetup_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define INetCfgClassSetup_Release(This) (This)->lpVtbl->Release(This)
+/*** INetCfgClassSetup methods ***/
+#define INetCfgClassSetup_SelectAndInstall(This,hwndParent,pOboToken,ppnccItem) (This)->lpVtbl->SelectAndInstall(This,hwndParent,pOboToken,ppnccItem)
+#define INetCfgClassSetup_Install(This,pszwInfId,pOboToken,dwSetupFlags,dwUpgradeFromBuildNo,pszwAnswerFile,pszwAnswerSections,ppnccItem) (This)->lpVtbl->Install(This,pszwInfId,pOboToken,dwSetupFlags,dwUpgradeFromBuildNo,pszwAnswerFile,pszwAnswerSections,ppnccItem)
+#define INetCfgClassSetup_DeInstall(This,pComponent,pOboToken,pmszwRefs) (This)->lpVtbl->DeInstall(This,pComponent,pOboToken,pmszwRefs)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT INetCfgClassSetup_QueryInterface(INetCfgClassSetup* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG INetCfgClassSetup_AddRef(INetCfgClassSetup* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG INetCfgClassSetup_Release(INetCfgClassSetup* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** INetCfgClassSetup methods ***/
+static FORCEINLINE HRESULT INetCfgClassSetup_SelectAndInstall(INetCfgClassSetup* This,HWND hwndParent,OBO_TOKEN *pOboToken,INetCfgComponent **ppnccItem) {
+    return This->lpVtbl->SelectAndInstall(This,hwndParent,pOboToken,ppnccItem);
+}
+static FORCEINLINE HRESULT INetCfgClassSetup_Install(INetCfgClassSetup* This,LPCWSTR pszwInfId,OBO_TOKEN *pOboToken,DWORD dwSetupFlags,DWORD dwUpgradeFromBuildNo,LPCWSTR pszwAnswerFile,LPCWSTR pszwAnswerSections,INetCfgComponent **ppnccItem) {
+    return This->lpVtbl->Install(This,pszwInfId,pOboToken,dwSetupFlags,dwUpgradeFromBuildNo,pszwAnswerFile,pszwAnswerSections,ppnccItem);
+}
+static FORCEINLINE HRESULT INetCfgClassSetup_DeInstall(INetCfgClassSetup* This,INetCfgComponent *pComponent,OBO_TOKEN *pOboToken,LPWSTR *pmszwRefs) {
+    return This->lpVtbl->DeInstall(This,pComponent,pOboToken,pmszwRefs);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __INetCfgClassSetup_INTERFACE_DEFINED__ */
+
+
+/*****************************************************************************
+ * INetCfgClassSetup2 interface
+ */
+#ifndef __INetCfgClassSetup2_INTERFACE_DEFINED__
+#define __INetCfgClassSetup2_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_INetCfgClassSetup2, 0xc0e8aea0, 0x306e, 0x11d1, 0xaa,0xcf, 0x00,0x80,0x5f,0xc1,0x27,0x0e);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("c0e8aea0-306e-11d1-aacf-00805fc1270e")
+INetCfgClassSetup2 : public INetCfgClassSetup
+{
+    virtual HRESULT STDMETHODCALLTYPE UpdateNonEnumeratedComponent(
+        INetCfgComponent *pIComp,
+        DWORD dwSetupFlags,
+        DWORD dwUpgradeFromBuildNo) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(INetCfgClassSetup2, 0xc0e8aea0, 0x306e, 0x11d1, 0xaa,0xcf, 0x00,0x80,0x5f,0xc1,0x27,0x0e)
+#endif
+#else
+typedef struct INetCfgClassSetup2Vtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        INetCfgClassSetup2 *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        INetCfgClassSetup2 *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        INetCfgClassSetup2 *This);
+
+    /*** INetCfgClassSetup methods ***/
+    HRESULT (STDMETHODCALLTYPE *SelectAndInstall)(
+        INetCfgClassSetup2 *This,
+        HWND hwndParent,
+        OBO_TOKEN *pOboToken,
+        INetCfgComponent **ppnccItem);
+
+    HRESULT (STDMETHODCALLTYPE *Install)(
+        INetCfgClassSetup2 *This,
+        LPCWSTR pszwInfId,
+        OBO_TOKEN *pOboToken,
+        DWORD dwSetupFlags,
+        DWORD dwUpgradeFromBuildNo,
+        LPCWSTR pszwAnswerFile,
+        LPCWSTR pszwAnswerSections,
+        INetCfgComponent **ppnccItem);
+
+    HRESULT (STDMETHODCALLTYPE *DeInstall)(
+        INetCfgClassSetup2 *This,
+        INetCfgComponent *pComponent,
+        OBO_TOKEN *pOboToken,
+        LPWSTR *pmszwRefs);
+
+    /*** INetCfgClassSetup2 methods ***/
+    HRESULT (STDMETHODCALLTYPE *UpdateNonEnumeratedComponent)(
+        INetCfgClassSetup2 *This,
+        INetCfgComponent *pIComp,
+        DWORD dwSetupFlags,
+        DWORD dwUpgradeFromBuildNo);
+
+    END_INTERFACE
+} INetCfgClassSetup2Vtbl;
+
+interface INetCfgClassSetup2 {
+    CONST_VTBL INetCfgClassSetup2Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define INetCfgClassSetup2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define INetCfgClassSetup2_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define INetCfgClassSetup2_Release(This) (This)->lpVtbl->Release(This)
+/*** INetCfgClassSetup methods ***/
+#define INetCfgClassSetup2_SelectAndInstall(This,hwndParent,pOboToken,ppnccItem) (This)->lpVtbl->SelectAndInstall(This,hwndParent,pOboToken,ppnccItem)
+#define INetCfgClassSetup2_Install(This,pszwInfId,pOboToken,dwSetupFlags,dwUpgradeFromBuildNo,pszwAnswerFile,pszwAnswerSections,ppnccItem) (This)->lpVtbl->Install(This,pszwInfId,pOboToken,dwSetupFlags,dwUpgradeFromBuildNo,pszwAnswerFile,pszwAnswerSections,ppnccItem)
+#define INetCfgClassSetup2_DeInstall(This,pComponent,pOboToken,pmszwRefs) (This)->lpVtbl->DeInstall(This,pComponent,pOboToken,pmszwRefs)
+/*** INetCfgClassSetup2 methods ***/
+#define INetCfgClassSetup2_UpdateNonEnumeratedComponent(This,pIComp,dwSetupFlags,dwUpgradeFromBuildNo) (This)->lpVtbl->UpdateNonEnumeratedComponent(This,pIComp,dwSetupFlags,dwUpgradeFromBuildNo)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT INetCfgClassSetup2_QueryInterface(INetCfgClassSetup2* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG INetCfgClassSetup2_AddRef(INetCfgClassSetup2* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG INetCfgClassSetup2_Release(INetCfgClassSetup2* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** INetCfgClassSetup methods ***/
+static FORCEINLINE HRESULT INetCfgClassSetup2_SelectAndInstall(INetCfgClassSetup2* This,HWND hwndParent,OBO_TOKEN *pOboToken,INetCfgComponent **ppnccItem) {
+    return This->lpVtbl->SelectAndInstall(This,hwndParent,pOboToken,ppnccItem);
+}
+static FORCEINLINE HRESULT INetCfgClassSetup2_Install(INetCfgClassSetup2* This,LPCWSTR pszwInfId,OBO_TOKEN *pOboToken,DWORD dwSetupFlags,DWORD dwUpgradeFromBuildNo,LPCWSTR pszwAnswerFile,LPCWSTR pszwAnswerSections,INetCfgComponent **ppnccItem) {
+    return This->lpVtbl->Install(This,pszwInfId,pOboToken,dwSetupFlags,dwUpgradeFromBuildNo,pszwAnswerFile,pszwAnswerSections,ppnccItem);
+}
+static FORCEINLINE HRESULT INetCfgClassSetup2_DeInstall(INetCfgClassSetup2* This,INetCfgComponent *pComponent,OBO_TOKEN *pOboToken,LPWSTR *pmszwRefs) {
+    return This->lpVtbl->DeInstall(This,pComponent,pOboToken,pmszwRefs);
+}
+/*** INetCfgClassSetup2 methods ***/
+static FORCEINLINE HRESULT INetCfgClassSetup2_UpdateNonEnumeratedComponent(INetCfgClassSetup2* This,INetCfgComponent *pIComp,DWORD dwSetupFlags,DWORD dwUpgradeFromBuildNo) {
+    return This->lpVtbl->UpdateNonEnumeratedComponent(This,pIComp,dwSetupFlags,dwUpgradeFromBuildNo);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __INetCfgClassSetup2_INTERFACE_DEFINED__ */
+
+
+/*****************************************************************************
+ * INetCfgComponent interface
+ */
+#ifndef __INetCfgComponent_INTERFACE_DEFINED__
+#define __INetCfgComponent_INTERFACE_DEFINED__
+
+typedef enum tagCOMPONENT_CHARACTERISTICS {
+    NCF_VIRTUAL = 0x1,
+    NCF_SOFTWARE_ENUMERATED = 0x2,
+    NCF_PHYSICAL = 0x4,
+    NCF_HIDDEN = 0x8,
+    NCF_NO_SERVICE = 0x10,
+    NCF_NOT_USER_REMOVABLE = 0x20,
+    NCF_MULTIPORT_INSTANCED_ADAPTER = 0x40,
+    NCF_HAS_UI = 0x80,
+    NCF_SINGLE_INSTANCE = 0x100,
+    NCF_FILTER = 0x400,
+    NCF_DONTEXPOSELOWER = 0x1000,
+    NCF_HIDE_BINDING = 0x2000,
+    NCF_NDIS_PROTOCOL = 0x4000,
+    NCF_FIXED_BINDING = 0x20000,
+    NCF_LW_FILTER = 0x40000
+} COMPONENT_CHARACTERISTICS;
+typedef enum tagNCRP_FLAGS {
+    NCRP_QUERY_PROPERTY_UI = 0x1,
+    NCRP_SHOW_PROPERTY_UI = 0x2
+} NCRP_FLAGS;
+DEFINE_GUID(IID_INetCfgComponent, 0xc0e8ae99, 0x306e, 0x11d1, 0xaa,0xcf, 0x00,0x80,0x5f,0xc1,0x27,0x0e);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("c0e8ae99-306e-11d1-aacf-00805fc1270e")
+INetCfgComponent : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE GetDisplayName(
+        LPWSTR *ppszwDisplayName) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetDisplayName(
+        LPCWSTR pszwDisplayName) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetHelpText(
+        LPWSTR *pszwHelpText) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetId(
+        LPWSTR *ppszwId) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetCharacteristics(
+        LPDWORD pdwCharacteristics) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetInstanceGuid(
+        GUID *pGuid) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetPnpDevNodeId(
+        LPWSTR *ppszwDevNodeId) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetClassGuid(
+        GUID *pGuid) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetBindName(
+        LPWSTR *ppszwBindName) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetDeviceStatus(
+        ULONG *pulStatus) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE OpenParamKey(
+        HKEY *phkey) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE RaisePropertyUi(
+        HWND hwndParent,
+        DWORD dwFlags,
+        IUnknown *punkContext) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(INetCfgComponent, 0xc0e8ae99, 0x306e, 0x11d1, 0xaa,0xcf, 0x00,0x80,0x5f,0xc1,0x27,0x0e)
+#endif
+#else
+typedef struct INetCfgComponentVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        INetCfgComponent *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        INetCfgComponent *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        INetCfgComponent *This);
+
+    /*** INetCfgComponent methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetDisplayName)(
+        INetCfgComponent *This,
+        LPWSTR *ppszwDisplayName);
+
+    HRESULT (STDMETHODCALLTYPE *SetDisplayName)(
+        INetCfgComponent *This,
+        LPCWSTR pszwDisplayName);
+
+    HRESULT (STDMETHODCALLTYPE *GetHelpText)(
+        INetCfgComponent *This,
+        LPWSTR *pszwHelpText);
+
+    HRESULT (STDMETHODCALLTYPE *GetId)(
+        INetCfgComponent *This,
+        LPWSTR *ppszwId);
+
+    HRESULT (STDMETHODCALLTYPE *GetCharacteristics)(
+        INetCfgComponent *This,
+        LPDWORD pdwCharacteristics);
+
+    HRESULT (STDMETHODCALLTYPE *GetInstanceGuid)(
+        INetCfgComponent *This,
+        GUID *pGuid);
+
+    HRESULT (STDMETHODCALLTYPE *GetPnpDevNodeId)(
+        INetCfgComponent *This,
+        LPWSTR *ppszwDevNodeId);
+
+    HRESULT (STDMETHODCALLTYPE *GetClassGuid)(
+        INetCfgComponent *This,
+        GUID *pGuid);
+
+    HRESULT (STDMETHODCALLTYPE *GetBindName)(
+        INetCfgComponent *This,
+        LPWSTR *ppszwBindName);
+
+    HRESULT (STDMETHODCALLTYPE *GetDeviceStatus)(
+        INetCfgComponent *This,
+        ULONG *pulStatus);
+
+    HRESULT (STDMETHODCALLTYPE *OpenParamKey)(
+        INetCfgComponent *This,
+        HKEY *phkey);
+
+    HRESULT (STDMETHODCALLTYPE *RaisePropertyUi)(
+        INetCfgComponent *This,
+        HWND hwndParent,
+        DWORD dwFlags,
+        IUnknown *punkContext);
+
+    END_INTERFACE
+} INetCfgComponentVtbl;
+
+interface INetCfgComponent {
+    CONST_VTBL INetCfgComponentVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define INetCfgComponent_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define INetCfgComponent_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define INetCfgComponent_Release(This) (This)->lpVtbl->Release(This)
+/*** INetCfgComponent methods ***/
+#define INetCfgComponent_GetDisplayName(This,ppszwDisplayName) (This)->lpVtbl->GetDisplayName(This,ppszwDisplayName)
+#define INetCfgComponent_SetDisplayName(This,pszwDisplayName) (This)->lpVtbl->SetDisplayName(This,pszwDisplayName)
+#define INetCfgComponent_GetHelpText(This,pszwHelpText) (This)->lpVtbl->GetHelpText(This,pszwHelpText)
+#define INetCfgComponent_GetId(This,ppszwId) (This)->lpVtbl->GetId(This,ppszwId)
+#define INetCfgComponent_GetCharacteristics(This,pdwCharacteristics) (This)->lpVtbl->GetCharacteristics(This,pdwCharacteristics)
+#define INetCfgComponent_GetInstanceGuid(This,pGuid) (This)->lpVtbl->GetInstanceGuid(This,pGuid)
+#define INetCfgComponent_GetPnpDevNodeId(This,ppszwDevNodeId) (This)->lpVtbl->GetPnpDevNodeId(This,ppszwDevNodeId)
+#define INetCfgComponent_GetClassGuid(This,pGuid) (This)->lpVtbl->GetClassGuid(This,pGuid)
+#define INetCfgComponent_GetBindName(This,ppszwBindName) (This)->lpVtbl->GetBindName(This,ppszwBindName)
+#define INetCfgComponent_GetDeviceStatus(This,pulStatus) (This)->lpVtbl->GetDeviceStatus(This,pulStatus)
+#define INetCfgComponent_OpenParamKey(This,phkey) (This)->lpVtbl->OpenParamKey(This,phkey)
+#define INetCfgComponent_RaisePropertyUi(This,hwndParent,dwFlags,punkContext) (This)->lpVtbl->RaisePropertyUi(This,hwndParent,dwFlags,punkContext)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT INetCfgComponent_QueryInterface(INetCfgComponent* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG INetCfgComponent_AddRef(INetCfgComponent* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG INetCfgComponent_Release(INetCfgComponent* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** INetCfgComponent methods ***/
+static FORCEINLINE HRESULT INetCfgComponent_GetDisplayName(INetCfgComponent* This,LPWSTR *ppszwDisplayName) {
+    return This->lpVtbl->GetDisplayName(This,ppszwDisplayName);
+}
+static FORCEINLINE HRESULT INetCfgComponent_SetDisplayName(INetCfgComponent* This,LPCWSTR pszwDisplayName) {
+    return This->lpVtbl->SetDisplayName(This,pszwDisplayName);
+}
+static FORCEINLINE HRESULT INetCfgComponent_GetHelpText(INetCfgComponent* This,LPWSTR *pszwHelpText) {
+    return This->lpVtbl->GetHelpText(This,pszwHelpText);
+}
+static FORCEINLINE HRESULT INetCfgComponent_GetId(INetCfgComponent* This,LPWSTR *ppszwId) {
+    return This->lpVtbl->GetId(This,ppszwId);
+}
+static FORCEINLINE HRESULT INetCfgComponent_GetCharacteristics(INetCfgComponent* This,LPDWORD pdwCharacteristics) {
+    return This->lpVtbl->GetCharacteristics(This,pdwCharacteristics);
+}
+static FORCEINLINE HRESULT INetCfgComponent_GetInstanceGuid(INetCfgComponent* This,GUID *pGuid) {
+    return This->lpVtbl->GetInstanceGuid(This,pGuid);
+}
+static FORCEINLINE HRESULT INetCfgComponent_GetPnpDevNodeId(INetCfgComponent* This,LPWSTR *ppszwDevNodeId) {
+    return This->lpVtbl->GetPnpDevNodeId(This,ppszwDevNodeId);
+}
+static FORCEINLINE HRESULT INetCfgComponent_GetClassGuid(INetCfgComponent* This,GUID *pGuid) {
+    return This->lpVtbl->GetClassGuid(This,pGuid);
+}
+static FORCEINLINE HRESULT INetCfgComponent_GetBindName(INetCfgComponent* This,LPWSTR *ppszwBindName) {
+    return This->lpVtbl->GetBindName(This,ppszwBindName);
+}
+static FORCEINLINE HRESULT INetCfgComponent_GetDeviceStatus(INetCfgComponent* This,ULONG *pulStatus) {
+    return This->lpVtbl->GetDeviceStatus(This,pulStatus);
+}
+static FORCEINLINE HRESULT INetCfgComponent_OpenParamKey(INetCfgComponent* This,HKEY *phkey) {
+    return This->lpVtbl->OpenParamKey(This,phkey);
+}
+static FORCEINLINE HRESULT INetCfgComponent_RaisePropertyUi(INetCfgComponent* This,HWND hwndParent,DWORD dwFlags,IUnknown *punkContext) {
+    return This->lpVtbl->RaisePropertyUi(This,hwndParent,dwFlags,punkContext);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __INetCfgComponent_INTERFACE_DEFINED__ */
+
+
+/*****************************************************************************
+ * INetCfgComponentBindings interface
+ */
+#ifndef __INetCfgComponentBindings_INTERFACE_DEFINED__
+#define __INetCfgComponentBindings_INTERFACE_DEFINED__
+
+typedef enum tagSUPPORTS_BINDING_INTERFACE_FLAGS {
+    NCF_LOWER = 0x1,
+    NCF_UPPER = 0x2
+} SUPPORTS_BINDING_INTERFACE_FLAGS;
+typedef enum tagENUM_BINDING_PATHS_FLAGS {
+    EBP_ABOVE = 0x1,
+    EBP_BELOW = 0x2
+} ENUM_BINDING_PATHS_FLAGS;
+DEFINE_GUID(IID_INetCfgComponentBindings, 0xc0e8ae9e, 0x306e, 0x11d1, 0xaa,0xcf, 0x00,0x80,0x5f,0xc1,0x27,0x0e);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("c0e8ae9e-306e-11d1-aacf-00805fc1270e")
+INetCfgComponentBindings : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE BindTo(
+        INetCfgComponent *pnccItem) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE UnbindFrom(
+        INetCfgComponent *pnccItem) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SupportsBindingInterface(
+        DWORD dwFlags,
+        LPCWSTR pszwInterfaceName) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE IsBoundTo(
+        INetCfgComponent *pnccItem) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE IsBindableTo(
+        INetCfgComponent *pnccItem) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE EnumBindingPaths(
+        DWORD dwFlags,
+        IEnumNetCfgBindingPath **ppIEnum) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE MoveBefore(
+        INetCfgBindingPath *pncbItemSrc,
+        INetCfgBindingPath *pncbItemDest) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE MoveAfter(
+        INetCfgBindingPath *pncbItemSrc,
+        INetCfgBindingPath *pncbItemDest) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(INetCfgComponentBindings, 0xc0e8ae9e, 0x306e, 0x11d1, 0xaa,0xcf, 0x00,0x80,0x5f,0xc1,0x27,0x0e)
+#endif
+#else
+typedef struct INetCfgComponentBindingsVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        INetCfgComponentBindings *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        INetCfgComponentBindings *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        INetCfgComponentBindings *This);
+
+    /*** INetCfgComponentBindings methods ***/
+    HRESULT (STDMETHODCALLTYPE *BindTo)(
+        INetCfgComponentBindings *This,
+        INetCfgComponent *pnccItem);
+
+    HRESULT (STDMETHODCALLTYPE *UnbindFrom)(
+        INetCfgComponentBindings *This,
+        INetCfgComponent *pnccItem);
+
+    HRESULT (STDMETHODCALLTYPE *SupportsBindingInterface)(
+        INetCfgComponentBindings *This,
+        DWORD dwFlags,
+        LPCWSTR pszwInterfaceName);
+
+    HRESULT (STDMETHODCALLTYPE *IsBoundTo)(
+        INetCfgComponentBindings *This,
+        INetCfgComponent *pnccItem);
+
+    HRESULT (STDMETHODCALLTYPE *IsBindableTo)(
+        INetCfgComponentBindings *This,
+        INetCfgComponent *pnccItem);
+
+    HRESULT (STDMETHODCALLTYPE *EnumBindingPaths)(
+        INetCfgComponentBindings *This,
+        DWORD dwFlags,
+        IEnumNetCfgBindingPath **ppIEnum);
+
+    HRESULT (STDMETHODCALLTYPE *MoveBefore)(
+        INetCfgComponentBindings *This,
+        INetCfgBindingPath *pncbItemSrc,
+        INetCfgBindingPath *pncbItemDest);
+
+    HRESULT (STDMETHODCALLTYPE *MoveAfter)(
+        INetCfgComponentBindings *This,
+        INetCfgBindingPath *pncbItemSrc,
+        INetCfgBindingPath *pncbItemDest);
+
+    END_INTERFACE
+} INetCfgComponentBindingsVtbl;
+
+interface INetCfgComponentBindings {
+    CONST_VTBL INetCfgComponentBindingsVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define INetCfgComponentBindings_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define INetCfgComponentBindings_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define INetCfgComponentBindings_Release(This) (This)->lpVtbl->Release(This)
+/*** INetCfgComponentBindings methods ***/
+#define INetCfgComponentBindings_BindTo(This,pnccItem) (This)->lpVtbl->BindTo(This,pnccItem)
+#define INetCfgComponentBindings_UnbindFrom(This,pnccItem) (This)->lpVtbl->UnbindFrom(This,pnccItem)
+#define INetCfgComponentBindings_SupportsBindingInterface(This,dwFlags,pszwInterfaceName) (This)->lpVtbl->SupportsBindingInterface(This,dwFlags,pszwInterfaceName)
+#define INetCfgComponentBindings_IsBoundTo(This,pnccItem) (This)->lpVtbl->IsBoundTo(This,pnccItem)
+#define INetCfgComponentBindings_IsBindableTo(This,pnccItem) (This)->lpVtbl->IsBindableTo(This,pnccItem)
+#define INetCfgComponentBindings_EnumBindingPaths(This,dwFlags,ppIEnum) (This)->lpVtbl->EnumBindingPaths(This,dwFlags,ppIEnum)
+#define INetCfgComponentBindings_MoveBefore(This,pncbItemSrc,pncbItemDest) (This)->lpVtbl->MoveBefore(This,pncbItemSrc,pncbItemDest)
+#define INetCfgComponentBindings_MoveAfter(This,pncbItemSrc,pncbItemDest) (This)->lpVtbl->MoveAfter(This,pncbItemSrc,pncbItemDest)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT INetCfgComponentBindings_QueryInterface(INetCfgComponentBindings* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG INetCfgComponentBindings_AddRef(INetCfgComponentBindings* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG INetCfgComponentBindings_Release(INetCfgComponentBindings* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** INetCfgComponentBindings methods ***/
+static FORCEINLINE HRESULT INetCfgComponentBindings_BindTo(INetCfgComponentBindings* This,INetCfgComponent *pnccItem) {
+    return This->lpVtbl->BindTo(This,pnccItem);
+}
+static FORCEINLINE HRESULT INetCfgComponentBindings_UnbindFrom(INetCfgComponentBindings* This,INetCfgComponent *pnccItem) {
+    return This->lpVtbl->UnbindFrom(This,pnccItem);
+}
+static FORCEINLINE HRESULT INetCfgComponentBindings_SupportsBindingInterface(INetCfgComponentBindings* This,DWORD dwFlags,LPCWSTR pszwInterfaceName) {
+    return This->lpVtbl->SupportsBindingInterface(This,dwFlags,pszwInterfaceName);
+}
+static FORCEINLINE HRESULT INetCfgComponentBindings_IsBoundTo(INetCfgComponentBindings* This,INetCfgComponent *pnccItem) {
+    return This->lpVtbl->IsBoundTo(This,pnccItem);
+}
+static FORCEINLINE HRESULT INetCfgComponentBindings_IsBindableTo(INetCfgComponentBindings* This,INetCfgComponent *pnccItem) {
+    return This->lpVtbl->IsBindableTo(This,pnccItem);
+}
+static FORCEINLINE HRESULT INetCfgComponentBindings_EnumBindingPaths(INetCfgComponentBindings* This,DWORD dwFlags,IEnumNetCfgBindingPath **ppIEnum) {
+    return This->lpVtbl->EnumBindingPaths(This,dwFlags,ppIEnum);
+}
+static FORCEINLINE HRESULT INetCfgComponentBindings_MoveBefore(INetCfgComponentBindings* This,INetCfgBindingPath *pncbItemSrc,INetCfgBindingPath *pncbItemDest) {
+    return This->lpVtbl->MoveBefore(This,pncbItemSrc,pncbItemDest);
+}
+static FORCEINLINE HRESULT INetCfgComponentBindings_MoveAfter(INetCfgComponentBindings* This,INetCfgBindingPath *pncbItemSrc,INetCfgBindingPath *pncbItemDest) {
+    return This->lpVtbl->MoveAfter(This,pncbItemSrc,pncbItemDest);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __INetCfgComponentBindings_INTERFACE_DEFINED__ */
+
+
+/*****************************************************************************
+ * INetCfgSysPrep interface
+ */
+#ifndef __INetCfgSysPrep_INTERFACE_DEFINED__
+#define __INetCfgSysPrep_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_INetCfgSysPrep, 0xc0e8ae98, 0x306e, 0x11d1, 0xaa,0xcf, 0x00,0x80,0x5f,0xc1,0x27,0x0e);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("c0e8ae98-306e-11d1-aacf-00805fc1270e")
+INetCfgSysPrep : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE HrSetupSetFirstDword(
+        LPCWSTR pwszSection,
+        LPCWSTR pwszKey,
+        DWORD dwValue) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE HrSetupSetFirstString(
+        LPCWSTR pwszSection,
+        LPCWSTR pwszKey,
+        LPCWSTR pwszValue) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE HrSetupSetFirstStringAsBool(
+        LPCWSTR pwszSection,
+        LPCWSTR pwszKey,
+        WINBOOL fValue) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE HrSetupSetFirstMultiSzField(
+        LPCWSTR pwszSection,
+        LPCWSTR pwszKey,
+        LPCWSTR pmszValue) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(INetCfgSysPrep, 0xc0e8ae98, 0x306e, 0x11d1, 0xaa,0xcf, 0x00,0x80,0x5f,0xc1,0x27,0x0e)
+#endif
+#else
+typedef struct INetCfgSysPrepVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        INetCfgSysPrep *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        INetCfgSysPrep *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        INetCfgSysPrep *This);
+
+    /*** INetCfgSysPrep methods ***/
+    HRESULT (STDMETHODCALLTYPE *HrSetupSetFirstDword)(
+        INetCfgSysPrep *This,
+        LPCWSTR pwszSection,
+        LPCWSTR pwszKey,
+        DWORD dwValue);
+
+    HRESULT (STDMETHODCALLTYPE *HrSetupSetFirstString)(
+        INetCfgSysPrep *This,
+        LPCWSTR pwszSection,
+        LPCWSTR pwszKey,
+        LPCWSTR pwszValue);
+
+    HRESULT (STDMETHODCALLTYPE *HrSetupSetFirstStringAsBool)(
+        INetCfgSysPrep *This,
+        LPCWSTR pwszSection,
+        LPCWSTR pwszKey,
+        WINBOOL fValue);
+
+    HRESULT (STDMETHODCALLTYPE *HrSetupSetFirstMultiSzField)(
+        INetCfgSysPrep *This,
+        LPCWSTR pwszSection,
+        LPCWSTR pwszKey,
+        LPCWSTR pmszValue);
+
+    END_INTERFACE
+} INetCfgSysPrepVtbl;
+
+interface INetCfgSysPrep {
+    CONST_VTBL INetCfgSysPrepVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define INetCfgSysPrep_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define INetCfgSysPrep_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define INetCfgSysPrep_Release(This) (This)->lpVtbl->Release(This)
+/*** INetCfgSysPrep methods ***/
+#define INetCfgSysPrep_HrSetupSetFirstDword(This,pwszSection,pwszKey,dwValue) (This)->lpVtbl->HrSetupSetFirstDword(This,pwszSection,pwszKey,dwValue)
+#define INetCfgSysPrep_HrSetupSetFirstString(This,pwszSection,pwszKey,pwszValue) (This)->lpVtbl->HrSetupSetFirstString(This,pwszSection,pwszKey,pwszValue)
+#define INetCfgSysPrep_HrSetupSetFirstStringAsBool(This,pwszSection,pwszKey,fValue) (This)->lpVtbl->HrSetupSetFirstStringAsBool(This,pwszSection,pwszKey,fValue)
+#define INetCfgSysPrep_HrSetupSetFirstMultiSzField(This,pwszSection,pwszKey,pmszValue) (This)->lpVtbl->HrSetupSetFirstMultiSzField(This,pwszSection,pwszKey,pmszValue)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT INetCfgSysPrep_QueryInterface(INetCfgSysPrep* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG INetCfgSysPrep_AddRef(INetCfgSysPrep* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG INetCfgSysPrep_Release(INetCfgSysPrep* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** INetCfgSysPrep methods ***/
+static FORCEINLINE HRESULT INetCfgSysPrep_HrSetupSetFirstDword(INetCfgSysPrep* This,LPCWSTR pwszSection,LPCWSTR pwszKey,DWORD dwValue) {
+    return This->lpVtbl->HrSetupSetFirstDword(This,pwszSection,pwszKey,dwValue);
+}
+static FORCEINLINE HRESULT INetCfgSysPrep_HrSetupSetFirstString(INetCfgSysPrep* This,LPCWSTR pwszSection,LPCWSTR pwszKey,LPCWSTR pwszValue) {
+    return This->lpVtbl->HrSetupSetFirstString(This,pwszSection,pwszKey,pwszValue);
+}
+static FORCEINLINE HRESULT INetCfgSysPrep_HrSetupSetFirstStringAsBool(INetCfgSysPrep* This,LPCWSTR pwszSection,LPCWSTR pwszKey,WINBOOL fValue) {
+    return This->lpVtbl->HrSetupSetFirstStringAsBool(This,pwszSection,pwszKey,fValue);
+}
+static FORCEINLINE HRESULT INetCfgSysPrep_HrSetupSetFirstMultiSzField(INetCfgSysPrep* This,LPCWSTR pwszSection,LPCWSTR pwszKey,LPCWSTR pmszValue) {
+    return This->lpVtbl->HrSetupSetFirstMultiSzField(This,pwszSection,pwszKey,pmszValue);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __INetCfgSysPrep_INTERFACE_DEFINED__ */
+
+#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
+/* Begin additional prototypes for all interfaces */
+
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __netcfgx_h__ */