//+--------------------------------------------------------------------------- // // Microsoft Windows // Copyright (c) Microsoft Corporation. All rights reserved. // // File: netcfgx.idl // //---------------------------------------------------------------------------- cpp_quote("//+-------------------------------------------------------------------------") cpp_quote("//") cpp_quote("// Microsoft Windows") cpp_quote("// Copyright (c) Microsoft Corporation. All rights reserved.") cpp_quote("//") cpp_quote("//--------------------------------------------------------------------------") cpp_quote("#if ( _MSC_VER >= 800 )") cpp_quote("#pragma warning(disable:4201)") cpp_quote("#endif") #ifndef DO_NO_IMPORTS import "unknwn.idl"; import "wtypes.idl"; import "prsht.idl"; #endif cpp_quote("") cpp_quote("EXTERN_C const CLSID CLSID_CNetCfg;") cpp_quote("") cpp_quote("#define NETCFG_E_ALREADY_INITIALIZED MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0xA020)") cpp_quote("#define NETCFG_E_NOT_INITIALIZED MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0xA021)") cpp_quote("#define NETCFG_E_IN_USE MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0xA022)") cpp_quote("#define NETCFG_E_NO_WRITE_LOCK MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0xA024)") cpp_quote("#define NETCFG_E_NEED_REBOOT MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0xA025)") cpp_quote("#define NETCFG_E_ACTIVE_RAS_CONNECTIONS MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0xA026)") // THe network adapter does not exists in the system (Eisa and Mca) cpp_quote("#define NETCFG_E_ADAPTER_NOT_FOUND MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0xA027)") // The component was removed and cannot be added until the system is rebooted cpp_quote("#define NETCFG_E_COMPONENT_REMOVED_PENDING_REBOOT MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0xA028)") cpp_quote("#define NETCFG_S_REBOOT MAKE_HRESULT(SEVERITY_SUCCESS, FACILITY_ITF, 0xA020)") cpp_quote("#define NETCFG_S_DISABLE_QUERY MAKE_HRESULT(SEVERITY_SUCCESS, FACILITY_ITF, 0xA022)") cpp_quote("#define NETCFG_S_STILL_REFERENCED MAKE_HRESULT(SEVERITY_SUCCESS, FACILITY_ITF, 0xA023)") cpp_quote("#define NETCFG_S_CAUSED_SETUP_CHANGE MAKE_HRESULT(SEVERITY_SUCCESS, FACILITY_ITF, 0xA024)") cpp_quote("#define NETCFG_S_COMMIT_NOW MAKE_HRESULT(SEVERITY_SUCCESS, FACILITY_ITF, 0xA025)") cpp_quote("") cpp_quote("#define NETCFG_CLIENT_CID_MS_MSClient TEXT(\"ms_msclient\")") cpp_quote("#define NETCFG_SERVICE_CID_MS_SERVER TEXT(\"ms_server\")") cpp_quote("#define NETCFG_SERVICE_CID_MS_NETBIOS TEXT(\"ms_netbios\")") cpp_quote("#define NETCFG_SERVICE_CID_MS_PSCHED TEXT(\"ms_pschedpc\")") cpp_quote("#define NETCFG_SERVICE_CID_MS_WLBS TEXT(\"ms_wlbs\")") cpp_quote("#define NETCFG_TRANS_CID_MS_APPLETALK TEXT(\"ms_appletalk\")") cpp_quote("#define NETCFG_TRANS_CID_MS_NETBEUI TEXT(\"ms_netbeui\")") cpp_quote("#define NETCFG_TRANS_CID_MS_NETMON TEXT(\"ms_netmon\")") cpp_quote("#define NETCFG_TRANS_CID_MS_NWIPX TEXT(\"ms_nwipx\")") cpp_quote("#define NETCFG_TRANS_CID_MS_NWSPX TEXT(\"ms_nwspx\")") cpp_quote("#define NETCFG_TRANS_CID_MS_TCPIP TEXT(\"ms_tcpip\")") // Reserved GUIDS for Microsoft use // // C0E8AE90-306E-11D1-AACF-00805FC1270E IID_IEnumNetCfgBindingInterface // C0E8AE91-306E-11D1-AACF-00805FC1270E IID_IEnumNetCfgBindingPath // C0E8AE92-306E-11D1-AACF-00805FC1270E IID_IEnumNetCfgComponent // C0E8AE93-306E-11D1-AACF-00805FC1270E IID_INetCfg // C0E8AE94-306E-11D1-AACF-00805FC1270E IID_INetCfgBindingInterface // C0E8AE95-306E-11D1-AACF-00805FC1270E IID_INetCfgProperties // C0E8AE96-306E-11D1-AACF-00805FC1270E IID_INetCfgBindingPath // C0E8AE97-306E-11D1-AACF-00805FC1270E IID_INetCfgClass // C0E8AE98-306E-11D1-AACF-00805FC1270E IID_INetCfgSysPrep // C0E8AE99-306E-11D1-AACF-00805FC1270E IID_INetCfgComponent // C0E8AE9A-306E-11D1-AACF-00805FC1270E IID_INetCfgComponentSysPrep // C0E8AE9B-306E-11D1-AACF-00805FC1270E (open) // C0E8AE9C-306E-11D1-AACF-00805FC1270E (open) // C0E8AE9D-306E-11D1-AACF-00805FC1270E IID_INetCfgClassSetup // C0E8AE9E-306E-11D1-AACF-00805FC1270E IID_INetCfgComponentBindings // C0E8AE9F-306E-11D1-AACF-00805FC1270E IID_INetCfgLock // C0E8AEA0-306E-11D1-AACF-00805FC1270E // C0E8AEA1-306E-11D1-AACF-00805FC1270E // C0E8AEA2-306E-11D1-AACF-00805FC1270E // C0E8AEA3-306E-11D1-AACF-00805FC1270E // C0E8AEA4-306E-11D1-AACF-00805FC1270E // C0E8AEA5-306E-11D1-AACF-00805FC1270E // C0E8AEA6-306E-11D1-AACF-00805FC1270E // C0E8AEA7-306E-11D1-AACF-00805FC1270E // C0E8AEA8-306E-11D1-AACF-00805FC1270E // C0E8AEA9-306E-11D1-AACF-00805FC1270E // ... // C0E8B266-306E-11D1-AACF-00805FC1270E // C0E8B267-306E-11D1-AACF-00805FC1270E // C0E8B268-306E-11D1-AACF-00805FC1270E interface IEnumNetCfgBindingInterface; interface IEnumNetCfgBindingPath; interface IEnumNetCfgComponent; interface INetCfg; interface INetCfgProperties; interface INetCfgLock; interface INetCfgBindingInterface; interface INetCfgBindingPath; interface INetCfgComponentBindings; interface INetCfgBindingPath; interface INetCfgClass; interface INetCfgComponent; interface INetCfgIdentification; interface INetCfgClassSetup; //+--------------------------------------------------------------------------- // IEnumNetCfgBindingInterface - [ local, object, uuid(C0E8AE90-306E-11D1-AACF-00805FC1270E), pointer_default(unique) ] interface IEnumNetCfgBindingInterface : IUnknown { HRESULT Next ( [in] ULONG celt, [out, size_is(celt), length_is(*pceltFetched)] INetCfgBindingInterface** rgelt, [out] ULONG* pceltFetched); HRESULT Skip ( [in] ULONG celt); HRESULT Reset (); HRESULT Clone ( [out] IEnumNetCfgBindingInterface** ppenum); }; //+--------------------------------------------------------------------------- // IEnumNetCfgBindingPath - [ local, object, uuid(C0E8AE91-306E-11D1-AACF-00805FC1270E), pointer_default(unique) ] interface IEnumNetCfgBindingPath : IUnknown { HRESULT Next ( [in] ULONG celt, [out, size_is(celt), length_is(*pceltFetched)] INetCfgBindingPath** rgelt, [out] ULONG* pceltFetched); HRESULT Skip ( [in] ULONG celt); HRESULT Reset (); HRESULT Clone ( [out] IEnumNetCfgBindingPath** ppenum); }; //+--------------------------------------------------------------------------- // IEnumNetCfgComponent - [ local, object, uuid(C0E8AE92-306E-11D1-AACF-00805FC1270E), pointer_default(unique) ] interface IEnumNetCfgComponent : IUnknown { HRESULT Next ( [in] ULONG celt, [out, size_is(celt), length_is(*pceltFetched)] INetCfgComponent** rgelt, [out] ULONG* pceltFetched); HRESULT Skip ( [in] ULONG celt); HRESULT Reset (); HRESULT Clone ( [out] IEnumNetCfgComponent** ppenum); }; //+--------------------------------------------------------------------------- // INetCfg - [ local, object, uuid(C0E8AE93-306E-11D1-AACF-00805FC1270E), pointer_default(unique) ] interface INetCfg : IUnknown { HRESULT Initialize ( [in] PVOID pvReserved); HRESULT Uninitialize (); HRESULT Apply (); HRESULT Cancel (); HRESULT EnumComponents ( [in] const GUID* pguidClass, [out] IEnumNetCfgComponent** ppenumComponent); HRESULT FindComponent ( [in, string] LPCWSTR pszwInfId, [out] INetCfgComponent** pComponent); HRESULT QueryNetCfgClass ( [in] const GUID* pguidClass, [in] REFIID riid, [out, iid_is(riid)] void** ppvObject); }; //+--------------------------------------------------------------------------- // INetCfgLock - [ local, object, uuid(C0E8AE9F-306E-11D1-AACF-00805FC1270E), pointer_default(unique) ] interface INetCfgLock : IUnknown { HRESULT AcquireWriteLock ( [in] DWORD cmsTimeout, [in, string] LPCWSTR pszwClientDescription, [out, string] LPWSTR* ppszwClientDescription); HRESULT ReleaseWriteLock (); HRESULT IsWriteLocked ( [out, string] LPWSTR* ppszwClientDescription); }; //+--------------------------------------------------------------------------- // INetCfgBindingInterface - [ local, object, uuid(C0E8AE94-306E-11D1-AACF-00805FC1270E), pointer_default(unique) ] interface INetCfgBindingInterface : IUnknown { HRESULT GetName ( [out, string] LPWSTR* ppszwInterfaceName); HRESULT GetUpperComponent ( [out] INetCfgComponent** ppnccItem); HRESULT GetLowerComponent ( [out] INetCfgComponent** ppnccItem); }; //+--------------------------------------------------------------------------- // INetCfgBindingPath - [ local, object, uuid(C0E8AE96-306E-11D1-AACF-00805FC1270E), pointer_default(unique) ] interface INetCfgBindingPath : IUnknown { HRESULT IsSamePathAs ( [in] INetCfgBindingPath* pPath); HRESULT IsSubPathOf ( [in] INetCfgBindingPath* pPath); HRESULT IsEnabled (); HRESULT Enable ( [in] BOOL fEnable); HRESULT GetPathToken( [out, string] LPWSTR* ppszwPathToken); HRESULT GetOwner ( [out] INetCfgComponent** ppComponent); HRESULT GetDepth ( [out] ULONG* pcInterfaces); HRESULT EnumBindingInterfaces ( [out] IEnumNetCfgBindingInterface** ppenumInterface); }; //+--------------------------------------------------------------------------- // INetCfgClass - [ local, object, uuid(C0E8AE97-306E-11D1-AACF-00805FC1270E), pointer_default(unique) ] interface INetCfgClass : IUnknown { HRESULT FindComponent ( [in, string] LPCWSTR pszwInfId, [out] INetCfgComponent** ppnccItem); HRESULT EnumComponents ( [out] IEnumNetCfgComponent** ppenumComponent); }; //+--------------------------------------------------------------------------- // INetCfgClassSetup - [ local, object, uuid(C0E8AE9D-306E-11D1-AACF-00805FC1270E), pointer_default(unique) ] interface INetCfgClassSetup : IUnknown { 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; // Type == OBO_COMPONENT // INetCfgComponent* pncc; // Type == OBO_SOFTWARE // LPCWSTR pszwManufacturer; LPCWSTR pszwProduct; LPCWSTR pszwDisplayName; // The following fields must be initialized to zero // by users of OBO_TOKEN. // BOOL fRegistered; } OBO_TOKEN; HRESULT SelectAndInstall ( [in] HWND hwndParent, [in] OBO_TOKEN* pOboToken, [out] INetCfgComponent** ppnccItem); HRESULT Install ( [in, string] LPCWSTR pszwInfId, [in] OBO_TOKEN* pOboToken, [in] DWORD dwSetupFlags, [in] DWORD dwUpgradeFromBuildNo, [in, string] LPCWSTR pszwAnswerFile, [in, string] LPCWSTR pszwAnswerSections, [out] INetCfgComponent** ppnccItem); HRESULT DeInstall ( [in] INetCfgComponent* pComponent, [in] OBO_TOKEN* pOboToken, [out] LPWSTR* pmszwRefs); }; //+--------------------------------------------------------------------------- // INetCfgComponent - [ local, object, uuid(C0E8AE99-306E-11D1-AACF-00805FC1270E), pointer_default(unique) ] interface INetCfgComponent : IUnknown { typedef enum tagCOMPONENT_CHARACTERISTICS { NCF_VIRTUAL = 0x00000001, NCF_SOFTWARE_ENUMERATED = 0x00000002, NCF_PHYSICAL = 0x00000004, NCF_HIDDEN = 0x00000008, NCF_NO_SERVICE = 0x00000010, NCF_NOT_USER_REMOVABLE = 0x00000020, NCF_MULTIPORT_INSTANCED_ADAPTER = 0x00000040, // This adapter has separate instances for each port NCF_HAS_UI = 0x00000080, NCF_SINGLE_INSTANCE = 0x00000100, // = 0x00000200, // filter device NCF_FILTER = 0x00000400, // filter component NCF_DONTEXPOSELOWER = 0x00001000, NCF_HIDE_BINDING = 0x00002000, // don't show in binding page NCF_NDIS_PROTOCOL = 0x00004000, // Needs UNLOAD notifications // = 0x00008000, // = 0x00010000, // pnp notifications forced through service controller NCF_FIXED_BINDING = 0x00020000 // UI ability to change binding is disabled } COMPONENT_CHARACTERISTICS; typedef enum tagNCRP_FLAGS { NCRP_QUERY_PROPERTY_UI = 0x00000001, NCRP_SHOW_PROPERTY_UI = 0x00000002 } NCRP_FLAGS; HRESULT GetDisplayName ( [out, string] LPWSTR* ppszwDisplayName); HRESULT SetDisplayName ( [in, string] LPCWSTR pszwDisplayName); HRESULT GetHelpText ( [out, string] LPWSTR* pszwHelpText); HRESULT GetId ( [out, string] LPWSTR* ppszwId); HRESULT GetCharacteristics ( [out] LPDWORD pdwCharacteristics); HRESULT GetInstanceGuid ( [out] GUID* pGuid); HRESULT GetPnpDevNodeId ( [out, string] LPWSTR* ppszwDevNodeId); HRESULT GetClassGuid ( [out] GUID* pGuid); HRESULT GetBindName ( [out, string] LPWSTR* ppszwBindName); HRESULT GetDeviceStatus ( [out] ULONG* pulStatus); HRESULT OpenParamKey ( [out] HKEY* phkey); HRESULT RaisePropertyUi ( [in] HWND hwndParent, [in] DWORD dwFlags, /* NCRP_FLAGS */ [in] IUnknown* punkContext); }; //+--------------------------------------------------------------------------- // INetCfgComponentBindings - [ local, object, uuid(C0E8AE9E-306E-11D1-AACF-00805FC1270E), pointer_default(unique) ] interface INetCfgComponentBindings : IUnknown { typedef enum tagSUPPORTS_BINDING_INTERFACE_FLAGS { NCF_LOWER = 0x01, NCF_UPPER = 0x02 } SUPPORTS_BINDING_INTERFACE_FLAGS; typedef enum tagENUM_BINDING_PATHS_FLAGS { EBP_ABOVE = 0x01, EBP_BELOW = 0x02, } ENUM_BINDING_PATHS_FLAGS; HRESULT BindTo ( [in] INetCfgComponent* pnccItem); HRESULT UnbindFrom ( [in] INetCfgComponent* pnccItem); HRESULT SupportsBindingInterface ( [in] DWORD dwFlags, [in] LPCWSTR pszwInterfaceName); HRESULT IsBoundTo ( [in] INetCfgComponent* pnccItem); HRESULT IsBindableTo ( [in] INetCfgComponent* pnccItem); HRESULT EnumBindingPaths ( [in] DWORD dwFlags, [out] IEnumNetCfgBindingPath** ppIEnum); HRESULT MoveBefore ( [in] INetCfgBindingPath* pncbItemSrc, [in] INetCfgBindingPath* pncbItemDest); HRESULT MoveAfter ( [in] INetCfgBindingPath* pncbItemSrc, [in] INetCfgBindingPath* pncbItemDest); }; //+--------------------------------------------------------------------------- // INetCfgSysPrep - [ local, object, uuid(C0E8AE98-306E-11D1-AACF-00805FC1270E), pointer_default(unique) ] interface INetCfgSysPrep : IUnknown { HRESULT HrSetupSetFirstDword( [in, string] LPCWSTR pwszSection, [in, string] LPCWSTR pwszKey, [in] DWORD dwValue); HRESULT HrSetupSetFirstString( [in, string] LPCWSTR pwszSection, [in, string] LPCWSTR pwszKey, [in, string] LPCWSTR pwszValue); HRESULT HrSetupSetFirstStringAsBool( [in, string] LPCWSTR pwszSection, [in, string] LPCWSTR pwszKey, [in] BOOL fValue); HRESULT HrSetupSetFirstMultiSzField( [in, string] LPCWSTR pwszSection, [in, string] LPCWSTR pwszKey, [in] LPCWSTR pmszValue); };