While updating my DLL to work with 7.1, I noticed that the topics "DLL Support" and (especially) "SendMessage" are not as precise as they probably should be.
DLL Support includes the new LOADINFO.mUnicode switch, but it should probably also contain notes about function signatures in combination with it.
mUnicode = false should have
int __stdcall procname(HWND mWnd, HWND aWnd, char *data, char *parms, BOOL show, BOOL nopause)
as the docs describe.
However,
mUnicode = true makes more sense with
int __stdcall procname(HWND mWnd, HWND aWnd, wchar_t *data, wchar_t *parms, BOOL show, BOOL nopause)
Mixing signatures with mUnicode will most likely result in incomplete and/or garbled text (unicode in char* clips after the first char, single-byte in wchar_t* looks probably off).
SendMessage is the one i stumbled over after dealing with the problems above: The mapped file must still written to in single-byte, regardless of mUnicode!
Even now when both mIRC 7.1 and my DLL are compiled as unicode apps, that part uses plain char* stuff to send commands around - otherwise mIRC seems to completely ignore it. Bug or intended?