2 * Copyright 2012 Hans Leidekker for CodeWeavers
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.
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.
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
22 interface IWbemPathKeyList;
24 typedef [v1_enum] enum tag_WBEM_PATH_STATUS_FLAG
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;
46 typedef [v1_enum] enum tag_WBEM_PATH_CREATE_FLAG
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;
54 typedef [v1_enum] enum tag_WBEM_GET_TEXT_FLAGS
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;
67 uuid(9ae62877-7544-4bb0-aa26-a13824659ed6)
69 interface IWbemPathKeyList : IUnknown
72 [out] ULONG *puKeyCount);
75 [in,string] LPCWSTR wszName,
81 [in,string] LPCWSTR wszName,
84 [in] VARIANT *pKeyVal);
89 [in,out] ULONG *puNameBufSize,
90 [in,out] LPWSTR pszKeyName,
91 [in,out] ULONG *puKeyValBufSize,
92 [in,out] LPVOID pKeyVal,
93 [out] ULONG *puApparentCimType);
98 [in,out] ULONG *puNameBufSize,
99 [in,out] LPWSTR pszKeyName,
100 [in,out] VARIANT *pKeyValue,
101 [out] ULONG *puApparentCimType);
104 [in,string] LPCWSTR wszName,
107 HRESULT RemoveAllKeys(
110 HRESULT MakeSingleton([in] boolean bSet);
113 [in] ULONG uRequestedInfo,
114 [out] ULONGLONG *puResponse);
118 [in,out] ULONG *puBuffLength,
119 [in,out,string] LPWSTR pszText);
122 cpp_quote("#ifdef WINE_NO_UNICODE_MACROS")
123 cpp_quote("#undef GetClassName")
129 uuid(3bc15af2-736c-477e-9e51-238af8667dcc)
131 interface IWbemPath : IUnknown
135 [in] LPCWSTR pszPath);
139 [in,out] ULONG *puBuffLength,
140 [in,out,string] LPWSTR pszText);
143 [in] ULONG uRequestedInfo,
144 [out] ULONGLONG *puResponse);
147 [in,string] LPCWSTR Name);
150 [in,out] ULONG *puNameBufLength,
151 [in,out,string] LPWSTR pName);
153 HRESULT GetNamespaceCount(
154 [out] ULONG *puCount);
156 HRESULT SetNamespaceAt(
158 [in,string] LPCWSTR pszName);
160 HRESULT GetNamespaceAt(
162 [in,out] ULONG *puNameBufLength,
163 [in,out,string] LPWSTR pName);
165 HRESULT RemoveNamespaceAt(
168 HRESULT RemoveAllNamespaces();
170 HRESULT GetScopeCount(
171 [out] ULONG *puCount);
175 [in] LPWSTR pszClass);
177 HRESULT SetScopeFromText(
179 [in] LPWSTR pszText);
183 [in,out] ULONG *puClassNameBufSize,
184 [in,out] LPWSTR pszClass,
185 [out] IWbemPathKeyList **pKeyList);
187 HRESULT GetScopeAsText(
189 [in,out] ULONG *puTextBufSize,
190 [in,out] LPWSTR pszText);
195 HRESULT RemoveAllScopes();
197 HRESULT SetClassName(
198 [in,string] LPCWSTR Name);
200 HRESULT GetClassName(
201 [in,out] ULONG *puBuffLength,
202 [in,out,string] LPWSTR pszName);
205 [out] IWbemPathKeyList **pOut);
207 HRESULT CreateClassPart(
209 [in,string] LPCWSTR Name);
211 HRESULT DeleteClassPart(
215 [in,string] LPWSTR wszMachine,
216 [in,string] LPWSTR wszNamespace);
218 BOOL IsRelativeOrChild(
219 [in,string] LPWSTR wszMachine,
220 [in,string] LPWSTR wszNamespace,
224 [in,string] LPCWSTR wszMachine);
226 BOOL IsSameClassName(
227 [in,string] LPCWSTR wszClass);
231 uuid(cf4cc405-e2c5-4ddd-b3ce-5e7582d8c9fa)