Microsoft Chat Server Development Guide

Supporting Property Pages

Developing a property page for your extension requires that your extension support a few additional components and interfaces. In Visual Basic, property pages are most easily added using a separate ActiveX® control (OCX). In C++, it is simpler to add the ISpecifyPropertyPages to your extension itself.

When the Chat Service Manager queries your extension for property pages by calling IChatExtensionCallback::OnGetPropertyPageClass, your extension should return the CLSID (or ProgId) of a component that implements the ISpecifyPropertyPages interface. This CLSID may be a separate component, or the CLSID of the extension.

The Chat Service Manager then calls the primary method of ISpecifyPropertyPages, GetPages, to retrieve and display your property pages. The GetPages method returns an array of CLSIDs for each property page that your component supports. In Visual Basic, the OCX that you create inherently supports the ISpecifyPropertyPages interface. In C++, you must add this support to your extension by hand.

Finally, the Chat Service Manager passes a reference to the ChatServer object using the selected controls mechanism employed by property pages. In Visual Basic this reference can be retrieved from the global collection variable, SelectedControls. In C++, the reference is passed in the property page class member variable, m_ppUnk.

The following checklist summarizes the steps needed to support property pages for your extension:

For examples of extensions that implement property pages, refer to the ChannelBlock, LogMonitor, and MsgFilter samples.


© 1998 Microsoft Corporation. All rights reserved.