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

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

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

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

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

示例1: invoke_builtin_prop

static HRESULT invoke_builtin_prop(DispatchEx *This, DISPID id, LCID lcid, WORD flags, DISPPARAMS *dp,        VARIANT *res, EXCEPINFO *ei, IServiceProvider *caller){    dispex_data_t *data;    func_info_t *func;    HRESULT hres;    data = get_dispex_data(This);    if(!data)        return E_FAIL;    hres = get_builtin_func(data, id, &func);    if(id == DISPID_VALUE && hres == DISP_E_UNKNOWNNAME)        return dispex_value(This, lcid, flags, dp, res, ei, caller);    if(FAILED(hres))        return hres;    if(func->func_disp_idx != -1)        return function_invoke(This, func, flags, dp, res, ei);    switch(flags) {    case DISPATCH_PROPERTYPUT:        if(res)            V_VT(res) = VT_EMPTY;        hres = builtin_propput(This, func, dp, caller);        break;    case DISPATCH_PROPERTYGET:        hres = builtin_propget(This, func, dp, res);        break;    default:        if(!func->get_vtbl_off) {            hres = typeinfo_invoke(This, func, flags, dp, res, ei);        }else {            VARIANT v;            hres = builtin_propget(This, func, NULL, &v);            if(FAILED(hres))                return hres;            if(flags != (DISPATCH_PROPERTYGET|DISPATCH_METHOD)) {                if(V_VT(&v) != VT_DISPATCH) {                    FIXME("Not a function %s/n", debugstr_variant(&v));                    VariantClear(&v);                    return E_FAIL;                }                hres = invoke_disp_value(This, V_DISPATCH(&v), lcid, flags, dp, res, ei, caller);                IDispatch_Release(V_DISPATCH(&v));            }else if(res) {                *res = v;            }else {                IDispatch_Release(V_DISPATCH(&v));            }        }    }    return hres;}
开发者ID:bpowers,项目名称:wine,代码行数:58,


示例2: JScript_AddNamedItem

static HRESULT WINAPI JScript_AddNamedItem(IActiveScript *iface,                                           LPCOLESTR pstrName, DWORD dwFlags){    JScript *This = impl_from_IActiveScript(iface);    named_item_t *item;    IDispatch *disp = NULL;    HRESULT hres;    TRACE("(%p)->(%s %x)/n", This, debugstr_w(pstrName), dwFlags);    if(This->thread_id != GetCurrentThreadId() || !This->ctx || This->ctx->state == SCRIPTSTATE_CLOSED)        return E_UNEXPECTED;    if(dwFlags & SCRIPTITEM_GLOBALMEMBERS) {        IUnknown *unk;        hres = IActiveScriptSite_GetItemInfo(This->site, pstrName, SCRIPTINFO_IUNKNOWN, &unk, NULL);        if(FAILED(hres)) {            WARN("GetItemInfo failed: %08x/n", hres);            return hres;        }        hres = IUnknown_QueryInterface(unk, &IID_IDispatch, (void**)&disp);        IUnknown_Release(unk);        if(FAILED(hres)) {            WARN("object does not implement IDispatch/n");            return hres;        }        if(This->ctx->host_global)            IDispatch_Release(This->ctx->host_global);        IDispatch_AddRef(disp);        This->ctx->host_global = disp;    }    item = heap_alloc(sizeof(*item));    if(!item) {        if(disp)            IDispatch_Release(disp);        return E_OUTOFMEMORY;    }    item->disp = disp;    item->flags = dwFlags;    item->name = heap_strdupW(pstrName);    if(!item->name) {        if(disp)            IDispatch_Release(disp);        heap_free(item);        return E_OUTOFMEMORY;    }    item->next = This->ctx->named_items;    This->ctx->named_items = item;    return S_OK;}
开发者ID:AndreRH,项目名称:wine,代码行数:57,


示例3: RegisterWindowMessageW

