Mám několik aplikací, které spolu chtějí komunikovat. Pro hromadnou komunikaci se jako ideální jeví memory-mapped file, protože ten vidí všichni stejně. Jenže občas potřebuju i komunikaci 1:1, a na to se mi MMF nelíbí. Tak jsem si myslel, že si případně mohla do toho společného MMF každá aplikace zapsat do nějakého pole handle svého hlavního okna (a při skončení tohle handle nahradit INVALID_HANDLE_VALUE, aby se poznalo, že s touhle aplikací už se komunikovat nemá). Zájemce o komunikaci by si z pole vytáhl handle adresáta a poslal mu běžnou zprávu (PostMessage, SendMessage).
Jenže mě napadá, a jak to bude fungovat, když část aplikací bude 32bitová a část 64bitová? Já samozřejmě to pole můžu udělat s 64bitovými položkami, takže se mi tam vejdou handly obou typů aplikací, jenže co si počne 32bitová aplikace s 64bitovým handlem (když pro PostMessage bude muset mít 32bitový handle) a naopak?
A když to rozšířím, dejme tomu, že nějak vyřeším získání handle okna. Když dojde na lámání chleba a já budu chtít poslat zprávu, tak narazím na to, že i wParam a lParam jsou jinak velké. Když pošlu zprávu z 32bitové aplikace do 64bitové, tak mi to systém, předpokládám, doplní nulami, takže o nic nejde, ale co se stane, když pošlu zprávu z 64bitové aplikace do 32bitové? To to systém ořízne, nebo poslání zprávy selže, nebo jak se s tím systém vypořádá?