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

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

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

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

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

示例1: set_current_mon

void set_current_mon(HTMLWindow *This, IMoniker *mon){    HRESULT hres;    if(This->mon) {        IMoniker_Release(This->mon);        This->mon = NULL;    }    if(This->url) {        CoTaskMemFree(This->url);        This->url = NULL;    }    if(!mon)        return;    IMoniker_AddRef(mon);    This->mon = mon;    hres = IMoniker_GetDisplayName(mon, NULL, NULL, &This->url);    if(FAILED(hres))        WARN("GetDisplayName failed: %08x/n", hres);    set_script_mode(This, use_gecko_script(This->url) ? SCRIPTMODE_GECKO : SCRIPTMODE_ACTIVESCRIPT);}
开发者ID:dvdhoo,项目名称:wine,代码行数:26,


示例2: download_to_cache

HRESULT download_to_cache(IUri *uri, stop_cache_binding_proc_t proc, void *ctx, IBindStatusCallback *callback){    DownloadBSC *dwl_bsc;    IBindCtx *bindctx;    IMoniker *mon;    IUnknown *unk;    HRESULT hres;    hres = DownloadBSC_Create(callback, NULL, &dwl_bsc);    if(FAILED(hres))        return hres;    dwl_bsc->onstop_proc = proc;    dwl_bsc->ctx = ctx;    dwl_bsc->bindf = BINDF_ASYNCHRONOUS;    hres = CreateAsyncBindCtx(0, &dwl_bsc->IBindStatusCallback_iface, NULL, &bindctx);    IBindStatusCallback_Release(&dwl_bsc->IBindStatusCallback_iface);    if(FAILED(hres))        return hres;    hres = CreateURLMonikerEx2(NULL, uri, &mon, 0);    if(FAILED(hres)) {        IBindCtx_Release(bindctx);        return hres;    }    hres = IMoniker_BindToStorage(mon, bindctx, NULL, &IID_IUnknown, (void**)&unk);    IMoniker_Release(mon);    IBindCtx_Release(bindctx);    if(SUCCEEDED(hres) && unk)        IUnknown_Release(unk);    return hres;}
开发者ID:RareHare,项目名称:reactos,代码行数:35,


示例3: IHlink_fnGetFriendlyName

static HRESULT WINAPI IHlink_fnGetFriendlyName (IHlink* iface,        DWORD grfHLFNAMEF, LPWSTR* ppwzFriendlyName){    HlinkImpl  *This = impl_from_IHlink(iface);    TRACE("(%p) -> (%i %p)/n", This, grfHLFNAMEF, ppwzFriendlyName);    /* FIXME: Only using explicitly set and cached friendly names */    if (This->FriendlyName)        *ppwzFriendlyName = hlink_co_strdupW( This->FriendlyName );    else    {        IMoniker *moniker;        HRESULT hres = __GetMoniker(This, &moniker, HLINKGETREF_DEFAULT);        if (FAILED(hres))        {            *ppwzFriendlyName = NULL;            return hres;        }        if (moniker)        {            IBindCtx *bcxt;            CreateBindCtx(0, &bcxt);            IMoniker_GetDisplayName(moniker, bcxt, NULL, ppwzFriendlyName);            IBindCtx_Release(bcxt);            IMoniker_Release(moniker);        }        else            *ppwzFriendlyName = NULL;    }    return S_OK;}
开发者ID:GYGit,项目名称:reactos,代码行数:35,


示例4: PersistMoniker_Load

static HRESULT WINAPI PersistMoniker_Load(IPersistMoniker *iface, BOOL fFullyAvailable,        IMoniker *pimkName, LPBC pibc, DWORD grfMode){    HTMLDocument *This = impl_from_IPersistMoniker(iface);    IMoniker *mon;    HRESULT hres;    TRACE("(%p)->(%x %p %p %08x)/n", This, fFullyAvailable, pimkName, pibc, grfMode);    if(pibc) {        IUnknown *unk = NULL;        /* FIXME:         * Use params:         * "__PrecreatedObject"         * "BIND_CONTEXT_PARAM"         * "__HTMLLOADOPTIONS"         * "__DWNBINDINFO"         * "URL Context"         * "_ITransData_Object_"         * "_EnumFORMATETC_"         */        hres = IBindCtx_GetObjectParam(pibc, (LPOLESTR)SZ_HTML_CLIENTSITE_OBJECTPARAM, &unk);        if(SUCCEEDED(hres) && unk) {            IOleClientSite *client = NULL;            hres = IUnknown_QueryInterface(unk, &IID_IOleClientSite, (void**)&client);            if(SUCCEEDED(hres)) {                TRACE("Got client site %p/n", client);                IOleObject_SetClientSite(&This->IOleObject_iface, client);                IOleClientSite_Release(client);            }            IUnknown_Release(unk);        }    }    if(This->doc_obj->is_mhtml) {        IUnknown *unk;        hres = MimeOleObjectFromMoniker(0, pimkName, pibc, &IID_IUnknown, (void**)&unk, &mon);        if(FAILED(hres))            return hres;        IUnknown_Release(unk);        pibc = NULL;    }else {        IMoniker_AddRef(mon = pimkName);    }    prepare_for_binding(This, mon, FALSE);    call_docview_84(This->doc_obj);    hres = set_moniker(This->window, mon, NULL, pibc, NULL, TRUE);    IMoniker_Release(mon);    if(FAILED(hres))        return hres;    return start_binding(This->window->pending_window, (BSCallback*)This->window->pending_window->bscallback, pibc);}
开发者ID:AndreRH,项目名称:wine,代码行数:59,