staticIDispatch *get_ie_target(HWND hwnd, int x, int y){    IDispatch *top_doc, *elem, *target;    UINT getobj_msg;    LRESULT lres, res;    HRESULT hres;    getobj_msg = RegisterWindowMessageW(L"WM_HTML_GETOBJECT");    if(getobj_msg == 0) {        spr->log_lasterror(            LOG_LEVEL_NOTIFY,            L"ie-scroll: Failed to call "            L"RegisterWindowMessage(/"WM_HTML_GETOBJECT/")", 1);        return NULL;    }    lres = SendMessageTimeout(hwnd, getobj_msg, 0, 0,                              SMTO_ABORTIFHUNG, 1000,                              (PDWORD_PTR)&res);    if(lres == 0) {        spr->log_lasterror(            LOG_LEVEL_NOTIFY,            L"ie-scroll: Failed to call SendMessageTimeout()", 1);        return NULL;    }    hres = ObjectFromLresult(res, &IID_IDispatch, 0,                             (void **)(void *)&top_doc);    if(FAILED(hres)) {        spr->log_hresult(            LOG_LEVEL_NOTIFY,            L"ie-scroll: Failed to call ObjectFromLresult()",            hres, 1);        return NULL;    }    hres = get_ie_elem_at(top_doc, x, y, &elem);    IDispatch_Release(top_doc);    if(FAILED(hres)) {        return NULL;    }    hres = get_scrollable_parent(elem, &target);    IDispatch_Release(elem);    if(FAILED(hres)) {        return NULL;    }    return target;}
开发者ID:lllllT,项目名称:mouse-processor,代码行数:51,


示例4: release_event_target

void release_event_target(event_target_t *event_target){    int i, j;    for(i=0; i < EVENTID_LAST; i++) {        if(event_target->event_table[i]) {            if(event_target->event_table[i]->handler_prop)                IDispatch_Release(event_target->event_table[i]->handler_prop);            for(j=0; j < event_target->event_table[i]->handler_cnt; j++)                IDispatch_Release(event_target->event_table[i]->handlers[j]);        }    }    heap_free(event_target);}
开发者ID:mikekap,项目名称:wine,代码行数:15,


示例5: run_scripts

static void run_scripts(void){    IActiveScriptParse *parser;    HRESULT hres;    parser = create_script();    hres = IActiveScriptParse64_QueryInterface(parser, &IID_IVariantChangeType, (void**)&script_change_type);    ok(hres == S_OK, "Could not get IVariantChangeType iface: %08x/n", hres);    SET_EXPECT(testArgConv);    parse_script_a(parser,                   "var obj = {"                   "    toString: function() { return 'strval'; },"                   "    valueOf: function()  { return 10; }"                   "};"                   "testArgConv(obj);");    CHECK_CALLED(testArgConv);    test_change_types(script_change_type, stored_obj);    IDispatch_Release(stored_obj);    IVariantChangeType_Release(script_change_type);    IUnknown_Release(parser);}
开发者ID:AmesianX,项目名称:RosWine,代码行数:25,


示例6: navigate_complete

static void navigate_complete(DocHost *This){    IDispatch *disp = NULL;    DISPPARAMS dispparams;    VARIANTARG params[2];    VARIANT url;    HRESULT hres;    hres = IUnknown_QueryInterface(This->document, &IID_IDispatch, (void**)&disp);    if(FAILED(hres))        FIXME("Could not get IDispatch interface/n");    dispparams.cArgs = 2;    dispparams.cNamedArgs = 0;    dispparams.rgdispidNamedArgs = NULL;    dispparams.rgvarg = params;    V_VT(params) = (VT_BYREF|VT_VARIANT);    V_BYREF(params) = &url;    V_VT(params+1) = VT_DISPATCH;    V_DISPATCH(params+1) = disp;    V_VT(&url) = VT_BSTR;    V_BSTR(&url) = SysAllocString(This->url);    call_sink(This->cps.wbe2, DISPID_NAVIGATECOMPLETE2, &dispparams);    call_sink(This->cps.wbe2, DISPID_DOCUMENTCOMPLETE, &dispparams);    SysFreeString(V_BSTR(&url));    if(disp)        IDispatch_Release(disp);    This->busy = VARIANT_FALSE;}
开发者ID:WASSUM,项目名称:longene_travel,代码行数:34,


