You are previewing Programming Microsoft® Outlook® and Microsoft Exchange 2003, Third Edition.
O'Reilly logo
Programming Microsoft® Outlook® and Microsoft Exchange 2003, Third Edition

Book Description

This comprehensive reference on Microsoft Exchange shows how to build next-generation enterprise messaging and collaboration solutions—with code and instruction straight from the source.

Table of Contents

  1. Programming Microsoft® Outlook® and Microsoft Exchange 2003, Third Edition
  2. Acknowledgments
  3. Introduction
    1. Who This Book Is For
    2. How the Book Is Organized
    3. Author Contact
    4. Installing and Using the Sample Files and Supplemental Chapters
    5. System Requirements
      1. Microsoft Windows Server
      2. Microsoft Windows Client
    6. Support Information
  4. I. Introduction to Collaborative Systems
    1. 1. A Broader Definition of Collaboration
      1. Tools for Building Collaborative Systems
      2. Outlook 2003
        1. End User Features
          1. Better Network Performance
          2. MAPI over HTTP
          3. Reading Pane
          4. Switching Between Online and Offline Mode
          5. Better Notifications via Desktop Alerts
          6. Search Folders
          7. Quick Flagging
          8. Distribution List Expansion in E-Mail Messages
          9. New Outlook Bar
          10. Rules Wizard Enhancements
          11. Automatic Conflict Resolution
          12. Multiple Calendars Side by Side
          13. Integration with WSS
          14. Contact Pictures
          15. Calendar Color Coding (Automatic Formatting)
        2. Developer Features
          1. Custom Forms, Fields, and Views
          2. Folder Home Pages
          3. Outlook View Control
          4. Outlook Object Model
          5. Smart Tags
          6. COM Add-ins
      3. Internet Explorer
      4. Exchange Server
      5. SQL Server
      6. Internet Information Services
      7. Visual Studio
      8. SharePoint Portal Server
      9. Windows SharePoint Services
        1. Mobile Information Server
      10. Examples of Collaborative Solutions
        1. Messaging Applications
        2. Tracking Applications
        3. Workflow Applications
        4. Real-Time Applications
        5. Knowledge Management Applications
      11. Summary
    2. 2. Exchange Server as a Platform for Collaboration
      1. Exchange Messaging Infrastructure
        1. Least-Cost Routing, Load Balancing, and Failover
        2. Delivery and Read Receipts
        3. Message Tracking
      2. An Industrial-Strength Object Database
        1. Huge Storage Capacity
        2. Multiple Views
        3. Built-In Replication
        4. Schema Flexibility
        5. Transaction Logging
        6. Multiple Databases
      3. Integration with Active Directory
        1. Reliable Database Engine
        2. Multimaster and Replication Capabilities
        3. Customizable Attributes and White Pages
        4. Extensibility and Security
        5. Internet and Industry Standards Support
      4. Public Folders
        1. Folder and Application Accessibility
        2. Security and Content Control
        3. Internet Standards Support
          1. Network News Transfer Protocol
          2. Internet Mail Access Protocol Version 4
          3. Hypertext Transfer Protocol
      5. Integrated, Internet Standards–Based Security
        1. Windows Security
        2. Secure Messaging
        3. Secure Applications
        4. S/MIME Support
      6. Multitier, Replicated, Secure Forms Library
        1. Organizational Forms Library
        2. Folder Forms Library
        3. Personal Forms Library
        4. Web Forms Library
      7. Built-in Information Management Tools
        1. Rules
        2. Server Events
      8. Connectivity and Migration Tools
      9. Exchange Server 2003 Enhancements
        1. Outlook Web Access Enhancements
        2. Mobility Enhancements
        3. Developer Enhancements
      10. The Web Storage System
        1. Data Access Features
        2. Programmability Features
          1. Schema Support
          2. Web Storage System Forms
          3. Web Storage System Events
          4. Workflow Support
          5. XML Support
        3. Security Features
        4. Additional Features
          1. MAPI Support
          2. Multiple Top-Level Hierarchies
          3. CDO for Exchange Management
        5. Exchange Server Web Services Support
      11. Changes from Exchange Server 2000
        1. M: Drive Removed
        2. Instant Messaging Removed
        3. Create Index No Longer Supported
        4. CDOHTML Removed
        5. FrontPage WSS Form Authoring Tool No Longer Supported
        6. Anonymous Access to Metabase Removed
      12. Summary
  5. II. Building Outlook Applications
    1. 3. Folders, Fields, and Views
      1. Folders
        1. Creating Public Folders
        2. Customizing Folder Properties
          1. General Tab
          2. Administration Tab
          3. Forms Tab
          4. Permissions Tab
          5. Synchronization Tab
        3. Setting Up Moderated Folders
        4. Creating Public Folder Rules
          1. Setting the Conditions for a Rule
          2. Setting the Actions for a Rule
          3. Applying Rules
          4. Implementing Public Folder Rules
      2. Fields
        1. Creating Custom Fields
        2. Creating Combination Fields
        3. Creating Formula Fields
        4. Using Custom Fields in Filtered Replication
      3. Views
        1. Creating New Views
        2. Customizing the Current View
        3. Formatting the Columns in a View
        4. Grouping Items in a View
        5. Sorting Items in a View
        6. Filtering Information in Views
        7. Editing View Settings
          1. Conditional Formatting
          2. Limiting Views to Those Created for the Folder
          3. Implementing Threaded Views
      4. Summary
    2. 4. Customized Forms
      1. Outlook Form Types
        1. Message Forms
        2. Post Forms
        3. Contact Forms
        4. Office Document Forms
      2. How Forms Work
        1. Data Binding
      3. Designing Forms
        1. Opening a Form in Design Mode
        2. Choosing Display Properties
          1. Separating the Read Layout from the Compose Layout
          2. Using the Field Chooser to Drag and Drop Fields
        3. Important Default Fields
          1. Address Fields
          2. Subject Field
          3. Message Field
      4. Using Controls
        1. Accessing Controls from the Control Toolbox
        2. Renaming Controls
        3. Assigning Captions
        4. Setting the Font and Color
        5. Establishing Display Settings
        6. Binding Controls
        7. Setting Initial Values
        8. Requiring and Validating Information in Fields
        9. Built-in Outlook Controls
          1. Label Control
          2. TextBox Control
          3. ListBox Control
          4. ComboBox Control
          5. CheckBox and ToggleButton Controls
          6. OptionButton Control
          7. Frame Control
          8. CommandButton Control
          9. MultiPage and TabStrip Controls
          10. SpinButton Control
          11. Image Control
          12. ScrollBar Control
        10. Using Custom or Third-Party Controls
        11. Setting Advanced Control Properties
        12. Setting the Tab Order
        13. Layering Controls on a Form
      5. Setting Form Properties
        1. Default Form Properties
        2. Advanced Form Properties
      6. Testing Forms
      7. Publishing Forms
        1. Publishing a Form in a Forms Library
        2. Saving the Form Definition with the Item
        3. Saving the Form as an .oft File
      8. Enhancing Forms
        1. Extending Functionality with Office Documents
        2. Creating Actions
          1. Modifying and Disabling Actions
      9. The Forms Cache
      10. One-Off Forms
      11. Summary
    3. 5. Programming Outlook Using VBScript
      1. The Outlook Script Editor
      2. VBScript Fundamentals
        1. Working with Variables
          1. Declaring Variables
          2. Scope and Lifetime of a Variable
        2. Data Types in VBScript
        3. Working with Objects
        4. Constants in VBScript
        5. Error Handling
      3. The Script Debugger
      4. Client Security
        1. The Outlook Security Update
        2. Attachment Security
        3. Object Model Security
        4. CDO Security
        5. Other Limitations
      5. Programming with the Security Update in Mind
      6. Customizing the Security Update
        1. The Administrative Security Package
          1. Public Folder for Security Settings
          2. Outlook Security Form
      7. Summary
    4. 6. The Outlook Object Model
      1. The Outlook Object Browser
      2. The Outlook Object Hierarchy
      3. Outlook Objects in Detail
        1. Outlook Events
          1. Writing Event Handlers
          2. Disabling Events
          3. Events in Outlook Forms
        2. Objects and Collections
          1. DistListItem Object
            1. Adding new members to the distribution list
            2. Removing members from a distribution list
            3. Retrieving the name of the distribution list
            4. Counting the number of users in a distribution list
          2. SyncObject Object and SyncObjects Collection
            1. Finding a SyncObject in the SyncObjects collection
            2. Starting and stopping synchronization
            3. Monitoring the progress of synchronization
        3. Outlook 2002 Objects
          1. ItemProperties Collection and the ItemProperty Object
          2. Reminders Collection and Reminder Object
          3. Search Object
          4. Results Collection Object
          5. Views Object
          6. View Object
        4. Outlook Bar Object Model
          1. Panes Collection
          2. OutlookBarPane Object
          3. OutlookBarStorage Object
          4. OutlookBarGroups Collection
          5. OutlookBarGroup Object
          6. OutlookBarShortcuts Collection
          7. OutlookBarShortcut Object
          8. Selection Collection Object
          9. Explorers Collection
          10. Inspectors Collection
          11. Links Collection and Link Object
      4. Methods, Properties, and Events
        1. Application Object
          1. ActiveWindow Method
          2. AnswerWizard Property
          3. COMAddIns Property
          4. CopyFile Method
          5. Explorers and Inspectors Properties
          6. LanguageSettings Property
          7. ProductCode Property
          8. ItemSend Event
          9. MAPILogonComplete Event
          10. NewMail Event
          11. OptionsPagesAdd Event
          12. Quit Event
          13. Reminder Event
          14. Startup Event
        2. NameSpace Object
          1. SyncObjects Property
          2. AddStore Method
          3. Dial Method
          4. Offline Property
          5. OptionsPagesAdd Event
          6. RemoveStore Method
        3. Explorer Object
          1. Caption Property
          2. CurrentView Property
          3. Height Property
          4. HTMLDocument Property
          5. Left Property
          6. Panes Property
          7. Selection Property
          8. Top Property
          9. Width Property
          10. WindowState Property
          11. Activate Method
          12. IsPaneVisible Method
          13. ShowPane Method
          14. Activate Event
          15. BeforeFolderSwitch Event
          16. BeforeItemCopy Event
          17. BeforeItemCut Event
          18. BeforeItemPaste Event
          19. BeforeMaximize Event
          20. BeforeMinimize Event
          21. BeforeMove Event
          22. BeforeSize Event
          23. BeforeViewSwitch Event
          24. Close Event
          25. Deactivate Event
          26. FolderSwitch Event
          27. SelectionChange Event
          28. ViewSwitch Event
          29. Sample Code for Events
        4. Inspector Object
        5. Folders Collection
          1. FolderAdd Event
          2. FolderChange Event
          3. FolderRemove Event
        6. MAPIFolder Object
          1. AddressBookName Property
          2. AddToFavorites Method
          3. AddToPFFavorites Method
          4. CustomViewsOnly Property
          5. FolderPath Property
          6. InAppFolderFolderSyncObject Property
          7. ShowAsOutlookAB Property
          8. Views Collection
        7. Items Collection
          1. ItemAdd Event
          2. ItemChange Event
          3. ItemRemove Event
        8. Characteristics of Item Types
          1. Links Property
          2. AttachmentAdd Event
          3. AttachmentRead Event
          4. BeforeAttachmentSave Event
          5. BeforeCheckNames Event
        9. SyncObjects Collection
          1. AppFolders Property
        10. ContactItem Enhancements
          1. IMAddress Property
          2. LastFirstNoSpaceandSuffix Property
        11. Other Methods
        12. Other Properties
        13. Other Events
      5. Programming Changes in Outlook 2003
        1. Application Object
        2. Conflicts Collection, Conflict Item, and AutoResolvedWinner
        3. MeetingWorkspaceURL Property
        4. ContactItem Object Changes
        5. Explorer Object
        6. MailItem Object
        7. MAPIFolder Object
        8. MeetingItem Object
        9. Namespace Object
        10. PostItem Object
        11. Search Object
        12. Outlook Bar Changes
      6. Other Common Outlook Development Tasks
        1. Automating Outlook from Other Applications
        2. Using CDO in Outlook
        3. Installing CDO on Your Computer
        4. Coding Rules in the Rules Wizard
      7. Summary
    5. 7. Office COM Add-Ins
      1. When to Write a COM Add-In
      2. Developing a COM Add-In
        1. The IDTExtensibility2 Events
          1. OnConnection Event
          2. OnDisconnection Event
          3. OnStartupComplete Event
          4. OnBeginShutdown Event
          5. OnAddInsUpdate Event
        2. Registry Settings for COM Add-Ins
          1. Registering Your Add-In
          2. Trusting Your COM Add-Ins
      3. Debugging COM Add-Ins
      4. Using COM Add-Ins from Custom Outlook Forms
      5. Building COM Add-Ins Using .NET
        1. Tracing Errors
        2. Using the Extensibility Project for Your Add-In
        3. An Add-In Example
        4. PropertyPage Extensions and .NET
        5. Forcing Collection of Your Variables and Objects
        6. Working with Outlook Item Types and Common Properties
        7. Debugging Your .NET COM Add-In
      6. VBA Support in Outlook
        1. VBA Architecture
        2. Creating a VBA Application
        3. Choosing What to Write: COM Add-In or VBA Program?
      7. Summary
    6. 8. The Account Tracking Application
      1. Overview of the Account Tracking Application
        1. The Account Tracking Folder
        2. The Account Tracking Form
      2. Setting Up the Account Tracking Application
        1. Copying the Account Tracking Folder
        2. Copying the Product Sales Database
        3. Setting Permissions on the Folder
      3. Techniques Used in the Account Tracking Application
        1. Setting Global Variables
        2. Determining the Mode: The Item_Read Event
        3. Initializing the Application: The Item_Open Event
        4. Connecting to the Sales Database: The GetDatabaseInfo Subroutine
        5. Displaying an Address Book Using CDO: The FindAddress Subroutine
        6. Advanced CDO: Changing an Appointment Color
        7. Creating Account Contacts: The cmdAddAccountContact Subroutine
        8. Refreshing the Contact List Box: The cmdRefreshContactsList Subroutine
        9. Performing Default Contact Actions: E-Mail, Letters, and NetMeeting
        10. Automating Excel: The cmdCreateSalesChart and cmdPrintAccountSummary Subroutines
        11. Unloading the Application: The Item_Close Event
      4. Interacting with the Application Using Outlook Today
        1. Viewing the Customized Outlook Today Page
        2. Setting Up the Outlook Today Page
      5. Adding Folder Home Pages
        1. Setting Up the First Folder Home Page
        2. Sample Script for the Folder Home Page
      6. The Outlook View Control
        1. Setting Up the Second Folder Home Page
        2. Using the Outlook View Control
      7. View Control Changes in Outlook 2002
      8. The Account Tracking COM Add-In
        1. Compiling and Registering the COM Add-In
        2. Testing the COM Add-In
        3. Implementing the COM Add-In
          1. Searching for the Account Tracking Group and Shortcut
          2. Using Events to Notify Users of Changes
          3. Adding and Handling Custom Command Bars and Buttons
          4. Adding Custom Property Pages and Storing User Settings
      9. Calling an XML Web Service from an Outlook Form
      10. The Offline Free/Busy Application
      11. Summary
    7. 9. Developing Smart Tags and Smart Documents
      1. Smart Tag Architecture
      2. Building Smart Tags
        1. Using MOSTL
          1. Creating and Storing Your XML Definitions
          2. Updating a MOSTL List via a Web Server
        2. Writing Custom Smart Tags
        3. Building Custom Smart Tag Recognizers Using Visual Basic
          1. Creating the ActiveX DLL
      3. Testing Your Smart Tags
      4. Debugging Your Smart Tags
      5. Deploying Your Smart Tags
      6. Word and Excel Object Model Changes
      7. Extending Existing Smart Tags in Office
      8. Tagging HTML Documents
      9. Building Smart Tags Using .NET
        1. Automatic Registration with Reflection
        2. Testing Your Smart Tag in .NET
      10. Changes in Smart Tags in Office 2003
        1. Universal Exception and Supplement Lists
        2. MOSTL Improvements
          1. Localization Support
          2. elementaction Tag
          3. Cascading Menus
          4. Running an Action on Recognition
          5. Property Page Support
          6. New Types of Smart Tags: Expiring, Transitory, and Temporary
          7. Hiding the Smart Tag Underlining in the User Interface
          8. Regular Expression Support
          9. Support for Arbitrary Properties in Items
      11. Object Model Improvements for Smart Tags
        1. ISmartTagRecognizer2 Interface
        2. ISmartTagAction2 Interface
        3. ISmartRecognizerSite2 Interface
        4. ISmartTagToken Interface
        5. ISmartTagTokenList Collection
        6. ISmartTagTokenProperties Collection
      12. Reloading Recognizers and Actions Without Restarting
      13. Deployment Improvements in Smart Tags
        1. Disabling Smart Tags for Individual Office Applications
      14. Putting It All Together: Smart Tag Recognition Application
      15. Smart Documents in Office 2003
        1. The Parts of a Smart Document Solution
        2. Building a Smart Document Solution
        3. Deploying Your Smart Document Solution
        4. MOSTL Support for Smart Documents
      16. Which Office Solution Option Should I Use?
      17. Summary
  6. III. Exchange Server Development
    1. 10. Web Fundamentals and Server Security
      1. Active Server Pages and ASP.NET
        1. ASP Fundamentals
        2. Global.asa
        3. Global.asax File
        4. Built-In ASP Objects
          1. Application Object
          2. Session Object
          3. Request Object
          4. Request object collections
          5. Response Object
          6. Server Object
        5. Server-Side Include Files
        6. Using Type Libraries in ASP Applications
        7. Server Components
        8. WebDAV Support
      2. ASP Security
        1. Basic Authentication
        2. Digest Authentication
        3. Windows NT Challenge/Response Authentication
        4. .NET Passport Authentication
        5. ACLs
      3. ASP.NET Authentication
        1. Forms Authentication
        2. Impersonation in ASP.NET
        3. ASP.NET Worker Account
        4. Impersonating Users Through Code
      4. Summary
    2. 11. Collaboration Data Objects
      1. What Is CDO?
        1. CDO and the Outlook Object Library
        2. CDO and CDO for Windows
        3. Which CDO Should I Use Where?
      2. CDO and .NET
      3. Overview of the CDO 1.21 Library
        1. Getting Help with the CDO Library
      4. Background for the Four Sample CDO Applications
        1. Using the CDO Session Object
        2. Using the Logon Method
          1. Authenticated Logon Using a Profile
          2. Authenticated Logon Using a Dynamically Generated Profile
          3. Anonymous Access
      5. The Helpdesk Application
        1. Setting Up the Application
        2. Helpdesk CDO Session Considerations
        3. Logging On to the Helpdesk
        4. Accessing Folders in the Helpdesk
        5. Implementing Helpdesk Folder Security
        6. Retrieving User Directory Information
        7. Posting Information in the Helpdesk
        8. Rendering the List of Helpdesk Tickets
        9. Rendering the Actual Help Ticket
        10. Creating the Calendar Information
        11. Creating a Meeting with the User
        12. Resolving the Help Ticket
      6. The Calendar of Events Application
        1. Setting Up the Application
        2. CDO Sessions
        3. Prompting the User for Input
        4. Displaying Calendar Views
          1. Filtering Events from the Calendar
          2. Displaying a Weekly View
          3. Displaying a Daily View
        5. Displaying the Details of an Event
      7. Summary
    3. 12. Advanced CDO Topics and Tips
      1. The CDO Visual Basic Application
        1. Setting Up the Application
        2. Programming CDO with Visual Basic
        3. Logging On the User
        4. Finding the Details of the Specific User
      2. CDO Tips and Pitfalls
        1. Avoid the GetNext Trap
        2. Avoid Temporary Objects if Possible
        3. Use Early Binding with Visual Basic
        4. Use With Statements
        5. Avoid the Dreaded ASP 0115 Error
        6. Avoid the MAPIE_FailOneProvider and CDOE_FailOneProvider Errors
        7. Learn Your Properties and Their IDs Well
        8. Learn to Love MDBVUE
      3. Dealing with Outlook Property Sets in CDO
      4. A CDO 1.21 .NET Sample Application
      5. Summary
    4. 13. Programming Exchange Server Using ADSI
      1. What Is ADSI?
        1. Design Goals of the ADSI Object Library
      2. ADSI Object Library Architecture
        1. IADs and IADsContainer Interfaces
        2. IADsContainer Interface
        3. Other ADSI Interfaces
        4. Exchange Server Object Classes
      3. Creating Paths to Active Directory Objects and Attributes
      4. ADSI vs. CDO for Exchange Management
      5. What Is RootDSE?
      6. A Sample ADSI Application
        1. Setting Up the Application
        2. Logging On to ADSI
        3. Querying for Information from an Existing Mailbox
        4. Creating a Custom Recipient
        5. Displaying the Members of a Distribution List
      7. The Org Chart Sample Application
      8. Getting Help with ADSI
        1. LDP
        2. ADSI Edit
      9. ADSI Support in .NET
        1. Searching Active Directory Using the DirectoryServices Namespace
        2. Reading and Writing Entries
        3. Calling Native ADSI Interfaces
        4. Disposing of Connections
        5. Authenticating Against Active Directory Using Forms-Based Authentication
      10. A More Complex Sample Application
      11. Directory Services Markup Language
        1. Working with DSML
        2. Basic DSML Payloads
        3. DSML Samples
          1. Reading an Object from Active Directory
          2. Adding an Object
          3. Modifying Objects
          4. Deleting Objects
          5. Performing Simple Searches
          6. Performing Advanced Searches
          7. Session Support
      12. Summary
    5. 14. Web Services and Exchange
      1. Building a Web Service Using Visual Studio 6.0 and the SOAP Toolkit
      2. Building a Web Service Using Visual Studio .NET
      3. Building a Web Service Using C#
        1. Returning Raw Free/Busy Information
        2. Returning Data in XML Format
        3. Returning an ADO.NET DataSet
      4. Consuming the Web Service from .NET
        1. Calling the Web Service
      5. Summary
    6. 15. The Training Application
      1. Setting Up the Training Application
      2. Using the Training Application
        1. Creating a Course
        2. Browsing Available Courses
        3. Searching for a Course
        4. Obtaining Approval for Registration
        5. Implementing Surveys
      3. The Wonderful World of Schemas
        1. Overview of the Exchange Server Schemas
        2. Creating Custom Content Classes
        3. Creating Content Class Definition Items
        4. The expected-content-class Property
        5. The schema-collection-ref Property
        6. The baseSchema Property
        7. Using the ##SCHEMAURI## Macro
        8. Global Schema Definitions
      4. Using ADO and OLE DB with Exchange Server
        1. ADO Features
          1. URL Binding Support
          2. Record and Stream Support
            1. Record object
            2. Stream object
        2. Putting ADO to Work with Exchange Server
          1. SELECT Statement
          2. Performance Considerations with Query Scope
          3. Hierarchical Traversal
          4. ORDER BY Clause
          5. LIKE Predicate
          6. GROUP BY Predicate
          7. CREATE INDEX Predicate
          8. Aliasing Column Names
        3. Content Indexing and Using CI from ADO
          1. CONTAINS Predicate
          2. FREETEXT Predicate
          3. Working with Ranking
        4. Indexing Default Properties
        5. Common Tasks Performed Using ADO
          1. Creating New Folders
          2. Creating New Items
          3. Deleting Folders or Items
          4. Copying Folders or Items
          5. Moving Folders or Items
          6. Using the Fields Collection
          7. Working with Recordsets Using ADO
          8. Querying for MAPI Entry IDs
          9. Working with Attachments in ADO
          10. Handling Errors in ADO
        6. Using OLE DB Transactions
        7. Best Practices When Using ADO
      5. Calling COM Components from .NET
      6. CDO for Exchange Server
        1. CDO Design Goals
        2. The CDO Object Model
        3. Frequently Used Objects in CDO
          1. Configuration Object
          2. DataSource Object
            1. Open method
            2. OpenObject method
            3. Save method
            4. SaveTo method
            5. SaveToContainer method
            6. SaveToObject method
        4. CDO Messaging Tasks
          1. Sending a Standard Message
          2. Sending an MHTML Message
          3. Adding an Attachment
          4. Adding Mail Headers
          5. Sending a Message with Custom Properties
          6. Resolving Addresses
        5. CDO Calendaring Tasks
          1. Creating Appointments
          2. Creating Meeting Requests and Checking Free/Busy Information
          3. Another Way to Check Free/Busy Information
          4. Creating Recurring Meeting Requests
          5. Creating Exceptions
          6. Responding to a Meeting Request
          7. Opening Other Users’ Mailbox Folders
          8. Working with Time Zones
        6. CDO Contact Tasks
          1. Creating a Contact in Exchange Server
          2. Creating a Contact in Active Directory
          3. Saving Your Contact as a vCard
          4. Interoperating with Outlook Properties
        7. CDO Folder Tasks
          1. Creating a Folder
          2. Mail-Enabling Folders
        8. What About Tasks?
        9. Interoperability Between CDO 1.21 and CDO for Exchange
      7. A CDO for Exchange .NET Sample Application
      8. Summary
    7. 16. Exchange Server and XML
      1. The HTTPWebRequest Class
      2. The XMLHTTP Component
        1. Open Method
          1. SetRequestHeader Method
        2. ReadyState Property
        3. OnReadyStateChange Property
        4. Send Method
        5. responseBody, responseStream, responseText, and responseXML Properties
        6. Status and StatusText Properties
        7. Abort Method
      3. ServerXMLHTTP Object
      4. WinHTTP Proxy Configuration Utility
      5. WebDAV Commands
        1. Creating Folders
        2. Creating Items
        3. Copying Folders and Items
        4. Moving Folders and Items
        5. Deleting Items and Folders
        6. Setting Properties
        7. Working with Multivalue Properties
        8. Retrieving Properties
        9. Deleting Properties
        10. Locking a Resource
        11. Transactions with Locks
        12. Unlocking a Resource
        13. Subscribing to a Resource
        14. Polling the Server
        15. Querying with WebDAV SEARCH
        16. Sending E-Mail Through WebDAV
        17. WebDAV XML Elements
        18. Working with Attachments in WebDAV
        19. Other Resources
      6. WebDAV Headers
      7. MSXML and Namespaces
      8. A WebDAV Sample: Creating Tasks
      9. Persisted Search Folders
        1. Creating a Search Folder
        2. Searching a Persisted Search Folder
      10. Using ADO to Retrieve XML Data from Exchange Server
      11. Using XSL to Format XML
      12. XSL Elements
        1. XSL Value-of
        2. XSL If
        3. XSL Choose, When, and Otherwise
        4. XSL Attribute
        5. XSL For-Each
        6. XSL Script and XSL Eval
      13. Calling WebDAV Using HTTPWebRequest in .NET
      14. Summary
    8. 17. Server Events, Workflow, and Security
      1. Exchange Server Events
        1. The Firing Order of Events
        2. Security Requirements
        3. Synchronous Events
        4. Asynchronous Events
        5. System Events
        6. Registering an Event Handler
          1. Event Registration Properties
            1. criteria property
            2. enabled property
            3. eventmethod property
            4. matchscope property
            5. priority property
            6. scripturl property
            7. sinkclass property
            8. timerstarttime property
            9. timerexpirytime property
            10. timerinterval property
          2. Creating an Event Registration Item
          3. Registering a Database-Wide Event
          4. Using the ICreateRegistration Interface
        7. Writing an Event Handler
        8. Advanced Information for Your Event Handlers
        9. Debugging an Event Handler
      2. Building Event Handlers in Visual Studio .NET
        1. Building More Than One Handler in a Single File
        2. Finishing Touches
        3. A C# Example
      3. Transport and Protocol Events
        1. Transport and Protocol Event Architecture
        2. Registering Your Event Handler
        3. Advanced Considerations
      4. Workflow Capabilities
        1. Workflow in Exchange Server
        2. Developing Workflow Applications
          1. Setting Up the Workflow Environment
          2. Using the Workflow Designer
          3. Creating Event Scripts
        3. Compensating Actions
        4. Mapping URLs Using the EXOLEDB URLMAPPER
        5. Transactions
        6. E-Mail-Based Workflow
        7. Displaying Workflow States Using XMLDOM
        8. Deploying Workflow Solutions
          1. Workflow Security and Deployment Gotchas
      5. The Workflow Designer in Office XP Developer
        1. Coding Enhancements
        2. Enhanced Design Environment
        3. A Seamless Upgrade
        4. Some New Concepts
      6. Exchange Server and Security
        1. Security Features
        2. A Sample Security Application
      7. Working with Roles
      8. The Exchange SDK Application Security Module
        1. Entity Object
        2. DACL Object
        3. Access Mask Templates
        4. Programming Tasks
          1. Instantiating the Security Module
          2. Specifying Where the Security Code Should Run
          3. Listing User Permissions
          4. Setting and Changing Permissions for a User or Group
          5. Deleting Permissions
          6. Setting MAPI Permissions
          7. Removing Inherited ACLs
          8. Finding Entities
        5. Using the Security Module from Visual Basic
      9. Summary
    9. 18. CDO for Exchange Management and Windows Management Instrumentation
      1. The CDOEXM Object Model
        1. What About ADSI?
        2. Accessing Exchange Server Information
        3. Working with Storage Groups
          1. Creating New Storage Groups
          2. Deleting Storage Groups
        4. Working with Folder Trees
          1. Creating a New Folder Tree
          2. Deleting a Folder Tree
        5. Working with Public Folder Databases
          1. Creating a New Public Folder Database
          2. Deleting Public Folder Databases
        6. Creating Exchange Server Virtual Directories
        7. Working with Mailbox Databases
          1. Creating Mailbox Databases
          2. Deleting a Mailbox Database
        8. Creating New Mailboxes
          1. The Recipient Update Service
        9. Combining CDOEXM and CDO for Exchange
        10. Working with Mailbox Rights
      2. Programming CDOEXM with Visual Studio .NET
      3. Windows Management Instrumentation
        1. Exchange WMI Classes
        2. WMI Query Language (WQL)
      4. Summary
    10. 19. Real-Time Collaboration
      1. Instant Messaging
      2. The Windows Messenger APIs
      3. Microsoft Office Live Communications Server 2003
        1. The Live Communications Client Library
        2. Building Your First Live Communications Client Application
      4. Microsoft Exchange Conferencing Server
        1. Finding Real-Time Resources in Active Directory
        2. Figuring Out Free/Busy Information for a Conference Room
        3. Scheduling an Online Conference via CDO
        4. Scheduling an Online Conference via ConferenceLocatorManager
        5. Canceling an Online Conference via ConferenceLocatorManager
        6. Listing Online Conferences via ConferenceLocatorManager
      5. Summary
    11. 20. Web Storage System Forms, Outlook Web Access, and System.Web.Mail
      1. Reusing Outlook Web Access
      2. OWA Web Controls
        1. Rich Edit Control
        2. Folder Tree Control
      3. Web Storage System Forms
        1. WSS Forms Architecture
        2. Creating a WSS Form
        3. Using ASP Forms
        4. Using HTML Forms
        5. Registering a WSS Form
        6. Registering WSS Forms Globally
      4. Web Storage System Forms—The Renderer
        1. Registering Your WSS Forms to Use the Renderer
        2. WSS Forms Data Binding
        3. Creating New Items
        4. Updating Items
        5. Formatting Fields
        6. Dynamic Database Lookups
      5. Document and Attachment Upload
        1. Attachment Upload Support
          1. Uploading Attachments
          2. Attachment Wells
          3. Deleting an Attachment
      6. WSS Form Views and the XML View Descriptor
        1. Adding a View to a Web Page
        2. XML View Descriptor Format
          1. Primary Tags
          2. Column Tags
          3. Group By and Sort By Tags
          4. Formatting Tags
        3. Methods, Properties, and Events of the View Control
          1. Deleting Selected Items and Refreshing the View Control
          2. Adding Navigation to Your Page
          3. Listening for Selection Change Events
        4. Using an External View Descriptor
        5. Using XSL Passthrough
        6. Working with URL Overrides
      7. The WSS Forms Object Model
        1. FormElements Collection and FormElement Object
        2. FormAttributes Collection
        3. FormAttribute Object
        4. FormErrors Collection
        5. FormError Object
        6. Putting It All Together
      8. ASP/ASP.NET vs. WSS Forms
      9. The System.Web.Mail Namespace
        1. MailMessage Class
        2. MailAttachment Class
        3. SMTPMail Class
        4. Sample Application
      10. Conclusion
  7. A. About the Author
    1. Thomas Rizzo
  8. About the Author
  9. Copyright