README.TXT
资源名称:MSDN_VC98.zip [点击查看]
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:4k
源码类别:
Windows编程
开发平台:
Visual C++
- Custom Command Extentions
- SUMMARY
- =======
- The Command.Ext sample demonstrates how to implement custom command extensions
- for the Microsoft Exchange Client. In particular, it demonstrates:
- - adding a menu command
- - adding a toolbar button
- - disabling/enabling the menu item and toolbar item depending what object
- is selected in the viewer
- - making MAPI calls from an extension
- - extending a command in the Main Viewer and the Search Viewer dialog
- - F1 response for context help on the menu item
- - Implementing custom Tooltip and Status Bar text
- The custom command displays the number of subfolders, read messages, and
- unread messages in a selected folder.
- MORE INFORMATION
- ================
- This sample requires Microsoft Windows NT 3.51 or Windows 95, the MAPI 1.0
- PDK, Microsoft Visual C++ version 2.0 (or later), and the Win32 SDK.
- To configure Microsoft Exchange to use the client extension, place the
- following REG_SZ entry in the system registry in
- HKEY_LOCAL_MACHINESoftwareMicrosoftExchangeClientExtensions:
- Sample Command Extension=4.0;c:<path>CMDEXT32.dll;1;01010000000000
- You can leave out an explicit path to CMDEXT32.DLL if it resides in a
- directory listed in the system PATH.
- Exchange client extensions are designed using OLE's Component Object Model.
- The client calls methods which are provided in the extension. In some
- calls to the extension interface, a pointer to a callback interface
- (IExchExtCallback) for the extension to call back into the Exchange client.
- For more information read "Extending the Microsoft Exchange Client" in the
- MAPI PDK documentation.
- This sample implements three interface objects: IExchExt, IExchExtCommands,
- and IExchExtUserEvents. To extend the command set of Exchange, it is
- necessary to provide implementations for IExchExt and IExchExtCommands.
- It is optional to provide implementation for IExchExtUserEvents. This sample
- implements IExchExtUserEvents to enable or disable the custom command,
- depending on what object the user is selecting in the Exchange main viewer.
- The menu item is always enabled in the Search Folder Dialog.
- The custom command is available in both the Main viewer and the Search
- Folder Dialog. The IExchExtCommands provides an interface for the client to
- display context help on the custom menu item and to display tooltip text and
- status window text. Select the custom menu item and press F1 to pop-up an
- About dialog box.
- This extension works in two different contexts, main viewer and search dialog.
- For each context an extension supports, a complete set of interface objects
- is created. In this sample, the MyExchExt, MyExchExtCommands and
- MyExchExtUserEvents objects are created once for the main viewer context and
- once for the search dialog. However, because there is only one
- implementation for all contexts, there is a context flag data member which
- indicates which context Exchange is calling from.
- A context in many cases corresponds to a user interface. For example, the
- search viewer is one context and the main viewer is another. QueryInterface
- is called for each IID for each context. In this example, QueryInterface is
- called each time for all IIDs in the main viewer context when
- Exchange first starts. QueryInterface is called again each time for all
- IIDs in the search viewer context. For each of the contexts, a unique pointer
- to the MyExchExtCommands and MyExchExtUserEvents objects is returned to
- Exchange in the QueryInterface call. Then when Exchange is calling
- DoCommands from the search viewer, it is calling the one using the interface
- pointer returned to it through QueryInterface in the search viewer context.
- And when Exchange is calling DoCommands from the main viewer, it is calling
- the one using the interface pointer returned to it through QueryInterface in
- the main viewer context.