Module: wine Branch: master Commit: fd2884a1553994b055aa8c6588e821d68db40ac1 URL: http://source.winehq.org/git/wine.git/?a=commit;h=fd2884a1553994b055aa8c6588...
Author: James Hawkins truiken@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) {