Comment 37 for bug 479223

Revision history for this message
In , Saulius Krasuckas (saulius2) wrote :

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://<email address hidden>/msg13906.html