The information in this documentation is not contractual in
nature. It is subject to modification without notice.
The software described in this manual is supplied under a
user license. Its use, duplication, or reproduction on any
media whatsoever, except as provided for under the terms
of the license, is not authorized.
No part of the manual may be copied, reproduced or
transmitted by any means whatsoever (unless it is for the
purchaser’s personal use) without the written permission of
Teklynx International.
E 2000 Teklynx International Co.
All rights reserved
Windowstttt is a registered trademark of Microsoftâ Corpora-
tion.
IBM, PC, AT PS/2 are registered trademarks of International
Business Machines,Inc.
Table of Contents
About this manualvii........................................
Welcome to the number one Windows based label design and
printing software. It provides the simplest, yet highest
performance solution f or your labeling requirements.
This version of this labeling software integrates the ActiveX
technology offering you the possibility toe easily create a
program to control your labeling software.
The
Programmer’s
Guide
The purpose of this manual is to help you program your own
application to control your labeling software. All you should know
about using ActiveX with your labeling software is described in
this manual. However, to get more information about the
ActiveX technology, refer to the Microsoft reference manuals.
The Programmer’s Guide is divided into three parts:
SDiscover ActiveX for your labeling software:thispart
gives the bases for programming with ActiveX.
SReference Guide: this part gives all the ob ject, method and
property definitions integrate d by your labeling software.
SAppendix: this part gives you information on Visual C++
Data Type.
viii
Programmer’s Guide
Typographical
conventions
This manual distinguishes dif ferent types of information by using
the following conv entions:
Sterms taken f rom the interface itself, such as commands,
appear in bold;
Skeys appear in small caps, as in the following example:
”Press the
SHIFT key”;
Snumbered lists mean there is a procedure to follow;
Swhen the conjunction ”or” appears next to a paragraph it
means there is another procedure available for performing a
given task;
SWhen a menu command contains submenus, the menu name
followed by the command to select appears in bold. Thus,
”Choose File Open” means choose the File menu, then the
Open command.
This symbol provides tips for optimizing certain tasks, speeding
up the execution of commands, etc.
This symbol highlights important information about a particular
function or procedure.
This symbol highlights an example or an exercise.
Discover ActiveX
Automation for your
labeling software
Introduction
Using ActiveX Automation, you can control almost anything
you create with your labeling software — even your labeling
software itself.
The ActiveX technology lets you easily integrate your labeling
software as a printing module or a designer module in your own
organization.
1
ActiveX is object oriented and all of the ActiveX objects are
programmable from any languages such as Visual Basic. So the
user can control his labeling software using your own program.
Your labeling software becomes the server and your program is
the client application.
Through this manual, you will find examples and references
using Visual Basic 6.0.
Chapter 1 -- 2
What is an ActiveX object?
An ActiveX object is an instance of a class that exposes
properties, methods, and events to ActiveX clients. ActiveX
objects support the COM (Component Object Model) - Microsoft
technology. An ActiveX component is an application or library
that is able to create one or more ActiveX objects. In this case,
your labeling software exposes many objects that you can use to
create new applications and programming tools. Within your
labeling software, objects are organized hierarchically, with an
object named Application at the top of the hierarchy (see
Chapter 2 - 15: the hierarchy diagram).
Each ActiveX object has its own member function definition.
When the member functions are exposed, it makes the object
programmable by an ActiveX client. Three types of members can
be exposed for an object:
SMethods are actions that an object can p erform. For ex am-
ple, the Document object in your labeling software provides
a Close method that closes the current document.
SProperties are functions that a ccess information about the
state of an object. The Application object’s Visible property
determines whether the labeling software is visible or not.
SEvents are actions recognized by an object, such as clicking
the mouse or pressing a key. You can write code to respond
to such actions. In Automation, an event is a method that is
called, rather than implemented, by an object (see also
Chapter 1 - 11).
Programmer’s Guide
Your labeling software often works with several instances of an
object which together make up a Collection object.For
example, since your labeling software is a multiple-document
interface (MDI), it might have multiple documents. To provide an
easy way to access and program the documents, your labeling
software exposes an object named Documents, which refers to
all of the already opened document objects. Documents is a
collection object.
A Collection object lets you work as a group with the objects it
manage (see Chapter 1 - 9).
All the methods, properties and events are defined in
Chapter 2 - 17: Refe re nce Guide.
Discover ActiveX Automation for your labeling software
What is the type library?
The type library supplied by the labeling software is a file
(Lppx2.tlb) that describes the type of all the ActiveX objects.
The type library does not store objects, it stores type information. By accessing the type library, your application can
determine the characteristics of an object, such as the interfaces
supported by the object and the names and parameters.
This library helps you to write your program because it contains
all the definitions of object methods and properties that you can
access. Using this library you optimize your job.
ThenameofthistypelibraryisLabelManager2 with theTK Labeling ActiveX 6.0 reference.
The procedures below show how to install and use the type
library with Visual Basic 6.0.
"""" To install the type library
1 Choose Project References.
2 Activate TK Labeling ActiveX 6.0 in the list of available ref-
erences then validate the d ialog box.
"""" To display the methods and properties
1 Use the Object Explorer by pressing the
2 In the library list, select LabelManager2.
Chapter 1 -- 3
F2 key.
"""" To use the type library
SWhile writing code, you have just to enter a period ”.” after
an object to get the associated methods and properties, or
after a method to get the associated properties.
Chapter 1 -- 4
Mechanisms
Your labeling software offers you two main objects: the
Application object that is at the top of the hierarchy and the
Document object. These main objects provide access to the
subordinated objects (see Chapter 2 - 15: the hierarchy
diagram).
The first step to activate the server is the main object creation,
in this case, the Application object.
The last step is the deactivation of the server with the Quit
method.
This function creates and returns a reference to the Application
object.
SyntaxCreateObject(server name)
Defines an object variable. This object variable is meant to contain the object reference. Dim as Object creates a link at execution.
Dim MyApp as Object
Set MyApp = CreateObject(”Lppx2.Application”)
This code launches the application that creates the object. In this
case, the labeling software. As soon as the object is created, you
reference it in the code with the object variable that you have
defined, i.e. MyApp.
If you define an object variable with “As Object”, a variable
containing a reference for any object type is created. However,
the access to an object via this variable is realized by a late
bind, i.e. the link is create d during the execution of your program. To create an object variable that induces an early bind,
i.e. a link during the compilation of your program, define the
object variable with a specific identifier (see below).
Discover ActiveX Automation for your labeling software
For example, you can define and create the reference using the
code below:
Dim MyApp As Lppx2.Application
Set MyApp = CreateObject(”Lppx2.Application”)
The variable reference creating an early bind increases the
performance but must only contain one reference.
Chapter 1 -- 5
GetObject
function
Note
This function returns a reference to an ActiveX object from a file.
SyntaxGetObject([pathname],[server name])
The syntax of the GetObject function includes the following
arguments:
ItemDescription
pathnameOptional. Variable of Variant
type (String). Complete pathname with the name of the
file containing the object to
get. If you don’t define the
pathname, you have to define
the server name.
servernameOptional. Variable of Variant
type (String). Name of the
application that gives the
object.
Use the GetObject function to access an ActiveX object from a
file and to assign this object, an object variable. Use the Set
instruction to assign the object that is returned by the GetOb-ject functionattheobjectvariable(seebelow).
Below are several examples showing the variations of the
GetObject syntax.
Note
Dim MyDoc As Object
Set MyDoc = GetObject(”c:\ProgramFile\document.lab”)
When this code is executed, the application associated with the
pathname argument is launched and the object included in the
file is activated.
In the case where the server automation is already loaded in
the system memory, the ActiveX mechanism selects it, then the
document is activated.
Chapter 1 -- 6
Programmer’s Guide
Intheexamplebelow,theservernameisspecified.Usethis
parameter if you have several versions of your labeling software
to open the document.lab with the correct version.
Dim MyApp As Object
Set MyApp = GetObject (”c:\ProgramFile\document.lab”,”Lppx2.Application”)
Note that in the example below the Visual Basic for Application
expression GetObject(,”Lppx2.Application) will fail unless the
Application (the labeling software) is already running. If the
Application is not already running, a new instance will not be
launched.
Dim MyApp As Object
Set MyApp = GetObject (,”Lppx2.Application”)
In this ex ample, the variation of the GetObject syntax varies
from the previous example in that a new instance of the application will always be launched even if the application is already
running. This variation is equivalent to a CreateObject statement.
Dim MyApp As Object
Set MyApp = GetObject (””,”Lppx2.Application”)
New
function
The key word New can only be used if you work with the Type
Library (see: What is the type library).
New assigns an object reference to a variable or to a property.
Syntax
SetMyApp={[New]objectexpression}
This example demonstrates reation of the MyApp object that
represents Application. This is the standard access to get the
subordinated objects of Application.
Dim MyApp As LabelManager2.Application
Set MyApp = New LabelManager2.Application
Discover ActiveX Automation for your labeling software
The syntax of the Set instruction contains the following items:
ItemDescription
objectvarNameofthevariableorprop-
erty.
Chapter 1 -- 7
NewOptional. This key word is
Note
The objectvar must have an object type compatible with the
object to which it is assigned.
Server Deactivation
The last step of y our program is the deactivation of the server
with the Quit method.
To correctly deactivate the server, you must:
a. Close all the documents with the CloseAll method on the
Documents collection.
b. Call the Quit method of the Application object. This method
meanstheprocessisended.
c. Ask Visual Basic to delete the Application f rom the system
memory by setting the value of the variable to Nothing.
generally used in the declarations to allow the implicit creationofanobject.Usedwith
Set, the New key word
creates a new instance of the
class. If the objectvar argument contains a reference to
an object, this reference is
lost when a new association is
created.
Chapter 1 -- 8
Quit method
Data Type
Programmer’s Guide
The Quit method is used to end the process. Before using this
method, you must close all the documents.
Thefollowingexampleshowshowtodeactivatetheserver.Use
the CloseAll method on the Documents collection to close all
the documents. Then, use the Quit method on the Application
object to end the process. At the end, the Set instruction delete
the Application from the system memory.
MyApp.Documents.CloseAll False
MyApp.Quit
Set MyApp = Nothing
There are three data types corresponding to the three main
objects: Application, Document and Collection.
Application
Object
The Application object represents the labeling software. The
Application object contains the properties and the methods that
return the first level objects. For example, the ActiveDocument
property returns a Document object.
"""" Using the Application object
To return the Application object, use the Application property.
The following sample shows how to display the path defined for
the labeling software.
Dim MyApp As LabelManager2.Application
Set MyApp = New LabelManager2.Application
MsgBox MyApp.Path
Most of the properties and methods that return the common user
interface objects, such as the active document (ActiveDocu-
ment property), can be used without the identifier of the
Application object by using the With keyword.
Discover ActiveX Automation for your labeling software
Dim MyApp As LabelManager2.Application
...
With MyApp
.ActiveDocument
.Print
end With
The properties and methods that can be used without the
Application object are called “global.”
STo display the global properties and methods in the object
explorer (
displayed in the Classes zone.
F2 key), click on global at the beginning of the list
Chapter 1 -- 9
Document
Object
Collection
Object
Note
The Document object represents an open document. Each open
document in the labeling software is represented by a Docu-ment object. This object has members (properties, methods,
and events) that you can use to manipulate the document.
You can access the current document if there is an open
document by using the ActiveDocument prope rty of theApplication object.
All open documents that belong to the documents collection are
represented by the Documents object. You can find a particular
document by moving through this collection.
A Collection object is an ordered set of items that can be
referred to a unit.
The Collection object provides a convenient way to refer to a
related group of items as a single object. The items, or members, in a collection need only be related by the fact that they
exist in the collection. Members or items of a collection don’t
have to share the same data type (see Chapter 1 - 8).
A collection can be created the same way other objects are
created. For example:
Dim X As New Collection
Once a collection is created, members can be added using the
Add method and removed using the Remove method. Specific
members can be returned from the collection using the Item
method, while the entire collection can be returned using the ForEach...Next statement.
Chapter 1 -- 10
Programmer’s Guide
"""" Collection methods
Methods for collection are described in the following table. The
Item method is required; other methods are optional.
Method nameReturn typeDescription
AddVT_DISPATCH
or VT_EMPTY
ItemVaries with
type of collection
RemoveVT_EMPTYRemovesanitemfroma
Adds an item to a collection. Returns VT_DISPATCH
if object is created (object
cannot exist outside the
collection) or VT_EMPTY if
no object is created (object
can exist outside the collection).
Returns the ind icated item
in the collection. Required.
The Item method may
take one or more arguments to indicate the element within the collection
to return. This method is
the default member for the
collection object.
collection. Uses indexing
arguments in the same way
as the Item method.
The Item method takes one or more arguments to indicate the
index. Indexes can be numbers or strings.
Because Item is the default method, you could write either:
MyObject.Item(3).Name
-Or-
MyObject(3).Name
"""" Count Property
Returns a Long (long integer) containing the number of objects
in a collection. Read-only.
Discover ActiveX Automation for your labeling software
Event management
When a program detects that something has happened, it can
notify its clients. For example, if a stock ticker program detects a
change in the price of a stock, it can notify all clients of the
change. This notification process is referred to as firing an event.
Chapter 1 -- 11
Handling an
Object’s
Events
Get or set properties.
Call methods.
Client
Fire events
Figure 1 Interaction between the Client and
the Labeling software
An object that triggers events is called an event source.To
handle the events triggered by an event source, you can declare
a variable of the object’s class using the WithEvents keyword.
For example, to handle the ProgressPrinting event of a Docu-ment, place the following code in the Declarations section:
Option Explicit
Private WithEvents MyDoc As LabelManager2.Document
Private mblnCancel As Boolean
In this case, the client application must set the EnableEvents
property of the application to True in order to trigger the events.
The WithEvents keyword specifies that the variable MyDoc will
be used to handle an object’s events. You specify the kind of
object by supplying the name of the class from which the object
will be created.
Server: Lppx2
(event source)
Application
Document
Events
The variable MyDoc is declared in the Declarations section
because WithEvents variables must be module-level variables.
Thisistrueregardlessofthetypeofmoduleyouplacethemin.
The variable mblnCancel will be used to cancel the LongTask
method.
"""" Limitations on WithEvents variables
You should be aware of the following limitations on the use of
WithEvents variables:
Chapter 1 -- 12
Programmer’s Guide
SA WithEvents variable cannot be a generic object variable.
Thatis,youcannotdeclareitAsObject-youmustspecify
the class name when you declare the variable.
SYou cannot declare a WithEvents variable As New. The
event source object must be explicitly created and assigned
to the WithEvents variable.
SYou cannot declare WithEvents variables in a standard mod-
ule. You can declare them only in class modules, form modules, and other modules that define classes.
SYou cannot create arrays of WithEvents variables.
"""" Writing code to handle an event
As soon as you declare a variable WithEvents,thevariable
name appears in the left-hand drop down of the module’s code
window. When you select MyDoc,theDocument class events
will appear in the right-hand drop down, as shown in Figure 2
below:
Figure 2 An event associated with a WithEvents variable
Selecting an event will display the corresponding event
procedure, with the prefix MyDoc_. All the event procedures
associated with a WithEvents variable will have the variable
name as a prefix.
Discover ActiveX Automation for your labeling software
For example, add the following code to the
MyDoc_ProgressPrint event procedure:
Private Sub MyDoc_ProgressPrinting (ByVal Percent as
integer,Cancel as integer)
lblPercentDone.caption = CInt (100 * Percent) & “%”
DoEvents
If mblnCancel Then Cancel = True
End Sub
Whenever the ProgressPrinting event is raised, the event
procedure displays the percent complete in a Label control. The
DoEvent statement allows event processing to occur. The
module-level variable mblnCancel is set to True, and the
MyDoc_ProgressPrinting event then tests it and sets the
ByRef Cancel argument to True.
Chapter 1 -- 13
Connecting a
WithEvents
variable to an
object
When you declare a variable WithEvents at design time, there
is no object associated with it. A WithEvents variable is just like
any other object variable. You hav e to create an object and
assign a reference to the object to the WithEvents variable.
Add the following code to the Form_Load event procedure to
create the LabelManager2.Application.
Private Sub Form_Load()
Set MyApp = New LabelManager2.Application
Set MyDoc = MyDoc.Documents.Add (”My Document”)
MyApp.EnableEvents = True
End Sub
When the code above is executed, Visual Basic creates a
LabelManager2.Application and a new document called “My
Document” then connects its events to the event procedures
associated with MyDoc. From that point on, whenever the
MyDoc raises its ProgressingPrinting event, the
MyDoc_PrintProgressing event procedure will be executed.
Chapter 1 -- 14
Programmer’s Guide
Compatibility with the previous version
This version is compatible with the previous version of the label
design software.
However, the labeling software includes new fe atures and certain
processes have changed.
To ensure your program can be executed with this version,
verify your code by referring to the User’s Guide for information
on the functions that have changed.
For example, the previous version of your labeling software uses
a simple-document interface (SDI) and, the ActiveDocument
property always refers to a document. This version is a multipledocument interface (MDI) and there isn’t always an open document. If you use this property, verify that there is an open document after the server is activated.
To remain compatible with the previous version :
Sa document is automatically created at initialization,
Sthe Open method will close the current document (if one
exists), before a new document is created (The Close
method functions the same way).
However, if the Application object is visible, the user has control of the active document management. For example, if the
user closes the active document, a new document is not automatically created.
Particularity about access rights
Certain versions of the labeling software include a User
manager module. This module controls access to certain
functions of the labeling software.
For example, if calling a function through your ActiveX interface
fails, verify your rights in the User manager module. An error
message is displayed and provides information about the nature
oftheerror(seetheReference Guide, Chapter 2 - 24: Error
code table).
Reference Guide
Hierarchy diagram
The diagram below shows the object hierarchy:
Application.
2
Strings
RecentFiles
RecentFile
PrinterSystem
Options
Dialogs
Dialog
Documents
Document
Database
Printer
Format
DocumentProperties
DocumentProperty
Chapter 2 -- 16
Programmer’s Guide
Document.
Variables.
Variable
FormVariables
Free
FreeVariables
Free
DatabaseVariables
Free
Counters
Counter
Dates
Date
TableLookups
TableLookup
Formulas
Formula
DocObjects
DocObjects
Barcodes
Barcode
Code2D
Texts
Text
TextSelection
Images
Image
Shapes
Shape
OLEObjects
OLEObject
Reference Guide
Application Object
PropertiesMethods
ActiveDocumentErrorMessage
ActivePrinterNameGetLastError
ApplicationShowHelp
CaptionMove
DefaultFilePathResize
DialogsQuit
Documents
EnableEvents
FullName
Height
Left
Locked
Name (Default)
Options
Parent
Path
PrinterSystem
RecentFiles
Top
UserControl
Version
Visible
Width
Chapter 2 -- 17
Chapter 2 -- 18
Object
Properties
Programmer’s Guide
"""" Application.ActiveDocument
This property allows you to access the document object interface
(refer to the document which has the focus in the main
application).
Returns an error if no document in application.
AccessRead-Only.
TypeVT_DISPATCH or
"""" Application.ActivePrinterName
Returns the current pair <Printer, Port> of the active document,
if any, empty string if none.
AccessRead-only.
TypeVT_BSTR or
"""" Application.Application
This property returns the Application
root object of the hierarchy.
AccessRead-only.
TypeVT_DISPATCH or
"""" Application.Caption
Returns or sets the caption text for the application window. To
change the caption of the application window into the default
text, set this property to an empty string (””).
AccessRead/Write.
Document.
String.
object that represents the
Application.
TypeVT_BSTR or
String.
Reference Guide
Chapter 2 -- 19
"""" Application.DefaultFilePath
Sets or returns the default path specification used by the
application for opening document files.
AccessRead/Write.
TypeVT_BSTR or
"""" Application.Dialogs
Returns the Dialogs
dialog boxes of the application.
AccessRead-only.
TypeVT_DISPATCH or
"""" Application.Documents
Returns the Documents
documents.
AccessRead-only.
TypeVT_DISPATCH or
"""" Application.EnableEvents
Enables or disables Automation events notification (Default:
False) (see Appendix).
AccessRead/Write.
TypeVT_BOOL or
String.
collection that represents all the built-in
Dialogs.
collection that represents all the open
Documents.
Boolean.
"""" Application.FullName
Returns the file specification for the application, including path.
(Ex : c:\drawdir\scribble).
AccessRead-Only.
TypeVT_BSTR or
String.
Chapter 2 -- 20
Programmer’s Guide
"""" Application.Height
Returns or sets the height of the main window of the application
(in pixel unit).
AccessRead/Write.
TypeVT_I4orLong
"""" Application.Left
Returns or sets the distance between the left edge of the main
window of the application and the left edge of the screen (in
pixel unit).
AccessRead/Write.
TypeVT_I4orLong
"""" Application.Locked
Locks the User Interface if True.
AccessRead/Write.
TypeVT_BOOL or Boolean
"""" Application.Name
Returns the name of the application (for example, ”Microsoft
Word”). Default property.
AccessRead-Only.
TypeVT_BSTR or String
.
.
.
.
"""" Application.Options
Represents application and general document options. Many of
the properties for the Options object correspond to items in the
Options dialog box (Tools menu). Use the Options property to
return the Options object.
The following example sets two application options: