Desktop Applications with Microsoft Visual C++ 6.0 MCSD Training Kit - page 2

cover
Copyright© 1999 by Microsoft Corporation
PUBLISHED BY
Microsoft Press
A Division of Microsoft Corporation
One Microsoft Way
Redmond, Washington 98052-6399

Copyright © 1999 by Microsoft Corporation

All rights reserved. No part of the contents of this book may be reproduced or transmitted in any form or by any means without the written permission of the publisher.

Library of Congress Cataloging-in-Publication Data
Desktop Applications with Microsoft Visual C++ 6.0 : MCSD Training Kit
    / Microsoft Corporation.
          p. cm.
       Includes index.
       ISBN 0-7356-0795-8
       1. Electronic data processing personnel--Certification.
    2. Microsoft software--Examinations Study guides.  3. C++ (Computer
    program language)  4. Microsoft Visual C++.  I. Microsoft
    Corporation.
    QA76.3.D47    1999
    005.26'8--dc21                                                              99-33877

Printed and bound in the United States of America.

1 2 3 4 5 6 7 8 9  QMQM  4 3 2 1 0 9

Distributed in Canada by Penguin Books Canada Limited.

A CIP catalogue record for this book is available from the British Library.

Microsoft Press books are available through booksellers and distributors worldwide. For further information about international editions, contact your local Microsoft Corporation office or contact Microsoft Press International directly at fax (425) 936-7329. Visit our Web site at mspress.microsoft.com.

NT is a trademark of Northern Telecom Limited. ActiveX, Developer Studio, FoxPro, IntelliSense, JScript, Microsoft, Microsoft Press, MSDN, MS-DOS, Natural, SourceSafe, Visual Basic, Visual C++, Visual InterDev, Visual J++, Visual SourceSafe, Visual Studio, Win32, Windows, Windows NT, and Wingdings are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries. Other product and company names mentioned herein may be the trademarks of their respective owners.

The example companies, organizations, products, people, and events depicted herein are fictitious. No association with any real company, organization, product, person, or event is intended or should be inferred.

Acquisitions Editor: Eric Stroo
Project Editor: Victoria Thulman

About This Book

Welcome to Desktop Applications with Microsoft Visual C++ 6.0 MCSD Training Kit. By completing the chapters and associated Lab exercises in this course, you will acquire the knowledge and skills necessary to develop solutions using Visual C++ 6.0.

This book addresses the objectives of the Microsoft Certified Solution Developer (MCSD) Exam 70-016, "Designing and Implementing Desktop Applications with Microsoft Visual C++ 6.0." This book provides content that supports the skills measured by the 70-016 exam. Review questions at the end of each chapter test your knowledge of the chapter material, and help you prepare for the exam.

NOTE
For more information on becoming a Microsoft Certified Solution Developer, see "Microsoft Certified Professional Program" later in this section.

Intended Audience

This course is designed for individuals interested in developing their skills in Microsoft Visual C++ 6.0 while developing desktop applications. Topics include using the Microsoft Solutions Framework (MSF); building applications with the Microsoft Foundation Classes (MFC); creating user interfaces; implementing application behaviors; and working with persistent data. Also included are adding database support to applications; creating Component Object Model (COM) components and ActiveX controls; using MFC and the Active Template Library (ATL); Internet programming; error handling, debugging, and testing; and application deployment.

Prerequisites

This book assumes that you have a good working knowledge of C++ application development and are acquainted with but not knowledgeable about Microsoft Visual C++ 6.0 and the Microsoft Windows Application Programming Interface (API). Before beginning this self-paced course, you should have:

  • A thorough working knowledge of the C++ language as described by the ANSI standard, including language features such as templates and exception handling.
  • A good understanding of the principles of object-oriented software development.
  • A good basic understanding of the operation of a Windows application, and the features of the Windows user interface.

Course Overview

This course combines text, graphics, and review questions to teach you about designing and implementing desktop applications with Visual C++ 6.0. The course assumes that you will work through the book from beginning to end. However, you can choose a customized track and complete only the sections that interest you. If you choose to customize your course, see the "Before You Begin" section in each chapter for important information regarding prerequisites.

