Shoutbox

a question about C++ plugins. - Printable Version

-Shoutbox (https://shoutbox.menthix.net)
+-- Forum: MsgHelp Archive (/forumdisplay.php?fid=58)
+--- Forum: Messenger Plus! for Live Messenger (/forumdisplay.php?fid=4)
+---- Forum: Scripting (/forumdisplay.php?fid=39)
+----- Forum: Plug-Ins (/forumdisplay.php?fid=28)
+------ Thread: a question about C++ plugins. (/showthread.php?tid=50421)

a question about C++ plugins. by Ash_ on 09-12-2005 at 10:43 PM

do C++ plugins require any Strings entered into the Registry, or any other place that can determine it is the plugin?


if not how can Patchou tell that test1.dll is the plugin and test2.dll is a DLL require by test1.dll and is not a plugin.

thanks in advance?


RE: a question about C++ plugins. by Mnjul on 09-13-2005 at 01:54 AM

No it does not require a string.

To answer your "if Plus! can determine it" question, go to your...
HKCU\Software\Patchou\MsgPlus2\(YourEmail)\Preferences\Plugins and you'll see that all your dlls in Plugins directory are actually "read" by Plus!...My guess is Plus! will first try to load the DLL (and DllMain will be called or something), and if it sucessfully returns true, Plus! attempts to call Initialize, and so forth. If everything's fine, Plus! will recognize it as a Messenger Plus! plug-in. :)

Smart Patchou, isn't he? :P


RE: a question about C++ plugins. by Ash_ on 09-13-2005 at 05:48 AM

quote:
Originally posted by Mnjul
No it does not require a string.

To answer your "if Plus! can determine it" question, go to your...
HKCU\Software\Patchou\MsgPlus2\(YourEmail)\Preferences\Plugins and you'll see that all your dlls in Plugins directory are actually "read" by Plus!...My guess is Plus! will first try to load the DLL (and DllMain will be called or something), and if it sucessfully returns true, Plus! attempts to call Initialize, and so forth. If everything's fine, Plus! will recognize it as a Messenger Plus! plug-in. :)

Smart Patchou, isn't he? :P

lol yeh smart. but that means my program will take alot longer to code *sigh* thanks for your help though Mnjul :)
RE: RE: a question about C++ plugins. by segosa on 09-13-2005 at 06:11 AM

quote:
Originally posted by Mnjul
No it does not require a string.

To answer your "if Plus! can determine it" question, go to your...
HKCU\Software\Patchou\MsgPlus2\(YourEmail)\Preferences\Plugins and you'll see that all your dlls in Plugins directory are actually "read" by Plus!...My guess is Plus! will first try to load the DLL (and DllMain will be called or something), and if it sucessfully returns true, Plus! attempts to call Initialize, and so forth. If everything's fine, Plus! will recognize it as a Messenger Plus! plug-in. :)

Smart Patchou, isn't he? :P


I think he checks if Initialize() has been exported, and if so, calls it, and depending on the return value adds the plugin to the registry.
RE: a question about C++ plugins. by RaceProUK on 09-13-2005 at 09:59 AM

Actually, all DLLs are added to the Registry, but those that explort Initialize() are recorded as such, and Plus! doesn't attempt to load those that don't next time. And it's not just exporting Initialize(), it's exporting 'extern "C" __declspec(dllexport) BOOL __stdcall Initialize(DWORD nVersion, const char *sUserEmail, IDispatch *iMessengerObj)'.

Function signature is very important ;)