O'Reilly logo

VB Shell Programming by J.P. Hamilton

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Practical Coding Examples

Writing a namespace extension is a pretty big undertaking, and most of the code in a namespace extension is specific to the extension itself. This is due to the fact that PIDLs are different for every extension. As it turns out, a majority of the code in a practical namespace extension involves managing a PIDL in one way or another. Therefore, we did things a little differently in this chapter: the example code for this chapter was not designed to be practical in any sense of the word. Rather, it was designed to be simple so we could focus on how to implement a namespace rather than have to wade through large volumes of proprietary code.

However, once you’ve worked through this generic example of implementing a namespace extension, you’ll want to take a careful look at the downloadable code samples, which contain two “real world” namespace extensions: RegSpace, which allows you to browse the keys and value entries of the registry as if they were part of the filesystem, and ROTSpace, which similarly presents the Running Object Table (ROT) as a part of the shell namespace.

RegSpace

The first is based on the RegView example (a namespace extension implemented in C++) in the MSDN library. As you might be able to guess from the name, this extension provides a view of the registry from within Explorer. The VB version of RegView, which we’ll call RegSpace, can be seen in action in Figure 11.9. RegSpace is an example of a namespace extension with a fairly complex hierarchy. ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required