List of Figures
Chapter 1: Windows and Visual C++ .NETFigure 1-1: The Visual C++ MFC application build process.
Figure 1-2: Visual C++ .NET windows.
Figure 1-3: The Visual C++ .NET debugger window.
Chapter 2: The Microsoft Foundation Class Library Application Framework
Figure 2-1: The document-view relationship.
Chapter 3: Getting Started with the MFC Application Wizard
Figure 3-1: The Visual C++ .NET precompiled header process.
Chapter 4: Visual C++ .NET Wizards
Figure 4-1: Default of the ManagedCWebFormWizard application in the finished wizard.
Chapter 5: Windows Message Mapping
Figure 5-1: A square drawn after the origin has been moved to (100, 100).
Figure 5-2: A centered ellipse drawn in the MM_ANISOTROPIC mapping mode.
Figure 5-3: A centered ellipse drawn in the MM_ISOTROPIC mapping mode.
Chapter 6: Classic GDI Functions, Fonts, and Bitmaps
Figure 6-1: : Font height measurements.
Figure 6-2: The layout for a BMP file.
Chapter 7: Dialog Boxes
Figure 7-1: The finished dialog box in action.
Figure 7-2: The Delete File dialog box in action.
Chapter 8: Common Controls
Figure 8-1: The Windows common controls dialog box.
Figure 8-2: Advanced common controls in a dialog box.
Figure 8-3: The fields of an IP address control.
Chapter 9: Using ActiveX Controls
Figure 9-1: The calendar control in use.
Chapter 10: Win32 Core Memory Management
Figure 10-1: A typical Windows 95/98 virtual memory map for two processes linked to the same EXE file.
Figure 10-2: Win32 virtual memory management (Intel).
Chapter 11: Windows Message Processing and Multi-Threaded Programming
Figure 11-1: The Compute dialog box.
Chapter 12: Menus, Keyboard Accelerators, the Rich Edit Control, and Property Sheets
Figure 12-1: The child windows within an SDI main frame window.
Figure 12-2: Submenus (shown in Microsoft Visual C++ .NET).
Figure 12-3: The standard SDI frame menus.
Figure 12-4: The Ex12a program in use.
Figure 12-5: The property sheet from Ex12a.
Chapter 13: Toolbars and Status Bars
Figure 13-1: A toolbar bitmap and an actual toolbar.
Figure 13-2: The Ex13a program in action.
Figure 13-3: The status bar and the indicators array.
Figure 13-4: The status bar of the Ex13b example.
Figure 13-5: Rebar terminology.
Figure 13-6: Ex13c rebar example.
Chapter 15: Separating the Document from Its View
Figure 15-1: The Ex15a program in action.
Figure 15-2: The Ex15b program in action.
Chapter 16: Reading and Writing Documents
Figure 16-1: The serialization process.
Figure 16-2: Class relationships.
Figure 16-3: Object relationships.
Figure 16-4: The Ex16b application with two files open.
Figure 16-5: The MDI frame–view window relationship.
Chapter 17: Printing and Print Preview
Figure 17-1: The standard Print dialog box.
Figure 17-2: The Document Properties dialog box.
Chapter 18: Splitter Windows and Multiple Views
Figure 18-1: A single view window with a four-way split.
Figure 18-2: The CStringView view and the CHexView view of the document.
Chapter 21: MFC Programs Without Document or View Classes
Figure 21-1: The Ex21a Calculator dialog box
Chapter 22: The Component Object Model
Figure 22-1: Subfolders of four class IDs in the Registry.
Figure 22-2: Human-readable program IDs in the Registry.
Chapter 23: Automation
Figure 23-1: An Excel spreadsheet that uses VBA code.
Figure 23-2: The VBA code for the Excel spreadsheet.
Figure 23-3: An Excel workbook controlling the Ex23a component.
Figure 23-4: The Ex23b DLL dialog box in action.
Figure 23-5: A sample menu structure for a standard SDI application.
Figure 23-6: The Add Class From Typelib Wizard can create C++?? classes for the Excel objects listed in Excel''''s type library.
Chapter 24: Uniform Data Transfer: Clipboard Transfer and OLE Drag and Drop
Figure 24-1: MFC OLE Clipboard processing.
Figure 24-2: The Ex24a program in operation.
Figure 24-3: MFC OLE drag-and-drop processing.
Chapter 25: Introducing the Active Template Library
Figure 25-1: Selecting the ATL Project Wizard in the New Project dialog box.
Figure 25-2: The Application Settings page of the ATL Project Wizard.
Figure 25-3: Using the ATL Simple Object Wizard to insert a new ATL-based COM class into the project.
Figure 25-4: Adding a method to an interface.
Figure 25-5: The layout of a dual interface.
Chapter 26: ATL and ActiveX Controls
Figure 26-1: The Names page of the ATL Control Wizard.
Figure 26-2: The Options page of the ATL Control Wizard.
Figure 26-3: The Appearance page of the ATL Control Wizard.
Figure 26-4: The Stock Properties page of the ATL Control Wizard.
Figure 26-5: A bitmap for the dice control.
Figure 26-6: The Microsoft Calendar 9.0 control executing the properties verb.
Figure 26-7: Visual C++ .NET inserting the Calendar 9.0 property pages into its own dialog box for editing resource properties.
Figure 26-8: The property page dialog template.
Figure 26-9: How the property pages, property frame, and property page sites communicate.
Chapter 27: The OLE DB Templates
Figure 27-1: The ATL OLE DB Consumer Wizard.
Chapter 28: Internet Essentials
Figure 28-1: The stack for a LAN running TCP/IP.
Figure 28-2: A simple IP datagram layout.
Figure 28-3: A simple UDP layout
Figure 28-4: The relationship between the IP datagram and the UDP datagram.
Figure 28-5: The layout of a Class C IP address.
Figure 28-6: A simple layout of a TCP segment.
Figure 28-7: The relationship between an IP datagram and a TCP segment.
Figure 28-8: Consolidated Messenger''''s domain configuration.
Chapter 29: Introducing Dynamic HTML
Figure 29-1: A very basic HTML page, as seen in Internet Explorer.
Figure 29-2: The basic hierarchy of the DHTML object model.
Figure 29-3: The Ex29a example.
Figure 29-4: The Ex29b example in action.
Figure 29-5: The Ex29c ActiveX control.
Chapter 30: ATL Server
Figure 30-1: The Internet Service Manager screen.
Figure 30-2: The IIS Directory Security property page.
Figure 30-3: The IIS Authentication Methods property sheet.
Figure 30-4: The Anonymous User Account dialog box.
Figure 30-5: The \WebHome WWW home directory property page.
Figure 30-6: The Weathermap HTML Form window.
Figure 30-7: The ATL Server architecture.
Figure 30-8: The ATL Server application in action.
Chapter 31: Microsoft .NET
Figure 31-1: COM boundary crossings.
Figure 31-2: Common language runtime components don''''t have to worry about boundary crossings.
Figure 31-3: Common language runtime components distributed between multiple AppDomains.
Chapter 32: Managed C++
Figure 32-1: The Ex32a assembly as viewed through ILDASM.
Figure 32-2: Running the Ex32b console application.
Chapter 33: Programming Windows Forms Using Managed C++
Figure 33-1: The Ex33a sample in action.
Figure 33-2: The Ex33b sample in action.
Figure 33-3: The Ex33c sample in action.
Chapter 34: Programming ASP.NET Using Managed C++
Figure 34-1: A very simple ASPX page reflected by ILDASM.
Figure 34-2: Output generated by the code-behind page.
Figure 34-3: The code-behind DLL as reflected by ILDASM.
Figure 34-4: Ex34a with server-side controls.
Figure 34-5: The Ex34b module dumping context information and stopping every other request.
Figure 34-6: The Application Configuration property sheet within IIS showing the list of file-to-ISAPI DLL mappings.
Figure 34-7: Adding a new file extension to the list of file-to-ISAPI DLL mappings.
Figure 34-8: WSDL code generated by Ex34d.
Chapter 35: Programming ADO.NET Using Managed C++
Figure 35-1: The relationship between the ADO.NET managed providers, SQL Server, OLEDB providers, and COM.
Figure 35-2: The architecture of the ADO.NET DataSet.