Andrey Turkin : atl: Implement AtlRegisterLoadTypeLib.
Alexandre Julliard
julliard at wine.codeweavers.com
Mon Nov 13 09:24:32 CST 2006
Module: wine
Branch: master
Commit: da7bdf745f7a9973feff9d0aa9dd9fd3acbcc406
URL: http://source.winehq.org/git/wine.git/?a=commit;h=da7bdf745f7a9973feff9d0aa9dd9fd3acbcc406
Author: Andrey Turkin <pancha at mail.nnov.ru>
Date: Sat Nov 11 00:07:29 2006 +0300
atl: Implement AtlRegisterLoadTypeLib.
---
dlls/atl/atl_main.c | 21 +++++++++++++++++++--
dlls/atl/atlbase.h | 1 +
2 files changed, 20 insertions(+), 2 deletions(-)
diff --git a/dlls/atl/atl_main.c b/dlls/atl/atl_main.c
index 1fac5b1..7195f13 100644
--- a/dlls/atl/atl_main.c
+++ b/dlls/atl/atl_main.c
@@ -341,8 +341,25 @@ HRESULT WINAPI AtlModuleGetClassObject(_
*/
HRESULT WINAPI AtlModuleRegisterTypeLib(_ATL_MODULEW *pm, LPCOLESTR lpszIndex)
{
- FIXME("%p %s\n", pm, debugstr_w(lpszIndex));
- return E_FAIL;
+ HRESULT hRes;
+ BSTR path;
+ ITypeLib *typelib;
+
+ TRACE("%p %s\n", pm, debugstr_w(lpszIndex));
+
+ if (!pm)
+ return E_INVALIDARG;
+
+ hRes = AtlModuleLoadTypeLib(pm, lpszIndex, &path, &typelib);
+
+ if (SUCCEEDED(hRes))
+ {
+ hRes = RegisterTypeLib(typelib, path, NULL); /* FIXME: pass help directory */
+ ITypeLib_Release(typelib);
+ SysFreeString(path);
+ }
+
+ return hRes;
}
/***********************************************************************
diff --git a/dlls/atl/atlbase.h b/dlls/atl/atlbase.h
index 809a89f..0aec2e9 100644
--- a/dlls/atl/atlbase.h
+++ b/dlls/atl/atlbase.h
@@ -154,6 +154,7 @@ LPVOID WINAPI AtlModuleExtractCreateWnd
HRESULT WINAPI AtlModuleInit(_ATL_MODULEW* pM, _ATL_OBJMAP_ENTRYW* p, HINSTANCE h);
HRESULT WINAPI AtlModuleRegisterClassObjects(_ATL_MODULEW* pM, DWORD dwClsContext, DWORD dwFlags);
HRESULT WINAPI AtlModuleRegisterServer(_ATL_MODULEW* pM, BOOL bRegTypeLib, const CLSID* pCLSID);
+HRESULT WINAPI AtlModuleRegisterTypeLib(_ATL_MODULEW *pM, LPCOLESTR lpszIndex);
HRESULT WINAPI AtlModuleUnregisterServer(_ATL_MODULEW* pM, const CLSID* pCLSID);
HRESULT WINAPI AtlModuleUpdateRegistryFromResourceD(_ATL_MODULEW *pM, LPCOLESTR lpszRes, BOOL bRegister, struct _ATL_REGMAP_ENTRY *pMapEntries, IRegistrar *pReg );
HRESULT WINAPI AtlModuleUnregisterServerEx(_ATL_MODULEW* pM, BOOL bUnRegTypeLib, const CLSID* pCLSID);
More information about the wine-cvs
mailing list