This patch to Delphi 6.02's Controls.pas fixes an AV issue with
combo boxes and Outlook Express; see:

http://groups.google.com/group/borland.public.delphi.vcl.components.using/browse_thread/thread/e012cea3ea1d258b

Delphi 2-5 have the same problem, but need a slightly different patch --
see VCL-Controls-D2D5-patch.txt.
Delphi 7 and later already incorporate an equivalent fix.

After applying the changes, recompile Controls.pas from the command
line as follows:

> c:\delphi\bin\dcc32 -$D- -$L- Controls.pas
> move Controls.dcu c:\delphi\lib


--- Controls.pas.orig	Fri Feb 15 14:02:00 2002
+++ Controls.pas	Tue Mar 19 21:04:58 2002
@@ -1743,14 +1743,20 @@
 { The global atom table is trashed when the user logs off.  The extra test
   below protects UI interactive services after the user logs off.  }
 function FindControl(Handle: HWnd): TWinControl;
+var
+  PID: DWORD;
 begin
   Result := nil;
   if (Handle <> 0) then
   begin
-    if GlobalFindAtom(PChar(ControlAtomString)) = ControlAtom then
-      Result := Pointer(GetProp(Handle, MakeIntAtom(ControlAtom)))
-    else
-      Result := ObjectFromHWnd(Handle);
+    if (GetWindowThreadProcessId(Handle, @PID) <> 0) and
+       (PID = GetCurrentProcessId) then
+    begin
+      if GlobalFindAtom(PChar(ControlAtomString)) = ControlAtom then
+        Result := Pointer(GetProp(Handle, MakeIntAtom(ControlAtom)))
+      else
+        Result := ObjectFromHWnd(Handle);
+    end;
   end;
 end;
 
@@ -2448,14 +2454,20 @@
 // See comments for FindControl about global atom stability in service apps.
 
 function IsDelphiHandle(Handle: HWND): Boolean;
+var
+  PID: DWORD;
 begin
   Result := False;
   if Handle <> 0 then
   begin
-    if GlobalFindAtom(PChar(WindowAtomString)) = WindowAtom then
-      Result := GetProp(Handle, MakeIntAtom(WindowAtom)) <> 0
-    else
-      Result := ObjectFromHWnd(Handle) <> nil;
+    if (GetWindowThreadProcessId(Handle, @PID) <> 0) and
+       (PID = GetCurrentProcessId) then
+    begin
+      if GlobalFindAtom(PChar(WindowAtomString)) = WindowAtom then
+        Result := GetProp(Handle, MakeIntAtom(WindowAtom)) <> 0
+      else
+        Result := ObjectFromHWnd(Handle) <> nil;
+    end;
   end;
 end;
 
