[prev in list] [next in list] [prev in thread] [next in thread]
List: wine-devel
Subject: Re: comctl32.dll: Running siap and modules under wine, first steps
From: Alex_Villacís_Lasso
Date: 2005-09-28 17:54:46
Message-ID: 433AD8E6.4000802 () palosanto ! com
[Download RAW message or body]
Robert Shearman wrote:
> Alex Villacís Lasso wrote:
>
>> --- wine-20050830-cvs/dlls/oleaut32/typelib.c 2005-09-21
>> 10:39:22.000000000 -0500
>> +++ wine-20050830-cvs-patch/dlls/oleaut32/typelib.c 2005-09-24
>> 20:34:32.000000000 -0500
>> @@ -5207,9 +5207,11 @@
>> ITypeInfoImpl *This = (ITypeInfoImpl *)iface;
>> HRESULT result = E_FAIL;
>>
>> - if (hRefType == -1 &&
>> + if ((hRefType == -1 &&
>> (((ITypeInfoImpl*) This)->TypeAttr.typekind ==
>> TKIND_DISPATCH) &&
>> - (((ITypeInfoImpl*) This)->TypeAttr.wTypeFlags &
>> TYPEFLAG_FDUAL))
>> + (((ITypeInfoImpl*) This)->TypeAttr.wTypeFlags &
>> TYPEFLAG_FDUAL)) ||
>> + ((((ITypeInfoImpl*) This)->TypeAttr.typekind ==
>> TKIND_DISPATCH) &&
>> + (((ITypeInfoImpl*) This)->TypeAttr.wTypeFlags &
>> TYPEFLAG_FDISPATCHABLE)))
>> {
>> /* when we meet a DUAL dispinterface, we must create the
>> interface
>> * version of it.
>>
>> This patch executes the "create interface" code when typekind ==
>> TKIND_DISPATCH
>> and wTypeFlags has TYPEFLAG_FDISPATCHABLE, regardless of the value of
>> hRefType,
>> in addition to the previous condition. With this patch, the native
>> oleaut32
>> requirement is removed. The typelib test still passes - not that it
>> actually
>> tests the change in code (more on this later).
>
>
>
> This patch looks pretty good, but I can't see the difference between
> TKIND_DISPATCH and TYPEFLAG_FDISPATCHABLE on MSDN. They look like they
> mean the same thing. Have you seen a typelib with one and not the
> other? Also, you can remove all of the casts of This while you're
> changing that if statement because they are unnecessary.
I need to read the Automation guide throughly. Back when I was trying to
make this app work, the telltale sign was the "Can't find pRefType for
ref XXX" right before the crash. Since I was at my home machine, and I
don't have an Internet connection at home, I could not check whether
TKIND_DISPATCH and TYPEFLAG_FDISPATCHABLE mean the same thing or should
be specified together. I can send the (reverse-engineered with OLEVIEW)
typelib for DBGRID32.OCX, if that might show something.
I already sent the other two patches to wine-patches. I hope they get
commited.
Alex Villacís Lasso
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic