这篇教程C++ IMoniker_Release函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中IMoniker_Release函数的典型用法代码示例。如果您正苦于以下问题:C++ IMoniker_Release函数的具体用法?C++ IMoniker_Release怎么用?C++ IMoniker_Release使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了IMoniker_Release函数的28个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: set_current_monvoid 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_cacheHRESULT 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_fnGetFriendlyNamestatic 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_Loadstatic 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_URLstatic 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_fnNavigatestatic 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_monvoid 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_monvoid 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_Releasestatic 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_objectstatic 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_Registerstatic 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: URLStartDownloadstatic 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_OnStartURIOpenstatic 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_Nextstatic 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_Releasestatic 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: __GetMonikerstatic 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_fnGetStringReferencestatic 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_OnStartBindingstatic 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_Releasestatic 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_SHCreateQueryCancelAutoPlayMonikerstatic 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_objectstatic 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_fnGetSizeMaxstatic 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_fnReleasestatic 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函数代码示例 |