Module: wine Branch: master Commit: ff3ed0e5eace38ddc891f29c40b78ece395f5c77 URL: http://source.winehq.org/git/wine.git/?a=commit;h=ff3ed0e5eace38ddc891f29c40...
Author: Nikolay Sivov nsivov@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 ) {