This patch to Delphi 2.01-5.01'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 6 has the same problem, but needs a slightly different patch --
see VCL-Controls-D6-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 Sun Jun 09 03:01:00 1996
+++ Controls.pas Tue Mar 19 20:45:04 2002
@@ -967,11 +967,15 @@
{ Find a TWinControl given a window handle }
function FindControl(Handle: HWnd): TWinControl;
+var
+ PID: DWORD;
begin
Result := nil;
if Handle <> 0 then
begin
- Result := Pointer(GetProp(Handle, MakeIntAtom(ControlAtom)));
+ if (GetWindowThreadProcessId(Handle, @PID) <> 0) and
+ (PID = GetCurrentProcessId) then
+ Result := Pointer(GetProp(Handle, MakeIntAtom(ControlAtom)));
end;
end;
@@ -1271,8 +1275,12 @@
end;
function IsDelphiHandle(Handle: HWND): Boolean;
+var
+ PID: DWORD;
begin
Result := (Handle <> 0) and
+ (GetWindowThreadProcessId(Handle, @PID) <> 0) and
+ (PID = GetCurrentProcessId) and
(GetProp(Handle, MakeIntAtom(WindowAtom)) <> 0);
end;
Wyszukiwarka
Podobne podstrony:
VCL Controls D6 patchcontrol structures continue12 control statements02 ZELIO CONTROL?TALOGUETest di controllomikrotik bandwidth controlco ControlPortC6401 52 Check control module 01controlled boxes2001 01 Know How Commandline Control of Babelfish Translation ServiceCauses and control of filamentous growth in aerobic granular sludge sequencing batch reactorsplan project configuration change control?F019DFPATCH05b E65 Remote Control Serviceswięcej podobnych podstron