Jacek Caban : atl80: Added AtlRegisterTypeLib implementation ( based on AtlModuleRegisterTypeLib).
Alexandre Julliard
julliard at winehq.org
Fri Dec 28 15:05:16 CST 2012
Module: wine
Branch: master
Commit: ef3f65b5ffe455f4ac43112e7864ab9f14e4fefc
URL: http://source.winehq.org/git/wine.git/?a=commit;h=ef3f65b5ffe455f4ac43112e7864ab9f14e4fefc
Author: Jacek Caban <jacek at codeweavers.com>
Date: Fri Dec 28 14:23:27 2012 +0100
atl80: Added AtlRegisterTypeLib implementation (based on AtlModuleRegisterTypeLib).
---
dlls/atl80/Makefile.in | 1 +
dlls/atl80/atl80.c | 31 ++++++++++++++++++++++++++++---
dlls/atl80/atl80.spec | 2 +-
include/atlbase.h | 1 +
4 files changed, 31 insertions(+), 4 deletions(-)
diff --git a/dlls/atl80/Makefile.in b/dlls/atl80/Makefile.in
index 70f416f..1b83f5f 100644
--- a/dlls/atl80/Makefile.in
+++ b/dlls/atl80/Makefile.in
@@ -1,4 +1,5 @@
MODULE = atl80.dll
+IMPORTS = atl100 oleaut32
EXTRADEFS = -D_ATL_VER=_ATL_VER_80
diff --git a/dlls/atl80/atl80.c b/dlls/atl80/atl80.c
index b250d32..c85f75e 100644
--- a/dlls/atl80/atl80.c
+++ b/dlls/atl80/atl80.c
@@ -16,11 +16,36 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
-#include <stdarg.h>
-#include "windef.h"
-#include "winbase.h"
+#define COBJMACROS
+
#include "atlbase.h"
+#include "wine/debug.h"
+#include "wine/unicode.h"
+
+WINE_DEFAULT_DEBUG_CHANNEL(atl);
+
+/***********************************************************************
+ * AtlRegisterTypeLib [atl80.19]
+ */
+HRESULT WINAPI AtlRegisterTypeLib(HINSTANCE inst, const WCHAR *index)
+{
+ ITypeLib *typelib;
+ BSTR path;
+ HRESULT hres;
+
+ TRACE("(%p %s)\n", inst, debugstr_w(index));
+
+ hres = AtlLoadTypeLib(inst, index, &path, &typelib);
+ if(FAILED(hres))
+ return hres;
+
+ hres = RegisterTypeLib(typelib, path, NULL); /* FIXME: pass help directory */
+ ITypeLib_Release(typelib);
+ SysFreeString(path);
+ return hres;
+}
+
/***********************************************************************
* AtlGetVersion [atl80.@]
*/
diff --git a/dlls/atl80/atl80.spec b/dlls/atl80/atl80.spec
index c6e589e..e4d73f1 100644
--- a/dlls/atl80/atl80.spec
+++ b/dlls/atl80/atl80.spec
@@ -6,7 +6,7 @@
15 stdcall AtlComModuleGetClassObject(ptr ptr ptr ptr) atl100.AtlComModuleGetClassObject
17 stub AtlComModuleRegisterClassObjects
18 stub AtlComModuleRegisterServer(ptr long ptr)
-19 stub AtlRegisterTypeLib(ptr wstr)
+19 stdcall AtlRegisterTypeLib(ptr wstr)
20 stub AtlComModuleRevokeClassObjects
22 stub AtlComModuleUnregisterServer
23 stdcall AtlUpdateRegistryFromResourceD(long wstr long ptr ptr) atl100.AtlUpdateRegistryFromResourceD
diff --git a/include/atlbase.h b/include/atlbase.h
index ee8167c..39c3741 100644
--- a/include/atlbase.h
+++ b/include/atlbase.h
@@ -252,6 +252,7 @@ HRESULT WINAPI AtlUnmarshalPtr(IStream *pStream, const IID *iid, IUnknown **ppUn
HRESULT WINAPI AtlCreateRegistrar(IRegistrar**);
HRESULT WINAPI AtlUpdateRegistryFromResourceD(HINSTANCE,LPCOLESTR,BOOL,struct _ATL_REGMAP_ENTRY*,IRegistrar*);
HRESULT WINAPI AtlLoadTypeLib(HINSTANCE,LPCOLESTR,BSTR*,ITypeLib**);
+HRESULT WINAPI AtlRegisterTypeLib(HINSTANCE,LPCOLESTR);
HRESULT WINAPI AtlRegisterClassCategoriesHelper(REFCLSID,const struct _ATL_CATMAP_ENTRY*,BOOL);
HRESULT WINAPI AtlComModuleGetClassObject(_ATL_COM_MODULE*,REFCLSID,REFIID,void**);
More information about the wine-cvs
mailing list