The book is divided into the following chapters:

  • Chapter 1, Preparing for Application Development In this chapter, you will learn about the elements of designing a Visual C++ application using MSF design concepts. You will study the issues that you should consider in planning your design. You will also be given an overview of the Visual C++ development tools through a description of the installation options.
  • Chapter 2, Visual C++ Development Environment This chapter discusses the development environment and the tools that enable you to create applications using Visual C++. You will use the MFC AppWizard to generate a development project, which contains source code and resource files that you can compile into a working executable program. You will explore features of the Visual C++ development environment and learn how to configure options for your project. You will also learn how to use Microsoft Visual SourceSafe to manage source code control for a software development team.
  • Chapter 3, Building Applications with the Microsoft Foundation Classes In this chapter, you will learn about specific MFC classes and their role in Windows application development. You will learn how the MFC framework implements the basic components of a Windows application, and how it provides an architecture that enables the processing, display, and storage of the application's data.
  • Chapter 4, Creating the User Interface This chapter explores some of the elements of a typical Windows application user interface. You will edit application menus and toolbars, and add code to handle user selections. You will update the interface to communicate information to the user. You will also learn how dialog boxes are used in an application, and you will use the dialog editor to create a dialog box template.
  • Chapter 5, Implementing Application Behaviors This chapter discusses some of the MFC programming techniques that you can use to implement the operational behavior of an application. You will learn how to make use of dialog box classes, and also how to take advantage of the multithreading capabilities of the Win32 platform. You will learn more about the techniques used to display application data to an on-screen window or a printer. You will also implement Help for an MFC application.
  • Chapter 6, Persistent Data In this chapter, you will learn ways to make your application data and settings persistent. You will use the MFC CFile class for general file input/output (I/O) operations. You will also use the serialization facilities of the MFC framework to save and restore structured application data. Finally, you will save individual data items, such as application settings, in the system registry.
  • Chapter 7, Adding Database Support In this chapter, you will learn about a variety of data access interfaces available to Visual C++ application developers. These interfaces include features of MFC that provide support for data access and ActiveX Data Objects (ADO), Microsoft's standard interface to essentially all forms of external data.
  • Chapter 8, Introducing the Component Object Model This chapter provides a conceptual introduction to COM. COM is a binary standard that defines a way for software objects, developed in different languages or operating on different platforms, to communicate with each other and with other applications. Also included in this introduction are ActiveX controls. ActiveX controls are COM components designed for placement in an ActiveX control container, such as an application dialog box or a Web page, to perform a self-contained function.
  • Chapter 9, Creating COM Components In this chapter, you will create a simple COM component using the ActiveX Template Library (ATL). You will review aspects of the source code generated for your COM object by the ATL wizards, and learn about other approaches to generating COM components.
  • Chapter 10, COM Clients This chapter explains how applications and components can act as clients of COM server components by making use of the services that the component provides. You will learn how the Visual C++ compiler simplifies the creation of COM client code. You will also learntechniques for creating COM objects that contain instances of other COM objects.
  • Chapter 11, Creating ActiveX Controls In this chapter, you will create a simple ActiveX control using MFC, and analyze the MFC-generated code. You will then develop the same control using the ActiveX Template Library (ATL). You will thus be able to compare the two development methods and assess which method might be most appropriate in a particular development scenario.
  • Chapter 12, Internet Programming This chapter introduces some of the features of Visual C++ 6.0 that allow you to create Internet-based applications. You will learn how you can use Dynamic HTML to create application user interfaces, and how you can add Web-browsing capabilities to your applications and components. You will study how to develop an application that creates ActiveX documents—documents that can be hosted by Microsoft Internet Explorer for viewing and editing over the Web. You will also learn how to create Internet Server API (ISAPI) DLLs that enhance the services provided by Microsoft Web servers.
  • Chapter 13, Error Handling, Debugging, and Testing In this chapter, you will learn about the three steps that make up the second half of the software development process: error handling, debugging, and testing. These final steps are an essential part of the development process, and merit at least as much attention as that given to the designing and coding phases.
  • Chapter 14, Deploying Desktop Applications In this chapter, you will learn some of the ways a Windows application created with Visual C++ can be efficiently deployed. After presenting an overview of deployment methods, the chapter shows how to use InstallShield, a tool that helps automate the creation of installation programs for Visual C++ projects. You will also learn how installation programs install ActiveX controls and other COM components, and how the Microsoft Zero Administration for Windows (ZAW) initiative will affect program installation in the future.

Features of This Book

The following features are designed to enhance the usefulness of this course:

  • Each chapter opens with a "Before You Begin" section, which provides information about chapter prerequisites.
  • Each chapter is divided into lessons. Most lessons contain procedures that give you an opportunity to use the concepts presented, or explore the part of the application described in the lesson. All procedures are preceded by a bullet symbol.
  • Each lesson ends with a short Lesson Summary of the material presented.
  • The Review section at the end of the chapter lets you test what you have learned in the lesson.
  • The Appendix, "Review Questions and Answers," contains all of the book's review questions and corresponding answers.
  • The Glossary contains key terms and definitions used in the course.

Conventions Used in This Book

Before you start reading any of the chapters, it is important that you understand the terms and notational conventions used in this book.

