Module: wine Branch: master Commit: 469e4a5c944e910fc8b36aba96ad2de09c66f756 URL: http://source.winehq.org/git/wine.git/?a=commit;h=469e4a5c944e910fc8b36aba96...
Author: James Hawkins jhawkins@codeweavers.com Date: Mon Jul 28 22:19:47 2008 -0500
msi: Directly register the typelib if it's not embedded in a PE module.
---
dlls/msi/action.c | 14 +++++++++++++- 1 files changed, 13 insertions(+), 1 deletions(-)
diff --git a/dlls/msi/action.c b/dlls/msi/action.c index 68dd6f3..6662945 100644 --- a/dlls/msi/action.c +++ b/dlls/msi/action.c @@ -2994,7 +2994,10 @@ static UINT ITERATE_RegisterTypeLibraries(MSIRECORD *row, LPVOID param) MSICOMPONENT *comp; MSIFILE *file; typelib_struct tl_struct; + ITypeLib *tlib; HMODULE module; + HRESULT hr; + static const WCHAR szTYPELIB[] = {'T','Y','P','E','L','I','B',0};
component = MSI_RecordGetString(row,3); @@ -3063,7 +3066,16 @@ static UINT ITERATE_RegisterTypeLibraries(MSIRECORD *row, LPVOID param) msi_free(tl_struct.source); } else - ERR("Could not load file! %s\n", debugstr_w(file->TargetPath)); + { + hr = LoadTypeLibEx(file->TargetPath, REGKIND_REGISTER, &tlib); + if (FAILED(hr)) + { + ERR("Failed to load type library: %08x\n", hr); + return ERROR_FUNCTION_FAILED; + } + + ITypeLib_Release(tlib); + }
return ERROR_SUCCESS; }