C ++ Builder XE, paso y manejo de mensajes definidos por el usuario

Estoy tratando de aprender cómo pasar y manejar mensajes en una aplicación de formularios VCL. He estado cavando en internet por un tiempo y encontréesta

Supongamos que tengo una barra de progreso que quiero actualizar usando mensajes (por cierto, si hay alguna otra forma mejor, estoy ansioso por escucharlo) Así que hice un proyecto simple para probar las cosas y esto es lo que tengo (RECEPTOR es el nombre de un con la barra de progreso, SENDER es un botón que se usa para enviar mensajes, updBar es una función para actualizar la barra de progreso y 123456 es un ID de mensaje que quiero usar): Unit1.cpp:

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TRECIEVER *RECIEVER;
//---------------------------------------------------------------------------
__fastcall TRECIEVER::TRECIEVER(TComponent* Owner)
    : TForm(Owner)
{
}
void __fastcall TRECIEVER::barUPD(TMessage& msg){
    BAR->StepIt();
}
//---------------------------------------------------------------------------
void __fastcall TRECIEVER::SENDERClick(TObject *Sender)
{
//BAR->StepIt();
PostMessage(FindWindow(0,(wchar_t*)"RECIEVER"),123456,0,0);
}

Unit1.h:

#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <System.Classes.hpp>
#include <Vcl.Controls.hpp>
#include <Vcl.StdCtrls.hpp>
#include <Vcl.Forms.hpp>
#include <Vcl.ComCtrls.hpp>
//---------------------------------------------------------------------------
class TRECIEVER : public TForm
{
__published:    // IDE-managed Components
    TButton *SENDER;
    TProgressBar *BAR;
    void __fastcall SENDERClick(TObject *Sender);
private:    // User declarations
public:     // User declarations
    void __fastcall barUPD(TMessage& msg);
    __fastcall TRECIEVER(TComponent* Owner);
    BEGIN_MESSAGE_MAP
    MESSAGE_HANDLER(123456,TMessage,barUPD);
    END_MESSAGE_MAP(TForm)
};
//---------------------------------------------------------------------------
extern PACKAGE TRECIEVER *RECIEVER;
//---------------------------------------------------------------------------
#endif

Como puede ver, he definido tanto la función de manejo como el controlador de mensajes apropiado para mi mensaje. Pero cuando lo veo a través del depurador (después de enviar el mensaje con el botón), el punto de ejecución nunca parece ir a mi función ni a la línea del controlador. Gracias por adelantado