Notational Conventions

  • Italic is used for emphasis when defining new terms or indicating placeholders. Italic is also used for references to book, chapter, and section titles.
  • Bold is used to emphasize selections you make during labs and procedures and to highlight elements such as functions, methods, and classes.
  • Names of files and folders might appear in Title Caps. Unless otherwise indicated, you can use all lowercase letters when you type a file or folder name in a dialog box or at a command prompt.
  • File name extensions appear in all lowercase.
  • Acronyms appear in all uppercase.
  • Monospace type represents code samples, examples of screen text, or entries that you might type at a command prompt or in initialization files.
  • Square brackets [ ] are used in syntax statements to enclose optional items. For example, [filename] in command syntax indicates that you can choose to type a file name with the command. Type only the information within the brackets, not the brackets themselves.

Keyboard Conventions

  • A plus sign (+) between two key names means that you must press those keys at the same time. For example, "Press ALT+TAB" means that you hold down ALT while you press TAB.
  • A comma (,) between two or more key names means that you must press each of the keys consecutively, not together. For example, "Press ALT, F, X" means that you press and release each key in sequence. As another example, "Press ALT+W, L" means that you first press ALT and W together, and then release them and press L.
  • You can choose menu commands with the keyboard. Press the ALT key to activate the menu bar, and then sequentially press the keys that correspond to the highlighted or underlined letter of the menu name and the command name. For some commands, you can also press a key combination listed in the menu.
  • You can select or clear check boxes or option buttons in dialog boxes with the keyboard. Press the ALT key, and then press the key that corresponds to the underlined letter of the option name. Alternately, you can press TAB until the option is highlighted, and then press the spacebar to select or clear the check box or option button.
  • You can cancel the display of a dialog box by pressing the ESC key.

About the Companion CD

The companion CD contains sample exam questions and the files used in the hands-on labs and procedures in the text.

Using the Lab Files

The companion CD contains files required to perform the hands-on lab exercises. To copy the lab files to your hard drive, run the Setup.exe program in the root directory of the CD and follow the instructions that appear on your screen.

By default, the lab files are copied to the \DAVC folder. Each chapter in the book has its own subfolder. (For example, material relating to Chapter 1 can be found in \DAVC\Chapter1.) Each of these folders might contain the following subfolders:

  • The \Code folder contains source files and code snippets that you can use as you complete the labs or exercises in the lessons. These files are referenced at the top of the code listing. The icon shown above identifies the sections of code contained on the CD. You can cut and paste these files to save yourself some typing. (Be sure to exclude the labels.)
  • The \Data folder contains other data files that you will use in the course of developing and testing the lab exercises.
  • The \Exercises folder contains files related to the exercises in the lessons.
  • The \Lab folder contains project files for the labs that appear at the end of each chapter. Most \Lab folders will have the following subfolders:
    • The \Partial folder contains the application as it looks at the beginning of each lab.
    • The \Solution folder contains a completed version of the lab solution. This project has had each step applied and can be used to review the completed lab.

The recommended procedure is to follow the labs in numerical order. Save your work and use it in the next lab to continue developing the example application. If you do not complete a lab, you can start the next lab using the project in the \DAVC\Chapter n\Lab\Partial folder, which will allow you to proceed from the appropriate starting point.

You should check your work against the project in the \DAVC\Chapter n\Lab\Solution folder after you complete each lab.

Beneath the \DAVC folder is the \Database folder, which contains files that you use to set up the database used by the labs.

Self Test Software Visual C++ 6.0 Sample Exam

To practice taking a certification exam, you can install the sample exam from Self Test Software (STS) contained on the companion CD. Designed in accordance with the actual Microsoft certification exam, this sample includes questions to help you assess your understanding of the materials presented in this book. Each question includes feedback with an associated course reference so that you can review the material presented. Visit the STS Web site at www.selftestsoftware.com for a complete list of available practice exams.

The Self Test Software demonstration for Exam 70-016 is located in the \Exam folder. To install the sample exam on your hard drive, run the Mp016.exe program in this folder and follow the instructions that appear on your screen.

Microsoft Visual C++ 6.0 Starts Here

This companion CD also contains the Microsoft Visual C++ 6.0 Starts Here product to help you become more familiar with Visual C++ 6.0. It is located in the \MVC6SH folder (on the companion CD). For installation instructions, refer to the Readme.txt file.

SQL Server 7.0 Trial Edition

On a separate CD, you will find a 120-day limited trial edition of Microsoft SQL Server 7.0 that you can install to enable you to complete the labs. Please refer to the "Getting Started" section for information on how to install SQL Server and how to set up the databases that are used by the labs in this courseware.

Getting Started

To complete the exercises in this book, your computer must meet the following hardware and software requirements.

Hardware Requirements

All hardware should be on the Microsoft Windows Hardware Compatibility List located at www.microsoft.com/hcl.

