]> git.proxmox.com Git - mirror_smartmontools-debian.git/blame - os_win32/wbemcli_small.h
Imported Upstream version 6.4+svn4214
[mirror_smartmontools-debian.git] / os_win32 / wbemcli_small.h
CommitLineData
cfbba5b9
GI
1/*
2 * os_win32/wbemcli_small.h
3 *
6b80b4d2 4 * Home page of code is: http://www.smartmontools.org
cfbba5b9
GI
5 *
6 * This file was extracted from wbemcli.h of the w64 mingw-runtime package
7 * (http://mingw-w64.sourceforge.net/). See original copyright below.
8 */
9
10/**
11 * This file has no copyright assigned and is placed in the Public Domain.
12 * This file is part of the w64 mingw-runtime package.
13 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
14 */
15#ifndef __REQUIRED_RPCNDR_H_VERSION__
16#define __REQUIRED_RPCNDR_H_VERSION__ 475
17#endif
18
19#include "rpc.h"
20#include "rpcndr.h"
21
22#ifndef __RPCNDR_H_VERSION__
23#error This stub requires an updated version of <rpcndr.h>
24#endif
25
26#include "windows.h"
27#include "ole2.h"
28
29#ifndef __wbemcli_h__
30#define __wbemcli_h__
31
32#if !defined(__cplusplus) || defined(CINTERFACE)
33#error C++ interfaces only
34#endif
35
36typedef struct IWbemQualifierSet IWbemQualifierSet;
37typedef struct IWbemObjectSink IWbemObjectSink;
38typedef struct IEnumWbemClassObject IEnumWbemClassObject;
39typedef struct IWbemCallResult IWbemCallResult;
40typedef struct IWbemContext IWbemContext;
41
42extern "C" {
43
44 typedef enum tag_WBEM_GENERIC_FLAG_TYPE {
45 WBEM_FLAG_RETURN_IMMEDIATELY = 0x10,WBEM_FLAG_RETURN_WBEM_COMPLETE = 0,WBEM_FLAG_BIDIRECTIONAL = 0,WBEM_FLAG_FORWARD_ONLY = 0x20,
46 WBEM_FLAG_NO_ERROR_OBJECT = 0x40,WBEM_FLAG_RETURN_ERROR_OBJECT = 0,WBEM_FLAG_SEND_STATUS = 0x80,WBEM_FLAG_DONT_SEND_STATUS = 0,
47 WBEM_FLAG_ENSURE_LOCATABLE = 0x100,WBEM_FLAG_DIRECT_READ = 0x200,WBEM_FLAG_SEND_ONLY_SELECTED = 0,WBEM_RETURN_WHEN_COMPLETE = 0,
48 WBEM_RETURN_IMMEDIATELY = 0x10,WBEM_MASK_RESERVED_FLAGS = 0x1f000,WBEM_FLAG_USE_AMENDED_QUALIFIERS = 0x20000,
49 WBEM_FLAG_STRONG_VALIDATION = 0x100000
50 } WBEM_GENERIC_FLAG_TYPE;
51
52 typedef long CIMTYPE;
53
54 struct IWbemClassObject : public IUnknown {
55 public:
56 virtual HRESULT WINAPI GetQualifierSet(IWbemQualifierSet **ppQualSet) = 0;
57 virtual HRESULT WINAPI Get(LPCWSTR wszName,long lFlags,VARIANT *pVal,CIMTYPE *pType,long *plFlavor) = 0;
58 virtual HRESULT WINAPI Put(LPCWSTR wszName,long lFlags,VARIANT *pVal,CIMTYPE Type) = 0;
59 virtual HRESULT WINAPI Delete(LPCWSTR wszName) = 0;
60 virtual HRESULT WINAPI GetNames(LPCWSTR wszQualifierName,long lFlags,VARIANT *pQualifierVal,SAFEARRAY **pNames) = 0;
61 virtual HRESULT WINAPI BeginEnumeration(long lEnumFlags) = 0;
62 virtual HRESULT WINAPI Next(long lFlags,BSTR *strName,VARIANT *pVal,CIMTYPE *pType,long *plFlavor) = 0;
63 virtual HRESULT WINAPI EndEnumeration(void) = 0;
64 virtual HRESULT WINAPI GetPropertyQualifierSet(LPCWSTR wszProperty,IWbemQualifierSet **ppQualSet) = 0;
65 virtual HRESULT WINAPI Clone(IWbemClassObject **ppCopy) = 0;
66 virtual HRESULT WINAPI GetObjectText(long lFlags,BSTR *pstrObjectText) = 0;
67 virtual HRESULT WINAPI SpawnDerivedClass(long lFlags,IWbemClassObject **ppNewClass) = 0;
68 virtual HRESULT WINAPI SpawnInstance(long lFlags,IWbemClassObject **ppNewInstance) = 0;
69 virtual HRESULT WINAPI CompareTo(long lFlags,IWbemClassObject *pCompareTo) = 0;
70 virtual HRESULT WINAPI GetPropertyOrigin(LPCWSTR wszName,BSTR *pstrClassName) = 0;
71 virtual HRESULT WINAPI InheritsFrom(LPCWSTR strAncestor) = 0;
72 virtual HRESULT WINAPI GetMethod(LPCWSTR wszName,long lFlags,IWbemClassObject **ppInSignature,IWbemClassObject **ppOutSignature) = 0;
73 virtual HRESULT WINAPI PutMethod(LPCWSTR wszName,long lFlags,IWbemClassObject *pInSignature,IWbemClassObject *pOutSignature) = 0;
74 virtual HRESULT WINAPI DeleteMethod(LPCWSTR wszName) = 0;
75 virtual HRESULT WINAPI BeginMethodEnumeration(long lEnumFlags) = 0;
76 virtual HRESULT WINAPI NextMethod(long lFlags,BSTR *pstrName,IWbemClassObject **ppInSignature,IWbemClassObject **ppOutSignature) = 0;
77 virtual HRESULT WINAPI EndMethodEnumeration(void) = 0;
78 virtual HRESULT WINAPI GetMethodQualifierSet(LPCWSTR wszMethod,IWbemQualifierSet **ppQualSet) = 0;
79 virtual HRESULT WINAPI GetMethodOrigin(LPCWSTR wszMethodName,BSTR *pstrClassName) = 0;
80 };
81
82 struct IWbemServices : public IUnknown {
83 public:
84 virtual HRESULT WINAPI OpenNamespace(const BSTR strNamespace,long lFlags,IWbemContext *pCtx,IWbemServices **ppWorkingNamespace,IWbemCallResult **ppResult) = 0;
85 virtual HRESULT WINAPI CancelAsyncCall(IWbemObjectSink *pSink) = 0;
86 virtual HRESULT WINAPI QueryObjectSink(long lFlags,IWbemObjectSink **ppResponseHandler) = 0;
87 virtual HRESULT WINAPI GetObject(const BSTR strObjectPath,long lFlags,IWbemContext *pCtx,IWbemClassObject **ppObject,IWbemCallResult **ppCallResult) = 0;
88 virtual HRESULT WINAPI GetObjectAsync(const BSTR strObjectPath,long lFlags,IWbemContext *pCtx,IWbemObjectSink *pResponseHandler) = 0;
89 virtual HRESULT WINAPI PutClass(IWbemClassObject *pObject,long lFlags,IWbemContext *pCtx,IWbemCallResult **ppCallResult) = 0;
90 virtual HRESULT WINAPI PutClassAsync(IWbemClassObject *pObject,long lFlags,IWbemContext *pCtx,IWbemObjectSink *pResponseHandler) = 0;
91 virtual HRESULT WINAPI DeleteClass(const BSTR strClass,long lFlags,IWbemContext *pCtx,IWbemCallResult **ppCallResult) = 0;
92 virtual HRESULT WINAPI DeleteClassAsync(const BSTR strClass,long lFlags,IWbemContext *pCtx,IWbemObjectSink *pResponseHandler) = 0;
93 virtual HRESULT WINAPI CreateClassEnum(const BSTR strSuperclass,long lFlags,IWbemContext *pCtx,IEnumWbemClassObject **ppEnum) = 0;
94 virtual HRESULT WINAPI CreateClassEnumAsync(const BSTR strSuperclass,long lFlags,IWbemContext *pCtx,IWbemObjectSink *pResponseHandler) = 0;
95 virtual HRESULT WINAPI PutInstance(IWbemClassObject *pInst,long lFlags,IWbemContext *pCtx,IWbemCallResult **ppCallResult) = 0;
96 virtual HRESULT WINAPI PutInstanceAsync(IWbemClassObject *pInst,long lFlags,IWbemContext *pCtx,IWbemObjectSink *pResponseHandler) = 0;
97 virtual HRESULT WINAPI DeleteInstance(const BSTR strObjectPath,long lFlags,IWbemContext *pCtx,IWbemCallResult **ppCallResult) = 0;
98 virtual HRESULT WINAPI DeleteInstanceAsync(const BSTR strObjectPath,long lFlags,IWbemContext *pCtx,IWbemObjectSink *pResponseHandler) = 0;
99 virtual HRESULT WINAPI CreateInstanceEnum(const BSTR strFilter,long lFlags,IWbemContext *pCtx,IEnumWbemClassObject **ppEnum) = 0;
100 virtual HRESULT WINAPI CreateInstanceEnumAsync(const BSTR strFilter,long lFlags,IWbemContext *pCtx,IWbemObjectSink *pResponseHandler) = 0;
101 virtual HRESULT WINAPI ExecQuery(const BSTR strQueryLanguage,const BSTR strQuery,long lFlags,IWbemContext *pCtx,IEnumWbemClassObject **ppEnum) = 0;
102 virtual HRESULT WINAPI ExecQueryAsync(const BSTR strQueryLanguage,const BSTR strQuery,long lFlags,IWbemContext *pCtx,IWbemObjectSink *pResponseHandler) = 0;
103 virtual HRESULT WINAPI ExecNotificationQuery(const BSTR strQueryLanguage,const BSTR strQuery,long lFlags,IWbemContext *pCtx,IEnumWbemClassObject **ppEnum) = 0;
104 virtual HRESULT WINAPI ExecNotificationQueryAsync(const BSTR strQueryLanguage,const BSTR strQuery,long lFlags,IWbemContext *pCtx,IWbemObjectSink *pResponseHandler) = 0;
105 virtual HRESULT WINAPI ExecMethod(const BSTR strObjectPath,const BSTR strMethodName,long lFlags,IWbemContext *pCtx,IWbemClassObject *pInParams,IWbemClassObject **ppOutParams,IWbemCallResult **ppCallResult) = 0;
106 virtual HRESULT WINAPI ExecMethodAsync(const BSTR strObjectPath,const BSTR strMethodName,long lFlags,IWbemContext *pCtx,IWbemClassObject *pInParams,IWbemObjectSink *pResponseHandler) = 0;
107 };
108
109 EXTERN_C const IID IID_IWbemLocator;
110 struct IWbemLocator : public IUnknown {
111 public:
112 virtual HRESULT WINAPI ConnectServer(const BSTR strNetworkResource,const BSTR strUser,const BSTR strPassword,const BSTR strLocale,long lSecurityFlags,const BSTR strAuthority,IWbemContext *pCtx,IWbemServices **ppNamespace) = 0;
113 };
114
115 struct IEnumWbemClassObject : public IUnknown {
116 public:
117 virtual HRESULT WINAPI Reset(void) = 0;
118 virtual HRESULT WINAPI Next(long lTimeout,ULONG uCount,IWbemClassObject **apObjects,ULONG *puReturned) = 0;
119 virtual HRESULT WINAPI NextAsync(ULONG uCount,IWbemObjectSink *pSink) = 0;
120 virtual HRESULT WINAPI Clone(IEnumWbemClassObject **ppEnum) = 0;
121 virtual HRESULT WINAPI Skip(long lTimeout,ULONG nCount) = 0;
122 };
123
124 EXTERN_C const CLSID CLSID_WbemLocator;
125
126 typedef enum tag_WBEM_CONNECT_OPTIONS {
127 WBEM_FLAG_CONNECT_REPOSITORY_ONLY = 0x40,WBEM_FLAG_CONNECT_USE_MAX_WAIT = 0x80,WBEM_FLAG_CONNECT_PROVIDERS = 0x100
128 } WBEM_CONNECT_OPTIONS;
129
130}
131#endif