It is sad that I have to do this, but here we go anyway... this is not an advertisement or endorsement for WinDiff... so don't get your panties all up in a bunch and start harping on what you like or don't like about WinDiff. This project can be easily tweaked to work with any program that takes two paths as command line arguments. I just picked WinDiff because my boss uses it, it is free, and it worked the way I needed it to.
WDCMX is a derivative of
CMDCMX, which I wrote way back in 1996. Everyone seems to like
CMDCMX, so I figured I would share
As a code example:
WDCMX demonstrates an MFC based shell extension implementation. In addition, uses of
GetOpenFileName() are included. A cool thing to check out is, how I use the
BrowseForFolder callback to make the the tree control pre-select a directory.
As a utility:
WDCMX allows you to select files (or folders) from within Explorer and pass them to WinDiff.
Using the Utility
Right-click on file and folder items from within Explorer, and select the 'WinDiff' menu item. The first item to compare is indicated by the item you right-clicked on. The second item is indicated by using the browse dialog presented to you after selecting the "WinDiff" menu item.
Using the Code
The current source archive provides a self-contained solution (WinDiffTool.sln) that includes four projects. From these four projects are built context menu handlers and dragdrop menu handlers that target WinDiff and WinMerge. Select either the Release or Debug targets, and build the solution. The deliverables are built into common "debug" and "release" directories off the base directory. You may want to change these outputs to the locations of the respective diff/merge tools for testing.
GetOpenFileName in wdcmx_menu.cpp to see an example of how they are used.
- Version 1.01
Posted on July 18, 2006 - MFC is linked static... the MFC redistributables are no longer required.
- Version 1.00 b
Posted on September 28, 2004 - Includes the drag and drop component suggested by Jean-Francois Larvoire.
- Version 1.00
Posted on September 16, 2004.
16yrs of GUI programming experience gained at: (most recent first) BlackBall, Veritas, Seagate Software, Arcada, Stac, Mountain, and Emerald Systems.
Tools: MS Visual Studio, MS Visual SourceSafe, CVS, PVCS, Bounds Checker, VMWare, ToDoList, InstallShield, and Office Applications
Libraries and API: RTL, STL, WIN32, MFC, ATL, .NET, ActiveX, DirectX, COM, DCOM, Shell Extensions, and Shell Namespaces
Strengths: Honest, communicative, keen eye for usability, good at estimating workload and completion dates, ready to take on grunt work, team player, experienced working with QA, localization, Tech Pubs, Sales, and Marketing teams.