65 IClientSecurity_AddRef( iface );
92 DWORD *pCapabilities )
110 {
'<',
'C',
'O',
'L',
'E',
'_',
'D',
'E',
'F',
'A',
'U',
'L',
'T',
'_',
'P',
'R',
'I',
'N',
'C',
'I',
'P',
'A',
'L',
'>',0};
111 const OLECHAR *princname = (pServerPrincName == COLE_DEFAULT_PRINCIPAL) ?
defaultW : pServerPrincName;
113 FIXME(
"%p, %p, %u, %u, %s, %u, %u, %p, 0x%08x\n", iface, pProxy, AuthnSvc, AuthzSvc,
155 if (async->
sink) IWbemObjectSink_Release( async->
sink );
172 IWbemObjectSink_AddRef(
sink );
181 async->
proc( async );
232 ws->cs.DebugInfo->Spare[0] = 0;
264 IWbemServices_AddRef( iface );
270 const BSTR strNamespace,
276 static const WCHAR cimv2W[] = {
'c',
'i',
'm',
'v',
'2',0};
277 static const WCHAR defaultW[] = {
'd',
'e',
'f',
'a',
'u',
'l',
't',0};
280 TRACE(
"%p, %s, 0x%08x, %p, %p, %p\n", iface,
debugstr_w(strNamespace), lFlags,
281 pCtx, ppWorkingNamespace,
ppResult);
296 TRACE(
"%p, %p\n", iface, pSink);
336 static const WCHAR cimv2W[] = {
'R',
'O',
'O',
'T',
'\\',
'C',
'I',
'M',
'V',
'2',0};
349 while (*
p && *
p !=
'\\')
p++;
364 while (*
p && *
p !=
':')
p++;
381 while (*
p && *
p !=
'.')
p++;
393 if (
p[0] ==
'.' &&
p[1])
424 {
'S',
'E',
'L',
'E',
'C',
'T',
' ',
'*',
' ',
'F',
'R',
'O',
'M',
' ',
'%',
's',
' ',
425 'W',
'H',
'E',
'R',
'E',
' ',
'%',
's',0};
426 static const WCHAR select_allW[] =
427 {
'S',
'E',
'L',
'E',
'C',
'T',
' ',
'*',
' ',
'F',
'R',
'O',
'M',
' ',0};
474 IEnumWbemClassObject_Release( iter );
481 const BSTR strObjectPath,
485 IWbemCallResult **ppCallResult )
487 TRACE(
"%p, %s, 0x%08x, %p, %p, %p\n", iface,
debugstr_w(strObjectPath), lFlags,
488 pCtx, ppObject, ppCallResult);
490 if (lFlags)
FIXME(
"unsupported flags 0x%08x\n", lFlags);
492 if (!strObjectPath || !strObjectPath[0])
500 const BSTR strObjectPath,
514 IWbemCallResult **ppCallResult )
536 IWbemCallResult **ppCallResult )
555 const BSTR strSuperclass,
566 const BSTR strSuperclass,
580 IWbemCallResult **ppCallResult )
599 const BSTR strObjectPath,
602 IWbemCallResult **ppCallResult )
610 const BSTR strObjectPath,
629 TRACE(
"%p, %s, 0%08x, %p, %p\n", iface,
debugstr_w(strClass), lFlags, pCtx, ppEnum);
631 if (lFlags)
FIXME(
"unsupported flags 0x%08x\n", lFlags);
643 const BSTR strFilter,
654 const BSTR strQueryLanguage,
660 static const WCHAR wqlW[] = {
'W',
'Q',
'L',0};
662 TRACE(
"%p, %s, %s, 0x%08x, %p, %p\n", iface,
debugstr_w(strQueryLanguage),
685 IWbemObjectSink_Indicate(
query->hdr.sink, 1, &
obj );
686 IWbemClassObject_Release(
obj );
688 IEnumWbemClassObject_Release(
result );
696 const BSTR strQueryLanguage,
709 lFlags, pCtx, pResponseHandler);
713 hr = IWbemObjectSink_QueryInterface( pResponseHandler, &IID_IWbemObjectSink, (
void **)&
sink );
720 FIXME(
"handle more than one pending async\n");
724 if (!(
query = heap_alloc_zero(
sizeof(*
query) )))
goto done;
747 IWbemObjectSink_Release(
sink );
753 const BSTR strQueryLanguage,
765 const BSTR strQueryLanguage,
778 lFlags, pCtx, pResponseHandler);
782 hr = IWbemObjectSink_QueryInterface( pResponseHandler, &IID_IWbemObjectSink, (
void **)&
sink );
789 FIXME(
"handle more than one pending async\n");
793 if (!(
query = heap_alloc_zero(
sizeof(*
query) )))
goto done;
816 IWbemObjectSink_Release(
sink );
822 const BSTR strObjectPath,
823 const BSTR strMethodName,
828 IWbemCallResult **ppCallResult )
839 TRACE(
"%p, %s, %s, %08x, %p, %p, %p, %p\n", iface,
debugstr_w(strObjectPath),
840 debugstr_w(strMethodName), lFlags, pCtx, pInParams, ppOutParams, ppCallResult);
842 if (lFlags)
FIXME(
"flags %08x not supported\n", lFlags);
856 if (
hr !=
S_OK)
goto done;
859 if (
hr !=
S_OK)
goto done;
862 if (
hr !=
S_OK)
goto done;
866 if (
hr !=
S_OK)
goto done;
869 if (
hr !=
S_OK)
goto done;
871 hr =
func(
obj, pInParams, ppOutParams );
875 if (
obj) IWbemClassObject_Release(
obj );
884 const BSTR strObjectPath,
885 const BSTR strMethodName,
929 TRACE(
"(%p)\n", ppObj);
939 ws->cs.DebugInfo->Spare[0] = (
DWORD_PTR)(__FILE__
": wbemprox_services.cs");
941 *ppObj = &
ws->IWbemServices_iface;
943 TRACE(
"returning iface %p\n", *ppObj);
static void * heap_alloc(size_t len)
static BOOL heap_free(void *mem)
#define InterlockedIncrement
#define InterlockedDecrement
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
BOOL WINAPI GetComputerNameW(LPWSTR lpBuffer, LPDWORD lpnSize)
static WCHAR * heap_strdupW(const WCHAR *str)
BOOL WINAPI QueueUserWorkItem(IN LPTHREAD_START_ROUTINE Function, IN PVOID Context, IN ULONG Flags)
static BOOL parse_query(const WCHAR **ptr, parse_data *data, DWORD flags)
HRESULT create_class_object(const WCHAR *name, IEnumWbemClassObject *iter, UINT index, struct record *record, IWbemClassObject **obj)
HRESULT EnumWbemClassObject_create(struct query *query, LPVOID *ppObj)
void free_query(struct query *query)
struct table * get_view_table(const struct view *view, UINT index)
HRESULT execute_view(struct view *view)
HRESULT exec_query(const WCHAR *str, IEnumWbemClassObject **result)
static const IWbemServicesVtbl wbem_services_vtbl
static HRESULT WINAPI wbem_services_ExecNotificationQueryAsync(IWbemServices *iface, const BSTR strQueryLanguage, const BSTR strQuery, LONG lFlags, IWbemContext *pCtx, IWbemObjectSink *pResponseHandler)
static HRESULT WINAPI wbem_services_CreateClassEnum(IWbemServices *iface, const BSTR strSuperclass, LONG lFlags, IWbemContext *pCtx, IEnumWbemClassObject **ppEnum)
static HRESULT WINAPI wbem_services_CreateInstanceEnumAsync(IWbemServices *iface, const BSTR strFilter, LONG lFlags, IWbemContext *pCtx, IWbemObjectSink *pResponseHandler)
static HRESULT WINAPI wbem_services_CreateInstanceEnum(IWbemServices *iface, const BSTR strClass, LONG lFlags, IWbemContext *pCtx, IEnumWbemClassObject **ppEnum)
static HRESULT WINAPI wbem_services_DeleteClassAsync(IWbemServices *iface, const BSTR strClass, LONG lFlags, IWbemContext *pCtx, IWbemObjectSink *pResponseHandler)
static ULONG WINAPI wbem_services_AddRef(IWbemServices *iface)
static HRESULT WINAPI wbem_services_ExecNotificationQuery(IWbemServices *iface, const BSTR strQueryLanguage, const BSTR strQuery, LONG lFlags, IWbemContext *pCtx, IEnumWbemClassObject **ppEnum)
HRESULT WbemServices_create(const WCHAR *namespace, LPVOID *ppObj)
static BOOL init_async(struct async_header *async, IWbemObjectSink *sink, void(*proc)(struct async_header *))
static ULONG WINAPI client_security_AddRef(IClientSecurity *iface)
static struct wbem_services * impl_from_IWbemServices(IWbemServices *iface)
static HRESULT WINAPI wbem_services_CancelAsyncCall(IWbemServices *iface, IWbemObjectSink *pSink)
static HRESULT WINAPI wbem_services_QueryObjectSink(IWbemServices *iface, LONG lFlags, IWbemObjectSink **ppResponseHandler)
static HRESULT WINAPI wbem_services_PutClassAsync(IWbemServices *iface, IWbemClassObject *pObject, LONG lFlags, IWbemContext *pCtx, IWbemObjectSink *pResponseHandler)
static HRESULT WINAPI wbem_services_OpenNamespace(IWbemServices *iface, const BSTR strNamespace, LONG lFlags, IWbemContext *pCtx, IWbemServices **ppWorkingNamespace, IWbemCallResult **ppResult)
static HRESULT queue_async(struct async_header *async)
WCHAR * query_from_path(const struct path *path)
static HRESULT WINAPI wbem_services_CreateClassEnumAsync(IWbemServices *iface, const BSTR strSuperclass, LONG lFlags, IWbemContext *pCtx, IWbemObjectSink *pResponseHandler)
static HRESULT WINAPI wbem_services_QueryInterface(IWbemServices *iface, REFIID riid, void **ppvObject)
static ULONG WINAPI wbem_services_Release(IWbemServices *iface)
static HRESULT create_instance_enum(const struct path *path, IEnumWbemClassObject **iter)
static HRESULT WINAPI wbem_services_ExecMethodAsync(IWbemServices *iface, const BSTR strObjectPath, const BSTR strMethodName, LONG lFlags, IWbemContext *pCtx, IWbemClassObject *pInParams, IWbemObjectSink *pResponseHandler)
static HRESULT WINAPI wbem_services_ExecMethod(IWbemServices *iface, const BSTR strObjectPath, const BSTR strMethodName, LONG lFlags, IWbemContext *pCtx, IWbemClassObject *pInParams, IWbemClassObject **ppOutParams, IWbemCallResult **ppCallResult)
static HRESULT WINAPI wbem_services_PutClass(IWbemServices *iface, IWbemClassObject *pObject, LONG lFlags, IWbemContext *pCtx, IWbemCallResult **ppCallResult)
static HRESULT WINAPI client_security_CopyProxy(IClientSecurity *iface, IUnknown *pProxy, IUnknown **ppCopy)
static HRESULT WINAPI client_security_QueryInterface(IClientSecurity *iface, REFIID riid, void **ppvObject)
static HRESULT WINAPI wbem_services_DeleteClass(IWbemServices *iface, const BSTR strClass, LONG lFlags, IWbemContext *pCtx, IWbemCallResult **ppCallResult)
static HRESULT WINAPI wbem_services_ExecQuery(IWbemServices *iface, const BSTR strQueryLanguage, const BSTR strQuery, LONG lFlags, IWbemContext *pCtx, IEnumWbemClassObject **ppEnum)
static void free_async(struct async_header *async)
static HRESULT WINAPI wbem_services_ExecQueryAsync(IWbemServices *iface, const BSTR strQueryLanguage, const BSTR strQuery, LONG lFlags, IWbemContext *pCtx, IWbemObjectSink *pResponseHandler)
static DWORD CALLBACK async_proc(LPVOID param)
static struct client_security * impl_from_IClientSecurity(IClientSecurity *iface)
static HRESULT WINAPI wbem_services_GetObjectAsync(IWbemServices *iface, const BSTR strObjectPath, LONG lFlags, IWbemContext *pCtx, IWbemObjectSink *pResponseHandler)
static HRESULT WINAPI client_security_SetBlanket(IClientSecurity *iface, IUnknown *pProxy, DWORD AuthnSvc, DWORD AuthzSvc, OLECHAR *pServerPrincName, DWORD AuthnLevel, DWORD ImpLevel, void *pAuthInfo, DWORD Capabilities)
static HRESULT WINAPI client_security_QueryBlanket(IClientSecurity *iface, IUnknown *pProxy, DWORD *pAuthnSvc, DWORD *pAuthzSvc, OLECHAR **pServerPrincName, DWORD *pAuthnLevel, DWORD *pImpLevel, void **pAuthInfo, DWORD *pCapabilities)
static ULONG WINAPI client_security_Release(IClientSecurity *iface)
static HRESULT WINAPI wbem_services_GetObject(IWbemServices *iface, const BSTR strObjectPath, LONG lFlags, IWbemContext *pCtx, IWbemClassObject **ppObject, IWbemCallResult **ppCallResult)
static HRESULT WINAPI wbem_services_DeleteInstanceAsync(IWbemServices *iface, const BSTR strObjectPath, LONG lFlags, IWbemContext *pCtx, IWbemObjectSink *pResponseHandler)
static HRESULT WINAPI wbem_services_DeleteInstance(IWbemServices *iface, const BSTR strObjectPath, LONG lFlags, IWbemContext *pCtx, IWbemCallResult **ppCallResult)
HRESULT parse_path(const WCHAR *str, struct path **ret)
static void async_exec_query(struct async_header *hdr)
HRESULT get_object(const WCHAR *object_path, IWbemClassObject **obj)
static HRESULT WINAPI wbem_services_PutInstance(IWbemServices *iface, IWbemClassObject *pInst, LONG lFlags, IWbemContext *pCtx, IWbemCallResult **ppCallResult)
static HRESULT WINAPI wbem_services_PutInstanceAsync(IWbemServices *iface, IWbemClassObject *pInst, LONG lFlags, IWbemContext *pCtx, IWbemObjectSink *pResponseHandler)
void free_path(struct path *path)
static const IClientSecurityVtbl client_security_vtbl
HRESULT get_method(const struct table *table, const WCHAR *name, class_method **func)
GLuint GLuint GLsizei count
GLdouble GLdouble GLdouble GLdouble q
GLsizei GLenum GLboolean sink
_Must_inspect_result_ typedef _Out_ PHIDP_CAPS Capabilities
static const WCHAR selectW[]
LPWSTR WINAPI lstrcatW(LPWSTR lpString1, LPCWSTR lpString2)
#define memcpy(s1, s2, n)
static const WCHAR wqlW[]
enum _tagppResult ppResult
static struct query * create_query(void)
#define IsEqualGUID(rguid1, rguid2)
_Check_return_ _CRTIMP int __cdecl _wcsnicmp(_In_reads_or_z_(_MaxCount) const wchar_t *_Str1, _In_reads_or_z_(_MaxCount) const wchar_t *_Str2, _In_ size_t _MaxCount)
IClientSecurity IClientSecurity_iface
struct async_header * async
IWbemServices IWbemServices_iface
DWORD WINAPI WaitForSingleObject(IN HANDLE hHandle, IN DWORD dwMilliseconds)
VOID WINAPI InitializeCriticalSection(OUT LPCRITICAL_SECTION lpCriticalSection)
HANDLE WINAPI DECLSPEC_HOTPATCH CreateEventW(IN LPSECURITY_ATTRIBUTES lpEventAttributes OPTIONAL, IN BOOL bManualReset, IN BOOL bInitialState, IN LPCWSTR lpName OPTIONAL)
BOOL WINAPI DECLSPEC_HOTPATCH SetEvent(IN HANDLE hEvent)
#define CONTAINING_RECORD(address, type, field)
static const WCHAR defaultW[]
static rfbScreenInfoPtr server
@ WBEM_E_INVALID_NAMESPACE
@ WBEM_E_INVALID_PARAMETER
@ WBEM_E_INVALID_OBJECT_PATH
@ WBEM_E_INVALID_QUERY_TYPE
HRESULT() class_method(IWbemClassObject *, IWbemClassObject *, IWbemClassObject **)
DWORD WINAPI GetLastError(void)
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
void WINAPI DeleteCriticalSection(PCRITICAL_SECTION)
#define MAX_COMPUTERNAME_LENGTH
_In_ void _In_ PCCERT_CONTEXT _In_opt_ LPFILETIME _In_ DWORD _In_ DWORD _Outptr_opt_ void ** ppvObject
#define HRESULT_FROM_WIN32(x)
#define WT_EXECUTELONGFUNCTION