Module: wine Branch: master Commit: 138d5f1f6c8b0b5769bd054ab51718fefd8e643e URL: http://source.winehq.org/git/wine.git/?a=commit;h=138d5f1f6c8b0b5769bd054ab5...
Author: James Hawkins truiken@gmail.com Date: Thu Dec 10 17:02:49 2009 -0800
msi: Refactor the Installer.Version method into InstallerImpl_Version.
---
dlls/msi/automation.c | 48 ++++++++++++++++++++++++++++++------------------ 1 files changed, 30 insertions(+), 18 deletions(-)
diff --git a/dlls/msi/automation.c b/dlls/msi/automation.c index 031b11e..f26ad53 100644 --- a/dlls/msi/automation.c +++ b/dlls/msi/automation.c @@ -1799,6 +1799,34 @@ done: return hr; }
+static HRESULT InstallerImpl_Version(WORD wFlags, + VARIANT* pVarResult, + EXCEPINFO* pExcepInfo, + UINT* puArgErr) +{ + HRESULT hr; + DLLVERSIONINFO verinfo; + WCHAR version[MAX_PATH]; + + static const WCHAR format[] = { + '%','d','.','%','d','.','%','d','.','%','d',0}; + + if (!(wFlags & DISPATCH_PROPERTYGET)) + return DISP_E_MEMBERNOTFOUND; + + verinfo.cbSize = sizeof(DLLVERSIONINFO); + hr = DllGetVersion(&verinfo); + if (FAILED(hr)) + return hr; + + sprintfW(version, format, verinfo.dwMajorVersion, verinfo.dwMinorVersion, + verinfo.dwBuildNumber, verinfo.dwPlatformID); + + V_VT(pVarResult) = VT_BSTR; + V_BSTR(pVarResult) = SysAllocString(version); + return S_OK; +} + static HRESULT InstallerImpl_LastErrorRecord(WORD wFlags, DISPPARAMS* pDispParams, VARIANT* pVarResult, @@ -1933,24 +1961,8 @@ static HRESULT WINAPI InstallerImpl_Invoke( puArgErr);
case DISPID_INSTALLER_VERSION: - if (wFlags & DISPATCH_PROPERTYGET) { - DLLVERSIONINFO verinfo; - WCHAR version[MAX_PATH]; - - static const WCHAR format[] = {'%','d','.','%','d','.','%','d','.','%','d',0}; - - verinfo.cbSize = sizeof(DLLVERSIONINFO); - hr = DllGetVersion(&verinfo); - if (FAILED(hr)) return hr; - - sprintfW(version, format, verinfo.dwMajorVersion, verinfo.dwMinorVersion, - verinfo.dwBuildNumber, verinfo.dwPlatformID); - - V_VT(pVarResult) = VT_BSTR; - V_BSTR(pVarResult) = SysAllocString(version); - } - else return DISP_E_MEMBERNOTFOUND; - break; + return InstallerImpl_Version(wFlags, pVarResult, + pExcepInfo, puArgErr);
case DISPID_INSTALLER_LASTERRORRECORD: return InstallerImpl_LastErrorRecord(wFlags, pDispParams,