Components provide reusable code in the form of objects. An application that uses a component’s code, by creating objects and calling their properties and methods, is referred to as a client.
Components can run either in-process or out-of-process with respect to the clients that use their objects. An in-process component, or ActiveX DLL, runs in another application’s process. The client may be the application itself, or another in-process component that the application is using.
Figure 2.1 In-process components are used by applications or other in-process components
The series of step-by-step procedures in this chapter builds an in-process component called ThingDemo, with class modules that demonstrate object lifetime, global objects, and objects that control modal and modeless dialog boxes.
You’ll also see how to debug an ActiveX DLL in process, by running the DLL and a test project together in the Microsoft Visual Basic development environment.
The procedures for creating the ThingDemo component build on each other. The sequence in which you perform the procedures is therefore important.
Creating the ThingDemo DLL Project Shows how to set the project options for an in-process component. |
|
Creating Properties and Methods for the Thing Class Adds two properties and a method. |
|
Creating the TestThing Test Project Creates a project group, consisting of ThingDemo and a test project, so you can debug the DLL project in process. |
|
Creating and Testing Thing Objects Adds code to the TestThing project to create instances of the Thing object and invoke its properties and methods. |
|
Running the TestThing Test Application Demonstrates the life cycle of object supplied by an in-process component. |
|
Circular References and Object Lifetime Explores object life cycles further, illustrating the effects of circular references on component shutdown. |
|
Adding a Form to the ThingDemo Project Adds code to show a form as either a modal or modeless dialog, using a global class to control the form. |
|
Using the Global Object in TestThing Tests the global object and dialogs, and explains more about debugging DLLs in-process. |
|
Compiling and Testing the ThingDemo DLL Compiles the project. Shows how to test the .dll file with the test project, and how to include it in another project. |
|
Circular References and Component Shutdown Shows how Visual Basic unloads an in-process component after the client has released all references to its objects. Also shows how circular references can prevent this unloading. |
|
ActiveX DLL Creation Summary Outlines the typical process of designing and creating an in-process component. |
These procedures will be easier to follow if you set up your development environment as described below.
Before You Begin
Select the Editor tab, and make sure Require Variable Declaration is checked. This makes it much easier to catch typing errors.
Select the Environment tab. Make sure Prompt To Save Changes is checked, then click OK. This will make it easy to save changes to the project as you go along.