From: Huw Davies Subject: [PATCH 01/10] ole32: Read the class id from the top-level storage object. Message-Id: <1427272662-10261-1-git-send-email-huw@codeweavers.com> Date: Wed, 25 Mar 2015 08:37:33 +0000 The cache_entries' storages are just references to the same object anyway. --- dlls/ole32/datacache.c | 34 ++++++++++++++-------------------- 1 file changed, 14 insertions(+), 20 deletions(-) diff --git a/dlls/ole32/datacache.c b/dlls/ole32/datacache.c index 2aae536..d9754a3 100644 --- a/dlls/ole32/datacache.c +++ b/dlls/ole32/datacache.c @@ -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; } /************************************************************************ -- 1.8.0