Commit 29ce520d authored by James Hawkins's avatar James Hawkins Committed by Alexandre Julliard

msi: Fix use of BSTRs.

parent ca78a8b6
...@@ -30,6 +30,8 @@ ...@@ -30,6 +30,8 @@
#include "wine/debug.h" #include "wine/debug.h"
#include "msi.h" #include "msi.h"
#include "msidefs.h" #include "msidefs.h"
#include "objbase.h"
#include "oleauto.h"
#include "msipriv.h" #include "msipriv.h"
#include "msiserver.h" #include "msiserver.h"
...@@ -73,14 +75,23 @@ UINT WINAPI MsiDoActionW( MSIHANDLE hInstall, LPCWSTR szAction ) ...@@ -73,14 +75,23 @@ UINT WINAPI MsiDoActionW( MSIHANDLE hInstall, LPCWSTR szAction )
if (!package) if (!package)
{ {
HRESULT hr; HRESULT hr;
BSTR action;
IWineMsiRemotePackage *remote_package; IWineMsiRemotePackage *remote_package;
remote_package = (IWineMsiRemotePackage *)msi_get_remote( hInstall ); remote_package = (IWineMsiRemotePackage *)msi_get_remote( hInstall );
if (!remote_package) if (!remote_package)
return ERROR_INVALID_HANDLE; return ERROR_INVALID_HANDLE;
hr = IWineMsiRemotePackage_DoAction( remote_package, (BSTR *)szAction ); action = SysAllocString( szAction );
if (!action)
{
IWineMsiRemotePackage_Release( remote_package );
return ERROR_OUTOFMEMORY;
}
hr = IWineMsiRemotePackage_DoAction( remote_package, action );
SysFreeString( action );
IWineMsiRemotePackage_Release( remote_package ); IWineMsiRemotePackage_Release( remote_package );
if (FAILED(hr)) if (FAILED(hr))
...@@ -133,14 +144,23 @@ UINT WINAPI MsiSequenceW( MSIHANDLE hInstall, LPCWSTR szTable, INT iSequenceMode ...@@ -133,14 +144,23 @@ UINT WINAPI MsiSequenceW( MSIHANDLE hInstall, LPCWSTR szTable, INT iSequenceMode
if (!package) if (!package)
{ {
HRESULT hr; HRESULT hr;
BSTR table;
IWineMsiRemotePackage *remote_package; IWineMsiRemotePackage *remote_package;
remote_package = (IWineMsiRemotePackage *)msi_get_remote( hInstall ); remote_package = (IWineMsiRemotePackage *)msi_get_remote( hInstall );
if (!remote_package) if (!remote_package)
return ERROR_INVALID_HANDLE; return ERROR_INVALID_HANDLE;
hr = IWineMsiRemotePackage_Sequence( remote_package, (BSTR *)szTable, iSequenceMode ); table = SysAllocString( szTable );
if (!table)
{
IWineMsiRemotePackage_Release( remote_package );
return ERROR_OUTOFMEMORY;
}
hr = IWineMsiRemotePackage_Sequence( remote_package, table, iSequenceMode );
SysFreeString( table );
IWineMsiRemotePackage_Release( remote_package ); IWineMsiRemotePackage_Release( remote_package );
if (FAILED(hr)) if (FAILED(hr))
...@@ -211,14 +231,22 @@ static UINT WINAPI MSI_GetTargetPath( MSIHANDLE hInstall, LPCWSTR szFolder, ...@@ -211,14 +231,22 @@ static UINT WINAPI MSI_GetTargetPath( MSIHANDLE hInstall, LPCWSTR szFolder,
HRESULT hr; HRESULT hr;
IWineMsiRemotePackage *remote_package; IWineMsiRemotePackage *remote_package;
LPWSTR value = NULL; LPWSTR value = NULL;
BSTR folder;
DWORD len; DWORD len;
remote_package = (IWineMsiRemotePackage *)msi_get_remote( hInstall ); remote_package = (IWineMsiRemotePackage *)msi_get_remote( hInstall );
if (!remote_package) if (!remote_package)
return ERROR_INVALID_HANDLE; return ERROR_INVALID_HANDLE;
folder = SysAllocString( szFolder );
if (!folder)
{
IWineMsiRemotePackage_Release( remote_package );
return ERROR_OUTOFMEMORY;
}
len = 0; len = 0;
hr = IWineMsiRemotePackage_GetTargetPath( remote_package, (BSTR *)szFolder, hr = IWineMsiRemotePackage_GetTargetPath( remote_package, folder,
NULL, &len ); NULL, &len );
if (FAILED(hr)) if (FAILED(hr))
goto done; goto done;
...@@ -231,7 +259,7 @@ static UINT WINAPI MSI_GetTargetPath( MSIHANDLE hInstall, LPCWSTR szFolder, ...@@ -231,7 +259,7 @@ static UINT WINAPI MSI_GetTargetPath( MSIHANDLE hInstall, LPCWSTR szFolder,
goto done; goto done;
} }
hr = IWineMsiRemotePackage_GetTargetPath( remote_package, (BSTR *)szFolder, hr = IWineMsiRemotePackage_GetTargetPath( remote_package, folder,
(BSTR *)value, &len); (BSTR *)value, &len);
if (FAILED(hr)) if (FAILED(hr))
goto done; goto done;
...@@ -240,6 +268,7 @@ static UINT WINAPI MSI_GetTargetPath( MSIHANDLE hInstall, LPCWSTR szFolder, ...@@ -240,6 +268,7 @@ static UINT WINAPI MSI_GetTargetPath( MSIHANDLE hInstall, LPCWSTR szFolder,
done: done:
IWineMsiRemotePackage_Release( remote_package ); IWineMsiRemotePackage_Release( remote_package );
SysFreeString( folder );
msi_free( value ); msi_free( value );
if (FAILED(hr)) if (FAILED(hr))
...@@ -327,14 +356,22 @@ static UINT MSI_GetSourcePath( MSIHANDLE hInstall, LPCWSTR szFolder, ...@@ -327,14 +356,22 @@ static UINT MSI_GetSourcePath( MSIHANDLE hInstall, LPCWSTR szFolder,
HRESULT hr; HRESULT hr;
IWineMsiRemotePackage *remote_package; IWineMsiRemotePackage *remote_package;
LPWSTR value = NULL; LPWSTR value = NULL;
BSTR folder;
DWORD len; DWORD len;
remote_package = (IWineMsiRemotePackage *)msi_get_remote( hInstall ); remote_package = (IWineMsiRemotePackage *)msi_get_remote( hInstall );
if (!remote_package) if (!remote_package)
return ERROR_INVALID_HANDLE; return ERROR_INVALID_HANDLE;
folder = SysAllocString( szFolder );
if (!folder)
{
IWineMsiRemotePackage_Release( remote_package );
return ERROR_OUTOFMEMORY;
}
len = 0; len = 0;
hr = IWineMsiRemotePackage_GetSourcePath( remote_package, (BSTR *)szFolder, hr = IWineMsiRemotePackage_GetSourcePath( remote_package, folder,
NULL, &len ); NULL, &len );
if (FAILED(hr)) if (FAILED(hr))
goto done; goto done;
...@@ -347,7 +384,7 @@ static UINT MSI_GetSourcePath( MSIHANDLE hInstall, LPCWSTR szFolder, ...@@ -347,7 +384,7 @@ static UINT MSI_GetSourcePath( MSIHANDLE hInstall, LPCWSTR szFolder,
goto done; goto done;
} }
hr = IWineMsiRemotePackage_GetSourcePath( remote_package, (BSTR *)szFolder, hr = IWineMsiRemotePackage_GetSourcePath( remote_package, folder,
(BSTR *)value, &len); (BSTR *)value, &len);
if (FAILED(hr)) if (FAILED(hr))
goto done; goto done;
...@@ -356,6 +393,7 @@ static UINT MSI_GetSourcePath( MSIHANDLE hInstall, LPCWSTR szFolder, ...@@ -356,6 +393,7 @@ static UINT MSI_GetSourcePath( MSIHANDLE hInstall, LPCWSTR szFolder,
done: done:
IWineMsiRemotePackage_Release( remote_package ); IWineMsiRemotePackage_Release( remote_package );
SysFreeString( folder );
msi_free( value ); msi_free( value );
if (FAILED(hr)) if (FAILED(hr))
...@@ -546,14 +584,27 @@ UINT WINAPI MsiSetTargetPathW(MSIHANDLE hInstall, LPCWSTR szFolder, ...@@ -546,14 +584,27 @@ UINT WINAPI MsiSetTargetPathW(MSIHANDLE hInstall, LPCWSTR szFolder,
if (!package) if (!package)
{ {
HRESULT hr; HRESULT hr;
BSTR folder, path;
IWineMsiRemotePackage *remote_package; IWineMsiRemotePackage *remote_package;
remote_package = (IWineMsiRemotePackage *)msi_get_remote( hInstall ); remote_package = (IWineMsiRemotePackage *)msi_get_remote( hInstall );
if (!remote_package) if (!remote_package)
return ERROR_INVALID_HANDLE; return ERROR_INVALID_HANDLE;
hr = IWineMsiRemotePackage_SetTargetPath( remote_package, (BSTR *)szFolder, (BSTR *)szFolderPath ); folder = SysAllocString( szFolder );
path = SysAllocString( szFolderPath );
if (!folder || !path)
{
SysFreeString(folder);
SysFreeString(path);
IWineMsiRemotePackage_Release( remote_package );
return ERROR_OUTOFMEMORY;
}
hr = IWineMsiRemotePackage_SetTargetPath( remote_package, folder, path );
SysFreeString(folder);
SysFreeString(path);
IWineMsiRemotePackage_Release( remote_package ); IWineMsiRemotePackage_Release( remote_package );
if (FAILED(hr)) if (FAILED(hr))
...@@ -751,14 +802,23 @@ UINT WINAPI MsiSetFeatureStateW(MSIHANDLE hInstall, LPCWSTR szFeature, ...@@ -751,14 +802,23 @@ UINT WINAPI MsiSetFeatureStateW(MSIHANDLE hInstall, LPCWSTR szFeature,
if (!package) if (!package)
{ {
HRESULT hr; HRESULT hr;
BSTR feature;
IWineMsiRemotePackage *remote_package; IWineMsiRemotePackage *remote_package;
remote_package = (IWineMsiRemotePackage *)msi_get_remote(hInstall); remote_package = (IWineMsiRemotePackage *)msi_get_remote(hInstall);
if (!remote_package) if (!remote_package)
return ERROR_INVALID_HANDLE; return ERROR_INVALID_HANDLE;
hr = IWineMsiRemotePackage_SetFeatureState(remote_package, (BSTR *)szFeature, iState); feature = SysAllocString(szFeature);
if (!feature)
{
IWineMsiRemotePackage_Release(remote_package);
return ERROR_OUTOFMEMORY;
}
hr = IWineMsiRemotePackage_SetFeatureState(remote_package, feature, iState);
SysFreeString(feature);
IWineMsiRemotePackage_Release(remote_package); IWineMsiRemotePackage_Release(remote_package);
if (FAILED(hr)) if (FAILED(hr))
...@@ -831,15 +891,26 @@ UINT WINAPI MsiGetFeatureStateW(MSIHANDLE hInstall, LPCWSTR szFeature, ...@@ -831,15 +891,26 @@ UINT WINAPI MsiGetFeatureStateW(MSIHANDLE hInstall, LPCWSTR szFeature,
if (!package) if (!package)
{ {
HRESULT hr; HRESULT hr;
BSTR feature;
IWineMsiRemotePackage *remote_package; IWineMsiRemotePackage *remote_package;
remote_package = (IWineMsiRemotePackage *)msi_get_remote(hInstall); remote_package = (IWineMsiRemotePackage *)msi_get_remote(hInstall);
if (!remote_package) if (!remote_package)
return ERROR_INVALID_HANDLE; return ERROR_INVALID_HANDLE;
hr = IWineMsiRemotePackage_GetFeatureState(remote_package, (BSTR *)szFeature, feature = SysAllocString(szFeature);
if (!feature)
{
IWineMsiRemotePackage_Release(remote_package);
return ERROR_OUTOFMEMORY;
}
hr = IWineMsiRemotePackage_GetFeatureState(remote_package, feature,
piInstalled, piAction); piInstalled, piAction);
SysFreeString(feature);
IWineMsiRemotePackage_Release(remote_package);
if (FAILED(hr)) if (FAILED(hr))
{ {
if (HRESULT_FACILITY(hr) == FACILITY_WIN32) if (HRESULT_FACILITY(hr) == FACILITY_WIN32)
...@@ -966,14 +1037,23 @@ UINT WINAPI MsiSetComponentStateW(MSIHANDLE hInstall, LPCWSTR szComponent, ...@@ -966,14 +1037,23 @@ UINT WINAPI MsiSetComponentStateW(MSIHANDLE hInstall, LPCWSTR szComponent,
if (!package) if (!package)
{ {
HRESULT hr; HRESULT hr;
BSTR component;
IWineMsiRemotePackage *remote_package; IWineMsiRemotePackage *remote_package;
remote_package = (IWineMsiRemotePackage *)msi_get_remote(hInstall); remote_package = (IWineMsiRemotePackage *)msi_get_remote(hInstall);
if (!remote_package) if (!remote_package)
return ERROR_INVALID_HANDLE; return ERROR_INVALID_HANDLE;
hr = IWineMsiRemotePackage_SetComponentState(remote_package, (BSTR *)szComponent, iState); component = SysAllocString(szComponent);
if (!component)
{
IWineMsiRemotePackage_Release(remote_package);
return ERROR_OUTOFMEMORY;
}
hr = IWineMsiRemotePackage_SetComponentState(remote_package, component, iState);
SysFreeString(component);
IWineMsiRemotePackage_Release(remote_package); IWineMsiRemotePackage_Release(remote_package);
if (FAILED(hr)) if (FAILED(hr))
...@@ -1008,15 +1088,26 @@ UINT WINAPI MsiGetComponentStateW(MSIHANDLE hInstall, LPCWSTR szComponent, ...@@ -1008,15 +1088,26 @@ UINT WINAPI MsiGetComponentStateW(MSIHANDLE hInstall, LPCWSTR szComponent,
if (!package) if (!package)
{ {
HRESULT hr; HRESULT hr;
BSTR component;
IWineMsiRemotePackage *remote_package; IWineMsiRemotePackage *remote_package;
remote_package = (IWineMsiRemotePackage *)msi_get_remote(hInstall); remote_package = (IWineMsiRemotePackage *)msi_get_remote(hInstall);
if (!remote_package) if (!remote_package)
return ERROR_INVALID_HANDLE; return ERROR_INVALID_HANDLE;
hr = IWineMsiRemotePackage_GetComponentState(remote_package, (BSTR *)szComponent, component = SysAllocString(szComponent);
if (!component)
{
IWineMsiRemotePackage_Release(remote_package);
return ERROR_OUTOFMEMORY;
}
hr = IWineMsiRemotePackage_GetComponentState(remote_package, component,
piInstalled, piAction); piInstalled, piAction);
SysFreeString(component);
IWineMsiRemotePackage_Release(remote_package);
if (FAILED(hr)) if (FAILED(hr))
{ {
if (HRESULT_FACILITY(hr) == FACILITY_WIN32) if (HRESULT_FACILITY(hr) == FACILITY_WIN32)
......
...@@ -40,19 +40,19 @@ interface IWineMsiRemotePackage : IUnknown ...@@ -40,19 +40,19 @@ interface IWineMsiRemotePackage : IUnknown
{ {
HRESULT SetMsiHandle( [in] MSIHANDLE handle ); HRESULT SetMsiHandle( [in] MSIHANDLE handle );
HRESULT GetActiveDatabase( [out] MSIHANDLE *handle ); HRESULT GetActiveDatabase( [out] MSIHANDLE *handle );
HRESULT GetProperty( [in] BSTR *property, [out] BSTR *value, [out] DWORD *size ); HRESULT GetProperty( [in] BSTR property, [out] BSTR *value, [out] DWORD *size );
HRESULT SetProperty( [in] BSTR *property, [in] BSTR *value ); HRESULT SetProperty( [in] BSTR property, [in] BSTR value );
HRESULT ProcessMessage( [in] INSTALLMESSAGE message, [in] MSIHANDLE record ); HRESULT ProcessMessage( [in] INSTALLMESSAGE message, [in] MSIHANDLE record );
HRESULT DoAction( [in] BSTR *action ); HRESULT DoAction( [in] BSTR action );
HRESULT Sequence( [in] BSTR *table, [in] int sequence ); HRESULT Sequence( [in] BSTR table, [in] int sequence );
HRESULT GetTargetPath( [in] BSTR *folder, [out] BSTR *value, [out] DWORD *size ); HRESULT GetTargetPath( [in] BSTR folder, [out] BSTR *value, [out] DWORD *size );
HRESULT SetTargetPath( [in] BSTR *folder, [in] BSTR *value ); HRESULT SetTargetPath( [in] BSTR folder, [in] BSTR value );
HRESULT GetSourcePath( [in] BSTR *folder, [out] BSTR *value, [out] DWORD *size ); HRESULT GetSourcePath( [in] BSTR folder, [out] BSTR *value, [out] DWORD *size );
HRESULT GetMode( [in] MSIRUNMODE mode, [out] BOOL *ret ); HRESULT GetMode( [in] MSIRUNMODE mode, [out] BOOL *ret );
HRESULT GetFeatureState( [in] BSTR *feature, [out] INSTALLSTATE *installed, [out] INSTALLSTATE *action ); HRESULT GetFeatureState( [in] BSTR feature, [out] INSTALLSTATE *installed, [out] INSTALLSTATE *action );
HRESULT SetFeatureState( [in] BSTR *feature, [in] INSTALLSTATE state ); HRESULT SetFeatureState( [in] BSTR feature, [in] INSTALLSTATE state );
HRESULT GetComponentState( [in] BSTR *component, [out] INSTALLSTATE *installed, [out] INSTALLSTATE *action ); HRESULT GetComponentState( [in] BSTR component, [out] INSTALLSTATE *installed, [out] INSTALLSTATE *action );
HRESULT SetComponentState( [in] BSTR *component, [in] INSTALLSTATE state ); HRESULT SetComponentState( [in] BSTR component, [in] INSTALLSTATE state );
HRESULT GetLanguage( [out] LANGID *language ); HRESULT GetLanguage( [out] LANGID *language );
HRESULT SetInstallLevel( [in] int level ); HRESULT SetInstallLevel( [in] int level );
} }
......
...@@ -1279,15 +1279,28 @@ UINT WINAPI MsiSetPropertyW( MSIHANDLE hInstall, LPCWSTR szName, LPCWSTR szValue ...@@ -1279,15 +1279,28 @@ UINT WINAPI MsiSetPropertyW( MSIHANDLE hInstall, LPCWSTR szName, LPCWSTR szValue
if( !package ) if( !package )
{ {
HRESULT hr; HRESULT hr;
BSTR name, value;
IWineMsiRemotePackage *remote_package; IWineMsiRemotePackage *remote_package;
remote_package = (IWineMsiRemotePackage *)msi_get_remote( hInstall ); remote_package = (IWineMsiRemotePackage *)msi_get_remote( hInstall );
if (!remote_package) if (!remote_package)
return ERROR_INVALID_HANDLE; return ERROR_INVALID_HANDLE;
hr = IWineMsiRemotePackage_SetProperty( remote_package, (BSTR *)szName, (BSTR *)szValue ); name = SysAllocString( szName );
value = SysAllocString( szValue );
if (!name || !value)
{
SysFreeString( name );
SysFreeString( value );
IWineMsiRemotePackage_Release( remote_package );
return ERROR_OUTOFMEMORY;
}
IWineMsiRemotePackage_Release(remote_package); hr = IWineMsiRemotePackage_SetProperty( remote_package, name, value );
SysFreeString( name );
SysFreeString( value );
IWineMsiRemotePackage_Release( remote_package );
if (FAILED(hr)) if (FAILED(hr))
{ {
...@@ -1403,14 +1416,22 @@ static UINT MSI_GetProperty( MSIHANDLE handle, LPCWSTR name, ...@@ -1403,14 +1416,22 @@ static UINT MSI_GetProperty( MSIHANDLE handle, LPCWSTR name,
HRESULT hr; HRESULT hr;
IWineMsiRemotePackage *remote_package; IWineMsiRemotePackage *remote_package;
LPWSTR value = NULL; LPWSTR value = NULL;
BSTR bname;
DWORD len; DWORD len;
remote_package = (IWineMsiRemotePackage *)msi_get_remote( handle ); remote_package = (IWineMsiRemotePackage *)msi_get_remote( handle );
if (!remote_package) if (!remote_package)
return ERROR_INVALID_HANDLE; return ERROR_INVALID_HANDLE;
bname = SysAllocString( name );
if (!bname)
{
IWineMsiRemotePackage_Release( remote_package );
return ERROR_OUTOFMEMORY;
}
len = 0; len = 0;
hr = IWineMsiRemotePackage_GetProperty( remote_package, (BSTR *)name, NULL, &len ); hr = IWineMsiRemotePackage_GetProperty( remote_package, bname, NULL, &len );
if (FAILED(hr)) if (FAILED(hr))
goto done; goto done;
...@@ -1422,7 +1443,7 @@ static UINT MSI_GetProperty( MSIHANDLE handle, LPCWSTR name, ...@@ -1422,7 +1443,7 @@ static UINT MSI_GetProperty( MSIHANDLE handle, LPCWSTR name,
goto done; goto done;
} }
hr = IWineMsiRemotePackage_GetProperty( remote_package, (BSTR *)name, (BSTR *)value, &len ); hr = IWineMsiRemotePackage_GetProperty( remote_package, bname, (BSTR *)value, &len );
if (FAILED(hr)) if (FAILED(hr))
goto done; goto done;
...@@ -1431,6 +1452,7 @@ static UINT MSI_GetProperty( MSIHANDLE handle, LPCWSTR name, ...@@ -1431,6 +1452,7 @@ static UINT MSI_GetProperty( MSIHANDLE handle, LPCWSTR name,
done: done:
IWineMsiRemotePackage_Release(remote_package); IWineMsiRemotePackage_Release(remote_package);
SysFreeString(bname);
msi_free(value); msi_free(value);
if (FAILED(hr)) if (FAILED(hr))
...@@ -1550,7 +1572,7 @@ HRESULT WINAPI mrp_GetActiveDatabase( IWineMsiRemotePackage *iface, MSIHANDLE *h ...@@ -1550,7 +1572,7 @@ HRESULT WINAPI mrp_GetActiveDatabase( IWineMsiRemotePackage *iface, MSIHANDLE *h
return S_OK; return S_OK;
} }
HRESULT WINAPI mrp_GetProperty( IWineMsiRemotePackage *iface, BSTR *property, BSTR *value, DWORD *size ) HRESULT WINAPI mrp_GetProperty( IWineMsiRemotePackage *iface, BSTR property, BSTR *value, DWORD *size )
{ {
msi_remote_package_impl* This = mrp_from_IWineMsiRemotePackage( iface ); msi_remote_package_impl* This = mrp_from_IWineMsiRemotePackage( iface );
UINT r; UINT r;
...@@ -1562,7 +1584,7 @@ HRESULT WINAPI mrp_GetProperty( IWineMsiRemotePackage *iface, BSTR *property, BS ...@@ -1562,7 +1584,7 @@ HRESULT WINAPI mrp_GetProperty( IWineMsiRemotePackage *iface, BSTR *property, BS
return S_OK; return S_OK;
} }
HRESULT WINAPI mrp_SetProperty( IWineMsiRemotePackage *iface, BSTR *property, BSTR *value ) HRESULT WINAPI mrp_SetProperty( IWineMsiRemotePackage *iface, BSTR property, BSTR value )
{ {
msi_remote_package_impl* This = mrp_from_IWineMsiRemotePackage( iface ); msi_remote_package_impl* This = mrp_from_IWineMsiRemotePackage( iface );
UINT r = MsiSetPropertyW(This->package, (LPWSTR)property, (LPWSTR)value); UINT r = MsiSetPropertyW(This->package, (LPWSTR)property, (LPWSTR)value);
...@@ -1576,35 +1598,35 @@ HRESULT WINAPI mrp_ProcessMessage( IWineMsiRemotePackage *iface, INSTALLMESSAGE ...@@ -1576,35 +1598,35 @@ HRESULT WINAPI mrp_ProcessMessage( IWineMsiRemotePackage *iface, INSTALLMESSAGE
return HRESULT_FROM_WIN32(r); return HRESULT_FROM_WIN32(r);
} }
HRESULT WINAPI mrp_DoAction( IWineMsiRemotePackage *iface, BSTR *action ) HRESULT WINAPI mrp_DoAction( IWineMsiRemotePackage *iface, BSTR action )
{ {
msi_remote_package_impl* This = mrp_from_IWineMsiRemotePackage( iface ); msi_remote_package_impl* This = mrp_from_IWineMsiRemotePackage( iface );
UINT r = MsiDoActionW(This->package, (LPWSTR)action); UINT r = MsiDoActionW(This->package, (LPWSTR)action);
return HRESULT_FROM_WIN32(r); return HRESULT_FROM_WIN32(r);
} }
HRESULT WINAPI mrp_Sequence( IWineMsiRemotePackage *iface, BSTR *table, int sequence ) HRESULT WINAPI mrp_Sequence( IWineMsiRemotePackage *iface, BSTR table, int sequence )
{ {
msi_remote_package_impl* This = mrp_from_IWineMsiRemotePackage( iface ); msi_remote_package_impl* This = mrp_from_IWineMsiRemotePackage( iface );
UINT r = MsiSequenceW(This->package, (LPWSTR)table, sequence); UINT r = MsiSequenceW(This->package, (LPWSTR)table, sequence);
return HRESULT_FROM_WIN32(r); return HRESULT_FROM_WIN32(r);
} }
HRESULT WINAPI mrp_GetTargetPath( IWineMsiRemotePackage *iface, BSTR *folder, BSTR *value, DWORD *size ) HRESULT WINAPI mrp_GetTargetPath( IWineMsiRemotePackage *iface, BSTR folder, BSTR *value, DWORD *size )
{ {
msi_remote_package_impl* This = mrp_from_IWineMsiRemotePackage( iface ); msi_remote_package_impl* This = mrp_from_IWineMsiRemotePackage( iface );
UINT r = MsiGetTargetPathW(This->package, (LPWSTR)folder, (LPWSTR)value, size); UINT r = MsiGetTargetPathW(This->package, (LPWSTR)folder, (LPWSTR)value, size);
return HRESULT_FROM_WIN32(r); return HRESULT_FROM_WIN32(r);
} }
HRESULT WINAPI mrp_SetTargetPath( IWineMsiRemotePackage *iface, BSTR *folder, BSTR *value) HRESULT WINAPI mrp_SetTargetPath( IWineMsiRemotePackage *iface, BSTR folder, BSTR value)
{ {
msi_remote_package_impl* This = mrp_from_IWineMsiRemotePackage( iface ); msi_remote_package_impl* This = mrp_from_IWineMsiRemotePackage( iface );
UINT r = MsiSetTargetPathW(This->package, (LPWSTR)folder, (LPWSTR)value); UINT r = MsiSetTargetPathW(This->package, (LPWSTR)folder, (LPWSTR)value);
return HRESULT_FROM_WIN32(r); return HRESULT_FROM_WIN32(r);
} }
HRESULT WINAPI mrp_GetSourcePath( IWineMsiRemotePackage *iface, BSTR *folder, BSTR *value, DWORD *size ) HRESULT WINAPI mrp_GetSourcePath( IWineMsiRemotePackage *iface, BSTR folder, BSTR *value, DWORD *size )
{ {
msi_remote_package_impl* This = mrp_from_IWineMsiRemotePackage( iface ); msi_remote_package_impl* This = mrp_from_IWineMsiRemotePackage( iface );
UINT r = MsiGetSourcePathW(This->package, (LPWSTR)folder, (LPWSTR)value, size); UINT r = MsiGetSourcePathW(This->package, (LPWSTR)folder, (LPWSTR)value, size);
...@@ -1618,7 +1640,7 @@ HRESULT WINAPI mrp_GetMode( IWineMsiRemotePackage *iface, MSIRUNMODE mode, BOOL ...@@ -1618,7 +1640,7 @@ HRESULT WINAPI mrp_GetMode( IWineMsiRemotePackage *iface, MSIRUNMODE mode, BOOL
return S_OK; return S_OK;
} }
HRESULT WINAPI mrp_GetFeatureState( IWineMsiRemotePackage *iface, BSTR *feature, HRESULT WINAPI mrp_GetFeatureState( IWineMsiRemotePackage *iface, BSTR feature,
INSTALLSTATE *installed, INSTALLSTATE *action ) INSTALLSTATE *installed, INSTALLSTATE *action )
{ {
msi_remote_package_impl* This = mrp_from_IWineMsiRemotePackage( iface ); msi_remote_package_impl* This = mrp_from_IWineMsiRemotePackage( iface );
...@@ -1626,14 +1648,14 @@ HRESULT WINAPI mrp_GetFeatureState( IWineMsiRemotePackage *iface, BSTR *feature, ...@@ -1626,14 +1648,14 @@ HRESULT WINAPI mrp_GetFeatureState( IWineMsiRemotePackage *iface, BSTR *feature,
return HRESULT_FROM_WIN32(r); return HRESULT_FROM_WIN32(r);
} }
HRESULT WINAPI mrp_SetFeatureState( IWineMsiRemotePackage *iface, BSTR *feature, INSTALLSTATE state ) HRESULT WINAPI mrp_SetFeatureState( IWineMsiRemotePackage *iface, BSTR feature, INSTALLSTATE state )
{ {
msi_remote_package_impl* This = mrp_from_IWineMsiRemotePackage( iface ); msi_remote_package_impl* This = mrp_from_IWineMsiRemotePackage( iface );
UINT r = MsiSetFeatureStateW(This->package, (LPWSTR)feature, state); UINT r = MsiSetFeatureStateW(This->package, (LPWSTR)feature, state);
return HRESULT_FROM_WIN32(r); return HRESULT_FROM_WIN32(r);
} }
HRESULT WINAPI mrp_GetComponentState( IWineMsiRemotePackage *iface, BSTR *component, HRESULT WINAPI mrp_GetComponentState( IWineMsiRemotePackage *iface, BSTR component,
INSTALLSTATE *installed, INSTALLSTATE *action ) INSTALLSTATE *installed, INSTALLSTATE *action )
{ {
msi_remote_package_impl* This = mrp_from_IWineMsiRemotePackage( iface ); msi_remote_package_impl* This = mrp_from_IWineMsiRemotePackage( iface );
...@@ -1641,7 +1663,7 @@ HRESULT WINAPI mrp_GetComponentState( IWineMsiRemotePackage *iface, BSTR *compon ...@@ -1641,7 +1663,7 @@ HRESULT WINAPI mrp_GetComponentState( IWineMsiRemotePackage *iface, BSTR *compon
return HRESULT_FROM_WIN32(r); return HRESULT_FROM_WIN32(r);
} }
HRESULT WINAPI mrp_SetComponentState( IWineMsiRemotePackage *iface, BSTR *component, INSTALLSTATE state ) HRESULT WINAPI mrp_SetComponentState( IWineMsiRemotePackage *iface, BSTR component, INSTALLSTATE state )
{ {
msi_remote_package_impl* This = mrp_from_IWineMsiRemotePackage( iface ); msi_remote_package_impl* This = mrp_from_IWineMsiRemotePackage( iface );
UINT r = MsiSetFeatureStateW(This->package, (LPWSTR)component, state); UINT r = MsiSetFeatureStateW(This->package, (LPWSTR)component, state);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment