msi: Implement the UILevel property of the Installer object.
This commit is contained in:
parent
724c8da734
commit
617eb48d5b
|
@ -1535,6 +1535,7 @@ static HRESULT WINAPI InstallerImpl_Invoke(
|
||||||
HRESULT hr;
|
HRESULT hr;
|
||||||
LPWSTR szString = NULL;
|
LPWSTR szString = NULL;
|
||||||
DWORD dwSize = 0;
|
DWORD dwSize = 0;
|
||||||
|
INSTALLUILEVEL ui;
|
||||||
|
|
||||||
VariantInit(&varg0);
|
VariantInit(&varg0);
|
||||||
VariantInit(&varg1);
|
VariantInit(&varg1);
|
||||||
|
@ -1627,6 +1628,31 @@ static HRESULT WINAPI InstallerImpl_Invoke(
|
||||||
else return DISP_E_MEMBERNOTFOUND;
|
else return DISP_E_MEMBERNOTFOUND;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case DISPID_INSTALLER_UILEVEL:
|
||||||
|
if (wFlags & DISPATCH_PROPERTYPUT)
|
||||||
|
{
|
||||||
|
hr = DispGetParam(pDispParams, 0, VT_I4, &varg0, puArgErr);
|
||||||
|
if (FAILED(hr)) return hr;
|
||||||
|
if ((ui = MsiSetInternalUI(V_I4(&varg0), NULL) == INSTALLUILEVEL_NOCHANGE))
|
||||||
|
{
|
||||||
|
ERR("MsiSetInternalUI failed\n");
|
||||||
|
return DISP_E_EXCEPTION;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (wFlags & DISPATCH_PROPERTYGET)
|
||||||
|
{
|
||||||
|
if ((ui = MsiSetInternalUI(INSTALLUILEVEL_NOCHANGE, NULL) == INSTALLUILEVEL_NOCHANGE))
|
||||||
|
{
|
||||||
|
ERR("MsiSetInternalUI failed\n");
|
||||||
|
return DISP_E_EXCEPTION;
|
||||||
|
}
|
||||||
|
|
||||||
|
V_VT(pVarResult) = VT_I4;
|
||||||
|
V_I4(pVarResult) = ui;
|
||||||
|
}
|
||||||
|
else return DISP_E_MEMBERNOTFOUND;
|
||||||
|
break;
|
||||||
|
|
||||||
case DISPID_INSTALLER_INSTALLPRODUCT:
|
case DISPID_INSTALLER_INSTALLPRODUCT:
|
||||||
if (wFlags & DISPATCH_METHOD)
|
if (wFlags & DISPATCH_METHOD)
|
||||||
{
|
{
|
||||||
|
|
|
@ -126,10 +126,25 @@ library WindowsInstaller
|
||||||
msiOpenDatabaseModePatchFile = 32
|
msiOpenDatabaseModePatchFile = 32
|
||||||
} MsiOpenDatabaseMode;
|
} MsiOpenDatabaseMode;
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
msiUILevelNoChange = 0,
|
||||||
|
msiUILevelDefault = 1,
|
||||||
|
msiUILevelNone = 2,
|
||||||
|
msiUILevelBasic = 3,
|
||||||
|
msiUILevelReduced = 4,
|
||||||
|
msiUILevelFull = 5,
|
||||||
|
msiUILevelHideCancel = 32,
|
||||||
|
msiUILevelProgressOnly = 64,
|
||||||
|
msiUILevelEndDialog = 128,
|
||||||
|
msiUILevelSourceResOnly = 256
|
||||||
|
} MsiUILevel;
|
||||||
|
|
||||||
[ uuid(000C1090-0000-0000-C000-000000000046) ]
|
[ uuid(000C1090-0000-0000-C000-000000000046) ]
|
||||||
dispinterface Installer
|
dispinterface Installer
|
||||||
{
|
{
|
||||||
properties:
|
properties:
|
||||||
|
[id(DISPID_INSTALLER_UILEVEL)]
|
||||||
|
MsiUILevel UILevel;
|
||||||
methods:
|
methods:
|
||||||
[id(DISPID_INSTALLER_CREATERECORD)]
|
[id(DISPID_INSTALLER_CREATERECORD)]
|
||||||
Record *CreateRecord([in] long Count);
|
Record *CreateRecord([in] long Count);
|
||||||
|
|
|
@ -19,6 +19,7 @@
|
||||||
#define DISPID_INSTALLER_CREATERECORD 1
|
#define DISPID_INSTALLER_CREATERECORD 1
|
||||||
#define DISPID_INSTALLER_OPENPACKAGE 2
|
#define DISPID_INSTALLER_OPENPACKAGE 2
|
||||||
#define DISPID_INSTALLER_OPENDATABASE 4
|
#define DISPID_INSTALLER_OPENDATABASE 4
|
||||||
|
#define DISPID_INSTALLER_UILEVEL 6
|
||||||
#define DISPID_INSTALLER_INSTALLPRODUCT 8
|
#define DISPID_INSTALLER_INSTALLPRODUCT 8
|
||||||
#define DISPID_INSTALLER_VERSION 9
|
#define DISPID_INSTALLER_VERSION 9
|
||||||
#define DISPID_INSTALLER_REGISTRYVALUE 11
|
#define DISPID_INSTALLER_REGISTRYVALUE 11
|
||||||
|
|
|
@ -470,11 +470,9 @@ static void test_dispid(void)
|
||||||
ok( get_dispid( pInstaller, "OpenPackage" ) == 2, "dispid wrong\n");
|
ok( get_dispid( pInstaller, "OpenPackage" ) == 2, "dispid wrong\n");
|
||||||
todo_wine ok( get_dispid( pInstaller, "OpenProduct" ) == 3, "dispid wrong\n");
|
todo_wine ok( get_dispid( pInstaller, "OpenProduct" ) == 3, "dispid wrong\n");
|
||||||
ok( get_dispid( pInstaller, "OpenDatabase" ) == 4, "dispid wrong\n");
|
ok( get_dispid( pInstaller, "OpenDatabase" ) == 4, "dispid wrong\n");
|
||||||
todo_wine {
|
todo_wine ok( get_dispid( pInstaller, "SummaryInformation" ) == 5, "dispid wrong\n");
|
||||||
ok( get_dispid( pInstaller, "SummaryInformation" ) == 5, "dispid wrong\n");
|
|
||||||
ok( get_dispid( pInstaller, "UILevel" ) == 6, "dispid wrong\n");
|
ok( get_dispid( pInstaller, "UILevel" ) == 6, "dispid wrong\n");
|
||||||
ok( get_dispid( pInstaller, "EnableLog" ) == 7, "dispid wrong\n");
|
todo_wine ok( get_dispid( pInstaller, "EnableLog" ) == 7, "dispid wrong\n");
|
||||||
}
|
|
||||||
ok( get_dispid( pInstaller, "InstallProduct" ) == 8, "dispid wrong\n");
|
ok( get_dispid( pInstaller, "InstallProduct" ) == 8, "dispid wrong\n");
|
||||||
ok( get_dispid( pInstaller, "Version" ) == 9, "dispid wrong\n");
|
ok( get_dispid( pInstaller, "Version" ) == 9, "dispid wrong\n");
|
||||||
todo_wine {
|
todo_wine {
|
||||||
|
|
Loading…
Reference in New Issue