示例7: OleObject_SetClientSite

static HRESULT WINAPI OleObject_SetClientSite(IOleObject *iface, IOleClientSite *pClientSite){    WindowsMediaPlayer *This = impl_from_IOleObject(iface);    IOleControlSite *control_site;    HRESULT hres;    TRACE("(%p)->(%p)/n", This, pClientSite);    release_client_site(This);    if(!pClientSite)        return S_OK;    IOleClientSite_AddRef(pClientSite);    This->client_site = pClientSite;    hres = IOleClientSite_QueryInterface(pClientSite, &IID_IOleControlSite, (void**)&control_site);    if(SUCCEEDED(hres)) {        IDispatch *disp;        hres = IOleControlSite_GetExtendedControl(control_site, &disp);        if(SUCCEEDED(hres) && disp) {            FIXME("Use extended control/n");            IDispatch_Release(disp);        }        IOleControlSite_Release(control_site);    }    return S_OK;}
开发者ID:AlexSteel,项目名称:wine,代码行数:30,


示例8: php_com_object_free_storage

void php_com_object_free_storage(zend_object *object){	php_com_dotnet_object *obj = (php_com_dotnet_object*)object;	if (obj->typeinfo) {		ITypeInfo_Release(obj->typeinfo);		obj->typeinfo = NULL;	}	if (obj->sink_dispatch) {		php_com_object_enable_event_sink(obj, FALSE);		IDispatch_Release(obj->sink_dispatch);		obj->sink_dispatch = NULL;	}	VariantClear(&obj->v);	if (obj->method_cache) {		zend_hash_destroy(obj->method_cache);		FREE_HASHTABLE(obj->method_cache);	}	if (obj->id_of_name_cache) {		zend_hash_destroy(obj->id_of_name_cache);		FREE_HASHTABLE(obj->id_of_name_cache);	}}
开发者ID:PeeHaa,项目名称:php-src,代码行数:26,


示例9: update_readystate

static void update_readystate(PluginHost *host){    DISPPARAMS params = {NULL,NULL,0,0};    IDispatchEx *dispex;    IDispatch *disp;    ULONG err = 0;    VARIANT v;    HRESULT hres;    hres = IUnknown_QueryInterface(host->plugin_unk, &IID_IDispatchEx, (void**)&dispex);    if(SUCCEEDED(hres)) {        FIXME("Use IDispatchEx/n");        IDispatchEx_Release(dispex);    }    hres = IUnknown_QueryInterface(host->plugin_unk, &IID_IDispatch, (void**)&disp);    if(FAILED(hres))        return;    hres = IDispatch_Invoke(disp, DISPID_READYSTATE, &IID_NULL, 0, DISPATCH_PROPERTYGET, &params, &v, NULL, &err);    IDispatch_Release(disp);    if(SUCCEEDED(hres)) {        /* FIXME: make plugin readystate affect document readystate */        TRACE("readystate = %s/n", debugstr_variant(&v));        VariantClear(&v);    }}
开发者ID:miurahr,项目名称:wine,代码行数:27,


示例10: release_dispex

void release_dispex(DispatchEx *This){    dynamic_prop_t *prop;    if(!This->dynamic_data)        return;    for(prop = This->dynamic_data->props; prop < This->dynamic_data->props + This->dynamic_data->prop_cnt; prop++) {        VariantClear(&prop->var);        heap_free(prop->name);    }    heap_free(This->dynamic_data->props);    if(This->dynamic_data->func_disps) {        func_obj_entry_t *iter;        for(iter = This->dynamic_data->func_disps; iter < This->dynamic_data->func_disps+This->data->data->func_disp_cnt; iter++) {            if(iter->func_obj) {                iter->func_obj->obj = NULL;                IDispatchEx_Release(&iter->func_obj->dispex.IDispatchEx_iface);            }            if(iter->val)                IDispatch_Release(iter->val);        }        heap_free(This->dynamic_data->func_disps);    }    heap_free(This->dynamic_data);}
开发者ID:bpowers,项目名称:wine,代码行数:31,


示例11: detach_event

