Checking shell extensions using BoundsChecker.



How can use BoundsChecker to check a Windows shell extension? Whenever I open Explorer.exe in BoundsChecker it exits immediately without checking my control.


There are a number of steps you need to follow in order to do this with BoundsChecker. The reason you cannot open explorer.exe directly in BoundsChecker is that the Explorer process starts as soon as you log on to Windows -- before BoundsChecker is up and running.

[1] Close all programs on the Taskbar (not required but it is probably a good idea).

[1] Open explorer.exe in a standalone version of BoundsChecker.

[2] Select 'Shut Down' from the Start menu

[3] Press and HOLD the following key combination:  CTRL ALT SHIFT

[4] Select either "No" or "Cancel" from the Shutdown dialog (it depends what you have on your Shutdown Windows dialog which button(s) you will have--if you have 'No' choose it; if you have 'Cancel' but not 'No' choose 'Cancel'.)

[5] The shell will go down in the background but BoundsChecker will still be present on screen.

Devil Open the Program | Settings dialog and select the Modules and Files tab. Add your shell extension DLL (I assume it must be an in-proc server) via the Add Module button. UNCHECK the Explorer.exe since you are not interested in checking it. Source files should show up in the right pane if they are available. If you do not see them verify that:

a) the extension was built with full debug information (preferably in .pdb format)

b) the .pdb file, if used, is in the same directory as the extension.

[7] Hit F5 or choose Run from the Program menu; use your extension and BC will check the extension for errors.

Music When satisfied, do the following in Windows NT: open Task Manager and select End Process on explorer.exe until you see the shell disappear again and the words EXIT_PROCESS in the Program Transcript window in BoundsChecker.

For Windows 95/98:  hit CTRL ALT DELETE and then do an 'End Task' on Explorer. The 'Shut Down Windows' dialog may come up. If it does choose Cancel. A dialog box will come up saying that the Explorer process has stopped responding. Use the 'End Task' button here to kill the Explorer process. You should then see EXIT_PROCESS in the Program Results window.

[9] save the .bce file from the run, if desired.

[10] log off using CTRL ALT DELETE's Logoff button.

[11] Log back in.

You can also attach to Explorer using ImageFileExecutionOptions as discussed in the readme.txt (NT only). You must set it up to run on Explorer.exe, log off, and log back on for Explorer to come up in BoundsChecker. Then follow the above techinque(s) from step Devil onward.

Old KB# 12233
Comment List
Related Discussions