mirror of
https://github.com/reactos/reactos.git
synced 2025-01-01 03:54:02 +00:00
[OLE32] Sync with Wine Staging 1.9.23. CORE-12409
svn path=/trunk/; revision=73341
This commit is contained in:
parent
6c3bba2b11
commit
b0a8d568d9
10 changed files with 78 additions and 56 deletions
|
@ -49,7 +49,7 @@ AntiMonikerImpl_QueryInterface(IMoniker* iface,REFIID riid,void** ppvObject)
|
|||
{
|
||||
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 @@ static HRESULT WINAPI
|
|||
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 @@ static HRESULT WINAPI
|
|||
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 @@ AntiMonikerROTDataImpl_QueryInterface(IROTData *iface,REFIID riid,VOID** ppvObje
|
|||
{
|
||||
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);
|
||||
}
|
||||
|
|
|
@ -52,7 +52,7 @@ static HRESULT WINAPI ClassMoniker_QueryInterface(IMoniker* iface,REFIID riid,vo
|
|||
{
|
||||
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)
|
||||
|
|
|
@ -2025,10 +2025,12 @@ static LRESULT CALLBACK clipbrd_wndproc(HWND hwnd, UINT message, WPARAM wparam,
|
|||
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)
|
||||
|
|
|
@ -74,7 +74,7 @@ CompositeMonikerImpl_QueryInterface(IMoniker* iface,REFIID riid,void** ppvObject
|
|||
{
|
||||
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 @@ CompositeMonikerImpl_BindToObject(IMoniker* iface, IBindCtx* pbc,
|
|||
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 @@ CompositeMonikerImpl_BindToStorage(IMoniker* iface, IBindCtx* pbc,
|
|||
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 @@ CompositeMonikerROTDataImpl_QueryInterface(IROTData *iface,REFIID riid,
|
|||
{
|
||||
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_QueryInterface(IEnumMoniker* iface,REFIID riid,void** ppvObject)
|
|||
{
|
||||
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 )
|
||||
|
|
|
@ -760,7 +760,7 @@ static HRESULT WINAPI ItemMonikerROTDataImpl_QueryInterface(IROTData *iface,REFI
|
|||
|
||||
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);
|
||||
}
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
|
||||
#include "precomp.h"
|
||||
|
||||
#include <winsvc.h>
|
||||
#include <wine/exception.h>
|
||||
|
||||
#include <irot.h>
|
||||
|
@ -113,32 +114,52 @@ static IrotHandle get_irot_handle(void)
|
|||
|
||||
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)
|
||||
if (!(scm = OpenSCManagerW( NULL, NULL, 0 )))
|
||||
{
|
||||
CloseHandle(pi.hProcess);
|
||||
CloseHandle(pi.hThread);
|
||||
Sleep(100);
|
||||
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;
|
||||
|
||||
return rslt;
|
||||
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_QueryInterface(IRunningObjectTable* iface,
|
|||
{
|
||||
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 @@ static HRESULT WINAPI EnumMonikerImpl_QueryInterface(IEnumMoniker* iface,REFIID
|
|||
{
|
||||
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)
|
||||
|
|
|
@ -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 @@ diff -pudN e:\wine\dlls\ole32/compobj.c e:\reactos\dll\win32\ole32/compobj.c
|
|||
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);
|
||||
|
|
|
@ -43,7 +43,7 @@ PointerMonikerImpl_QueryInterface(IMoniker* iface,REFIID riid,void** ppvObject)
|
|||
{
|
||||
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_BindToObject(IMoniker* iface, IBindCtx* pbc, IMoniker* pmkToL
|
|||
{
|
||||
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_BindToStorage(IMoniker* iface, IBindCtx* pbc, IMoniker* pmkTo
|
|||
{
|
||||
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;
|
||||
|
|
|
@ -643,7 +643,7 @@ static HRESULT WINAPI ClientRpcChannelBuffer_GetBuffer(LPRPCCHANNELBUFFER iface,
|
|||
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;
|
||||
|
|
|
@ -139,7 +139,7 @@ reactos/dll/win32/ntdsapi # 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.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
|
||||
|
|
Loading…
Reference in a new issue