While rewriting one of my DLL's, I thought about how great it would be if there were a mIRC API. For example, mIRC would export a fixed set of symbols to a DLL upon load, such as in LoadDll. This would allow the DLL to introduce new commands and identifiers, and also read data that would otherwise require SendMessage and $identifier calls. Additionally, I think the API should have the ability to introduce new event triggers. An example of this would be 'ON @*:MASSNICK:#:{}.' This would allow DLLs to handle things much quicker, and would allow a DLL to interact with mIRC as though the DLL were a plugin. In the end, I would want it to be possible for a DLL to act as if it were statically linked with the major functions and data extern'd.

Acquire. Analyze. Adapt.