Commit c5e020c5 authored by Huw Davies's avatar Huw Davies Committed by Alexandre Julliard

ole32: Read the class id from the top-level storage object.

The cache_entries' storages are just references to the same object anyway.
parent 366ed549
...@@ -1182,34 +1182,28 @@ static ULONG WINAPI DataCache_IPersistStorage_Release( ...@@ -1182,34 +1182,28 @@ static ULONG WINAPI DataCache_IPersistStorage_Release(
/************************************************************************ /************************************************************************
* DataCache_GetClassID (IPersistStorage) * DataCache_GetClassID (IPersistStorage)
* *
* The data cache doesn't implement this method.
*/ */
static HRESULT WINAPI DataCache_GetClassID( static HRESULT WINAPI DataCache_GetClassID(IPersistStorage *iface, CLSID *clsid)
IPersistStorage* iface,
CLSID* pClassID)
{ {
DataCache *This = impl_from_IPersistStorage(iface); DataCache *This = impl_from_IPersistStorage( iface );
DataCacheEntry *cache_entry; HRESULT hr;
STATSTG statstg;
TRACE("(%p, %p)\n", iface, pClassID); TRACE( "(%p, %p)\n", iface, clsid );
LIST_FOR_EACH_ENTRY(cache_entry, &This->cache_list, DataCacheEntry, entry) if (This->presentationStorage)
{
if (cache_entry->storage != NULL)
{ {
STATSTG statstg; hr = IStorage_Stat( This->presentationStorage, &statstg, STATFLAG_NONAME );
HRESULT hr = IStorage_Stat(cache_entry->storage, &statstg, STATFLAG_NONAME); if (SUCCEEDED(hr))
if (SUCCEEDED(hr)) {
{ *clsid = statstg.clsid;
*pClassID = statstg.clsid; return S_OK;
return S_OK; }
}
} }
}
*pClassID = CLSID_NULL; *clsid = CLSID_NULL;
return S_OK; return S_OK;
} }
/************************************************************************ /************************************************************************
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment