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/antimonike…
==============================================================================
--- 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/classmonik…
==============================================================================
--- 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.…
==============================================================================
--- 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/compositem…
==============================================================================
--- 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/itemmonike…
==============================================================================
--- 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?…
==============================================================================
--- 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.…
==============================================================================
--- 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/pointermon…
==============================================================================
--- 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=…
==============================================================================
--- 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=…
==============================================================================
--- 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