Home | History | Annotate | Download | only in include
      1 /**
      2  * This file has no copyright assigned and is placed in the Public Domain.
      3  * This file is part of the mingw-w64 runtime package.
      4  * No warranty is given; refer to the file DISCLAIMER.PD within this package.
      5  */
      6 #ifndef __REQUIRED_RPCNDR_H_VERSION__
      7 #define __REQUIRED_RPCNDR_H_VERSION__ 475
      8 #endif
      9 
     10 #include "rpc.h"
     11 #include "rpcndr.h"
     12 
     13 #ifndef __RPCNDR_H_VERSION__
     14 #error This stub requires an updated version of <rpcndr.h>
     15 #endif
     16 
     17 #ifndef COM_NO_WINDOWS_H
     18 #include "windows.h"
     19 #include "ole2.h"
     20 #endif
     21 
     22 #ifndef __wmiutils_h__
     23 #define __wmiutils_h__
     24 
     25 #ifndef __IWbemPathKeyList_FWD_DEFINED__
     26 #define __IWbemPathKeyList_FWD_DEFINED__
     27 typedef struct IWbemPathKeyList IWbemPathKeyList;
     28 #endif
     29 
     30 #ifndef __IWbemPath_FWD_DEFINED__
     31 #define __IWbemPath_FWD_DEFINED__
     32 typedef struct IWbemPath IWbemPath;
     33 #endif
     34 
     35 #ifndef __WbemDefPath_FWD_DEFINED__
     36 #define __WbemDefPath_FWD_DEFINED__
     37 
     38 #ifdef __cplusplus
     39 typedef class WbemDefPath WbemDefPath;
     40 #else
     41 typedef struct WbemDefPath WbemDefPath;
     42 #endif
     43 #endif
     44 
     45 #ifndef __IWbemQuery_FWD_DEFINED__
     46 #define __IWbemQuery_FWD_DEFINED__
     47 typedef struct IWbemQuery IWbemQuery;
     48 #endif
     49 
     50 #ifndef __WbemQuery_FWD_DEFINED__
     51 #define __WbemQuery_FWD_DEFINED__
     52 #ifdef __cplusplus
     53 typedef class WbemQuery WbemQuery;
     54 #else
     55 typedef struct WbemQuery WbemQuery;
     56 #endif
     57 #endif
     58 
     59 #ifndef __IWbemQuery_FWD_DEFINED__
     60 #define __IWbemQuery_FWD_DEFINED__
     61 typedef struct IWbemQuery IWbemQuery;
     62 #endif
     63 
     64 #ifdef __cplusplus
     65 extern "C" {
     66 #endif
     67 
     68 #ifndef __MIDL_user_allocate_free_DEFINED__
     69 #define __MIDL_user_allocate_free_DEFINED__
     70   void *__RPC_API MIDL_user_allocate(size_t);
     71   void __RPC_API MIDL_user_free(void *);
     72 #endif
     73 
     74   extern RPC_IF_HANDLE __MIDL_itf_wmiutils_0000_v0_0_c_ifspec;
     75   extern RPC_IF_HANDLE __MIDL_itf_wmiutils_0000_v0_0_s_ifspec;
     76 
     77 #ifndef __WbemUtilities_v1_LIBRARY_DEFINED__
     78 #define __WbemUtilities_v1_LIBRARY_DEFINED__
     79 
     80   typedef enum tag_WBEM_PATH_STATUS_FLAG {
     81     WBEMPATH_INFO_ANON_LOCAL_MACHINE = 0x1,WBEMPATH_INFO_HAS_MACHINE_NAME = 0x2,WBEMPATH_INFO_IS_CLASS_REF = 0x4,WBEMPATH_INFO_IS_INST_REF = 0x8,
     82     WBEMPATH_INFO_HAS_SUBSCOPES = 0x10,WBEMPATH_INFO_IS_COMPOUND = 0x20,WBEMPATH_INFO_HAS_V2_REF_PATHS = 0x40,WBEMPATH_INFO_HAS_IMPLIED_KEY = 0x80,
     83     WBEMPATH_INFO_CONTAINS_SINGLETON = 0x100,WBEMPATH_INFO_V1_COMPLIANT = 0x200,WBEMPATH_INFO_V2_COMPLIANT = 0x400,WBEMPATH_INFO_CIM_COMPLIANT = 0x800,
     84     WBEMPATH_INFO_IS_SINGLETON = 0x1000,WBEMPATH_INFO_IS_PARENT = 0x2000,WBEMPATH_INFO_SERVER_NAMESPACE_ONLY = 0x4000,WBEMPATH_INFO_NATIVE_PATH = 0x8000,
     85     WBEMPATH_INFO_WMI_PATH = 0x10000,WBEMPATH_INFO_PATH_HAD_SERVER = 0x20000
     86   } tag_WBEM_PATH_STATUS_FLAG;
     87 
     88   typedef enum tag_WBEM_PATH_CREATE_FLAG {
     89     WBEMPATH_CREATE_ACCEPT_RELATIVE = 0x1,WBEMPATH_CREATE_ACCEPT_ABSOLUTE = 0x2,WBEMPATH_CREATE_ACCEPT_ALL = 0x4,WBEMPATH_TREAT_SINGLE_IDENT_AS_NS = 0x8
     90   } tag_WBEM_PATH_CREATE_FLAG;
     91 
     92   typedef enum tag_WBEM_GET_TEXT_FLAGS {
     93     WBEMPATH_COMPRESSED = 0x1,WBEMPATH_GET_RELATIVE_ONLY = 0x2,WBEMPATH_GET_SERVER_TOO = 0x4,WBEMPATH_GET_SERVER_AND_NAMESPACE_ONLY = 0x8,
     94     WBEMPATH_GET_NAMESPACE_ONLY = 0x10,WBEMPATH_GET_ORIGINAL = 0x20
     95   } tag_WBEM_GET_TEXT_FLAGS;
     96 
     97   typedef enum tag_WBEM_GET_KEY_FLAGS {
     98     WBEMPATH_TEXT = 0x1,WBEMPATH_QUOTEDTEXT = 0x2
     99   } tag_WBEM_GET_KEY_FLAGS;
    100 
    101   EXTERN_C const IID LIBID_WbemUtilities_v1;
    102 #ifndef __IWbemPathKeyList_INTERFACE_DEFINED__
    103 #define __IWbemPathKeyList_INTERFACE_DEFINED__
    104   EXTERN_C const IID IID_IWbemPathKeyList;
    105 #if defined(__cplusplus) && !defined(CINTERFACE)
    106   struct IWbemPathKeyList : public IUnknown {
    107   public:
    108     virtual HRESULT WINAPI GetCount(ULONG *puKeyCount) = 0;
    109     virtual HRESULT WINAPI SetKey(LPCWSTR wszName,ULONG uFlags,ULONG uCimType,LPVOID pKeyVal) = 0;
    110     virtual HRESULT WINAPI SetKey2(LPCWSTR wszName,ULONG uFlags,ULONG uCimType,VARIANT *pKeyVal) = 0;
    111     virtual HRESULT WINAPI GetKey(ULONG uKeyIx,ULONG uFlags,ULONG *puNameBufSize,LPWSTR pszKeyName,ULONG *puKeyValBufSize,LPVOID pKeyVal,ULONG *puApparentCimType) = 0;
    112     virtual HRESULT WINAPI GetKey2(ULONG uKeyIx,ULONG uFlags,ULONG *puNameBufSize,LPWSTR pszKeyName,VARIANT *pKeyValue,ULONG *puApparentCimType) = 0;
    113     virtual HRESULT WINAPI RemoveKey(LPCWSTR wszName,ULONG uFlags) = 0;
    114     virtual HRESULT WINAPI RemoveAllKeys(ULONG uFlags) = 0;
    115     virtual HRESULT WINAPI MakeSingleton(boolean bSet) = 0;
    116     virtual HRESULT WINAPI GetInfo(ULONG uRequestedInfo,ULONGLONG *puResponse) = 0;
    117     virtual HRESULT WINAPI GetText(__LONG32 lFlags,ULONG *puBuffLength,LPWSTR pszText) = 0;
    118   };
    119 #else
    120   typedef struct IWbemPathKeyListVtbl {
    121     BEGIN_INTERFACE
    122       HRESULT (WINAPI *QueryInterface)(IWbemPathKeyList *This,REFIID riid,void **ppvObject);
    123       ULONG (WINAPI *AddRef)(IWbemPathKeyList *This);
    124       ULONG (WINAPI *Release)(IWbemPathKeyList *This);
    125       HRESULT (WINAPI *GetCount)(IWbemPathKeyList *This,ULONG *puKeyCount);
    126       HRESULT (WINAPI *SetKey)(IWbemPathKeyList *This,LPCWSTR wszName,ULONG uFlags,ULONG uCimType,LPVOID pKeyVal);
    127       HRESULT (WINAPI *SetKey2)(IWbemPathKeyList *This,LPCWSTR wszName,ULONG uFlags,ULONG uCimType,VARIANT *pKeyVal);
    128       HRESULT (WINAPI *GetKey)(IWbemPathKeyList *This,ULONG uKeyIx,ULONG uFlags,ULONG *puNameBufSize,LPWSTR pszKeyName,ULONG *puKeyValBufSize,LPVOID pKeyVal,ULONG *puApparentCimType);
    129       HRESULT (WINAPI *GetKey2)(IWbemPathKeyList *This,ULONG uKeyIx,ULONG uFlags,ULONG *puNameBufSize,LPWSTR pszKeyName,VARIANT *pKeyValue,ULONG *puApparentCimType);
    130       HRESULT (WINAPI *RemoveKey)(IWbemPathKeyList *This,LPCWSTR wszName,ULONG uFlags);
    131       HRESULT (WINAPI *RemoveAllKeys)(IWbemPathKeyList *This,ULONG uFlags);
    132       HRESULT (WINAPI *MakeSingleton)(IWbemPathKeyList *This,boolean bSet);
    133       HRESULT (WINAPI *GetInfo)(IWbemPathKeyList *This,ULONG uRequestedInfo,ULONGLONG *puResponse);
    134       HRESULT (WINAPI *GetText)(IWbemPathKeyList *This,__LONG32 lFlags,ULONG *puBuffLength,LPWSTR pszText);
    135     END_INTERFACE
    136   } IWbemPathKeyListVtbl;
    137   struct IWbemPathKeyList {
    138     CONST_VTBL struct IWbemPathKeyListVtbl *lpVtbl;
    139   };
    140 #ifdef COBJMACROS
    141 #define IWbemPathKeyList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    142 #define IWbemPathKeyList_AddRef(This) (This)->lpVtbl->AddRef(This)
    143 #define IWbemPathKeyList_Release(This) (This)->lpVtbl->Release(This)
    144 #define IWbemPathKeyList_GetCount(This,puKeyCount) (This)->lpVtbl->GetCount(This,puKeyCount)
    145 #define IWbemPathKeyList_SetKey(This,wszName,uFlags,uCimType,pKeyVal) (This)->lpVtbl->SetKey(This,wszName,uFlags,uCimType,pKeyVal)
    146 #define IWbemPathKeyList_SetKey2(This,wszName,uFlags,uCimType,pKeyVal) (This)->lpVtbl->SetKey2(This,wszName,uFlags,uCimType,pKeyVal)
    147 #define IWbemPathKeyList_GetKey(This,uKeyIx,uFlags,puNameBufSize,pszKeyName,puKeyValBufSize,pKeyVal,puApparentCimType) (This)->lpVtbl->GetKey(This,uKeyIx,uFlags,puNameBufSize,pszKeyName,puKeyValBufSize,pKeyVal,puApparentCimType)
    148 #define IWbemPathKeyList_GetKey2(This,uKeyIx,uFlags,puNameBufSize,pszKeyName,pKeyValue,puApparentCimType) (This)->lpVtbl->GetKey2(This,uKeyIx,uFlags,puNameBufSize,pszKeyName,pKeyValue,puApparentCimType)
    149 #define IWbemPathKeyList_RemoveKey(This,wszName,uFlags) (This)->lpVtbl->RemoveKey(This,wszName,uFlags)
    150 #define IWbemPathKeyList_RemoveAllKeys(This,uFlags) (This)->lpVtbl->RemoveAllKeys(This,uFlags)
    151 #define IWbemPathKeyList_MakeSingleton(This,bSet) (This)->lpVtbl->MakeSingleton(This,bSet)
    152 #define IWbemPathKeyList_GetInfo(This,uRequestedInfo,puResponse) (This)->lpVtbl->GetInfo(This,uRequestedInfo,puResponse)
    153 #define IWbemPathKeyList_GetText(This,lFlags,puBuffLength,pszText) (This)->lpVtbl->GetText(This,lFlags,puBuffLength,pszText)
    154 #endif
    155 #endif
    156   HRESULT WINAPI IWbemPathKeyList_GetCount_Proxy(IWbemPathKeyList *This,ULONG *puKeyCount);
    157   void __RPC_STUB IWbemPathKeyList_GetCount_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    158   HRESULT WINAPI IWbemPathKeyList_SetKey_Proxy(IWbemPathKeyList *This,LPCWSTR wszName,ULONG uFlags,ULONG uCimType,LPVOID pKeyVal);
    159   void __RPC_STUB IWbemPathKeyList_SetKey_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    160   HRESULT WINAPI IWbemPathKeyList_SetKey2_Proxy(IWbemPathKeyList *This,LPCWSTR wszName,ULONG uFlags,ULONG uCimType,VARIANT *pKeyVal);
    161   void __RPC_STUB IWbemPathKeyList_SetKey2_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    162   HRESULT WINAPI IWbemPathKeyList_GetKey_Proxy(IWbemPathKeyList *This,ULONG uKeyIx,ULONG uFlags,ULONG *puNameBufSize,LPWSTR pszKeyName,ULONG *puKeyValBufSize,LPVOID pKeyVal,ULONG *puApparentCimType);
    163   void __RPC_STUB IWbemPathKeyList_GetKey_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    164   HRESULT WINAPI IWbemPathKeyList_GetKey2_Proxy(IWbemPathKeyList *This,ULONG uKeyIx,ULONG uFlags,ULONG *puNameBufSize,LPWSTR pszKeyName,VARIANT *pKeyValue,ULONG *puApparentCimType);
    165   void __RPC_STUB IWbemPathKeyList_GetKey2_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    166   HRESULT WINAPI IWbemPathKeyList_RemoveKey_Proxy(IWbemPathKeyList *This,LPCWSTR wszName,ULONG uFlags);
    167   void __RPC_STUB IWbemPathKeyList_RemoveKey_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    168   HRESULT WINAPI IWbemPathKeyList_RemoveAllKeys_Proxy(IWbemPathKeyList *This,ULONG uFlags);
    169   void __RPC_STUB IWbemPathKeyList_RemoveAllKeys_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    170   HRESULT WINAPI IWbemPathKeyList_MakeSingleton_Proxy(IWbemPathKeyList *This,boolean bSet);
    171   void __RPC_STUB IWbemPathKeyList_MakeSingleton_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    172   HRESULT WINAPI IWbemPathKeyList_GetInfo_Proxy(IWbemPathKeyList *This,ULONG uRequestedInfo,ULONGLONG *puResponse);
    173   void __RPC_STUB IWbemPathKeyList_GetInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    174   HRESULT WINAPI IWbemPathKeyList_GetText_Proxy(IWbemPathKeyList *This,__LONG32 lFlags,ULONG *puBuffLength,LPWSTR pszText);
    175   void __RPC_STUB IWbemPathKeyList_GetText_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    176 #endif
    177 
    178 #ifndef __IWbemPath_INTERFACE_DEFINED__
    179 #define __IWbemPath_INTERFACE_DEFINED__
    180   EXTERN_C const IID IID_IWbemPath;
    181 #if defined(__cplusplus) && !defined(CINTERFACE)
    182   struct IWbemPath : public IUnknown {
    183   public:
    184     virtual HRESULT WINAPI SetText(ULONG uMode,LPCWSTR pszPath) = 0;
    185     virtual HRESULT WINAPI GetText(__LONG32 lFlags,ULONG *puBuffLength,LPWSTR pszText) = 0;
    186     virtual HRESULT WINAPI GetInfo(ULONG uRequestedInfo,ULONGLONG *puResponse) = 0;
    187     virtual HRESULT WINAPI SetServer(LPCWSTR Name) = 0;
    188     virtual HRESULT WINAPI GetServer(ULONG *puNameBufLength,LPWSTR pName) = 0;
    189     virtual HRESULT WINAPI GetNamespaceCount(ULONG *puCount) = 0;
    190     virtual HRESULT WINAPI SetNamespaceAt(ULONG uIndex,LPCWSTR pszName) = 0;
    191     virtual HRESULT WINAPI GetNamespaceAt(ULONG uIndex,ULONG *puNameBufLength,LPWSTR pName) = 0;
    192     virtual HRESULT WINAPI RemoveNamespaceAt(ULONG uIndex) = 0;
    193     virtual HRESULT WINAPI RemoveAllNamespaces(void) = 0;
    194     virtual HRESULT WINAPI GetScopeCount(ULONG *puCount) = 0;
    195     virtual HRESULT WINAPI SetScope(ULONG uIndex,LPWSTR pszClass) = 0;
    196     virtual HRESULT WINAPI SetScopeFromText(ULONG uIndex,LPWSTR pszText) = 0;
    197     virtual HRESULT WINAPI GetScope(ULONG uIndex,ULONG *puClassNameBufSize,LPWSTR pszClass,IWbemPathKeyList **pKeyList) = 0;
    198     virtual HRESULT WINAPI GetScopeAsText(ULONG uIndex,ULONG *puTextBufSize,LPWSTR pszText) = 0;
    199     virtual HRESULT WINAPI RemoveScope(ULONG uIndex) = 0;
    200     virtual HRESULT WINAPI RemoveAllScopes(void) = 0;
    201     virtual HRESULT WINAPI SetClassName(LPCWSTR Name) = 0;
    202     virtual HRESULT WINAPI GetClassName(ULONG *puBuffLength,LPWSTR pszName) = 0;
    203     virtual HRESULT WINAPI GetKeyList(IWbemPathKeyList **pOut) = 0;
    204     virtual HRESULT WINAPI CreateClassPart(__LONG32 lFlags,LPCWSTR Name) = 0;
    205     virtual HRESULT WINAPI DeleteClassPart(__LONG32 lFlags) = 0;
    206     virtual WINBOOL WINAPI IsRelative(LPWSTR wszMachine,LPWSTR wszNamespace) = 0;
    207     virtual WINBOOL WINAPI IsRelativeOrChild(LPWSTR wszMachine,LPWSTR wszNamespace,__LONG32 lFlags) = 0;
    208     virtual WINBOOL WINAPI IsLocal(LPCWSTR wszMachine) = 0;
    209     virtual WINBOOL WINAPI IsSameClassName(LPCWSTR wszClass) = 0;
    210   };
    211 #else
    212   typedef struct IWbemPathVtbl {
    213     BEGIN_INTERFACE
    214       HRESULT (WINAPI *QueryInterface)(IWbemPath *This,REFIID riid,void **ppvObject);
    215       ULONG (WINAPI *AddRef)(IWbemPath *This);
    216       ULONG (WINAPI *Release)(IWbemPath *This);
    217       HRESULT (WINAPI *SetText)(IWbemPath *This,ULONG uMode,LPCWSTR pszPath);
    218       HRESULT (WINAPI *GetText)(IWbemPath *This,__LONG32 lFlags,ULONG *puBuffLength,LPWSTR pszText);
    219       HRESULT (WINAPI *GetInfo)(IWbemPath *This,ULONG uRequestedInfo,ULONGLONG *puResponse);
    220       HRESULT (WINAPI *SetServer)(IWbemPath *This,LPCWSTR Name);
    221       HRESULT (WINAPI *GetServer)(IWbemPath *This,ULONG *puNameBufLength,LPWSTR pName);
    222       HRESULT (WINAPI *GetNamespaceCount)(IWbemPath *This,ULONG *puCount);
    223       HRESULT (WINAPI *SetNamespaceAt)(IWbemPath *This,ULONG uIndex,LPCWSTR pszName);
    224       HRESULT (WINAPI *GetNamespaceAt)(IWbemPath *This,ULONG uIndex,ULONG *puNameBufLength,LPWSTR pName);
    225       HRESULT (WINAPI *RemoveNamespaceAt)(IWbemPath *This,ULONG uIndex);
    226       HRESULT (WINAPI *RemoveAllNamespaces)(IWbemPath *This);
    227       HRESULT (WINAPI *GetScopeCount)(IWbemPath *This,ULONG *puCount);
    228       HRESULT (WINAPI *SetScope)(IWbemPath *This,ULONG uIndex,LPWSTR pszClass);
    229       HRESULT (WINAPI *SetScopeFromText)(IWbemPath *This,ULONG uIndex,LPWSTR pszText);
    230       HRESULT (WINAPI *GetScope)(IWbemPath *This,ULONG uIndex,ULONG *puClassNameBufSize,LPWSTR pszClass,IWbemPathKeyList **pKeyList);
    231       HRESULT (WINAPI *GetScopeAsText)(IWbemPath *This,ULONG uIndex,ULONG *puTextBufSize,LPWSTR pszText);
    232       HRESULT (WINAPI *RemoveScope)(IWbemPath *This,ULONG uIndex);
    233       HRESULT (WINAPI *RemoveAllScopes)(IWbemPath *This);
    234       HRESULT (WINAPI *SetClassName)(IWbemPath *This,LPCWSTR Name);
    235       HRESULT (WINAPI *GetClassName)(IWbemPath *This,ULONG *puBuffLength,LPWSTR pszName);
    236       HRESULT (WINAPI *GetKeyList)(IWbemPath *This,IWbemPathKeyList **pOut);
    237       HRESULT (WINAPI *CreateClassPart)(IWbemPath *This,__LONG32 lFlags,LPCWSTR Name);
    238       HRESULT (WINAPI *DeleteClassPart)(IWbemPath *This,__LONG32 lFlags);
    239       WINBOOL (WINAPI *IsRelative)(IWbemPath *This,LPWSTR wszMachine,LPWSTR wszNamespace);
    240       WINBOOL (WINAPI *IsRelativeOrChild)(IWbemPath *This,LPWSTR wszMachine,LPWSTR wszNamespace,__LONG32 lFlags);
    241       WINBOOL (WINAPI *IsLocal)(IWbemPath *This,LPCWSTR wszMachine);
    242       WINBOOL (WINAPI *IsSameClassName)(IWbemPath *This,LPCWSTR wszClass);
    243     END_INTERFACE
    244   } IWbemPathVtbl;
    245   struct IWbemPath {
    246     CONST_VTBL struct IWbemPathVtbl *lpVtbl;
    247   };
    248 #ifdef COBJMACROS
    249 #define IWbemPath_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    250 #define IWbemPath_AddRef(This) (This)->lpVtbl->AddRef(This)
    251 #define IWbemPath_Release(This) (This)->lpVtbl->Release(This)
    252 #define IWbemPath_SetText(This,uMode,pszPath) (This)->lpVtbl->SetText(This,uMode,pszPath)
    253 #define IWbemPath_GetText(This,lFlags,puBuffLength,pszText) (This)->lpVtbl->GetText(This,lFlags,puBuffLength,pszText)
    254 #define IWbemPath_GetInfo(This,uRequestedInfo,puResponse) (This)->lpVtbl->GetInfo(This,uRequestedInfo,puResponse)
    255 #define IWbemPath_SetServer(This,Name) (This)->lpVtbl->SetServer(This,Name)
    256 #define IWbemPath_GetServer(This,puNameBufLength,pName) (This)->lpVtbl->GetServer(This,puNameBufLength,pName)
    257 #define IWbemPath_GetNamespaceCount(This,puCount) (This)->lpVtbl->GetNamespaceCount(This,puCount)
    258 #define IWbemPath_SetNamespaceAt(This,uIndex,pszName) (This)->lpVtbl->SetNamespaceAt(This,uIndex,pszName)
    259 #define IWbemPath_GetNamespaceAt(This,uIndex,puNameBufLength,pName) (This)->lpVtbl->GetNamespaceAt(This,uIndex,puNameBufLength,pName)
    260 #define IWbemPath_RemoveNamespaceAt(This,uIndex) (This)->lpVtbl->RemoveNamespaceAt(This,uIndex)
    261 #define IWbemPath_RemoveAllNamespaces(This) (This)->lpVtbl->RemoveAllNamespaces(This)
    262 #define IWbemPath_GetScopeCount(This,puCount) (This)->lpVtbl->GetScopeCount(This,puCount)
    263 #define IWbemPath_SetScope(This,uIndex,pszClass) (This)->lpVtbl->SetScope(This,uIndex,pszClass)
    264 #define IWbemPath_SetScopeFromText(This,uIndex,pszText) (This)->lpVtbl->SetScopeFromText(This,uIndex,pszText)
    265 #define IWbemPath_GetScope(This,uIndex,puClassNameBufSize,pszClass,pKeyList) (This)->lpVtbl->GetScope(This,uIndex,puClassNameBufSize,pszClass,pKeyList)
    266 #define IWbemPath_GetScopeAsText(This,uIndex,puTextBufSize,pszText) (This)->lpVtbl->GetScopeAsText(This,uIndex,puTextBufSize,pszText)
    267 #define IWbemPath_RemoveScope(This,uIndex) (This)->lpVtbl->RemoveScope(This,uIndex)
    268 #define IWbemPath_RemoveAllScopes(This) (This)->lpVtbl->RemoveAllScopes(This)
    269 #define IWbemPath_SetClassName(This,Name) (This)->lpVtbl->SetClassName(This,Name)
    270 #define IWbemPath_GetClassName(This,puBuffLength,pszName) (This)->lpVtbl->GetClassName(This,puBuffLength,pszName)
    271 #define IWbemPath_GetKeyList(This,pOut) (This)->lpVtbl->GetKeyList(This,pOut)
    272 #define IWbemPath_CreateClassPart(This,lFlags,Name) (This)->lpVtbl->CreateClassPart(This,lFlags,Name)
    273 #define IWbemPath_DeleteClassPart(This,lFlags) (This)->lpVtbl->DeleteClassPart(This,lFlags)
    274 #define IWbemPath_IsRelative(This,wszMachine,wszNamespace) (This)->lpVtbl->IsRelative(This,wszMachine,wszNamespace)
    275 #define IWbemPath_IsRelativeOrChild(This,wszMachine,wszNamespace,lFlags) (This)->lpVtbl->IsRelativeOrChild(This,wszMachine,wszNamespace,lFlags)
    276 #define IWbemPath_IsLocal(This,wszMachine) (This)->lpVtbl->IsLocal(This,wszMachine)
    277 #define IWbemPath_IsSameClassName(This,wszClass) (This)->lpVtbl->IsSameClassName(This,wszClass)
    278 #endif
    279 #endif
    280   HRESULT WINAPI IWbemPath_SetText_Proxy(IWbemPath *This,ULONG uMode,LPCWSTR pszPath);
    281   void __RPC_STUB IWbemPath_SetText_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    282   HRESULT WINAPI IWbemPath_GetText_Proxy(IWbemPath *This,__LONG32 lFlags,ULONG *puBuffLength,LPWSTR pszText);
    283   void __RPC_STUB IWbemPath_GetText_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    284   HRESULT WINAPI IWbemPath_GetInfo_Proxy(IWbemPath *This,ULONG uRequestedInfo,ULONGLONG *puResponse);
    285   void __RPC_STUB IWbemPath_GetInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    286   HRESULT WINAPI IWbemPath_SetServer_Proxy(IWbemPath *This,LPCWSTR Name);
    287   void __RPC_STUB IWbemPath_SetServer_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    288   HRESULT WINAPI IWbemPath_GetServer_Proxy(IWbemPath *This,ULONG *puNameBufLength,LPWSTR pName);
    289   void __RPC_STUB IWbemPath_GetServer_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    290   HRESULT WINAPI IWbemPath_GetNamespaceCount_Proxy(IWbemPath *This,ULONG *puCount);
    291   void __RPC_STUB IWbemPath_GetNamespaceCount_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    292   HRESULT WINAPI IWbemPath_SetNamespaceAt_Proxy(IWbemPath *This,ULONG uIndex,LPCWSTR pszName);
    293   void __RPC_STUB IWbemPath_SetNamespaceAt_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    294   HRESULT WINAPI IWbemPath_GetNamespaceAt_Proxy(IWbemPath *This,ULONG uIndex,ULONG *puNameBufLength,LPWSTR pName);
    295   void __RPC_STUB IWbemPath_GetNamespaceAt_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    296   HRESULT WINAPI IWbemPath_RemoveNamespaceAt_Proxy(IWbemPath *This,ULONG uIndex);
    297   void __RPC_STUB IWbemPath_RemoveNamespaceAt_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    298   HRESULT WINAPI IWbemPath_RemoveAllNamespaces_Proxy(IWbemPath *This);
    299   void __RPC_STUB IWbemPath_RemoveAllNamespaces_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    300   HRESULT WINAPI IWbemPath_GetScopeCount_Proxy(IWbemPath *This,ULONG *puCount);
    301   void __RPC_STUB IWbemPath_GetScopeCount_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    302   HRESULT WINAPI IWbemPath_SetScope_Proxy(IWbemPath *This,ULONG uIndex,LPWSTR pszClass);
    303   void __RPC_STUB IWbemPath_SetScope_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    304   HRESULT WINAPI IWbemPath_SetScopeFromText_Proxy(IWbemPath *This,ULONG uIndex,LPWSTR pszText);
    305   void __RPC_STUB IWbemPath_SetScopeFromText_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    306   HRESULT WINAPI IWbemPath_GetScope_Proxy(IWbemPath *This,ULONG uIndex,ULONG *puClassNameBufSize,LPWSTR pszClass,IWbemPathKeyList **pKeyList);
    307   void __RPC_STUB IWbemPath_GetScope_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    308   HRESULT WINAPI IWbemPath_GetScopeAsText_Proxy(IWbemPath *This,ULONG uIndex,ULONG *puTextBufSize,LPWSTR pszText);
    309   void __RPC_STUB IWbemPath_GetScopeAsText_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    310   HRESULT WINAPI IWbemPath_RemoveScope_Proxy(IWbemPath *This,ULONG uIndex);
    311   void __RPC_STUB IWbemPath_RemoveScope_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    312   HRESULT WINAPI IWbemPath_RemoveAllScopes_Proxy(IWbemPath *This);
    313   void __RPC_STUB IWbemPath_RemoveAllScopes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    314   HRESULT WINAPI IWbemPath_SetClassName_Proxy(IWbemPath *This,LPCWSTR Name);
    315   void __RPC_STUB IWbemPath_SetClassName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    316   HRESULT WINAPI IWbemPath_GetClassName_Proxy(IWbemPath *This,ULONG *puBuffLength,LPWSTR pszName);
    317   void __RPC_STUB IWbemPath_GetClassName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    318   HRESULT WINAPI IWbemPath_GetKeyList_Proxy(IWbemPath *This,IWbemPathKeyList **pOut);
    319   void __RPC_STUB IWbemPath_GetKeyList_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    320   HRESULT WINAPI IWbemPath_CreateClassPart_Proxy(IWbemPath *This,__LONG32 lFlags,LPCWSTR Name);
    321   void __RPC_STUB IWbemPath_CreateClassPart_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    322   HRESULT WINAPI IWbemPath_DeleteClassPart_Proxy(IWbemPath *This,__LONG32 lFlags);
    323   void __RPC_STUB IWbemPath_DeleteClassPart_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    324   WINBOOL WINAPI IWbemPath_IsRelative_Proxy(IWbemPath *This,LPWSTR wszMachine,LPWSTR wszNamespace);
    325   void __RPC_STUB IWbemPath_IsRelative_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    326   WINBOOL WINAPI IWbemPath_IsRelativeOrChild_Proxy(IWbemPath *This,LPWSTR wszMachine,LPWSTR wszNamespace,__LONG32 lFlags);
    327   void __RPC_STUB IWbemPath_IsRelativeOrChild_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    328   WINBOOL WINAPI IWbemPath_IsLocal_Proxy(IWbemPath *This,LPCWSTR wszMachine);
    329   void __RPC_STUB IWbemPath_IsLocal_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    330   WINBOOL WINAPI IWbemPath_IsSameClassName_Proxy(IWbemPath *This,LPCWSTR wszClass);
    331   void __RPC_STUB IWbemPath_IsSameClassName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    332 #endif
    333 
    334   EXTERN_C const CLSID CLSID_WbemDefPath;
    335 #ifdef __cplusplus
    336   class WbemDefPath;
    337 #endif
    338 
    339 #ifndef __IWbemQuery_INTERFACE_DEFINED__
    340 #define __IWbemQuery_INTERFACE_DEFINED__
    341   EXTERN_C const IID IID_IWbemQuery;
    342 #if defined(__cplusplus) && !defined(CINTERFACE)
    343   struct IWbemQuery : public IUnknown {
    344   public:
    345     virtual HRESULT WINAPI Empty(void) = 0;
    346     virtual HRESULT WINAPI SetLanguageFeatures(ULONG uFlags,ULONG uArraySize,ULONG *puFeatures) = 0;
    347     virtual HRESULT WINAPI TestLanguageFeatures(ULONG uFlags,ULONG *uArraySize,ULONG *puFeatures) = 0;
    348     virtual HRESULT WINAPI Parse(LPCWSTR pszLang,LPCWSTR pszQuery,ULONG uFlags) = 0;
    349     virtual HRESULT WINAPI GetAnalysis(ULONG uAnalysisType,ULONG uFlags,LPVOID *pAnalysis) = 0;
    350     virtual HRESULT WINAPI FreeMemory(LPVOID pMem) = 0;
    351     virtual HRESULT WINAPI GetQueryInfo(ULONG uAnalysisType,ULONG uInfoId,ULONG uBufSize,LPVOID pDestBuf) = 0;
    352   };
    353 #else
    354   typedef struct IWbemQueryVtbl {
    355     BEGIN_INTERFACE
    356       HRESULT (WINAPI *QueryInterface)(IWbemQuery *This,REFIID riid,void **ppvObject);
    357       ULONG (WINAPI *AddRef)(IWbemQuery *This);
    358       ULONG (WINAPI *Release)(IWbemQuery *This);
    359       HRESULT (WINAPI *Empty)(IWbemQuery *This);
    360       HRESULT (WINAPI *SetLanguageFeatures)(IWbemQuery *This,ULONG uFlags,ULONG uArraySize,ULONG *puFeatures);
    361       HRESULT (WINAPI *TestLanguageFeatures)(IWbemQuery *This,ULONG uFlags,ULONG *uArraySize,ULONG *puFeatures);
    362       HRESULT (WINAPI *Parse)(IWbemQuery *This,LPCWSTR pszLang,LPCWSTR pszQuery,ULONG uFlags);
    363       HRESULT (WINAPI *GetAnalysis)(IWbemQuery *This,ULONG uAnalysisType,ULONG uFlags,LPVOID *pAnalysis);
    364       HRESULT (WINAPI *FreeMemory)(IWbemQuery *This,LPVOID pMem);
    365       HRESULT (WINAPI *GetQueryInfo)(IWbemQuery *This,ULONG uAnalysisType,ULONG uInfoId,ULONG uBufSize,LPVOID pDestBuf);
    366     END_INTERFACE
    367   } IWbemQueryVtbl;
    368   struct IWbemQuery {
    369     CONST_VTBL struct IWbemQueryVtbl *lpVtbl;
    370   };
    371 #ifdef COBJMACROS
    372 #define IWbemQuery_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    373 #define IWbemQuery_AddRef(This) (This)->lpVtbl->AddRef(This)
    374 #define IWbemQuery_Release(This) (This)->lpVtbl->Release(This)
    375 #define IWbemQuery_Empty(This) (This)->lpVtbl->Empty(This)
    376 #define IWbemQuery_SetLanguageFeatures(This,uFlags,uArraySize,puFeatures) (This)->lpVtbl->SetLanguageFeatures(This,uFlags,uArraySize,puFeatures)
    377 #define IWbemQuery_TestLanguageFeatures(This,uFlags,uArraySize,puFeatures) (This)->lpVtbl->TestLanguageFeatures(This,uFlags,uArraySize,puFeatures)
    378 #define IWbemQuery_Parse(This,pszLang,pszQuery,uFlags) (This)->lpVtbl->Parse(This,pszLang,pszQuery,uFlags)
    379 #define IWbemQuery_GetAnalysis(This,uAnalysisType,uFlags,pAnalysis) (This)->lpVtbl->GetAnalysis(This,uAnalysisType,uFlags,pAnalysis)
    380 #define IWbemQuery_FreeMemory(This,pMem) (This)->lpVtbl->FreeMemory(This,pMem)
    381 #define IWbemQuery_GetQueryInfo(This,uAnalysisType,uInfoId,uBufSize,pDestBuf) (This)->lpVtbl->GetQueryInfo(This,uAnalysisType,uInfoId,uBufSize,pDestBuf)
    382 #endif
    383 #endif
    384   HRESULT WINAPI IWbemQuery_Empty_Proxy(IWbemQuery *This);
    385   void __RPC_STUB IWbemQuery_Empty_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    386   HRESULT WINAPI IWbemQuery_SetLanguageFeatures_Proxy(IWbemQuery *This,ULONG uFlags,ULONG uArraySize,ULONG *puFeatures);
    387   void __RPC_STUB IWbemQuery_SetLanguageFeatures_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    388   HRESULT WINAPI IWbemQuery_TestLanguageFeatures_Proxy(IWbemQuery *This,ULONG uFlags,ULONG *uArraySize,ULONG *puFeatures);
    389   void __RPC_STUB IWbemQuery_TestLanguageFeatures_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    390   HRESULT WINAPI IWbemQuery_Parse_Proxy(IWbemQuery *This,LPCWSTR pszLang,LPCWSTR pszQuery,ULONG uFlags);
    391   void __RPC_STUB IWbemQuery_Parse_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    392   HRESULT WINAPI IWbemQuery_GetAnalysis_Proxy(IWbemQuery *This,ULONG uAnalysisType,ULONG uFlags,LPVOID *pAnalysis);
    393   void __RPC_STUB IWbemQuery_GetAnalysis_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    394   HRESULT WINAPI IWbemQuery_FreeMemory_Proxy(IWbemQuery *This,LPVOID pMem);
    395   void __RPC_STUB IWbemQuery_FreeMemory_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    396   HRESULT WINAPI IWbemQuery_GetQueryInfo_Proxy(IWbemQuery *This,ULONG uAnalysisType,ULONG uInfoId,ULONG uBufSize,LPVOID pDestBuf);
    397   void __RPC_STUB IWbemQuery_GetQueryInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    398 #endif
    399 
    400   EXTERN_C const CLSID CLSID_WbemQuery;
    401 #ifdef __cplusplus
    402   class WbemQuery;
    403 #endif
    404 #endif
    405 
    406   typedef enum __MIDL___MIDL_itf_wmiutils_0116_0001 {
    407     WMIQ_ANALYSIS_RPN_SEQUENCE = 0x1,WMIQ_ANALYSIS_ASSOC_QUERY = 0x2,WMIQ_ANALYSIS_PROP_ANALYSIS_MATRIX = 0x3,WMIQ_ANALYSIS_QUERY_TEXT = 0x4,
    408     WMIQ_ANALYSIS_RESERVED = 0x8000000
    409   } WMIQ_ANALYSIS_TYPE;
    410 
    411   typedef enum __MIDL___MIDL_itf_wmiutils_0116_0002 {
    412     WMIQ_RPN_TOKEN_EXPRESSION = 1,WMIQ_RPN_TOKEN_AND = 2,WMIQ_RPN_TOKEN_OR = 3,WMIQ_RPN_TOKEN_NOT = 4,WMIQ_RPN_OP_UNDEFINED = 0,WMIQ_RPN_OP_EQ = 1,
    413     WMIQ_RPN_OP_NE = 2,WMIQ_RPN_OP_GE = 3,WMIQ_RPN_OP_LE = 4,WMIQ_RPN_OP_LT = 5,WMIQ_RPN_OP_GT = 6,WMIQ_RPN_OP_LIKE = 7,WMIQ_RPN_OP_ISA = 8,
    414     WMIQ_RPN_OP_ISNOTA = 9,WMIQ_RPN_OP_ISNULL = 10,WMIQ_RPN_OP_ISNOTNULL = 11,WMIQ_RPN_LEFT_PROPERTY_NAME = 0x1,WMIQ_RPN_RIGHT_PROPERTY_NAME = 0x2,
    415     WMIQ_RPN_CONST2 = 0x4,WMIQ_RPN_CONST = 0x8,WMIQ_RPN_RELOP = 0x10,WMIQ_RPN_LEFT_FUNCTION = 0x20,WMIQ_RPN_RIGHT_FUNCTION = 0x40,
    416     WMIQ_RPN_GET_TOKEN_TYPE = 1,WMIQ_RPN_GET_EXPR_SHAPE = 2,WMIQ_RPN_GET_LEFT_FUNCTION = 3,WMIQ_RPN_GET_RIGHT_FUNCTION = 4,WMIQ_RPN_GET_RELOP = 5,
    417     WMIQ_RPN_NEXT_TOKEN = 1,WMIQ_RPN_FROM_UNARY = 0x1,WMIQ_RPN_FROM_PATH = 0x2,WMIQ_RPN_FROM_CLASS_LIST = 0x4,WMIQ_RPN_FROM_MULTIPLE = 0x8
    418   } WMIQ_RPN_TOKEN_FLAGS;
    419 
    420   typedef enum __MIDL___MIDL_itf_wmiutils_0116_0003 {
    421     WMIQ_ASSOCQ_ASSOCIATORS = 0x1,WMIQ_ASSOCQ_REFERENCES = 0x2,WMIQ_ASSOCQ_RESULTCLASS = 0x4,WMIQ_ASSOCQ_ASSOCCLASS = 0x8,WMIQ_ASSOCQ_ROLE = 0x10,
    422     WMIQ_ASSOCQ_RESULTROLE = 0x20,WMIQ_ASSOCQ_REQUIREDQUALIFIER = 0x40,WMIQ_ASSOCQ_REQUIREDASSOCQUALIFIER = 0x80,WMIQ_ASSOCQ_CLASSDEFSONLY = 0x100,
    423     WMIQ_ASSOCQ_KEYSONLY = 0x200,WMIQ_ASSOCQ_SCHEMAONLY = 0x400,WMIQ_ASSOCQ_CLASSREFSONLY = 0x800
    424   } WMIQ_ASSOCQ_FLAGS;
    425 
    426   typedef struct tag_SWbemQueryQualifiedName {
    427     ULONG m_uVersion;
    428     ULONG m_uTokenType;
    429     ULONG m_uNameListSize;
    430     LPCWSTR *m_ppszNameList;
    431     WINBOOL m_bArraysUsed;
    432     WINBOOL *m_pbArrayElUsed;
    433     ULONG *m_puArrayIndex;
    434   } SWbemQueryQualifiedName;
    435 
    436   typedef union tag_SWbemRpnConst {
    437     LPCWSTR m_pszStrVal;
    438     WINBOOL m_bBoolVal;
    439     LONG m_lLongVal;
    440     ULONG m_uLongVal;
    441     double m_dblVal;
    442     __MINGW_EXTENSION __int64 m_lVal64;
    443     __MINGW_EXTENSION __int64 m_uVal64;
    444   } SWbemRpnConst;
    445 
    446   typedef struct tag_SWbemRpnQueryToken {
    447     ULONG m_uVersion;
    448     ULONG m_uTokenType;
    449     ULONG m_uSubexpressionShape;
    450     ULONG m_uOperator;
    451     SWbemQueryQualifiedName *m_pRightIdent;
    452     SWbemQueryQualifiedName *m_pLeftIdent;
    453     ULONG m_uConstApparentType;
    454     SWbemRpnConst m_Const;
    455     ULONG m_uConst2ApparentType;
    456     SWbemRpnConst m_Const2;
    457     LPCWSTR m_pszRightFunc;
    458     LPCWSTR m_pszLeftFunc;
    459   } SWbemRpnQueryToken;
    460 
    461   typedef struct tag_SWbemRpnTokenList {
    462     ULONG m_uVersion;
    463     ULONG m_uTokenType;
    464     ULONG m_uNumTokens;
    465   } SWbemRpnTokenList;
    466 
    467   typedef enum tag_WMIQ_LANGUAGE_FEATURES {
    468     WMIQ_LF1_BASIC_SELECT = 1,WMIQ_LF2_CLASS_NAME_IN_QUERY = 2,WMIQ_LF3_STRING_CASE_FUNCTIONS = 3,WMIQ_LF4_PROP_TO_PROP_TESTS = 4,
    469     WMIQ_LF5_COUNT_STAR = 5,WMIQ_LF6_ORDER_BY = 6,WMIQ_LF7_DISTINCT = 7,WMIQ_LF8_ISA = 8,WMIQ_LF9_THIS = 9,WMIQ_LF10_COMPEX_SUBEXPRESSIONS = 10,
    470     WMIQ_LF11_ALIASING = 11,WMIQ_LF12_GROUP_BY_HAVING = 12,WMIQ_LF13_WMI_WITHIN = 13,WMIQ_LF14_SQL_WRITE_OPERATIONS = 14,WMIQ_LF15_GO = 15,
    471     WMIQ_LF16_SINGLE_LEVEL_TRANSACTIONS = 16,WMIQ_LF17_QUALIFIED_NAMES = 17,WMIQ_LF18_ASSOCIATONS = 18,WMIQ_LF19_SYSTEM_PROPERTIES = 19,
    472     WMIQ_LF20_EXTENDED_SYSTEM_PROPERTIES = 20,WMIQ_LF21_SQL89_JOINS = 21,WMIQ_LF22_SQL92_JOINS = 22,WMIQ_LF23_SUBSELECTS = 23,
    473     WMIQ_LF24_UMI_EXTENSIONS = 24,WMIQ_LF25_DATEPART = 25,WMIQ_LF26_LIKE = 26,WMIQ_LF27_CIM_TEMPORAL_CONSTRUCTS = 27,
    474     WMIQ_LF28_STANDARD_AGGREGATES = 28,WMIQ_LF29_MULTI_LEVEL_ORDER_BY = 29,WMIQ_LF30_WMI_PRAGMAS = 30,WMIQ_LF31_QUALIFIER_TESTS = 31,
    475     WMIQ_LF32_SP_EXECUTE = 32,WMIQ_LF33_ARRAY_ACCESS = 33,WMIQ_LF34_UNION = 34,WMIQ_LF35_COMPLEX_SELECT_TARGET = 35,WMIQ_LF36_REFERENCE_TESTS = 36,
    476     WMIQ_LF37_SELECT_INTO = 37,WMIQ_LF38_BASIC_DATETIME_TESTS = 38,WMIQ_LF39_COUNT_COLUMN = 39,WMIQ_LF40_BETWEEN = 40,WMIQ_LF_LAST = 40
    477   } WMIQ_LANGUAGE_FEATURES;
    478 
    479   typedef enum tag_WMIQ_RPNQ_FEATURE {
    480     WMIQ_RPNF_WHERE_CLAUSE_PRESENT = 0x1,WMIQ_RPNF_QUERY_IS_CONJUNCTIVE = 0x2,WMIQ_RPNF_QUERY_IS_DISJUNCTIVE = 0x4,WMIQ_RPNF_PROJECTION = 0x8,
    481     WMIQ_RPNF_FEATURE_SELECT_STAR = 0x10,WMIQ_RPNF_EQUALITY_TESTS_ONLY = 0x20,WMIQ_RPNF_COUNT_STAR = 0x40,WMIQ_RPNF_QUALIFIED_NAMES_USED = 0x80,
    482     WMIQ_RPNF_SYSPROP_CLASS_USED = 0x100,WMIQ_RPNF_PROP_TO_PROP_TESTS = 0x200,WMIQ_RPNF_ORDER_BY = 0x400,WMIQ_RPNF_ISA_USED = 0x800,
    483     WMIQ_RPNF_GROUP_BY_HAVING = 0x1000,WMIQ_RPNF_ARRAY_ACCESS_USED = 0x2000
    484   } WMIQ_RPNF_FEATURE;
    485 
    486   typedef struct tag_SWbemRpnEncodedQuery {
    487     ULONG m_uVersion;
    488     ULONG m_uTokenType;
    489     __MINGW_EXTENSION unsigned __int64 m_uParsedFeatureMask;
    490     ULONG m_uDetectedArraySize;
    491     ULONG *m_puDetectedFeatures;
    492     ULONG m_uSelectListSize;
    493     SWbemQueryQualifiedName **m_ppSelectList;
    494     ULONG m_uFromTargetType;
    495     LPCWSTR m_pszOptionalFromPath;
    496     ULONG m_uFromListSize;
    497     LPCWSTR *m_ppszFromList;
    498     ULONG m_uWhereClauseSize;
    499     SWbemRpnQueryToken **m_ppRpnWhereClause;
    500     double m_dblWithinPolling;
    501     double m_dblWithinWindow;
    502     ULONG m_uOrderByListSize;
    503     LPCWSTR *m_ppszOrderByList;
    504     ULONG *m_uOrderDirectionEl;
    505   } SWbemRpnEncodedQuery;
    506 
    507   typedef struct tag_SWbemAnalysisMatrix {
    508     ULONG m_uVersion;
    509     ULONG m_uMatrixType;
    510     LPCWSTR m_pszProperty;
    511     ULONG m_uPropertyType;
    512     ULONG m_uEntries;
    513     LPVOID *m_pValues;
    514     WINBOOL *m_pbTruthTable;
    515   } SWbemAnalysisMatrix;
    516 
    517   typedef struct tag_SWbemAnalysisMatrixList {
    518     ULONG m_uVersion;
    519     ULONG m_uMatrixType;
    520     ULONG m_uNumMatrices;
    521     SWbemAnalysisMatrix *m_pMatrices;
    522   } SWbemAnalysisMatrixList;
    523 
    524   typedef struct tag_SWbemAssocQueryInf {
    525     ULONG m_uVersion;
    526     ULONG m_uAnalysisType;
    527     ULONG m_uFeatureMask;
    528     IWbemPath *m_pPath;
    529     LPWSTR m_pszPath;
    530     LPWSTR m_pszQueryText;
    531     LPWSTR m_pszResultClass;
    532     LPWSTR m_pszAssocClass;
    533     LPWSTR m_pszRole;
    534     LPWSTR m_pszResultRole;
    535     LPWSTR m_pszRequiredQualifier;
    536     LPWSTR m_pszRequiredAssocQualifier;
    537   } SWbemAssocQueryInf;
    538 
    539   extern RPC_IF_HANDLE __MIDL_itf_wmiutils_0116_v0_0_c_ifspec;
    540   extern RPC_IF_HANDLE __MIDL_itf_wmiutils_0116_v0_0_s_ifspec;
    541 
    542 #ifdef __cplusplus
    543 }
    544 #endif
    545 #endif
    546