示例5: xmldoc_put_URL

static HRESULT WINAPI xmldoc_put_URL(IXMLDocument *iface, BSTR p){    WCHAR url[INTERNET_MAX_URL_LENGTH];    IStream *stream;    IBindCtx *bctx;    IMoniker *moniker;    IPersistStreamInit *persist;    HRESULT hr;    TRACE("(%p, %s)/n", iface, debugstr_w(p));    if (!p)        return E_INVALIDARG;    if (!PathIsURLW(p))    {        WCHAR fullpath[MAX_PATH];        DWORD needed = sizeof(url) / sizeof(WCHAR);        if (!PathSearchAndQualifyW(p, fullpath, sizeof(fullpath) / sizeof(WCHAR)))        {            ERR("can't find path/n");            return E_FAIL;        }        if (FAILED(UrlCreateFromPathW(fullpath, url, &needed, 0)))        {            ERR("can't create url from path/n");            return E_FAIL;        }        p = url;    }    hr = CreateURLMoniker(NULL, p, &moniker);    if (FAILED(hr))        return hr;    CreateAsyncBindCtx(0, &xmldoc_bsc.IBindStatusCallback_iface, 0, &bctx);    hr = IMoniker_BindToStorage(moniker, bctx, NULL, &IID_IStream, (LPVOID *)&stream);    IBindCtx_Release(bctx);    IMoniker_Release(moniker);    if (FAILED(hr))        return hr;    hr = IXMLDocument_QueryInterface(iface, &IID_IPersistStreamInit, (LPVOID *)&persist);    if (FAILED(hr))    {        IStream_Release(stream);        return hr;    }    hr = IPersistStreamInit_Load(persist, stream);    IPersistStreamInit_Release(persist);    IStream_Release(stream);    return hr;}
开发者ID:MichaelMcDonnell,项目名称:wine,代码行数:59,


示例6: IHlink_fnNavigate

static HRESULT WINAPI IHlink_fnNavigate(IHlink* iface, DWORD grfHLNF, LPBC pbc,        IBindStatusCallback *pbsc, IHlinkBrowseContext *phbc){    HlinkImpl  *This = impl_from_IHlink(iface);    IMoniker *mon = NULL;    HRESULT r;    FIXME("Semi-Stub:(%p)->(%i %p %p %p)/n", This, grfHLNF, pbc, pbsc, phbc);    r = __GetMoniker(This, &mon, HLINKGETREF_ABSOLUTE);    TRACE("Moniker %p/n", mon);    if (SUCCEEDED(r))    {        IBindCtx *bcxt;        IUnknown *unk = NULL;        IHlinkTarget *target;        CreateBindCtx(0, &bcxt);        RegisterBindStatusCallback(bcxt, pbsc, NULL, 0);        r = IMoniker_BindToObject(mon, bcxt, NULL, &IID_IUnknown, (void**)&unk);        if (r == S_OK)        {            r = IUnknown_QueryInterface(unk, &IID_IHlinkTarget, (void**)&target);            IUnknown_Release(unk);        }        if (r == S_OK)        {            IHlinkTarget_SetBrowseContext(target, phbc);            r = IHlinkTarget_Navigate(target, grfHLNF, This->Location);            IHlinkTarget_Release(target);        }        else        {            static const WCHAR szOpen[] = {'o','p','e','n',0};            LPWSTR target = NULL;            r = IHlink_GetStringReference(iface, HLINKGETREF_DEFAULT, &target, NULL);            if (SUCCEEDED(r) && target)            {                ShellExecuteW(NULL, szOpen, target, NULL, NULL, SW_SHOW);                CoTaskMemFree(target);            }        }        RevokeBindStatusCallback(bcxt, pbsc);        IBindCtx_Release(bcxt);        IMoniker_Release(mon);    }    if (This->Site)        IHlinkSite_OnNavigationComplete(This->Site, This->SiteData, 0, r, NULL);    TRACE("Finished Navigation/n");    return r;}
开发者ID:GYGit,项目名称:reactos,代码行数:59,


示例7: ClassMonikerROTData_Release

