2 * Copyright 2013 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
29 #include "wine/debug.h"
30 #include "wbemprox_private.h"
32 WINE_DEFAULT_DEBUG_CHANNEL(wbemprox);
36 IWbemQualifierSet IWbemQualifierSet_iface;
40 static inline struct qualifier_set *impl_from_IWbemQualifierSet(
41 IWbemQualifierSet *iface )
43 return CONTAINING_RECORD(iface, struct qualifier_set, IWbemQualifierSet_iface);
46 static ULONG WINAPI qualifier_set_AddRef(
47 IWbemQualifierSet *iface )
49 struct qualifier_set *set = impl_from_IWbemQualifierSet( iface );
50 return InterlockedIncrement( &set->refs );
53 static ULONG WINAPI qualifier_set_Release(
54 IWbemQualifierSet *iface )
56 struct qualifier_set *set = impl_from_IWbemQualifierSet( iface );
57 LONG refs = InterlockedDecrement( &set->refs );
60 TRACE("destroying %p\n", set);
66 static HRESULT WINAPI qualifier_set_QueryInterface(
67 IWbemQualifierSet *iface,
71 struct qualifier_set *set = impl_from_IWbemQualifierSet( iface );
73 TRACE("%p, %s, %p\n", set, debugstr_guid( riid ), ppvObject );
75 if ( IsEqualGUID( riid, &IID_IWbemQualifierSet ) ||
76 IsEqualGUID( riid, &IID_IUnknown ) )
82 FIXME("interface %s not implemented\n", debugstr_guid(riid));
85 IWbemQualifierSet_AddRef( iface );
89 static HRESULT WINAPI qualifier_set_Get(
90 IWbemQualifierSet *iface,
96 FIXME("%p, %s, %08x, %p, %p\n", iface, debugstr_w(wszName), lFlags, pVal, plFlavor);
100 static HRESULT WINAPI qualifier_set_Put(
101 IWbemQualifierSet *iface,
106 FIXME("%p, %s, %p, %d\n", iface, debugstr_w(wszName), pVal, lFlavor);
110 static HRESULT WINAPI qualifier_set_Delete(
111 IWbemQualifierSet *iface,
114 FIXME("%p, %s\n", iface, debugstr_w(wszName));
118 static HRESULT WINAPI qualifier_set_GetNames(
119 IWbemQualifierSet *iface,
123 FIXME("%p, %08x, %p\n", iface, lFlags, pNames);
127 static HRESULT WINAPI qualifier_set_BeginEnumeration(
128 IWbemQualifierSet *iface,
131 FIXME("%p, %08x\n", iface, lFlags);
135 static HRESULT WINAPI qualifier_set_Next(
136 IWbemQualifierSet *iface,
142 FIXME("%p, %08x, %p, %p, %p\n", iface, lFlags, pstrName, pVal, plFlavor);
146 static HRESULT WINAPI qualifier_set_EndEnumeration(
147 IWbemQualifierSet *iface )
149 FIXME("%p\n", iface);
153 static const IWbemQualifierSetVtbl qualifier_set_vtbl =
155 qualifier_set_QueryInterface,
156 qualifier_set_AddRef,
157 qualifier_set_Release,
160 qualifier_set_Delete,
161 qualifier_set_GetNames,
162 qualifier_set_BeginEnumeration,
164 qualifier_set_EndEnumeration
167 HRESULT WbemQualifierSet_create(
168 IUnknown *pUnkOuter, LPVOID *ppObj )
170 struct qualifier_set *set;
172 TRACE("%p, %p\n", pUnkOuter, ppObj);
174 if (!(set = heap_alloc( sizeof(*set) ))) return E_OUTOFMEMORY;
176 set->IWbemQualifierSet_iface.lpVtbl = &qualifier_set_vtbl;
179 *ppObj = &set->IWbemQualifierSet_iface;
181 TRACE("returning iface %p\n", *ppObj);