Jacek Caban : shdocvw: Register SHDocVw typelib.
Alexandre Julliard
julliard at wine.codeweavers.com
Mon Jul 31 10:38:53 CDT 2006
Module: wine
Branch: refs/heads/master
Commit: e10f5b1d501964b0e07954099c02ab5795496b9e
URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=e10f5b1d501964b0e07954099c02ab5795496b9e
Author: Jacek Caban <jacek at codeweavers.com>
Date: Mon Jul 31 13:16:54 2006 +0200
shdocvw: Register SHDocVw typelib.
---
dlls/shdocvw/regsvr.c | 29 +++++++++++++++++++++++++++++
1 files changed, 29 insertions(+), 0 deletions(-)
diff --git a/dlls/shdocvw/regsvr.c b/dlls/shdocvw/regsvr.c
index 83da050..786262b 100644
--- a/dlls/shdocvw/regsvr.c
+++ b/dlls/shdocvw/regsvr.c
@@ -650,6 +650,29 @@ err:
return (res == ERROR_SUCCESS) ? S_OK : E_FAIL;
}
+static HRESULT register_typelib(void)
+{
+ ITypeLib *typelib;
+ HRESULT hres;
+
+ static WCHAR wszSHDocVw[] = {'s','h','d','o','c','v','w','.','d','l','l',0};
+
+ hres = LoadTypeLibEx(wszSHDocVw, REGKIND_REGISTER, &typelib);
+ if(FAILED(hres)) {
+ ERR("Could not load typelib: %08lx\n", hres);
+ return hres;
+ }
+
+ ITypeLib_Release(typelib);
+
+ return hres;
+}
+
+static HRESULT unregister_typelib(void)
+{
+ return UnRegisterTypeLib(&LIBID_SHDocVw, 1, 1, LOCALE_SYSTEM_DEFAULT, SYS_WIN32);
+}
+
/***********************************************************************
* DllRegisterServer (SHDOCVW.@)
*/
@@ -664,6 +687,9 @@ HRESULT WINAPI DllRegisterServer(void)
hr = register_interfaces(interface_list);
if (SUCCEEDED(hr))
hr = register_localserver();
+ if(SUCCEEDED(hr))
+ hr = register_typelib();
+
return hr;
}
@@ -679,5 +705,8 @@ HRESULT WINAPI DllUnregisterServer(void)
hr = unregister_coclasses(coclass_list);
if (SUCCEEDED(hr))
hr = unregister_interfaces(interface_list);
+ if(SUCCEEDED(hr))
+ hr = unregister_typelib();
+
return hr;
}
More information about the wine-cvs
mailing list