/*********************************************************************** *        ClassMonikerIROTData_Release */static ULONG WINAPI ClassMonikerROTData_Release(IROTData* iface){    ClassMoniker *This = impl_from_IROTData(iface);    TRACE("(%p)/n",iface);    return IMoniker_Release(&This->IMoniker_iface);}
开发者ID:mvardan,项目名称:ros-svn-mirror,代码行数:11,


示例8: set_current_mon

void set_current_mon(HTMLOuterWindow *This, IMoniker *mon, DWORD flags){    IUriContainer *uri_container;    IUri *uri = NULL;    HRESULT hres;    if(This->mon) {        if(This->doc_obj && !(flags & (BINDING_REPLACE|BINDING_REFRESH))) {            if(This == This->doc_obj->basedoc.window)                notify_travellog_update(This->doc_obj);            else                TRACE("Skipping travellog update for frame navigation./n");        }        IMoniker_Release(This->mon);        This->mon = NULL;    }    This->load_flags = flags;    if(!mon)        return;    IMoniker_AddRef(mon);    This->mon = mon;    hres = IMoniker_QueryInterface(mon, &IID_IUriContainer, (void**)&uri_container);    if(SUCCEEDED(hres)) {        hres = IUriContainer_GetIUri(uri_container, &uri);        IUriContainer_Release(uri_container);        if(hres != S_OK) {            WARN("GetIUri failed: %08x/n", hres);            uri = NULL;        }    }    if(!uri) {        WCHAR *url;        hres = IMoniker_GetDisplayName(mon, NULL, NULL, &url);        if(SUCCEEDED(hres)) {            hres = create_uri(url, 0, &uri);            if(FAILED(hres)) {                WARN("CrateUri failed: %08x/n", hres);                set_current_uri(This, NULL);                This->url = SysAllocString(url);                CoTaskMemFree(url);                return;            }            CoTaskMemFree(url);        }else {            WARN("GetDisplayName failed: %08x/n", hres);        }    }    set_current_uri(This, uri);    if(uri)        IUri_Release(uri);    set_script_mode(This, use_gecko_script(This) ? SCRIPTMODE_GECKO : SCRIPTMODE_ACTIVESCRIPT);}
开发者ID:AmesianX,项目名称:wine,代码行数:58,


示例9: ItemMonikerImpl_GetTimeOfLastChange

/****************************************************************************** *        ItemMoniker_GetTimeOfLastChange ******************************************************************************/static HRESULT WINAPI ItemMonikerImpl_GetTimeOfLastChange(IMoniker* iface,                                                          IBindCtx* pbc,                                                          IMoniker* pmkToLeft,                                                          FILETIME* pItemTime){    IRunningObjectTable* rot;    HRESULT res;    IMoniker *compositeMk;    TRACE("(%p,%p,%p,%p)/n",iface,pbc,pmkToLeft,pItemTime);    if (pItemTime==NULL)        return E_INVALIDARG;    /* If pmkToLeft is NULL, this method returns MK_E_NOTBINDABLE */    if (pmkToLeft==NULL)        return MK_E_NOTBINDABLE;    else {        /* Otherwise, the method creates a composite of pmkToLeft and this moniker and uses the ROT to access  */        /* the time of last change. If the object is not in the ROT, the method calls                          */        /* IMoniker::GetTimeOfLastChange on the pmkToLeft parameter.                                            */        res=CreateGenericComposite(pmkToLeft,iface,&compositeMk);        if (FAILED(res))            return res;        res=IBindCtx_GetRunningObjectTable(pbc,&rot);        if (FAILED(res)) {            IMoniker_Release(compositeMk);            return res;        }        if (IRunningObjectTable_GetTimeOfLastChange(rot,compositeMk,pItemTime)!=S_OK)            res=IMoniker_GetTimeOfLastChange(pmkToLeft,pbc,NULL,pItemTime);        IMoniker_Release(compositeMk);    }    return res;}
开发者ID:AndreRH,项目名称:wine,代码行数:46,


示例10: enum_find_filter

