This is from the latest snapshot of ICS V8. procedure TIcsTimer.UpdateTimer; begin KillTimer(FIcsWndControl.Handle, UINT_PTR(Self)); if (FInterval <> 0) and FEnabled and Assigned(FOnTimer) then if SetTimer(FIcsWndControl.Handle, Cardinal(Self), FInterval, nil) = 0 then begin <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< FEnabled := FALSE; raise EIcsTimerException.Create('No more timers'); end else FLastEvent := IcsGetTickCount; end;
It should be: NativeUInt(Self), FInterval, nil) = 0 then begin <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Reference: http://docwiki.embarcadero.com/Libraries/Seattle/en/System.Cardinal 1. Do I really have the latest version of the file? 2. If so, and this bug exists, it begs the question: does anybody use ICS in a 64-bit application? :-) Thanks, Doug BTW: I'm using the THttpServer component in Delphi XE2 Update 4 Hotfix 1. It was failing in TIcsWndHandler.WndProc(var MsgRec: TMessage); begin <.....> if (Msg = WM_TIMER) then begin Obj := TObject(WParam); >>>>>>> if (not IsBadReadPtr(Obj, GUIDOffSet + SizeOf(INT_PTR))) and {$IFDEF COMPILER16_UP} { WPARAM changed to unsigned } (PUINT_PTR(WParam + {$IFDEF RTL_NAMESPACES}Winapi.{$ENDIF}Windows.WPARAM(GUIDOffSet))^ = WParam) and {$ELSE} (PINT_PTR(WParam + GUIDOffSet)^ = WParam) and {$ENDIF} (Obj is TIcsTimer) then TIcsTimer(Obj).WmTimer(MsgRec); end <.....> end; -- 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