HRESULT detach_event(EventTarget *event_target, BSTR name, IDispatch *disp){    event_target_t *data;    eventid_t eid;    DWORD i = 0;    eid = attr_to_eid(name);    if(eid == EVENTID_LAST) {        WARN("Unknown event/n");        return S_OK;    }    data = get_event_target_data(event_target, FALSE);    if(!data)        return S_OK;    if(!data->event_table[eid])        return S_OK;    while(i < data->event_table[eid]->handler_cnt) {        if(data->event_table[eid]->handlers[i] == disp) {            IDispatch_Release(data->event_table[eid]->handlers[i]);            data->event_table[eid]->handlers[i] = NULL;        }        i++;    }    return S_OK;}
开发者ID:Crobin83,项目名称:wine,代码行数:29,


示例12: get_doc_ready_state

static HRESULT get_doc_ready_state(DocHost *This, READYSTATE *ret){    DISPPARAMS dp = {NULL,NULL,0,0};    IDispatch *disp;    EXCEPINFO ei;    VARIANT var;    HRESULT hres;    hres = IUnknown_QueryInterface(This->document, &IID_IDispatch, (void**)&disp);    if(FAILED(hres))        return hres;    hres = IDispatch_Invoke(disp, DISPID_READYSTATE, &IID_NULL, LOCALE_SYSTEM_DEFAULT, DISPATCH_PROPERTYGET,            &dp, &var, &ei, NULL);    IDispatch_Release(disp);    if(FAILED(hres)) {        WARN("Invoke(DISPID_READYSTATE failed: %08x/n", hres);        return hres;    }    if(V_VT(&var) != VT_I4) {        WARN("V_VT(var) = %d/n", V_VT(&var));        VariantClear(&var);        return E_FAIL;    }    *ret = V_I4(&var);    return S_OK;}
开发者ID:mikekap,项目名称:wine,代码行数:29,


示例13: check_event_attr

void check_event_attr(HTMLDocumentNode *doc, nsIDOMHTMLElement *nselem){    const PRUnichar *attr_value;    nsAString attr_value_str;    IDispatch *disp;    HTMLDOMNode *node;    int i;    nsresult nsres;    HRESULT hres;    for(i=0; i < EVENTID_LAST; i++) {        nsres = get_elem_attr_value(nselem, event_info[i].attr_name, &attr_value_str, &attr_value);        if(NS_SUCCEEDED(nsres)) {            if(!*attr_value)                continue;            TRACE("%p.%s = %s/n", nselem, debugstr_w(event_info[i].attr_name), debugstr_w(attr_value));            disp = script_parse_event(doc->window, attr_value);            if(disp) {                hres = get_node(doc, (nsIDOMNode*)nselem, TRUE, &node);                if(SUCCEEDED(hres)) {                    set_event_handler_disp(get_node_event_target(node), node->doc, i, disp);                    node_release(node);                }                IDispatch_Release(disp);            }            nsAString_Finish(&attr_value_str);        }    }}
开发者ID:PigFlyGames,项目名称:wine,代码行数:31,


示例14: httprequest_Release

static ULONG WINAPI httprequest_Release(IXMLHTTPRequest *iface){    httprequest *This = impl_from_IXMLHTTPRequest( iface );    ULONG ref = InterlockedDecrement( &This->ref );    TRACE("(%p)->(%u)/n", This, ref );    if ( ref == 0 )    {        struct reqheader *header, *header2;        SysFreeString(This->url);        SysFreeString(This->user);        SysFreeString(This->password);        /* request headers */        LIST_FOR_EACH_ENTRY_SAFE(header, header2, &This->reqheaders, struct reqheader, entry)        {            list_remove(&header->entry);            SysFreeString(header->header);            SysFreeString(header->value);        }        /* detach callback object */        BindStatusCallback_Detach(This->bsc);        if (This->sink) IDispatch_Release(This->sink);        heap_free( This );    }    return ref;}
开发者ID:r6144,项目名称:wine,代码行数:33,


示例15: Function_call

