James Hawkins : msi: Refactor the Installer. Version method into InstallerImpl_Version.
Alexandre Julliard
julliard at winehq.org
Fri Dec 11 11:04:47 CST 2009
Module: wine
Branch: master
Commit: 138d5f1f6c8b0b5769bd054ab51718fefd8e643e
URL: http://source.winehq.org/git/wine.git/?a=commit;h=138d5f1f6c8b0b5769bd054ab51718fefd8e643e
Author: James Hawkins <truiken at 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,
More information about the wine-cvs
mailing list