In this last part of the book, you've had the chance to build three sample applications that combine two or more of the Windows Extension services covered in this book. You also reviewed some of the common design issues that you'll face when building applications that require access to multiple extension services. The sections below briefly summarize the material covered in the last four chapters.
In Chapter 33, "Design Considerations for Integrated Communications Applications," you learned some of the advantages and disadvantages of deploying software that uses the MAPI, SAPI, and TAPI extension services for Windows operating systems. The following general points were discussed:
If you keep these general rules in mind, you'll save yourself a lot of headaches when it comes time to deploy multiple-service applications.
In Chapter 34, "Building the FaxBack Application," you built a Visual Basic 4.0 project that combined TAPI and MAPI services to create a dialup fax server. With this application running on a workstation, users can dial into the workstation, receive prompts for entering their own FAX telephone number, and select a document number. Then, when the user hangs up, the workstation formats and sends the selected FAX document to the user's FAX address.
This project used an evaluation version of Pronexus' VBVoice telephony control set. The VBVoice controls were used to answer the incoming call, and prompt the caller through entering their FAX number and the selected document number. Once this was done, the VBVoice controls turned the collected data over to the MAPI system for delivery of the selected FAX.
The Simple Mail API (SMAPI) interface was used to provide access to the message services of Windows. The SMAPI interface was chosen because it has a very small "footprint." While the MAPI.OCX controls and the OLE Messaging library would also work fine, the SMAPI provided all the MAPI access that was needed for the FaxBack project. This was a good example of how you can simplify programming and deployment by selecting the simplest implementation model that fulfills the project requirements.
In Chapter 35, "Creating the Voice Phone Application," you used SAPI and TAPI services to create a true "hands-free" telephone. With this program and a pc speaker phone, users can look up and dial telephone numbers by simply speaking voice commands to the workstation. Users are able to initiate database adds, edits, and deletes, or issue a voice command that will search the database for a name. Users can also tell the program to Dial Mike and Voice Phone will locate the record in the database, pull up the phone number, place the call, and prompt the user to begin speaking.
As an added bonus, this program has audible responses to help requests, and speaks the names and telephone numbers of selected records in the database. Even the About box is "read" to you.
Again, a simple TAPI interface was all that was needed for this project. Instead of adding Full TAPI services to the application, only Assisted TAPI was implemented. This provided all the power and features needed to implement a voice-activated outbound dialing program.
Chapter 36, "The Talk Mail Project," presented the last integration project in the book, in which you combined MAPI services with an audio recording. The Talk Mail project allows you to record messages, and then send them to others via e-mail. It's a bit like an asynchronous telephone conversation.
With Talk Mail you can select one or more recipients, press the record button, record a message, and ship both the header data and the audio binary file to any other person(s) in the MAPI directory.
The OLE Messaging library was used to implement the MAPI services for this program. This offered the ability to define a unique message class for audio e-mail. This way, the Talk Mail client can search incoming mail for audio messages, and present only those to the user for review.
The audio recording was handled using the Windows Media Control Interface (MCI). The Visual Basic 4.0 MCI control provided easy access to recording, storage, and playback facilities for WAV format audio files. Adding WAV support for an e-mail client is as easy as adding the MCI control to a project.
This project also made use of the new Windows 95 controls for Visual Basic, including the listview control, the toolbar control, and the statusbar control.
The material in this book covers the multiple implementations of MAPI services, SAPI services, and TAPI services for 32-bit Windows operating systems. Even though this book is no quick read, it does not cover the three important Windows extension services completely. No single book could hope to accomplish that. The best way to learn about each of these API sets in detail is to work with them in your own programs. Only through constant experimentation and invention will you really learn the intricacies of these important Windows services.
It's also important to keep up with the latest developments regarding each of these API services. You can find lots of pointers to online and printed resources in the appendixes at the back of this book. You'll even find a Web site dedicated to supporting this book (iac.net/~mamund/CDGPage.htm).
I hope you'll find this book helpful in your quest to learn more about MAPI, SAPI, and TAPI implementations. I suspect many of you have already been struck with new ideas on how you can use these services to create new and valuable Windows applications. I also hope to hear from many of you as you discover new ways to bring speech, telephony, and e-mail services to the desktop. You can write me at my e-mail address (MikeAmundsen@msn.com), or visit the Web site. I look forward to hearing from you.
Good luck!
MCA