3 * Copyright 2014 Alistair Leslie-Hughes
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
24 #define threading
(model
)
26 #define vi_progid
(str
)
29 cpp_quote
("#define NETCFG_E_ALREADY_INITIALIZED MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0xA020)")
30 cpp_quote
("#define NETCFG_E_NO_WRITE_LOCK MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0xA024)")
35 uuid(c0e8ae99
-306e-11d1
-aacf
-00805fc1270e
),
36 pointer_default(unique)
38 interface INetCfgComponent
: IUnknown
40 typedef enum tagCOMPONENT_CHARACTERISTICS
42 NCF_VIRTUAL
= 0x00000001,
43 NCF_SOFTWARE_ENUMERATED
= 0x00000002,
44 NCF_PHYSICAL
= 0x00000004,
45 NCF_HIDDEN
= 0x00000008,
46 NCF_NO_SERVICE
= 0x00000010,
47 NCF_NOT_USER_REMOVABLE
= 0x00000020,
48 NCF_MULTIPORT_INSTANCED_ADAPTER
= 0x00000040,
49 NCF_HAS_UI
= 0x00000080,
50 NCF_SINGLE_INSTANCE
= 0x00000100,
51 NCF_FILTER
= 0x00000400,
52 NCF_DONTEXPOSELOWER
= 0x00001000,
53 NCF_HIDE_BINDING
= 0x00002000,
54 NCF_NDIS_PROTOCOL
= 0x00004000,
55 NCF_FIXED_BINDING
= 0x00020000,
56 NCF_LW_FILTER
= 0x00040000
57 } COMPONENT_CHARACTERISTICS
;
59 typedef enum tagNCRP_FLAGS
61 NCRP_QUERY_PROPERTY_UI
= 0x00000001,
62 NCRP_SHOW_PROPERTY_UI
= 0x00000002
65 HRESULT GetDisplayName
([out] LPWSTR
* ppszwDisplayName
);
66 HRESULT SetDisplayName
([in] LPCWSTR pszwDisplayName
);
67 HRESULT GetHelpText
([out] LPWSTR
* pszwHelpText
);
68 HRESULT GetId
([out] LPWSTR
* ppszwId
);
69 HRESULT GetCharacteristics
([out] LPDWORD pdwCharacteristics
);
70 HRESULT GetInstanceGuid
([out] GUID
* pGuid
);
71 HRESULT GetPnpDevNodeId
([out] LPWSTR
* ppszwDevNodeId
);
72 HRESULT GetClassGuid
([out] GUID
* pGuid
);
73 HRESULT GetBindName
([out] LPWSTR
* ppszwBindName
);
74 HRESULT GetDeviceStatus
([out] ULONG
* pulStatus
);
75 HRESULT OpenParamKey
([out] HKEY
* phkey
);
76 HRESULT RaisePropertyUi
([in] HWND hwndParent
, [in] DWORD dwFlags
, [in] IUnknown
* punkContext
);
83 uuid(c0e8ae92
-306e-11d1
-aacf
-00805fc1270e
),
84 pointer_default(unique)
86 interface IEnumNetCfgComponent
: IUnknown
88 HRESULT Next
([in] ULONG celt
, [out] INetCfgComponent
** rgelt
, [out] ULONG
*pceltFetched
);
89 HRESULT Skip
([in] ULONG celt
);
91 HRESULT Clone
([out] IEnumNetCfgComponent
** ppenum
);
97 uuid(c0e8ae9f
-306e-11d1
-aacf
-00805fc1270e
),
98 pointer_default(unique)
100 interface INetCfgLock
: IUnknown
102 HRESULT AcquireWriteLock
([in] DWORD cmsTimeout
, [in] LPCWSTR pszwClientDescription
,
103 [out] LPWSTR
* ppszwClientDescription
);
104 HRESULT ReleaseWriteLock
();
105 HRESULT IsWriteLocked
([out] LPWSTR
* ppszwClientDescription
);
111 uuid(c0e8ae93
-306e-11d1
-aacf
-00805fc1270e
),
112 pointer_default(unique)
114 interface INetCfg
: IUnknown
116 HRESULT Initialize
([in] PVOID pvReserved
);
117 HRESULT Uninitialize
();
120 HRESULT EnumComponents
([in] const GUID
* pguidClass
, [out] IEnumNetCfgComponent
** ppenumComponent
);
121 HRESULT FindComponent
([in] LPCWSTR pszwInfId
, [out] INetCfgComponent
** pComponent
);
122 HRESULT QueryNetCfgClass
([in] const GUID
* pguidClass
, [in] REFIID riid
,[out] void** ppvObject
);
126 helpstring("Network Configuration Component Object"),
128 uuid(5b035261
-40f9
-11d1
-aaec
-00805fc1270e
)
132 [default] interface INetCfg
;