I recently reviewed all my projects to be ready to x64 (replaced things like Integer(Pointer) ) and also checked code of some components I use. The main idea is not to cast pointers/handles to integer/cardinal as they may exceed 4 bytes on x64 systems. Emb-ro introduced two new types: Native(U)Int that will always have the same size as Handle/Pointer. So I believe the changes could be done right now. Here's what I found in ICS.
OverbyteIcsUtils.pas 1) if Integer(FHandle) >= 0 then // NativeInt() but not necessary as it's for old compilers 2) TIcsIntegerList.Get***, all Integer() casts 3) Cardinal(Pointer(Result)^) := Len; 4) if Cardinal(FHandle) = INVALID_HANDLE_VALUE then // (twice) to NativeUInt OverbyteIcsWndControl.pas 1) KillTimer(FIcsWndControl.Handle, Cardinal(Integer(IntPtr(FHandleGC)))); 2) if SetTimer(FIcsWndControl.Handle, Cardinal(Integer(IntPtr(FHandleGC))), FInterval, nil) = 0 then begin 3) KillTimer(FIcsWndControl.Handle, Cardinal(Self)); 4) if SetTimer(FIcsWndControl.Handle, Cardinal(Self), FInterval, nil) = 0 then begin There are other some Integer() stuff but inside IFDEF CLR sections and I have no idea on what things in x64 .Net are (and even if they differ from x32 at all). -- Anton -- To unsubscribe or change your settings for TWSocket mailing list please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be