Возможно, компонент событийный и требует очередь сообщений, следовательно, без формы никуда.
Ну а если создавать форму, то создай цикл, в котором выбирай сообщения из очереди, обрабатывай их сам и/или отправляй дальше.
Тебе помогут:
Код:
BOOL PeekMessage( LPMSG lpMsg,
HWND hWnd,
UINT wMsgFilterMin,
UINT wMsgFilterMax,
UINT wRemoveMsg
);
LRESULT DispatchMessage( const MSG *lpmsg
);