Module: wine Branch: refs/heads/master Commit: e10f5b1d501964b0e07954099c02ab5795496b9e URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=e10f5b1d501964b0e0795409...
Author: Jacek Caban jacek@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; }