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