Re: .Net Exodus plugins

Daniel Chandran <[email protected]> Fri, 16 Dec 2005 12:55:45 -0500
Newsgroups gmane.network.jabber.exodus.user
Message-ID <[email protected]>
I downloaded http://exodus.jabberstudio.org/exodus-src.zip, and the .Net
plugin now appears in the Exodus -> Options -> Plugins section.

In the new version, I don't see any dependancy on components\zipmaster\vcl,
was this removed in the new version?

Thanks,
daniel

On 12/16/05, Daniel Chandran <[email protected]> wrote:
>
> That's probably correct.  Has there been changes to the tree since May
> 2005?  Due to firewall restrictions at my company, I cannot work with SVN.
> Is http://exodus.jabberstudio.org/exodus-src.zip updated daily?
>
> Thanks,
> daniel
>
> On 12/15/05, Peter Millard <me-STcBuFROdrv2eFz/[email protected]> wrote:
> >
> > This is a message for Joe, I'm just relaying it to the list for him:
> >
> > ----------------------------------------------------------------------------
> > It sounds like you don't have the head of SVN.
> >
> > You shouldn't have to modify your exodus.xml file by hand any more;
> > instead the registry entries that get added should be sufficient.
> > That would also cause the plugin not to show up in the plugin list.
> >
> > On Dec 15, 2005, at 8:27 AM, Daniel Chandran wrote:
> >
> > > Thanks for the example Joe.  I tested it out and works fine.
> > >
> > > Here are the steps I went through, it's a revised list originally sent
> > by
> > > Prasad.
> > >
> > > 1. I use Visual Studio .NET 2003, so things like regasm happen
> > automatically
> > > with the correct project settings.
> > > 2. Create a project of type ClassLibrary. In your Project ->
> > <yourproject>
> > > Properties -> Configuration Properties, set "Register for Com Interop"
> > to
> > > true.
> > > 3. Add Exodus.cs base class to your project.
> > > 4. In Project -> Add Reference  Dialog box, add Exodus.exe as library
> > in the
> > > COM components.
> > > 5. Implement your class derived from Exodus.BasePlugin, and add your
> > > override methods.
> > > 6. Build, and put you plugin.dll and Interop.ExodusCOM.dll in whatever
> > > location you prefer.  As Joe. H suggestion for now don't put in the
> > Exodus
> > > plugins directory(??).
> > > 7. Manually modify your exodus.xml file and your progid to
> > plugin_selected
> > > section, and the path to your plugin dll in the plugin_files
> > section.  If
> > > you are try Joe's example  the progid will ClassLibrary2.Class.
> > > 8 Start Exodus, if you start a new chat you will see the IP addr put
> > by the
> > > plugin in your chat window.
> > >
> > > Some questions.
> > > 1.  The example plugin works fine,  but it does not show up in the
> > Options
> > > -> Plugins section in Exodus.
> > > 2. What's the correct way to implment the IExodusChatPlugin?
> > >
> > > Thanks,
> > > Daniel G. Chandran
> > >
> > > On 12/15/05, Joe Hildebrand < joe-bvCY4hpNeH/[email protected]> wrote:
> > >>
> > >> Sorry this took so long.
> > >> Class1 is an example, and Exodus.cs has the base class.
> > >>
> > >>
> > >>
> > >>
> > >> Again, don't put the .dll in the plugins directory for now.
> > >>
> > >> On Dec 9, 2005, at 11:15 AM, Daniel Chandran wrote:
> > >>
> > >>> Could Joe H. or somebody who is an expert an COM - .Net Interop
> > >>> outline the exact steps to follow for Exodus to recognize the
> > >>> plugins written in .NET?
> > >>>
> > >>> I am using Visual Studio, so it automatically does the regasm, and
> > >>> I see the plugin listed in the registry under
> > HKEY_CLASSES_ROOT\CLSID.
> > >>>
> > >>> VS generates two assemblies Interop.ExodusCOM.dll and MyPlugin.dll.
> > >>> I put both of them in C:\Program Files\Exodus\Plugins.  Exodus does
> > >>> not recognize my plugin.  I did a TlbExp on MyPlugin.dll.  After
> > >>> that Exodus recogizes the MyPlugin,  but on attempting to load,
> > >>> complains that it's not a valid Windows Image!!
> > >>>
> > >>> Any help is greatly appreciated.
> > >>>
> > >>> Thanks,
> > >>> Daniel Chandran
> > >>>
> > >>> On 12/9/05, Durga Prasad <dprasad_114-/[email protected] > wrote:
> > >>> hi,
> > >>>
> > >>> Thanks your very much for your reply.  Your information helps a lot
> > >>> to develops plugins accurately for Windows environment.  I still
> > >>> have doubts on custom plugin interaction  of Exodus.  I ll post it
> > >>> in the near time.
> > >>>
> > >>> Would you send your .NET base class that will register
> > >>> automatically to windows registry?
> > >>>
> > >>> thanks,
> > >>> Durga Prasad T
> > >>>
> > >>>
> > >>> [email protected] wrote: Send Exodus mailing list
> > >>> submissions to
> > >>> [email protected]
> > >>>
> > >>> To subscribe or unsubscribe via the World Wide Web, visit
> > >>> http://mail.jabber.org/mailman/listinfo/exodus
> > >>> or, via email, send a message with subject or body 'help' to
> > >>> [email protected]
> > >>>
> > >>> You can reach the person managing the list at
> > >>> [email protected]
> > >>>
> > >>> When replying, please edit your Subject line so it is more specific
> > >>> than "Re: Contents of Exodus digest..."
> > >>> Today's Topics:
> > >>>
> > >>> 1. Re: Help in Exodus Plugin creation in C# (Joe Hildebrand)
> > >>> From: Joe Hildebrand < joe-bvCY4hpNeH/[email protected]>
> > >>> To: Discussion list for all things <[email protected]>
> > >>> Date: Sun, 27 Nov 2005 17:13:07 -0700
> > >>> Subject: Re: [Exodus] Help in Exodus Plugin creation in C#
> > >>>
> > >>> If you use the head of subversion, you'll find this a *lot* easier.
> > >>> Here is the procedure:
> > >>>
> > >>> - Put your .dll anywhere. Eventually, if you put it in Exodus/
> > >>> plugins/net or something, this will get more automated, but for the
> > >>> moment it doesn't matter
> > >>> - Make sure to call regasm on the .dll
> > >>> - Put a registry value at HKCU\Software\Jabber\Exodus\Plugins whose
> > >>> name is the progid of your control, and whose value is a string that
> > >>> describes the plugin.
> > >>> - If you don't have the head of SVN, edit your preference file, and
> > >>> add your progid to the plugin_selected preference. It's a
> > >>> stringList, so each item has an around it.
> > >>> - If you *do* have the head of SVN, your plugin will just show up in
> > >>> the list and can be selected.
> > >>>
> > >>> You'll no longer have to try to get the .TLB into the .dll, which is
> >
> > >>> nice. The downside is that you'll have to figure out (for the
> > >>> moment) how to get your users to call regasm on your .dll to install
> > >>> it. Eventually I'll figure out how to determine which CLR version
> > >>> you compiled with, find the correct version of regasm, and run it
> > >>> automatically.
> > >>>
> > >>> I've also got a .Net base class that does all of the registry stuff
> > >>> automatically. I'll try to remember to post it when I'm back in the
> > >>> office on Monday.
> > >>>
> > >>> On Nov 22, 2005, at 8:19 PM, Durga Prasad wrote:
> > >>>
> > >>>> hi All,
> > >>>>
> > >>>> I want to write a Plugin for Exodus Client using C#. For testing
> > >>>> purpose, I wrote main class which implements IExodusPlugin
> > >>>> interface that will add a Menu Item if the user clicks on a Roster
> > >>>> name.
> > >>>>
> > >>>> The following is the structure of the Main Class ::
> > >>>>
> > >>>> using System;
> > >>>> using System.Runtime.InteropServices;
> > >>>>
> > >>>> namespace ExodusPluginTesting
> > >>>> {
> > >>>> ///
> > >>>> /// Summary description for Class1.
> > >>>> ///
> > >>>>
> > >>>> [ Guid("E10C6CDE-8D8B-46c2-AE85-0185039E9958") ]
> > >>>> [ClassInterface( ClassInterfaceType.AutoDual )]
> > >>>> public class ExodusPluginTesting : Exodus.IExodusPlugin
> > >>>> {
> > >>>> public string ID = "";
> > >>>> Exodus.ExodusController exodusController;
> > >>>>
> > >>>> public void Startup(Exodus.ExodusController exController)
> > >>>> {
> > >>>> string s = "This is my Plugin";
> > >>>> exodusController =
> > >>>> ( Exodus.ExodusController) exController;
> > >>>> ID = exodusController.addContactMenu(s);
> > >>>> }
> > >>>>
> > >>>> public void Shutdown()
> > >>>> {
> > >>>> exodusController.removeContactMenu(ID);
> > >>>> exodusController = null;
> > >>>> }
> > >>>>
> > >>>> public void Process(string xpath, string eventRaised,
> > >>>> string xmlObject)
> > >>>> {
> > >>>> }
> > >>>>
> > >>>> public void NewChat(string jID, Exodus.ExodusChat exodusChat)
> > >>>> {
> > >>>> }
> > >>>>
> > >>>> public void NewRoom(string jID, Exodus.ExodusChat Room)
> > >>>> {
> > >>>> }
> > >>>>
> > >>>> public string NewIM(string jID, ref string body, ref
> > >>>> string subject, string xTags)
> > >>>> {
> > >>>> string k = " " ;
> > >>>> return (k);
> > >>>> }
> > >>>>
> > >>>> public void Configure()
> > >>>> {
> > >>>> }
> > >>>>
> > >>>> public void MenuClick(string ID)
> > >>>> {
> > >>>> }
> > >>>>
> > >>>> public void MsgMenuClick(string ID,string jID, ref string
> > >>>> body,ref string subject)
> > >>>> {
> > >>>> }
> > >>>>
> > >>>> public void NewOutgoingIM(string jID, Exodus.ExodusChat
> > >>>> instantMSG)
> > >>>> {
> > >>>> }
> > >>>> }
> > >>>> }
> > >>>>
> > >>>>
> > >>>> I converted "Exodus.tlb" to "Exodus.dll" using "tlbImp.exe" tool.
> > >>>> And I included this 'Exodus.dll ' in my code to import the
> > >>>> "IExodusPlugin" interface structure into the Main Class
> > >>>> (ExodusPluginTesting()).
> > >>>> I built the solution (with Component Registry). THE OUTPUT files I
> > >>>> got is "ExodusPluginTesting.dll" and "ExodusPluginTesting.tlb".
> > >>>>
> > >>>>
> > >>>> Then I placed the 'ExodusPluginTesting.dll' file in "C:\Program
> > >>>> Files\Exodus\Plugins" directory. I started Exodus client. But I
> > >>>> didn't view the PLUGIN in the LIST. I tried several builds and
> > >>>> placed it in PLUGINS directory, still, I didn't find it in the
> > list.
> > >>>>
> > >>>>
> > >>>> Is my Interface implementation correct or shall I need to declare
> > >>>> the interface structure also (without using Exodus.dll).
> > >>>>
> > >>>> Can anybody help me in this aspect what procedure to follow to
> > >>>> create .DLL Plugin for EXODUS.
> > >>>>
> > >>>>
> > >>>>
> > >>>> Thanks,
> > >>>> Durga Prsad T
> > >>>>
> > >>>> Win a Yahoo! Vespa NEW - Yahoo! Cars has 3 Vespa LX125s to be won
> > >>>> Enter Now!
> > >>>> _______________________________________________
> > >>>> Exodus mailing list
> > >>>> [email protected]
> > >>>> http://mail.jabber.org/mailman/listinfo/exodus
> > >>>
> > >>> _______________________________________________
> > >>> Exodus mailing list
> > >>> [email protected]
> > >>> http://mail.jabber.org/mailman/listinfo/exodus
> > >>>
> > >>>
> > >>> Yahoo! Messenger NEW - crystal clear PC to PC calling worldwide
> > >>> with voicemail
> > >>>
> > >>>
> > >>> _______________________________________________
> > >>> Exodus mailing list
> > >>> [email protected]
> > >>> http://mail.jabber.org/mailman/listinfo/exodus
> > >>>
> > >>>
> > >>>
> > >>> _______________________________________________
> > >>> Exodus mailing list
> > >>> [email protected]
> > >>> http://mail.jabber.org/mailman/listinfo/exodus
> > >>
> > >>
> > >>
> > >> _______________________________________________
> > >> Exodus mailing list
> > >> [email protected]
> > >> http://mail.jabber.org/mailman/listinfo/exodus
> > >>
> > >>
> > >>
> > >>
> > >
> > >
> > >
> > >
> > >> _______________________________________________
> > >> Exodus mailing list
> > >> [email protected]
> > >> http://mail.jabber.org/mailman/listinfo/exodus
> >
> > _______________________________________________
> > Exodus mailing list
> > [email protected]
> > http://mail.jabber.org/mailman/listinfo/exodus
> >
>
>

_______________________________________________
Exodus mailing list
[email protected]
http://mail.jabber.org/mailman/listinfo/exodus