mpr: Don't stop enumeration on the first failing network provider.
[wine.git] / include / netcfgx.idl
blobd51407fe2ef1acf52b6b16dd593c29242583fd53
1 /*
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
20 import "unknwn.idl";
21 import "wtypes.idl";
23 #ifndef __WIDL__
24 #define threading(model)
25 #define progid(str)
26 #define vi_progid(str)
27 #endif
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)")
33 local,
34 object,
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
63 } NCRP_FLAGS;
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);
81 local,
82 object,
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);
90 HRESULT Reset ();
91 HRESULT Clone ([out] IEnumNetCfgComponent** ppenum);
95 local,
96 object,
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);
109 local,
110 object,
111 uuid(c0e8ae93-306e-11d1-aacf-00805fc1270e),
112 pointer_default(unique)
114 interface INetCfg : IUnknown
116 HRESULT Initialize ([in] PVOID pvReserved);
117 HRESULT Uninitialize ();
118 HRESULT Apply ();
119 HRESULT Cancel ();
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"),
127 threading(both),
128 uuid(5b035261-40f9-11d1-aaec-00805fc1270e)
130 coclass CNetCfg
132 [default] interface INetCfg;