/* Helper function, checks if filter with given name was enumerated. */static BOOL enum_find_filter(const WCHAR *wszFilterName, IEnumMoniker *pEnum){    IMoniker *pMoniker = NULL;    BOOL found = FALSE;    ULONG nb;    HRESULT hr;    static const WCHAR wszFriendlyName[] = {'F','r','i','e','n','d','l','y','N','a','m','e',0};    while(!found && IEnumMoniker_Next(pEnum, 1, &pMoniker, &nb) == S_OK)    {        IPropertyBag * pPropBagCat = NULL;        VARIANT var;        VariantInit(&var);        hr = IMoniker_BindToStorage(pMoniker, NULL, NULL, &IID_IPropertyBag, (LPVOID*)&pPropBagCat);        ok(SUCCEEDED(hr), "IMoniker_BindToStorage failed with %x/n", hr);        if (FAILED(hr) || !pPropBagCat)        {            VariantClear(&var);            IMoniker_Release(pMoniker);            continue;        }        hr = IPropertyBag_Read(pPropBagCat, wszFriendlyName, &var, NULL);        ok(SUCCEEDED(hr), "IPropertyBag_Read failed with %x/n", hr);        if (SUCCEEDED(hr))        {            CHAR val1[512], val2[512];            WideCharToMultiByte(CP_ACP, 0, V_BSTR(&var), -1, val1, sizeof(val1), 0, 0);            WideCharToMultiByte(CP_ACP, 0, wszFilterName, -1, val2, sizeof(val2), 0, 0);            if (!lstrcmpA(val1, val2)) found = TRUE;        }        IPropertyBag_Release(pPropBagCat);        IMoniker_Release(pMoniker);        VariantClear(&var);    }    return found;}
开发者ID:Strongc,项目名称:reactos,代码行数:44,


示例11: GetActiveObject

/*********************************************************************** *		GetActiveObject (OLEAUT32.35) * * Gets an object from the global item table. * * PARAMS *  rcid        [I] CLSID of the object. *  preserved   [I] Reserved. Set to NULL. *  ppunk       [O] Address to store object into. * * RETURNS *  Success: S_OK. *  Failure: HRESULT code. */HRESULT WINAPI GetActiveObject(REFCLSID rcid,LPVOID preserved,LPUNKNOWN *ppunk){	WCHAR 			guidbuf[80];	HRESULT			ret;	LPRUNNINGOBJECTTABLE	runobtable;	LPMONIKER		moniker;	StringFromGUID2(rcid,guidbuf,39);	ret = CreateItemMoniker(pdelimiter,guidbuf,&moniker);	if (FAILED(ret))		return ret;	ret = GetRunningObjectTable(0,&runobtable);	if (FAILED(ret)) {		IMoniker_Release(moniker);		return ret;	}	ret = IRunningObjectTable_GetObject(runobtable,moniker,ppunk);	IRunningObjectTable_Release(runobtable);	IMoniker_Release(moniker);	return ret;}
开发者ID:lucianolorenti,项目名称:wine,代码行数:35,


示例12: set_current_mon

void set_current_mon(HTMLOuterWindow *This, IMoniker *mon){    IUriContainer *uri_container;    IUri *uri = NULL;    HRESULT hres;    if(This->mon) {        if(This->doc_obj)            notify_travellog_update(This->doc_obj);        IMoniker_Release(This->mon);        This->mon = NULL;    }    if(!mon)        return;    IMoniker_AddRef(mon);    This->mon = mon;    hres = IMoniker_QueryInterface(mon, &IID_IUriContainer, (void**)&uri_container);    if(SUCCEEDED(hres)) {        hres = IUriContainer_GetIUri(uri_container, &uri);        IUriContainer_Release(uri_container);        if(hres != S_OK) {            WARN("GetIUri failed: %08x/n", hres);            uri = NULL;        }    }    if(!uri) {        WCHAR *url;        hres = IMoniker_GetDisplayName(mon, NULL, NULL, &url);        if(SUCCEEDED(hres)) {            hres = CreateUri(url, 0, 0, &uri);            if(FAILED(hres)) {                WARN("CrateUri failed: %08x/n", hres);                set_current_uri(This, NULL);                This->url = SysAllocString(url);                CoTaskMemFree(url);                return;            }            CoTaskMemFree(url);        }else {            WARN("GetDisplayName failed: %08x/n", hres);        }    }    set_current_uri(This, uri);    if(uri)        IUri_Release(uri);    set_script_mode(This, use_gecko_script(This) ? SCRIPTMODE_GECKO : SCRIPTMODE_ACTIVESCRIPT);}
开发者ID:fabriceleal,项目名称:wine,代码行数:53,


示例13: XMLView_Moniker_Release

static ULONG WINAPI XMLView_Moniker_Release(IMoniker *iface){    Moniker *This = impl_from_IMoniker(iface);    ULONG ref = InterlockedDecrement(&This->ref);    TRACE("(%p)->(%d)/n", This, ref);    if(!ref) {        IMoniker_Release(This->mon);        heap_free(This);    }    return ref;}
开发者ID:RareHare,项目名称:reactos,代码行数:13,


示例14: RegisterActiveObject

