Nikolay Sivov : msi: Add null terminator to typelib name.
Alexandre Julliard
julliard at winehq.org
Mon Jan 16 13:01:31 CST 2012
Module: wine
Branch: master
Commit: ff3ed0e5eace38ddc891f29c40b78ece395f5c77
URL: http://source.winehq.org/git/wine.git/?a=commit;h=ff3ed0e5eace38ddc891f29c40b78ece395f5c77
Author: Nikolay Sivov <nsivov at codeweavers.com>
Date: Sat Jan 14 16:43:31 2012 +0300
msi: Add null terminator to typelib name.
---
dlls/msi/automation.c | 38 +++++++++++++++++++-------------------
1 files changed, 19 insertions(+), 19 deletions(-)
diff --git a/dlls/msi/automation.c b/dlls/msi/automation.c
index 933698f..54c89ed 100644
--- a/dlls/msi/automation.c
+++ b/dlls/msi/automation.c
@@ -103,20 +103,30 @@ typedef struct {
IDispatch *installer;
} SessionObject;
+static inline AutomationObject *impl_from_IProvideMultipleClassInfo( IProvideMultipleClassInfo *iface )
+{
+ return CONTAINING_RECORD(iface, AutomationObject, IProvideMultipleClassInfo_iface);
+}
+
+static inline AutomationObject *impl_from_IDispatch( IDispatch *iface )
+{
+ return CONTAINING_RECORD(iface, AutomationObject, IDispatch_iface);
+}
+
/* Load type info so we don't have to process GetIDsOfNames */
HRESULT load_type_info(IDispatch *iface, ITypeInfo **pptinfo, REFIID clsid, LCID lcid)
{
+ static const WCHAR msiserverW[] = {'m','s','i','s','e','r','v','e','r','.','t','l','b',0};
+ ITypeInfo *ti = NULL;
+ ITypeLib *lib = NULL;
HRESULT hr;
- LPTYPELIB pLib = NULL;
- LPTYPEINFO pInfo = NULL;
- static const WCHAR szMsiServer[] = {'m','s','i','s','e','r','v','e','r','.','t','l','b'};
- TRACE("(%p)->(%s,%d)\n", iface, debugstr_guid(clsid), lcid);
+ TRACE("(%p)->(%s, %d)\n", iface, debugstr_guid(clsid), lcid);
/* Load registered type library */
- hr = LoadRegTypeLib(&LIBID_WindowsInstaller, 1, 0, lcid, &pLib);
+ hr = LoadRegTypeLib(&LIBID_WindowsInstaller, 1, 0, lcid, &lib);
if (FAILED(hr)) {
- hr = LoadTypeLib(szMsiServer, &pLib);
+ hr = LoadTypeLib(msiserverW, &lib);
if (FAILED(hr)) {
ERR("Could not load msiserver.tlb\n");
return hr;
@@ -124,26 +134,16 @@ HRESULT load_type_info(IDispatch *iface, ITypeInfo **pptinfo, REFIID clsid, LCID
}
/* Get type information for object */
- hr = ITypeLib_GetTypeInfoOfGuid(pLib, clsid, &pInfo);
- ITypeLib_Release(pLib);
+ hr = ITypeLib_GetTypeInfoOfGuid(lib, clsid, &ti);
+ ITypeLib_Release(lib);
if (FAILED(hr)) {
ERR("Could not load ITypeInfo for %s\n", debugstr_guid(clsid));
return hr;
}
- *pptinfo = pInfo;
+ *pptinfo = ti;
return S_OK;
}
-static inline AutomationObject *impl_from_IProvideMultipleClassInfo( IProvideMultipleClassInfo *iface )
-{
- return CONTAINING_RECORD(iface, AutomationObject, IProvideMultipleClassInfo_iface);
-}
-
-static inline AutomationObject *impl_from_IDispatch( IDispatch *iface )
-{
- return CONTAINING_RECORD(iface, AutomationObject, IDispatch_iface);
-}
-
/* Macro to get pointer to private object data */
static inline void *private_data( AutomationObject *This )
{
More information about the wine-cvs
mailing list