Creating a Property Sheet Handler

In this chapter, we will create a property sheet extension that will allow us to modify every aspect of a .rad file: animal type, gender, color, age, weight, and noise. The property sheet we will create is shown in Figure 6.3.

RAD property sheet

Figure 6-3. RAD property sheet

Implementing IShellExtInit

We will continue to use the RadEx project. But the first thing we need to do is to add the clsDropFiles class to the project (See Example 6.1). This class will handle the implementation of IShellExtInit. If you look at the class listing, you will see that it contains the code that was used previously in our implementation of IShellExtInit (see Chapter 4). The code is very generic. In fact, we will reuse the clsDropFiles class when we discuss drop handlers in Chapter 8.

After clsDropFiles has been included in the project, we need to add another class to the project called clsPropSheet. This class will contain everything necessary to implement a property sheet handler. Once this has been done, we can implement IShellExtInit in the clsPropSheet class module as follows:

'clsPropSheet Option Explicit Implements IShellExtInit Implements IShellPropSheetExt Private m_clsDropFiles As clsDropFiles Private Sub IShellExtInit_Initialize( _ ByVal pidlFolder As VBShellLib.LPCITEMIDLIST, _ ByVal pDataObj As VBShellLib.IDataObject, _ ByVal hKeyProgID As VBShellLib.HKEY) Set m_clsDropFiles ...

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.