On 2/8/2014 03:27, guillaume.charifi@sfr.fr wrote:
This patch is designed to fix the bug: http://bugs.winehq.org/show_bug.cgi?id=34184 It appears that while the dependency checking of a TypeLib is being processed, some programs have the requested TypeLib in their Resource section/TYPELIB. Before this patch, the behavior was to look for the TLB on the disk, using the name provided. Obviously, when it is embedded into the program, the function fails everytime. Now, considering the GUID in place of the TLB name, and searching into the Resource section, the TLB is correctly loaded. This is what happens with Skype's "uc.tlb", whose name is only referenced in the TLB skControl, and nowhere else. Using instead the GUID, we are able to find and load the unnamed "uc.tlb" from the program resources.
dlls/oleaut32/typelib.c 193 +++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 192 insertions(+), 1 deletion(-)
We already have a code to load from resource section, it should be reused instead of duplicating it like this. Also a test would be nice.