msi: Make MsiSetProperty() RPC-compatible.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
oldstable
Zebediah Figura 2018-04-17 10:35:37 -05:00 committed by Alexandre Julliard
parent 2192c9a50a
commit a73182ca54
2 changed files with 4 additions and 29 deletions

View File

@ -2203,35 +2203,11 @@ UINT WINAPI MsiSetPropertyW( MSIHANDLE hInstall, LPCWSTR szName, LPCWSTR szValue
if( !package )
{
MSIHANDLE remote;
HRESULT hr;
BSTR name = NULL, value = NULL;
if (!(remote = msi_get_remote(hInstall)))
return ERROR_INVALID_HANDLE;
name = SysAllocString( szName );
value = SysAllocString( szValue );
if ((!name && szName) || (!value && szValue))
{
SysFreeString( name );
SysFreeString( value );
return ERROR_OUTOFMEMORY;
}
hr = remote_SetProperty(remote, name, value);
SysFreeString( name );
SysFreeString( value );
if (FAILED(hr))
{
if (HRESULT_FACILITY(hr) == FACILITY_WIN32)
return HRESULT_CODE(hr);
return ERROR_FUNCTION_FAILED;
}
return ERROR_SUCCESS;
return remote_SetProperty(remote, szName, szValue);
}
ret = msi_set_property( package->db, szName, szValue, -1 );
@ -2500,10 +2476,9 @@ UINT __cdecl remote_GetProperty(MSIHANDLE hinst, LPCWSTR property, LPWSTR *value
return r;
}
HRESULT __cdecl remote_SetProperty(MSIHANDLE hinst, BSTR property, BSTR value)
UINT __cdecl remote_SetProperty(MSIHANDLE hinst, LPCWSTR property, LPCWSTR value)
{
UINT r = MsiSetPropertyW(hinst, property, value);
return HRESULT_FROM_WIN32(r);
return MsiSetPropertyW(hinst, property, value);
}
HRESULT __cdecl remote_ProcessMessage(MSIHANDLE hinst, INSTALLMESSAGE message, MSIHANDLE record)

View File

@ -43,7 +43,7 @@ interface IWineMsiRemote
HRESULT remote_GetActiveDatabase( [in] MSIHANDLE hinst, [out] MSIHANDLE *handle );
UINT remote_GetProperty( [in] MSIHANDLE hinst, [in, string] LPCWSTR property, [out, string] LPWSTR *value, [out] DWORD *size );
HRESULT remote_SetProperty( [in] MSIHANDLE hinst, [in] BSTR property, [in] BSTR value );
UINT remote_SetProperty( [in] MSIHANDLE hinst, [in, string, unique] LPCWSTR property, [in, string, unique] LPCWSTR value );
HRESULT remote_ProcessMessage( [in] MSIHANDLE hinst, [in] INSTALLMESSAGE message, [in] MSIHANDLE record );
HRESULT remote_DoAction( [in] MSIHANDLE hinst, [in] BSTR action );
HRESULT remote_Sequence( [in] MSIHANDLE hinst, [in] BSTR table, [in] int sequence );