Controls You Can Use As Constituent Controls
You can place any
of the controls supplied with Visual Basic on a UserControl, with the
exception of the OLE container control.
Any ActiveX
control you've purchased, or any control written to the older OLE
specification, can be placed on a UserControl. www.tartoos.com
As long as you're
authoring a control for your own use, that's all you need to know. However,
if you're going to distribute your control to others, even if you're giving
it away, you need to consider distribution and licensing issues.www.tartoos.com
Note Toolbox
objects other than controls, such as insertable objects — for example,
Microsoft Excel Charts — cannot be placed on UserControl objects.
The Easy Part —
UserControl and Intrinsicswww.tartoos.com
The UserControl
object and the Visual Basic intrinsic controls are created by the Visual
Basic run-time DLL. Anyone who installs your .ocx file will automatically
get a copy of the run-time DLL and support files, so if you author your
controls using just the UserControl and intrinsic controls, you have no
further licensing or distribution issues to worry about. www.tartoos.com
The intrinsic
controls include: PictureBox, Label, TextBox, Frame, CommandButton,
CheckBox, OptionButton, ComboBox, ListBox, HScrollBar, VScrollBar, Timer,
DriveListBox, DirListBox, FileListBox, Shape, Line, Image, and Data.
ActiveX controls
included with the Professional Edition of Visual Basic are subject to
licensing rules, as explained below.
Note The
Microsoft User Forms in Microsoft Office applications include a set of
controls similar to the intrinsic controls. These controls may be used on a
UserControl; however, you must distribute the support DLL for Microsoft User
Forms in your Setup program.
Distributing Constituent
Controls
An instance of
your control is composed of a UserControl object and its constituent
controls, as explained in "The UserControl Object," earlier in this chapter.
In order to add an instance of your control to a form, a developer must be
able to create these objects.
SetupWizard makes
this task easy. When you create a Setup program for your .ocx file,
SetupWizard includes all the .ocx files for the constituent controls, along
with the Visual Basic run-time DLL and any necessary support files.
When a developer
runs your Setup program, the .ocx files that provide the constituent
controls are installed on his computer. The only other thing he needs to
worry about is whether he has the legal right to use them. www.tartoos.com
If none of the
constituent controls require a license, the developer is set. However, if
you used controls you purchased, or any of the ActiveX controls included
with Visual Basic, Professional Edition, there are licensing requirements to
be met.www.tartoos.com
Licensing Constituent
Controls
When you purchase
a control, you generally acquire the right to distribute instances of that
control royalty-free as part any application you create. However, such
license agreements do not give you the right to sell or give away the
control to other developers — which is what you're doing when you use it as
a constituent control.
So the rule is: In
order to use your control, a developer must have licenses for all the
licensed controls you've used as constituent controls.
Most ActiveX
Controls Included with Visual Basic Are Exempted
The licensing rule
stated above applies to the DBGrid control. Any of the other ActiveX
controls included with the Professional Edition of Visual Basic can be used
as constituent controls of a control you intend to distribute to other
developers.
For example, if
you use the TreeView control as a constituent control, anyone who is
licensed to use your control is licensed to use TreeView as part of your
control. (If you didn't include licensing support when you made your
.ocx, this means that anyone can use your control. See "Licensing Issues for
Controls," later in this chapter.) www.tartoos.com
Important Your
license agreement for Visual Basic states that in order to distribute any
redistributables included with Visual Basic, the software you author must
add significant and primary functionality. This means that a control that
uses TreeView as a constituent control must do significantly more than
TreeView does by itself. Consult your Microsoft License Agreement for
details.www.tartoos.com
For more
information about how to use ActiveX controls included with the Professional
and Enterprise Editions, see "Using ActiveX Controls."
Distribution and
Licensing Examples
Applying the rule
yields the following examples.
ActiveX Controls
Included with Visual Basic
Suppose you author
some controls using some of the ActiveX controls included with Visual Basic,
Professional Edition. SetupWizard adds the necessary .ocx files to your
Setup program.
As long as you
didn't use the DBGrid control, anyone who runs SetupWizard can use your
controls. That's not always the case if you used DBGrid as a constituent
control, as these scenarios show:
www.tartoos.com
-
A developer who
has a copy of Visual Basic, Professional Edition buys your .ocx and
installs it. She already has the supporting .ocx files for DBGrid, and the
license for it, so she has everything she needs.
-
A student who
has a copy of Visual Basic, Learning Edition buys your control and
installs it. He now has the supporting .ocx file for DBGrid, but doesn't
have the license to use it.
-
A stock market
analyst who has a copy of Microsoft Excel buys your control and installs
it. She now has the supporting .ocx files for DBGrid, but doesn't have the
license to use it.
ActiveX Controls
You've Purchased
Suppose you
purchase MegaDino.ocx from Late Cretaceous Computing, and use the
Tyrannosaur and Velociraptor controls from this .ocx to develop your own
UltimatePredator control. You package this control in UPred.ocx, and you
give it away.
Anyone to whom you
give a copy of UPred.ocx must have purchased and installed MegaDino.ocx in
order to use the UltimatePredator control legally. This is true regardless
of the development software they're using.
In fact, if the
creators of MegaDino.ocx and DinoRama.ocx used the standard registry key
licensing scheme, people to whom you give UPred.ocx will be unable to
use the UltimatePredator control unless they have MegaDino.ocx installed.
Shareware Controls
Suppose you author
your control using a shareware control. www.tartoos.com
If you sell your
control component (.ocx file), the purchaser must also pay the author of the
shareware control the appropriate license fee.
If you distribute
your control component as shareware, a person who wants to use it must pay
the appropriate license fees to you and to the author of the shareware
control you used.
Constituent
Controls and the Internet
If you want people
to be able to use your control on World Wide Web pages, remember that the
rule for Web servers is exactly the same as the rule for developers. That
is, in order to use your control, a Web server must have licenses for all
the licensed controls you've used as constituent controls. www.ta |