1
0
mirror of https://github.com/samba-team/samba.git synced 2025-02-28 01:58:17 +03:00

Import proper IDL for interface pointers.

This commit is contained in:
Jelmer Vernooij 2008-09-16 04:15:39 +02:00
parent c212a65b65
commit e9d44b2e1c
3 changed files with 251 additions and 323 deletions

View File

@ -32,6 +32,15 @@ interface IWbemClassObject : IUnknown
};
[
uuid(9A653086-174F-11d2-B5F9-00104B703EFD)
]
coclass WbemClassObject
{
interface IWbemClassObject;
};
[
uuid("9556dc99-828c-11cf-a37e-00aa003240c7"),
object,
@ -379,35 +388,6 @@ interface IWbemClassObject : IUnknown
// WCF_CLASS_PART_SHARED = 0x104
} WCO_FLAGS;
typedef [public,nopush,nopull] struct
{
[relative,charset(UTF16)] uint16 *name;
WBEM_FLAVOR_TYPE flavors;
CIMTYPE_ENUMERATION cimtype;
[switch_is(cimtype)] CIMVAR value;
} WbemQualifier;
typedef [public,nopush,nopull] struct
{
uint32 count;
[ref] WbemQualifier* item[count];
} WbemQualifiers;
typedef [public] struct
{
uint32 cimtype;
uint16 nr;
uint32 offset;
uint32 depth;
WbemQualifiers qualifiers;
} WbemPropertyDesc;
typedef [public] struct
{
[relative,charset(UTF16)] uint16 *name;
[relative] WbemPropertyDesc *desc;
} WbemProperty;
typedef [public,nopull,nopush] struct
{
uint32 count;
@ -419,178 +399,107 @@ interface IWbemClassObject : IUnknown
DEFAULT_FLAG_INHERITED = 2
} DEFAULT_FLAGS;
typedef struct {
WbemProperty property;
uint8 default_flags;
[switch_is(property.desc->cimtype)] CIMVAR default_values;
} WbemClassProperty;
WERROR OpenNamespace(
[in] BSTR strNamespace,
[in] long lFlags,
[in] IWbemContext* pCtx,
[out, in, unique] IWbemServices** ppWorkingNamespace,
[out, in, unique] IWbemCallResult** ppResult
);
WERROR CancelAsyncCall(
[in] IWbemObjectSink* pSink
);
WERROR QueryObjectSink(
[in] long lFlags,
[out] IWbemObjectSink** ppResponseHandler
);
WERROR GetObject(
[in] BSTR strObjectPath,
[in] long lFlags,
[in] IWbemContext* pCtx,
[out, in, unique] IWbemClassObject** ppObject,
[out, in, unique] IWbemCallResult** ppCallResult
);
typedef [public,nopush,nopull,flag(NDR_NOALIGN)] struct
{
uint8 u_0;
[relative, null_is_ffffffff,charset(UTF16)] uint16 *__CLASS;
uint32 data_size;
CIMSTRINGS __DERIVATION;
WbemQualifiers qualifiers;
uint32 __PROPERTY_COUNT;
WbemClassProperty properties[__PROPERTY_COUNT];
} WbemClass;
WERROR GetObjectAsync(
[in] BSTR strObjectPath,
[in] long lFlags,
[in] IWbemContext* pCtx,
[in] IWbemObjectSink* pResponseHandler
);
WERROR PutClass(
[in] IWbemClassObject* pObject,
[in] long lFlags,
[in] IWbemContext* pCtx,
[out, in, unique] IWbemCallResult** ppCallResult
);
typedef [public] struct
{
[relative,null_is_ffffffff,charset(UTF16)] uint16 *name;
uint32 u0;
uint32 u1;
[relative] WbemQualifiers *qualifiers;
[subcontext(4),relative] WbemClassObject *in;
[subcontext(4),relative] WbemClassObject *out;
} WbemMethod;
WERROR PutClassAsync(
[in] IWbemClassObject* pObject,
[in] long lFlags,
[in] IWbemContext* pCtx,
[in] IWbemObjectSink* pResponseHandler
);
typedef [public,flag(NDR_NOALIGN)] struct
{
uint16 count;
uint16 u0; // It has value 5F5F if there are no methods
WbemMethod method[count];
} WbemMethods;
WERROR DeleteClass(
[in] BSTR strClass,
[in] long lFlags,
[in] IWbemContext* pCtx,
[out, in, unique] IWbemCallResult** ppCallResult
);
typedef [public,flag(NDR_NOALIGN),nopush,nopull,noprint] struct
{
uint8 u1_0;
[relative,charset(UTF16)] uint16 *__CLASS;
uint8 *default_flags;
uint32 *data;
uint32 u2_4;
uint8 u3_1;
} WbemInstance;
WERROR DeleteClassAsync(
[in] BSTR strClass,
[in] long lFlags,
[in] IWbemContext* pCtx,
[in] IWbemObjectSink* pResponseHandler
);
typedef [public,nopush,nopull,noprint,flag(NDR_NOALIGN)] struct
{
WCO_FLAGS flags;
[ref,charset(UTF16)] uint16 *__SERVER;
[ref,charset(UTF16)] uint16 *__NAMESPACE;
WbemClass *sup_class;
WbemMethods *sup_methods;
WbemClass *obj_class;
WbemMethods *obj_methods;
WbemInstance *instance;
} WbemClassObject;
WERROR CreateClassEnum(
[in] BSTR strSuperclass,
[in] long lFlags,
[in] IWbemContext* pCtx,
[out] IEnumWbemClassObject** ppEnum
);
// typedef [public] struct {
// [value(0x72657355)] uint32 fFlags;
// uint32 clSize;
// [value(2*clSize)] uint32 _bsize;
// [value(clSize)] uint32 _wsize;
// [flag(NDR_NOALIGN)] uint16 asData[clSize];
// } BSTR1;
//typedef [public,nopush,nopull,noprint,string,charset(UTF16)] uint16 *BSTR;
WERROR CreateClassEnumAsync(
[in] BSTR strSuperclass,
[in] long lFlags,
[in] IWbemContext* pCtx,
[in] IWbemObjectSink* pResponseHandler
);
WERROR OpenNamespace(
// [in] BSTR *strNamespace,
// [in] int32 lFlags
// [in] IWbemContext* pCtx,
// [out] IWbemServices** ppWorkingNamespace,
// [out] IWbemCallResult** ppResult
);
WERROR PutInstance(
[in] IWbemClassObject* pInst,
[in] long lFlags,
[in] IWbemContext* pCtx,
[out, in, unique] IWbemCallResult** ppCallResult
);
WERROR CancelAsyncCall(
// [in] IWbemObjectSink* pSink
);
WERROR PutInstanceAsync(
[in] IWbemClassObject* pInst,
[in] long lFlags,
[in] IWbemContext* pCtx,
[in] IWbemObjectSink* pResponseHandler
);
WERROR QueryObjectSink(
// [in] long lFlags
// [out] IWbemObjectSink** ppResponseHandler
);
// Classes and instances.
// ======================
WERROR DeleteInstance(
[in] BSTR strObjectPath,
[in] long lFlags,
[in] IWbemContext* pCtx,
[out, in, unique] IWbemCallResult** ppCallResult
);
WERROR GetObject(
[in] BSTR strObjectPath,
[in] long lFlags,
[in,unique] IWbemContext* pCtx,
// [in,out,unique] IUnknown** ppObject,
// [in,out,unique] IUnknown** ppCallResult
[in,out,unique] IWbemClassObject** ppObject,
[in,out,unique] IWbemCallResult** ppCallResult
);
WERROR GetObjectAsync(
// [in] BSTR strObjectPath,
// [in] long lFlags
// [in] IWbemContext* pCtx,
// [in] IWbemObjectSink* pResponseHandler
);
WERROR DeleteInstanceAsync(
[in] BSTR strObjectPath,
[in] long lFlags,
[in] IWbemContext* pCtx,
[in] IWbemObjectSink* pResponseHandler
);
WERROR PutClass(
// [in] IWbemClassObject* pObject,
// [in] long lFlags
// [in] IWbemContext* pCtx,
// [out, OPTIONAL] IWbemCallResult** ppCallResult
);
WERROR PutClassAsync(
// [in] IWbemClassObject* pObject,
// [in] long lFlags
// [in] IWbemContext* pCtx,
// [in] IWbemObjectSink* pResponseHandler
);
WERROR DeleteClass(
// [in] BSTR strClass,
// [in] long lFlags
// [in] IWbemContext* pCtx,
// [out, OPTIONAL] IWbemCallResult** ppCallResult
);
WERROR DeleteClassAsync(
// [in] BSTR strClass,
// [in] long lFlags
// [in] IWbemContext* pCtx,
// [in] IWbemObjectSink* pResponseHandler
);
WERROR CreateClassEnum(
// [in] BSTR strSuperclass,
// [in] long lFlags
// [in] IWbemContext* pCtx,
// [out] IEnumWbemClassObject** ppEnum
);
WERROR CreateClassEnumAsync(
// [in] BSTR strSuperclass,
// [in] long lFlags
// [in] IWbemContext* pCtx,
// [in] IWbemObjectSink* pResponseHandler
);
WERROR PutInstance(
// [in] IWbemClassObject* pInst,
// [in] long lFlags
// [in] IWbemContext* pCtx,
// [out, OPTIONAL] IWbemCallResult** ppCallResult
);
WERROR PutInstanceAsync(
// [in] IWbemClassObject* pInst,
// [in] long lFlags
// [in] IWbemContext* pCtx,
// [in] IWbemObjectSink* pResponseHandler
);
WERROR DeleteInstance(
// [in] BSTR strObjectPath,
// [in] long lFlags
// [in] IWbemContext* pCtx,
// [out, OPTIONAL] IWbemCallResult** ppCallResult
);
WERROR DeleteInstanceAsync(
// [in] BSTR strObjectPath,
// [in] long lFlags
// [in] IWbemContext* pCtx,
// [in] IWbemObjectSink* pResponseHandler
);
WERROR CreateInstanceEnum(
[in] BSTR strFilter, // allow more things than a class name
@ -599,12 +508,12 @@ interface IWbemClassObject : IUnknown
[out] IEnumWbemClassObject** ppEnum
);
WERROR CreateInstanceEnumAsync(
// [in] BSTR strFilter, // allow more things than a class name
// [in] long lFlags
// [in] IWbemContext* pCtx,
// [in] IWbemObjectSink* pResponseHandler
);
WERROR CreateInstanceEnumAsync(
[in] BSTR strSuperClass,
[in] long lFlags,
[in] IWbemContext* pCtx,
[in] IWbemObjectSink* pResponseHandler
);
WERROR ExecQuery(
[in] BSTR strQueryLanguage,
@ -614,14 +523,13 @@ interface IWbemClassObject : IUnknown
[out] IEnumWbemClassObject** ppEnum
);
WERROR ExecQueryAsync(
// [in] BSTR strQueryLanguage,
// [in] BSTR strQuery,
// [in] long lFlags
// [in] IWbemContext* pCtx,
// [in] IWbemObjectSink* pResponseHandler
);
WERROR ExecQueryAsync(
[in] BSTR strQueryLanguage,
[in] BSTR strQuery,
[in] long lFlags,
[in] IWbemContext* pCtx,
[in] IWbemObjectSink* pResponseHandler
);
WERROR ExecNotificationQuery(
[in] BSTR strQueryLanguage,
@ -631,16 +539,13 @@ interface IWbemClassObject : IUnknown
[out] IEnumWbemClassObject** ppEnum
);
WERROR ExecNotificationQueryAsync(
// [in] BSTR strQueryLanguage,
// [in] BSTR strQuery,
// [in] long lFlags
// [in] IWbemContext* pCtx,
// [in] IWbemObjectSink* pResponseHandler
);
// Methods
// =======
WERROR ExecNotificationQueryAsync(
[in] BSTR strQueryLanguage,
[in] BSTR strQuery,
[in] long lFlags,
[in] IWbemContext* pCtx,
[in] IWbemObjectSink* pResponseHandler
);
WERROR ExecMethod(
[in] BSTR strObjectPath,
@ -652,14 +557,14 @@ interface IWbemClassObject : IUnknown
[in,out,unique] IWbemCallResult** ppCallResult
);
WERROR ExecMethodAsync(
// [in] BSTR strObjectPath,
// [in] BSTR strMethodName,
// [in] long lFlags
// [in] IWbemContext* pCtx,
// [in] IWbemClassObject* pInParams,
// [in] IWbemObjectSink* pResponseHandler
);
WERROR ExecMethodAsync(
[in] BSTR strObjectPath,
[in] BSTR strMethodName,
[in] uint32 lFlags,
[in] IWbemContext* pCtx,
[in] IWbemClassObject* pInParams,
[in] IWbemObjectSink* pResponseHandler
);
}
[
@ -679,17 +584,17 @@ interface IWbemClassObject : IUnknown
);
WERROR NextAsync(
// [in] ULONG uCount
// [in] IWbemObjectSink* pSink
[in] uint32 uCount
[in] IWbemObjectSink* pSink
);
WERROR IEnumWbemClassObject_Clone(
// [out] IEnumWbemClassObject** ppEnum
[out] IEnumWbemClassObject** ppEnum
);
WERROR Skip(
// [in] long lTimeout,
// [in] ULONG nCount
[in] int32 lTimeout,
[in] uint32 nCount
);
};
@ -744,33 +649,33 @@ interface IWbemClassObject : IUnknown
pointer_default(unique)
] interface IWbemLevel1Login : IUnknown
{
WERROR EstablishPosition(
// [in, unique, string] LPWSTR wszClientMachineName,
// [in] uint32 dwProcessId,
// [out] uint32* phAuthEventHandle
);
WERROR EstablishPosition(
[in, unique, string, charset(UTF16)] uint16* wszLocaleList,
[in] DWORD dwNumLocales,
[out] DWORD* reserved
);
WERROR RequestChallenge(
[in, unique, string, charset(UTF16)] uint16* wszNetworkResource,
[in, unique, string, charset(UTF16)] uint16* wszUser,
[out, size_is(16), length_is(16)] unsigned char* Nonce
);
WERROR WBEMLogin(
[in, unique, string, charset(UTF16)] uint16* wszPreferredLocale,
[in, size_is(16), length_is(16), unique]
unsigned char* AccessToken,
[in] long lFlags,
[in] IWbemContext* pCtx,
[out] IWbemServices** ppNamespace
);
WERROR RequestChallenge(
// [in, unique, string] LPWSTR wszNetworkResource,
// [in, unique, string] LPWSTR wszUser,
// [out] WBEM_128BITS Nonce
);
WERROR WBEMLogin(
// [in, unique, string] LPWSTR wszPreferredLocale,
// [in, unique] WBEM_128BITS AccessToken,
// [in] long lFlags
// [in] IWbemContext* pCtx,
// [out] IWbemServices** ppNamespace
);
WERROR NTLMLogin(
[in,unique,string,charset(UTF16)] uint16 *wszNetworkResource,
[in,unique,string,charset(UTF16)] uint16 *wszPreferredLocale,
[in] long lFlags,
[in,unique] IWbemContext* pCtx,
[out,ref] IWbemServices** ppNamespace
);
WERROR NTLMLogin(
[in,unique,string,charset(UTF16)] uint16 *wszNetworkResource,
[in,unique,string,charset(UTF16)] uint16 *wszPreferredLocale,
[in] long lFlags,
[in,unique] IWbemContext* pCtx,
[out,ref] IWbemServices** ppNamespace
);
}
@ -780,61 +685,61 @@ interface IWbemClassObject : IUnknown
pointer_default(unique)
] interface IWbemWCOSmartEnum : IUnknown
{
typedef struct {
uint32 size;
char data[size];
} WBEMDATA;
typedef struct {
uint32 size;
char data[size];
} WBEMDATA;
typedef enum {
WTYPE_SCHEMA = 1,
WTYPE_CLASS = 2,
WTYPE_OBJECT = 3
} WTYPES;
typedef enum {
WTYPE_SCHEMA = 1,
WTYPE_CLASS = 2,
WTYPE_OBJECT = 3
} WTYPES;
typedef [relative_base] struct {
// [relative] WBEMDATA4 *data; /* 0x9 */
uint32 data_size;
uint8 wtype;
} WBEMDATA4;
typedef [relative_base] struct {
// [relative] WBEMDATA4 *data; /* 0x9 */
uint32 data_size;
uint8 wtype;
} WBEMDATA4;
typedef [relative_base] struct {
[relative] WBEMDATA4 *data; /* 0x9 */
uint32 data_size;
uint8 wtype;
} WBEMDATA3;
typedef [relative_base] struct {
[relative] WBEMDATA4 *data; /* 0x9 */
uint32 data_size;
uint8 wtype;
} WBEMDATA3;
typedef [relative_base] struct {
[relative,size_is(obj_num)] WBEMDATA3 *data; /* 0x8 */
uint32 data_size;
uint32 obj_num;
} WBEMDATA2;
typedef [relative_base] struct {
[relative,size_is(obj_num)] WBEMDATA3 *data; /* 0x8 */
uint32 data_size;
uint32 obj_num;
} WBEMDATA2;
typedef [relative_base] struct {
[relative] WBEMDATA2 *data; /* 0x8 */
uint32 data_size;
} WBEMDATA1;
typedef [relative_base] struct {
[relative] WBEMDATA2 *data; /* 0x8 */
uint32 data_size;
} WBEMDATA1;
typedef [relative_base] struct {
uint32 u1_0; /* 0 */
hyper signature; /* 'WBEMDATA' */
[relative] WBEMDATA1 *data; /* 0x1A */
uint32 data_size;
uint32 u2_0; /* 0 */
uint8 ver_major; /* 1 */
uint8 ver_minor; /* 0 - Win2000, 1 - WinXP/2003 */
} WBEMDATA0;
typedef [relative_base] struct {
uint32 u1_0; /* 0 */
hyper signature; /* 'WBEMDATA' */
[relative] WBEMDATA1 *data; /* 0x1A */
uint32 data_size;
uint32 u2_0; /* 0 */
uint8 ver_major; /* 1 */
uint8 ver_minor; /* 0 - Win2000, 1 - WinXP/2003 */
} WBEMDATA0;
WERROR IWbemWCOSmartEnum_Next(
[in,ref] GUID *gEWCO,
[in] uint32 lTimeOut,
[in] uint32 uCount,
// [in] uint32 unknown,
// [in,ref] GUID *gWCO,
[out,ref] uint32 *puReturned,
[out,ref] uint32 *pSize,
// [out,ref] WBEMDATA0 **pData
[out,ref,noprint,size_is(,*pSize)] uint8 **pData
);
WERROR IWbemWCOSmartEnum_Next(
[in,ref] GUID *gEWCO,
[in] uint32 lTimeOut,
[in] uint32 uCount,
// [in] uint32 unknown,
// [in,ref] GUID *gWCO,
[out,ref] uint32 *puReturned,
[out,ref] uint32 *pSize,
// [out,ref] WBEMDATA0 **pData
[out,ref,noprint,size_is(,*pSize)] uint8 **pData
);
}
[
@ -843,39 +748,55 @@ interface IWbemClassObject : IUnknown
pointer_default(unique)
] interface IWbemFetchSmartEnum : IUnknown
{
WERROR Fetch(
[out] IWbemWCOSmartEnum** ppEnum
);
WERROR Test(
[out] WbemClassObject** ppEnum
);
WERROR Fetch([out] IWbemWCOSmartEnum** ppEnum);
WERROR Test([out] WbemClassObject** ppEnum);
}
[
object,
// restricted,
// restricted,
uuid(44aca675-e8fc-11d0-a07c-00c04fb68820)
] interface IWbemCallResult : IUnknown
{
WERROR GetResultObject(
[in] long lTimeout,
[out] IUnknown** ppResultObject
// [out] IWbemClassObject** ppResultObject
);
WERROR GetResultObject(
[in] long lTimeout,
[out] IUnknown** ppResultObject
[out] IWbemClassObject** ppResultObject
);
WERROR GetResultString(
[in] long lTimeout
// [out] BSTR* pstrResultString
);
WERROR GetResultString(
[in] long lTimeout
[out] BSTR* pstrResultString
);
WERROR GetResultServices(
[in] long lTimeout,
[out] IWbemServices** ppServices
);
WERROR GetResultServices(
[in] long lTimeout,
[out] IWbemServices** ppServices
);
WERROR GetCallStatus(
[in] long lTimeout,
[out] long* plStatus
);
WERROR GetCallStatus(
[in] long lTimeout,
[out] long* plStatus
);
}
[
object,
restricted,
uuid(7c857801-7381-11cf-884d-00aa004b2e24)
]
interface IWbemObjectSink : IUnknown
{
WERROR SetStatus(
[in] long lFlags,
[in] WERROR hResult,
[in] BSTR strParam,
[in] IWbemClassObject* pObjParam
);
WERROR Indicate(
[in] long lObjectCount,
[in, size_is(lObjectCount)] IWbemClassObject** apObjArray
);
};

View File

@ -375,4 +375,6 @@ NTSTATUS dcerpc_request(struct dcerpc_pipe *p,
typedef NTSTATUS (*dcerpc_call_fn) (struct dcerpc_pipe *, TALLOC_CTX *, void *);
enum dcerpc_transport_t dcerpc_transport_by_endpoint_protocol(int prot);
#endif /* __DCERPC_H__ */

View File

@ -276,11 +276,16 @@ element_list1:
| element_list1 base_element ';' { push(@{$_[1]}, $_[2]); $_[1] }
;
optional_const:
#empty
| 'const'
;
element_list2:
#empty
| 'void'
| base_element { [ $_[1] ] }
| element_list2 ',' base_element { push(@{$_[1]}, $_[3]); $_[1] }
| optional_const base_element { [ $_[2] ] }
| element_list2 ',' optional_const base_element { push(@{$_[1]}, $_[4]); $_[1] }
;
array_len: