Useful Managers v1.0


Desktop-as-a-Service Designed for Any Cloud ? Nutanix Frame


Sample Image

Environment: VC6 SP3,Win98


The Useful managers Visual Studio add-in provides a number of workspace-related functions for C++ programs.

1) Tag indexing and search
  • Tag Manager window provides a graphical view of classes and parent/children relationships in the workspace and additional directories (MFC source for example). Can find by name declaration of class, struct, template, function, union, enum, typedefs, defines, externs, variables, members, file includes, interfaces and files.
  • One-click tag search: quickly finds declaration of selected tag (class, function, etc.) and positions cursor on it.
  • Automatic #include insertion. Automatically adds #include statement for header file with declaration of selected tag.
2) Window helpers
  • Window Manager presents much more convinient alternative to standard "Windows" dialog. Window list can be sorted by name, time, extension or directory. Grouped sorting is suppored, i.e. you can sort by one attribute withing groups sorted by another attribute.
  • Session Manager saves sets of opened windows, and allows to switch between saved sets.
  • Favorites Manager allows to quickly open files from a list of favorites.
  • Auto-save option saves files automatically when switching from Visual Studio to another application.
  • Header/source toggle button. Switches between .cpp or .c and .h. For .rc files switches between resource editor and text mode.
3) Build system
  • Quickly build selected projects of the workspace without checking dependencies and then run the program in one mouse click.
And thats all only in 112K dll.

Installing the Useful Managers

The process for installing the Useful Managers in the Visual Studio environment is described below.

1. Close all instances of Visual Studio.
2. Extract the UsefulManagers.dll and UsefulManagers.reg from the .ZIP file.
3. Double-click on UsefulManagers.reg file and answer "Yes".
4. Copy the UsefulManagers.dll to your DevStudio\SharedIDE\Addins directory (Visual Studio 97) or Microsoft Visual Studio\Common\MSDev98\Addins directory (Visual Studio 6.0).
5. Open Visual Studio.
6. Go to Tools->Customize->Add-ins and Macro Files.
7. Click the check on Useful Managers Addin.
8. Click Close.

Using Useful Managers


   You can set size and position of all resizeable windows from add-in and they will be saved automaticaly.
   Use options dialog to customize preferences for add-in.

Tags Manager

1. Run <Update> method to build tags database (ESC to cancel). The database will be placed in tags.dat file in the same directory as the workspace.
There are two directories for recursive search: directory of your workspace (if any opened) and additional directory which you can choose (for example C:\DevStudio\MFC)
2. Please edit  UsefulManagers.reg if you have such constructs as
class EXPORT MyObject
and yould like to skip EXPORT tag.
2. In tree view you will see parents and children of selected class -> double-click on parent or children to go to it, or source lines with this tag -> double-click on them to open file at specified line.
3. double-click on class (struct) to open file with its declaration.

Note: There is a limit - 32000 tags of each type. So if you select additional directory C:\DevStudio, please do not find defines. Do you know that there are more than 70000 defines in DevStudio\Include\*.h?

 a) Which tags to find:
     class, enum, struct, and union names
     names defined by #define
     enumerators (enumerated values)
     function definitions, prototypes, and declarations
     variables (definitions and declarations)
     class, struct, and union members
     file names
 b) Files to search in:
   "headers" - *.h, *.hpp
   "sources" - *.cpp, *.c
 c) Additional Directory
 d) Update information:
   "manual" - only when you run <Update> method
   "auto" - when you try to use tags base for the first time after opening of Visual Studio.

Find tag

Our team has about 30 projects in one workspace. So I can't use browse info - it is too slow. And how can I find declaration of unknown for me class? Look for it in all 30 project - that is not for me and I think for you.
The solution is: select a word and run <Find tag> method - that's all.
You can run <Find tag> method without selection any word, you will see input dialog with text from clipboard in it. You can type your own word or part of it. Select "case-sensitive" option and "beginning" option - is it the beginning of what you want to find. Type "CO*Except" if you want to get this list:
You can use Unix-style (? * + . []  [^] \ $ () |) or Windows-style (? * ) regular expressions if you've forgot a name of your class.

  Unix-style or Windows-style regular expressions.
  What tags to find ("class","struct", "function","enum","enum const","union","define","interface","member","typedef","variable","extern", "file","include").

Session Manager

1. Open some files.
2. Run <Session Manager>.
3. Press insert key.
4. Rename session as you like.
Now you can close all your files, Run <Session Manager> and select your session (Enter or double-click) -> all that files will be opened.
Note: Nothing is closed when you select any session.


Run <Favorites> method.
You'll see list of your "favorite" files (empty at first).
Then you can add new file (active at this moment) using button "insert" or delete recent file by Del key.
Double-click (press "enter") on file to open it.

Insert Include

This method is useful when you get error message like this "D:\Project\File.cpp(33) error C2065: 'MyObject' : undeclared identifier".
I suggest you to:
a) Double-click on error string in debug window.
b) Select word MyObject.
c) Run <Insert Include> method.
As a result you will see new line "#include "Objects.h" in File.cpp.

Of course you can run <Insert Include> method before getting error and type "MyObject" in input dialog.

Build And Run

Select by double-click some projects in options dialog.
Then run <Build And Run> button. A new thread with high priority will be started which will build your projects and then try to run your program. This is useful when you often change files in one particular (not main) project.


Call "SaveAll" method of Visual Studio when switching to another task. Please be careful with this option, especially if you use something like VSS.

Toggle files

Header/source switching (*.cpp,*.c <-> *.h,*.hpp; *.rc resources mode -> text mode).

Windows Manager

Shows sortable list of windows (file name, directory, extension, last opened time).
Click on column to select sort method (it will be remembered). If you'll select directory column than the name of a file will be used for the second formation check.
You can use Ctrl+A, Del, Enter keys.

  You can remove columns with directory,extension,time.
  Close or not dialog immediately after selecting a file.

Special Thanks:

Anton Riabov for his comments and recommendations.


Download compiled add-in - 53 KB

This article was originally published on December 29th, 1999

Most Popular Programming Stories

More for Developers

RSS Feeds

Thanks for your registration, follow us on our social networks to keep up-to-date