static HRESULT WINAPI DEVENUM_IMediaCatMoniker_BindToStorage(IMoniker *iface, IBindCtx *pbc, IMoniker *pmkToLeft, REFIID riid, void **ppvObj) { MediaCatMoniker *This = impl_from_IMoniker(iface); TRACE("(%p)->(%p, %p, %s, %p)\n", This, pbc, pmkToLeft, debugstr_guid(riid), ppvObj); *ppvObj = NULL; if (pmkToLeft) return MK_E_NOSTORAGE; if (pbc != NULL) { static DWORD reported; if (!reported) { FIXME("ignoring IBindCtx %p\n", pbc); reported++; } } if (IsEqualGUID(riid, &IID_IPropertyBag)) { HANDLE hkey; DuplicateHandle(GetCurrentProcess(), This->hkey, GetCurrentProcess(), &hkey, 0, 0, DUPLICATE_SAME_ACCESS); return DEVENUM_IPropertyBag_Construct(hkey, (IPropertyBag**)ppvObj); } return MK_E_NOSTORAGE; }
static HRESULT WINAPI DEVENUM_IMediaCatMoniker_BindToStorage( LPMONIKER iface, IBindCtx* pbc, IMoniker* pmkToLeft, REFIID riid, void** ppvObj) { MediaCatMoniker *This = (MediaCatMoniker *)iface; TRACE("(%p)->(%p, %p, %s, %p)\n", This, pbc, pmkToLeft, debugstr_guid(riid), ppvObj); *ppvObj = NULL; if (pbc || pmkToLeft) return MK_E_NOSTORAGE; if (IsEqualGUID(riid, &IID_IPropertyBag)) { HANDLE hkey; DuplicateHandle(GetCurrentProcess(), This->hkey, GetCurrentProcess(), &hkey, 0, 0, DUPLICATE_SAME_ACCESS); return DEVENUM_IPropertyBag_Construct(hkey, (IPropertyBag**)ppvObj); } return MK_E_NOSTORAGE; }