mirror of https://github.com/tongzx/nt5src
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
538 lines
16 KiB
538 lines
16 KiB
//+---------------------------------------------------------------------------
|
|
//
|
|
// 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);
|
|
};
|