这篇教程C++ CreateBindCtx函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中CreateBindCtx函数的典型用法代码示例。如果您正苦于以下问题:C++ CreateBindCtx函数的具体用法?C++ CreateBindCtx怎么用?C++ CreateBindCtx使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了CreateBindCtx函数的27个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: FileMonikerImpl_IsEqual/****************************************************************************** * FileMoniker_IsEqual */static HRESULT WINAPIFileMonikerImpl_IsEqual(IMoniker* iface,IMoniker* pmkOtherMoniker){ FileMonikerImpl *This = impl_from_IMoniker(iface); CLSID clsid; LPOLESTR filePath; IBindCtx* bind; HRESULT res; TRACE("(%p,%p)/n",iface,pmkOtherMoniker); if (pmkOtherMoniker==NULL) return S_FALSE; IMoniker_GetClassID(pmkOtherMoniker,&clsid); if (!IsEqualCLSID(&clsid,&CLSID_FileMoniker)) return S_FALSE; res = CreateBindCtx(0,&bind); if (FAILED(res)) return res; res = S_FALSE; if (SUCCEEDED(IMoniker_GetDisplayName(pmkOtherMoniker,bind,NULL,&filePath))) { if (!lstrcmpiW(filePath, This->filePathName)) res = S_OK; CoTaskMemFree(filePath); } IBindCtx_Release(bind); return res;}
开发者ID:RareHare,项目名称:reactos,代码行数:35,
示例2: CreateFileMonikerint BookServerTest::createFileMoniker(){ ComPtr<IMoniker> moniker; auto hr = CreateFileMoniker(kFileName, &moniker); if (FAILED(hr)) { return -1; } IBindCtx* pbc; CreateBindCtx(0, &pbc); ComPtr<IBook> book; hr = moniker->BindToObject(pbc, NULL, IID_IBook, (void**)&book); if (FAILED(hr)) { return -1; } ComPtr<IStorage> pStorage; ComPtr<IStream> pStream; hr = StgCreateStorageEx(kMonikerFileName, STGM_WRITE | STGM_SHARE_EXCLUSIVE | STGM_CREATE, STGFMT_STORAGE, 0, NULL, 0, IID_IStorage, (void**)&pStorage); if (FAILED(hr)) return hr; hr = pStorage->CreateStream(kStreamName, STGM_WRITE | STGM_SHARE_EXCLUSIVE | STGM_CREATE, 0, 0, &pStream); if (FAILED(hr)) return hr; OleSaveToStream(moniker, pStream); return 0;}
开发者ID:Jichao,项目名称:comtut,代码行数:27,
示例3: CreateBindCtxHRESULT CDuiAxContainer::MonikerBindToStorage(IMoniker *pMk, IBindCtx *pBC, IBindStatusCallback *pBSC, REFIID riid, void **ppvObj){ HRESULT hr = E_FAIL; CDuiComPtr<IBindCtx> pBCCtx = pBC; if (pBCCtx == NULL) { // creates it if not present hr = CreateBindCtx(0, &pBCCtx); } if ( pBCCtx != NULL ) { if ( pBSC != NULL ) { typedef HRESULT (WINAPI* pfnRegisterBindStatusCallback)( IBindCtx *pbc,IBindStatusCallback *pbsc,IBindStatusCallback **ppbscPrevious,DWORD dwReserved); HMODULE urlmon = ::GetModuleHandleA("urlmon.dll"); if(!urlmon) urlmon = ::LoadLibraryA("urlmon.dll"); pfnRegisterBindStatusCallback OrigRegisterBindStatusCallback = (pfnRegisterBindStatusCallback)::GetProcAddress(urlmon,"RegisterBindStatusCallback"); hr = OrigRegisterBindStatusCallback(pBCCtx, pBSC, NULL, 0); } hr = pMk->BindToStorage(pBCCtx, NULL, riid, ppvObj); } return hr;}
开发者ID:kevinzhwl,项目名称:duiplant,代码行数:26,
示例4: ItemMonikerImpl_IsEqual/****************************************************************************** * ItemMoniker_IsEqual ******************************************************************************/static HRESULT WINAPI ItemMonikerImpl_IsEqual(IMoniker* iface,IMoniker* pmkOtherMoniker){ CLSID clsid; LPOLESTR dispName1,dispName2; IBindCtx* bind; HRESULT res = S_FALSE; TRACE("(%p,%p)/n",iface,pmkOtherMoniker); if (!pmkOtherMoniker) return S_FALSE; /* check if both are ItemMoniker */ if(FAILED (IMoniker_GetClassID(pmkOtherMoniker,&clsid))) return S_FALSE; if(!IsEqualCLSID(&clsid,&CLSID_ItemMoniker)) return S_FALSE; /* check if both displaynames are the same */ if(SUCCEEDED ((res = CreateBindCtx(0,&bind)))) { if(SUCCEEDED (IMoniker_GetDisplayName(iface,bind,NULL,&dispName1))) { if(SUCCEEDED (IMoniker_GetDisplayName(pmkOtherMoniker,bind,NULL,&dispName2))) { if(lstrcmpW(dispName1,dispName2)==0) res = S_OK; CoTaskMemFree(dispName2); } CoTaskMemFree(dispName1); } } return res;}
开发者ID:SnakeSolidNL,项目名称:reactos,代码行数:32,
示例5: CreateURLMonikervoid CMFCBindCntrItem::LoadFromMoniker(LPUNKNOWN pUnk, OLECHAR* szwName){ HRESULT hr; // Ask the system for a URL Moniker IMoniker* pIMoniker; hr = CreateURLMoniker(NULL, (LPWSTR)szwName, &pIMoniker); if ( SUCCEEDED(hr) ) { // Get the IPersistMoniker interface IPersistMoniker* pPMk; hr = pUnk->QueryInterface( IID_IPersistMoniker, (void **)&pPMk); if ( SUCCEEDED(hr) ) { // note: do not register our BSC when calling IPM::Load directly IBindCtx *pBCtx; hr = CreateBindCtx(0, &pBCtx); if ( SUCCEEDED(hr) ) { // Call Load on the IPersistMoniker hr = pPMk->Load(FALSE, pIMoniker, pBCtx, STGM_READ); pBCtx->Release(); } pPMk->Release(); } pIMoniker->Release( ); }}
开发者ID:Jinjiego,项目名称:VCSamples,代码行数:29,
示例6: bindObject/* Newer COM libraries supply the functionality of bindObject() via CoGetObject(), but to avoid depending on that being around, we stick with our own implementation.*/HRESULT bindObject( const WCHAR* name, IID* iid, void** unk ){ HRESULT hr; IBindCtx *bc; IMoniker *mk; ULONG count; if (!unk) return E_POINTER; else *unk = NULL; if (!iid) return E_POINTER; bc = NULL; mk = NULL; hr = CreateBindCtx(0, &bc); if (FAILED(hr)) return hr; hr = MkParseDisplayName(bc, name, &count, &mk); if (FAILED(hr)) { IUnknown_Release(bc); return hr; } hr = IMoniker_BindToObject( mk, bc, NULL, iid, unk ); IUnknown_Release(mk); IUnknown_Release(bc); return hr;}
开发者ID:jjinkou2,项目名称:ComForGHC7.4,代码行数:30,
示例7: HlinkResolveMonikerForData |