这篇教程C++ IDispatch_QueryInterface函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中IDispatch_QueryInterface函数的典型用法代码示例。如果您正苦于以下问题:C++ IDispatch_QueryInterface函数的具体用法?C++ IDispatch_QueryInterface怎么用?C++ IDispatch_QueryInterface使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了IDispatch_QueryInterface函数的23个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: ClServiceProvider_QueryServicestatic HRESULT WINAPI ClServiceProvider_QueryService(IServiceProvider *iface, REFGUID guidService, REFIID riid, void **ppv){ DocHost *This = impl_from_IServiceProvider(iface); if(IsEqualGUID(&IID_IHlinkFrame, guidService)) { TRACE("(%p)->(IID_IHlinkFrame %s %p)/n", This, debugstr_guid(riid), ppv); return IDispatch_QueryInterface(This->disp, riid, ppv); } if(IsEqualGUID(&IID_IWebBrowserApp, guidService)) { TRACE("IWebBrowserApp service/n"); return IDispatch_QueryInterface(This->disp, riid, ppv); } if(IsEqualGUID(&IID_IShellBrowser, guidService)) { TRACE("(%p)->(IID_IShellBrowser %s %p)/n", This, debugstr_guid(riid), ppv); if(!This->browser_service) { HRESULT hres; hres = create_browser_service(This, &This->browser_service); if(FAILED(hres)) return hres; } return IShellBrowser_QueryInterface(&This->browser_service->IShellBrowser_iface, riid, ppv); } FIXME("(%p)->(%s %s %p)/n", This, debugstr_guid(guidService), debugstr_guid(riid), ppv); return E_NOINTERFACE;}
开发者ID:Sunmonds,项目名称:wine,代码行数:33,
示例2: test_responseXMLstatic void test_responseXML(const char *expect_text){ IDispatch *disp; IXMLDOMDocument *xmldom; IObjectSafety *safety; DWORD enabled = 0, supported = 0; HRESULT hres; disp = NULL; hres = IHTMLXMLHttpRequest_get_responseXML(xhr, &disp); ok(hres == S_OK, "get_responseXML failed: %08x/n", hres); ok(disp != NULL, "disp == NULL/n"); xmldom = NULL; hres = IDispatch_QueryInterface(disp, &IID_IXMLDOMDocument, (void**)&xmldom); ok(hres == S_OK, "QueryInterface(IXMLDOMDocument) failed: %08x/n", hres); ok(xmldom != NULL, "xmldom == NULL/n"); hres = IXMLDOMDocument_QueryInterface(xmldom, &IID_IObjectSafety, (void**)&safety); ok(hres == S_OK, "QueryInterface IObjectSafety failed: %08x/n", hres); hres = IObjectSafety_GetInterfaceSafetyOptions(safety, NULL, &supported, &enabled); ok(hres == S_OK, "GetInterfaceSafetyOptions failed: %08x/n", hres); ok(broken(supported == (INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA)) || supported == (INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA | INTERFACE_USES_SECURITY_MANAGER) /* msxml3 SP8+ */, "Expected supported: (INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA | INTERFACE_USES_SECURITY_MANAGER), got %08x/n", supported); ok(enabled == (INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA | INTERFACE_USES_SECURITY_MANAGER), "Expected enabled: (INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA | INTERFACE_USES_SECURITY_MANAGER), got 0x%08x/n", enabled); IObjectSafety_Release(safety); if(!expect_text) test_illegal_xml(xmldom); IXMLDOMDocument_Release(xmldom); IDispatch_Release(disp);}
开发者ID:Crobin83,项目名称:wine,代码行数:35,
示例3: MsiActiveScriptSite_GetItemInfostatic HRESULT WINAPI MsiActiveScriptSite_GetItemInfo(IActiveScriptSite* iface, LPCOLESTR pstrName, DWORD dwReturnMask, IUnknown** ppiunkItem, ITypeInfo** ppti){ MsiActiveScriptSite *This = impl_from_IActiveScriptSite(iface); TRACE("(%p)->(%p, %d, %p, %p)/n", This, pstrName, dwReturnMask, ppiunkItem, ppti); /* Determine the kind of pointer that is requested, and make sure placeholder is valid */ if (dwReturnMask & SCRIPTINFO_ITYPEINFO) { if (!ppti) return E_INVALIDARG; *ppti = NULL; } if (dwReturnMask & SCRIPTINFO_IUNKNOWN) { if (!ppiunkItem) return E_INVALIDARG; *ppiunkItem = NULL; } /* Are we looking for the session object? */ if (!strcmpW(szSession, pstrName)) { if (dwReturnMask & SCRIPTINFO_ITYPEINFO) { HRESULT hr = get_typeinfo(Session_tid, ppti); if (SUCCEEDED(hr)) ITypeInfo_AddRef(*ppti); return hr; } else if (dwReturnMask & SCRIPTINFO_IUNKNOWN) { IDispatch_QueryInterface(This->session, &IID_IUnknown, (void **)ppiunkItem); return S_OK; } } return TYPE_E_ELEMENTNOTFOUND;}
开发者ID:AlexSteel,项目名称:wine,代码行数:32,
示例4: WebBrowser_get_Documentstatic HRESULT WINAPI WebBrowser_get_Document(IWebBrowser2 *iface, IDispatch **ppDisp){ WebBrowser *This = impl_from_IWebBrowser2(iface); IDispatch *disp = NULL; TRACE("(%p)->(%p)/n", This, ppDisp); if(This->doc_host.document) { HRESULT hres; hres = IUnknown_QueryInterface(This->doc_host.document, &IID_IDispatch, (void**)&disp); if(SUCCEEDED(hres)) { IDispatch *html_doc; /* Some broken apps cast returned IDispatch to IHTMLDocument2 * without QueryInterface call */ hres = IDispatch_QueryInterface(disp, &IID_IHTMLDocument2, (void**)&html_doc); if(SUCCEEDED(hres)) { IDispatch_Release(disp); disp = html_doc; } } } *ppDisp = disp; return S_OK;}
开发者ID:DusteDdk,项目名称:wine-multimedia,代码行数:27,
示例5: ResultFromScodeHRESULT _IFUNC BOleFont::QueryInterfaceMain (REFIID iid, LPVOID FAR *ppv){ HRESULT hr = ResultFromScode(E_NOINTERFACE); *ppv = NULL; // Self // if (iid == IID_BOleFont) { (BOleFont *)*ppv = this; AddRef(); return NOERROR; } // interfaces if (SUCCEEDED(hr = IFont_QueryInterface (this, iid, ppv))) { } else if (SUCCEEDED(hr = IFontDisp_QueryInterface (this, iid, ppv))) { } else if (SUCCEEDED(hr = IConnectionPointContainer_QueryInterface(this, iid, ppv))) { } else if (SUCCEEDED(hr = IDispatch_QueryInterface(this, iid, ppv))) { } else if (SUCCEEDED(hr = BOleComponent::QueryInterfaceMain(iid, ppv))) { } return hr;}
开发者ID:Meridian59,项目名称:Meridian59,代码行数:26,
示例6: WindowFromAccessibleObjectHRESULT WINAPI WindowFromAccessibleObject(IAccessible *acc, HWND *phwnd){ IDispatch *parent; IOleWindow *ow; HRESULT hres; TRACE("%p %p/n", acc, phwnd); IAccessible_AddRef(acc); while(1) { hres = IAccessible_QueryInterface(acc, &IID_IOleWindow, (void**)&ow); if(SUCCEEDED(hres)) { hres = IOleWindow_GetWindow(ow, phwnd); IOleWindow_Release(ow); IAccessible_Release(acc); return hres; } hres = IAccessible_get_accParent(acc, &parent); IAccessible_Release(acc); if(FAILED(hres)) return hres; if(hres!=S_OK || !parent) { *phwnd = NULL; return hres; } hres = IDispatch_QueryInterface(parent, &IID_IAccessible, (void**)&acc); IDispatch_Release(parent); if(FAILED(hres)) return hres; }}
开发者ID:GYGit,项目名称:reactos,代码行数:33,
示例7: ControlSite_TranslateAcceleratorstatic HRESULT WINAPI ControlSite_TranslateAccelerator(IOleControlSite *iface, MSG *pMsg, DWORD grfModifiers){ DocHost *This = impl_from_IOleControlSite(iface); IOleObject *wb_obj; IOleClientSite *clientsite; IOleControlSite *controlsite; HRESULT hr; TRACE("(%p)->(%p, %08x)/n", This, pMsg, grfModifiers); hr = IDispatch_QueryInterface(This->disp, &IID_IOleObject, (void**)&wb_obj); if(SUCCEEDED(hr)) { hr = IOleObject_GetClientSite(wb_obj, &clientsite); if(SUCCEEDED(hr)) { hr = IOleClientSite_QueryInterface(clientsite, &IID_IOleControlSite, (void**)&controlsite); if(SUCCEEDED(hr)) { hr = IOleControlSite_TranslateAccelerator(controlsite, pMsg, grfModifiers); IOleControlSite_Release(controlsite); } IOleClientSite_Release(clientsite); } IOleObject_Release(wb_obj); } if(FAILED(hr)) return S_FALSE; else return hr;}
开发者ID:Sunmonds,项目名称:wine,代码行数:30,
示例8: MsiActiveScriptSite_GetItemInfostatic HRESULT WINAPI MsiActiveScriptSite_GetItemInfo(IActiveScriptSite* iface, LPCOLESTR pstrName, DWORD dwReturnMask, IUnknown** ppiunkItem, ITypeInfo** ppti){ MsiActiveScriptSite *This = (MsiActiveScriptSite *)iface; TRACE("(%p/%p)->(%p,%d,%p,%p)/n", This, iface, pstrName, dwReturnMask, ppiunkItem, ppti); /* Determine the kind of pointer that is requested, and make sure placeholder is valid */ if (dwReturnMask & SCRIPTINFO_ITYPEINFO) { if (!ppti) return E_INVALIDARG; *ppti = NULL; } if (dwReturnMask & SCRIPTINFO_IUNKNOWN) { if (!ppiunkItem) return E_INVALIDARG; *ppiunkItem = NULL; } /* Are we looking for the session object? */ if (!strcmpW(szSession, pstrName)) { if (dwReturnMask & SCRIPTINFO_ITYPEINFO) return load_type_info(This->pSession, ppti, &DIID_Session, 0); else if (dwReturnMask & SCRIPTINFO_IUNKNOWN) { IDispatch_QueryInterface(This->pSession, &IID_IUnknown, (void **)ppiunkItem); return S_OK; } } return TYPE_E_ELEMENTNOTFOUND;}
开发者ID:bilboed,项目名称:wine,代码行数:27,
示例9: create_xmlhttprequeststatic void create_xmlhttprequest(IHTMLDocument2 *doc){ IHTMLWindow2 *window; IHTMLWindow5 *window5; VARIANT var; IHTMLXMLHttpRequestFactory *factory; HRESULT hres; hres = IHTMLDocument2_get_parentWindow(doc, &window); ok(hres == S_OK, "get_parentWindow failed: %08x/n", hres); ok(window != NULL, "window == NULL/n"); hres = IHTMLWindow2_QueryInterface(window, &IID_IHTMLWindow5, (void**)&window5); IHTMLWindow2_Release(window); if(FAILED(hres)) { win_skip("IHTMLWindow5 not supported/n"); return; } VariantInit(&var); hres = IHTMLWindow5_get_XMLHttpRequest(window5, &var); IHTMLWindow5_Release(window5); ok(hres == S_OK, "get_XMLHttpRequest failed: %08x/n", hres); ok(V_VT(&var) == VT_DISPATCH, "V_VT(&var) is %08x, expected VT_DISPATCH/n", V_VT(&var)); hres = IDispatch_QueryInterface(V_DISPATCH(&var), &IID_IHTMLXMLHttpRequestFactory, (void**)&factory); VariantClear(&var); ok(hres == S_OK, "QueryInterface(IID_IHTMLXMLHttpRequestFactory) failed: %08x/n", hres); ok(factory != NULL, "factory == NULL/n"); hres = IHTMLXMLHttpRequestFactory_create(factory, &xhr); IHTMLXMLHttpRequestFactory_Release(factory); ok(hres == S_OK, "create failed: %08x/n", hres); ok(xhr != NULL, "xhr == NULL/n");}
开发者ID:Crobin83,项目名称:wine,代码行数:35,
示例10: test_interfacesstatic void test_interfaces(void){ static const WCHAR pathW[] = {'p','a','t','h',0}; HRESULT hr; IDispatch *disp; IDispatchEx *dispex; IFileSystem3 *fs3; IObjectWithSite *site; VARIANT_BOOL b; BSTR path; hr = CoCreateInstance(&CLSID_FileSystemObject, NULL, CLSCTX_INPROC_SERVER|CLSCTX_INPROC_HANDLER, &IID_IDispatch, (void**)&disp); if(FAILED(hr)) { win_skip("Could not create FileSystem object: %08x/n", hr); return; } hr = IDispatch_QueryInterface(disp, &IID_IFileSystem3, (void**)&fs3); ok(hr == S_OK, "got 0x%08x, expected 0x%08x/n", hr, S_OK); hr = IDispatch_QueryInterface(disp, &IID_IObjectWithSite, (void**)&site); ok(hr == E_NOINTERFACE, "got 0x%08x, expected 0x%08x/n", hr, E_NOINTERFACE); hr = IDispatch_QueryInterface(disp, &IID_IDispatchEx, (void**)&dispex); ok(hr == E_NOINTERFACE, "got 0x%08x, expected 0x%08x/n", hr, E_NOINTERFACE); b = VARIANT_TRUE; hr = IFileSystem3_FileExists(fs3, NULL, &b); ok(hr == S_OK, "got 0x%08x, expected 0x%08x/n", hr, S_OK); ok(b == VARIANT_FALSE, "got %x/n", b); hr = IFileSystem3_FileExists(fs3, NULL, NULL); ok(hr == E_POINTER, "got 0x%08x, expected 0x%08x/n", hr, E_POINTER); path = SysAllocString(pathW); b = VARIANT_TRUE; hr = IFileSystem3_FileExists(fs3, path, &b); ok(hr == S_OK, "got 0x%08x, expected 0x%08x/n", hr, S_OK); ok(b == VARIANT_FALSE, "got %x/n", b); SysFreeString(path); IFileSystem3_Release(fs3); IDispatch_Release(disp);}
开发者ID:lucianolorenti,项目名称:wine,代码行数:45,
示例11: dispatch_eventHRESULT dispatch_event(HTMLDOMNode *node, const WCHAR *event_name, VARIANT *event_var, VARIANT_BOOL *cancelled){ HTMLEventObj *event_obj = NULL; eventid_t eid; HRESULT hres; eid = attr_to_eid(event_name); if(eid == EVENTID_LAST) { WARN("unknown event %s/n", debugstr_w(event_name)); return E_INVALIDARG; } if(event_var && V_VT(event_var) != VT_EMPTY && V_VT(event_var) != VT_ERROR) { if(V_VT(event_var) != VT_DISPATCH) { FIXME("event_var %s not supported/n", debugstr_variant(event_var)); return E_NOTIMPL; } if(V_DISPATCH(event_var)) { IHTMLEventObj *event_iface; hres = IDispatch_QueryInterface(V_DISPATCH(event_var), &IID_IHTMLEventObj, (void**)&event_iface); if(FAILED(hres)) { FIXME("No IHTMLEventObj iface/n"); return hres; } event_obj = unsafe_impl_from_IHTMLEventObj(event_iface); if(!event_obj) { ERR("Not our IHTMLEventObj?/n"); IHTMLEventObj_Release(event_iface); return E_FAIL; } } } if(event_obj) { hres = set_event_info(event_obj, node, eid, NULL); if(SUCCEEDED(hres)) fire_event_obj(node->doc, eid, event_obj, node->nsnode, NULL); IHTMLEventObj_Release(&event_obj->IHTMLEventObj_iface); if(FAILED(hres)) return hres; }else { if(!(event_info[eid].flags & EVENT_DEFAULTLISTENER)) { FIXME("not EVENT_DEFAULTEVENTHANDLER/n"); return E_NOTIMPL; } fire_event(node->doc, eid, TRUE, node->nsnode, NULL, NULL); } *cancelled = VARIANT_TRUE; /* FIXME */ return S_OK;}
开发者ID:PigFlyGames,项目名称:wine,代码行数:56,
示例12: ClServiceProvider_QueryServicestatic HRESULT WINAPI ClServiceProvider_QueryService(IServiceProvider *iface, REFGUID guidService, REFIID riid, void **ppv){ DocHost *This = SERVPROV_THIS(iface); if(IsEqualGUID(&IID_IHlinkFrame, guidService)) { TRACE("(%p)->(IID_IHlinkFrame %s %p)/n", This, debugstr_guid(riid), ppv); return IDispatch_QueryInterface(This->disp, riid, ppv); } FIXME("(%p)->(%s %s %p)/n", This, debugstr_guid(guidService), debugstr_guid(riid), ppv); return E_NOINTERFACE;}
开发者ID:howard5888,项目名称:wineT,代码行数:14,
示例13: VBScriptRegExpFactory_CreateInstanceHRESULT WINAPI VBScriptRegExpFactory_CreateInstance(IClassFactory *iface, IUnknown *pUnkOuter, REFIID riid, void **ppv){ IDispatch *regexp; HRESULT hres; TRACE("(%p %s %p)/n", pUnkOuter, debugstr_guid(riid), ppv); hres = create_regexp(®exp); if(FAILED(hres)) return hres; hres = IDispatch_QueryInterface(regexp, riid, ppv); IDispatch_Release(regexp); return hres;}
开发者ID:DeltaYang,项目名称:wine,代码行数:15,
示例14: IActiveScript_GetScriptDispatchstatic IDispatchEx *get_script_dispatch(IActiveScript *script){ IDispatchEx *dispex; IDispatch *disp; HRESULT hres; disp = (void*)0xdeadbeef; hres = IActiveScript_GetScriptDispatch(script, NULL, &disp); ok(hres == S_OK, "GetScriptDispatch failed: %08x/n", hres); hres = IDispatch_QueryInterface(disp, &IID_IDispatchEx, (void**)&dispex); IDispatch_Release(disp); ok(hres == S_OK, "Could not get IDispatch iface: %08x/n", hres); return dispex;}
开发者ID:GYGit,项目名称:reactos,代码行数:15,
示例15: disp_propputHRESULT disp_propput(script_ctx_t *ctx, IDispatch *disp, DISPID id, WORD flags, DISPPARAMS *dp){ IDispatchEx *dispex; EXCEPINFO ei = {0}; HRESULT hres; hres = IDispatch_QueryInterface(disp, &IID_IDispatchEx, (void**)&dispex); if(SUCCEEDED(hres)) { hres = IDispatchEx_InvokeEx(dispex, id, ctx->lcid, flags, dp, NULL, &ei, NULL /* FIXME! */); IDispatchEx_Release(dispex); }else { ULONG err = 0; TRACE("using IDispatch/n"); hres = IDispatch_Invoke(disp, id, &IID_NULL, ctx->lcid, flags, dp, NULL, &ei, &err); } return hres;}
开发者ID:Strongc,项目名称:reactos,代码行数:19,
示例16: disp_get_idHRESULT disp_get_id(IDispatch *disp, BSTR name, vbdisp_invoke_type_t invoke_type, BOOL search_private, DISPID *id){ IDispatchEx *dispex; vbdisp_t *vbdisp; HRESULT hres; vbdisp = unsafe_impl_from_IDispatch(disp); if(vbdisp) return vbdisp_get_id(vbdisp, name, invoke_type, search_private, id); hres = IDispatch_QueryInterface(disp, &IID_IDispatchEx, (void**)&dispex); if(FAILED(hres)) { TRACE("using IDispatch/n"); return IDispatch_GetIDsOfNames(disp, &IID_NULL, &name, 1, 0, id); } hres = IDispatchEx_GetDispID(dispex, name, fdexNameCaseInsensitive, id); IDispatchEx_Release(dispex); return hres;}
开发者ID:Strongc,项目名称:reactos,代码行数:20,
示例17: call_disp_funcstatic HRESULT call_disp_func(IDispatch *disp, DISPPARAMS *dp, VARIANT *retv){ IDispatchEx *dispex; EXCEPINFO ei; HRESULT hres; memset(&ei, 0, sizeof(ei)); hres = IDispatch_QueryInterface(disp, &IID_IDispatchEx, (void**)&dispex); if(SUCCEEDED(hres)) { hres = IDispatchEx_InvokeEx(dispex, 0, GetUserDefaultLCID(), DISPATCH_METHOD, dp, retv, &ei, NULL); IDispatchEx_Release(dispex); }else { TRACE("Could not get IDispatchEx interface: %08x/n", hres); hres = IDispatch_Invoke(disp, 0, &IID_NULL, GetUserDefaultLCID(), DISPATCH_METHOD, dp, retv, &ei, NULL); } return hres;}
开发者ID:PigFlyGames,项目名称:wine,代码行数:20,
示例18: invoke_disp_valuestatic HRESULT invoke_disp_value(DispatchEx *This, IDispatch *func_disp, LCID lcid, WORD flags, DISPPARAMS *dp, VARIANT *res, EXCEPINFO *ei, IServiceProvider *caller){ DISPID named_arg = DISPID_THIS; DISPPARAMS new_dp = {NULL, &named_arg, 0, 1}; IDispatchEx *dispex; HRESULT hres; if(dp->cNamedArgs) { FIXME("named args not supported/n"); return E_NOTIMPL; } new_dp.rgvarg = heap_alloc((dp->cArgs+1)*sizeof(VARIANTARG)); if(!new_dp.rgvarg) return E_OUTOFMEMORY; new_dp.cArgs = dp->cArgs+1; memcpy(new_dp.rgvarg+1, dp->rgvarg, dp->cArgs*sizeof(VARIANTARG)); V_VT(new_dp.rgvarg) = VT_DISPATCH; V_DISPATCH(new_dp.rgvarg) = (IDispatch*)&This->IDispatchEx_iface; hres = IDispatch_QueryInterface(func_disp, &IID_IDispatchEx, (void**)&dispex); TRACE(">>>/n"); if(SUCCEEDED(hres)) { hres = IDispatchEx_InvokeEx(dispex, DISPID_VALUE, lcid, flags, &new_dp, res, ei, caller); IDispatchEx_Release(dispex); }else { ULONG err = 0; hres = IDispatch_Invoke(func_disp, DISPID_VALUE, &IID_NULL, lcid, flags, &new_dp, res, ei, &err); } if(SUCCEEDED(hres)) TRACE("<<< %s/n", debugstr_variant(res)); else WARN("<<< %08x/n", hres); heap_free(new_dp.rgvarg); return hres;}
开发者ID:Svyatpro,项目名称:winelastd3d10,代码行数:40,
示例19: php_com_object_enable_event_sinkvoid php_com_object_enable_event_sink(php_com_dotnet_object *obj, int enable){ if (obj->sink_dispatch) { IConnectionPointContainer *cont; IConnectionPoint *point; if (SUCCEEDED(IDispatch_QueryInterface(V_DISPATCH(&obj->v), &IID_IConnectionPointContainer, (void**)&cont))) { if (SUCCEEDED(IConnectionPointContainer_FindConnectionPoint(cont, &obj->sink_id, &point))) { if (enable) { IConnectionPoint_Advise(point, (IUnknown*)obj->sink_dispatch, &obj->sink_cookie); } else { IConnectionPoint_Unadvise(point, obj->sink_cookie); } IConnectionPoint_Release(point); } IConnectionPointContainer_Release(cont); } }}
开发者ID:PeeHaa,项目名称:php-src,代码行数:23,
示例20: disp_callHRESULT disp_call(script_ctx_t *ctx, IDispatch *disp, DISPID id, DISPPARAMS *dp, VARIANT *retv){ const WORD flags = DISPATCH_METHOD|(retv ? DISPATCH_PROPERTYGET : 0); IDispatchEx *dispex; EXCEPINFO ei; HRESULT hres; memset(&ei, 0, sizeof(ei)); if(retv) V_VT(retv) = VT_EMPTY; hres = IDispatch_QueryInterface(disp, &IID_IDispatchEx, (void**)&dispex); if(FAILED(hres)) { UINT err = 0; TRACE("using IDispatch/n"); return IDispatch_Invoke(disp, id, &IID_NULL, ctx->lcid, flags, dp, retv, &ei, &err); } hres = IDispatchEx_InvokeEx(dispex, id, ctx->lcid, flags, dp, retv, &ei, NULL /* CALLER_FIXME */); IDispatchEx_Release(dispex); return hres;}
开发者ID:Strongc,项目名称:reactos,代码行数:23,
示例21: xslprocessor_put_inputstatic HRESULT WINAPI xslprocessor_put_input( IXSLProcessor *iface, VARIANT input ){ xslprocessor *This = impl_from_IXSLProcessor( iface ); IXMLDOMNode *input_node; HRESULT hr; TRACE("(%p)->(%s)/n", This, debugstr_variant(&input)); /* try IXMLDOMNode directly first */ if (V_VT(&input) == VT_UNKNOWN) hr = IUnknown_QueryInterface(V_UNKNOWN(&input), &IID_IXMLDOMNode, (void**)&input_node); else if (V_VT(&input) == VT_DISPATCH) hr = IDispatch_QueryInterface(V_DISPATCH(&input), &IID_IXMLDOMNode, (void**)&input_node); else { IXMLDOMDocument *doc; hr = DOMDocument_create(MSXML_DEFAULT, (void**)&doc); if (hr == S_OK) { VARIANT_BOOL b; hr = IXMLDOMDocument_load(doc, input, &b); if (hr == S_OK) hr = IXMLDOMDocument_QueryInterface(doc, &IID_IXMLDOMNode, (void**)&input_node); IXMLDOMDocument_Release(doc); } } if (hr == S_OK) { if (This->input) IXMLDOMNode_Release(This->input); This->input = input_node; } return hr;}
开发者ID:hoangduit,项目名称:reactos,代码行数:37,
示例22: IUnknown_QueryInterfacestatic IDispatchEx *parse_procedure_a(IActiveScriptParse *parser, const char *src){ IActiveScriptParseProcedure2 *parse_proc; IDispatchEx *dispex; IDispatch *disp; BSTR str; HRESULT hres; hres = IUnknown_QueryInterface(parser, &IID_IActiveScriptParseProcedure2, (void**)&parse_proc); ok(hres == S_OK, "Coult not get IActiveScriptParseProcedure2: %08x/n", hres); str = a2bstr(src); hres = IActiveScriptParseProcedure2_64_ParseProcedureText(parse_proc, str, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, &disp); SysFreeString(str); IUnknown_Release(parse_proc); ok(hres == S_OK, "ParseProcedureText failed: %08x/n", hres); ok(disp != NULL, "disp == NULL/n"); hres = IDispatch_QueryInterface(disp, &IID_IDispatchEx, (void**)&dispex); IDispatch_Release(dispex); ok(hres == S_OK, "Could not get IDispatchEx iface: %08x/n", hres); return dispex;}
开发者ID:MichaelMcDonnell,项目名称:wine,代码行数:24,
示例23: test_RegExpstatic void test_RegExp(void){ IRegExp2 *regexp; IMatchCollection2 *mc; IMatch2 *match; ISubMatches *sm; IEnumVARIANT *ev; IUnknown *unk; IDispatch *disp; HRESULT hres; BSTR bstr; LONG count; VARIANT v; ULONG fetched; hres = CoCreateInstance(&CLSID_VBScriptRegExp, NULL, CLSCTX_INPROC_SERVER|CLSCTX_INPROC_HANDLER, &IID_IUnknown, (void**)&unk); if(hres == REGDB_E_CLASSNOTREG) { win_skip("VBScriptRegExp is not registered/n"); return; } ok(hres == S_OK, "CoCreateInstance(CLSID_VBScriptRegExp) failed: %x/n", hres); hres = IUnknown_QueryInterface(unk, &IID_IRegExp2, (void**)®exp); if(hres == E_NOINTERFACE) { win_skip("IRegExp2 interface is not available/n"); return; } ok(hres == S_OK, "QueryInterface(IID_IRegExp2) failed: %x/n", hres); IUnknown_Release(unk); hres = IRegExp2_QueryInterface(regexp, &IID_IRegExp, (void**)&unk); ok(hres == S_OK, "QueryInterface(IID_IRegExp) returned %x/n", hres); IUnknown_Release(unk); hres = IRegExp2_QueryInterface(regexp, &IID_IDispatchEx, (void**)&unk); ok(hres == E_NOINTERFACE, "QueryInterface(IID_IDispatchEx) returned %x/n", hres); hres = IRegExp2_get_Pattern(regexp, &bstr); ok(bstr == NULL, "bstr != NULL/n"); ok(hres == S_OK, "get_Pattern returned %x, expected S_OK/n", hres); hres = IRegExp2_get_Pattern(regexp, NULL); ok(hres == E_POINTER, "get_Pattern returned %x, expected E_POINTER/n", hres); hres = IRegExp2_get_IgnoreCase(regexp, NULL); ok(hres == E_POINTER, "get_IgnoreCase returned %x, expected E_POINTER/n", hres); hres = IRegExp2_get_Global(regexp, NULL); ok(hres == E_POINTER, "get_Global returned %x, expected E_POINTER/n", hres); hres = IRegExp2_Execute(regexp, NULL, &disp); ok(hres == S_OK, "Execute returned %x, expected S_OK/n", hres); hres = IDispatch_QueryInterface(disp, &IID_IMatchCollection2, (void**)&mc); ok(hres == S_OK, "QueryInterface(IID_IMatchCollection2) returned %x/n", hres); IDispatch_Release(disp); hres = IMatchCollection2_QueryInterface(mc, &IID_IMatchCollection, (void**)&unk); ok(hres == S_OK, "QueryInterface(IID_IMatchCollection) returned %x/n", hres); IUnknown_Release(unk); hres = IMatchCollection2_get_Count(mc, NULL); ok(hres == E_POINTER, "get_Count returned %x, expected E_POINTER/n", hres); hres = IMatchCollection2_get_Count(mc, &count); ok(hres == S_OK, "get_Count returned %x, expected S_OK/n", hres); ok(count == 1, "count = %d/n", count); hres = IMatchCollection2_get_Item(mc, 1, &disp); ok(hres == E_INVALIDARG, "get_Item returned %x, expected E_INVALIDARG/n", hres); hres = IMatchCollection2_get_Item(mc, 1, NULL); ok(hres == E_POINTER, "get_Item returned %x, expected E_POINTER/n", hres); hres = IMatchCollection2_get_Item(mc, 0, &disp); ok(hres == S_OK, "get_Item returned %x, expected S_OK/n", hres); hres = IDispatch_QueryInterface(disp, &IID_IMatch2, (void**)&match); ok(hres == S_OK, "QueryInterface(IID_IMatch2) returned %x/n", hres); IDispatch_Release(disp); hres = IMatch2_QueryInterface(match, &IID_IMatch, (void**)&unk); ok(hres == S_OK, "QueryInterface(IID_IMatch) returned %x/n", hres); IUnknown_Release(unk); hres = IMatch2_get_Value(match, NULL); ok(hres == E_POINTER, "get_Value returned %x, expected E_POINTER/n", hres); hres = IMatch2_get_FirstIndex(match, NULL); ok(hres == E_POINTER, "get_FirstIndex returned %x, expected E_POINTER/n", hres); hres = IMatch2_get_Length(match, NULL); ok(hres == E_POINTER, "get_Length returned %x, expected E_POINTER/n", hres); hres = IMatch2_get_SubMatches(match, NULL); ok(hres == E_POINTER, "get_SubMatches returned %x, expected E_POINTER/n", hres); hres = IMatch2_get_SubMatches(match, &disp); ok(hres == S_OK, "get_SubMatches returned %x, expected S_OK/n", hres); IMatch2_Release(match);//.........这里部分代码省略.........
开发者ID:hoangduit,项目名称:reactos,代码行数:101,
注:本文中的IDispatch_QueryInterface函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ IDispatch_Release函数代码示例 C++ IDispatch_Invoke函数代码示例 |