Move notifies around to match native

Vitaliy Margolen wine-devel at
Tue Apr 12 17:13:32 CDT 2005

Tuesday, April 12, 2005, 3:09:57 PM, you wrote:
> On Tue, Apr 12, 2005 at 12:24:11PM -0600, Vitaliy Margolen wrote:
>> Also small fix for custom draw color. Native does not use colors returned from
>> NM_CUSTOMDRAW notify.

> This is odd, and it deserves at the very least a comment in the
> code, but more preferably a unit test.

Well, yes and no. This is custom draw callback/notify. It shouldn't change
control's parameters, such as color. At least on a permanent basis. This is what
set color messages for.

I have a Delphi Custom TreeView sample that has all kinds of problems. For one,
the colors it is setting are not displayed correctly. Second, and mach bigger
problem, it goes into endless loop. I have traced this down to SetItemT
invalidating new item if anything got changed. The problem is Delphi using
callbacks for both image indexes.

Also I can't quite understand why TVM_GETITEM for iImage returns something like
0x4079D5D0 while traces show 0, 1 or 3 dependant on open/closed/has children.

I'm working on it right now to see what could be done about it. At the very
least we should distinguish what should cause screen update and what's not.
Simple memcmp doesn't cut it here. So far it looks like we'll have to do
something different if iImage or iSelectedImage returned as a callback.

As far as conformance tests go, I'm not sure how to do it. The part I would like
to test is what changes could cause TreeView node to get invalidated. Do I have
to subclass TreeView to define notify message handler? if not, how to do this
inside the conformance test?


More information about the wine-devel mailing list