Module: wine Branch: master Commit: b7233ba33f22ecfebb1069ccac5d733463509e5f URL: http://source.winehq.org/git/wine.git/?a=commit;h=b7233ba33f22ecfebb1069ccac...
Author: Misha Koshelev mk144210@bcm.edu Date: Mon Jun 4 09:26:51 2007 -0500
msi: automation: Implement SummaryInfo::PropertyCount.
---
dlls/msi/automation.c | 14 ++++++++++++++ dlls/msi/msiserver.idl | 2 ++ dlls/msi/msiserver_dispids.h | 1 + dlls/msi/tests/automation.c | 18 ++++++------------ 4 files changed, 23 insertions(+), 12 deletions(-)
diff --git a/dlls/msi/automation.c b/dlls/msi/automation.c index 9997fbe..97084fc 100644 --- a/dlls/msi/automation.c +++ b/dlls/msi/automation.c @@ -858,6 +858,20 @@ static HRESULT WINAPI SummaryInfoImpl_Invoke( else return DISP_E_MEMBERNOTFOUND; break;
+ case DISPID_SUMMARYINFO_PROPERTYCOUNT: + if (wFlags & DISPATCH_PROPERTYGET) { + UINT count; + if ((ret = MsiSummaryInfoGetPropertyCount(This->msiHandle, &count)) != ERROR_SUCCESS) + ERR("MsiSummaryInfoGetPropertyCount returned %d\n", ret); + else + { + V_VT(pVarResult) = VT_I4; + V_I4(pVarResult) = count; + } + } + else return DISP_E_MEMBERNOTFOUND; + break; + default: return DISP_E_MEMBERNOTFOUND; } diff --git a/dlls/msi/msiserver.idl b/dlls/msi/msiserver.idl index e1be538..d0db26e 100644 --- a/dlls/msi/msiserver.idl +++ b/dlls/msi/msiserver.idl @@ -161,6 +161,8 @@ library WindowsInstaller void Property( [in] long Pid, [in] VARIANT rhs); + [id(DISPID_SUMMARYINFO_PROPERTYCOUNT), propget] + long PropertyCount(); }
typedef enum { diff --git a/dlls/msi/msiserver_dispids.h b/dlls/msi/msiserver_dispids.h index 1b04e81..8d673dd 100644 --- a/dlls/msi/msiserver_dispids.h +++ b/dlls/msi/msiserver_dispids.h @@ -54,3 +54,4 @@ #define DISPID_SESSION_SETINSTALLLEVEL 19
#define DISPID_SUMMARYINFO_PROPERTY 1 +#define DISPID_SUMMARYINFO_PROPERTYCOUNT 2 diff --git a/dlls/msi/tests/automation.c b/dlls/msi/tests/automation.c index 8e531de..7308671 100644 --- a/dlls/msi/tests/automation.c +++ b/dlls/msi/tests/automation.c @@ -1322,12 +1322,9 @@ static void test_SummaryInfo(IDispatch *pSummaryInfo, const msi_summary_info *in int j;
/* SummaryInfo::PropertyCount */ - todo_wine - { - hr = SummaryInfo_PropertyCountGet(pSummaryInfo, &j); - ok(hr == S_OK, "SummaryInfo_PropertyCount failed, hresult 0x%08x\n", hr); - ok(j == num_info, "SummaryInfo_PropertyCount returned %d, expected %d\n", j, num_info); - } + hr = SummaryInfo_PropertyCountGet(pSummaryInfo, &j); + ok(hr == S_OK, "SummaryInfo_PropertyCount failed, hresult 0x%08x\n", hr); + ok(j == num_info, "SummaryInfo_PropertyCount returned %d, expected %d\n", j, num_info);
/* SummaryInfo::Property, get for properties we have set */ for (j = 0; j < num_info; j++) @@ -1451,12 +1448,9 @@ static void test_SummaryInfo(IDispatch *pSummaryInfo, const msi_summary_info *in VariantClear(&var);
/* SummaryInfo::PropertyCount */ - todo_wine - { - hr = SummaryInfo_PropertyCountGet(pSummaryInfo, &j); - ok(hr == S_OK, "SummaryInfo_PropertyCount failed, hresult 0x%08x\n", hr); - ok(j == num_info+4, "SummaryInfo_PropertyCount returned %d, expected %d\n", j, num_info); - } + hr = SummaryInfo_PropertyCountGet(pSummaryInfo, &j); + ok(hr == S_OK, "SummaryInfo_PropertyCount failed, hresult 0x%08x\n", hr); + ok(j == num_info+4, "SummaryInfo_PropertyCount returned %d, expected %d\n", j, num_info); } }