Externally Createable Objects

Before you can start to work with your OLE automation server application, you must first create an instance of it. To do this, you must first know at what level the objects within the application can be created—that is, which objects allow the use of the New keyword.

Many OLE automation servers only allow you to use the New keyword with the top-level object, like Word.Application. However, other OLE automation servers, such as Microsoft Active Data Objects (ADO), allow you to create instances of objects much further down the object hierarchy. The statement-completion feature of Visual Basic helps you here. After you have typed the New keyword, a drop down list is displayed containing only those objects that are externally createable.

Working with the Object Model 81

So if you can't directly create an instance of the required object, how do you obtain a reference to it? First, create an instance of an externally createable object higher up the hierarchy; then use the prescribed method or property to create an instance of the required object. For example:

Dim

oXLapp

As Excel.

.Application

Dim

oXLwsh

As Excel.

.Worksheet

Dim

oXLhyp

As Excel.

.Hyperlinks

Set

oXLapp

= New Excel.Application

Set

oXLwsh

= oXLapp

.Worksheets.Add

Set

oXLhyp

= oXLwsh.

.Hyperlinks.Add

In the above snippet, your goal is to create a reference to an Excel Hyperlink object. However, you can't simply create a new Hyperlink object. You have to create the Application object first, then a Worksheet object, then finally the Hyperlink object.

For details of how you can restrict the creation of your own classes written in VB, see the section "Class Module Properties—Instancing" in Chapter 4, Class Modules.

Was this article helpful?

0 0

Post a comment