static HRESULT WINAPI ITS_IMonikerImpl_BindToStorage( IMoniker* iface, IBindCtx* pbc, IMoniker* pmkToLeft, REFIID riid, void** ppvObj) { ITS_IMonikerImpl *This = (ITS_IMonikerImpl *)iface; DWORD grfMode = STGM_SIMPLE | STGM_READ | STGM_SHARE_EXCLUSIVE; HRESULT r; IStorage *stg = NULL; TRACE("%p %p %p %s %p\n", This, pbc, pmkToLeft, debugstr_guid(riid), ppvObj); r = ITSS_StgOpenStorage( This->szFile, NULL, grfMode, 0, 0, &stg ); if( r == S_OK ) { TRACE("Opened storage %s\n", debugstr_w( This->szFile ) ); if (IsEqualGUID(riid, &IID_IStream)) r = IStorage_OpenStream( stg, This->szHtml, NULL, grfMode, 0, (IStream**)ppvObj ); else if (IsEqualGUID(riid, &IID_IStorage)) r = IStorage_OpenStorage( stg, This->szHtml, NULL, grfMode, NULL, 0, (IStorage**)ppvObj ); else r = STG_E_ACCESSDENIED; IStorage_Release( stg ); } return r; }
static HRESULT WINAPI ITStorageImpl_StgCreateDocfile( IITStorage* iface, const WCHAR* pwcsName, DWORD grfMode, DWORD reserved, IStorage** ppstgOpen) { ITStorageImpl *This = impl_from_IITStorage(iface); TRACE("%p %s %u %u %p\n", This, debugstr_w(pwcsName), grfMode, reserved, ppstgOpen ); return ITSS_StgOpenStorage( pwcsName, NULL, grfMode, 0, reserved, ppstgOpen); }
static HRESULT WINAPI ITStorageImpl_StgOpenStorage( IITStorage* iface, const WCHAR* pwcsName, IStorage* pstgPriority, DWORD grfMode, SNB snbExclude, DWORD reserved, IStorage** ppstgOpen) { ITStorageImpl *This = impl_from_IITStorage(iface); TRACE("%p %s %p %d %p\n", This, debugstr_w( pwcsName ), pstgPriority, grfMode, snbExclude ); return ITSS_StgOpenStorage( pwcsName, pstgPriority, grfMode, snbExclude, reserved, ppstgOpen); }