Zacznijmy od tego, że ten konkretny hook nie powinien zwracać nic poza 0 i 1, szczęśliwie się skłąda,ze BMD_OK to zero, zwrocenie czegokolwiek innego wyrzuci wiadomość do "/dev/null". Stałe BMD są używane w hooku BeforeMessageDisplay.
wsprintf(_f, L"%s/%d/%s", msg->contactData.netID, 1, WTW_PF_MESSAGE_SEND);
to powinno być:
wsprintf(_f, L"%s/%d/%s", msg->contactData.netID, msg->contactData.netSID, WTW_PF_MESSAGE_SEND);
i ustaw w msg:
(pMsg->msgFlags |= WTW_MESSAGE_FLAG_OUTGOING) &= ~WTW_MESSAGE_FLAG_INCOMING;
tylko wczesniej zrob kopię 'msg' i na niej operuj.