static HRESULT Function_call(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags, unsigned argc, jsval_t *argv,        jsval_t *r){    FunctionInstance *function;    IDispatch *this_obj = NULL;    unsigned cnt = 0;    HRESULT hres;    TRACE("/n");    if(!(function = function_this(jsthis)))        return throw_type_error(ctx, JS_E_FUNCTION_EXPECTED, NULL);    if(argc) {        if(!is_undefined(argv[0]) && !is_null(argv[0])) {            hres = to_object(ctx, argv[0], &this_obj);            if(FAILED(hres))                return hres;        }        cnt = argc-1;    }    hres = call_function(ctx, function, this_obj, cnt, argv+1, r);    if(this_obj)        IDispatch_Release(this_obj);    return hres;}
开发者ID:340211173,项目名称:wine,代码行数:29,


示例16: detach_event

HRESULT detach_event(event_target_t *event_target, HTMLDocument *doc, BSTR name, IDispatch *disp){    eventid_t eid;    DWORD i = 0;    if(!event_target)        return S_OK;    eid = attr_to_eid(name);    if(eid == EVENTID_LAST) {        WARN("Unknown event/n");        return S_OK;    }    if(!event_target->event_table[eid])        return S_OK;    while(i < event_target->event_table[eid]->handler_cnt) {        if(event_target->event_table[eid]->handlers[i] == disp) {            IDispatch_Release(event_target->event_table[eid]->handlers[i]);            event_target->event_table[eid]->handlers[i] = NULL;        }        i++;    }    return S_OK;}
开发者ID:PigFlyGames,项目名称:wine,代码行数:27,


示例17: 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,


示例18: 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,


示例19: 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,


示例20: remove_event_handler

static HRESULT remove_event_handler(event_target_t **event_target, eventid_t eid){    if(*event_target && (*event_target)->event_table[eid] && (*event_target)->event_table[eid]->handler_prop) {        IDispatch_Release((*event_target)->event_table[eid]->handler_prop);        (*event_target)->event_table[eid]->handler_prop = NULL;    }    return S_OK;}
开发者ID:PigFlyGames,项目名称:wine,代码行数:9,


示例21: php_com_dotnet_rshutdown

void php_com_dotnet_rshutdown(void){	struct dotnet_runtime_stuff *stuff = COMG(dotnet_runtime_stuff);	if (stuff->dotnet_domain) {		IDispatch_Release(stuff->dotnet_domain);		stuff->dotnet_domain = NULL;	}}
开发者ID:Jille,项目名称:php-src,代码行数:9,


示例22: Function_apply

static HRESULT Function_apply(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags, DISPPARAMS *dp,        VARIANT *retv, jsexcept_t *ei, IServiceProvider *caller){    FunctionInstance *function;    DISPPARAMS args = {NULL,NULL,0,0};    DWORD argc, i;    IDispatch *this_obj = NULL;    HRESULT hres = S_OK;    TRACE("/n");    if(!(function = function_this(jsthis)))        return throw_type_error(ctx, ei, JS_E_FUNCTION_EXPECTED, NULL);    argc = arg_cnt(dp);    if(argc) {        VARIANT *v = get_arg(dp,0);        if(V_VT(v) != VT_EMPTY && V_VT(v) != VT_NULL) {            hres = to_object(ctx, v, &this_obj);            if(FAILED(hres))                return hres;        }    }    if(argc >= 2) {        jsdisp_t *arg_array = NULL;        if(V_VT(get_arg(dp,1)) == VT_DISPATCH) {            arg_array = iface_to_jsdisp((IUnknown*)V_DISPATCH(get_arg(dp,1)));            if(arg_array &&               (!is_class(arg_array, JSCLASS_ARRAY) && !is_class(arg_array, JSCLASS_ARGUMENTS) )) {                jsdisp_release(arg_array);                arg_array = NULL;            }        }        if(arg_array) {            hres = array_to_args(ctx, arg_array, ei, caller, &args);            jsdisp_release(arg_array);        }else {            FIXME("throw TypeError/n");            hres = E_FAIL;        }    }    if(SUCCEEDED(hres))       hres = call_function(ctx, function, this_obj, &args, retv, ei, caller);    if(this_obj)        IDispatch_Release(this_obj);    for(i=0; i<args.cArgs; i++)        VariantClear(args.rgvarg+i);    heap_free(args.rgvarg);    return hres;}
开发者ID:MichaelMcDonnell,项目名称:wine,代码行数:56,


