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