Ok avrei altre domande.

A) Ho creato un menu' che vorrei fosse visualizzato quando faccio click destro sull'icona che esce. Ho quindi scritto

codice:
INT_PTR CALLBACK DialogProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	if (uMsg == WM_USER + 1100)
		if (lParam == WM_RBUTTONDOWN)
		{
			SetForegroundWindow(fakedialog);
			TrackPopupMenuEx(Menu,TPM_RIGHTALIGN,800,600,fakedialog,NULL);
		}

	return 0;
}
Con Menu un HMENU funzionante.

Altro problema, come gestire il ciclo dei messaggi?
L'applicazione fa praticamente un ciclo continuo fin quando non viene chiuso.
Ho quindi racchiuso nel WinMain un ciclo infinto while(true).
Dovendo fare sempre questo, dove inserire il ciclo dei messaggi?

Inizialmente ho messo questo alla fine del codice, poco prima di ricominciare il loop. Il guaio è che premendo col tasto destro mentre viene eseguito il codice mio, i messaggi non vengono (giustamente) processati. Vengono processati soltanto alla fine.

Altro problema, GetMessage sembra non ritornare finchè non gli arriva almeno 1 messaggio (anche se PeekMessage sembra essere la giusta soluzione).

Devo impostare il ciclo in un'altro thread? O sto (molto probabilmente) sbagliando tutto?