Computer/Processor Personal computer with a Pentium-class processor; 166-megahertz (MHz) or higher processor recommended
Memory 24 megabytes (MB) of RAM for Microsoft Windows 95 or later (32 MB recommended); 32 MB for Microsoft Windows NT 4.0 (64 MB recommended)
Hard Disk Space Visual C++: 300 MB typical; 360 MB maximum
Microsoft Developer Network (MSDN) 57 MB typical; 493 MB maximum
Internet Explorer (IE) 43 MB typical; 59 MB maximum
Windows NT 4.0 Option Pack 40 MB for Windows 95 or later;
200 MB for Windows NT 4.0
SQL Server 7.0 170 MB typical; 266 MB maximum
Drive CD-ROM drive
Display VGA or higher-resolution monitor; Super VGA recommended
Operating System Windows 95; Microsoft Windows 98; Windows NT Workstation 4.0 with Service Pack 4 or later; Windows NT Server 4.0 with Service Pack 4 or later
Peripheral/Miscellaneous Microsoft Mouse or compatible pointing device

Software Requirements

The following software is required to complete the exercises in this course:

  • Visual C++ 6.0, Professional or Enterprise Edition
  • Visual SourceSafe
  • Windows NT 4.0 Option Pack including Microsoft Internet Information Server or Microsoft Personal Web Server
  • SQL Server 7.0 (trial version included with this courseware)
  • Internet Explorer 4.01 with Service Pack 2 or higher

Installation Instructions

These instructions describe how to install the software you need to complete the exercises and labs in this book, including the following:

  • Windows NT 4.0 Option Pack
  • Internet Information Server 4.0 (if you are running Windows NT Server 4.0)
  • - or -

    Personal Web Server (if you are running Windows NT Workstation 4.0, Windows 95, or Windows 98)

    Both products can be downloaded free of charge from Microsoft's Web site at www.microsoft.com.

  • SQL Server 7.0 Standard Edition (if you are running Windows NT Server 4.0)
  • - or -

    SQL Server 7.0 Desktop Edition (if you are running Windows NT Workstation 4.0, Windows 95, or Windows 98)

    A limited 120-day trial edition is included with this courseware.

  • SQL databases that have been created for use with the labs in this book.
  • These are installed from the companion CD to the \Database folder on your hard drive.

Installing the Windows NT 4.0 Option Pack

The Windows NT 4.0 Option Pack contains Internet Information Server (IIS), which can be installed on Windows NT Server 4.0; and Personal Web Server (PWS), which can be installed on Windows NT Workstation 4.0, Windows 95, or Windows 98. You can obtain the Windows NT 4.0 Option Pack from the Web at www.microsoft.com/ntserver/nts/downloads/recommended/nt4optpk/default.asp

