Adding toolbar buttons the the mIRC toolbar could probably be done through a DLL if mIRC doesn't owner draw it himself. If I recall, someone already attempted that and failed to achieve it. The best way has always been to replace mIRC's Toolbar with your own.

Now with the subject of DLLs, the main problem is anybody is able to take the source from someone else to make their own. but when you have many DLLs that touch the same subject, conflicts arise because people that build them for themselves are very narrowminded in thinking that other people won't add over it. A simple example is subclassing windows, most DLLs that do the work don't release windows properly and you see the inevitable "crash" on exit or on unload. The windows API lets multiple subclassing occur and if everyone releases peoperly there shouldn't be a problem. The other problem that arises in subclasing is that it's a chain, the last one sublassing being the first one called. If this DLL blocks the API message from being sent down the chain to the other windows, you have lost some functionality in the other DLLs. It's all a matter of order in this case.

I love extending mIRC's possibilities with DLLs as most of my recent projects involve mIRC DLLs but I can't commit to have all my DLLs be compatible with all the other existing ones especially when those don't respect basic API procedures (and trying to be compatible with every each and one would be a nightmare). I tend to try to make my own compatible to themselves for a start.