Re: [twsocket] ICS v5 compatibility / WndProc handling
Primož Gabrijelcic wrote: if assigned(OnMessage) then //Gp OnMessage(Self, MsgRec); //Gp if Result = 0 then //Gp Result := DefWindowProc(Handle, Msg, wParam, lParam); In order to allow zero-results the new event required another boolean var parameter, also note the slightly different name (ICS coding style): TIcsMessageEvent = procedure(Sender : TObject; var MsgRec : TMessage; var Handled : Boolean) of object; -- Arno Garrels [TeamICS] http://www.overbyte.be/eng/overbyte/teamics.html Primoz -Original Message- From: [EMAIL PROTECTED] [mailto:twsocket- [EMAIL PROTECTED] On Behalf Of Arno Garrels Sent: Saturday, June 02, 2007 8:08 PM To: ICS support mailing Subject: Re: [twsocket] ICS v5 compatibility / WndProc handling Looks usefull, though not tested yet. Francois, what do you think? Primož Gabrijelcic wrote: Hello everybody (and especially Francois). I have this legacy code that was written using ICS v5. Deep inside some message processing (specifically RAS handling) is done in overridden WndProc methods. When I switched to ICS v6, this code broke. This was mainly expected - ICS v6 cannot know which socket's WndProc it should call when it receives some non-internal (not registered via AllocateMsgHandler) message after all. Still, I had to make old code work with the new message dispatch system and that's what I did: I defined new event handler in the TIcsWndHandler: TIcsOnMessageEvent = procedure(Sender: TObject; var MsgRec: TMessage) of object; //Gp TIcsWndHandler = class(TObject) FOnMessage : TIcsOnMessageEvent; ... property OnMessage: TIcsOnMessageEvent read FOnMessage write FOnMessage; //Gp In the TIcsWndHandler.WndProc, I call OnMessage if specified: procedure TIcsWndHandler.WndProc(var MsgRec: TMessage); var Dummy : Boolean; begin try with MsgRec do begin if (Msg = FMsgLow) and (Msg (FMsgLow + WH_MAX_MSG)) and Assigned(FMsgMap[Msg - FMsgLow]) then FMsgMap[Msg - FMsgLow].WndProc(MsgRec) else begin if assigned(OnMessage) then //Gp OnMessage(Self, MsgRec); //Gp if Result = 0 then //Gp Result := DefWindowProc(Handle, Msg, wParam, lParam); end; end; except // Les exceptions doivent etre gérées, sinon l'application sera // liquidée dcs qu'une exception se produit ! on E:Exception do TriggerBgException(E, Dummy); end; end; This way, I can catch all messages received by the TIcsWndHandler and call appropriate legacy code inside my OnMessage handler. I think this is a simple extension that adds much flexibility and that I should be included in the base code. What do others think? Best regards, Primoz -- To unsubscribe or change your settings for TWSocket mailing list please goto http://www.elists.org/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be -- To unsubscribe or change your settings for TWSocket mailing list please goto http://www.elists.org/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be
Re: [twsocket] ICS v5 compatibility / WndProc handling
Sure. I'm fine with that. Primoz -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Arno Garrels Sent: Sunday, June 03, 2007 9:36 AM To: ICS support mailing Subject: Re: [twsocket] ICS v5 compatibility / WndProc handling Primož Gabrijelcic wrote: if assigned(OnMessage) then //Gp OnMessage(Self, MsgRec); //Gp if Result = 0 then //Gp Result := DefWindowProc(Handle, Msg, wParam, lParam); In order to allow zero-results the new event required another boolean var parameter, also note the slightly different name (ICS coding style): -- To unsubscribe or change your settings for TWSocket mailing list please goto http://www.elists.org/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be
Re: [twsocket] ICS v5 compatibility / WndProc handling
Can you please also translate the // On a une superbe fenętre. Dans les informations associées, enregistre la // référence ŕ notre objet. Elle permettra plus tard d'invoquer la // méthode WndProc de gestion des messages envoyés ŕ la fenętre in TIcsWndHandler.AllocateHWnd? I tried to understand it with a little help from the Babelfish, but its translation was less than satisfactory. Best regards, Primoz -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Francois PIETTE Sent: Sunday, June 03, 2007 10:25 AM To: ICS support mailing Subject: Re: [twsocket] ICS v5 compatibility / WndProc handling My vote is pro, depends on Francois, he's the (busy) boss ;-) OK. Also update the comment in french: // Les exceptions doivent etre gérées, sinon l'application sera // liquidée des qu'une exception se produit ! // All exceptions must be handled otherwise the application // will terminate as soon as an exception is raised. -- [EMAIL PROTECTED] The author of the freeware multi-tier middleware MidWare The author of the freeware Internet Component Suite (ICS) http://www.overbyte.be - Original Message - From: Arno Garrels [EMAIL PROTECTED] To: ICS support mailing twsocket@elists.org Sent: Saturday, June 02, 2007 8:19 PM Subject: Re: [twsocket] ICS v5 compatibility / WndProc handling Primož Gabrijelcic wrote: It works fine in our applications. My vote is pro, depends on Francois, he's the (busy) boss ;-) Primoz -Original Message- From: [EMAIL PROTECTED] [mailto:twsocket- [EMAIL PROTECTED] On Behalf Of Arno Garrels Sent: Saturday, June 02, 2007 8:08 PM To: ICS support mailing Subject: Re: [twsocket] ICS v5 compatibility / WndProc handling Looks usefull, though not tested yet. Francois, what do you think? Primož Gabrijelcic wrote: Hello everybody (and especially Francois). I have this legacy code that was written using ICS v5. Deep inside some message processing (specifically RAS handling) is done in overridden WndProc methods. When I switched to ICS v6, this code broke. This was mainly expected - ICS v6 cannot know which socket's WndProc it should call when it receives some non-internal (not registered via AllocateMsgHandler) message after all. Still, I had to make old code work with the new message dispatch system and that's what I did: I defined new event handler in the TIcsWndHandler: TIcsOnMessageEvent = procedure(Sender: TObject; var MsgRec: TMessage) of object; //Gp TIcsWndHandler = class(TObject) FOnMessage : TIcsOnMessageEvent; ... property OnMessage: TIcsOnMessageEvent read FOnMessage write FOnMessage; //Gp In the TIcsWndHandler.WndProc, I call OnMessage if specified: procedure TIcsWndHandler.WndProc(var MsgRec: TMessage); var Dummy : Boolean; begin try with MsgRec do begin if (Msg = FMsgLow) and (Msg (FMsgLow + WH_MAX_MSG)) and Assigned(FMsgMap[Msg - FMsgLow]) then FMsgMap[Msg - FMsgLow].WndProc(MsgRec) else begin if assigned(OnMessage) then //Gp OnMessage(Self, MsgRec); //Gp if Result = 0 then //Gp Result := DefWindowProc(Handle, Msg, wParam, lParam); end; end; except // Les exceptions doivent etre gérées, sinon l'application sera // liquidée dcs qu'une exception se produit ! on E:Exception do TriggerBgException(E, Dummy); end; end; This way, I can catch all messages received by the TIcsWndHandler and call appropriate legacy code inside my OnMessage handler. I think this is a simple extension that adds much flexibility and that I should be included in the base code. What do others think? Best regards, Primoz -- To unsubscribe or change your settings for TWSocket mailing list please goto http://www.elists.org/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be -- To unsubscribe or change your settings for TWSocket mailing list please goto http://www.elists.org/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be -- To unsubscribe or change your settings for TWSocket mailing list please goto http://www.elists.org/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be -- To unsubscribe or change your settings for TWSocket mailing list please goto http://www.elists.org/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be
Re: [twsocket] ICS v5 compatibility / WndProc handling
// On a une superbe fenętre. Dans les informations associées, enregistre la // référence ŕ notre objet. Elle permettra plus tard d'invoquer la // méthode WndProc de gestion des messages envoyés ŕ la fenętre // We have a window. In the associated data, we record a reference // to our object. Thjis will later allow to call the WndProc method to // handle messages sent to the window. -- [EMAIL PROTECTED] The author of the freeware multi-tier middleware MidWare The author of the freeware Internet Component Suite (ICS) http://www.overbyte.be - Original Message - From: Primož Gabrijelčič [EMAIL PROTECTED] To: 'ICS support mailing' twsocket@elists.org Sent: Sunday, June 03, 2007 11:26 AM Subject: Re: [twsocket] ICS v5 compatibility / WndProc handling Can you please also translate the // On a une superbe fenętre. Dans les informations associées, enregistre la // référence ŕ notre objet. Elle permettra plus tard d'invoquer la // méthode WndProc de gestion des messages envoyés ŕ la fenętre in TIcsWndHandler.AllocateHWnd? I tried to understand it with a little help from the Babelfish, but its translation was less than satisfactory. Best regards, Primoz -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Francois PIETTE Sent: Sunday, June 03, 2007 10:25 AM To: ICS support mailing Subject: Re: [twsocket] ICS v5 compatibility / WndProc handling My vote is pro, depends on Francois, he's the (busy) boss ;-) OK. Also update the comment in french: // Les exceptions doivent etre gérées, sinon l'application sera // liquidée des qu'une exception se produit ! // All exceptions must be handled otherwise the application // will terminate as soon as an exception is raised. -- [EMAIL PROTECTED] The author of the freeware multi-tier middleware MidWare The author of the freeware Internet Component Suite (ICS) http://www.overbyte.be - Original Message - From: Arno Garrels [EMAIL PROTECTED] To: ICS support mailing twsocket@elists.org Sent: Saturday, June 02, 2007 8:19 PM Subject: Re: [twsocket] ICS v5 compatibility / WndProc handling Primož Gabrijelcic wrote: It works fine in our applications. My vote is pro, depends on Francois, he's the (busy) boss ;-) Primoz -Original Message- From: [EMAIL PROTECTED] [mailto:twsocket- [EMAIL PROTECTED] On Behalf Of Arno Garrels Sent: Saturday, June 02, 2007 8:08 PM To: ICS support mailing Subject: Re: [twsocket] ICS v5 compatibility / WndProc handling Looks usefull, though not tested yet. Francois, what do you think? Primož Gabrijelcic wrote: Hello everybody (and especially Francois). I have this legacy code that was written using ICS v5. Deep inside some message processing (specifically RAS handling) is done in overridden WndProc methods. When I switched to ICS v6, this code broke. This was mainly expected - ICS v6 cannot know which socket's WndProc it should call when it receives some non-internal (not registered via AllocateMsgHandler) message after all. Still, I had to make old code work with the new message dispatch system and that's what I did: I defined new event handler in the TIcsWndHandler: TIcsOnMessageEvent = procedure(Sender: TObject; var MsgRec: TMessage) of object; //Gp TIcsWndHandler = class(TObject) FOnMessage : TIcsOnMessageEvent; ... property OnMessage: TIcsOnMessageEvent read FOnMessage write FOnMessage; //Gp In the TIcsWndHandler.WndProc, I call OnMessage if specified: procedure TIcsWndHandler.WndProc(var MsgRec: TMessage); var Dummy : Boolean; begin try with MsgRec do begin if (Msg = FMsgLow) and (Msg (FMsgLow + WH_MAX_MSG)) and Assigned(FMsgMap[Msg - FMsgLow]) then FMsgMap[Msg - FMsgLow].WndProc(MsgRec) else begin if assigned(OnMessage) then //Gp OnMessage(Self, MsgRec); //Gp if Result = 0 then //Gp Result := DefWindowProc(Handle, Msg, wParam, lParam); end; end; except // Les exceptions doivent etre gérées, sinon l'application sera // liquidée dcs qu'une exception se produit ! on E:Exception do TriggerBgException(E, Dummy); end; end; This way, I can catch all messages received by the TIcsWndHandler and call appropriate legacy code inside my OnMessage handler. I think this is a simple extension that adds much flexibility and that I should be included in the base code. What do others think? Best regards, Primoz -- To unsubscribe or change your settings for TWSocket mailing list please goto http://www.elists.org/mailman/listinfo/twsocket Visit our website at http
Re: [twsocket] ICS v5 compatibility / WndProc handling
Looks usefull, though not tested yet. Francois, what do you think? Primož Gabrijelcic wrote: Hello everybody (and especially Francois). I have this legacy code that was written using ICS v5. Deep inside some message processing (specifically RAS handling) is done in overridden WndProc methods. When I switched to ICS v6, this code broke. This was mainly expected - ICS v6 cannot know which socket's WndProc it should call when it receives some non-internal (not registered via AllocateMsgHandler) message after all. Still, I had to make old code work with the new message dispatch system and that's what I did: I defined new event handler in the TIcsWndHandler: TIcsOnMessageEvent = procedure(Sender: TObject; var MsgRec: TMessage) of object; //Gp TIcsWndHandler = class(TObject) FOnMessage : TIcsOnMessageEvent; ... property OnMessage: TIcsOnMessageEvent read FOnMessage write FOnMessage; //Gp In the TIcsWndHandler.WndProc, I call OnMessage if specified: procedure TIcsWndHandler.WndProc(var MsgRec: TMessage); var Dummy : Boolean; begin try with MsgRec do begin if (Msg = FMsgLow) and (Msg (FMsgLow + WH_MAX_MSG)) and Assigned(FMsgMap[Msg - FMsgLow]) then FMsgMap[Msg - FMsgLow].WndProc(MsgRec) else begin if assigned(OnMessage) then //Gp OnMessage(Self, MsgRec); //Gp if Result = 0 then //Gp Result := DefWindowProc(Handle, Msg, wParam, lParam); end; end; except // Les exceptions doivent etre gérées, sinon l'application sera // liquidée dcs qu'une exception se produit ! on E:Exception do TriggerBgException(E, Dummy); end; end; This way, I can catch all messages received by the TIcsWndHandler and call appropriate legacy code inside my OnMessage handler. I think this is a simple extension that adds much flexibility and that I should be included in the base code. What do others think? Best regards, Primoz -- To unsubscribe or change your settings for TWSocket mailing list please goto http://www.elists.org/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be
Re: [twsocket] ICS v5 compatibility / WndProc handling
It works fine in our applications. Primoz -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Arno Garrels Sent: Saturday, June 02, 2007 8:08 PM To: ICS support mailing Subject: Re: [twsocket] ICS v5 compatibility / WndProc handling Looks usefull, though not tested yet. Francois, what do you think? Primož Gabrijelcic wrote: Hello everybody (and especially Francois). I have this legacy code that was written using ICS v5. Deep inside some message processing (specifically RAS handling) is done in overridden WndProc methods. When I switched to ICS v6, this code broke. This was mainly expected - ICS v6 cannot know which socket's WndProc it should call when it receives some non-internal (not registered via AllocateMsgHandler) message after all. Still, I had to make old code work with the new message dispatch system and that's what I did: I defined new event handler in the TIcsWndHandler: TIcsOnMessageEvent = procedure(Sender: TObject; var MsgRec: TMessage) of object; //Gp TIcsWndHandler = class(TObject) FOnMessage : TIcsOnMessageEvent; ... property OnMessage: TIcsOnMessageEvent read FOnMessage write FOnMessage; //Gp In the TIcsWndHandler.WndProc, I call OnMessage if specified: procedure TIcsWndHandler.WndProc(var MsgRec: TMessage); var Dummy : Boolean; begin try with MsgRec do begin if (Msg = FMsgLow) and (Msg (FMsgLow + WH_MAX_MSG)) and Assigned(FMsgMap[Msg - FMsgLow]) then FMsgMap[Msg - FMsgLow].WndProc(MsgRec) else begin if assigned(OnMessage) then //Gp OnMessage(Self, MsgRec); //Gp if Result = 0 then //Gp Result := DefWindowProc(Handle, Msg, wParam, lParam); end; end; except // Les exceptions doivent etre gérées, sinon l'application sera // liquidée dcs qu'une exception se produit ! on E:Exception do TriggerBgException(E, Dummy); end; end; This way, I can catch all messages received by the TIcsWndHandler and call appropriate legacy code inside my OnMessage handler. I think this is a simple extension that adds much flexibility and that I should be included in the base code. What do others think? Best regards, Primoz -- To unsubscribe or change your settings for TWSocket mailing list please goto http://www.elists.org/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be -- To unsubscribe or change your settings for TWSocket mailing list please goto http://www.elists.org/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be
Re: [twsocket] ICS v5 compatibility / WndProc handling
Primož Gabrijelcic wrote: It works fine in our applications. My vote is pro, depends on Francois, he's the (busy) boss ;-) Primoz -Original Message- From: [EMAIL PROTECTED] [mailto:twsocket- [EMAIL PROTECTED] On Behalf Of Arno Garrels Sent: Saturday, June 02, 2007 8:08 PM To: ICS support mailing Subject: Re: [twsocket] ICS v5 compatibility / WndProc handling Looks usefull, though not tested yet. Francois, what do you think? Primož Gabrijelcic wrote: Hello everybody (and especially Francois). I have this legacy code that was written using ICS v5. Deep inside some message processing (specifically RAS handling) is done in overridden WndProc methods. When I switched to ICS v6, this code broke. This was mainly expected - ICS v6 cannot know which socket's WndProc it should call when it receives some non-internal (not registered via AllocateMsgHandler) message after all. Still, I had to make old code work with the new message dispatch system and that's what I did: I defined new event handler in the TIcsWndHandler: TIcsOnMessageEvent = procedure(Sender: TObject; var MsgRec: TMessage) of object; //Gp TIcsWndHandler = class(TObject) FOnMessage : TIcsOnMessageEvent; ... property OnMessage: TIcsOnMessageEvent read FOnMessage write FOnMessage; //Gp In the TIcsWndHandler.WndProc, I call OnMessage if specified: procedure TIcsWndHandler.WndProc(var MsgRec: TMessage); var Dummy : Boolean; begin try with MsgRec do begin if (Msg = FMsgLow) and (Msg (FMsgLow + WH_MAX_MSG)) and Assigned(FMsgMap[Msg - FMsgLow]) then FMsgMap[Msg - FMsgLow].WndProc(MsgRec) else begin if assigned(OnMessage) then //Gp OnMessage(Self, MsgRec); //Gp if Result = 0 then //Gp Result := DefWindowProc(Handle, Msg, wParam, lParam); end; end; except // Les exceptions doivent etre gérées, sinon l'application sera // liquidée dcs qu'une exception se produit ! on E:Exception do TriggerBgException(E, Dummy); end; end; This way, I can catch all messages received by the TIcsWndHandler and call appropriate legacy code inside my OnMessage handler. I think this is a simple extension that adds much flexibility and that I should be included in the base code. What do others think? Best regards, Primoz -- To unsubscribe or change your settings for TWSocket mailing list please goto http://www.elists.org/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be -- To unsubscribe or change your settings for TWSocket mailing list please goto http://www.elists.org/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be
[twsocket] ICS v5 compatibility / WndProc handling
Hello everybody (and especially Francois). I have this legacy code that was written using ICS v5. Deep inside some message processing (specifically RAS handling) is done in overridden WndProc methods. When I switched to ICS v6, this code broke. This was mainly expected - ICS v6 cannot know which socket's WndProc it should call when it receives some non-internal (not registered via AllocateMsgHandler) message after all. Still, I had to make old code work with the new message dispatch system and that's what I did: I defined new event handler in the TIcsWndHandler: TIcsOnMessageEvent = procedure(Sender: TObject; var MsgRec: TMessage) of object; //Gp TIcsWndHandler = class(TObject) FOnMessage : TIcsOnMessageEvent; ... property OnMessage: TIcsOnMessageEvent read FOnMessage write FOnMessage; //Gp In the TIcsWndHandler.WndProc, I call OnMessage if specified: procedure TIcsWndHandler.WndProc(var MsgRec: TMessage); var Dummy : Boolean; begin try with MsgRec do begin if (Msg = FMsgLow) and (Msg (FMsgLow + WH_MAX_MSG)) and Assigned(FMsgMap[Msg - FMsgLow]) then FMsgMap[Msg - FMsgLow].WndProc(MsgRec) else begin if assigned(OnMessage) then //Gp OnMessage(Self, MsgRec); //Gp if Result = 0 then //Gp Result := DefWindowProc(Handle, Msg, wParam, lParam); end; end; except // Les exceptions doivent ętre gérées, sinon l'application sera // liquidée dčs qu'une exception se produit ! on E:Exception do TriggerBgException(E, Dummy); end; end; This way, I can catch all messages received by the TIcsWndHandler and call appropriate legacy code inside my OnMessage handler. I think this is a simple extension that adds much flexibility and that I should be included in the base code. What do others think? Best regards, Primoz -- To unsubscribe or change your settings for TWSocket mailing list please goto http://www.elists.org/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be