NOTE
To install all the components of the Windows NT 4.0 Option Pack, networking and the TCP/IP protocol must be installed.

  • To install and configure the Windows NT 4.0 Option Pack including IIS on Windows NT Server 4.0
    1. Download and run the Setup.exe file. Because you have Service Pack 4 or greater installed, the following message appears: "Setup detected that Windows NT 4.0 SP4 or greater is installed on your machine. We haven't tested this product on SP4. Do you wish to proceed?" Click Yes. If the message appears again, click Yes again.
    2. When the Windows NT 4.0 Option Pack Setup window appears, click Next.
    3. Click Accept to agree with the terms of the license agreement.
    4. Choose a Typical installation. Choose the directories in which to install the files or accept the defaults, and then click Next.
    5. For SMTP and NNTP Service Setup, choose the directories you want or accept the defaults, and click Next.
    6. Click Finish when installation is complete.
    7. Click Yes to restart the computer, and accept the systems settings change.

    Installing Personal Web Server

    Personal Web Server (PWS) comes as a version of the Windows NT 4.0 Option Pack that is configured for installation on Windows NT Workstation 4.0, Windows 95, or Windows 98. You can download PWS from the Web at www.microsoft.com/windows/ie/pws/default.htm.

    NOTE
    To install all the components of the Personal Web Server, networking and the TCP/IP protocol must be installed.

  • To install and configure Personal Web Server on Windows NT Workstation 4.0
    1. Download and run the Setup.exe file. Because you have Service Pack 4 or greater installed, the following message appears: "Setup detected that Windows NT 4.0 SP4 or greater is installed on your machine. We haven't tested this product on SP4. Do you wish to proceed?" Click Yes. If the message appears again, click Yes again.
    2. When the Windows NT 4.0 Option Pack Setup window appears, click Next.
    3. Click Accept to agree to the terms of the license agreement.
    4. Choose a Typical installation. Choose a directory in which to install the Default Web home directory or accept the default, and then click Next.
    5. Click Finish when installation is complete.
    6. Click Yes to restart the computer, and accept the systems settings change.

  • To install and configure Personal Web Server on Windows 95 or Windows 98
    1. Download and run the Setup.exe file. If you are installing on Windows 95, the following message might be displayed: "Setup has installed Winsock2 on your machine and needs to reboot to complete the installation." When prompted to restart your system, click Yes. After your computer restarts, the Personal Web Server Setup window appears.
    2. In the Personal Web Server Setup window, click Next.
    3. Click Accept to agree with the terms of the license agreement.
    4. Choose a Typical installation. Choose a directory in which to install the Default Web home directory or accept the default, and then click Next.
    5. Click Finish when installation is complete.
    6. Click Yes to restart the computer, and accept the systems settings change.

    Installing SQL Server 7.0 Standard Edition

  • To install and configure SQL Server 7.0 Standard Edition on Windows NT Server 4.0
    1. Insert the SQL Server 7.0 CD-ROM. Autorun starts.
    2. Choose Install SQL Server Components.
    3. Choose Database Server - Standard Edition.
    4. In the Select Install Method window, choose the Local installation and click Next.
    5. In the Welcome window, click Next.
    6. Click Yes to agree with the terms of the license agreement.
    7. Complete the User Information with your name (required) and company information (optional).
    8. Choose Typical as the Setup Type, set the Destination Folder for Program Files and Data Files to c:\mssql7, accept the defaults, and click Next.
    9. In the Services Accounts window, choose Use the same account for each service. Choose Use the Local System account for Service Settings. Click Next.
    10. Click Next to start copying files.
    11. Choose Per Seat as the licensing mode and click Continue.
    12. When the per-seat licensing agreement is displayed, select the I agree that check box and click OK.
    13. After the necessary files are copied to your hard drive, click Finish in the Setup Complete dialog box.
    14. Exit the SQL Server setup program.
    15. Restart your computer to configure the Data Access Component. (If you skip this step, you will not be able to import data from a text file later in these instructions.)

    Installing SQL Server 7.0 Desktop Edition

  • To install and configure SQL Server 7.0 Desktop Edition on Windows NT Workstation 4.0
    1. Insert the SQL Server 7.0 CD-ROM. Autorun starts.
    2. Choose Install SQL Server Components.
    3. Choose Database Server - Desktop Edition.
    4. In the Select Install Method window, choose the Local installation and click Next.
    5. In the Welcome window, click Next.
    6. Click Yes to agree with the terms of the license agreement.
    7. Complete the User Information with your name (required) and company information (optional).
    8. Choose Typical as the Setup Type, set the Destination Folder for Program Files and Data Files to c:\mssql7, accept the defaults, and click Next.
    9. In the Services Accounts window, choose Use the same account for each service. Choose Use the Local System account for Service Settings and click Next.
    10. To start copying files, click Next.
    11. After the necessary files are copied to your hard drive, click Finish in the Setup Complete dialog box.
    12. Exit the SQL Server setup program.
    13. Restart your computer to configure the Data Access Component. (If you skip this step, you will not be able to import data from a text file later in these instructions.)

  • To install and configure SQL Server 7.0 Desktop Edition on Windows 95 or Windows 98
    1. Insert the SQL Server 7.0 CD-ROM. Autorun starts.
    2. Choose Install SQL Server Components.
    3. Choose Database Server - Desktop Edition.
    4. In the Welcome window, click Next.
    5. Click Yes to agree with the terms of the license agreement.
    6. Complete the User Information with your name (required) and company information (optional).
    7. Choose Typical as the Setup Type.
    8. Set the Destination Folder for Program Files and Data Files to c:\mssql7, accept the defaults, and click Next.
    9. To start copying files, click Next.
    10. When setup is complete, click Yes to restart your computer, and then click Finish.

    SQL Server 7.0 Database Configuration for All Operating Systems

  • To create the Stocks SQL Server database
    1. On the Start menu, choose Programs/SQL Server 7/Enterprise Manager.
    2. Expand SQL Server(s) up to and including the local computer name.
    3. Right-click the Databases object. Select New Database and type Stocks in the Name text box. Accept all defaults and click OK.
    4. Verify that the Stocks database was created, by opening the Databases object and viewing the Stocks database.

  • To create the Pricehistory table in the Stocks database
    1. On the Tools menu of the SQL Enterprise Manager, choose SQL Server Query Analyzer.
    2. Open the CreatePHTable.sql script from the \Database folder that was installed from the companion CD. Using the DB: drop-down list box, change the database window to the Stocks database. Press F5 to execute the script, or click the Execute Query button (with a green right arrow icon) on the toolbar of the SQL Server Query Analyzer. The following message appears: "The command(s) completed successfully."
    3. Minimize the SQL Server Query Analyzer.

  • To import data into the Pricehistory table in the Stocks database
    1. Using the Enterprise Manager, expand SQL Server(s) up to and including the local computer name.
    2. Expand the Databases object and click the Stocks database. On the right side of the screen, choose Import Data.
    3. When the DTS Import Wizard opens, click Next.
    4. From the Sources drop-down list, choose Text file. In the File name box, type the path for the PHImportData.txt file that was installed from the companion CD to the \Database folder, and click Next.
    5. In the Select file format window, check that Delimited is chosen, accept all defaults, and click Next.
    6. Verify that Comma is chosen as the Column Delimiter and click Next.
    7. In the Destination drop-down box, verify that Microsoft OLE DB Provider for SQL Server is selected. In the Server box, check that your local server name is displayed. Choose Use SQL Server authentication, type sa as the username, and leave the password blank. Choose Stocks as the Database and click Next.
    8. In the Select Source Tables dialog box, change Destination table to [stocks].[dbo].[pricehistory], and click Next.
    9. Ensure that the Run immediately check box is selected and click Next.
    10. In the Completing the DTS Wizard dialog box, click Finish.
    11. The following message appears: "Successfully transferred 1 table(s) from flat file to Microsoft SQL Server." Click OK.
    12. When the Transferring Data dialog box appears, click Done.
    13. Open the SQL Server Query Analyzer and click the New Query button on the toolbar. Type the following command: select * from pricehistory.
    14. Press F5 to execute the script, or click the Execute Query button on the toolbar of the SQL Server Query Analyzer. The data from the table appears in the results window.

    Using This Book to Prepare for Certification

    Where to Find Specific Skills in This Book

    The following tables provide lists of the skills measured on the Microsoft Certified Solution Developer (MCSD) Exam 70-016 and where in this book you will find information relating to each skill.

    NOTE
    Exam skills are subject to change without notice and at the sole discretion of Microsoft.

    Deriving the Physical Design

    Skills measured Location in book
    Explain the elements of an application that is based on the MFC framework.
        Identify differences between developing an MFC application for Windows NT, Windows 95, and Windows 98. Chapter 3, Lesson 1
        Explain when to use the Platform Software Development Kit (SDK) for an MFC application and when to use the functionality provided by the MFC framework. Chapter 3, Lesson 1
        Choose whether to use an MFC regular DLL or an MFC extension DLL. Chapter 3, Lesson 1
        Explain how command messages are routed between a user interface object and a handler function. Chapter 3, Lesson 3
        Describe the Document/View architecture. Chapter 3, Lesson 4
        Explain the MFC drawing, printing, and print preview architecture. Chapter 3, Lesson 4
        Explain how the MFC architecture supports multithreading. Chapter 5, Lesson 3
    Evaluate whether access to a database should be encapsulated in an object.
        Evaluate whether a database should be incorporated in the application. Chapter 7
        Identify which type of library to use. Valid libraries include MFC, ATL, and the SDK. Chapter 7
        Identify which type of object to use. Valid object types include ADO, ODBC, and RDO. Chapter 7, Lesson 1
    Design the properties, methods, and events of components. Chapter 9, Lesson 1

    Establishing the Development Environment

    Skills measured Location in book
    Establish the environment for source-code control by using Visual SourceSafe. Issues include multiple user/multiple location development and versioning of the source code. Chapter 2, Lesson 3
    Install the Visual C++ development tools that are necessary for developing a desktop application on various platforms. Platforms include Windows NT Workstation, Windows NT Server, Windows 95, and Windows 98. Chapter 1, Lesson 2

    Creating the User Interface

    Skills measured Location in book
    Implement the navigation for the user interface.
        Create and integrate toolbars in an MFC application. Chapter 4, Lesson 1
        Implement ToolTips for toolbar buttons. Chapter 4, Lesson 1
        Implement and write to the status bar in an MFC application. Chapter 4, Lesson 1
        Given a scenario, select the appropriate options to create a new application by using the MFC AppWizard. Chapter 2, Lesson 1
        Create and edit user interface objects by using the resource editors. Chapter 4
        Create a new class by using ClassWizard. Chapter 4, Lesson 1, Lab 4
        Add member variables by using ClassWizard. Chapter 5, Lesson 1
        Add a message handler for an event by using ClassWizard. Chapter 5, Lesson 1
    Create data input forms and dialog boxes.
        Create a static menu by using the menu editor. Chapter 4, Lesson 1
        Create a dialog box by using the dialog editor. Chapter 4, Lesson 2
        Create property sheets by using ClassWizard. Chapter 5, Lesson 1
        Create dialog box classes and members by using ClassWizard. Chapter 4, Lesson 2; Chapter 5, Lesson 1
        Use the CFormView class to create a view that contains controls. Chapter 7, Lesson 2
    Validate user input.
        Validate user input by using DDV. Chapter 5, Lesson 1
        Validate user input by using ClassWizard. Chapter 5, Lesson 1
    Process user input from a form or a dialog box by using DDX. Chapter 5, Lesson 1
    Use an ActiveX user interface control.
        Insert a control into a project by using the Components and Controls Gallery. Chapter 7, Lesson 3
        Handle an event from an ActiveX user interface control. Chapter 10, Lab 10
        Dynamically create an ActiveX user interface control. Chapter 11, Lab 11
    Use the MFC AppWizard to create an ISAPI DLL that can dynamically change Web content. Chapter 12, Lesson 2
    Incorporate Dynamic HTML scriptlets into a Visual C++ desktop application. Chapter 12, Lesson 1
    Create or modify an MFC application to store and retrieve personalized user settings from the registry. Chapter 6, Lesson 3
    Display data from a data source.
        Implement standard serialization by using Serialize. Chapter 6, Lesson 2
        Implement persistence by using CFile. Chapter 6, Lesson 1
        Display data by using CArchive. Chapter 6, Lesson 2
        Connect a recordset to dialog box controls. Chapter 7, Lesson 2
    Instantiate and invoke a COM component. Chapter 10
    Add asynchronous processing.
        Create secondary threads. Chapter 5, Lesson 3
        Download ActiveX user interface controls. Chapter 14, Lesson 4
    Implement online user assistance in an application.
        Implement status bars. Chapter 4, Lesson 1
        Implement ToolTips. Chapter 4, Lesson 1
        Implement context-sensitive Help. Chapter 5, Lesson 4
        Create Help for an application that provides links to a Web page containing Help files. Chapter 5, Lesson 4
    Implement error handling.
        Implement exception handling. Chapter 13, Lesson 1
        Given an error, determine how to handle the error. Chapter 13, Lesson 1
    Use an active document. Chapter 12, Lesson 2

    Creating and Managing COM Components

    Skills measured Location in book
    Create a COM component that implements business rules or logic.
        Create a COM component by using ATL. Chapter 9, Lesson 1
        Create a COM component by using the SDK. Chapter 9, Lesson 2
        Create a COM component by using MFC. Chapter 9, Lesson 2
        Create an ATL COM in-process COM component and an ATL COM client to access it. Chapter 9, Lesson 1; Chapter 10, Lesson 1
        Create an ATL COM out-of-process COM component and an ATL COM client to access it. Chapter 9, Lesson 1
    Chapter 10, Lesson 1
    Create ActiveX user interface controls.
        Create an ActiveX user interface control by using ATL. Chapter 11, Lesson 2
        Create an ActiveX user interface control by using the SDK. Chapter 8, Lesson 5
        Create an ActiveX user interface control by using MFC. Chapter 11, Lesson 1
    Create a COM component that reuses existing components.
        Explain the difference between aggregation and containment. Chapter 10, Lesson 2
    Add error handling to a COM component. Chapter 13, Lesson 2
    Log errors into an error log. Chapter 13, Lesson 1
    Create and use an active document. Chapter 12, Lesson 2
    Debug a COM component. Chapter 13, Lesson 4
    Create a COM component that supports apartment-model threading. Models include single-threaded apartment, multithreaded apartment, or both. Chapter 8, Lesson 4

    Creating Data Services

    Skills measured Location in book
    Access and manipulate data by using ad hoc queries. Methods include ODBC, ADO, DAO, RDO, and data source control. Chapter 7, Lessons 2, 3
    Handle database errors. Chapter 7, Lesson 2

    Testing and Debugging the Solution

    Skills measured Location in book
    Determine appropriate debugging techniques.
        Use library debugging support. Chapter 13, Lesson 4
        Use the IDE. Chapter 13, Lesson 4
        Use Depends. Chapter 13, Lesson 5
        Use Spy++. Chapter 13, Lesson 6
        Given a scenario, describe the type of debugging support that Visual C++ provides for resolving programming errors. Chapter 13
        Step through code by using the integrated debugger. Chapter 13, Lesson 4
        List and describe the MFC macros that are used to debug applications. Chapter 13, Lesson 3
    Identify and describe the elements of a test plan. Elements include beta testing, regression testing, unit testing, integration testing, and stress testing.
        Evaluate the need for beta testing. Chapter 13, Lesson 7
        Incorporate stress tests. Chapter 13, Lesson 7

    Deploying an Application

    Skills measured Location in book
    Create a Setup program that installs an application and registers the COM components. Chapter 14, Lessons 1, 2
    Use .cab files to package and distribute an application. Chapter 14, Lesson 1
    Plan disk-based deployment or CD-based deployment for an application. Chapter 14, Lesson 4
    Plan Web-based deployment for an application. Chapter 14, Lesson 4
    Plan network-based deployment for an application. Chapter 14, Lesson 4
    Given a scenario, evaluate the use of Microsoft Systems Management Server as an aid to deploying a solution. Chapter 14, Lesson 5
    Create a setup program that installs an application and allows for the application to be uninstalled. Chapter 14, Lesson 2
    Evaluate Zero Administration for Windows (ZAW) as an aid to deploying a solution. Chapter 14, Lesson 5

    Maintaining and Supporting an Application

    Skills measured Location in book
    Fix errors, and take measures to prevent future errors. Chapter 13
    Deploy application updates. Chapter 14, Lesson 4

    Microsoft Certified Professional Program

    The Microsoft Certified Professional (MCP) program provides the best method of proving your command of current Microsoft products and technologies. Microsoft, an industry leader in certification, is on the forefront of testing methodology. Its exams and corresponding certifications are developed to validate your mastery of critical competencies as you design and develop, or implement and support, solutions with Microsoft products and technologies. Computer professionals who become Microsoft certified are recognized as experts and are sought after industry-wide.

    The MCP program offers five certifications, based on specific areas of technical expertise:

    • Microsoft Certified Professional Demonstrates in-depth knowledge of at least one Microsoft operating system. Candidates can pass additional Microsoft certification exams to further define their skills with the Microsoft BackOffice integrated family of server software products, development tools, or desktop programs.
    • Microsoft Certified Professional—Specialist: Internet Designates MCPs with a specialty in the Internet, who are qualified to plan security, install, and configure server products, manage server resources, extend servers to run CGI scripts or ISAPI scripts, monitor and analyze performance, and troubleshoot problems.
    • Microsoft Certified Systems Engineer (MCSE) Demonstrates the ability to effectively plan, implement, maintain, and support information systems in a wide range of computing environments with Windows 98, Windows NT, and BackOffice.
    • Microsoft Certified Solution Developer (MCSD) Demonstrates the ability to design and develop custom business solutions with Microsoft development tools, technologies, and platforms, including Microsoft Office and BackOffice.
    • Microsoft Certified Trainer (MCT) Demonstrates the instructional and technical ability to deliver Microsoft Official Curriculum through a Microsoft Certified Technical Education Center (Microsoft CTEC).

    Microsoft Certification Benefits

    Microsoft certification, one of the most comprehensive certification programs available for assessing and maintaining software-related skills, is a valuable measure of an individual's knowledge and expertise. Microsoft certification is awarded to individuals who have successfully demonstrated their ability to perform specific tasks and implement solutions with Microsoft products. As with any skills assessment and benchmarking measure, certification brings a variety of benefits to the individual, and to employers and organizations. Not only does certification provide guidance for what an individual should know to be proficient, but it also provides an objective measure for employers to consider when hiring IT professionals.

    Technical Support

    Every effort has been made to ensure the accuracy of this book and the contents of the companion CD. Microsoft Press provides corrections for books through the World Wide Web at:

    http://mspress.microsoft.com/support/

    If you have comments, questions, or ideas regarding this book or the companion CD, please send them to Microsoft Press via e-mail to:

    tkinput@microsoft.com

    or via postal mail to:

    Microsoft Press
    Attn: Desktop Applications with Microsoft Visual C++ 6.0 MCSD Training Kit Editor
    One Microsoft Way
    Redmond, WA 98052-6399

    Please note that product support is not offered through the above addresses.

    About the Authors

    This course was developed for Microsoft Press by ARIS Corporation. ARIS is an innovative, professional services and software company that works with clients globally to maximize the usefulness of existing information technologies and the integration of new technologies. ARIS enables companies and government agencies to find and implement client/server and Internet solutions to improve their business operations. The company's consulting and training services utilize leading-edge technologies, primarily from Microsoft, Oracle, PeopleSoft, Sun Microsystems and Lotus. ARIS is a Microsoft Solutions Provider Partner.

    ARIS has offices across the United States and in the United Kingdom and Germany, with over 900 employees worldwide. For more information about the products or services offered by ARIS, visit the Web site at www.aris.com.

    ARIS produced this course with the assistance of Software Architects Inc., Witzend Software, and other contributing authors. Software Architects, Inc. (www.swarchitects.com) specializes in custom software in all environments from Windows to Unix on a wide variety of application domains. Additionally, Software Architects, Inc. offers a series of practical, custom-developed, intensive courses at all levels of Windows programming. Witzend Software (www.witzendsoft.com) is a Seattle-based company that provides custom programming services, specializing in Visual C++ and COM. Individuals who participated in the production of this course include:

    Lead author, project lead, and courseware designer: Julian Lindars, MCSD
    Contributing authors: Dr. Bruce Krell (Software Architects, Inc., swarch.krell@prodigy.net)
    Beck Zaratian (Witzend Software)
    Bob McCoy, MCT
    Scott F. Wilson (KiZAN Corporation)
    Additional material: Ruth Hogan, MSCE