Как все это работает.

Сервер раздает ihab'ы и hwnd - индексы ниток и окон.

Окна получают сообщения.

Сообщения получаются либо из очередей, привязанных к ihab, либо напрямую,

есле они send из той же нитки, либо ненапрямую, но без помещения вочередь,

если они send из другой нитки процесса. Ненапрямую - значит оно вызывает процедуру

окна внутри WinGetMsg.

Если сообщение посылается другому процессу, оно посылается через сервер.

Если send - то ждется, если post, то пихается в очередь процесса, опять-таки внутрях WinGetMsg

Сервер по запросу клиента F_CMD_GET_IHAB выдает свободный ihab, и clientId

Как писать программы:

Берется исходник для PM. Исправляются инклуды с os2.h на F_OS2.hpp

и дефайны с INCL_DOS, INCL_WIN на F_INCL_DOS, F_INCL_WIN добавляется #include “PM_FPM.h” и добавляем в проект клиентские библиотеки FreePM.

Обратная совместимость.

Чтоб программа для FreePM могла работать под PM и чтоб не менять все вызовы

F_xxx на WinXXX или GpiXXX добавляем в проект файл \FreePM\lib\PMcompat\PM_api.cpp