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(
/************************************************************************
* DataCache_GetClassID (IPersistStorage)
*
* The data cache doesn't implement this method.
*/
static HRESULT WINAPI DataCache_GetClassID(
IPersistStorage* iface,
CLSID* pClassID)
static HRESULT WINAPI DataCache_GetClassID(IPersistStorage *iface, CLSID *clsid)
{
DataCache *This = impl_from_IPersistStorage(iface);
DataCacheEntry *cache_entry;
DataCache *This = impl_from_IPersistStorage( iface );
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 (cache_entry->storage != NULL)
if (This->presentationStorage)
{
STATSTG statstg;
HRESULT hr = IStorage_Stat(cache_entry->storage, &statstg, STATFLAG_NONAME);
if (SUCCEEDED(hr))
{
*pClassID = statstg.clsid;
return S_OK;
}
hr = IStorage_Stat( This->presentationStorage, &statstg, STATFLAG_NONAME );
if (SUCCEEDED(hr))
{
*clsid = statstg.clsid;
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