iads.idl: Add missing interfaces.
[wine] / include / 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 };