mIRC Homepage
Posted By: Biggles Emoticon Support via DLL? - 20/10/04 06:17 PM
Obviously this not a thread about the pro's and cons of emoticons in mIRC.

Also this is not a thread requesting a C++ tutorial.

Though I am genuinly interested to hear from fellow mIRC DLL programmers, About how conceptuallly, I should approach the very complex task of adding emoticon support to mIRC via a DLL.

Obviously I do not want to override mIRCs features. If I was happy with a sloppy implementation i would use a custom window+NHTML or a pic window or something else.

I am wanting to develop true emoticon support with perfect integration - This means none of mIRC's display and scripting features are overriden or 'relocated'.
Posted By: MTec89 Re: Emoticon Support via DLL? - 20/10/04 06:46 PM
well i imagine that you need to use some kind of advanced edit box in place of mircs chat edit box (and not just the edit box where you type :P)
Posted By: Biggles Re: Emoticon Support via DLL? - 20/10/04 06:55 PM
Hello,

Thanks for your reply, But this is the kind of solution I would want to avoid. It would override just about every single display feature mIRC has. It's the easy and ugly way to do it.

What i am looking for is way of manipulating the existing control and drawing the images onto it. I am not interested in slapping another control over the top of it.

Yes I know how to sbuclass a window and intercept messages and work with ownerdrawn controls... Anybody who has attempted this would know it is not so simple.

If you don't care about preserving features and seamless integration then i guess it is all very easy. But I want to do this properly.

wink
Posted By: Soul_Eater Re: Emoticon Support via DLL? - 21/10/04 02:41 AM
you might be interested to know that mirc actually uses an advanced editbox. It's called a "richedit".

I make use of it in my DLL here:
http://www.mircscripts.org/comments.php?cid=2357

There are ways on how to use emoticsons at codeguru.com
Posted By: Chesso Re: Emoticon Support via DLL? - 21/10/04 02:54 AM
Putting emoti's in a RichEdit is easy ive done it ind elphi for smallc hat application but in this case all you really need is the handle to mIRC's richedit to smack it in their.
Posted By: Biggles Re: Emoticon Support via DLL? - 21/10/04 11:05 AM
Thanks for that guys,

Though, I'm not really interested in the box that you type in... I'm interested in manipulating the actual windows...

Chesso, Yep, Though khaled doesn't use a RichEdit for the channel windows, Only for the editbox - I'm not really interested in having images displayed there.
Posted By: Chesso Re: Emoticon Support via DLL? - 21/10/04 11:49 AM
Where do you want the images displayed?

Normal Editbox/memobox same thing really don't support ole objects but richedit's do like msn msgr uses except im sure they use their own custom made one.
Posted By: Biggles Re: Emoticon Support via DLL? - 21/10/04 01:33 PM
mIRC uses a custom drawn static control for channel windows etc, The images would have to be drawn on by the DLL along with the text.

This is where it get's tricky not to override mIRC's display and scripting features. And why a novel and unique approach is required, Which is really why I am asking here, I can't get my head around the best way to approach it. Infact I am starting to think this is not possible.

Posted By: Necroman Re: Emoticon Support via DLL? - 21/10/04 04:16 PM
Everything is possible and everything has its cost.

Let's suppose you've spent a year at reverse engineering and finally succeeded. Then a new version of mIRC gets released and breaks your brilliant hack completely. In fact, this has happened to many.

Your only realistic option is to convince Khaled to export some officially supported API to control channel windows. Basically, it would be a request to make mIRC modular - as other people will want another API to control the script editor (for advanced syntax highlighting), to control the UI (for internationalization), and so on.

Do you believe that it's likely to happen?

It appears to me that mIRC's monolithic architecture and development model are the primary reasons behind its sluggish progress.
Posted By: Chesso Re: Emoticon Support via DLL? - 22/10/04 02:46 AM
That sounds like a much better idea.
Posted By: oracel Re: Emoticon Support via DLL? - 02/11/04 12:51 AM
Take a look at imgmirc, which does exactly what you are talking about.
Posted By: Artwerks Re: Emoticon Support via DLL? - 05/11/04 02:33 AM
If you want to keep mIRC's display, and add emoticons to it, you can try out this addon by bub325 : Here. In order to make it work, you'll need to use a theme system you've coded, or a theme standard such as XTS or MTS.
Posted By: Artwerks Re: Emoticon Support via DLL? - 07/11/04 05:09 AM
Also, if you want to see what I'm currently coding, I joined an image of it. I coded this into html using tags for the rendering. It's using js to display the html code without reloading (with nHTML.dll modified by FoLKeN^).

Posted By: Soul_Eater Re: Emoticon Support via DLL? - 11/11/04 10:57 PM
it's been done. you need to learn how to search:



HTML Channel-Wrapper, using nhtmln.dll by me:
http://www.scriptsdb.org/comments.php?id=801

and a smiley viewer by Bub:
http://www.scriptsdb.org/comments.php?id=788

Its incredibly simple to do
Posted By: Biggles Re: Emoticon Support via DLL? - 12/11/04 04:28 AM
Quote:

It's been done. you need to learn how to search


No need to give me the attitude. I said quite clearly that I was not after a solution like that.

Anyway the imgmirc.dll solution provided by Oracel is the best solution for emoticons in mIRC, IMO. It fulfills all the criteria I outlined in my post, Thank you Oracel.

FYI: The imgmirc.dll uses a very clever IAT patching technique which patches the TextOut API. Pretty clever huh?
Posted By: Watchdog Re: Emoticon Support via DLL? - 12/11/04 12:00 PM
Souleater has always been a very welcoming chap.
Posted By: SplitFire Re: Emoticon Support via DLL? - 04/09/07 08:02 AM
an old MSN thingie of mine, uses SmiliesView.dll:

Posted By: The_JD Re: Emoticon Support via DLL? - 11/02/08 03:58 PM
I had something very similar... I think eXonyte is working on the same kind of thing using nHTLMn with execscript support.

I think the best option here would be to try and convince khaled to use richedit for the main mIRC window. wink

Edit: Just requested in feature suggestions!
© mIRC Discussion Forums