James Hawkins : msi: Stub out a few more Installer object methods.
Alexandre Julliard
julliard at winehq.org
Fri Dec 11 11:04:46 CST 2009
Module: wine
Branch: master
Commit: ae58e29e5e436b16c75f6ea0b63dab7acd701299
URL: http://source.winehq.org/git/wine.git/?a=commit;h=ae58e29e5e436b16c75f6ea0b63dab7acd701299
Author: James Hawkins <truiken at gmail.com>
Date: Thu Dec 10 17:01:43 2009 -0800
msi: Stub out a few more Installer object methods.
---
dlls/msi/automation.c | 72 ++++++++++++++++++++++++++++++++++++++++++
dlls/msi/msiserver.idl | 27 ++++++++++++++++
dlls/msi/msiserver_dispids.h | 8 +++++
dlls/msi/tests/automation.c | 35 +++++++++-----------
4 files changed, 123 insertions(+), 19 deletions(-)
diff --git a/dlls/msi/automation.c b/dlls/msi/automation.c
index 3b3aa8f..2975df7 100644
--- a/dlls/msi/automation.c
+++ b/dlls/msi/automation.c
@@ -1624,6 +1624,15 @@ static HRESULT WINAPI InstallerImpl_Invoke(
else return DISP_E_MEMBERNOTFOUND;
break;
+ case DISPID_INSTALLER_OPENPRODUCT:
+ if (wFlags & DISPATCH_METHOD)
+ {
+ VariantInit(pVarResult);
+ FIXME("Unhandled method: OpenProduct");
+ }
+ else return DISP_E_MEMBERNOTFOUND;
+ break;
+
case DISPID_INSTALLER_OPENDATABASE:
if (wFlags & DISPATCH_METHOD)
{
@@ -1658,6 +1667,15 @@ static HRESULT WINAPI InstallerImpl_Invoke(
else return DISP_E_MEMBERNOTFOUND;
break;
+ case DISPID_INSTALLER_SUMMARYINFORMATION:
+ if (wFlags & DISPATCH_METHOD)
+ {
+ VariantInit(pVarResult);
+ FIXME("Unhandled method: SummaryInformation");
+ }
+ else return DISP_E_MEMBERNOTFOUND;
+ break;
+
case DISPID_INSTALLER_UILEVEL:
if (wFlags & DISPATCH_PROPERTYPUT)
{
@@ -1683,6 +1701,15 @@ static HRESULT WINAPI InstallerImpl_Invoke(
else return DISP_E_MEMBERNOTFOUND;
break;
+ case DISPID_INSTALLER_ENABLELOG:
+ if (wFlags & DISPATCH_METHOD)
+ {
+ VariantInit(pVarResult);
+ FIXME("Unhandled method: EnableLog");
+ }
+ else return DISP_E_MEMBERNOTFOUND;
+ break;
+
case DISPID_INSTALLER_INSTALLPRODUCT:
if (wFlags & DISPATCH_METHOD)
{
@@ -1725,6 +1752,15 @@ static HRESULT WINAPI InstallerImpl_Invoke(
else return DISP_E_MEMBERNOTFOUND;
break;
+ case DISPID_INSTALLER_LASTERRORRECORD:
+ if (wFlags & DISPATCH_METHOD)
+ {
+ VariantInit(pVarResult);
+ FIXME("Unhandled method: LastErrorRecord");
+ }
+ else return DISP_E_MEMBERNOTFOUND;
+ break;
+
case DISPID_INSTALLER_REGISTRYVALUE:
if (wFlags & DISPATCH_METHOD) {
HKEY hkey;
@@ -1819,6 +1855,42 @@ static HRESULT WINAPI InstallerImpl_Invoke(
else return DISP_E_MEMBERNOTFOUND;
break;
+ case DISPID_INSTALLER_ENVIRONMENT:
+ if (wFlags & DISPATCH_PROPERTYGET || wFlags & DISPATCH_PROPERTYPUT)
+ {
+ VariantInit(pVarResult);
+ FIXME("Unhandled property: Environment");
+ }
+ else return DISP_E_MEMBERNOTFOUND;
+ break;
+
+ case DISPID_INSTALLER_FILEATTRIBUTES:
+ if (wFlags & DISPATCH_METHOD)
+ {
+ VariantInit(pVarResult);
+ FIXME("Unhandled method: FileAttributes");
+ }
+ else return DISP_E_MEMBERNOTFOUND;
+ break;
+
+ case DISPID_INSTALLER_FILESIZE:
+ if (wFlags & DISPATCH_METHOD)
+ {
+ VariantInit(pVarResult);
+ FIXME("Unhandled method: FileSize");
+ }
+ else return DISP_E_MEMBERNOTFOUND;
+ break;
+
+ case DISPID_INSTALLER_FILEVERSION:
+ if (wFlags & DISPATCH_METHOD)
+ {
+ VariantInit(pVarResult);
+ FIXME("Unhandled method: FileVersion");
+ }
+ else return DISP_E_MEMBERNOTFOUND;
+ break;
+
case DISPID_INSTALLER_PRODUCTSTATE:
if (wFlags & DISPATCH_PROPERTYGET) {
hr = DispGetParam(pDispParams, 0, VT_BSTR, &varg0, puArgErr);
diff --git a/dlls/msi/msiserver.idl b/dlls/msi/msiserver.idl
index 753cbb0..8e49368 100644
--- a/dlls/msi/msiserver.idl
+++ b/dlls/msi/msiserver.idl
@@ -152,21 +152,48 @@ library WindowsInstaller
Session* OpenPackage(
[in] VARIANT PackagePath,
[in, optional, defaultvalue(0)] long Options);
+ [id(DISPID_INSTALLER_OPENPRODUCT)]
+ Session* OpenProduct(
+ [in] BSTR ProductCode);
+ [id(DISPID_INSTALLER_SUMMARYINFORMATION)]
+ SummaryInfo* SummaryInformation(
+ [in] BSTR PackagePath,
+ [in, optional, defaultvalue(0)] long UpdateCount);
[id(DISPID_INSTALLER_OPENDATABASE)]
Database *OpenDatabase(
[in] BSTR DatabasePath,
[in] VARIANT OpenMode);
+ [id(DISPID_INSTALLER_ENABLELOG)]
+ void EnableLog(
+ [in] BSTR LogMode,
+ [in] BSTR LogFile);
[id(DISPID_INSTALLER_INSTALLPRODUCT)]
void InstallProduct(
[in] BSTR PackagePath,
[in, optional, defaultvalue("0")] BSTR PropertyValues);
[id(DISPID_INSTALLER_VERSION)]
BSTR Version();
+ [id(DISPID_INSTALLER_LASTERRORRECORD)]
+ Record* LastErrorRecord();
[id(DISPID_INSTALLER_REGISTRYVALUE), propget]
BSTR RegistryValue(
[in] VARIANT Root,
[in] BSTR Key,
[in, optional] VARIANT Value);
+ [id(DISPID_INSTALLER_ENVIRONMENT), propget]
+ BSTR Environment([in] BSTR Variable);
+ [id(DISPID_INSTALLER_ENVIRONMENT), propput]
+ void Environment(
+ [in] BSTR Variable,
+ [in] BSTR rhs);
+ [id(DISPID_INSTALLER_FILEATTRIBUTES)]
+ long FileAttributes([in] BSTR FilePath);
+ [id(DISPID_INSTALLER_FILESIZE)]
+ long FileSize([in] BSTR FilePath);
+ [id(DISPID_INSTALLER_FILEVERSION)]
+ BSTR FileVersion(
+ [in] BSTR FilePath,
+ [in, optional] VARIANT Language);
[id(DISPID_INSTALLER_PRODUCTSTATE), propget]
MsiInstallState ProductState(
[in] BSTR Product);
diff --git a/dlls/msi/msiserver_dispids.h b/dlls/msi/msiserver_dispids.h
index e6078fd..d98d784 100644
--- a/dlls/msi/msiserver_dispids.h
+++ b/dlls/msi/msiserver_dispids.h
@@ -18,11 +18,19 @@
#define DISPID_INSTALLER_CREATERECORD 1
#define DISPID_INSTALLER_OPENPACKAGE 2
+#define DISPID_INSTALLER_OPENPRODUCT 3
#define DISPID_INSTALLER_OPENDATABASE 4
+#define DISPID_INSTALLER_SUMMARYINFORMATION 5
#define DISPID_INSTALLER_UILEVEL 6
+#define DISPID_INSTALLER_ENABLELOG 7
#define DISPID_INSTALLER_INSTALLPRODUCT 8
#define DISPID_INSTALLER_VERSION 9
+#define DISPID_INSTALLER_LASTERRORRECORD 10
#define DISPID_INSTALLER_REGISTRYVALUE 11
+#define DISPID_INSTALLER_ENVIRONMENT 12
+#define DISPID_INSTALLER_FILEATTRIBUTES 13
+#define DISPID_INSTALLER_FILESIZE 15
+#define DISPID_INSTALLER_FILEVERSION 16
#define DISPID_INSTALLER_PRODUCTSTATE 17
#define DISPID_INSTALLER_PRODUCTINFO 18
#define DISPID_INSTALLER_PRODUCTS 35
diff --git a/dlls/msi/tests/automation.c b/dlls/msi/tests/automation.c
index 6c24908..bf3f942 100644
--- a/dlls/msi/tests/automation.c
+++ b/dlls/msi/tests/automation.c
@@ -477,35 +477,32 @@ static void test_dispid(void)
ok(dispid == 1, "Expected 1, got %d\n", dispid);
dispid = get_dispid(pInstaller, "OpenPackage");
ok(dispid == 2, "Expected 2, got %d\n", dispid);
+ dispid = get_dispid(pInstaller, "OpenProduct");
+ ok(dispid == 3, "Expected 3, got %d\n", dispid);
dispid = get_dispid(pInstaller, "OpenDatabase");
ok(dispid == 4, "Expected 4, got %d\n", dispid);
+ dispid = get_dispid(pInstaller, "SummaryInformation");
+ ok(dispid == 5, "Expected 5, got %d\n", dispid);
dispid = get_dispid( pInstaller, "UILevel" );
ok(dispid == 6, "Expected 6, got %d\n", dispid);
+ dispid = get_dispid(pInstaller, "EnableLog");
+ ok(dispid == 7, "Expected 7, got %d\n", dispid);
dispid = get_dispid(pInstaller, "InstallProduct");
ok(dispid == 8, "Expected 8, got %d\n", dispid);
dispid = get_dispid(pInstaller, "Version");
ok(dispid == 9, "Expected 9, got %d\n", dispid);
+ dispid = get_dispid(pInstaller, "LastErrorRecord");
+ ok(dispid == 10, "Expected 10, got %d\n", dispid);
dispid = get_dispid(pInstaller, "RegistryValue");
ok(dispid == 11, "Expected 11, got %d\n", dispid);
- todo_wine
- {
- dispid = get_dispid(pInstaller, "OpenProduct");
- ok(dispid == 3, "Expected 3, got %d\n", dispid);
- dispid = get_dispid(pInstaller, "SummaryInformation");
- ok(dispid == 5, "Expected 5, got %d\n", dispid);
- dispid = get_dispid(pInstaller, "EnableLog");
- ok(dispid == 7, "Expected 7, got %d\n", dispid);
- dispid = get_dispid(pInstaller, "LastErrorRecord");
- ok(dispid == 10, "Expected 10, got %d\n", dispid);
- dispid = get_dispid(pInstaller, "Environment");
- ok(dispid == 12, "Expected 12, got %d\n", dispid);
- dispid = get_dispid(pInstaller, "FileAttributes");
- ok(dispid == 13, "Expected 13, got %d\n", dispid);
- dispid = get_dispid(pInstaller, "FileSize");
- ok(dispid == 15, "Expected 15, got %d\n", dispid);
- dispid = get_dispid(pInstaller, "FileVersion");
- ok(dispid == 16, "Expected 16, got %d\n", dispid);
- }
+ dispid = get_dispid(pInstaller, "Environment");
+ ok(dispid == 12, "Expected 12, got %d\n", dispid);
+ dispid = get_dispid(pInstaller, "FileAttributes");
+ ok(dispid == 13, "Expected 13, got %d\n", dispid);
+ dispid = get_dispid(pInstaller, "FileSize");
+ ok(dispid == 15, "Expected 15, got %d\n", dispid);
+ dispid = get_dispid(pInstaller, "FileVersion");
+ ok(dispid == 16, "Expected 16, got %d\n", dispid);
dispid = get_dispid(pInstaller, "ProductState");
ok(dispid == 17, "Expected 17, got %d\n", dispid);
dispid = get_dispid(pInstaller, "ProductInfo");
More information about the wine-cvs
mailing list