/*********************************************************************** *		RegisterActiveObject (OLEAUT32.33) * * Registers an object in the global item table. * * PARAMS *  punk        [I] Object to register. *  rcid        [I] CLSID of the object. *  dwFlags     [I] Flags. *  pdwRegister [O] Address to store cookie of object registration in. * * RETURNS *  Success: S_OK. *  Failure: HRESULT code. */HRESULT WINAPI RegisterActiveObject(	LPUNKNOWN punk,REFCLSID rcid,DWORD dwFlags,LPDWORD pdwRegister) {	WCHAR 			guidbuf[80];	HRESULT			ret;	LPRUNNINGOBJECTTABLE	runobtable;	LPMONIKER		moniker;	StringFromGUID2(rcid,guidbuf,39);	ret = CreateItemMoniker(pdelimiter,guidbuf,&moniker);	if (FAILED(ret))		return ret;	ret = GetRunningObjectTable(0,&runobtable);	if (FAILED(ret)) {		IMoniker_Release(moniker);		return ret;	}	ret = IRunningObjectTable_Register(runobtable,dwFlags,punk,moniker,pdwRegister);	IRunningObjectTable_Release(runobtable);	IMoniker_Release(moniker);	return ret;}
开发者ID:howard5888,项目名称:wineT,代码行数:37,


示例15: bind_to_object

static HRESULT bind_to_object(DocHost *This, IMoniker *mon, LPCWSTR url, IBindCtx *bindctx,                              IBindStatusCallback *callback){    WCHAR schema[30];    DWORD schema_len;    HRESULT hres;    static const WCHAR httpW[] = {'h','t','t','p',0};    static const WCHAR httpsW[] = {'h','t','t','p','s',0};    static const WCHAR ftpW[]= {'f','t','p',0};    if(mon) {        IMoniker_AddRef(mon);    }else {        hres = create_moniker(url, &mon);        if(FAILED(hres))            return hres;    }    CoTaskMemFree(This->url);    hres = IMoniker_GetDisplayName(mon, 0, NULL, &This->url);    if(FAILED(hres))        FIXME("GetDisplayName failed: %08x/n", hres);    IBindCtx_RegisterObjectParam(bindctx, (LPOLESTR)SZ_HTML_CLIENTSITE_OBJECTPARAM,                                 (IUnknown*)CLIENTSITE(This));    hres = CoInternetParseUrl(This->url, PARSE_SCHEMA, 0, schema, sizeof(schema)/sizeof(schema[0]),            &schema_len, 0);    if(SUCCEEDED(hres) &&       (!strcmpW(schema, httpW) || !strcmpW(schema, httpsW) || !strcmpW(schema, ftpW))) {        hres = http_load_hack(This, mon, callback, bindctx);    }else {        IUnknown *unk = NULL;        hres = IMoniker_BindToObject(mon, bindctx, NULL, &IID_IUnknown, (void**)&unk);        if(SUCCEEDED(hres)) {            hres = S_OK;            if(unk)                IUnknown_Release(unk);        }else if(try_application_url(url)) {            hres = S_OK;        }else {            FIXME("BindToObject failed: %08x/n", hres);        }    }    IMoniker_Release(mon);    return S_OK;}
开发者ID:WASSUM,项目名称:longene_travel,代码行数:50,


示例16: IHlinkBC_Register

static HRESULT WINAPI IHlinkBC_Register(IHlinkBrowseContext* iface,        DWORD dwReserved, IUnknown *piunk, IMoniker *pimk, DWORD *pdwRegister){    static const WCHAR szIdent[] = {'W','I','N','E','H','L','I','N','K',0};    HlinkBCImpl  *This = (HlinkBCImpl*)iface;    IMoniker *mon;    IMoniker *composite;    IRunningObjectTable *ROT;    FIXME("(%p)->(%li %p %p %p)/n", This, dwReserved, piunk, pimk, pdwRegister);    CreateItemMoniker(NULL, szIdent, &mon);    CreateGenericComposite(mon, pimk, &composite);    GetRunningObjectTable(0, &ROT);    IRunningObjectTable_Register(ROT, 0, piunk, composite, pdwRegister);    IRunningObjectTable_Release(ROT);    IMoniker_Release(composite);    IMoniker_Release(mon);    return S_OK;}
开发者ID:howard5888,项目名称:wineT,代码行数:23,


示例17: URLStartDownload

static HRESULT URLStartDownload(LPCWSTR szURL, LPSTREAM *ppStream, IBindStatusCallback *pBSC){    HRESULT hr;    IMoniker *pMoniker;    IBindCtx *pbc;    *ppStream = NULL;    hr = CreateURLMoniker(NULL, szURL, &pMoniker);    if (FAILED(hr))        return hr;    hr = CreateBindCtx(0, &pbc);    if (FAILED(hr))    {        IMoniker_Release(pMoniker);        return hr;    }    hr = RegisterBindStatusCallback(pbc, pBSC, NULL, 0);    if (FAILED(hr))    {        IBindCtx_Release(pbc);        IMoniker_Release(pMoniker);        return hr;    }    hr = IMoniker_BindToStorage(pMoniker, pbc, NULL, &IID_IStream, (void **)ppStream);    /* BindToStorage returning E_PENDING because it's asynchronous is not an error */    if (hr == E_PENDING) hr = S_OK;    IBindCtx_Release(pbc);    IMoniker_Release(pMoniker);    return hr;}
开发者ID:NVIDIA,项目名称:winex_lgpl,代码行数:37,


