1 The Basics of Object-Oriented Programming.- Data Types.- Encapsulation.- Abstract Data Types.- Classes.- Defining a Class in Visual Basic.- Defining a Property in Visual Basic.- Defining a Method in Visual Basic.- Exposing Properties Through the Property Let/ Set/ Get Procedures.- Objects.- Explicit Object Creation.- Instance Variables and Member Variables.- The As Object Syntax.- Implicit Object Creation.- Referencing Public Variables and Procedures.- The Object/Message Model.- The Me Keyword.- Object Properties and Object Hierarchies.- Creating and Destroying Objects.- Creating Objects.- Destroying Objects.- Reference Counts.- Circular References.- The Notorious End Statement.- How to Control a Circular Reference-A Linked List Example.- Form Modules.- Properties and Methods in a Form Module.- Collection Classes.- Constructing a Collection Class.- Polymorphism and Overloading.- Overloading.- Polymorphism.- Inheritance.- 2 Handling Object Errors.- Error Detection and Error Handling.- Types of Errors.- The Error Object.- Dealing with Run-Time Errors.- Where to Handle a Run-Time Error.- Dealing with Logical Errors.- Detecting Logical Errors.- Where to Handle a Logical Error.- Handling the Error in the Calling Procedure.- Errors Occurring in Events.- An Error-Handling Example.- 3 Turing Machines - A Simple Object-Oriented Application.- What Is an Algorithm?.- What Is a Turing Machine?.- Informal Definition of a Turing Machine.- Describing a Turing Machine.- Coding a Turing Machine.- Error Handling.- The Symbol Class.- The Symbols Collection Class.- The State Class.- The States Collection Class.- The Transition Class.- The Transitions Collection Class.- The Machine Class.- The User Interface.- The Standard Module.- A Final Comment.- 4 OLE Automation Objects.- What IsOLE Automation?.- Public Really Means Public.- The Plan for This Chapter.- Communication Between OLE Automation Clients and Servers.- The Communication Problem.- Supplying Information to the Client.- What Is an Interface?.- The Vtable Interface.- Type Libraries.- OLE Interfaces.- The IUnknown Interface.- The IDispatch Interface.- Binding.- Putting It All Together.- In-Process and Out-of Process Servers.- Creating a Simple OLE Automation Server.- Creating a Simple Server.- A Small Client and the Three Forms of Binding.- Referencing the Server's Type Library.- Registering and Unregistering a Server.- How Servers Are Started and Ended.- Reference Counts for Servers.- Servers with a Visual Interface.- Servers with Dialog Boxes.- OLE Servers That Also Function as Stand-Alone Applications.- Handling Errors.- Be Nice.- Errors from Your Server's Servers.- Externally Creatable and Dependent Objects - The Object Hierarchy.- In-Process Issues.- Version Compatibility.- How Compatibility Can Be Affected.- How Visual Basic Handles Compatibility.- The Reference Server and Interim Builds.
This book is about object-oriented programming and how it is implemented in Microsoft Visual Basic. Accordingly, the book has two separate, but inter twined, goals. The first is to describe the general concepts of object orientation and the second is to describe how to do object-oriented programming in Visual Basic. I intend this to be a short, no-nonsense book that can be read through once and then easily referred to at later times. (Long stories about a mythical company and its programming problems are seldom interesting the first time through, let alone the second, third or fourth times!) To read this book, you need only a minimal acquaintance with Visual Basic. In particular, I assume you can construct a simple Visual Basic program and have some rudimentary knowledge of fundamental programming tech niques. This book does not teach Visual Basic - it teaches you how to pro gram Visual Basic in an object-oriented way. The issue here is not how much Visual Basic you already know - it is that you want to learn about object oriented programming techniques. With regard to the first goal of the book, it is my feeling that a discussion of the underlying concepts of object orientation Oust what is an object, a class, encapsulation, abstraction, and so on) is essential in order to take full advan tage of any object-oriented language. Simply put, it will help you understand what you are doing if you know why you are doing it.