[PSDK] Add missing DI_WRITEPROTECT and DIPROP_PRODUCTNAME.
[reactos.git] / reactos / sdk / include / psdk / wmiutils.idl
1 /*
2 * Copyright 2012 Hans Leidekker for CodeWeavers
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17 */
18
19 import "oaidl.idl";
20
21 interface IWbemPath;
22 interface IWbemPathKeyList;
23
24 typedef [v1_enum] enum tag_WBEM_PATH_STATUS_FLAG
25 {
26 WBEMPATH_INFO_ANON_LOCAL_MACHINE = 0x1,
27 WBEMPATH_INFO_HAS_MACHINE_NAME = 0x2,
28 WBEMPATH_INFO_IS_CLASS_REF = 0x4,
29 WBEMPATH_INFO_IS_INST_REF = 0x8,
30 WBEMPATH_INFO_HAS_SUBSCOPES = 0x10,
31 WBEMPATH_INFO_IS_COMPOUND = 0x20,
32 WBEMPATH_INFO_HAS_V2_REF_PATHS = 0x40,
33 WBEMPATH_INFO_HAS_IMPLIED_KEY = 0x80,
34 WBEMPATH_INFO_CONTAINS_SINGLETON = 0x100,
35 WBEMPATH_INFO_V1_COMPLIANT = 0x200,
36 WBEMPATH_INFO_V2_COMPLIANT = 0x400,
37 WBEMPATH_INFO_CIM_COMPLIANT = 0x800,
38 WBEMPATH_INFO_IS_SINGLETON = 0x1000,
39 WBEMPATH_INFO_IS_PARENT = 0x2000,
40 WBEMPATH_INFO_SERVER_NAMESPACE_ONLY = 0x4000,
41 WBEMPATH_INFO_NATIVE_PATH = 0x8000,
42 WBEMPATH_INFO_WMI_PATH = 0x10000,
43 WBEMPATH_INFO_PATH_HAD_SERVER = 0x20000
44 } tag_WBEM_PATH_STATUS_FLAG;
45
46 typedef [v1_enum] enum tag_WBEM_PATH_CREATE_FLAG
47 {
48 WBEMPATH_CREATE_ACCEPT_RELATIVE = 0x1,
49 WBEMPATH_CREATE_ACCEPT_ABSOLUTE = 0x2,
50 WBEMPATH_CREATE_ACCEPT_ALL = 0x4,
51 WBEMPATH_TREAT_SINGLE_IDENT_AS_NS = 0x8
52 } tag_WBEM_PATH_CREATE_FLAG;
53
54 typedef [v1_enum] enum tag_WBEM_GET_TEXT_FLAGS
55 {
56 WBEMPATH_COMPRESSED = 0x1,
57 WBEMPATH_GET_RELATIVE_ONLY = 0x2,
58 WBEMPATH_GET_SERVER_TOO = 0x4,
59 WBEMPATH_GET_SERVER_AND_NAMESPACE_ONLY = 0x8,
60 WBEMPATH_GET_NAMESPACE_ONLY = 0x10,
61 WBEMPATH_GET_ORIGINAL = 0x20
62 } tag_WBEM_GET_TEXT_FLAGS;
63
64 [
65 local,
66 object,
67 uuid(9ae62877-7544-4bb0-aa26-a13824659ed6)
68 ]
69 interface IWbemPathKeyList : IUnknown
70 {
71 HRESULT GetCount(
72 [out] ULONG *puKeyCount);
73
74 HRESULT SetKey(
75 [in,string] LPCWSTR wszName,
76 [in] ULONG uFlags,
77 [in] ULONG uCimType,
78 [in] LPVOID pKeyVal);
79
80 HRESULT SetKey2(
81 [in,string] LPCWSTR wszName,
82 [in] ULONG uFlags,
83 [in] ULONG uCimType,
84 [in] VARIANT *pKeyVal);
85
86 HRESULT GetKey(
87 [in] ULONG uKeyIx,
88 [in] ULONG uFlags,
89 [in,out] ULONG *puNameBufSize,
90 [in,out] LPWSTR pszKeyName,
91 [in,out] ULONG *puKeyValBufSize,
92 [in,out] LPVOID pKeyVal,
93 [out] ULONG *puApparentCimType);
94
95 HRESULT GetKey2(
96 [in] ULONG uKeyIx,
97 [in] ULONG uFlags,
98 [in,out] ULONG *puNameBufSize,
99 [in,out] LPWSTR pszKeyName,
100 [in,out] VARIANT *pKeyValue,
101 [out] ULONG *puApparentCimType);
102
103 HRESULT RemoveKey(
104 [in,string] LPCWSTR wszName,
105 [in] ULONG uFlags);
106
107 HRESULT RemoveAllKeys(
108 [in] ULONG uFlags);
109
110 HRESULT MakeSingleton([in] boolean bSet);
111
112 HRESULT GetInfo(
113 [in] ULONG uRequestedInfo,
114 [out] ULONGLONG *puResponse);
115
116 HRESULT GetText(
117 [in] long lFlags,
118 [in,out] ULONG *puBuffLength,
119 [in,out,string] LPWSTR pszText);
120 };
121
122 cpp_quote("#ifdef WINE_NO_UNICODE_MACROS")
123 cpp_quote("#undef GetClassName")
124 cpp_quote("#endif")
125
126 [
127 local,
128 object,
129 uuid(3bc15af2-736c-477e-9e51-238af8667dcc)
130 ]
131 interface IWbemPath : IUnknown
132 {
133 HRESULT SetText(
134 [in] ULONG uMode,
135 [in] LPCWSTR pszPath);
136
137 HRESULT GetText(
138 [in] long lFlags,
139 [in,out] ULONG *puBuffLength,
140 [in,out,string] LPWSTR pszText);
141
142 HRESULT GetInfo(
143 [in] ULONG uRequestedInfo,
144 [out] ULONGLONG *puResponse);
145
146 HRESULT SetServer(
147 [in,string] LPCWSTR Name);
148
149 HRESULT GetServer(
150 [in,out] ULONG *puNameBufLength,
151 [in,out,string] LPWSTR pName);
152
153 HRESULT GetNamespaceCount(
154 [out] ULONG *puCount);
155
156 HRESULT SetNamespaceAt(
157 [in] ULONG uIndex,
158 [in,string] LPCWSTR pszName);
159
160 HRESULT GetNamespaceAt(
161 [in] ULONG uIndex,
162 [in,out] ULONG *puNameBufLength,
163 [in,out,string] LPWSTR pName);
164
165 HRESULT RemoveNamespaceAt(
166 [in] ULONG uIndex);
167
168 HRESULT RemoveAllNamespaces();
169
170 HRESULT GetScopeCount(
171 [out] ULONG *puCount);
172
173 HRESULT SetScope(
174 [in] ULONG uIndex,
175 [in] LPWSTR pszClass);
176
177 HRESULT SetScopeFromText(
178 [in] ULONG uIndex,
179 [in] LPWSTR pszText);
180
181 HRESULT GetScope(
182 [in] ULONG uIndex,
183 [in,out] ULONG *puClassNameBufSize,
184 [in,out] LPWSTR pszClass,
185 [out] IWbemPathKeyList **pKeyList);
186
187 HRESULT GetScopeAsText(
188 [in] ULONG uIndex,
189 [in,out] ULONG *puTextBufSize,
190 [in,out] LPWSTR pszText);
191
192 HRESULT RemoveScope(
193 [in] ULONG uIndex);
194
195 HRESULT RemoveAllScopes();
196
197 HRESULT SetClassName(
198 [in,string] LPCWSTR Name);
199
200 HRESULT GetClassName(
201 [in,out] ULONG *puBuffLength,
202 [in,out,string] LPWSTR pszName);
203
204 HRESULT GetKeyList(
205 [out] IWbemPathKeyList **pOut);
206
207 HRESULT CreateClassPart(
208 [in] long lFlags,
209 [in,string] LPCWSTR Name);
210
211 HRESULT DeleteClassPart(
212 [in] long lFlags);
213
214 BOOL IsRelative(
215 [in,string] LPWSTR wszMachine,
216 [in,string] LPWSTR wszNamespace);
217
218 BOOL IsRelativeOrChild(
219 [in,string] LPWSTR wszMachine,
220 [in,string] LPWSTR wszNamespace,
221 [in] long lFlags);
222
223 BOOL IsLocal(
224 [in,string] LPCWSTR wszMachine);
225
226 BOOL IsSameClassName(
227 [in,string] LPCWSTR wszClass);
228 };
229
230 [
231 uuid(cf4cc405-e2c5-4ddd-b3ce-5e7582d8c9fa)
232 ]
233 coclass WbemDefPath
234 {
235 interface IWbemPath;
236 };