示例18: nsURIContentListener_OnStartURIOpen

static nsresult NSAPI nsURIContentListener_OnStartURIOpen(nsIURIContentListener *iface,                                                          nsIURI *aURI, PRBool *_retval){    NSContainer *This = NSURICL_THIS(iface);    nsIWineURI *wine_uri;    nsACString spec_str;    const char *spec;    nsresult nsres;    nsACString_Init(&spec_str, NULL);    nsIURI_GetSpec(aURI, &spec_str);    nsACString_GetData(&spec_str, &spec, NULL);    TRACE("(%p)->(%p(%s) %p)/n", This, aURI, debugstr_a(spec), _retval);    nsACString_Finish(&spec_str);    nsres = nsIURI_QueryInterface(aURI, &IID_nsIWineURI, (void**)&wine_uri);    if(NS_FAILED(nsres)) {        WARN("Could not get nsIWineURI interface: %08lx/n", nsres);        return NS_ERROR_NOT_IMPLEMENTED;    }    nsIWineURI_SetNSContainer(wine_uri, This);    if(This->bscallback && This->bscallback->mon) {        LPWSTR url;        HRESULT hres;        hres = IMoniker_GetDisplayName(This->bscallback->mon, NULL, 0, &url);        if(SUCCEEDED(hres)) {            IMoniker *mon = NULL;            hres = CreateURLMoniker(NULL, url, &mon);            if(SUCCEEDED(hres)) {                nsIWineURI_SetMoniker(wine_uri, mon);                IMoniker_Release(mon);            }else {                WARN("CreateURLMoniker failed: %08lx/n", hres);            }        }else {            WARN("GetDisplayName failed: %08lx/n", hres);        }    }    nsIWineURI_Release(wine_uri);    return NS_ERROR_NOT_IMPLEMENTED;}
开发者ID:howard5888,项目名称:wineT,代码行数:49,


示例19: DEVENUM_IEnumMoniker_Next

static HRESULT WINAPI DEVENUM_IEnumMoniker_Next(IEnumMoniker *iface, ULONG celt, IMoniker **rgelt,        ULONG *pceltFetched){    EnumMonikerImpl *This = impl_from_IEnumMoniker(iface);    WCHAR buffer[MAX_PATH + 1];    LONG res;    ULONG fetched = 0;    MediaCatMoniker * pMoniker;    TRACE("(%p)->(%d, %p, %p)/n", iface, celt, rgelt, pceltFetched);    while (fetched < celt)    {        if(This->index+fetched < This->subkey_cnt)            res = RegEnumKeyW(This->hkey, This->index+fetched, buffer, sizeof(buffer) / sizeof(WCHAR));        else if(This->special_hkey)            res = RegEnumKeyW(This->special_hkey, This->index+fetched-This->subkey_cnt, buffer, sizeof(buffer) / sizeof(WCHAR));        else            break;        if (res != ERROR_SUCCESS)        {            break;        }        pMoniker = DEVENUM_IMediaCatMoniker_Construct();        if (!pMoniker)            return E_OUTOFMEMORY;        if (RegOpenKeyW(This->index+fetched < This->subkey_cnt ? This->hkey : This->special_hkey,                        buffer, &pMoniker->hkey) != ERROR_SUCCESS)        {            IMoniker_Release(&pMoniker->IMoniker_iface);            break;        }        rgelt[fetched] = &pMoniker->IMoniker_iface;        fetched++;    }    This->index += fetched;    TRACE("-- fetched %d/n", fetched);    if (pceltFetched)        *pceltFetched = fetched;    if (fetched != celt)        return S_FALSE;    else        return S_OK;}
开发者ID:hoangduit,项目名称:reactos,代码行数:49,


示例20: XMLView_PersistMoniker_Release

static ULONG WINAPI XMLView_PersistMoniker_Release(IPersistMoniker *iface){    XMLView *This = impl_from_IPersistMoniker(iface);    ULONG ref = InterlockedDecrement(&This->ref);    TRACE("(%p)->(%d)/n", This, ref);    if(!ref) {        if(This->mon)            IMoniker_Release(This->mon);        IUnknown_Release(This->html_doc);        heap_free(This);    }    return ref;}
开发者ID:RareHare,项目名称:reactos,代码行数:15,


示例21: __GetMoniker

