comctl32.dll: Running siap and modules under wine, first steps
Alex Villacís Lasso
a_villacis at palosanto.com
Wed Sep 28 12:54:46 CDT 2005
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
More information about the wine-devel
mailing list