making changes to DimDimPublisher

  • light32

    light32 - 2007-10-23

    I need some help getting started making and testing changes to DimDimPublisher.dll.

    I've got all the code from CVS and built everything successfully. I just want to make small changes to the c++ code for DimDimpublisher.dll. I can rebuild dimdimpublisher.dll with my changes, but I can't figure out how to get either IE or firefox to use my new version of dimdimpublisher.dll. 

    What I have done is just to replace the dimdimpublisher.dll used by the browsers with my newly compiled version. When I try IE with my altered DLL, it keeps prompting to download the publisher from server (which would wipe out the altered one I just compiled). When I try Firefox, it crashes when it tries to access dimdim.

    So, there must be some procedure I'm missing to use my altered DLL. I'm not doing anything interesting to the c++ yet, I just added some MessageBoxes to see that my changed dll is being used before trying to alter much. Could someone either a) tell me how to get the altered dimdimpublisher.dll used by the browsers or b) point me at a document which details the steps I need to take after compiling a change to the dll so it is used by the browsers. 

    Thanks in advance!

    • Bharat Varma

      Bharat Varma - 2007-10-24


      Let me break down your requirements as I have understood them, into 2 parts - testing your changes to the publisher and deploying your changes as a plugin. In both cases, I will outline what I personally follow during development on the publisher.

      This is going to be a detailed mail, so have patience :)

      First some introduction on the layout of the publisher -:

      The publisher has 3 primary components (and equivalent vc++ projects) - AppBarHook (which rarely needs to be changed anymore), DimdimPublisher and DimdimPublisherUI. The last 2 projects contain most of the functionality.

      On top of these 3 components, there is a firefox plugin component called DimdimPublisherFFControl (which uses the Netscape API for plugins) and an internet explorer component DimdimPublisherIEControl (which is an ActiveX control)

      The others are just 3rd party dlls.

      Debugging or developing on the publisher -:

      1. Install the publisher corresponding to the version of the code that you have. You can check the version by going to DimdimPublisher/toolkit/dIncludes.h. You can also check your version by using  the included DimdimPublisherUITest project. Set it as 'Startup Project' and just run it. It should launch an application/desktop share which brings up an AppBar on the left side of the desktop. Click on the '?' mark icon and you should be able to see the version.

      2. Compile your code in release mode. When you do this, the activeX control gets registered by default, at the end of the compilation process. Note that in Vista, you need to run Visual Studio as an administrator for the control to get registered.

      3. From now on, you can use IE to test any changes. Simply close console on IE (because dlls are bound and the code won't link as long as the browser is up), make your changes in, compile, open console in IE and see your code running. That is all.

         If you uninstall your plugin and then clean your VS solution, your machine will be clean of IE publisher again.

      4. You can also use Firefox. But its slightly more tedious than in case of IE. Install the Firefox Plugin corresponding to the version of publisher code. The plugin is installed in %appdata%/mozilla/firefox/profiles/<randomlygenerateddirectory>/extensions/

          In this go to the plugins folder and replace the existing dlls with the dlls you have just compiled. You should be able to test your changes.

      Additional Tools:

      1. For testing Application or Desktop Share,  you can also use DimdimPublisherUITest project by modifying the corresponding streaming server urls in DimdimPublisherUITest.cpp file.

      2. In DimDimCodeBase/v2.0/Installers/DimDimPublisher Installers/Helpers directory, you should find some files called TestXPI.html, TestCAB.html etc.

        You can use TestXPI.html as a standalone page for the FF Plugin with some slight modifications w.r.t. version data in that file. Same goes for IE. You can use TestCAB.html

      3. Make sure the version of code you are working on and the version of plugins that are getting installed are the same.. i.e. dll versions etc. Otherwise, you might run into problems mentioned above.

      4. I would advise you to use VS2003 (in either XP or Vista) for development instead of VS2005. We have had some compatibility problems with code compiled on VS2005 which we are working on.

      Let me know if you need any more information.

      Bharat Varma

    • Bharat Varma

      Bharat Varma - 2007-10-24

      Sorry, in case I wasn't clear... For testing code in IE by just compiling source in VS, you would need to install the IE plugin for the version of code that you have.

      Bharat Varma

    • light32

      light32 - 2007-10-29

      thanks, I was having a rough time understanding the test and deployment of the publisher dll, but not it makes more sense and I can debug it. Thank you.


Log in to post a comment.

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

No, thanks