static HRESULT __GetMoniker(HlinkImpl* This, IMoniker** moniker,        DWORD ref_type){    HRESULT hres;    if (ref_type == HLINKGETREF_DEFAULT)        ref_type = HLINKGETREF_RELATIVE;    if (This->Moniker)    {        DWORD mktype = MKSYS_NONE;        hres = IMoniker_IsSystemMoniker(This->Moniker, &mktype);        if (hres == S_OK && mktype != MKSYS_NONE)        {            *moniker = This->Moniker;            IMoniker_AddRef(*moniker);            return S_OK;        }    }    if (ref_type == HLINKGETREF_ABSOLUTE && This->Site)    {        IMoniker *hls_moniker;        hres = IHlinkSite_GetMoniker(This->Site, This->SiteData,                OLEGETMONIKER_FORCEASSIGN, OLEWHICHMK_CONTAINER, &hls_moniker);        if (FAILED(hres))            return hres;        if (This->Moniker)        {            hres = IMoniker_ComposeWith(hls_moniker, This->Moniker, FALSE,                    moniker);            IMoniker_Release(hls_moniker);            return hres;        }        *moniker = hls_moniker;        return S_OK;    }    *moniker = This->Moniker;    if (*moniker)        IMoniker_AddRef(*moniker);    return S_OK;}
开发者ID:GYGit,项目名称:reactos,代码行数:48,


示例22: IHlink_fnGetStringReference

static HRESULT WINAPI IHlink_fnGetStringReference (IHlink* iface,        DWORD dwWhichRef, LPWSTR *ppwzTarget, LPWSTR *ppwzLocation){    HlinkImpl  *This = impl_from_IHlink(iface);    TRACE("(%p) -> (%i %p %p)/n", This, dwWhichRef, ppwzTarget, ppwzLocation);    if(dwWhichRef != -1 && dwWhichRef & ~(HLINKGETREF_DEFAULT | HLINKGETREF_ABSOLUTE | HLINKGETREF_RELATIVE))    {        if(ppwzTarget)            *ppwzTarget = NULL;        if(ppwzLocation)            *ppwzLocation = NULL;        return E_INVALIDARG;    }    if (ppwzTarget)    {        IMoniker* mon;        HRESULT hres = __GetMoniker(This, &mon, dwWhichRef);        if (FAILED(hres))        {            if (ppwzLocation)                *ppwzLocation = NULL;            return hres;        }        if (mon)        {            IBindCtx *pbc;            CreateBindCtx( 0, &pbc);            IMoniker_GetDisplayName(mon, pbc, NULL, ppwzTarget);            IBindCtx_Release(pbc);            IMoniker_Release(mon);        }        else            *ppwzTarget = NULL;    }    if (ppwzLocation)        *ppwzLocation = hlink_co_strdupW( This->Location );    TRACE("(Target: %s Location: %s)/n",            (ppwzTarget)?debugstr_w(*ppwzTarget):"<NULL>",            (ppwzLocation)?debugstr_w(*ppwzLocation):"<NULL>");    return S_OK;}
开发者ID:GYGit,项目名称:reactos,代码行数:47,


示例23: statusclb_OnStartBinding

static HRESULT WINAPI statusclb_OnStartBinding(IBindStatusCallback *iface, DWORD dwReserved,                                               IBinding *pib){    HRESULT hres;    IMoniker *mon;    CHECK_EXPECT(OnStartBinding);    ok(pib != NULL, "pib should not be NULL/n");    hres = IBinding_QueryInterface(pib, &IID_IMoniker, (void**)&mon);    ok(hres == E_NOINTERFACE, "IBinding should not have IMoniker interface/n");    if(SUCCEEDED(hres))        IMoniker_Release(mon);    return S_OK;}
开发者ID:bilboed,项目名称:wine,代码行数:17,


示例24: XMLView_BindStatusCallback_Release

static ULONG WINAPI XMLView_BindStatusCallback_Release(        IBindStatusCallback *iface){    BindStatusCallback *This = impl_from_IBindStatusCallback(iface);    ULONG ref = InterlockedDecrement(&This->ref);    TRACE("(%p)->(%d)/n", This, ref);    if(!ref) {        if(This->stream)            IStream_Release(This->stream);        IBindStatusCallback_Release(This->bsc);        IMoniker_Release(This->mon);        heap_free(This);    }    return ref;}
开发者ID:RareHare,项目名称:reactos,代码行数:17,


示例25: test_SHCreateQueryCancelAutoPlayMoniker