示例23: httprequest_put_onreadystatechange

static HRESULT WINAPI httprequest_put_onreadystatechange(IXMLHTTPRequest *iface, IDispatch *sink){    httprequest *This = impl_from_IXMLHTTPRequest( iface );    TRACE("(%p)->(%p)/n", This, sink);    if (This->sink) IDispatch_Release(This->sink);    if ((This->sink = sink)) IDispatch_AddRef(This->sink);    return S_OK;}
开发者ID:YokoZar,项目名称:wine,代码行数:11,


示例24: ie_scroll_end_scroll

staticint MP_OP_API ie_scroll_end_scroll(void *ctxp){    struct ie_scroll_context *ctx;    ctx = (struct ie_scroll_context *)ctxp;    IDispatch_Release(ctx->target);    return 1;}
开发者ID:lllllT,项目名称:mouse-processor,代码行数:11,


示例25: ConnectionPoint_Destroy

static void ConnectionPoint_Destroy(ConnectionPoint *This){    DWORD i;    for(i=0; i<This->sinks_size; i++) {        if(This->sinks[i])            IDispatch_Release(This->sinks[i]);    }    heap_free(This->sinks);    heap_free(This);}
开发者ID:RareHare,项目名称:reactos,代码行数:12,


示例26: ConnectionPoint_Destroy

static void ConnectionPoint_Destroy(ConnectionPoint *This){    int i;    for(i=0; i<This->sinks_size; i++) {        if(This->sinks[i])            IDispatch_Release(This->sinks[i]);    }    shdocvw_free(This->sinks);    shdocvw_free(This);}
开发者ID:howard5888,项目名称:wineT,代码行数:12,


示例27: Function_apply

static HRESULT Function_apply(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r){    FunctionInstance *function;    jsval_t *args = NULL;    unsigned i, cnt = 0;    IDispatch *this_obj = NULL;    HRESULT hres = S_OK;    TRACE("/n");    if(!(function = function_this(jsthis)))        return throw_type_error(ctx, JS_E_FUNCTION_EXPECTED, NULL);    if(argc) {        if(!is_undefined(argv[0]) && !is_null(argv[0])) {            hres = to_object(ctx, argv[0], &this_obj);            if(FAILED(hres))                return hres;        }    }    if(argc >= 2) {        jsdisp_t *arg_array = NULL;        if(is_object_instance(argv[1])) {            arg_array = iface_to_jsdisp((IUnknown*)get_object(argv[1]));            if(arg_array &&               (!is_class(arg_array, JSCLASS_ARRAY) && !is_class(arg_array, JSCLASS_ARGUMENTS) )) {                jsdisp_release(arg_array);                arg_array = NULL;            }        }        if(arg_array) {            hres = array_to_args(ctx, arg_array, &cnt, &args);            jsdisp_release(arg_array);        }else {            FIXME("throw TypeError/n");            hres = E_FAIL;        }    }    if(SUCCEEDED(hres))        hres = call_function(ctx, function, this_obj, cnt, args, r);    if(this_obj)        IDispatch_Release(this_obj);    for(i=0; i < cnt; i++)        jsval_release(args[i]);    heap_free(args);    return hres;}
开发者ID:340211173,项目名称:wine,代码行数:52,


示例28: DocHost_Release

void DocHost_Release(DocHost *This){    if(This->client_disp)        IDispatch_Release(This->client_disp);    if(This->frame)        IOleInPlaceFrame_Release(This->frame);    DocHost_ClientSite_Release(This);    ConnectionPointContainer_Destroy(&This->cps);    SysFreeString(This->url);}
开发者ID:WASSUM,项目名称:longene_travel,代码行数:13,



注:本文中的IDispatch_Release函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ IEEE80211_ADDR_COPY函数代码示例
C++ IDispatch_QueryInterface函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。