James Hawkins : msi: Refactor the Installer. ProductState method into InstallerImpl_ProductState.

Alexandre Julliard julliard at winehq.org
Fri Dec 11 11:04:47 CST 2009


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

Author: James Hawkins <truiken at gmail.com>
Date:   Thu Dec 10 17:03:04 2009 -0800

msi: Refactor the Installer.ProductState method into InstallerImpl_ProductState.

---

 dlls/msi/automation.c |   35 +++++++++++++++++++++++++++--------
 1 files changed, 27 insertions(+), 8 deletions(-)

diff --git a/dlls/msi/automation.c b/dlls/msi/automation.c
index 16eb836..9317ff4 100644
--- a/dlls/msi/automation.c
+++ b/dlls/msi/automation.c
@@ -2051,6 +2051,31 @@ static HRESULT InstallerImpl_FileVersion(WORD wFlags,
     return S_OK;
 }
 
+static HRESULT InstallerImpl_ProductState(WORD wFlags,
+                                          DISPPARAMS* pDispParams,
+                                          VARIANT* pVarResult,
+                                          EXCEPINFO* pExcepInfo,
+                                          UINT* puArgErr)
+{
+    HRESULT hr;
+    VARIANTARG varg0;
+
+
+    if (!(wFlags & DISPATCH_PROPERTYGET))
+        return DISP_E_MEMBERNOTFOUND;
+
+    VariantInit(&varg0);
+    hr = DispGetParam(pDispParams, 0, VT_BSTR, &varg0, puArgErr);
+    if (FAILED(hr))
+        return hr;
+
+    V_VT(pVarResult) = VT_I4;
+    V_I4(pVarResult) = MsiQueryProductStateW(V_BSTR(&varg0));
+
+    VariantClear(&varg0);
+    return S_OK;
+}
+
 static HRESULT WINAPI InstallerImpl_Invoke(
         AutomationObject* This,
         DISPID dispIdMember,
@@ -2141,14 +2166,8 @@ static HRESULT WINAPI InstallerImpl_Invoke(
                                              pVarResult, pExcepInfo, puArgErr);
 
         case DISPID_INSTALLER_PRODUCTSTATE:
-            if (wFlags & DISPATCH_PROPERTYGET) {
-                hr = DispGetParam(pDispParams, 0, VT_BSTR, &varg0, puArgErr);
-                if (FAILED(hr)) return hr;
-                V_VT(pVarResult) = VT_I4;
-                V_I4(pVarResult) = MsiQueryProductStateW(V_BSTR(&varg0));
-            }
-            else return DISP_E_MEMBERNOTFOUND;
-            break;
+            return InstallerImpl_ProductState(wFlags, pDispParams,
+                                              pVarResult, pExcepInfo, puArgErr);
 
         case DISPID_INSTALLER_PRODUCTINFO:
             if (wFlags & DISPATCH_PROPERTYGET) {




More information about the wine-cvs mailing list