Hi,
On Mon, Oct 18, 1999 at 05:39:41AM +1000, gerard patel wrote:
> At 08:43 PM 2/16/00 +0000, you wrote:
> >On Tue, Feb 15, 2000 at 02:41:01AM -0700, gerard patel wrote:
>
> >> I think that GlobalFindAtomA does not succeed if called with
> >> a *handle* in className,although CreateWindowsEx should
> >> if the className parameter is a handle
> >
> >No! It is quite legal to call FindAtom function with atom handle!
>
> *handle* ?
... [code snipped] ...
Ok. I see what happens. So, let me explain every thing from the beginning.
1) It is ok to call {Global,}{Add|Find}Atom{A|W} with str parameter which
actually is an atom handle. That is:
a) HIWORD(str) == 0 and LOWORD(str) == atom_handle
b) str is a string like '#[0-9]*'
2) BUT BUT BUT! It is _not_ OK to pass handle which is _string_ atom handle.
That is, you can pass #30002 but you cannot do that with #49325.
-------------START: a bit of prehistory -----------
I did that check in first version of atom patches but I noticed that
Internet Explorer 4.0 ceased working because it tried to call function
GlobalFindAtom('#'+HexToDec(C011)) and it failed due to my check. So I
decided that I was too smart and removed that check (instead of tracing
doing the chain of calls to CreateWindowEx, darn!). After that, IE start
working again. But I was a little surprised because in WinNT in must fail
(tested it) and, as it was IE for Win98, i thought that in Win98 in won't
fail (too lazy to test it, darn).
-------------STOP: a bit of prehistory -----------
WHAT TO DO NOW?
1) I'm _sure_ that that check must be returned back.
(Alexandre, who of us will do it ?)
2) CreateWindow must be fixed anyway.
bye.