blob: d51407fe2ef1acf52b6b16dd593c29242583fd53 [file] [log] [blame]
/*
*
* 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
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)")
[
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);
};
[
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);
};
[
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);
};
[
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);
};
[
helpstring("Network Configuration Component Object"),
threading(both),
uuid(5b035261-40f9-11d1-aaec-00805fc1270e)
]
coclass CNetCfg
{
[default] interface INetCfg;
}