Module: wine Branch: master Commit: da7bdf745f7a9973feff9d0aa9dd9fd3acbcc406 URL: http://source.winehq.org/git/wine.git/?a=commit;h=da7bdf745f7a9973feff9d0aa9...
Author: Andrey Turkin pancha@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);