http://bugs.winehq.org/show_bug.cgi?id=3689
--- Comment #37 from Saulius K. saulius2@gmail.com 2009-04-02 12:38:31 --- In re: #33 | | All typelib registration stuff goes through "32autole.dll" a.k.a. OLEAUT32.DLL | Wine's builtin one is not used at that time ... | Basically it boils down to LoadTypeLib() and RegisterTypeLib() problems of | "stdole32.tlb". ... | It turned out that the shipped ole automation bootstrapper expects | "stdole32.tlb" in v1 format (ICreateTypeLib/SGLT), not the v2 format wine | currently provides (ICreateTypeLib2/MSFT). | When manually generating a v1 typelib using ICreateTypeLib and embedding into | PE it successfully loads and registers.
Thanks, Anastasius. My first question is: are these dlls the same by their exports? Then Wine could just simply fake one dll with another.
The second is: couldn't that be some other bug in Wine which prevents 32autole.dll from registering "stdole32.tlb" in v2 format correctly? Of course, I could take the TLB from Wine tree and investigate this on real Windows myself.
The third question (not so personal) would be:
Couldn't ITypeLib2_Constructor_SLTG() be used (from dlls/oleaut32/typelib.c) to generate v1 format in Wine?
Here is some links I've stuck upon today that raised these questions up for me:
[5] http://www.winehq.org/wwn/238#Creating%20Type%20Libraries [6] http://www.mail-archive.com/wine-devel@winehq.org/msg13906.html