VCL Controls D2D5 patch


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 patch
control structures continue
12 control statements
02 ZELIO CONTROL?TALOGUE
Test di controllo
mikrotik bandwidth control
co ControlPortC64
01 52 Check control module 01
controlled boxes
2001 01 Know How Commandline Control of Babelfish Translation Service
Causes and control of filamentous growth in aerobic granular sludge sequencing batch reactors
plan project configuration change control?F019DF
PATCH
05b E65 Remote Control Services

więcej podobnych podstron