[8/21] comctl32: Add basic structure for IImageList interface

Owen Rudge owen at owenrudge.net
Sat Aug 15 06:49:03 CDT 2009

Hi Detler,

 > Disassembling Windows Code is not allowed for Wine.
 > You should have know that and you should know the result.

I'd just like to explain what it was exactly that I did, to possibly 
clear up any confusion. After submitting a set of patches, and receiving 
the comment that HIMAGELIST/IImageList should be the same, I was 
wondering about maintaining internal compatibility with the "old" 
structure, since it looked to me as if the existing HIMAGELIST structure 
had been specifically ordered to be compatible with Windows (see the 
commit at http://tinyurl.com/mfwl54 for instance - I presumed there was 
a reason behind this involving application compatibility). I then wrote 
a very simple little test program which took the existing Wine 
structural definition of HIMAGELIST, and then cast that onto the Windows 
structure, and performed a couple of tests to compare various values 
(eg, the "magic" value), to see if they were compatible.

This was the extent of my "debugging" of the code, and I did not then 
make use of any of the seemingly-nonsensical values the program 
returned. The code in the header file in the patch 
(http://tinyurl.com/l4ffln) is the only part that was "affected" by 
this, and I simply moved the two structure members I had previous 
defined in another structure to the HIMAGELIST structure. I made no 
effort to further investigate or make compatible the structure with the 
native Windows structure. Additionally, at no time did I actively 
"disassemble" any Windows code, or do anything more than compare the 
first few values in the structure with this test program. I have since 
been made aware that even this is possibly unacceptable, and I 
understand that I may have made a mistake in doing so.

Possibly I screwed up a bit, I accept that. I would just like to 
reiterate however that it was a very crude form of "debugging", as 
detailed above, and that no changes to the code were ultimately made as 
a result of it. No other code I have ever written has involved similar 
practices, and I would personally argue that this piece of code itself 
is for the largest part unaffected.

I appreciate your comments, and hopefully this message will help explain 
things. It was obviously never my intention to put the project into 
jeopardy by replicating MS code directly (and, of course, this is 
something I have not done anyway).


Owen Rudge

More information about the wine-devel mailing list