Shoutbox

How is MsgPlus made? - Printable Version

-Shoutbox (https://shoutbox.menthix.net)
+-- Forum: MsgHelp Archive (/forumdisplay.php?fid=58)
+--- Forum: Skype & Technology (/forumdisplay.php?fid=9)
+---- Forum: Tech Talk (/forumdisplay.php?fid=17)
+----- Thread: How is MsgPlus made? (/showthread.php?tid=68779)

How is MsgPlus made? by sljaxon on 11-23-2006 at 03:14 PM

8-| : Exactly how was MsgPlus programmed? Say I wanted to make a AIM or Yahoo 'messenger plus', how would I do it?


RE: How is MsgPlus made? by aNILEator on 11-23-2006 at 04:09 PM

get some sticky back plastic tape, pen, paper and blue tack not forgetting that all elusive washing up bottle.

1. Tape paper to bottle
2. Put blue tack ball on top of bottle neck
3. Draw a sad face on blue tack with pen
4. Write I need to learn about computers and their programming languages on the paper

Bonus points for making the bottle have arms appearing to hold the paper sign
Ultra high score for making the bottle man an emo

Msgplus is coded in C++ which is a computer programming language other languages for example are VB and ASM

If you wanted to make an addon for a different client you would need to learn how to code in one of these languages C++ is very popular however most people start with VB and scripts.

(*)


RE: How is MsgPlus made? by MeEtc on 11-23-2006 at 07:18 PM

Coding a program like this requires that you know the Windows API (application programming interface) and MSN's API. This API allows your code to communicate with whatever program you are trying to make a plugin for.


RE: How is MsgPlus made? by Plik on 11-23-2006 at 07:30 PM

quote:
Originally posted by MeEtc
Coding a program like this requires that you know the Windows API (application programming interface) and MSN's API. This API allows your code to communicate with whatever program you are trying to make a plugin for.
Ontop of this, plus uses low level hooking to interface with messenger in ways the APIs wouldn't permit.
RE: How is MsgPlus made? by CookieRevised on 11-24-2006 at 04:19 AM

quote:
Originally posted by sljaxon
8-| : Exactly how was MsgPlus programmed? Say I wanted to make a AIM or Yahoo 'messenger plus', how would I do it?
As people have said, for starters you need to learn a programming language which is capable of doing what you want. This means a programming language of the third (eg: C++) or fourth generation (eg: VB, C#).

In general, the lower you go, the more powerfull a language will be, but quite often (but not by definition) the harder it will be to learn.

Depending on what you exactly want, you need to know how hooking, subclassing, superclassing, etc works and how to do it on the program you want to write an extension for. It speaks for its own that you also need to be experienced in Windows APIs and how programming generally works and what make programs tick.

All in all, you need to be a somewhat experienced programmer to make such things.

quote:
Originally posted by aNILEator
Msgplus is coded in C++
One very small correction (to make it more accurate):

Messenger Plus! is not programmed in C++, but in Visual C++ (and since a long while a little bit of assembly too). Technically there is a small difference and they are not completely the same, just as Borland C++ is not the same as Ansi C++, but that's just nitpicking... ;)

Anyways,

For Messenger Plus! Live 4.50, Patchou used Visual Studio 2008 with Visual C++ 9.0.

History:
  • Messenger Plus! 1.00 was programmed in Visual Studio 6 with Visual C++ 6.0
  • From Messenger Plus! 1.20 onwards, he used Visual Studio 2002 with Visual C++ 7.0.
  • Starting from from Messenger Plus! 2.21.57a, he programmed in Visual Studio 2003 with Visual C++ 7.1.
  • While making a silent* bugfix update to Messenger Plus! 3.61.145, Patchou switched to Visual Studio 2005, Visual C++ 8.0.
  • During beta testing Messenger Plus! Live 4.40 (build 300 to be exact), Patchou updated once more, to the brand new Visual Studio 2008 with Visual C++ 9.0.


* silent updating means releasing an update without notifying everybody about it, and quite often involves keeping the version number the same.
RE: How is MsgPlus made? by sljaxon on 11-24-2006 at 06:00 PM

I am an experienced Visual C++ and C# developer with Visual Studio 2005, so I do know what I am doing. Messenger Plus is an astounding program - my compliments to Patchou.


RE: How is MsgPlus made? by CookieRevised on 11-24-2006 at 06:33 PM

quote:
Originally posted by sljaxon
I am an experienced Visual C++ and C# developer with Visual Studio 2005, so I do know what I am doing.
Ah, in that case, do some research in how hooking works and the many different types of hooking (if you don't know this already of course), and you're half way of making something like Plus!. The rest is imagination and making something which hasn't been done before.

For more programming oriented info and examples regarding Messenger, I'd suggest you roam the Fanatic Live (formally MSNFanatic) forums...

;)
RE: RE: How is MsgPlus made? by aNILEator on 11-24-2006 at 07:28 PM

quote:
Originally posted by sljaxon
I am an experienced Visual C++ and C# developer with Visual Studio 2005, so I do know what I am doing. Messenger Plus is an astounding program - my compliments to Patchou.



Ah oK sorry mate in case you felt offended by my comment, just most people who come on here know about as much as a shoe :P
RE: RE: RE: How is MsgPlus made? by sljaxon on 11-25-2006 at 01:44 PM

quote:
Originally posted by aNILEator
quote:
Originally posted by sljaxon
I am an experienced Visual C++ and C# developer with Visual Studio 2005, so I do know what I am doing. Messenger Plus is an astounding program - my compliments to Patchou.



Ah oK sorry mate in case you felt offended by my comment, just most people who come on here know about as much as a shoe :P


I understand - I was not offended by your comment. :D
RE: How is MsgPlus made? by vikke on 11-25-2006 at 03:19 PM

MessengerPlus! Live is a DLL. It loads itself into Messenger by a proxy dll (msimg32.dll). A proxy DLL is a copied DLL which redirects all calls to the real msimg32.dll in your System32 folder. If you put your proxy DLL in the Messenger it will gain more priority than the one in System32 so Messenger will load it, so when the proxy DLL is getting loaded, you simply load your own DLL, often via LoadLibrary.

Then it uses Win32 API's to hook like SetWindowHook etc. It does also hook APIs, you can find samples at www.pscode.com.
It's API hooking LoadResource, FindResource and SizeofResource to change the XML that Messegner parses. By that way it adds it button.

And it would help a lot programming MessengerPlus! if you knew ASM, you'll probably be needing it.

Hope I was helpful.
Vikke

[edit]Fixed some stuff[/edit]