[Lazarus] [lazarus] Patch for processing WM_COPYDATA in Win32 / BugID 9210

Christian U. z0m3ie at gmx.net
Mon Feb 18 19:16:19 CET 2008


Vincent Snijders schrieb:
> Lukas Gradl schreef:
>   
>> Vincent Snijders schrieb:
>>     
>>> Let's keep the LCL win32 widgetset interface clean and just add things 
>>> that are used by the LCL and keep custom extension outside it.
>>>       
>> SetWindowLong is an option I've to check.
>>
>> But IMHO this is not a real solution to the problem. The Pascal-way of 
>> handling Messages is to define a custom messagehandler. This is how it 
>> is done in countless applications.
>>
>> In some later post in this thread you write "...we want the LCL to be 
>> *VCL* compatible..." and in the VCL this is the way to go.
>>     
>
> To a certain height. I should have added, as long as we can make it work cross 
> widgetset, cross platform.
>
>   
>> So I'm quite shure, that this should work in Lazarus accordingly.
>>
>> So perhaps we should take a look at the LCL messagehandler in total to 
>> stop it from eating up messages that are not necessary for the LCL.
>>
>>     
>
> Maybe this patch works:
> Index: win32/win32callback.inc
> ===================================================================
> --- win32/win32callback.inc	(revision 14180)
> +++ win32/win32callback.inc	(working copy)
> @@ -2141,14 +2141,10 @@
>           exit(TWin32WidgetSet(WidgetSet).FOnAsyncSocketMsg(WParam, LParam))
>       end;
>     else
> -    // pass along user defined messages
> -    if Msg >= WM_USER then
> -    begin
> -      LMessage.Msg := Msg;
> -      LMessage.WParam := WParam;
> -      LMessage.LParam := LParam;
> -      WinProcess := False;
> -    end;
> +    // pass along all messages
> +    LMessage.Msg := Msg;
> +    LMessage.WParam := WParam;
> +    LMessage.LParam := LParam;
>     end;
>
>     if WinProcess then
>
>
> If this is accepted, we never have to worry about blocked messages, only about 
> messages that may crash the LCL (because of an unexpected message), slower 
> applications because some messages are sent to the LCL unnecessary and messages that 
> are only sent on windows.
>   

Maybe an define is the best way to hide this. Who realy needs all 
messages can define

-dPassAllWin32MessagesToLCL

so everyone is happy....

best regards
Christian
> Vincent
> _______________________________________________
> Lazarus mailing list
> Lazarus at lazarus.freepascal.org
> http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
>
>   




More information about the Lazarus mailing list