Acknowledgments About the Companion CD Part I Introduction to Collaborative Systems Chapter 1 A Broader Definition of Collaboration TOOLS FOR BUILDING COLLABORATIVE SYSTEMS Microsoft Outlook Microsoft Internet Explorer Microsoft Exchange Server Microsoft SQL Server Microsoft Internet Information Services Microsoft Site Server Microsoft Visual Studio Microsoft Visual Basic Microsoft Visual InterDev EXAMPLES OF COLLABORATIVE SOLUTIONS Messaging Applications Tracking Applications Workflow Applications Real-Time Applications Knowledge Management Applications Chapter 2 Exchange Server as a Platform for Collaboration ROBUST MESSAGING INFRASTRUCTURE Least-Cost Routing,Load Balancing,and Failover Delivery and Read Receipts Message Tracking INDUSTRIAL-STRENGTH OBJECT DATABASE Huge Storage Capacity Multiple Views Built-In Replication Schema Flexibility Transaction Logging EXCHANGE SERVER DIRECTORY Reliable Database Engine Multimaster and Replication Capabilities Customizable Attributes and “White Pages” Extensibility and Security Internet and Industry Standards Support PUBLIC FOLDERS Folder and Application Accessibility Security and Content control Internet Standards Support INTEGRATED,INTERNET STANDARDS-BASED SECURITY Windows NT Security Secure Messaging Secure Applications S/MIME Support MULTITIERED,REPLICATED,SECURE FORMS LIBRARY Organizational Forms Library Folder Forms Library Personal Forms Library Web Forms Library BUILT-IN INFORMATION MANAGEMENT TOOLS Rules Event Scripting Agent CONNECTIVITY AND MIGRATION TOOLS CLIENT OPTIONS Pocket Outlook Outlook Express Outlook Web Access Outlook for Microsoft Windows Versions 3.x and the Macintosh Microsoft Outlook CHOOSING A CLIENT Part II Building Outlook Applications Chapter 3 Folders,F(xiàn)ields,and Views POLDERS Creating Public Folders Customizing Folder Properties Setting Up Moderated Folders Creating Public Folder Rules FIELDS Creating Custom Fields Creating Combination Fields Creating Formula Fields Using Custom Fields in Filtered Replication VIEWS Creating New Views Customizing the Current View Formatting the columns in a View Grouping Items in a View sorting Items in a View Filtering Information in Views Editing View Settings Chapter 4 Forms OUTLOOK FORM TYPES Message Forms Post Forms Contact Forms Office Document Forms HOW FORMS WORK Data Binding DESIGNING FORMS Opening a Form in Design Mode Choosing Display Properties Important Default Fields USING CONTROLS Accessing Controls from the Control Toolbox Renaming Controls Assigning Captions Setting the Font and Color Establishing Display Settings Binding Controls Setting Initial Values Requiring and Validating Information in Fields Built-In Outlook Controls Using Custom or Third-Party Controls Setting Advanced Control Properties Setting the Tab Order Layering Controls on a Form FORM PROPERTIES Setting Default Form Properties Setting Advanced Form Properties TESTING FORMS PUBLISHING FORMS Publishing Forms in a Forms Library Saving the Form Definition with the Item Saving the Form as an.oft File ENHANCING FORMS Extending Functionality with Office Document Forms Creating Actions Chapter 5 Programming Outlook with VBScript THE OUTLOOK SCRIPT EDITOR VBSCRIPT FUNDAMENTALS Working with Variables Data Types in VBScript Working with Objects Constants in VBScript Error Handling THE SCRIPT DEBUGGER WORKING WITH OUTLOOK OBJECTS Getting Help with Outlook Objects The Outlook Object Browser The Outlook Object Hierarchy OUTLOOK EVENTS Writing Event Handlers Disabling Events Sequence of Events OTHER COMMON TASKS IN OUTLOOK DEVELOPMENT Automating Outlook Office Documents Automating Outlook from Other Applications Using CDO in Outlook Chapter 6 Putting It All Together:The Account Tracking Application OVERVIEW OF THE ACCOUNT TRACKING APPLICATION The Account Tracking Folder The Account Tracking Form SETTING UP THE APPLICATION Copying the Account Tracking Folder Copying the Product Sales Database Setting Permissions on the Folder TECHNIQUES EMPLOYED BY THE ACCOUNT TRACKING APPLICATION Setting Global Variables Determining Compose or Read Mode:The Item_Read Event Initializing the Application:The Item_Open Event Connecting to the Sales Database:The GetDatabaseInfo Subroutine Displaying an Address Book Using CDO:The FindAddress Subroutine Creating Account Contacts:The cmdAddAccountContact Subroutine Refreshing the Contact List Box:The cmdRefreshcontactsList Subroutine Performing Default Contact Actions:E-Mail,Letters,and NetMeeting Automating Excel:The cmdCreatesalesChart and cmdPrintAccountSummary Subroutines Unloading the Application:The Item_Close Event OUTLOOK TODAY AND THE ACCOUNT TRACKING APPLICATION Viewing the Customized Outlook Today Page Setting Up the Customized Outlook Today Page Chapter 7 Outlook and the Web OUTLOOK TODAY Outlook Today Technologies Outlook Today in Outlook 2000 Customizing Outlook Today ACTIVE SERVER PAGES ASP Fundamentals Global.asa Built-In ASP Objects Server-Side Include Files Server Components OUTLOOK WEB ACCESS Installing Outlook Web Access Outlook web Access and ASP Security Special Considerations for Setting Up Outlook Web Access WINDOWS 2000 AND ISS 5.0 Improved ASP Support Improved Scripting Support Improved Security Features WebDAV Scupport THE OUTLOOK HTML FORM CONVERTER Software Requirements of the Converter components of the Converter Features of the Converter Stepping Through a Conversion Examples of Conversions Files Created for Converted Forms Web Forms Library Making HTML Forms Available in Outlook Tips for Developing HTML-Ready Outlook Applications Chapter 8 Outlook 2000 Development Features OFFICE 2000 COM ADD-INS Deciding Whether to Write a COM Add-In Developing a COM Add-In Debugging Your COM Add-In Using COM Add-Ins from Custom Outlook Forms OUTLOOK 2000 OBJECT MODEL Objects and Collections Outlook Bar Object Model Methods,Properties,and Events for Existing Objects Characteristics of Item Types VBA SUPPORT IN OUTLOOK 2000 VBA Architecture Creating a VBA Application Choosing What to Write:COM Add-In or VBA Program? Chapter 9 Outlook Team Folders Wizard FEATURES OF THE TEAM FOLDERS WIZARD ARCHITECTURE OF THE TEAM FOLDERS WIZARD EXTENDING THE TEAM FOLDERS WIZARD Modifying the Provided HTML Pages THE OUTLOOK VIEW CONTROL Programming the Outlook View Control Instantiating the Outlook View Control Hosting the Outlook View Control in Internet Explorer THE OUTLOOK PERMISSIONS CONTROL Programming the Outlook Permissions Control Permissions Control Properties Permissions Control Methods Example:Permissions Control Web Application THE TEAM FOLDERS WIZARD ADMINISTRATION EXTENSION Architecture of the Team Folders Wizard Adiministration Extension Installing the Team Folders Wizard Administration Extension Modifying the HTML for a Team folders Wizard Template The Event Scripting Agent for the Administration Extension subscription/Notification Functionality BUILDING A CUSTOM TEAM FOLDERS TEMPLATE Creating the .pst File Creating the Folder Home Page Creating the Template.ini File File Folder Structure for Your Template Deploying Your Template Example:Account Tracking Template CREATING A TEAM FOLDERS WIZARD EXTENSION Interfaces of the Team Folders Wizard Extension Visual Basic Form for the Account Tracking Extension Folder Home Page for the Account Tracking Extension REGISTERING YOUR EXTENSION DEPLOYING YOUR EXTENSION Chapter 10 Outlook 2000 in Action:Enhancements to the Account Tracking Application FOLDER HOME PAGES Setting Up the First Folder Home Page Example Script for the Folder Home Page THE OUTLOOK VIEW CONTROL Setting Up the Second Folder Home Page Using the Outlook View Control THE ACCOUNT TRACKING COM ADD-IN Compiling and Registering the COM Add-In Testing the COM Add-In Implementing the COM Add-In THE AVAILABILITY CHECKER SAMPLE APPLICATION Chapter 11 Digital Dashboards PRELMINARY CONSIDERATIONS WHY HOST A DIGITAL DASNBOARD IN OUTLOOK? EXAMPLE:THE FINANCE DIGITAL DASHBOARD BUILDING A DIGITAL DASHBOARD Digital Dashboard Architecture USING OTHER COMPONENTS IN INFORMATION NUGGETS Office Web Components Outlook View Control Outlook Databinding Control ActiveX Data Objects STORING CUSTOM INFORMATION FOR THE DIGITAL DASHBOARD Using the Registry Using Site Server Personalization and Membership using the Active Directory Using Cookies Using XML Using Exchange Server DEPLOYING A DIGITAL DASHBOARD Outlook Today Digital Dashboard Folder Homepage Digital Dashboard RECOMMENDATIONS FOR ACCESSING EXCHANGE SERVER Part III Collaboration with Microsoft Exchange Chapter 12 Collaboration Data Objects WHAT IS CDO? CDO and the Outlook Object Library CDO and the CDO for Windows 2000 OVERVIEW OF THE CDO LIBRARY Getting Help with the CDO Library BACKGROUND FOR FOUR SAMPLE APPLICATIONS THAT USE CDO Using the CDO Session Object Using the Logon Method HELPDESK APPLICATION Setting Up the Helpdesk Application Helpdesk CDO Session Considerations Logging On to the Helpdesk Accessing Folders in the Helpdesk Implementing Helpdesk Folder Security Retrieving User Directory Information Posting Information in the Helpdesk Rendering the List of Helpdesk Tickets Rendering the Actual Help Ticket Creating the List of Helpdesk Tickets Creating a Meeting with the User Resolving the Help Ticket CALENDAR OF EVENTS APPLICATION Setting Up the Calendar of Events Application CDO Sessions Prompting the User for Input Displaying Views of the Calendar Displaying the Details of an Event INTRANET NEWS APPLICATION Setting Up the Application Anonymous Logon Retrieving the Folder and Messages Displaying the News Items Reading the Details of a Specific News Item CDO VISUAL BASIC APPLICATION Setting Up the Application Programming CDO with Visual Basic Logging On the User Finding the Details of the Specific User CDO TIPS AND PITFALLS Avoid the GetNext Trap Avoid Temporary Objects,If Possible Use Early Binding with Visual Basic Use With Statements Avoid the Dreaded ASP 0115 Error Avoid the MAPIE_FailOneProvider or CDOE_FailOneProvider Error Learn Your Properties and Their IDs Well Chapter 13 The Event Scripting Agent ARCHITECTURE OF THE EXCHANGE EVENT SERVICE EVENT SERVICE CAUTIONS SETTING UP THE EVENT SERVICE REGISTRY SETTINGS FOR SCRIPT AUTHORS WRITING AGENTS BY USING SCRIPTS Supported Event Types Intrinsic Objects for Scripts Instantiating Other COM Objects from Your Scripts ERROR TRAPPING AND LOGGING Microsoft Script Debugger Script.Response and Logging The Windows NT Event Log EXPENSE REPORT APPLICATION Setting Up the Expense Report Application Functionality of the Expense Report Application Expense Agent Script CDO Code in the Application PROGRAMMATICALLY BINDING AGENTS Exchange Event Service Configuration Library AGENT INSTALL APPLICATION Using the Exchange Event Service Configuration Library Accessing existing Agents Accessing the Scripts Contained in Agents Creating Agents Programmatically Disabling and Deleting Agents Agent Hosts EXCHANGE EVENT SCRIPTING AGENT SERVERS RUNNING THE SCRIPT ENGINE IN MTS Chapter 14 Exchange Server Routing Objects EXCHANGE SERVER ROUTING Routing Architecture Operation of the Routing Engine Process Instances Routing Maps Intrinsic Actions Custom Script Actions What About Roles? EXPENSE ROUTING APPLICATION Setting Up the Expense Routing Application Changes to the ASP Section of the Application Changes to the Server Script ROUTING OBJECT LIBRARY RouteDetails Object ProcInstance Object Map Object Row Object Log Object Participant Object VoteTable Object RecipientEntry Object WorkItem Object UPDATED AGENT INSTALL APPLICATION Overview of the Updated Agent Install Application Agent Enhancements Routing Map Enhancements Process Instance Enhancements User Interface Enhancements Chapter 15 Programming Exchange Server Using ADSI WHAT IS ADSI? ACCESSING THE DIRECTORY:CDO OR ADSI? DESIGN GOALS OF THE ADSI OBJECT LIBRARY ADSI OBJECT LIBRARY ARCHITECTURE IADs and IASsContainer Interfaces IADsContainer Interface Exchange Server Object Classes EXCHANGE SERVER SCHEMA Access-Category Property Description Property Heuristics Property CREATING PATHS TO EXCHANGE SERVER OBJECTS AND ATTRIBUTES ADSI APPLICATION Setting Up the ADSI Application Logging On the ADSI Creating a Mailbox Querying for Information from an Existing Mailbox Creating a Custom Recipient Creating a Distribution List Adding and Removing Users from a Ditribution List Displaying the Users in a distribution List Creating a Recipients Ccontainer Displaying the Objects in a Recipients Container ACTIVE DIRECTORY AND ADSI GETTING HELP WITH ADSI LDP ADSI Edit What About ADSI 2.5? Chapter 16 Enhancing Your Exchange Server Applications with COM Components ACCTCRT COMPONENT Creating an Instance of the AcctCrt Component Creating a Windows NT Account by Using the AcctCrt Component Associating Windows NT Accounts with Exchange Server Mailboxes RULES COMPONENT Storing Rules Creating an Instance of the Rules Component Using the Rules Component Specifying a Logical Condition Searching for Specific Content Searching for a Particular Bitmask ACL COMPONENT PROJECT APPLICATION Setting Up the Project Application Architecture of the Application Implementing the Projects Application Using the Rules Component to Fire on All Incoming Messages Chapter 17 Search Solutions Using Site Server 3 ENTER SITE SERVER SEARCH CAPABILITIES OF SIET SERVER INFRASTRUCTURE FEQUIREMENTS FOR SITE SERVER Setting Up Your Search Hosts Setting Site Server to Crawl an Exchange Server Public Folder Security Implications CREATING CUSTOM SEARCH APPLICATIONS Site Server Search Object Model Building an ASP Search Application EXTENDING OUTLOOK WITH SITE SERVER Hosting the ASP Search Application as a Folder Home Page Hosting the ASP Search Application in an Outlook Form Extending the ASP Search Application Using Outlook Controls Building an Outlook 2000 COM Add-in for Site Server Part IV Exchange Server 2000 Development Chapter 18 Developing with Exchange Server 2000 WHAT IS THE WEB STORAGE SYSTEM? Data Access Features Programmability Features Security Features Additional Features THE TRAINING APPLICATION Setting Up the Training Application Using the Training Application THE WONDERFUL WORLD OF SCHEMAS Overview of the Exchange Server Schemas Creating Custom Content Classes Creating Content Class Definition Items Setting the expected-content-class Property Setting the schema-collection-ref Property Setting the baseSchema Property USING ADO 2.5 AND OLEDB 2.5 WITH EXCHANGE SERVER 2000 New ADO 2.5 Features Putting ADO 2.5 to Work with Exchange Server 2000 Common Tasks Performed with ADO Using OLE DB Transactions Best Practices for Using ADO CDO FOR EXCHANGE SERVER 2000 CDO Design Goals CDO Object Model Frequently Used Objects in CDO CDO Messaging Tasks CDO Calendaring Tasks CDO Contact Tasks CDO Folder Tasks Chapter 19 Putting It All Together USING XML WITH EXCHANGE SERVER XMLHTTP Component WebDAV Commands Persisted Search Folders Using ADO to Retrieve XML Data from Exchange Server Using XSL to Format XML XSL Elements THE XML DOCUMENT OBJECT MODEL REUSING OUTLOOK WEB ACCESS WEB STORAGE SYSTEM FORMS Creating a Web Storage System Form Registering a Web Storage System Form FrontPage 2000 Support CONTENT INDEXING CONTAINS Predicate FREETEXT Predicate Working with Ranking Indexing Default Properties EXCHANGE SERVER EVENTS Firing Order of Events Security Requirements Supported Events Registering an Event Handler Writing an Event Handler Debugging an Event Handler WORKFLOW CAPABILITIES How Is Workflow Implemented in Exchange Server? Developing Workflow Applications Deploying workflow Solutions EXCHANGE 2000 AND SECURITY Security Features Sample Security Application INSTANT MESSAGING Programmint the IM Contact View Control Putting It All Together