What is ActiveX Document?
ActiveX Document is similar to a form but
it runs in Internet Explorer. An ActiveX document can contain almost everything
that a form can contain - standard controls, and ActiveX controls. It can also
be used to navigate to another document, to show a form and can also contain a
menu.
An ActiveX document is a single .VBD
(Visual Basic Document) file. ActiveX
document also contains either .EXE or .DLL file (depending upon how you
designed the application) containing the code.
If it is .DLL it becomes an in-process application otherwise (if it is
.EXE) it becomes an out-of-process server.
When you compile an ActiveX Document
application, it creates one .DLL or
.EXE (as the case may be) for the
entire application and one .VBD file for each ActiveX Document.
Each ActiveX document is a UserDocument in
the application. Just like a Form a UserDocument also has a designer that
allows you to place controls on the UserDocument.
An ActiveX Document can contain properties,
read and write properties from and to PropertyBag using WriteProperties and ReadProperties
events. In this respect it is similar to
an ActiveX Control.
Sample Application
Let us develop a sample application to
understand the following feature of ActiveX Document.
¨
Navigating from one document to
another
¨
Displaying a form from ActiveX
Document
¨
Placing an ActiveX Control on
ActiveX Document
To
create sample project:
1.
Create a new project and select
ActiveX Document .DLL as the type of
the project.
2.
Visual Basic creates an ActiveX
Document project with one UserDocument object.
3.
Invoke Project Explorer and
double click on UserDocument1 to invoke UserDocument Designer.
4.
Place a label and two commands
buttons as shown in figure 30.3.
5.
And change the following
properties of the controls.
Control
|
Property
|
Value |
Label1
|
Caption
|
This is first
page in ActiveX Document Application.
|
Command1
|
Name
|
CmdNavigate
|
|
Caption
|
&Navigate
To Second Page
|
Command2
|
Name
|
CmdAbout
|
|
Caption
|
&Show
About Project
|
6.
Change the Name of the ActiveX document to “FirstDoc”
7.
Write the following code for
command buttons.
Private
Sub cmdnavigate_Click()
UserDocument.Hyperlink.NavigateTo App.Path & "\seconddoc.vbd"
End Sub
Private
Sub cmdshow_Click()
frmaboutaxdoc.Show vbModal
End Sub
Listing 30.1: Code for
First ActiveX Document - FirstDoc.
Note: UserDocument SecondDoc
and form frmAboutAxdoc will be
created later.
Adding a new user document
We need to have one more userdocument in
the project. The following procedure is used to create the second document.
1.
Select Project ->Add User Document and select User Document in Add User
Document dialog.
A new user document is added to project.
2.
Change the Name of the user document to SecondDoc.
Placing
an ActiveX control on a user document is in no way different from placing an
ActiveX control on a form.
3.
To add MonthView ActiveX Control to the project, use Project -> Component and select Microsoft Windows Common Controls-2 6.0.
4.
Place MonthView on ActiveX document.
5.
Place a command button below
monthview control.
6.
Change the following properties
of command button
Name cmdGoBack
Caption &Go Back To First
Document
7.
Write the following code.
Private
Sub cmdback_Click()
UserDocument.Hyperlink.GoBack
End Sub
Listing
30.2: Code for Back command button on second
document.
Adding a form to the ActiveX Document project
Adding a form is also same as adding a form
to Standard Exe project. Our form, in
this case, is an About dialog box. Here is the step-by-step procedure.
1.
Select Project -> Add Form.
2.
Change the Name of the form to frmAboutAxdoc
3.
Place four labels and a command
button and arrange them as shown in figure 30.2 .
4.
Change the following properties
Object
|
Property
|
Meaning |
Label1
|
Caption
|
This is a
sample ActiveX Document project to demonstrate the following features of ActiveX Document
Project:
|
Label2
|
Name
|
Lblfeatures
|
|
Caption
|
“”
|
|
Borderstyle
|
1-fixed
single
|
Label3
|
Caption
|
Developed by
Author
|
Label4
|
Caption
|
P.Srikanth
|
|
Fontbold
|
True
|
Command1
|
Name
|
Cmdclose
|
|
Caption
|
Close
|
Form
|
Caption
|
About Sample
ActiveX Document Application
|
|
BorderStyle
|
1-fixed
single
|
|
Controlbox
|
False
|
5.
Write the following code.
Private
Sub cmdclose_Click()
Unload Me
End Sub
Private
Sub Form_Load()
Dim s As String
Dim nl As String
nl =
vbCr & vbLf
s =
"Navigating from one document to another"
s = s
& nl & nl
s = s
& "Invoking a form from a document"
s = s
& nl & nl
s = s
& "Placing an ActiveX Control on a doucument"
lblfeatures.Caption = s
End Sub
Listing
30.3: Code for events in frmAboutForm.
That is all that you have to do to create
an ActiveX Document application with two user documents and a form.
Save all components of the project under
the following names.
¨
Firstdoc.dob
¨
Seconddoc.dob
¨
Frmaboutaxdoc.frm
¨
Axdoc.vbp
Creating .VBD and .DLL
Whenever you run ActiveX Document
application from VBIDE, Visual Basic creates .VBD files for userdocuments in
the directory where Visual Basic is installed. But if you create .DLL file then
.VBD files are created in the directory in which .DLL file is placed.
Select File -> Make AxDoc .DLL to create .DLL file for the entire project and .VBD file for each
userdocument object. The primary filename will be the name of userdocument. So
the complete names are – firstdoc.vbd and second.vbd.
Test Run
Run the ActiveX Document application after
creating .DLL and .VBD files and test the features of the application.
1.
Invoke Internet Explorer
2.
Select File-> Open and select firstdoc.vbd
from the directory in which you created it.
3.
You should see the first page
displayed in Internet Explorer.
4.
Click on Navigate To Second Page to move to second page. You must see
MonthView ActiveX Control.
5.
Click on Go Back To First Document command button. You should be in first
document.
6.
In first document, click on Show About Project. You should see
About Dialog
7.
Click on Close button to dismiss About form.
8.
Terminate Internet Explorer to
terminate the application.
No comments:
Post a Comment