mIRC only knows how to make use of DLLs that were written for it; the functions need to have a specific function header and take a specific number of parameters (see /help DLL Support). That said, given any DLL that was *not* written for mIRC, it's relatively easy to write a wrapper function to make it usable in mIRC.
Keep in mind though, that a dll written for another program probably won't do much for mIRC, unless the functions it provides aren't coupled to the program it was written for. For example, a DLL for MSN that takes care of theming the message windows will be utterly useless in the context of mIRC- it's very much specific to the application. Of course, if another DLL had a function gettime() which retrieved the accurate time of day from an up-to-date NTP server for the application, this uncoupled (independent) function could be easily used (with a wrapper).. Of course again, if the gettime() function was implemented to send messages directly back to the application in some specific way (a MessageBox, for instance, or filling in a dialog box or table) instead of returning the raw value, this would render it a pretty useless function to use with mIRC, so you can see how not just any DLL is right for the job.