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. ...

Get VB Shell Programming now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.