DLL's are less trustworthy than other methods. In fact, DLL's are untrustworthy if they're compiled already. And while all your users have Windows, and C compilers are free, not everyone has one, needs one, or knows how to use one; so DLL's are less useful if they're not compiled. Therefore it's difficult to share DLL's.

Trustworthy methods would be any IPC mechanism in a scripting language. It's not rare to find sockets in a scripting language library, but perhaps the ability to enter a GetMessage loop directly would be rare. So perhaps it might not be that widely applicable, but it doesn't seem that complicated either. Perhaps there are some hidden snarls in the source, and of course you can't just go adding every old thing.

DDE might seem more generic, but so long as the mIRC-side interface included the message number required by the other application, the difference is small and SendMessage is simpler for programming. Plus I was informed in a #mIRC channel that DDE is deprecated.

I'm not sure, but ISTM that SendMessage is a rather innovative mechanism. IIRC I haven't seen another application use it for IPC, and it would be nice if the capability were symmetrical for developing new applications.

Just out of curiosity, why must the contents file be memory mapped, and not use simple file read/write mechanisms?