did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

We're the #1 textbook rental company. Let us show you why.

9780201615753

Developing Applications Using Outlook 2000, CDO, Exchange, and Visual Basic

by ;
  • ISBN13:

    9780201615753

  • ISBN10:

    0201615754

  • Edition: 1st
  • Format: Paperback
  • Copyright: 1999-10-05
  • Publisher: Addison-Wesley Professional
  • Purchase Benefits
  • Free Shipping Icon Free Shipping On Orders Over $35!
    Your order must be $35 or more to qualify for free economy shipping. Bulk sales, PO's, Marketplace items, eBooks and apparel do not qualify for this offer.
  • eCampus.com Logo Get Rewarded for Ordering Your Textbooks! Enroll Now
List Price: $59.99

Summary

When a brokerage house approached us to design an Outlook 97 application for its prospect management system, Office 97 was still in alpha testing; the client was what Microsoft calls an "early adopter." The early adopter program was developed to help corporations migrate to the newest technology available. Translated: They already had Microsoft Office 97 in its earliest possible release, as well as the backing of Microsoft priority support.

The client was a Microsoft Enterprise customer that recognized the benefit of leveraging its investment in Office 97. Prior to our arrival, it had already researched more than a dozen sales force automation products. It decided that Outlook was the way to go.

A large obstacle during development was how to create a form that contained 425 fields. We don't think that the folks at Microsoft ever dreamed that someone would try to build a form with so many fields. Microsoft supported us the whole way. And it corrected some minor issues for the beta version; we never had to redo a form from scratch, because the beta version was compatible with the alpha version. It's not often that you come across a development tool that is so stable in alpha. Microsoft took time to develop Outlook well before releasing it and ultimately distributed a tool worthy of building business applications.

The latest version, Outlook 2000, is the most developer-friendly of all versions. Microsoft also enhanced the programmability features of Exchange Server (Exchange) to include workflow and routing features. Outlook is so versatile that you can build a groupware solution in a matter of hours. Moreover, you can use Outlook and Exchange as components for a large-scale enterprise system. This book will help you to do all of this.

Recent History of Messaging and Collaboration

This section describes the evolution of messaging and collaboration products available from Microsoft and other vendors. Figure 1 shows the evolution of Exchange and Outlook in particular.

Microsoft Mail

Most mail systems prior to the release of Microsoft Exchange and Lotus v3.0 depended very much on the client machine. The result was slow response time and the risk of losing mail messages.

Microsoft Mail was based on a shared file messaging system. Initially, it lacked a form development tool. Microsoft added the Electronic Forms Designer to facilitate form development, thereby allowing you to create forms using 16-bit Visual Basic (VB).

Lotus Notes

Lotus was the first company to introduce a collaborative platform. It designed its Notes product to perform most of the mail processing on the server. This allowed clients to use as many powerful servers as necessary to get the job done. Notes was also designed to allow groups or departments to work better together. Lotus not only got the client server mail system boom going; it also coined the term groupware. When IBM purchased Lotus, it acquired the ability to bundle Notes with hardware and other systems.

Microsoft Exchange

Microsoft spent many hours in design sessions listening to large enterprise customers in order to understand what they liked about Lotus Notes. It identified features that were missing in Microsoft Mail and sought to make Exchange the market's most reliable messaging and collaboration solution.

Microsoft wanted to ensure that current customers could gradually migrate to Exchange from their existing mail systems. Lotus Notes, Lotus ccMail, Novell's GroupWise, and even mainframe mail systems such as PROFS and SYSM can be easily migrated to Exchange. The process that it uses for migration is fairly simple. If the migrating client has a cc:Mail system, it simply uses Exchange cc:Mail migration tools, which allow Exchange to emulate cc:Mail and thereby allow the cc:Mail clients to believe that they are still communicating with an existing cc:Mail installation. This type of integration allows Exchange and any of the other mail systems to run in tandem.

After Microsoft had the messaging part of Exchange working, it began to think about collaboration. Collaboration applications prior to Exchange were mostly written in Lotus Notes, VB, or other development tools. Word from within Lotus was that the company wanted to build a tool that would function on a Windows desktop. The new tool would be a desktop information manager that would allow the user to work all the time from within this application. Around the same time, Microsoft went to the drawing board and created Outlook. Today, Outlook, a strong collaboration client, and Exchange, a strong messaging server, form a powerful team that facilitates messaging and collaboration requirements for applications worldwide.

This book features key development tips for the Notes developer who needs to develop applications in Outlook and Exchange. While the two development environments share many of the same concepts, they have key differences that we note throughout the book.

How This Book Is Organized

This book is divided into five parts.

