From e88c7f24dfed0699def5a742881ec9f3c46b58e3 Mon Sep 17 00:00:00 2001 From: Amine Khaldi Date: Fri, 19 Aug 2016 09:38:43 +0000 Subject: [PATCH] [OLE32] Sync with Wine Staging 1.9.16. CORE-11866 svn path=/trunk/; revision=72348 --- reactos/dll/win32/ole32/classmoniker.c | 6 +-- reactos/dll/win32/ole32/clipboard.c | 2 +- reactos/dll/win32/ole32/comcat.c | 4 -- reactos/dll/win32/ole32/compobj.c | 4 +- reactos/dll/win32/ole32/datacache.c | 67 +++++++++----------------- reactos/dll/win32/ole32/ftmarshal.c | 23 +++++---- reactos/dll/win32/ole32/marshal.c | 15 ++++-- reactos/dll/win32/ole32/moniker.c | 21 ++++---- reactos/dll/win32/ole32/ole2.c | 3 +- reactos/dll/win32/ole32/ole2stubs.c | 9 ++++ reactos/dll/win32/ole32/ole32.spec | 6 +-- reactos/dll/win32/ole32/stg_prop.c | 6 +-- reactos/media/doc/README.WINE | 2 +- 13 files changed, 78 insertions(+), 90 deletions(-) diff --git a/reactos/dll/win32/ole32/classmoniker.c b/reactos/dll/win32/ole32/classmoniker.c index 2d3dff884eb..d3c4250c7a8 100644 --- a/reactos/dll/win32/ole32/classmoniker.c +++ b/reactos/dll/win32/ole32/classmoniker.c @@ -218,7 +218,7 @@ static HRESULT WINAPI ClassMoniker_BindToObject(IMoniker* iface, IClassActivator *pActivator; HRESULT hr; - TRACE("(%p,%p,%p,%p)\n", pbc, pmkToLeft, riid, ppvResult); + TRACE("(%p, %p, %s, %p)\n", pbc, pmkToLeft, debugstr_guid(riid), ppvResult); bindopts.cbStruct = sizeof(bindopts); IBindCtx_GetBindOptions(pbc, (BIND_OPTS *)&bindopts); @@ -251,7 +251,7 @@ static HRESULT WINAPI ClassMoniker_BindToStorage(IMoniker* iface, REFIID riid, VOID** ppvResult) { - TRACE("(%p,%p,%p,%p)\n",pbc, pmkToLeft, riid, ppvResult); + TRACE("(%p, %p, %s, %p)\n", pbc, pmkToLeft, debugstr_guid(riid), ppvResult); return IMoniker_BindToObject(iface, pbc, pmkToLeft, riid, ppvResult); } @@ -573,7 +573,7 @@ static HRESULT WINAPI ClassMonikerROTData_QueryInterface(IROTData *iface,REFIID ClassMoniker *This = impl_from_IROTData(iface); - TRACE("(%p,%p,%p)\n",iface,riid,ppvObject); + TRACE("(%p, %s, %p)\n", iface, debugstr_guid(riid), ppvObject); return IMoniker_QueryInterface(&This->IMoniker_iface, riid, ppvObject); } diff --git a/reactos/dll/win32/ole32/clipboard.c b/reactos/dll/win32/ole32/clipboard.c index e2f3af34454..bbb6f5402b1 100644 --- a/reactos/dll/win32/ole32/clipboard.c +++ b/reactos/dll/win32/ole32/clipboard.c @@ -1799,7 +1799,7 @@ void OLEClipbrd_UnInitialize(void) * * Enumerate all formats supported by the source and make * those formats available using delayed rendering using SetClipboardData. - * Cache the enumeration list and make that list visibile as the + * Cache the enumeration list and make that list visible as the * 'Ole Private Data' format on the clipboard. * */ diff --git a/reactos/dll/win32/ole32/comcat.c b/reactos/dll/win32/ole32/comcat.c index bd66187f7fc..a1fe9959fbf 100644 --- a/reactos/dll/win32/ole32/comcat.c +++ b/reactos/dll/win32/ole32/comcat.c @@ -229,11 +229,7 @@ static HRESULT COMCAT_IsClassOfCategories( if (res != ERROR_SUCCESS) return S_FALSE; for (string = impl_strings; *string; string += CHARS_IN_GUID) { HKEY catkey; -#ifdef __REACTOS__ res = open_classes_key(subkey, string, READ_CONTROL, &catkey); -#else - res = open_classes_key(subkey, string, 0, &catkey); -#endif if (res != ERROR_SUCCESS) { RegCloseKey(subkey); return S_FALSE; diff --git a/reactos/dll/win32/ole32/compobj.c b/reactos/dll/win32/ole32/compobj.c index 769794076bc..67dbfb87923 100644 --- a/reactos/dll/win32/ole32/compobj.c +++ b/reactos/dll/win32/ole32/compobj.c @@ -4967,8 +4967,8 @@ HRESULT WINAPI CoGetContextToken( ULONG_PTR *token ) context->IComThreadingInfo_iface.lpVtbl = &Context_Threading_Vtbl; context->IContextCallback_iface.lpVtbl = &Context_Callback_Vtbl; context->IObjContext_iface.lpVtbl = &Context_Object_Vtbl; - /* Context token does not take a reference, it's always zero until - interface is explicitely requested with CoGetObjectContext(). */ + /* Context token does not take a reference, it's always zero until the + interface is explicitly requested with CoGetObjectContext(). */ context->refs = 0; info->context_token = &context->IObjContext_iface; diff --git a/reactos/dll/win32/ole32/datacache.c b/reactos/dll/win32/ole32/datacache.c index f9b2ed219c9..37c3bbd97e9 100644 --- a/reactos/dll/win32/ole32/datacache.c +++ b/reactos/dll/win32/ole32/datacache.c @@ -117,8 +117,8 @@ struct DataCache /* * List all interface here */ + IUnknown IUnknown_inner; IDataObject IDataObject_iface; - IUnknown IUnknown_iface; IPersistStorage IPersistStorage_iface; IViewObject2 IViewObject2_iface; IOleCache2 IOleCache2_iface; @@ -136,7 +136,7 @@ struct DataCache /* * IUnknown implementation of the outer object. */ - IUnknown* outerUnknown; + IUnknown *outer_unk; /* * The user of this object can setup ONE advise sink @@ -174,7 +174,7 @@ static inline DataCache *impl_from_IDataObject( IDataObject *iface ) static inline DataCache *impl_from_IUnknown( IUnknown *iface ) { - return CONTAINING_RECORD(iface, DataCache, IUnknown_iface); + return CONTAINING_RECORD(iface, DataCache, IUnknown_inner); } static inline DataCache *impl_from_IPersistStorage( IPersistStorage *iface ) @@ -956,7 +956,7 @@ static HRESULT WINAPI DataCache_IDataObject_QueryInterface( { DataCache *this = impl_from_IDataObject(iface); - return IUnknown_QueryInterface(this->outerUnknown, riid, ppvObject); + return IUnknown_QueryInterface(this->outer_unk, riid, ppvObject); } /************************************************************************ @@ -967,7 +967,7 @@ static ULONG WINAPI DataCache_IDataObject_AddRef( { DataCache *this = impl_from_IDataObject(iface); - return IUnknown_AddRef(this->outerUnknown); + return IUnknown_AddRef(this->outer_unk); } /************************************************************************ @@ -978,7 +978,7 @@ static ULONG WINAPI DataCache_IDataObject_Release( { DataCache *this = impl_from_IDataObject(iface); - return IUnknown_Release(this->outerUnknown); + return IUnknown_Release(this->outer_unk); } /************************************************************************ @@ -1136,7 +1136,7 @@ static HRESULT WINAPI DataCache_IPersistStorage_QueryInterface( { DataCache *this = impl_from_IPersistStorage(iface); - return IUnknown_QueryInterface(this->outerUnknown, riid, ppvObject); + return IUnknown_QueryInterface(this->outer_unk, riid, ppvObject); } /************************************************************************ @@ -1147,7 +1147,7 @@ static ULONG WINAPI DataCache_IPersistStorage_AddRef( { DataCache *this = impl_from_IPersistStorage(iface); - return IUnknown_AddRef(this->outerUnknown); + return IUnknown_AddRef(this->outer_unk); } /************************************************************************ @@ -1158,7 +1158,7 @@ static ULONG WINAPI DataCache_IPersistStorage_Release( { DataCache *this = impl_from_IPersistStorage(iface); - return IUnknown_Release(this->outerUnknown); + return IUnknown_Release(this->outer_unk); } /************************************************************************ @@ -1497,7 +1497,7 @@ static HRESULT WINAPI DataCache_IViewObject2_QueryInterface( { DataCache *this = impl_from_IViewObject2(iface); - return IUnknown_QueryInterface(this->outerUnknown, riid, ppvObject); + return IUnknown_QueryInterface(this->outer_unk, riid, ppvObject); } /************************************************************************ @@ -1508,7 +1508,7 @@ static ULONG WINAPI DataCache_IViewObject2_AddRef( { DataCache *this = impl_from_IViewObject2(iface); - return IUnknown_AddRef(this->outerUnknown); + return IUnknown_AddRef(this->outer_unk); } /************************************************************************ @@ -1519,7 +1519,7 @@ static ULONG WINAPI DataCache_IViewObject2_Release( { DataCache *this = impl_from_IViewObject2(iface); - return IUnknown_Release(this->outerUnknown); + return IUnknown_Release(this->outer_unk); } /************************************************************************ @@ -1921,7 +1921,7 @@ static HRESULT WINAPI DataCache_IOleCache2_QueryInterface( { DataCache *this = impl_from_IOleCache2(iface); - return IUnknown_QueryInterface(this->outerUnknown, riid, ppvObject); + return IUnknown_QueryInterface(this->outer_unk, riid, ppvObject); } /************************************************************************ @@ -1932,7 +1932,7 @@ static ULONG WINAPI DataCache_IOleCache2_AddRef( { DataCache *this = impl_from_IOleCache2(iface); - return IUnknown_AddRef(this->outerUnknown); + return IUnknown_AddRef(this->outer_unk); } /************************************************************************ @@ -1943,7 +1943,7 @@ static ULONG WINAPI DataCache_IOleCache2_Release( { DataCache *this = impl_from_IOleCache2(iface); - return IUnknown_Release(this->outerUnknown); + return IUnknown_Release(this->outer_unk); } /***************************************************************************** @@ -2120,7 +2120,7 @@ static HRESULT WINAPI DataCache_IOleCacheControl_QueryInterface( { DataCache *this = impl_from_IOleCacheControl(iface); - return IUnknown_QueryInterface(this->outerUnknown, riid, ppvObject); + return IUnknown_QueryInterface(this->outer_unk, riid, ppvObject); } /************************************************************************ @@ -2131,7 +2131,7 @@ static ULONG WINAPI DataCache_IOleCacheControl_AddRef( { DataCache *this = impl_from_IOleCacheControl(iface); - return IUnknown_AddRef(this->outerUnknown); + return IUnknown_AddRef(this->outer_unk); } /************************************************************************ @@ -2142,7 +2142,7 @@ static ULONG WINAPI DataCache_IOleCacheControl_Release( { DataCache *this = impl_from_IOleCacheControl(iface); - return IUnknown_Release(this->outerUnknown); + return IUnknown_Release(this->outer_unk); } /************************************************************************ @@ -2364,30 +2364,15 @@ static DataCache* DataCache_Construct( * Initialize the virtual function table. */ newObject->IDataObject_iface.lpVtbl = &DataCache_IDataObject_VTable; - newObject->IUnknown_iface.lpVtbl = &DataCache_NDIUnknown_VTable; + newObject->IUnknown_inner.lpVtbl = &DataCache_NDIUnknown_VTable; newObject->IPersistStorage_iface.lpVtbl = &DataCache_IPersistStorage_VTable; newObject->IViewObject2_iface.lpVtbl = &DataCache_IViewObject2_VTable; newObject->IOleCache2_iface.lpVtbl = &DataCache_IOleCache2_VTable; newObject->IOleCacheControl_iface.lpVtbl = &DataCache_IOleCacheControl_VTable; newObject->IAdviseSink_iface.lpVtbl = &DataCache_IAdviseSink_VTable; - - /* - * Start with one reference count. The caller of this function - * must release the interface pointer when it is done. - */ + newObject->outer_unk = pUnkOuter ? pUnkOuter : &newObject->IUnknown_inner; newObject->ref = 1; - /* - * Initialize the outer unknown - * We don't keep a reference on the outer unknown since, the way - * aggregation works, our lifetime is at least as large as its - * lifetime. - */ - if (pUnkOuter==NULL) - pUnkOuter = &newObject->IUnknown_iface; - - newObject->outerUnknown = pUnkOuter; - /* * Initialize the other members of the structure. */ @@ -2461,16 +2446,8 @@ HRESULT WINAPI CreateDataCache( if (newCache == 0) return E_OUTOFMEMORY; - /* - * Make sure it supports the interface required by the caller. - */ - hr = IUnknown_QueryInterface(&newCache->IUnknown_iface, riid, ppvObj); - - /* - * Release the reference obtained in the constructor. If - * the QueryInterface was unsuccessful, it will free the class. - */ - IUnknown_Release(&newCache->IUnknown_iface); + hr = IUnknown_QueryInterface(&newCache->IUnknown_inner, riid, ppvObj); + IUnknown_Release(&newCache->IUnknown_inner); return hr; } diff --git a/reactos/dll/win32/ole32/ftmarshal.c b/reactos/dll/win32/ole32/ftmarshal.c index c9d828f1f52..69863d47735 100644 --- a/reactos/dll/win32/ole32/ftmarshal.c +++ b/reactos/dll/win32/ole32/ftmarshal.c @@ -23,16 +23,15 @@ WINE_DEFAULT_DEBUG_CHANNEL(ole); typedef struct _FTMarshalImpl { - IUnknown IUnknown_iface; - LONG ref; + IUnknown IUnknown_inner; IMarshal IMarshal_iface; - - IUnknown *pUnkOuter; + IUnknown *outer_unk; + LONG ref; } FTMarshalImpl; static inline FTMarshalImpl *impl_from_IUnknown(IUnknown *iface) { - return CONTAINING_RECORD(iface, FTMarshalImpl, IUnknown_iface); + return CONTAINING_RECORD(iface, FTMarshalImpl, IUnknown_inner); } static inline FTMarshalImpl *impl_from_IMarshal( IMarshal *iface ) @@ -51,7 +50,7 @@ IiFTMUnknown_fnQueryInterface (IUnknown * iface, REFIID riid, LPVOID * ppv) *ppv = NULL; if (IsEqualIID (&IID_IUnknown, riid)) - *ppv = &This->IUnknown_iface; + *ppv = &This->IUnknown_inner; else if (IsEqualIID (&IID_IMarshal, riid)) *ppv = &This->IMarshal_iface; else { @@ -97,7 +96,7 @@ FTMarshalImpl_QueryInterface (LPMARSHAL iface, REFIID riid, LPVOID * ppv) FTMarshalImpl *This = impl_from_IMarshal(iface); TRACE ("(%p)->(%s,%p)\n", This, debugstr_guid (riid), ppv); - return IUnknown_QueryInterface (This->pUnkOuter, riid, ppv); + return IUnknown_QueryInterface(This->outer_unk, riid, ppv); } static ULONG WINAPI @@ -107,7 +106,7 @@ FTMarshalImpl_AddRef (LPMARSHAL iface) FTMarshalImpl *This = impl_from_IMarshal(iface); TRACE ("\n"); - return IUnknown_AddRef (This->pUnkOuter); + return IUnknown_AddRef(This->outer_unk); } static ULONG WINAPI @@ -117,7 +116,7 @@ FTMarshalImpl_Release (LPMARSHAL iface) FTMarshalImpl *This = impl_from_IMarshal(iface); TRACE ("\n"); - return IUnknown_Release (This->pUnkOuter); + return IUnknown_Release(This->outer_unk); } static HRESULT WINAPI @@ -326,12 +325,12 @@ HRESULT WINAPI CoCreateFreeThreadedMarshaler (LPUNKNOWN punkOuter, LPUNKNOWN * p if (!ftm) return E_OUTOFMEMORY; - ftm->IUnknown_iface.lpVtbl = &iunkvt; + ftm->IUnknown_inner.lpVtbl = &iunkvt; ftm->IMarshal_iface.lpVtbl = &ftmvtbl; ftm->ref = 1; - ftm->pUnkOuter = punkOuter ? punkOuter : &ftm->IUnknown_iface; + ftm->outer_unk = punkOuter ? punkOuter : &ftm->IUnknown_inner; - *ppunkMarshal = &ftm->IUnknown_iface; + *ppunkMarshal = &ftm->IUnknown_inner; return S_OK; } diff --git a/reactos/dll/win32/ole32/marshal.c b/reactos/dll/win32/ole32/marshal.c index 9c3d2eba899..80aefb0a1f6 100644 --- a/reactos/dll/win32/ole32/marshal.c +++ b/reactos/dll/win32/ole32/marshal.c @@ -57,6 +57,11 @@ struct proxy_manager void *dest_context_data; /* reserved context value (LOCK) */ }; +static inline struct proxy_manager *impl_from_IMultiQI( IMultiQI *iface ) +{ + return CONTAINING_RECORD(iface, struct proxy_manager, IMultiQI_iface); +} + static inline struct proxy_manager *impl_from_IMarshal( IMarshal *iface ) { return CONTAINING_RECORD(iface, struct proxy_manager, IMarshal_iface); @@ -215,16 +220,16 @@ static HRESULT WINAPI ClientIdentity_QueryInterface(IMultiQI * iface, REFIID rii return hr; } -static ULONG WINAPI ClientIdentity_AddRef(IMultiQI * iface) +static ULONG WINAPI ClientIdentity_AddRef(IMultiQI *iface) { - struct proxy_manager * This = (struct proxy_manager *)iface; + struct proxy_manager *This = impl_from_IMultiQI(iface); TRACE("%p - before %d\n", iface, This->refs); return InterlockedIncrement(&This->refs); } -static ULONG WINAPI ClientIdentity_Release(IMultiQI * iface) +static ULONG WINAPI ClientIdentity_Release(IMultiQI *iface) { - struct proxy_manager * This = (struct proxy_manager *)iface; + struct proxy_manager *This = impl_from_IMultiQI(iface); ULONG refs = InterlockedDecrement(&This->refs); TRACE("%p - after %d\n", iface, refs); if (!refs) @@ -234,7 +239,7 @@ static ULONG WINAPI ClientIdentity_Release(IMultiQI * iface) static HRESULT WINAPI ClientIdentity_QueryMultipleInterfaces(IMultiQI *iface, ULONG cMQIs, MULTI_QI *pMQIs) { - struct proxy_manager * This = (struct proxy_manager *)iface; + struct proxy_manager *This = impl_from_IMultiQI(iface); REMQIRESULT *qiresults = NULL; ULONG nonlocal_mqis = 0; ULONG i; diff --git a/reactos/dll/win32/ole32/moniker.c b/reactos/dll/win32/ole32/moniker.c index 198e60ec302..f6f1691d07b 100644 --- a/reactos/dll/win32/ole32/moniker.c +++ b/reactos/dll/win32/ole32/moniker.c @@ -1247,13 +1247,17 @@ HRESULT WINAPI GetClassFile(LPCOLESTR filePathName,CLSID *pclsid) } ret = RegQueryValueW(HKEY_CLASSES_ROOT, extension, NULL, &sizeProgId); - - /* get the progId associated to the extension */ - progId = CoTaskMemAlloc(sizeProgId); - ret = RegQueryValueW(HKEY_CLASSES_ROOT, extension, progId, &sizeProgId); - if (!ret) - /* return the clsid associated to the progId */ - res = CLSIDFromProgID(progId,pclsid); + if (!ret) { + /* get the progId associated to the extension */ + progId = CoTaskMemAlloc(sizeProgId); + ret = RegQueryValueW(HKEY_CLASSES_ROOT, extension, progId, &sizeProgId); + if (!ret) + /* return the clsid associated to the progId */ + res = CLSIDFromProgID(progId, pclsid); + else + res = HRESULT_FROM_WIN32(ret); + CoTaskMemFree(progId); + } else res = HRESULT_FROM_WIN32(ret); @@ -1261,7 +1265,6 @@ HRESULT WINAPI GetClassFile(LPCOLESTR filePathName,CLSID *pclsid) CoTaskMemFree(pathDec[i]); CoTaskMemFree(pathDec); - CoTaskMemFree(progId); return res != S_OK ? MK_E_INVALIDEXTENSION : res; } @@ -1506,7 +1509,7 @@ static HRESULT WINAPI MonikerMarshalInner_QueryInterface(IUnknown *iface, REFIID if (IsEqualIID(&IID_IUnknown, riid) || IsEqualIID(&IID_IMarshal, riid)) { *ppv = &This->IMarshal_iface; - IUnknown_AddRef((IUnknown *)&This->IMarshal_iface); + IMarshal_AddRef(&This->IMarshal_iface); return S_OK; } FIXME("No interface for %s\n", debugstr_guid(riid)); diff --git a/reactos/dll/win32/ole32/ole2.c b/reactos/dll/win32/ole32/ole2.c index 13b28f3e416..4275b835b47 100644 --- a/reactos/dll/win32/ole32/ole2.c +++ b/reactos/dll/win32/ole32/ole2.c @@ -2689,8 +2689,7 @@ static void OLE_FreeClipDataArray(ULONG count, CLIPDATA * pClipDataArray) { ULONG i; for (i = 0; i < count; i++) - if (pClipDataArray[i].pClipData) - CoTaskMemFree(pClipDataArray[i].pClipData); + CoTaskMemFree(pClipDataArray[i].pClipData); } /*********************************************************************** diff --git a/reactos/dll/win32/ole32/ole2stubs.c b/reactos/dll/win32/ole32/ole2stubs.c index 4a716be5aac..d8a1646c4ce 100644 --- a/reactos/dll/win32/ole32/ole2stubs.c +++ b/reactos/dll/win32/ole32/ole2stubs.c @@ -74,3 +74,12 @@ HRESULT WINAPI CoGetCallerTID(LPDWORD lpdwTID) FIXME("stub!\n"); return E_NOTIMPL; } + +/*********************************************************************** + * OleGetIconOfFile [OLE32.@] + */ +HGLOBAL WINAPI OleGetIconOfFile(LPOLESTR path, BOOL use_file_as_label) +{ + FIXME("(%p, %d), stub!\n", path, use_file_as_label); + return NULL; +} diff --git a/reactos/dll/win32/ole32/ole32.spec b/reactos/dll/win32/ole32/ole32.spec index baa220991b9..9c45ca91831 100644 --- a/reactos/dll/win32/ole32/ole32.spec +++ b/reactos/dll/win32/ole32/ole32.spec @@ -236,7 +236,7 @@ @ stdcall OleGetAutoConvert(ptr ptr) @ stdcall OleGetClipboard(ptr) @ stdcall OleGetIconOfClass(ptr ptr long) -@ stub OleGetIconOfFile +@ stdcall OleGetIconOfFile(ptr long) @ stdcall OleInitialize(ptr) @ stdcall OleInitializeWOW(long long) @ stdcall OleIsCurrentClipboard(ptr) @@ -292,14 +292,14 @@ @ stdcall StgCreateDocfile(wstr long long ptr) @ stdcall StgCreateDocfileOnILockBytes(ptr long long ptr) @ stdcall StgCreatePropSetStg(ptr long ptr) -# StgCreatePropStg +@ stdcall StgCreatePropStg(ptr ptr ptr long long ptr) @ stdcall StgCreateStorageEx(wstr long long long ptr ptr ptr ptr) @ stub StgGetIFillLockBytesOnFile @ stub StgGetIFillLockBytesOnILockBytes @ stdcall StgIsStorageFile(wstr) @ stdcall StgIsStorageILockBytes(ptr) @ stub StgOpenAsyncDocfileOnIFillLockBytes -# StgOpenPropStg +@ stdcall StgOpenPropStg(ptr ptr long long ptr) @ stdcall StgOpenStorage(wstr ptr long ptr long ptr) @ stdcall StgOpenStorageEx(wstr long long long ptr ptr ptr ptr) # StgOpenStorageOnHandle diff --git a/reactos/dll/win32/ole32/stg_prop.c b/reactos/dll/win32/ole32/stg_prop.c index 3b76712e5d6..a9308d68da3 100644 --- a/reactos/dll/win32/ole32/stg_prop.c +++ b/reactos/dll/win32/ole32/stg_prop.c @@ -2168,7 +2168,7 @@ static HRESULT WINAPI IPropertySetStorage_fnCreate( IPropertyStorage** ppprstg) { StorageImpl *This = impl_from_IPropertySetStorage(ppstg); - WCHAR name[CCH_MAX_PROPSTG_NAME]; + WCHAR name[CCH_MAX_PROPSTG_NAME + 1]; IStream *stm = NULL; HRESULT r; @@ -2226,7 +2226,7 @@ static HRESULT WINAPI IPropertySetStorage_fnOpen( { StorageImpl *This = impl_from_IPropertySetStorage(ppstg); IStream *stm = NULL; - WCHAR name[CCH_MAX_PROPSTG_NAME]; + WCHAR name[CCH_MAX_PROPSTG_NAME + 1]; HRESULT r; TRACE("%p %s %08x %p\n", This, debugstr_guid(rfmtid), grfMode, ppprstg); @@ -2270,7 +2270,7 @@ static HRESULT WINAPI IPropertySetStorage_fnDelete( REFFMTID rfmtid) { StorageImpl *This = impl_from_IPropertySetStorage(ppstg); - WCHAR name[CCH_MAX_PROPSTG_NAME]; + WCHAR name[CCH_MAX_PROPSTG_NAME + 1]; HRESULT r; TRACE("%p %s\n", This, debugstr_guid(rfmtid)); diff --git a/reactos/media/doc/README.WINE b/reactos/media/doc/README.WINE index c474e10d702..fe1e0a274b6 100644 --- a/reactos/media/doc/README.WINE +++ b/reactos/media/doc/README.WINE @@ -142,7 +142,7 @@ reactos/dll/win32/ntprint # Synced to WineStaging-1.9.11 reactos/dll/win32/objsel # Synced to WineStaging-1.9.11 reactos/dll/win32/odbc32 # Synced to WineStaging-1.9.11. Depends on port of Linux ODBC. reactos/dll/win32/odbccp32 # Synced to WineStaging-1.9.11 -reactos/dll/win32/ole32 # Synced to WineStaging-1.9.11 +reactos/dll/win32/ole32 # Synced to WineStaging-1.9.16 reactos/dll/win32/oleacc # Synced to WineStaging-1.9.11 reactos/dll/win32/oleaut32 # Synced to WineStaging-1.9.16 reactos/dll/win32/olecli32 # Synced to WineStaging-1.9.11