Link to home
Start Free TrialLog in
Avatar of DanHamm
DanHamm

asked on

Windows messaging

I have a single windows application where I pass messages between different modules using the standard SendMessage and PostMessage.  This all works

When passing a string, I use the code:

    copyDataStruct.dwData := 1;
    copyDataStruct.cbData := 1 + Length(AString);
    copyDataStruct.lpData := PChar(AString);

    SendMessage(Application.MainFormHandle, WM_PLG_COPYDATA, ATarget, Integer(@copyDataStruct));

where WM_PLG_COPYDATA is a messaging constant private to my own application, which is received by a message function of the form
    procedure WMCopyData(var Msg : TWMCopyData); message WM_PLG_COPYDATA;

This also works, although all of the examples I have seen (copying between applications) use the standard procedure WMCopyData(var Msg : TWMCopyData); message WM_COPYDATA;

My question is: is there any reason why I should stick to the standard WM_COPYDATA rather than a private constant?  I have done a check for memory leaks, and everything seems OK
ASKER CERTIFIED SOLUTION
Avatar of ThievingSix
ThievingSix
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial