2014-03-19 04:01:38 +01:00
|
|
|
/*
|
|
|
|
*
|
|
|
|
* Copyright 2014 Alistair Leslie-Hughes
|
|
|
|
*
|
|
|
|
* This library is free software; you can redistribute it and/or
|
|
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
|
|
* License as published by the Free Software Foundation; either
|
|
|
|
* version 2.1 of the License, or (at your option) any later version.
|
|
|
|
*
|
|
|
|
* This library is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
|
|
* Lesser General Public License for more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
|
|
* License along with this library; if not, write to the Free Software
|
|
|
|
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
|
|
|
*/
|
|
|
|
|
|
|
|
import "unknwn.idl";
|
|
|
|
import "wtypes.idl";
|
|
|
|
|
|
|
|
#ifndef __WIDL__
|
|
|
|
#define threading(model)
|
|
|
|
#define progid(str)
|
|
|
|
#define vi_progid(str)
|
|
|
|
#endif
|
|
|
|
|
2014-03-26 01:54:32 +01:00
|
|
|
cpp_quote("#define NETCFG_E_ALREADY_INITIALIZED MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0xA020)")
|
|
|
|
cpp_quote("#define NETCFG_E_NO_WRITE_LOCK MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0xA024)")
|
|
|
|
|
2014-03-19 04:01:38 +01:00
|
|
|
[
|
|
|
|
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,
|
|
|
|
NCF_HAS_UI = 0x00000080,
|
|
|
|
NCF_SINGLE_INSTANCE = 0x00000100,
|
|
|
|
NCF_FILTER = 0x00000400,
|
|
|
|
NCF_DONTEXPOSELOWER = 0x00001000,
|
|
|
|
NCF_HIDE_BINDING = 0x00002000,
|
|
|
|
NCF_NDIS_PROTOCOL = 0x00004000,
|
|
|
|
NCF_FIXED_BINDING = 0x00020000,
|
|
|
|
NCF_LW_FILTER = 0x00040000
|
|
|
|
} COMPONENT_CHARACTERISTICS;
|
|
|
|
|
|
|
|
typedef enum tagNCRP_FLAGS
|
|
|
|
{
|
|
|
|
NCRP_QUERY_PROPERTY_UI = 0x00000001,
|
|
|
|
NCRP_SHOW_PROPERTY_UI = 0x00000002
|
|
|
|
} NCRP_FLAGS;
|
|
|
|
|
|
|
|
HRESULT GetDisplayName ([out] LPWSTR* ppszwDisplayName);
|
|
|
|
HRESULT SetDisplayName ([in] LPCWSTR pszwDisplayName);
|
|
|
|
HRESULT GetHelpText ([out] LPWSTR* pszwHelpText);
|
|
|
|
HRESULT GetId ([out] LPWSTR* ppszwId);
|
|
|
|
HRESULT GetCharacteristics ([out] LPDWORD pdwCharacteristics);
|
|
|
|
HRESULT GetInstanceGuid ([out] GUID* pGuid);
|
|
|
|
HRESULT GetPnpDevNodeId ([out] LPWSTR* ppszwDevNodeId);
|
|
|
|
HRESULT GetClassGuid ([out] GUID* pGuid);
|
|
|
|
HRESULT GetBindName ([out] LPWSTR* ppszwBindName);
|
|
|
|
HRESULT GetDeviceStatus ([out] ULONG* pulStatus);
|
|
|
|
HRESULT OpenParamKey ([out] HKEY* phkey);
|
|
|
|
HRESULT RaisePropertyUi ([in] HWND hwndParent, [in] DWORD dwFlags, [in] IUnknown* punkContext);
|
2017-12-13 17:48:14 +01:00
|
|
|
}
|
2014-03-19 04:01:38 +01:00
|
|
|
|
|
|
|
|
|
|
|
[
|
|
|
|
local,
|
|
|
|
object,
|
|
|
|
uuid(c0e8ae92-306e-11d1-aacf-00805fc1270e),
|
|
|
|
pointer_default(unique)
|
|
|
|
]
|
|
|
|
interface IEnumNetCfgComponent : IUnknown
|
|
|
|
{
|
|
|
|
HRESULT Next ([in] ULONG celt, [out] INetCfgComponent** rgelt, [out] ULONG *pceltFetched);
|
|
|
|
HRESULT Skip ([in] ULONG celt);
|
|
|
|
HRESULT Reset ();
|
|
|
|
HRESULT Clone ([out] IEnumNetCfgComponent** ppenum);
|
2017-12-13 17:48:14 +01:00
|
|
|
}
|
2014-03-19 04:01:38 +01:00
|
|
|
|
2014-03-26 01:54:32 +01:00
|
|
|
[
|
|
|
|
local,
|
|
|
|
object,
|
|
|
|
uuid(c0e8ae9f-306e-11d1-aacf-00805fc1270e),
|
|
|
|
pointer_default(unique)
|
|
|
|
]
|
|
|
|
interface INetCfgLock : IUnknown
|
|
|
|
{
|
|
|
|
HRESULT AcquireWriteLock ([in] DWORD cmsTimeout, [in] LPCWSTR pszwClientDescription,
|
|
|
|
[out] LPWSTR* ppszwClientDescription);
|
|
|
|
HRESULT ReleaseWriteLock ();
|
|
|
|
HRESULT IsWriteLocked ([out] LPWSTR* ppszwClientDescription);
|
2017-12-13 17:48:14 +01:00
|
|
|
}
|
2014-03-26 01:54:32 +01:00
|
|
|
|
2014-03-19 04:01:38 +01:00
|
|
|
[
|
|
|
|
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] LPCWSTR pszwInfId, [out] INetCfgComponent** pComponent);
|
|
|
|
HRESULT QueryNetCfgClass ([in] const GUID* pguidClass, [in] REFIID riid,[out] void** ppvObject);
|
2017-12-13 17:48:14 +01:00
|
|
|
}
|
2014-03-19 04:01:38 +01:00
|
|
|
|
|
|
|
[
|
2014-03-20 00:19:14 +01:00
|
|
|
helpstring("Network Configuration Component Object"),
|
2014-03-19 04:01:38 +01:00
|
|
|
threading(both),
|
|
|
|
uuid(5b035261-40f9-11d1-aaec-00805fc1270e)
|
|
|
|
]
|
|
|
|
coclass CNetCfg
|
|
|
|
{
|
|
|
|
[default] interface INetCfg;
|
|
|
|
}
|