Misha Koshelev : msi: automation: Implement SummaryInfo::PropertyCount.

Alexandre Julliard julliard at wine.codeweavers.com
Tue Jun 5 05:48:19 CDT 2007


Module: wine
Branch: master
Commit: b7233ba33f22ecfebb1069ccac5d733463509e5f
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=b7233ba33f22ecfebb1069ccac5d733463509e5f

Author: Misha Koshelev <mk144210 at 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);
     }
 }
 




More information about the wine-cvs mailing list