Module: wine Branch: master Commit: 3681a280249a855a25872460e1043dde9b3c2b8e URL: http://source.winehq.org/git/wine.git/?a=commit;h=3681a280249a855a25872460e1... Author: Alexandre Julliard <julliard(a)winehq.org> Date: Fri Apr 9 11:14:16 2010 +0200 oleaut32: Query the path of the correct kind of typelib when unregistering it. --- dlls/oleaut32/typelib.c | 54 ++++++++++++++++++++++++---------------------- 1 files changed, 28 insertions(+), 26 deletions(-) diff --git a/dlls/oleaut32/typelib.c b/dlls/oleaut32/typelib.c index be0c221..5792cc5 100644 --- a/dlls/oleaut32/typelib.c +++ b/dlls/oleaut32/typelib.c @@ -283,30 +283,9 @@ static WCHAR *get_lcid_subkey( LCID lcid, SYSKIND syskind, WCHAR *buffer ) static HRESULT TLB_ReadTypeLib(LPCWSTR pszFileName, LPWSTR pszPath, UINT cchPath, ITypeLib2 **ppTypeLib); -/**************************************************************************** - * QueryPathOfRegTypeLib [OLEAUT32.164] - * - * Gets the path to a registered type library. - * - * PARAMS - * guid [I] referenced guid - * wMaj [I] major version - * wMin [I] minor version - * lcid [I] locale id - * path [O] path of typelib - * - * RETURNS - * Success: S_OK. - * Failure: If the type library is not registered then TYPE_E_LIBNOTREGISTERED - * or TYPE_E_REGISTRYACCESS if the type library registration key couldn't be - * opened. - */ -HRESULT WINAPI QueryPathOfRegTypeLib( - REFGUID guid, - WORD wMaj, - WORD wMin, - LCID lcid, - LPBSTR path ) +/* Get the path to a registered type library. Helper for QueryPathOfRegTypeLib. */ +static HRESULT query_typelib_path( REFGUID guid, WORD wMaj, WORD wMin, + SYSKIND syskind, LCID lcid, LPBSTR path ) { HRESULT hr = TYPE_E_LIBNOTREGISTERED; LCID myLCID = lcid; @@ -336,7 +315,7 @@ HRESULT WINAPI QueryPathOfRegTypeLib( { LONG dwPathLen = sizeof(Path); - get_lcid_subkey( myLCID, SYS_WIN32, buffer ); + get_lcid_subkey( myLCID, syskind, buffer ); if (RegQueryValueW(hkey, buffer, Path, &dwPathLen)) { @@ -368,6 +347,29 @@ HRESULT WINAPI QueryPathOfRegTypeLib( return hr; } +/**************************************************************************** + * QueryPathOfRegTypeLib [OLEAUT32.164] + * + * Gets the path to a registered type library. + * + * PARAMS + * guid [I] referenced guid + * wMaj [I] major version + * wMin [I] minor version + * lcid [I] locale id + * path [O] path of typelib + * + * RETURNS + * Success: S_OK. + * Failure: If the type library is not registered then TYPE_E_LIBNOTREGISTERED + * or TYPE_E_REGISTRYACCESS if the type library registration key couldn't be + * opened. + */ +HRESULT WINAPI QueryPathOfRegTypeLib( REFGUID guid, WORD wMaj, WORD wMin, LCID lcid, LPBSTR path ) +{ + return query_typelib_path( guid, wMaj, wMin, SYS_WIN32, lcid, path ); +} + /****************************************************************************** * CreateTypeLib [OLEAUT32.160] creates a typelib * @@ -799,7 +801,7 @@ HRESULT WINAPI UnRegisterTypeLib( } /* get the path to the typelib on disk */ - if (QueryPathOfRegTypeLib(libid, wVerMajor, wVerMinor, lcid, &tlibPath) != S_OK) { + if (query_typelib_path(libid, wVerMajor, wVerMinor, syskind, lcid, &tlibPath) != S_OK) { result = E_INVALIDARG; goto end; }