Part I, Getting Started: Contains an overview of current technologies and of installation recommendations for the software needed to use the sample applications in this book.

Part II, Microsoft Outlook 2000: Discusses the Outlook 2000, as well as Outlook 97 and 98, development environments. This part illustrates concepts at a high level, drills down to demonstrate techniques using code samples, and provides a thorough reference for the object model.

Part III, Collaboration Data Objects and Exchange: Covers Exchange Server, the Collaboration Data Objects (CDO) library, and Active Serve Pages (ASP)/Exchange applications and introduces event scripting and Routing Objects.

Part IV, Miscellaneous Topics: Discusses additional applications and techniques that can be used with Exchange and Outlook to enhance and extend their functionality. This part builds on the core chapters of Parts 2 and 3.

Part V, Sample Applications: Offers a selection of examples that are featured at the book's Web site, reviewed step-by-step and with various coding techniques highlighted.

In addition, chapters that contain sample applications include a Tech Check section, which instructs you on which platforms and applications need to be installed and whether specific permissions and security are needed.

Contents of the Web Site

The site (http://www.mmanet.com/OutlookExchange) contains information in a format that resembles this book's format. It includes a downloadable zip file with folders that match the chapters in the book. Each folder that contains code includes a readme.txt file that lists the contents of the chapter.

Two additional zip files contain Visual MAPI, a shareware application that gives you the ability to see code mapped to different CDO functions, and the CdoExplorer, which allows you to examine folders, items, and properties (we discuss CdoExplorer in Chapter 18).

Who Should Read This Book

This book was written for several types of readers. The primary intended reader is the application developer. Administrators and IT managers, also, should find the book helpful. It uses VB as its primary language for its examples, so you will find it helpful to be familiar with that programming language. However, code that runs in an Outlook form or on an ASP must be written in VBScript. Most VB code can be easily used with little or no modification in applications written in Visual Basic for Applications (VBA) and with some modification in VBScript.

The second intended reader of this book is the technical developer with a business vision. It drills down to the code level so that

Author Biography

Raffaele Piemonte is Chief Technology Officer for ingredients.com, a specialty beauty and personal care eRetailer. While writing this book he was Senior Manager at Micro Modeling Associates, Inc. (MMA). As MMA's Visual Basic Product Champion, he created standards and naming conventions and standardized on third party tools. Raffaele has extensive expertise developing Microsoft Outlook and other Microsoft-based client/server applications. He is a frequent contributor to Databased Advisor and Databased Web Advisor, and his articles are available on TechNet and the Microsoft Web site.

Scott Jamison is a Managing Consultant at Plural, Inc., the 1999 Microsoft Solution Provider Partner of the Year. He lectures and writes extensively on a wide array of development topics, including architectures, development techniques, and Microsoft Exchange. He is a monthly columnist for Exchange & Outlook magazine.

0201615754AB04062001

Table of Contents

Foreword xv
Preface xvii
Acknowledgments xxiii
Part I Getting Started 1(22)
Overview of the Collaboration and Communication Architecture
3(20)
Introduction to Collaborative Systems
3(3)
Outlook 2000
6(2)
Collaboration Data Objects
8(1)
Using Outlook versus CDO
8(1)
Microsoft Exchange Server
9(1)
Overview of MAPI
10(8)
Other Collaboration Components
18(2)
How the Pieces Fit Together
20(2)
Summary
22(1)
Part II Microsoft Outlook 2000 23(218)
Outlook Forms and VBScript
25(38)
Overview of Outlook Forms
26(12)
Putting Code Behind an Outlook Form
38(12)
Versioning
50(3)
Password Protection
53(1)
Saving Outlook Forms
53(1)
Distribution
54(1)
Accessing Forms through Code
54(3)
Overview of Forms/VBScript Limitations
57(1)
Changing Forms for Existing Items
58(1)
Tips for Outlook Forms/VBScript Development
58(2)
Displaying Information: Views
60(1)
Reporting
61(1)
Additional Examples
62(1)
Summary
62(1)
The Outlook 2000 Object Model
63(52)
The Object Model
64(3)
Application Object
67(4)
User Interface Objects
71(15)
Accessing Outlook Data
86(22)
Additional Outlook Development Features
108(3)
Accessing the Mail Control Panel in Code
111(1)
Integration with Microsoft Access
112(1)
Conclusion
113(2)
MailItems and PostItems
115(26)
MailItems
115(4)
PostItems
119(1)
MailItem and PostItem Properties
120(10)
MailItem and PostItem Methods
130(5)
MailItem and PostItem Events
135(4)
Summary
139(2)
AppointmentItems and TaskItems
141(46)
The Outlook Calendar: Appointments and Meetings
142(3)
How AppointmentItems and MeetingItems Work Together
145(1)
AppointmentItem Properties
146(12)
AppointmentItem Methods
158(9)
AppointmentItem Events
167(1)
Creating Custom Appointment Forms
167(1)
The Outlook Tasks List: TaskItems
168(3)
How TaskItems Work
171(1)
TaskItem Properties
172(8)
TaskItem Methods
180(4)
TaskItem Events
184(1)
Summary
184(3)
Contacts and Distribution Lists
187(30)
Contacts, Recipients, and AddressEntries
188(1)
Contact Items
189(14)
The Recipient Object
203(6)
Distribution List Items
209(7)
Summary
216(1)
VBA, COM Add-Ins, and Custom Property Pages
217(24)
Visual Basic for Applications
217(4)
COM Add-Ins
221(12)
The COMAddIns Collection
233(1)
Using COM Add-Ins to Implement Property Pages
233(6)
Deployment
239(1)
Summary
239(2)
Part III Collaboration Data Objects and Exchange 241(154)
Microsoft Exchange Server
243(18)
Introduction
243(1)
Exchange's Core Components
244(2)
Other Exchange Services
246(2)
Setting Up Exchange
248(1)
Exchange Administrator Program
249(1)
Configuring Mailboxes and Public Folders
250(9)
Exchange Objects
259(1)
Summary
259(2)
Collaboration Data Objects
261(56)
What CDO Provides
262(6)
The CDO Objects
268(1)
At the Top: The Session Object
269(5)
The InfoStores Collection
274(4)
Folders and the Folder Object
278(6)
Messages and the Message Object
284(15)
Discussion Group Support
299(2)
Calendar Support
301(1)
Address Books
302(3)
The Address Book Objects
305(1)
The AddressEntry Object
305(7)
CDO for NT Server
312(2)
CDO for Windows 2000
314(1)
CDO for Exchange Platinum
315(1)
Summary
316(1)
Accessing Exchange Using the Web
317(34)
Outlook Web Access
318(1)
The Frameset Design-Time Control
318(3)
The HTML Form Converter
321(6)
Exchange Web Example
327(9)
The CDO Rendering Library
336(2)
Security Considerations
338(11)
Server Location Considerations
349(1)
Web Access Performance
349(1)
Summary
350(1)
Exchange Agents
351(24)
Tech Check
351(1)
Uses for Exchange Agent Scripts
352(1)
Assigning Permissions
352(2)
Events
354(1)
Behind the Scenes
355(1)
Asynchronous Execution
356(1)
Example of Exchange Agent Calling a COM Component
356(1)
Creating an Agent
357(1)
Installing an Agent
358(10)
Debugging Scripts
368(2)
Under the Hood
370(1)
Limitations
371(1)
More Examples
372(2)
Conclusion
374(1)
Exchange Server Routing Objects
375(20)
Tech Check
375(1)
Using Routing Objects for Workflow
376(2)
Architecture of Routing Objects
378(1)
The Routing Engine
378(1)
The Routing Wizard
379(4)
Routing Objects Object Model
383(2)
Process Map
385(3)
Creating the Process Map
388(4)
Tips and Caveats for Successful Routing
392(1)
Conclusion
393(2)
Part IV Miscellaneous Topics 395(74)
Outlook or CDO: Deciding Which to Use
397(12)
Okay, So Which One Do I Use?
397(2)
The Object Model Structures
399(2)
Comparison of the Two Models
401(7)
Summary
408(1)
Using Active Directory Services Interfaces with Microsoft Exchange
409(16)
Tech Check
409(1)
The Lightweight Directory Access Protocol
410(5)
The Object Schema
415(3)
The ADSI Object Model
418(2)
ActiveX Data Objects
420(1)
Example: Changing Employee Information
421(2)
Conclusion
423(2)
Data Access Technologies: ActiveX Data Objects and OLE DB
425(18)
The Exchange and Outlook Message Stores
425(1)
Universal Data Access
426(2)
Using ADO to Read Contacts from a Database
428(5)
Accessing Data with an Exchange OLE DB Provider
433(9)
Summary
442(1)
Site Server and Knowledge Management
443(20)
Tech Check
443(1)
Exchange and Site Server
444(1)
Site Server and Index Server
445(1)
Using Site Server to Index Data
445(1)
Working with Catalogs
445(3)
Site Server Configuration and Administration
448(11)
The MSSearch. Query Search Object
459(3)
Conclusion
462(1)
Using Microsoft Transaction Server with Exchange Agents
463(6)
Tech Check
463(1)
Overview of Microsoft Transaction Server
464(1)
How MTS Relates to Exchange
464(2)
Installing and Implementing MTS
466(2)
Conclusion
468(1)
Part V Sample Applications 469(66)
The CdoExplorer Application
471(8)
Overview of the Application
471(3)
A Look at the Code
474(1)
Building the Folder Tree
474(1)
Listing Properties
475(3)
Summary
478(1)
A Group Scheduling Application
479(16)
Description of the Business Problem
479(2)
Create a Custom Outlook Form
481(5)
Publish the Form to the Organizational Forms Library
486(1)
Creating the Visual Basic Application
487(6)
Putting It All Together
493(1)
Summary
494(1)
An Outlook Calendar Viewer Application
495(10)
Tech Check
495(1)
Description of the Business Problem
495(1)
Detailed Code Highlights
496(7)
Conclusion
503(2)
A Purchase Order Application Using Routing Objects
505(14)
Tech Check
505(1)
Description of the Business Problem
506(1)
Architecture of the Application
506(11)
Summary
517(2)
A Corporate Directory Maintenance Application
519(10)
Description of the Business Problem
519(2)
The Application in Action
521(2)
Initializing the EntryIDs
523(1)
Updating the Address Book
524(1)
Viewing Updated Properties
525(3)
Putting It All Together
528(1)
Summary
528(1)
An eCommerce Workflow Application
529(6)
Tech Check
529(1)
A Closer Look at the eCommerce Application
530(1)
Behind the Scenes: the Code
531(3)
Summary
534(1)
Additional References 535(2)
Index 537

Supplemental Materials

What is included with this book?

The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.

The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.

Excerpts

When a brokerage house approached us to design an Outlook 97 application for its prospect management system, Office 97 was still in alpha testing; the client was what Microsoft calls an "early adopter." The early adopter program was developed to help corporations migrate to the newest technology available. Translated: They already had Microsoft Office 97 in its earliest possible release, as well as the backing of Microsoft priority support.The client was a Microsoft Enterprise customer that recognized the benefit of leveraging its investment in Office 97. Prior to our arrival, it had already researched more than a dozen sales force automation products. It decided that Outlook was the way to go.A large obstacle during development was how to create a form that contained 425 fields. We don't think that the folks at Microsoft ever dreamed that someone would try to build a form with so many fields. Microsoft supported us the whole way. And it corrected some minor issues for the beta version; we never had to redo a form from scratch, because the beta version was compatible with the alpha version. It's not often that you come across a development tool that is so stable in alpha. Microsoft took time to develop Outlook well before releasing it and ultimately distributed a tool worthy of building business applications.The latest version, Outlook 2000, is the most developer-friendly of all versions. Microsoft also enhanced the programmability features of Exchange Server (Exchange) to include workflow and routing features. Outlook is so versatile that you can build a groupware solution in a matter of hours. Moreover, you can use Outlook and Exchange as components for a large-scale enterprise system. This book will help you to do all of this. Recent History of Messaging and CollaborationThis section describes the evolution of messaging and collaboration products available from Microsoft and other vendors. Figure 1 shows the evolution of Exchange and Outlook in particular. Microsoft MailMost mail systems prior to the release of Microsoft Exchange and Lotus v3.0 depended very much on the client machine. The result was slow response time and the risk of losing mail messages.Microsoft Mail was based on a shared file messaging system. Initially, it lacked a form development tool. Microsoft added the Electronic Forms Designer to facilitate form development, thereby allowing you to create forms using 16-bit Visual Basic (VB). Lotus NotesLotus was the first company to introduce a collaborative platform. It designed its Notes product to perform most of the mail processing on the server. This allowed clients to use as many powerful servers as necessary to get the job done. Notes was also designed to allow groups or departments to work better together. Lotus not only got the client server mail system boom going; it also coined the term groupware. When IBM purchased Lotus, it acquired the ability to bundle Notes with hardware and other systems. Microsoft ExchangeMicrosoft spent many hours in design sessions listening to large enterprise customers in order to understand what they liked about Lotus Notes. It identified features that were missing in Microsoft Mail and sought to make Exchange the market's most reliable messaging and collaboration solution.Microsoft wanted to ensure that current customers could gradually migrate to Exchange from their existing mail systems. Lotus Notes, Lotus ccMail, Novell's GroupWise, and even mainframe mail systems such as PROFS and SYSM can be easily migrated to Exchange. The process that it uses for migration is fairly simple. If the migrating client has a cc:Mail system, it simply uses Exchange cc:Mail migration tools, which allow Exchange to emulate cc:Mail and thereby allow the cc:Mail clients to believe that they are still communicating with an existing cc:Mail installation. This type of integration allows Exchange an

Rewards Program