Useful Managers v1.0


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

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

2. Please edit  UsefulManagers.reg if you have such constructs

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

The solution is: select a word and run <Find tag> method – that’s

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

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

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

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

More by Author

Must Read