static void test_SHCreateQueryCancelAutoPlayMoniker(void){    IBindCtx *ctxt;    IMoniker *mon;    IUnknown *unk;    CLSID clsid;    HRESULT hr;    DWORD sys;    if (!pSHCreateQueryCancelAutoPlayMoniker)    {        win_skip("SHCreateQueryCancelAutoPlayMoniker is not available, skipping tests./n");        return;    }    hr = pSHCreateQueryCancelAutoPlayMoniker(NULL);    ok(hr == E_INVALIDARG, "got 0x%08x/n", hr);    hr = pSHCreateQueryCancelAutoPlayMoniker(&mon);    ok(hr == S_OK, "got 0x%08x/n", hr);    sys = -1;    hr = IMoniker_IsSystemMoniker(mon, &sys);    ok(hr == S_OK, "got 0x%08x/n", hr);    ok(sys == MKSYS_CLASSMONIKER, "got %d/n", sys);    memset(&clsid, 0, sizeof(clsid));    hr = IMoniker_GetClassID(mon, &clsid);    ok(hr == S_OK, "got 0x%08x/n", hr);    ok(IsEqualGUID(&clsid, &CLSID_ClassMoniker), "got %s/n", wine_dbgstr_guid(&clsid));    /* extract used CLSID that implements this hook */    SET_EXPECT(autoplay_BindToObject);    SET_EXPECT(autoplay_GetClassObject);    CreateBindCtx(0, &ctxt);    hr = IMoniker_BindToObject(mon, ctxt, &test_moniker, &IID_IQueryCancelAutoPlay, (void**)&unk);    ok(hr == E_NOTIMPL, "got 0x%08x/n", hr);    IBindCtx_Release(ctxt);    CHECK_CALLED(autoplay_BindToObject);    CHECK_CALLED(autoplay_GetClassObject);    IMoniker_Release(mon);}
开发者ID:AlexSteel,项目名称:wine,代码行数:45,


示例26: bind_to_object

static HRESULT bind_to_object(DocHost *This, IMoniker *mon, LPCWSTR url, IBindCtx *bindctx,                              IBindStatusCallback *callback){    IUnknown *unk = NULL;    WCHAR *display_name;    HRESULT hres;    if(mon) {        IMoniker_AddRef(mon);    }else {        hres = create_moniker(url, &mon);        if(FAILED(hres))            return hres;    }    hres = IMoniker_GetDisplayName(mon, 0, NULL, &display_name);    if(FAILED(hres)) {        FIXME("GetDisplayName failed: %08x/n", hres);        return hres;    }    hres = set_dochost_url(This, display_name);    CoTaskMemFree(display_name);    if(FAILED(hres))        return hres;    IBindCtx_RegisterObjectParam(bindctx, (LPOLESTR)SZ_HTML_CLIENTSITE_OBJECTPARAM,                                 (IUnknown*)&This->IOleClientSite_iface);    hres = IMoniker_BindToObject(mon, bindctx, NULL, &IID_IUnknown, (void**)&unk);    if(SUCCEEDED(hres)) {        hres = S_OK;        if(unk)            IUnknown_Release(unk);    }else if(try_application_url(url)) {        hres = S_OK;    }else {        FIXME("BindToObject failed: %08x/n", hres);    }    IMoniker_Release(mon);    return S_OK;}
开发者ID:mikekap,项目名称:wine,代码行数:43,


示例27: IPersistStream_fnGetSizeMax

static HRESULT WINAPI IPersistStream_fnGetSizeMax(IPersistStream* iface,        ULARGE_INTEGER* pcbSize){    HRESULT r;    HlinkImpl *This = impl_from_IPersistStream(iface);    IMoniker *moniker;    TRACE("(%p) Moniker(%p)/n", This, This->Moniker);    pcbSize->QuadPart = sizeof(DWORD)*2;    if (This->TargetFrameName)        pcbSize->QuadPart += size_hlink_string(This->TargetFrameName);    if (This->FriendlyName)        pcbSize->QuadPart += size_hlink_string(This->FriendlyName);    r = __GetMoniker(This, &moniker, HLINKGETREF_DEFAULT);    if (FAILED(r))        return r;    r = E_FAIL;    if (moniker)    {        IPersistStream* monstream = NULL;        IMoniker_QueryInterface(moniker, &IID_IPersistStream,                (LPVOID*)&monstream);        if (monstream)        {            ULARGE_INTEGER mon_size;            r = IPersistStream_GetSizeMax(monstream, &mon_size);            pcbSize->QuadPart += mon_size.QuadPart;            IPersistStream_Release(monstream);        }        IMoniker_Release(moniker);    }    if (This->Location)        pcbSize->QuadPart += size_hlink_string(This->Location);    return r;}
开发者ID:GYGit,项目名称:reactos,代码行数:42,


示例28: IHlink_fnRelease

static ULONG WINAPI IHlink_fnRelease (IHlink* iface){    HlinkImpl  *This = impl_from_IHlink(iface);    ULONG refCount = InterlockedDecrement(&This->ref);    TRACE("(%p)->(count=%u)/n", This, refCount + 1);    if (refCount)        return refCount;    TRACE("-- destroying IHlink (%p)/n", This);    heap_free(This->FriendlyName);    heap_free(This->TargetFrameName);    heap_free(This->Location);    if (This->Moniker)        IMoniker_Release(This->Moniker);    if (This->Site)        IHlinkSite_Release(This->Site);    heap_free(This);    return 0;}
开发者ID:GYGit,项目名称:reactos,代码行数:20,



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


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