1 /*** Autogenerated by WIDL 1.6 from include/structuredquerycondition.idl - Do not edit ***/
2 
3 #ifndef __REQUIRED_RPCNDR_H_VERSION__
4 #define __REQUIRED_RPCNDR_H_VERSION__ 475
5 #endif
6 
7 #include <rpc.h>
8 #include <rpcndr.h>
9 
10 #ifndef COM_NO_WINDOWS_H
11 #include <windows.h>
12 #include <ole2.h>
13 #endif
14 
15 #ifndef __structuredquerycondition_h__
16 #define __structuredquerycondition_h__
17 
18 /* Forward declarations */
19 
20 #ifndef __IRichChunk_FWD_DEFINED__
21 #define __IRichChunk_FWD_DEFINED__
22 typedef interface IRichChunk IRichChunk;
23 #endif
24 
25 #ifndef __ICondition_FWD_DEFINED__
26 #define __ICondition_FWD_DEFINED__
27 typedef interface ICondition ICondition;
28 #endif
29 
30 #ifndef __ICondition2_FWD_DEFINED__
31 #define __ICondition2_FWD_DEFINED__
32 typedef interface ICondition2 ICondition2;
33 #endif
34 
35 /* Headers for imported files */
36 
37 #include <oaidl.h>
38 #include <ocidl.h>
39 #include <objidl.h>
40 #include <propidl.h>
41 
42 #ifdef __cplusplus
43 extern "C" {
44 #endif
45 
46 /**
47  * This file is part of the mingw-w64 runtime package.
48  * No warranty is given; refer to the file DISCLAIMER within this package.
49  */
50 
51 #include <winapifamily.h>
52 
53 typedef enum tagCONDITION_TYPE {
54     CT_AND_CONDITION = 0,
55     CT_OR_CONDITION = 1,
56     CT_NOT_CONDITION = 2,
57     CT_LEAF_CONDITION = 3
58 } CONDITION_TYPE;
59 
60 typedef enum tagCONDITION_OPERATION {
61     COP_IMPLICIT = 0,
62     COP_EQUAL = 1,
63     COP_NOTEQUAL = 2,
64     COP_LESSTHAN = 3,
65     COP_GREATERTHAN = 4,
66     COP_LESSTHANOREQUAL = 5,
67     COP_GREATERTHANOREQUAL = 6,
68     COP_VALUE_STARTSWITH = 7,
69     COP_VALUE_ENDSWITH = 8,
70     COP_VALUE_CONTAINS = 9,
71     COP_VALUE_NOTCONTAINS = 10,
72     COP_DOSWILDCARDS = 11,
73     COP_WORD_EQUAL = 12,
74     COP_WORD_STARTSWITH = 13,
75     COP_APPLICATION_SPECIFIC = 14
76 } CONDITION_OPERATION;
77 
78 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
79 /*****************************************************************************
80  * IRichChunk interface
81  */
82 #ifndef __IRichChunk_INTERFACE_DEFINED__
83 #define __IRichChunk_INTERFACE_DEFINED__
84 
85 DEFINE_GUID(IID_IRichChunk, 0x4fdef69c, 0xdbc9, 0x454e, 0x99,0x10, 0xb3,0x4f,0x3c,0x64,0xb5,0x10);
86 #if defined(__cplusplus) && !defined(CINTERFACE)
87 MIDL_INTERFACE("4fdef69c-dbc9-454e-9910-b34f3c64b510")
88 IRichChunk : public IUnknown
89 {
90     virtual HRESULT STDMETHODCALLTYPE GetData(
91         ULONG *pFirstPos,
92         ULONG *pLength,
93         LPWSTR *ppsz,
94         PROPVARIANT *pValue) = 0;
95 
96 };
97 #ifdef __CRT_UUID_DECL
98 __CRT_UUID_DECL(IRichChunk, 0x4fdef69c, 0xdbc9, 0x454e, 0x99,0x10, 0xb3,0x4f,0x3c,0x64,0xb5,0x10)
99 #endif
100 #else
101 typedef struct IRichChunkVtbl {
102     BEGIN_INTERFACE
103 
104     /*** IUnknown methods ***/
105     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
106         IRichChunk* This,
107         REFIID riid,
108         void **ppvObject);
109 
110     ULONG (STDMETHODCALLTYPE *AddRef)(
111         IRichChunk* This);
112 
113     ULONG (STDMETHODCALLTYPE *Release)(
114         IRichChunk* This);
115 
116     /*** IRichChunk methods ***/
117     HRESULT (STDMETHODCALLTYPE *GetData)(
118         IRichChunk* This,
119         ULONG *pFirstPos,
120         ULONG *pLength,
121         LPWSTR *ppsz,
122         PROPVARIANT *pValue);
123 
124     END_INTERFACE
125 } IRichChunkVtbl;
126 interface IRichChunk {
127     CONST_VTBL IRichChunkVtbl* lpVtbl;
128 };
129 
130 #ifdef COBJMACROS
131 #ifndef WIDL_C_INLINE_WRAPPERS
132 /*** IUnknown methods ***/
133 #define IRichChunk_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
134 #define IRichChunk_AddRef(This) (This)->lpVtbl->AddRef(This)
135 #define IRichChunk_Release(This) (This)->lpVtbl->Release(This)
136 /*** IRichChunk methods ***/
137 #define IRichChunk_GetData(This,pFirstPos,pLength,ppsz,pValue) (This)->lpVtbl->GetData(This,pFirstPos,pLength,ppsz,pValue)
138 #else
139 /*** IUnknown methods ***/
140 static FORCEINLINE HRESULT IRichChunk_QueryInterface(IRichChunk* This,REFIID riid,void **ppvObject) {
141     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
142 }
143 static FORCEINLINE ULONG IRichChunk_AddRef(IRichChunk* This) {
144     return This->lpVtbl->AddRef(This);
145 }
146 static FORCEINLINE ULONG IRichChunk_Release(IRichChunk* This) {
147     return This->lpVtbl->Release(This);
148 }
149 /*** IRichChunk methods ***/
150 static FORCEINLINE HRESULT IRichChunk_GetData(IRichChunk* This,ULONG *pFirstPos,ULONG *pLength,LPWSTR *ppsz,PROPVARIANT *pValue) {
151     return This->lpVtbl->GetData(This,pFirstPos,pLength,ppsz,pValue);
152 }
153 #endif
154 #endif
155 
156 #endif
157 
158 HRESULT STDMETHODCALLTYPE IRichChunk_RemoteGetData_Proxy(
159     IRichChunk* This,
160     ULONG *pFirstPos,
161     ULONG *pLength,
162     LPWSTR *ppsz,
163     PROPVARIANT *pValue);
164 void __RPC_STUB IRichChunk_RemoteGetData_Stub(
165     IRpcStubBuffer* This,
166     IRpcChannelBuffer* pRpcChannelBuffer,
167     PRPC_MESSAGE pRpcMessage,
168     DWORD* pdwStubPhase);
169 HRESULT CALLBACK IRichChunk_GetData_Proxy(
170     IRichChunk* This,
171     ULONG *pFirstPos,
172     ULONG *pLength,
173     LPWSTR *ppsz,
174     PROPVARIANT *pValue);
175 HRESULT __RPC_STUB IRichChunk_GetData_Stub(
176     IRichChunk* This,
177     ULONG *pFirstPos,
178     ULONG *pLength,
179     LPWSTR *ppsz,
180     PROPVARIANT *pValue);
181 
182 #endif  /* __IRichChunk_INTERFACE_DEFINED__ */
183 
184 
185 /*****************************************************************************
186  * ICondition interface
187  */
188 #ifndef __ICondition_INTERFACE_DEFINED__
189 #define __ICondition_INTERFACE_DEFINED__
190 
191 DEFINE_GUID(IID_ICondition, 0x0fc988d4, 0xc935, 0x4b97, 0xa9,0x73, 0x46,0x28,0x2e,0xa1,0x75,0xc8);
192 #if defined(__cplusplus) && !defined(CINTERFACE)
193 MIDL_INTERFACE("0fc988d4-c935-4b97-a973-46282ea175c8")
194 ICondition : public IPersistStream
195 {
196     virtual HRESULT STDMETHODCALLTYPE GetConditionType(
197         CONDITION_TYPE *pNodeType) = 0;
198 
199     virtual HRESULT STDMETHODCALLTYPE GetSubConditions(
200         REFIID riid,
201         void **ppv) = 0;
202 
203     virtual HRESULT STDMETHODCALLTYPE GetComparisonInfo(
204         LPWSTR *ppszPropertyName,
205         CONDITION_OPERATION *pcop,
206         PROPVARIANT *ppropvar) = 0;
207 
208     virtual HRESULT STDMETHODCALLTYPE GetValueType(
209         LPWSTR *ppszValueTypeName) = 0;
210 
211     virtual HRESULT STDMETHODCALLTYPE GetValueNormalization(
212         LPWSTR *ppszNormalization) = 0;
213 
214     virtual HRESULT STDMETHODCALLTYPE GetInputTerms(
215         IRichChunk **ppPropertyTerm,
216         IRichChunk **ppOperationTerm,
217         IRichChunk **ppValueTerm) = 0;
218 
219     virtual HRESULT STDMETHODCALLTYPE Clone(
220         ICondition **ppc) = 0;
221 
222 };
223 #ifdef __CRT_UUID_DECL
224 __CRT_UUID_DECL(ICondition, 0x0fc988d4, 0xc935, 0x4b97, 0xa9,0x73, 0x46,0x28,0x2e,0xa1,0x75,0xc8)
225 #endif
226 #else
227 typedef struct IConditionVtbl {
228     BEGIN_INTERFACE
229 
230     /*** IUnknown methods ***/
231     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
232         ICondition* This,
233         REFIID riid,
234         void **ppvObject);
235 
236     ULONG (STDMETHODCALLTYPE *AddRef)(
237         ICondition* This);
238 
239     ULONG (STDMETHODCALLTYPE *Release)(
240         ICondition* This);
241 
242     /*** IPersist methods ***/
243     HRESULT (STDMETHODCALLTYPE *GetClassID)(
244         ICondition* This,
245         CLSID *pClassID);
246 
247     /*** IPersistStream methods ***/
248     HRESULT (STDMETHODCALLTYPE *IsDirty)(
249         ICondition* This);
250 
251     HRESULT (STDMETHODCALLTYPE *Load)(
252         ICondition* This,
253         IStream *pStm);
254 
255     HRESULT (STDMETHODCALLTYPE *Save)(
256         ICondition* This,
257         IStream *pStm,
258         WINBOOL fClearDirty);
259 
260     HRESULT (STDMETHODCALLTYPE *GetSizeMax)(
261         ICondition* This,
262         ULARGE_INTEGER *pcbSize);
263 
264     /*** ICondition methods ***/
265     HRESULT (STDMETHODCALLTYPE *GetConditionType)(
266         ICondition* This,
267         CONDITION_TYPE *pNodeType);
268 
269     HRESULT (STDMETHODCALLTYPE *GetSubConditions)(
270         ICondition* This,
271         REFIID riid,
272         void **ppv);
273 
274     HRESULT (STDMETHODCALLTYPE *GetComparisonInfo)(
275         ICondition* This,
276         LPWSTR *ppszPropertyName,
277         CONDITION_OPERATION *pcop,
278         PROPVARIANT *ppropvar);
279 
280     HRESULT (STDMETHODCALLTYPE *GetValueType)(
281         ICondition* This,
282         LPWSTR *ppszValueTypeName);
283 
284     HRESULT (STDMETHODCALLTYPE *GetValueNormalization)(
285         ICondition* This,
286         LPWSTR *ppszNormalization);
287 
288     HRESULT (STDMETHODCALLTYPE *GetInputTerms)(
289         ICondition* This,
290         IRichChunk **ppPropertyTerm,
291         IRichChunk **ppOperationTerm,
292         IRichChunk **ppValueTerm);
293 
294     HRESULT (STDMETHODCALLTYPE *Clone)(
295         ICondition* This,
296         ICondition **ppc);
297 
298     END_INTERFACE
299 } IConditionVtbl;
300 interface ICondition {
301     CONST_VTBL IConditionVtbl* lpVtbl;
302 };
303 
304 #ifdef COBJMACROS
305 #ifndef WIDL_C_INLINE_WRAPPERS
306 /*** IUnknown methods ***/
307 #define ICondition_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
308 #define ICondition_AddRef(This) (This)->lpVtbl->AddRef(This)
309 #define ICondition_Release(This) (This)->lpVtbl->Release(This)
310 /*** IPersist methods ***/
311 #define ICondition_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
312 /*** IPersistStream methods ***/
313 #define ICondition_IsDirty(This) (This)->lpVtbl->IsDirty(This)
314 #define ICondition_Load(This,pStm) (This)->lpVtbl->Load(This,pStm)
315 #define ICondition_Save(This,pStm,fClearDirty) (This)->lpVtbl->Save(This,pStm,fClearDirty)
316 #define ICondition_GetSizeMax(This,pcbSize) (This)->lpVtbl->GetSizeMax(This,pcbSize)
317 /*** ICondition methods ***/
318 #define ICondition_GetConditionType(This,pNodeType) (This)->lpVtbl->GetConditionType(This,pNodeType)
319 #define ICondition_GetSubConditions(This,riid,ppv) (This)->lpVtbl->GetSubConditions(This,riid,ppv)
320 #define ICondition_GetComparisonInfo(This,ppszPropertyName,pcop,ppropvar) (This)->lpVtbl->GetComparisonInfo(This,ppszPropertyName,pcop,ppropvar)
321 #define ICondition_GetValueType(This,ppszValueTypeName) (This)->lpVtbl->GetValueType(This,ppszValueTypeName)
322 #define ICondition_GetValueNormalization(This,ppszNormalization) (This)->lpVtbl->GetValueNormalization(This,ppszNormalization)
323 #define ICondition_GetInputTerms(This,ppPropertyTerm,ppOperationTerm,ppValueTerm) (This)->lpVtbl->GetInputTerms(This,ppPropertyTerm,ppOperationTerm,ppValueTerm)
324 #define ICondition_Clone(This,ppc) (This)->lpVtbl->Clone(This,ppc)
325 #else
326 /*** IUnknown methods ***/
327 static FORCEINLINE HRESULT ICondition_QueryInterface(ICondition* This,REFIID riid,void **ppvObject) {
328     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
329 }
330 static FORCEINLINE ULONG ICondition_AddRef(ICondition* This) {
331     return This->lpVtbl->AddRef(This);
332 }
333 static FORCEINLINE ULONG ICondition_Release(ICondition* This) {
334     return This->lpVtbl->Release(This);
335 }
336 /*** IPersist methods ***/
337 static FORCEINLINE HRESULT ICondition_GetClassID(ICondition* This,CLSID *pClassID) {
338     return This->lpVtbl->GetClassID(This,pClassID);
339 }
340 /*** IPersistStream methods ***/
341 static FORCEINLINE HRESULT ICondition_IsDirty(ICondition* This) {
342     return This->lpVtbl->IsDirty(This);
343 }
344 static FORCEINLINE HRESULT ICondition_Load(ICondition* This,IStream *pStm) {
345     return This->lpVtbl->Load(This,pStm);
346 }
347 static FORCEINLINE HRESULT ICondition_Save(ICondition* This,IStream *pStm,WINBOOL fClearDirty) {
348     return This->lpVtbl->Save(This,pStm,fClearDirty);
349 }
350 static FORCEINLINE HRESULT ICondition_GetSizeMax(ICondition* This,ULARGE_INTEGER *pcbSize) {
351     return This->lpVtbl->GetSizeMax(This,pcbSize);
352 }
353 /*** ICondition methods ***/
354 static FORCEINLINE HRESULT ICondition_GetConditionType(ICondition* This,CONDITION_TYPE *pNodeType) {
355     return This->lpVtbl->GetConditionType(This,pNodeType);
356 }
357 static FORCEINLINE HRESULT ICondition_GetSubConditions(ICondition* This,REFIID riid,void **ppv) {
358     return This->lpVtbl->GetSubConditions(This,riid,ppv);
359 }
360 static FORCEINLINE HRESULT ICondition_GetComparisonInfo(ICondition* This,LPWSTR *ppszPropertyName,CONDITION_OPERATION *pcop,PROPVARIANT *ppropvar) {
361     return This->lpVtbl->GetComparisonInfo(This,ppszPropertyName,pcop,ppropvar);
362 }
363 static FORCEINLINE HRESULT ICondition_GetValueType(ICondition* This,LPWSTR *ppszValueTypeName) {
364     return This->lpVtbl->GetValueType(This,ppszValueTypeName);
365 }
366 static FORCEINLINE HRESULT ICondition_GetValueNormalization(ICondition* This,LPWSTR *ppszNormalization) {
367     return This->lpVtbl->GetValueNormalization(This,ppszNormalization);
368 }
369 static FORCEINLINE HRESULT ICondition_GetInputTerms(ICondition* This,IRichChunk **ppPropertyTerm,IRichChunk **ppOperationTerm,IRichChunk **ppValueTerm) {
370     return This->lpVtbl->GetInputTerms(This,ppPropertyTerm,ppOperationTerm,ppValueTerm);
371 }
372 static FORCEINLINE HRESULT ICondition_Clone(ICondition* This,ICondition **ppc) {
373     return This->lpVtbl->Clone(This,ppc);
374 }
375 #endif
376 #endif
377 
378 #endif
379 
380 HRESULT STDMETHODCALLTYPE ICondition_GetConditionType_Proxy(
381     ICondition* This,
382     CONDITION_TYPE *pNodeType);
383 void __RPC_STUB ICondition_GetConditionType_Stub(
384     IRpcStubBuffer* This,
385     IRpcChannelBuffer* pRpcChannelBuffer,
386     PRPC_MESSAGE pRpcMessage,
387     DWORD* pdwStubPhase);
388 HRESULT STDMETHODCALLTYPE ICondition_GetSubConditions_Proxy(
389     ICondition* This,
390     REFIID riid,
391     void **ppv);
392 void __RPC_STUB ICondition_GetSubConditions_Stub(
393     IRpcStubBuffer* This,
394     IRpcChannelBuffer* pRpcChannelBuffer,
395     PRPC_MESSAGE pRpcMessage,
396     DWORD* pdwStubPhase);
397 HRESULT STDMETHODCALLTYPE ICondition_RemoteGetComparisonInfo_Proxy(
398     ICondition* This,
399     LPWSTR *ppszPropertyName,
400     CONDITION_OPERATION *pcop,
401     PROPVARIANT *ppropvar);
402 void __RPC_STUB ICondition_RemoteGetComparisonInfo_Stub(
403     IRpcStubBuffer* This,
404     IRpcChannelBuffer* pRpcChannelBuffer,
405     PRPC_MESSAGE pRpcMessage,
406     DWORD* pdwStubPhase);
407 HRESULT STDMETHODCALLTYPE ICondition_GetValueType_Proxy(
408     ICondition* This,
409     LPWSTR *ppszValueTypeName);
410 void __RPC_STUB ICondition_GetValueType_Stub(
411     IRpcStubBuffer* This,
412     IRpcChannelBuffer* pRpcChannelBuffer,
413     PRPC_MESSAGE pRpcMessage,
414     DWORD* pdwStubPhase);
415 HRESULT STDMETHODCALLTYPE ICondition_GetValueNormalization_Proxy(
416     ICondition* This,
417     LPWSTR *ppszNormalization);
418 void __RPC_STUB ICondition_GetValueNormalization_Stub(
419     IRpcStubBuffer* This,
420     IRpcChannelBuffer* pRpcChannelBuffer,
421     PRPC_MESSAGE pRpcMessage,
422     DWORD* pdwStubPhase);
423 HRESULT STDMETHODCALLTYPE ICondition_RemoteGetInputTerms_Proxy(
424     ICondition* This,
425     IRichChunk **ppPropertyTerm,
426     IRichChunk **ppOperationTerm,
427     IRichChunk **ppValueTerm);
428 void __RPC_STUB ICondition_RemoteGetInputTerms_Stub(
429     IRpcStubBuffer* This,
430     IRpcChannelBuffer* pRpcChannelBuffer,
431     PRPC_MESSAGE pRpcMessage,
432     DWORD* pdwStubPhase);
433 HRESULT STDMETHODCALLTYPE ICondition_Clone_Proxy(
434     ICondition* This,
435     ICondition **ppc);
436 void __RPC_STUB ICondition_Clone_Stub(
437     IRpcStubBuffer* This,
438     IRpcChannelBuffer* pRpcChannelBuffer,
439     PRPC_MESSAGE pRpcMessage,
440     DWORD* pdwStubPhase);
441 HRESULT CALLBACK ICondition_GetComparisonInfo_Proxy(
442     ICondition* This,
443     LPWSTR *ppszPropertyName,
444     CONDITION_OPERATION *pcop,
445     PROPVARIANT *ppropvar);
446 HRESULT __RPC_STUB ICondition_GetComparisonInfo_Stub(
447     ICondition* This,
448     LPWSTR *ppszPropertyName,
449     CONDITION_OPERATION *pcop,
450     PROPVARIANT *ppropvar);
451 HRESULT CALLBACK ICondition_GetInputTerms_Proxy(
452     ICondition* This,
453     IRichChunk **ppPropertyTerm,
454     IRichChunk **ppOperationTerm,
455     IRichChunk **ppValueTerm);
456 HRESULT __RPC_STUB ICondition_GetInputTerms_Stub(
457     ICondition* This,
458     IRichChunk **ppPropertyTerm,
459     IRichChunk **ppOperationTerm,
460     IRichChunk **ppValueTerm);
461 
462 #endif  /* __ICondition_INTERFACE_DEFINED__ */
463 
464 
465 /*****************************************************************************
466  * ICondition2 interface
467  */
468 #ifndef __ICondition2_INTERFACE_DEFINED__
469 #define __ICondition2_INTERFACE_DEFINED__
470 
471 DEFINE_GUID(IID_ICondition2, 0x0db8851d, 0x2e5b, 0x47eb, 0x92,0x08, 0xd2,0x8c,0x32,0x5a,0x01,0xd7);
472 #if defined(__cplusplus) && !defined(CINTERFACE)
473 MIDL_INTERFACE("0db8851d-2e5b-47eb-9208-d28c325a01d7")
474 ICondition2 : public ICondition
475 {
476     virtual HRESULT STDMETHODCALLTYPE GetLocale(
477         LPWSTR *ppszLocaleName) = 0;
478 
479     virtual HRESULT STDMETHODCALLTYPE GetLeafConditionInfo(
480         PROPERTYKEY *ppropkey,
481         CONDITION_OPERATION *pcop,
482         PROPVARIANT *ppropvar) = 0;
483 
484 };
485 #ifdef __CRT_UUID_DECL
486 __CRT_UUID_DECL(ICondition2, 0x0db8851d, 0x2e5b, 0x47eb, 0x92,0x08, 0xd2,0x8c,0x32,0x5a,0x01,0xd7)
487 #endif
488 #else
489 typedef struct ICondition2Vtbl {
490     BEGIN_INTERFACE
491 
492     /*** IUnknown methods ***/
493     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
494         ICondition2* This,
495         REFIID riid,
496         void **ppvObject);
497 
498     ULONG (STDMETHODCALLTYPE *AddRef)(
499         ICondition2* This);
500 
501     ULONG (STDMETHODCALLTYPE *Release)(
502         ICondition2* This);
503 
504     /*** IPersist methods ***/
505     HRESULT (STDMETHODCALLTYPE *GetClassID)(
506         ICondition2* This,
507         CLSID *pClassID);
508 
509     /*** IPersistStream methods ***/
510     HRESULT (STDMETHODCALLTYPE *IsDirty)(
511         ICondition2* This);
512 
513     HRESULT (STDMETHODCALLTYPE *Load)(
514         ICondition2* This,
515         IStream *pStm);
516 
517     HRESULT (STDMETHODCALLTYPE *Save)(
518         ICondition2* This,
519         IStream *pStm,
520         WINBOOL fClearDirty);
521 
522     HRESULT (STDMETHODCALLTYPE *GetSizeMax)(
523         ICondition2* This,
524         ULARGE_INTEGER *pcbSize);
525 
526     /*** ICondition methods ***/
527     HRESULT (STDMETHODCALLTYPE *GetConditionType)(
528         ICondition2* This,
529         CONDITION_TYPE *pNodeType);
530 
531     HRESULT (STDMETHODCALLTYPE *GetSubConditions)(
532         ICondition2* This,
533         REFIID riid,
534         void **ppv);
535 
536     HRESULT (STDMETHODCALLTYPE *GetComparisonInfo)(
537         ICondition2* This,
538         LPWSTR *ppszPropertyName,
539         CONDITION_OPERATION *pcop,
540         PROPVARIANT *ppropvar);
541 
542     HRESULT (STDMETHODCALLTYPE *GetValueType)(
543         ICondition2* This,
544         LPWSTR *ppszValueTypeName);
545 
546     HRESULT (STDMETHODCALLTYPE *GetValueNormalization)(
547         ICondition2* This,
548         LPWSTR *ppszNormalization);
549 
550     HRESULT (STDMETHODCALLTYPE *GetInputTerms)(
551         ICondition2* This,
552         IRichChunk **ppPropertyTerm,
553         IRichChunk **ppOperationTerm,
554         IRichChunk **ppValueTerm);
555 
556     HRESULT (STDMETHODCALLTYPE *Clone)(
557         ICondition2* This,
558         ICondition **ppc);
559 
560     /*** ICondition2 methods ***/
561     HRESULT (STDMETHODCALLTYPE *GetLocale)(
562         ICondition2* This,
563         LPWSTR *ppszLocaleName);
564 
565     HRESULT (STDMETHODCALLTYPE *GetLeafConditionInfo)(
566         ICondition2* This,
567         PROPERTYKEY *ppropkey,
568         CONDITION_OPERATION *pcop,
569         PROPVARIANT *ppropvar);
570 
571     END_INTERFACE
572 } ICondition2Vtbl;
573 interface ICondition2 {
574     CONST_VTBL ICondition2Vtbl* lpVtbl;
575 };
576 
577 #ifdef COBJMACROS
578 #ifndef WIDL_C_INLINE_WRAPPERS
579 /*** IUnknown methods ***/
580 #define ICondition2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
581 #define ICondition2_AddRef(This) (This)->lpVtbl->AddRef(This)
582 #define ICondition2_Release(This) (This)->lpVtbl->Release(This)
583 /*** IPersist methods ***/
584 #define ICondition2_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
585 /*** IPersistStream methods ***/
586 #define ICondition2_IsDirty(This) (This)->lpVtbl->IsDirty(This)
587 #define ICondition2_Load(This,pStm) (This)->lpVtbl->Load(This,pStm)
588 #define ICondition2_Save(This,pStm,fClearDirty) (This)->lpVtbl->Save(This,pStm,fClearDirty)
589 #define ICondition2_GetSizeMax(This,pcbSize) (This)->lpVtbl->GetSizeMax(This,pcbSize)
590 /*** ICondition methods ***/
591 #define ICondition2_GetConditionType(This,pNodeType) (This)->lpVtbl->GetConditionType(This,pNodeType)
592 #define ICondition2_GetSubConditions(This,riid,ppv) (This)->lpVtbl->GetSubConditions(This,riid,ppv)
593 #define ICondition2_GetComparisonInfo(This,ppszPropertyName,pcop,ppropvar) (This)->lpVtbl->GetComparisonInfo(This,ppszPropertyName,pcop,ppropvar)
594 #define ICondition2_GetValueType(This,ppszValueTypeName) (This)->lpVtbl->GetValueType(This,ppszValueTypeName)
595 #define ICondition2_GetValueNormalization(This,ppszNormalization) (This)->lpVtbl->GetValueNormalization(This,ppszNormalization)
596 #define ICondition2_GetInputTerms(This,ppPropertyTerm,ppOperationTerm,ppValueTerm) (This)->lpVtbl->GetInputTerms(This,ppPropertyTerm,ppOperationTerm,ppValueTerm)
597 #define ICondition2_Clone(This,ppc) (This)->lpVtbl->Clone(This,ppc)
598 /*** ICondition2 methods ***/
599 #define ICondition2_GetLocale(This,ppszLocaleName) (This)->lpVtbl->GetLocale(This,ppszLocaleName)
600 #define ICondition2_GetLeafConditionInfo(This,ppropkey,pcop,ppropvar) (This)->lpVtbl->GetLeafConditionInfo(This,ppropkey,pcop,ppropvar)
601 #else
602 /*** IUnknown methods ***/
603 static FORCEINLINE HRESULT ICondition2_QueryInterface(ICondition2* This,REFIID riid,void **ppvObject) {
604     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
605 }
606 static FORCEINLINE ULONG ICondition2_AddRef(ICondition2* This) {
607     return This->lpVtbl->AddRef(This);
608 }
609 static FORCEINLINE ULONG ICondition2_Release(ICondition2* This) {
610     return This->lpVtbl->Release(This);
611 }
612 /*** IPersist methods ***/
613 static FORCEINLINE HRESULT ICondition2_GetClassID(ICondition2* This,CLSID *pClassID) {
614     return This->lpVtbl->GetClassID(This,pClassID);
615 }
616 /*** IPersistStream methods ***/
617 static FORCEINLINE HRESULT ICondition2_IsDirty(ICondition2* This) {
618     return This->lpVtbl->IsDirty(This);
619 }
620 static FORCEINLINE HRESULT ICondition2_Load(ICondition2* This,IStream *pStm) {
621     return This->lpVtbl->Load(This,pStm);
622 }
623 static FORCEINLINE HRESULT ICondition2_Save(ICondition2* This,IStream *pStm,WINBOOL fClearDirty) {
624     return This->lpVtbl->Save(This,pStm,fClearDirty);
625 }
626 static FORCEINLINE HRESULT ICondition2_GetSizeMax(ICondition2* This,ULARGE_INTEGER *pcbSize) {
627     return This->lpVtbl->GetSizeMax(This,pcbSize);
628 }
629 /*** ICondition methods ***/
630 static FORCEINLINE HRESULT ICondition2_GetConditionType(ICondition2* This,CONDITION_TYPE *pNodeType) {
631     return This->lpVtbl->GetConditionType(This,pNodeType);
632 }
633 static FORCEINLINE HRESULT ICondition2_GetSubConditions(ICondition2* This,REFIID riid,void **ppv) {
634     return This->lpVtbl->GetSubConditions(This,riid,ppv);
635 }
636 static FORCEINLINE HRESULT ICondition2_GetComparisonInfo(ICondition2* This,LPWSTR *ppszPropertyName,CONDITION_OPERATION *pcop,PROPVARIANT *ppropvar) {
637     return This->lpVtbl->GetComparisonInfo(This,ppszPropertyName,pcop,ppropvar);
638 }
639 static FORCEINLINE HRESULT ICondition2_GetValueType(ICondition2* This,LPWSTR *ppszValueTypeName) {
640     return This->lpVtbl->GetValueType(This,ppszValueTypeName);
641 }
642 static FORCEINLINE HRESULT ICondition2_GetValueNormalization(ICondition2* This,LPWSTR *ppszNormalization) {
643     return This->lpVtbl->GetValueNormalization(This,ppszNormalization);
644 }
645 static FORCEINLINE HRESULT ICondition2_GetInputTerms(ICondition2* This,IRichChunk **ppPropertyTerm,IRichChunk **ppOperationTerm,IRichChunk **ppValueTerm) {
646     return This->lpVtbl->GetInputTerms(This,ppPropertyTerm,ppOperationTerm,ppValueTerm);
647 }
648 static FORCEINLINE HRESULT ICondition2_Clone(ICondition2* This,ICondition **ppc) {
649     return This->lpVtbl->Clone(This,ppc);
650 }
651 /*** ICondition2 methods ***/
652 static FORCEINLINE HRESULT ICondition2_GetLocale(ICondition2* This,LPWSTR *ppszLocaleName) {
653     return This->lpVtbl->GetLocale(This,ppszLocaleName);
654 }
655 static FORCEINLINE HRESULT ICondition2_GetLeafConditionInfo(ICondition2* This,PROPERTYKEY *ppropkey,CONDITION_OPERATION *pcop,PROPVARIANT *ppropvar) {
656     return This->lpVtbl->GetLeafConditionInfo(This,ppropkey,pcop,ppropvar);
657 }
658 #endif
659 #endif
660 
661 #endif
662 
663 HRESULT STDMETHODCALLTYPE ICondition2_GetLocale_Proxy(
664     ICondition2* This,
665     LPWSTR *ppszLocaleName);
666 void __RPC_STUB ICondition2_GetLocale_Stub(
667     IRpcStubBuffer* This,
668     IRpcChannelBuffer* pRpcChannelBuffer,
669     PRPC_MESSAGE pRpcMessage,
670     DWORD* pdwStubPhase);
671 HRESULT STDMETHODCALLTYPE ICondition2_RemoteGetLeafConditionInfo_Proxy(
672     ICondition2* This,
673     PROPERTYKEY *ppropkey,
674     CONDITION_OPERATION *pcop,
675     PROPVARIANT *ppropvar);
676 void __RPC_STUB ICondition2_RemoteGetLeafConditionInfo_Stub(
677     IRpcStubBuffer* This,
678     IRpcChannelBuffer* pRpcChannelBuffer,
679     PRPC_MESSAGE pRpcMessage,
680     DWORD* pdwStubPhase);
681 HRESULT CALLBACK ICondition2_GetLeafConditionInfo_Proxy(
682     ICondition2* This,
683     PROPERTYKEY *ppropkey,
684     CONDITION_OPERATION *pcop,
685     PROPVARIANT *ppropvar);
686 HRESULT __RPC_STUB ICondition2_GetLeafConditionInfo_Stub(
687     ICondition2* This,
688     PROPERTYKEY *ppropkey,
689     CONDITION_OPERATION *pcop,
690     PROPVARIANT *ppropvar);
691 
692 #endif  /* __ICondition2_INTERFACE_DEFINED__ */
693 
694 #endif
695 /* Begin additional prototypes for all interfaces */
696 
697 ULONG           __RPC_USER BSTR_UserSize     (ULONG *, ULONG, BSTR *);
698 unsigned char * __RPC_USER BSTR_UserMarshal  (ULONG *, unsigned char *, BSTR *);
699 unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
700 void            __RPC_USER BSTR_UserFree     (ULONG *, BSTR *);
701 ULONG           __RPC_USER LPSAFEARRAY_UserSize     (ULONG *, ULONG, LPSAFEARRAY *);
702 unsigned char * __RPC_USER LPSAFEARRAY_UserMarshal  (ULONG *, unsigned char *, LPSAFEARRAY *);
703 unsigned char * __RPC_USER LPSAFEARRAY_UserUnmarshal(ULONG *, unsigned char *, LPSAFEARRAY *);
704 void            __RPC_USER LPSAFEARRAY_UserFree     (ULONG *, LPSAFEARRAY *);
705 
706 /* End additional prototypes */
707 
708 #ifdef __cplusplus
709 }
710 #endif
711 
712 #endif /* __structuredquerycondition_h__ */
713