html
iphone
css
c
ajax
python
database
android
mysql
objective-c
multithreading
flash
html5
json
perl
tsql
delphi
apache
mvc
dom
My understanding is that Firemonkey is not based on traditional windows, so sending window messages to Firemonkey controls is not usually an option. Although some controls do use windows (most notibly, TCommonCustomForm), so you can use the FmxHandleToHWND() function in the FMX.Platform.Win unit to extract an HWND from a TFmxHandle when needed. I have no clue how to receive and custom process window messages in FMX controls, if that is even possible.
TCommonCustomForm
FmxHandleToHWND()
FMX.Platform.Win
HWND
TFmxHandle
Firemonkey under Windows has access to the Win32 API, so there should be nothing stopping you from sending window messages to other windowed controls, such as your VCL UI. Include the Winapi.Windows unit in your uses clause to access Win32 API functions, just like you would in a VCL application.
Winapi.Windows
uses
Currently, FireMonkey doesn't have a message handler that you can use to send and post messages.
There is a possibility of hooking things up using listeners like FireMonkey works internally, but none of it is documented.
So, instead, here's what I've done:
I created my own custom "message" class. I create instances of the class and add them to a thread-safe list from any thread I need to. On the main thread, I have a timer that checks the list and processes the "messages".
Thanks for the answers guys! It clarified a few things regarding how i should go about it in future. However, i just recalled that the "Atom" functions from WinApi.Windows would be perfect for what i'm trying to achieve being that they're very simple and i've absolutely no need to be sending masses of data between applications (as WM_COPYDATA would be more suitable in those situations).