Author: akhaldi Date: Tue Nov 22 12:30:48 2016 New Revision: 73341
URL: http://svn.reactos.org/svn/reactos?rev=73341&view=rev Log: [OLE32] Sync with Wine Staging 1.9.23. CORE-12409
Modified: trunk/reactos/dll/win32/ole32/antimoniker.c trunk/reactos/dll/win32/ole32/classmoniker.c trunk/reactos/dll/win32/ole32/clipboard.c trunk/reactos/dll/win32/ole32/compositemoniker.c trunk/reactos/dll/win32/ole32/itemmoniker.c trunk/reactos/dll/win32/ole32/moniker.c trunk/reactos/dll/win32/ole32/ole32_ros.diff trunk/reactos/dll/win32/ole32/pointermoniker.c trunk/reactos/dll/win32/ole32/rpc.c trunk/reactos/media/doc/README.WINE
Modified: trunk/reactos/dll/win32/ole32/antimoniker.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/ole32/antimoniker... ============================================================================== --- trunk/reactos/dll/win32/ole32/antimoniker.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/ole32/antimoniker.c [iso-8859-1] Tue Nov 22 12:30:48 2016 @@ -49,7 +49,7 @@ { AntiMonikerImpl *This = impl_from_IMoniker(iface);
- TRACE("(%p,%p,%p)\n",This,riid,ppvObject); + TRACE("(%p,%s,%p)\n",This,debugstr_guid(riid),ppvObject);
/* Perform a sanity check on the parameters.*/ if ( ppvObject==0 ) @@ -217,7 +217,7 @@ AntiMonikerImpl_BindToObject(IMoniker* iface, IBindCtx* pbc, IMoniker* pmkToLeft, REFIID riid, VOID** ppvResult) { - TRACE("(%p,%p,%p,%p,%p)\n",iface,pbc,pmkToLeft,riid,ppvResult); + TRACE("(%p,%p,%p,%s,%p)\n",iface,pbc,pmkToLeft,debugstr_guid(riid),ppvResult); return E_NOTIMPL; }
@@ -228,7 +228,7 @@ AntiMonikerImpl_BindToStorage(IMoniker* iface, IBindCtx* pbc, IMoniker* pmkToLeft, REFIID riid, VOID** ppvResult) { - TRACE("(%p,%p,%p,%p,%p)\n",iface,pbc,pmkToLeft,riid,ppvResult); + TRACE("(%p,%p,%p,%s,%p)\n",iface,pbc,pmkToLeft,debugstr_guid(riid),ppvResult); return E_NOTIMPL; }
@@ -483,7 +483,7 @@ { AntiMonikerImpl *This = impl_from_IROTData(iface);
- TRACE("(%p,%p,%p)\n",iface,riid,ppvObject); + TRACE("(%p,%s,%p)\n",iface,debugstr_guid(riid),ppvObject);
return AntiMonikerImpl_QueryInterface(&This->IMoniker_iface, riid, ppvObject); }
Modified: trunk/reactos/dll/win32/ole32/classmoniker.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/ole32/classmonike... ============================================================================== --- trunk/reactos/dll/win32/ole32/classmoniker.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/ole32/classmoniker.c [iso-8859-1] Tue Nov 22 12:30:48 2016 @@ -52,7 +52,7 @@ { ClassMoniker *This = impl_from_IMoniker(iface);
- TRACE("(%p,%p,%p)\n",This,riid,ppvObject); + TRACE("(%p,%s,%p)\n",This,debugstr_guid(riid),ppvObject);
/* Perform a sanity check on the parameters.*/ if (!ppvObject)
Modified: trunk/reactos/dll/win32/ole32/clipboard.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/ole32/clipboard.c... ============================================================================== --- trunk/reactos/dll/win32/ole32/clipboard.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/ole32/clipboard.c [iso-8859-1] Tue Nov 22 12:30:48 2016 @@ -2025,10 +2025,12 @@ case WM_RENDERALLFORMATS: { DWORD i; - ole_priv_data_entry *entries = clipbrd->cached_enum->entries; + ole_priv_data_entry *entries;
TRACE("(): WM_RENDERALLFORMATS\n");
+ if (!clipbrd || !clipbrd->cached_enum) break; + entries = clipbrd->cached_enum->entries; for(i = 0; i < clipbrd->cached_enum->count; i++) { if(entries[i].first_use)
Modified: trunk/reactos/dll/win32/ole32/compositemoniker.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/ole32/compositemo... ============================================================================== --- trunk/reactos/dll/win32/ole32/compositemoniker.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/ole32/compositemoniker.c [iso-8859-1] Tue Nov 22 12:30:48 2016 @@ -74,7 +74,7 @@ { CompositeMonikerImpl *This = impl_from_IMoniker(iface);
- TRACE("(%p,%p,%p)\n",This,riid,ppvObject); + TRACE("(%p,%s,%p)\n",This,debugstr_guid(riid),ppvObject);
/* Perform a sanity check on the parameters.*/ if ( ppvObject==0 ) @@ -323,7 +323,7 @@ IMoniker *tempMk,*antiMk,*rightMostMk; IEnumMoniker *enumMoniker;
- TRACE("(%p,%p,%p,%p,%p)\n",iface,pbc,pmkToLeft,riid,ppvResult); + TRACE("(%p,%p,%p,%s,%p)\n",iface,pbc,pmkToLeft,debugstr_guid(riid),ppvResult);
if (ppvResult==NULL) return E_POINTER; @@ -376,7 +376,7 @@ IMoniker *tempMk,*antiMk,*rightMostMk,*leftMk; IEnumMoniker *enumMoniker;
- TRACE("(%p,%p,%p,%p,%p)\n",iface,pbc,pmkToLeft,riid,ppvResult); + TRACE("(%p,%p,%p,%s,%p)\n",iface,pbc,pmkToLeft,debugstr_guid(riid),ppvResult);
*ppvResult=0;
@@ -1182,7 +1182,7 @@ { CompositeMonikerImpl *This = impl_from_IROTData(iface);
- TRACE("(%p,%p,%p)\n",iface,riid,ppvObject); + TRACE("(%p,%s,%p)\n",iface,debugstr_guid(riid),ppvObject);
return CompositeMonikerImpl_QueryInterface(&This->IMoniker_iface, riid, ppvObject); } @@ -1486,7 +1486,7 @@ { EnumMonikerImpl *This = impl_from_IEnumMoniker(iface);
- TRACE("(%p,%p,%p)\n",This,riid,ppvObject); + TRACE("(%p,%s,%p)\n",This,debugstr_guid(riid),ppvObject);
/* Perform a sanity check on the parameters.*/ if ( ppvObject==0 )
Modified: trunk/reactos/dll/win32/ole32/itemmoniker.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/ole32/itemmoniker... ============================================================================== --- trunk/reactos/dll/win32/ole32/itemmoniker.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/ole32/itemmoniker.c [iso-8859-1] Tue Nov 22 12:30:48 2016 @@ -760,7 +760,7 @@
ItemMonikerImpl *This = impl_from_IROTData(iface);
- TRACE("(%p,%p,%p)\n",iface,riid,ppvObject); + TRACE("(%p,%s,%p)\n",iface,debugstr_guid(riid),ppvObject);
return ItemMonikerImpl_QueryInterface(&This->IMoniker_iface, riid, ppvObject); }
Modified: trunk/reactos/dll/win32/ole32/moniker.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/ole32/moniker.c?r... ============================================================================== --- trunk/reactos/dll/win32/ole32/moniker.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/ole32/moniker.c [iso-8859-1] Tue Nov 22 12:30:48 2016 @@ -23,6 +23,7 @@
#include "precomp.h"
+#include <winsvc.h> #include <wine/exception.h>
#include <irot.h> @@ -113,32 +114,52 @@
static BOOL start_rpcss(void) { - PROCESS_INFORMATION pi; - STARTUPINFOW si; - WCHAR cmd[MAX_PATH]; - static const WCHAR rpcss[] = {'\','r','p','c','s','s','.','e','x','e',0}; - BOOL rslt; - void *redir; + static const WCHAR rpcssW[] = {'R','p','c','S','s',0}; + SC_HANDLE scm, service; + SERVICE_STATUS_PROCESS status; + BOOL ret = FALSE;
TRACE("\n");
- ZeroMemory(&si, sizeof(STARTUPINFOA)); - si.cb = sizeof(STARTUPINFOA); - GetSystemDirectoryW( cmd, MAX_PATH - sizeof(rpcss)/sizeof(WCHAR) ); - strcatW( cmd, rpcss ); - - Wow64DisableWow64FsRedirection( &redir ); - rslt = CreateProcessW( cmd, cmd, NULL, NULL, FALSE, DETACHED_PROCESS, NULL, NULL, &si, &pi ); - Wow64RevertWow64FsRedirection( redir ); - - if (rslt) - { - CloseHandle(pi.hProcess); - CloseHandle(pi.hThread); - Sleep(100); - } - - return rslt; + if (!(scm = OpenSCManagerW( NULL, NULL, 0 ))) + { + ERR( "failed to open service manager\n" ); + return FALSE; + } + if (!(service = OpenServiceW( scm, rpcssW, SERVICE_START | SERVICE_QUERY_STATUS ))) + { + ERR( "failed to open RpcSs service\n" ); + CloseServiceHandle( scm ); + return FALSE; + } + if (StartServiceW( service, 0, NULL ) || GetLastError() == ERROR_SERVICE_ALREADY_RUNNING) + { + ULONGLONG start_time = GetTickCount64(); + do + { + DWORD dummy; + + if (!QueryServiceStatusEx( service, SC_STATUS_PROCESS_INFO, + (BYTE *)&status, sizeof(status), &dummy )) + break; + if (status.dwCurrentState == SERVICE_RUNNING) + { + ret = TRUE; + break; + } + if (GetTickCount64() - start_time > 30000) break; + Sleep( 100 ); + + } while (status.dwCurrentState == SERVICE_START_PENDING); + + if (status.dwCurrentState != SERVICE_RUNNING) + WARN( "RpcSs failed to start %u\n", status.dwCurrentState ); + } + else ERR( "failed to start RpcSs service\n" ); + + CloseServiceHandle( service ); + CloseServiceHandle( scm ); + return ret; }
static HRESULT create_stream_on_mip_ro(const InterfaceData *mip, IStream **stream) @@ -287,7 +308,7 @@ { RunningObjectTableImpl *This = impl_from_IRunningObjectTable(iface);
- TRACE("(%p,%p,%p)\n",This,riid,ppvObject); + TRACE("(%p,%s,%p)\n",This,debugstr_guid(riid),ppvObject);
/* validate arguments */
@@ -1275,7 +1296,7 @@ { EnumMonikerImpl *This = impl_from_IEnumMoniker(iface);
- TRACE("(%p,%p,%p)\n",This,riid,ppvObject); + TRACE("(%p,%s,%p)\n",This,debugstr_guid(riid),ppvObject);
/* validate arguments */ if (ppvObject == NULL)
Modified: trunk/reactos/dll/win32/ole32/ole32_ros.diff URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/ole32/ole32_ros.d... ============================================================================== --- trunk/reactos/dll/win32/ole32/ole32_ros.diff [iso-8859-1] (original) +++ trunk/reactos/dll/win32/ole32/ole32_ros.diff [iso-8859-1] Tue Nov 22 12:30:48 2016 @@ -1,21 +1,20 @@ -diff -pudN e:\wine\dlls\ole32/comcat.c e:\reactos\dll\win32\ole32/comcat.c ---- e:\wine\dlls\ole32/comcat.c 2016-05-31 18:02:11 +0100 -+++ e:\reactos\dll\win32\ole32/comcat.c 2016-03-04 10:20:45 +0100 -@@ -229,7 +229,11 @@ static HRESULT COMCAT_IsClassOfCategorie - if (res != ERROR_SUCCESS) return S_FALSE; - for (string = impl_strings; *string; string += CHARS_IN_GUID) { - HKEY catkey; +diff -pudN e:\wine\dlls\ole32/clipboard.c e:\reactos\dll\win32\ole32/clipboard.c +--- e:\wine\dlls\ole32/clipboard.c 2016-11-16 17:29:23 +0100 ++++ e:\reactos\dll\win32\ole32/clipboard.c 2016-11-16 23:37:23 +0100 +@@ -2001,6 +2001,10 @@ static LRESULT CALLBACK clipbrd_wndproc( + ole_clipbrd *clipbrd; + + get_ole_clipbrd(&clipbrd); +#ifdef __REACTOS__ - res = open_classes_key(subkey, string, READ_CONTROL, &catkey); -+#else -+ res = open_classes_key(subkey, string, 0, &catkey); ++ if(clipbrd == NULL) ++ return DefWindowProcW(hwnd, message, wparam, lparam); +#endif - if (res != ERROR_SUCCESS) { - RegCloseKey(subkey); - return S_FALSE; + + switch (message) + { diff -pudN e:\wine\dlls\ole32/compobj.c e:\reactos\dll\win32\ole32/compobj.c ---- e:\wine\dlls\ole32/compobj.c 2016-05-31 18:02:11 +0100 -+++ e:\reactos\dll\win32\ole32/compobj.c 2016-06-07 11:34:16 +0100 +--- e:\wine\dlls\ole32/compobj.c 2016-11-16 17:29:23 +0100 ++++ e:\reactos\dll\win32\ole32/compobj.c 2016-11-17 15:23:00 +0100 @@ -43,6 +43,7 @@
WINE_DEFAULT_DEBUG_CHANNEL(ole); @@ -39,8 +38,8 @@ static HKEY classes_root_hkey;
diff -pudN e:\wine\dlls\ole32/stg_prop.c e:\reactos\dll\win32\ole32/stg_prop.c ---- e:\wine\dlls\ole32/stg_prop.c 2016-05-31 18:02:11 +0100 -+++ e:\reactos\dll\win32\ole32/stg_prop.c 2016-06-07 11:34:17 +0100 +--- e:\wine\dlls\ole32/stg_prop.c 2016-11-16 17:29:23 +0100 ++++ e:\reactos\dll\win32\ole32/stg_prop.c 2016-08-15 16:49:04 +0100 @@ -41,6 +41,10 @@
WINE_DEFAULT_DEBUG_CHANNEL(storage);
Modified: trunk/reactos/dll/win32/ole32/pointermoniker.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/ole32/pointermoni... ============================================================================== --- trunk/reactos/dll/win32/ole32/pointermoniker.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/ole32/pointermoniker.c [iso-8859-1] Tue Nov 22 12:30:48 2016 @@ -43,7 +43,7 @@ { PointerMonikerImpl *This = impl_from_IMoniker(iface);
- TRACE("(%p,%p,%p)\n",This,riid,ppvObject); + TRACE("(%p,%s,%p)\n",This,debugstr_guid(riid),ppvObject);
/* Perform a sanity check on the parameters.*/ if ( (This==0) || (ppvObject==0) ) @@ -187,7 +187,7 @@ { PointerMonikerImpl *This = impl_from_IMoniker(iface);
- TRACE("(%p,%p,%p,%p,%p)\n",iface,pbc,pmkToLeft,riid,ppvResult); + TRACE("(%p,%p,%p,%s,%p)\n",iface,pbc,pmkToLeft,debugstr_guid(riid),ppvResult);
if (!This->pObject) return E_UNEXPECTED; @@ -204,7 +204,7 @@ { PointerMonikerImpl *This = impl_from_IMoniker(iface);
- TRACE("(%p,%p,%p,%p,%p)\n",iface,pbc,pmkToLeft,riid,ppvResult); + TRACE("(%p,%p,%p,%s,%p)\n",iface,pbc,pmkToLeft,debugstr_guid(riid),ppvResult);
if (!This->pObject) return E_UNEXPECTED;
Modified: trunk/reactos/dll/win32/ole32/rpc.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/ole32/rpc.c?rev=7... ============================================================================== --- trunk/reactos/dll/win32/ole32/rpc.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/ole32/rpc.c [iso-8859-1] Tue Nov 22 12:30:48 2016 @@ -643,7 +643,7 @@ message_state->channel_hook_info.cbSize = sizeof(message_state->channel_hook_info); message_state->channel_hook_info.uCausality = COM_CurrentCausalityId(); message_state->channel_hook_info.dwServerPid = This->server_pid; - message_state->channel_hook_info.iMethod = msg->ProcNum; + message_state->channel_hook_info.iMethod = msg->ProcNum & ~RPC_FLAGS_VALID_BIT; message_state->channel_hook_info.pObject = NULL; /* only present on server-side */ message_state->target_hwnd = NULL; message_state->target_tid = 0;
Modified: trunk/reactos/media/doc/README.WINE URL: http://svn.reactos.org/svn/reactos/trunk/reactos/media/doc/README.WINE?rev=7... ============================================================================== --- trunk/reactos/media/doc/README.WINE [iso-8859-1] (original) +++ trunk/reactos/media/doc/README.WINE [iso-8859-1] Tue Nov 22 12:30:48 2016 @@ -139,7 +139,7 @@ reactos/dll/win32/objsel # Synced to WineStaging-1.9.11 reactos/dll/win32/odbc32 # Synced to WineStaging-1.9.23. 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.16 +reactos/dll/win32/ole32 # Synced to WineStaging-1.9.23 reactos/dll/win32/oleacc # Synced to WineStaging-1.9.11 reactos/dll/win32/oleaut32 # Synced to WineStaging-1.9.23 reactos/dll/win32/olecli32 # Synced to WineStaging-1.9.11