您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ IDispatch_QueryInterface函数代码示例

51自学网 2021-06-01 21:28:22
  C++
这篇教程C++ IDispatch_QueryInterface函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中IDispatch_QueryInterface函数的典型用法代码示例。如果您正苦于以下问题:C++ IDispatch_QueryInterface函数的具体用法?C++ IDispatch_QueryInterface怎么用?C++ IDispatch_QueryInterface使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了IDispatch_QueryInterface函数的23个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: ClServiceProvider_QueryService

static 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_responseXML

static 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_GetItemInfo

static 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_Document

static 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: ResultFromScode

HRESULT _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: WindowFromAccessibleObject

HRESULT 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_TranslateAccelerator

static 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_GetItemInfo

static 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_xmlhttprequest

static 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_interfaces

static 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_event

HRESULT 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_QueryService

static 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_CreateInstance

HRESULT 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(&regexp);    if(FAILED(hres))        return hres;    hres = IDispatch_QueryInterface(regexp, riid, ppv);    IDispatch_Release(regexp);    return hres;}
开发者ID:DeltaYang,项目名称:wine,代码行数:15,


示例14: IActiveScript_GetScriptDispatch

static 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_propput

HRESULT 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_id

HRESULT 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_func

static 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_value

static 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_sink

void 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_call

HRESULT 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_input

static 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_QueryInterface

static 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_RegExp

static 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**)&regexp);    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函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。