citrix ica client object

70
Programmer’s Guide Citrix ICA Client Object API Specification 2.0 For Citrix ICA Win32 Client Version 6.01 Citrix Systems, Inc.

Upload: others

Post on 04-Feb-2022

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Citrix ICA Client Object

Programmer’s Guide

Citrix ICA Client Object API Specification 2.0

For Citrix ICA Win32 Client Version 6.01

Citrix Systems, Inc.

Page 2: Citrix ICA Client Object

Information in this document is subject to change without notice. Companies, names, and data used in examples herein are fictitious unless otherwise noted. No part of this document may be reproduced or transmitted in any form or by any means, electronic or mechanical, for any purpose, without the express written permission of Citrix Systems, Inc.

Copyright © 2001 Citrix Systems, Inc. All rights reserved.

Citrix, ICA (Independent Computing Architecture), Program Neighborhood, MetaFrame, and NFuse are registered trademarks or trademarks of Citrix Systems, Inc. in the U.S.A. and other countries.

Microsoft, MS, ActiveX, VBScript, Windows, Windows NT, and Windows 2000 Servers are registered trademarks or trademarks of Microsoft Corporation in the U.S.A and other countries.

Netscape, Netscape Plug-ins and Netscape LiveConnect are registered trademarks of Netscape Communications Corporation.

JavaScript is a trademark of Sun Microsystems, Inc.

All other trade names referred to are the Servicemark, Trademark, or Registered Trademark of the respective manufacturers.

Document No. ctx.ico.pg.1.0

Page 3: Citrix ICA Client Object

Contents 3

ContentsChapter 1 Welcome . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

What Is ICA? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8What Are ICA Clients? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

Who Should Read this Book? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8How to Use this Book. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9Document Conventions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9Finding More Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

Using PDF Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10Citrix on the World Wide Web. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10Reader Comments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

Chapter 2 Introduction to the ICA Client Object . . . . . . . . . . . . . . . . . . . . . . . . . . . 13Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13ICA Client Object Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13Embedding and Scripting Interfaces. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

ActiveX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15Embedding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

Netscape Plug-ins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16Embedding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

Chapter 3 ICA Client Object APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19Property Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

ClearProps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20GetPropCount . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20DeleteProp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21DeletePropByIndex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21GetPropNameByIndex. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22ResetProps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

Page 4: Citrix ICA Client Object

4 Citrix ICA Client Object Programmer’s Guide

SetProp. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23GetPropValue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23GetPropValueByIndex. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

Methods Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25Connect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25Disconnect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25Logoff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26LoadIcaFile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26RunPublishedApplication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27SetSessionEndAction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27IsConnected . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28GetInterfaceVersion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28GetClientIdentification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29GetSessionString . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29GetSessionCounter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30GetNotificationReason . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31AboutBox. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32Startup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

Events Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34OnConnect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35OnConnectFailed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35OnLogon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36OnDisconnect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36OnPublishedApp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36OnPublishedAppFailed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36OnICAFile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37OnICAFileFailed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37OnInitializing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37OnConnecting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37OnInitialProp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38OnDisconnectFailed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38OnLogoffFailed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38OnClick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

Chapter 4 ICA Client Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41ICA Client Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42ICA Browser Name Resolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

ICA Browser Specific Properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

Page 5: Citrix ICA Client Object

Contents 5

Chapter 5 Example Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49Embedding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

ActiveX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49Netscape Plug-in . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

Scripting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

ActiveX. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52Netscape Plug-in. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

Login . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55ActiveX. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55Netscape Plug-in. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

Custom UI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57ActiveX. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57Netscape Plug-in. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

Mouse Click. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59ActiveX. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59Netscape Plug-in. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

Other Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63ActiveX. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63Netscape Plug-in. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

Page 6: Citrix ICA Client Object
Page 7: Citrix ICA Client Object

7

1C H A P T E R 1

Welcome

The ICA Client Object is the framework that exposes the functionality of the Citrix ICA Win32 Client to other objects or applications; that is, any application that supports embedding of objects can interface with and pass instructions to the ICA Win32 Client.

The ICA Client Object specification makes available, for the first time, an application programming interface (API) to the Citrix ICA Win32 Client.

Use this API to programmatically control the appearance and behavior of the ICA Win32 Client. You can embed the ICA Client Object into custom software applications to enable your users to launch ICA sessions with a click of a button, while shielding them from the mechanics of accessing a Citrix server farm.

With the ICA Client Object API, you can:

� Embed the ICA Client into commercially available desktop applications, such as Internet Explorer, Netscape, and the Microsoft Office suite, that support object embedding.

� Seamlessly embed and integrate ICA functionality into third-party applications.

Use the ICA Client Object API within scripting environments to programmatically integrate and manipulate the appearance and behavior of the ICA Win32 Client.

Page 8: Citrix ICA Client Object

8 Citrix ICA Client Object Programmer’s Guide

What Is ICA?ICA is the foundation of Citrix server-based computing with MetaFrame and ICA Client software. In simplified terms, the ICA protocol transports an application’s screens from a MetaFrame server to ICA Client users and returns the users’ input to the application on the server.

As an application runs on a MetaFrame server, MetaFrame intercepts the application’s display data and uses the ICA protocol to send this data (on standard network protocols) to the ICA Client software running on the user’s client device. When the user types on the keyboard or moves and clicks the mouse, the ICA Client sends this data back to the application on the MetaFrame server. The Citrix ICA protocol provides advanced capabilities and enhanced performance with Windows terminal services. ICA delivers high performance on high- and low-bandwidth connections. It requires minimal client workstation capabilities, and includes error detection and recovery, encryption, and data compression.

What Are ICA Clients?A Citrix ICA Client is the software component that executes on the client device. It allows the user to establish an ICA session with a Citrix server. This session enables the user to access server-based applications that appear to run locally on the client device but execute on the server.

Citrix ICA Client software extends the reach of Windows and UNIX-based applications to virtually any client platform or device. These include information appliances, handheld computers, network computers, X-devices, Windows-based Terminals, and PCs (Pentium, 486, and 386). ICA Clients are available for all types of Windows Operating Systems including Windows CE (Windows Based Terminals and Handheld PCs), Windows NT Workstation, Windows 95/98, Windows 2000 Professional, Windows for Workgroups, and Windows 3.x.

Who Should Read this Book?This guide is for Citrix server administrators, Web masters, and ISVs who want to integrate the Citrix ICA Client into environments and custom applications that support object embedding.

It is assumed that the reader has a copy of Citrix ICA Win32 Client software (Version 6.01) installed and working on the local machine, and is familiar with basic embedding and scripting tools and techniques.

Page 9: Citrix ICA Client Object

Chapter 1 Welcome 9

How to Use this BookThe following chapters are included in this book:

Chapter 1, “Welcome”This chapter presents an overview of the layout and use of this guide, and lists resources for finding more information.

Chapter 2, “Introduction to the Citrix ICA Client Object”This chapter describes the ICA Client Object and public interfaces.

Chapter 3, “ICA Client Object APIs”This section describes the APIs available in the ICA Client Object.

Chapter 4, “ICA Client Object Properties”This section describes the public interfaces, or properties, of the ICA Client Object in detail.

Chapter 5, “Example Scripts”This section illustrates how the ICA Client Object actually works using selected examples, and describes the embedding and scripting interfaces.

Document ConventionsThe following conventional terms, text formats, and symbols are used throughout this document:

Convention Meaning

Boldface Indicates dialog box titles, table column headings, command-line commands, menu names, tabs, user input, and menu commands.

Italics Placeholders for information or parameters that you provide. For example, filename in a procedure means you type the actual name of a file. Italics are also used for new terms and the titles of books.

UPPERCASE Keyboard keys; for example, CTRL, ENTER, F2.

Monospace Text displayed at the command prompt or in a text file.

[brackets] Optional items in command statements. For example, [/ping] means that you can type /ping with the command. Do not type the brackets themselves.

...(ellipsis) You can repeat the previous item or items in command statements. For example, /route:devicename[,...] means you can type additional devicenames separated by commas.

Page 10: Citrix ICA Client Object

10 Citrix ICA Client Object Programmer’s Guide

Finding More InformationThis manual contains conceptual information, detailed descriptions of the ICA Client Object API, and sample scripts that illustrate use of the ICA Client Object. For additional information, see the following:

� For instructions about installing, configuring, and maintaining your Citrix servers, see the documentation included in your Citrix server package

� For information about deploying ICA Clients, see the Citrix ICA Client Administrator’s Guides

Citrix documentation is available in Adobe PDF format in the following locations:

� The documentation directory of your Citrix ICA Client CD-ROM� The documentation directory of your Citrix server CD-ROM� The product documentation library at http://www.citrix.com/support/

productdocs.asp

Important Always consult the Readme.txt files for your Citrix server and the Citrix ICA Client for any last-minute updates, installation instructions, and corrections to the documentation.

Using PDF DocumentationTo use the Citrix documentation that is provided in PDF files, you need to have the Adobe Acrobat Reader program. The Reader program lets you view, search, and print the documentation files.

If you need to obtain the Reader program, you can download it for free from Adobe System’s Web site (http://www.adobe.com). The self-extracting file includes installation instructions.

Citrix on the World Wide WebThe Citrix Web site, at http://www.citrix.com, offers a variety of information and services for Citrix customers and users. From the Citrix home page, you can access Citrix online Technical Support Services and other information designed to assist MetaFrame administrators, including the following:

� Downloadable Citrix ICA Clients (available at http://citrix..com/download)� Program information on Citrix Preferred Support Services options

Page 11: Citrix ICA Client Object

Chapter 1 Welcome 11

� An FTP server containing the latest service packs, hotfixes, utilities, and product literature for download

� An online Solution Knowledgebase containing an extensive collection of technical articles, troubleshooting tips, and white papers

� Interactive online Solution Forums for discussion of technical issues with other users

� Frequently Asked Questions pages with answers to common technical and troubleshooting questions

� Citrix Documentation Library containing the latest MetaFrame documentation

� Information about programs and courseware for Citrix training and certifications

� Contact information for Citrix headquarters, including worldwide, European, Asia Pacific, and Japan headquarters

Reader CommentsWe strive to provide accurate, clear, complete, and usuable documentation for Citrix products. If you have any comments, corrections, or suggestions for improving our documentation, we want to hear from you. You can send e-mail to the authors at [email protected]. Please include the product name and version number, and the title of the document in your message.

Page 12: Citrix ICA Client Object
Page 13: Citrix ICA Client Object

13

2C H A P T E R 2

Introduction to the ICA Client Object

This chapter describes system requirements for the ICA Client Object and an overview of the environment in which it operates.

RequirementsClient-Side RequirementsTo use the ICA Client Object functionality, have the ICA Win32 Client, Version 6.01, installed and running on the client device. The ICA Client Object components are installed as a part of the ICA Win32 Client installation.

Server-Side RequirementsThe ICA Client Object works with MetaFrame 1.8 and MetaFrame XP servers.

ICA Client Object EnvironmentThe ICA Client Object is the framework that exposes the functionality of the Citrix ICA Win32 Client to third-party applications. The framework is based around an embedding model, where the ICA Client Object is contained within a host applicaton (referred to as a container).

The ICA Client Object framework includes the following Application Programming Interfaces (APIs):

� Method interface� Property interface

Page 14: Citrix ICA Client Object

14 Citrix ICA Client Object Programmer’s Guide

� Events interface

The diagram above outlines the interfaces between the ICA Client Object and the container, where:

� A Container is an instance of a third-party container application. A container application can be a Web browser (Internet Explorer, Netscape Navigator), a Visual Basic (VB) application, a Delphi application, a Microsoft Foundation Class (MFC) application, or any application that supports the embedding technologies provided by the ICA Client Object.

� The ICA Client Object is an instance of the Citrix ICA Client.� The Method Interface is used by the container to control and interact with the

ICA Client Object.� The Property Interface is used by the container to access properties of the ICA

Client Object.� The Events Interface is used by the ICA Client Object to send events to the

container.

Embedding and Scripting InterfacesThe ICA Client Object includes a set of APIs you use to interface with the ICA Client software and control it from third-party applications.

When an object is embedded into a container, it can be controlled with a script. You can use scripting tools such as JavaScript and VBScript to control the object. For example in Word and Excel, you can use VBScript; in Internet Explorer, you can use VBScript and JavaScript; in Netscape, you can use JavaScript.

ActiveX controls and Netscape Plug-ins are two of the enabling technologies that allow you to embed objects within container applications such as Internet Explorer, Netscape, Microsoft Word, and Excel. The ICA Client Object implementation is based on these two embedding technologies.

Container ICA ClientObject

MetaFrameserver

Property Interface

Method Interface

Events Interface

ICA ClientSession

Page 15: Citrix ICA Client Object

Chapter 2 Introduction to the ICA Client Object 15

ActiveXActiveX is based on the Component Object Model (COM) architecture. ActiveX controls are supported by the Internet Explorer Web browser and by any container application conforming to the COM interface.

EmbeddingActiveX controls can be embedded in a Web browser (Internet Explorer) through the <OBJECT> tag. For other types of container applications, ActiveX controls are embedded through the standard COM interface.

In a Web browser environment (Internet Explorer), an ActiveX control is embedded into a Web page through a number of steps.

1. The ActiveX control must be installed and registered in the operating system. If not already installed, the <OBJECT> tag can optionally specify a URL from which the ActiveX control can be downloaded and installed automatically.

2. When the ActiveX control is installed and registered, the Web browser creates an instance of the object (the ICA Win32 Client).

3. The ActiveX control receives the download data from the browser (the ICA file) and then starts the connection to the Citrix server. In addition to the downloaded ICA file, parameters can be specified through <PARAM> tags.

PropertiesThe ActiveX embedding model permits access to the public properties of an object. See “Property Interface” on page 19 for a list of ICA Client Object properties.

In a Web browser environment (Internet Explorer), properties of an object can be set through <PARAM> tags at load time, and can be read through the scripting interface.

In addition to the <PARAM> tag interface, the ICA Client Object provides the property interface that permits the Web browser to enumerate and access properties through scripting. These methods are in the general form of GetPropCount( ), SetProp(propertyName, value), and GetPropValue(propertyName, value), etc.

Page 16: Citrix ICA Client Object

16 Citrix ICA Client Object Programmer’s Guide

MethodsThe ActiveX embedding model permits access to public methods of an object.

For a Web browser, the object methods can be accessed through supported scripting languages.

The ActiveX implementation of the ICA Client Object includes a set of methods. These methods are in the general form of DoAction(optionalParam).

See “Methods Interface” on page 25 for a list of published methods.

EventsThe ActiveX embedding model provides a standard interface for sending events to the container application. In this interface model, the ActiveX control (the source of the events) defines a set of supported events, while the container defines a handler for each of the events in which it is interested. Event handlers are referred to as event sinks.

The ActiveX implementation of the ICA Client Object supports events. The container application must provide the necessary event sink interface for each of the events it wants to receive. See “Events Interface” on page 34 for a list of available events.

SummaryThe ActiveX implementation of the ICA Client Object supports embedding and scripting on any operating system where the COM architecture is implemented.

Embedding of the ActiveX control is not limited to Internet Explorer; embedding is supported by any application conforming to the COM interface.

Netscape Plug-insPlug-ins are a Netscape component technology. Netscape Plug-ins support embedding and scripting. The Plug-in API can be used to develop components that extend the capabilities of the Netscape browser.

EmbeddingPlug-ins embed into Web pages through a number of steps.

1. The plug-in must be present in the \Plugins directory of the Netscape Web browser. If not present, the user is prompted to download the plug-in from some location on the Web.

Page 17: Citrix ICA Client Object

Chapter 2 Introduction to the ICA Client Object 17

2. The plug-in is loaded using a well-defined API. The page that triggers the plug-in to load has either an <EMBED> or <OBJECT> tag with a MIME type supported by the plug-in.

3. The plug-in receives the download data from the browser (the ICA file) and then initiates the connection to the Citrix server. Parameters are set from the HTML tag.

PropertiesUsing LiveConnect for Netscape 3.x and above, you can set properties that are actually contained in the plug-in. From the script point of view, the plug-in is a Java object with methods and properties. The plug-in uses LiveConnect to publish these scripting interfaces. If the Netscape Web browser does not support Java because it is disabled or is not supported, it is not possible to support calling methods in the plug-in.

The Netscape Plug-in implementation of the ICA Client Object uses LiveConnect to support methods, properties, and events.

The properties that can be set belong to several different categories. For example, there are properties for modifying the behavior of the plug-in, properties for changing the connection information, and properties for retrieving information from the server. Properties control different settings of the ICA Client Object.

See “Property Interface” on page 19 for a list of ICA Client Object properties.

MethodsMethods are also dependent on LiveConnect support. The set of published methods that can be called is the same as the ActiveX implementation. See “Methods Interface” on page 25 for a list of published methods.

EventsEvents notify the container application (Netscape) of any changes in the state of the ICA Client Object. See “Events Interface” on page 34 for a list of available events.

Summary Netscape Web browsers provide support for plug-ins. Netscape Plug-ins cannot be embedded in any other application. The Netscape plug-in requires LiveConnect to support scripting.

Page 18: Citrix ICA Client Object
Page 19: Citrix ICA Client Object

19

3C H A P T E R 3

ICA Client Object APIs

This chapter describes the functions of each of the ICA Client Object APIs.

The following table contains data types used in the descriptions. These are intended as a guide only, because the technology-specific implementations of these data types may differ.

Property InterfaceThe property interface maintains the property list for the ICA Client Object, including adding, modifying, removing, and enumerating the contents of the property list. When the ICA connection is started, this list is used as a basis of overrides for the properties of the ICA connection to the MetaFrame server.

Properties are stored in key/value pairs. Both the key and value are preserved in STRING format.

Important In the following sections, the values applicable for Call Time are run-time and load-time. Load-time means that the method can be called only before the session is started; run-time means the method can be called only when connected.

Data Type or Value Remarks

BOOLEAN Boolean value − only TRUE or FALSE

STRING An array of characters based on the native implementation of strings

NUMBER Unsigned integer

VOID No value − either no returned value or no value passed as parameter

Page 20: Citrix ICA Client Object

20 Citrix ICA Client Object Programmer’s Guide

ClearPropsRemoves all properties from the property list within the ICA Client Object.

Calling conventionVOID ClearProps()

Call timeLoad-time, run-time

Supported inICA Client Object 2.0

Note ClearProps will not remove read-only properties.

GetPropCountGets the number of parameters maintained by the ICA Client Object at the time the method is called.

Calling conventionNUMBER GetPropCount()

Return valueNUMBER PropCount – the number of parameters maintained by the ICA Client Object

Call timeLoad-time, run-time

Supported inICA Client Object 2.0

Page 21: Citrix ICA Client Object

Chapter 3 ICA Client Object APIs 21

DeletePropRemoves Name and its corresponding value from the ICA Client Object property list. If Name does not exist, no action is taken.

Calling conventionVOID DeleteProp(STRING Name)

ParametersSTRING Name – the name of the property to delete

Call timeLoad-time, run-time

Supported inICA Client Object 2.0

Note DeleteProp will not delete read-only properties.

DeletePropByIndexRemoves the property stored at location Index in the property list.

Note When you remove a property, the index of subsequent properties changes.

Calling conventionVOID DeletePropByIndex (NUMBER Index)

ParametersNUMBER Index – the property index

Call timeLoad-time, run-time

Supported inICA Client Object 2.0

Important DeletePropByIndex will not remove read-only properties.

Page 22: Citrix ICA Client Object

22 Citrix ICA Client Object Programmer’s Guide

GetPropNameByIndexGets the name of the property stored at position Index in the property list.

Important Do not store the index of a particular property for future use. The index of a property can change relative to other properties being added or removed.

Calling conventionSTRING GetPropNameByIndex (NUMBER Index)

Return valueSTRING PropName – the property name

Call timeLoad-time, run-time

Supported inICA Client Object 2.0

ResetPropsResets the property list to its initial state. The initial state is defined by the properties started when the object was created. This state includes reading the Ini file provided at the point of object creation.

Calling conventionVOID ResetProps()

Call timeLoad-time, run-time

Supported inICA Client Object 2.0

Note ResetProps will not reset read-only properties. Current values for read-only properties are kept. The initial state of the properties does not include any settings from Ica or Ini files.

Page 23: Citrix ICA Client Object

Chapter 3 ICA Client Object APIs 23

SetPropSets a property. The operation adds the Name and Value to the property list or replaces the existing value. If the Value is NULL, any existing value is deleted. If the Value is a zero length string, an existing value is replaced with the empty string or a new property is added with a zero length string value.

Calling conventionVOID SetProp (STRING Name, STRING Value)

ParametersSTRING Name – the property name

STRING Value – the property value

Call timeLoad-time, run-time

Supported inICA Client Object 2.0

Note SetProp will not set read-only properties.

GetPropValueGets the value for Name.

Calling conventionSTRING GetPropValue(STRING Name)

Return valueSTRING PropValue - property value if successful, zero length string otherwise.

Call timeLoad-time, run-time

Supported inICA Client Object 2.0

Page 24: Citrix ICA Client Object

24 Citrix ICA Client Object Programmer’s Guide

GetPropValueByIndexGets the value of the property stored at position Index in the property list.

Important Do not store the index of a particular property for future use. The index of a property can change relative to other properties being added or removed.

Calling conventionSTRING GetPropValueByIndex(NUMBER Index)

Return valueSTRING PropValue - property value if successful, zero length string otherwise.

Call timeLoad-time, run-time

Supported inICA Client Object 2.0

Page 25: Citrix ICA Client Object

Chapter 3 ICA Client Object APIs 25

Methods InterfaceThe functions of the methods interface implements functions control the ICA session and its interaction with the container application.

ConnectConnects to a Citrix server. The ICA Client Object starts an ICA session using the current connection properties.

Calling conventionVOID Connect()

Call timeLoad-time only

Supported inICA Client Object 2.0

Note This function is asynchronous and returns to the script before the ICA session is started. Session status is returned by the OnConnect or OnConnectFailed events.

DisconnectDisconnects the current ICA session.

Calling conventionVOID Disconnect()

Call timeRun-time only

Supported inICA Client Object 2.0

Note This function is asynchronous and returns to the script before the ICA session is disconnected. The container is notified of disconnection status by the OnDisconnect or OnDisconnectFailed event.

Page 26: Citrix ICA Client Object

26 Citrix ICA Client Object Programmer’s Guide

LogoffLogs the current ICA session off the server. The user’s applications are terminated by the server’s logoff operation and the ICA session ends.

Calling conventionVOID Logoff()

Call timeRun-time

Supported inICA Client Object 2.0

RemarksLogoff status notification is returned by the OnDisconnect or OnLogoffFailed event.

Note This function is asynchronous and returns to the script before the ICA session logs off . If log off fails, the container is notified by the OnLogoffFailed event.

LoadIcaFileLoads an ICA file.

Calling conventionVOID LoadIcaFile(STRING File)

ParametersSTRING File – the name of the file to load. This can be a URL or file name.

Call timeLoad-time

RemarksThis function initiates the asynchronous download of the ICA file from the specified location. The container application is notified about ICA file download status by the OnICAFile or OnICAFileFailed event.

Note This function is asynchronous and returns to the script before the ICA file is loaded. The container application is notified of download status by the OnICAFile or OnICAFileFailed event.

Page 27: Citrix ICA Client Object

Chapter 3 ICA Client Object APIs 27

RunPublishedApplicationLaunches a published application within a connected ICA session.

Calling conventionVOID RunPublishedApplication(STRING Name, STRING Argument)

ParametersSTRING Name – the name of a published application

STRING Argument – the argument to be passed to the published application

Call timeRun-time

Supported inICA Client Object 2.0

Note This function is asynchronous and returns to the script before the application is started. Status of the launch is returned by the OnPublishedApp or OnPublishedAppFailed event.

SetSessionEndActionSpecifies the action the ICA Client Object takes when a session ends.

Calling conventionVOID SetSessionEndAction(NUMBER Action)

ParametersNUMBER Action

Valid actions are:

0 Do nothing at session end

1 Automatically restart the ICA session

Call timeLoad-time, run-time

Supported inICA Client Object 2.0

Page 28: Citrix ICA Client Object

28 Citrix ICA Client Object Programmer’s Guide

IsConnectedGets the state of the ICA connection.

Calling conventionBOOL IsConnected()

Return valueTrue if the client is connected to a Citrix server, False otherwise.

Call timeLoad-time, run-time

Supported inICA Client Object 2.0

GetInterfaceVersionGets the ICA Client Object API version as a string value. The API version has major and minor values separated by a period (for example, 2.0).

Calling conventionSTRING GetInterfaceVersion()

Return valueSTRING Version

Call timeLoad-time, run-time

Supported inICA Client Object 2.0

Page 29: Citrix ICA Client Object

Chapter 3 ICA Client Object APIs 29

GetClientIdentificationGets a string that completely identifies the ICA Win32 Client in terms of the client update identification data. The format is product-model-major.minor.build-variant. For Citrix delivered clients, the variant name is automatically set to “Citrix.” Except for the variant, all other portions of the identification string are represented by decimal numbers.

Calling conventionSTRING GetClientIdentification()

Return valueSTRING ClientID

Call timeLoad-time, run-time

Supported inICA Client Object 2.0

GetSessionStringReturns the session string from the server for the current ICA session. The string returned depends on the value of session string Index.

Calling conventionSTRING GetSessionString(NUMBER Index)

ParametersNUMBER Index

0 Server name

1 User name

2 Domain name

Call timeRun-time

Supported inICA Client Object 2.0

Page 30: Citrix ICA Client Object

30 Citrix ICA Client Object Programmer’s Guide

GetSessionCounterGets the current number of bytes or frames sent to or from the server for the ICA session.. The value returned depends on the session counter Index selected.

Calling conventionNUMBER GetSessionCounter(NUMBER Index)

ParametersNUMBER Index

0 Incoming Bytes

1 Outgoing Bytes

2 Incoming Frames

3 Outgoing Frames

4 Errors Incoming

5 Errors Outgoing

Return valueNUMBER Counter

Call timeRun-time

Supported inICA Client Object 2.0

Page 31: Citrix ICA Client Object

Chapter 3 ICA Client Object APIs 31

GetNotificationReasonThis function returns a number representing the reason for the last event notification received by the ICA Client Object.

Calling conventionNUMBER GetNotificationReason()

Return valueNUMBER Reason

0 No reason available

1 Connection successful

2 Connection failed

3 Logon successful

4 (Reserved)

5 Connection closed (disconnected or logged off)

6 Last RunPublishedApplication( ) successful

7 Last RunPublishedApplication( ) failed

8 ICA file present

9 ICA file download failed

10 Connection initialization

11 Connecting to server

12 Initial properties set

13 Disconnect failed

14 Logoff failed

Call timeLoad-time, run-time

Supported inICA Client Object 2.0

Page 32: Citrix ICA Client Object

32 Citrix ICA Client Object Programmer’s Guide

AboutBoxDisplays the AboutBox on the client device that contains copyright and version information about the ICA Client Object.

Calling conventionVOID AboutBox()

Call timeLoad-time, run-time

Supported inICA Client Object 2.0

StartupIndicates the script on the Web server is ready to receive events. Event notification is disabled until this function, or any other API functions, are called.

Calling conventionVOID Startup()

Call timeLoad-time, run-time

Supported inICA Client Object 2.0

Page 33: Citrix ICA Client Object

Chapter 3 ICA Client Object APIs 33

ExampleThe following example illustrates how and when this function is called.

<html><head><title>Example of using Startup()</title><script language="JavaScript">var ICO // global variable holding reference to ICA Client Object//// Connect handler//function ICO1_OnConnect(){

alert("Connected")}//// Page initialization//function PageInit(){

ICO = document.ICO1 // assign our object to globalICO.Startup()

}</script></head><body onLoad="PageInit()"><embed type=application/x-ica name=ICO1 width=640 height=480 address=AUS-TEST-OBJECT></body></html>

Page 34: Citrix ICA Client Object

34 Citrix ICA Client Object Programmer’s Guide

Events InterfaceThe ICA Client Object events interface implementation is based on the underlying embedding technologies. In each of these implementations, events notification is performed through callback functions, or handlers.

For the ActiveX implementation, the ICA Client Object defines a set of supported events. The container defines a handler (event sink) for each of the events in which it is interested. Refer to VBScript, JavaScript, and ActiveX documentation for more information about implementing event sinks in the container.

For the Netscape Plug-in implementation, the ICA Client Object defines a set of supported events. The container defines a handler for each of the events in which it is interested. The handlers are JavaScript functions, each named using the following convention:

ObjName_EventName

where ObjName is the name of the embedded ICA Client Object, and EventName is the name of the event.

For example, in the following <EMBED> tag:

<embed type=application/x-ica width=640 height=480 name=ICO1>

the JavaScript function for the OnConnect event handler must be defined as ICO1_OnConnect.

function ICO1_OnConnect(){

alert("Connected!");}

The list of events supported by the ICA Client Object is as follows:

Event # Handler

0

1 OnConnect

2 OnConnectFailed

3 OnLogon

4 (Reserved)

5 OnDisconnect

6 OnPublishedApp

7 OnPublishedAppFailed

Page 35: Citrix ICA Client Object

Chapter 3 ICA Client Object APIs 35

Note The Reason parameter is an integer representing the event and is described by GetNotificationReason method.

OnConnectThe connection was successful.

Calling conventionVOID OnConnect()

Supported inICA Client Object 2.0

OnConnectFailedThe connection failed.

Calling conventionVOID OnConnectFailed()

Supported inICA Client Object 2.0

8 OnICAFile

9 OnICAFileFailed

10 OnInitializing

11 OnConnecting

12 OnInitialProp

13 OnDisconnectFailed

14 OnLogoffFailed

Event # Handler

Page 36: Citrix ICA Client Object

36 Citrix ICA Client Object Programmer’s Guide

OnLogonThe logon was successful.

Calling conventionVOID OnLogon()

Supported inICA Client Object 2.0

OnDisconnectDisconnection or logoff notification.

Calling conventionVOID OnDisconnect()

Supported inICA Client Object 2.0

OnPublishedAppThe published application launched successfully.

Calling conventionVOID OnPublishedApp()

Supported inICA Client Object 2.0

OnPublishedAppFailedThe published application failed to launch.

Calling conventionVOID OnPublishedAppFailed()

Supported inICA Client Object 2.0

Page 37: Citrix ICA Client Object

Chapter 3 ICA Client Object APIs 37

OnICAFileThe ICA file was successfully downloaded.

Calling conventionVOID OnICAFile()

Supported inICA Client Object 2.0

OnICAFileFailedThe ICA file failed to download.

Calling conventionVOID OnICAFileFailed()

Supported inICA Client Object 2.0

OnInitializingConnection initialization was successful.

Calling conventionVOID OnInitializing()

Supported inICA Client Object 2.0

OnConnectingConnection to server was successful.

Calling conventionVOID OnConnecting()

Supported inICA Client Object 2.0

Page 38: Citrix ICA Client Object

38 Citrix ICA Client Object Programmer’s Guide

OnInitialPropInitial properties were set successfully.

Calling conventionVOID OnInitialProp()

Supported inICA Client Object 2.0

OnDisconnectFailedDisconnect failed.

Calling conventionVOID OnDisconnectFailed()

Supported inICA Client Object 2.0

OnLogoffFailedLogoff failed.

Calling conventionVOID OnLogoffFailed()

Supported inICA Client Object 2.0

OnClickThe OnClick event callback is initiated when a user clicks in the embedded object’s client area when an ICA session is not established.. This allows a simple user interface to be constructed by the container.

Calling conventionVOID OnClick (NUMBER MouseButton, NUMBER PosX, NUMBER PosY, NUMBER KeyMask)

Page 39: Citrix ICA Client Object

Chapter 3 ICA Client Object APIs 39

ParametersMouseButton is the mouse button that generates the OnClick event. See KeyMask for the value of each mouse button.

PosX and PosY are the coordinates of the mouse pointer relative to the top-left corner of the embedded object’s client area. PosX is toward the right; PosY is toward the bottom.

KeyMask (bit-mask) can be a combination (bit-wise OR) of one or more of the values listed below. A bit is set if the corresponding mouse buttons or keys on the keyboard are pressed.

1 Left mouse button

2 Right mouse button

4 Shift key

8 Control key

16 Middle mouse button

Note The circumstances in which the OnClick event callback is generated are dependent upon the UIActive flags. See Chapter 4, “ICA Client Object Properties” for more information.

Supported inICA Client Object 2.0

Page 40: Citrix ICA Client Object
Page 41: Citrix ICA Client Object

41

4C H A P T E R 4

ICA Client Object Properties

This chapter describes the commonly used properties supported by the ICA Client Object. You can set and retrieve property values with the SetProp() and GetPropValue() methods. For example:

You can also set and get properties by name in the ActiveX implementation of the ICA Client Object. For example, in VBScript you can specify:

Note that the SetProp() method expects property names and values in string format only. For the convenience of scripting, and where supported by the particular scripting environment, properties ( accessed by name) can be exposed as generic data type or enumeration; that is, in terms of integer, boolean, and so forth. These data types are translated internally, as required, by the ICA Client Object.

obj.SetProp(“DesiredHRes”, “640”)obj.SetProp(“Encrypt”, “ON”)obj.SetProp(“DesiredColor”, “1”)

hres=obj.GetPropValue(“DesiredHres”)

obj.DesiredHRes = 640obj.Encrypt = trueobj.DesiredColor = 16Color

hres=obj.DesiredHRes

Page 42: Citrix ICA Client Object

42 Citrix ICA Client Object Programmer’s Guide

ICA Client Object PropertiesName Description Type Possible Value(s)

Address Target server address (network name or physical address).

String

Application Published application name. If defined, it overrides the Address and InitialProgram properties.

String

APPSRVINI Full path and filename of Appsrv.ini. String

AudioBandwidthLimit Audio bandwidth limit or audio quality. Number 0=high,1=medium(default)2=low

BackgroundColor Color of ICA Client Object background.Specified in #rrggbb format.

Number #000000=black#ffffff=white(default)other colors...

Border Border size in pixels. Number 0=no border1=one pixel(default)other widths...

BorderColor Color of ICA Client Object border. Specified in #rrggbb format.

Number #000000=black(default)#ffffff=whiteother colors...

BrowserProtocol Protocol to use for ICA browser name resolution.

String IPX, SPX, NetBIOS, UDP, HTTP+TCP

CDMAllowed Enable Client drive support. Boolean TRUE(default), FALSE

ClientName Unique name of client. String Defaults to the current ICA Client setup.

ClientAudio Enable Client audio support. Boolean TRUE, FALSE(default)

ClientPath Path of ICA Client (read-only). Read-Only String

ClientVersion Version of ICA Client (read-only). Read-Only String

Format is Major.Minor.Build(example, “6.0.950”)

COMAllowed Allow client COM port mapping. Boolean TRUE(default), FALSE

Compress Enable compression protocol. Boolean TRUE(default), FALSE

Connected Current connected state. Read-Only Boolean

TRUE, FALSE

Page 43: Citrix ICA Client Object

Chapter 4 ICA Client Object Properties 43

ConnectionEntry Specifies the connection entry to use in ICA or Appsrv.ini file.

String

CPMAllowed Allow client printer port mapping. Boolean TRUE(default), FALSE

CustomMessage Custom message to display in ICA Client Object when not connected. Must also set UIActive to TRUE.

String

Description General description of connection. String

DesiredColor Numeric value for color depth. Number 1=16-color(default)2=256-color4=16-bit-color8=24-bit-color16=32-bit-color

DesiredHRes Desired horizontal resolution of client session.

Number

DesiredVRes Desired vertical resolution of client session. Number

Domain Server domain used for authentication. String

DoNotUseDefaultCSL Do not use default ICA browser search technique.

Boolean TRUE, FALSE (default)

Encrypt Enable encryption. Boolean TRUE(default), FALSE

EncryptionLevelSession Encryption level for session. Selects which encryption type to use.

String “Encrypt”=Basic(default)“EncRC5-0”=RC5 128 bit-login only“EncRC5-40”=RC5 40 bit“EncRC5-56”=RC5 56 bit“EncRC5-128”=RC5 128 bit

Height Height of ICA Client Object (read-only). Read-Only Number

HTTPBrowserAddress HTTP browser address. Used for application/server-name resolution.

String

ICAFile Name of ICA file to use for connection. URLs are allowed.

String

ICAPortNumber TCP/IP port number to use for connecting to the Citrix MetaFrame server

Number 1494 (default), other numbers

IconIndex Index into the IconPath file for associated icon.

Number

Name Description Type Possible Value(s)

Page 44: Citrix ICA Client Object

44 Citrix ICA Client Object Programmer’s Guide

IconPath Icon file pathname. String

InitialProgram Initial program to run on server. String

IPXBrowserAddress IPX browser address. Used for application/server-name resolution.

String

KeyboardTimer Queue keyboard input for a specified number of milliseconds

Number 0 (default), other numbers

Launch Launch the session instead of embedding it. Boolean TRUE, FALSE(default)

LocHTTPBrowserAddress Local HTTP browser address. Used for application/server-name resolution.

String

LocIPXBrowserAddress Local IPX browser address. Used for application/server-name resolution.

String

LocNetbiosBrowserAddress Client Local NetBIOS browser address. Used for application/server-name resolution.

String

LocTCPBrowserAddress Local TCP/IP browser address. Used for application/server-name resolution.

String

LogAppend Append to existing log file. Boolean TRUE, FALSE(default)

LogConnect Log connection/disconnection events. Boolean TRUE(default), FALSE

LogErrors Log errors from connection. Boolean TRUE(default), FALSE

LogFile Name of log file. String

LogFlush Flush out log results for each write (very slow).

Boolean TRUE, FALSE(default)

LogKeyboard Log the keystrokes. Boolean TRUE, FALSE(default)

LogReceive Log the receive data. Boolean TRUE, FALSE(default)

LogTransmit Log the transmit data. Boolean TRUE, FALSE(default)

MODULEINI Pathname for Module.ini file (optional). String

MouseTimer Queue mouse input for a specified number of milliseconds

Number 0 (default), other numbers

NetbiosBrowserAddress NetBIOS browser address. Used for application/server-name resolution.

String

NotificationReason Reason for last event notification. Read-Only Number

See event table

Password User password for connection. Internal use based on PasswordType. All passwords are stored in encrypted form.

Write-Only String

Name Description Type Possible Value(s)

Page 45: Citrix ICA Client Object

Chapter 4 ICA Client Object Properties 45

PasswordType Type of password being used. Number 0=Unencrypted(default)1=Encrypted

PersistentCacheEnabled Enable Persistent Cache (image disk caching).

Boolean TRUE, FALSE(default)

ProtocolSupport List of protocol drivers to load (advanced). String

Reliable Enable reliable protocol support. Boolean TRUE(default), FALSE

Scrollbars Disable scrollbars when client session too big. Boolean TRUE (default), FALSE

SessionEndAction Set what to do when session ends. Number 0=Nothing(default)1=Restart

Start Start the client session immediately. Boolean TRUE, FALSE(default)

Title Title for session window. String “Server”(default)

TCPBrowserAddress TCP/IP browser address. Used for application/server-name resolution.

String

TextColor Color of text for ICA Client Object. Specified in #rrggbb format.

Number #000000 = black (default)#000000 = whiteother colors ...

TransportDriver Transport used for connection String TCP/IP (default), IPX, NetBIOS

UIActive Enable custom UI Boolean TRUE, FALSE (default)

UpdatesAllowed Enable updating client from the server Boolean TRUE (default), FALSE

UserName Username for authentication String

Version Version of ICA Client Object Read-only string

Currently “2.0”

VSLAllowed Enable client print-spooling. Boolean TRUE (default), FALSE

WFCLIENTINI Full path and file name of the wfclient.ini file. String

Width Width of ICA Client Object (read-only). Read-only number

WinstationDriver Winstation driver. String “ICA 3.0” (default)

WorkDirectory Default starting directory on server. String

Name Description Type Possible Value(s)

Page 46: Citrix ICA Client Object

46 Citrix ICA Client Object Programmer’s Guide

ICA Browser Name ResolutionThe ICA Browser is a Citrix ICA server component that resolves server and published application names into network addresses. The ICA client requests this service during the initial connection attempt.

The ICA Client can use a number of ways to communicate with an ICA Browser. Usually it is through the same protocol as the stated transport driver. However, this can differ at times if more than one type of communication is supported on that protocol.

Communication, regarding name resolution, between the client and server takes place automatically if the client and server are on the same subnet. If the client is able to broadcast a resolution request over the local subnet and get a response, there is no need to specify where the ICA Browser is.

If the client and the server are not on the same subnet, it is important to specifiy exactly how this communication will occur to guarantee proper name resolution.

Specific ICA Client Object properties that you can use to do this are listed in the following section.

ICA Browser Specific PropertiesThe following table lists ICA Client Object properties that relate specifically to the ICA Browser.

Name Description Type Possible Value(s)

BrowserProtocol Protocol to use for ICA Browser name resolution. String IPX, SPX, NETBIOS, UDP, HTTP+TCP

DoNotUseDefaultCSL Do not use default ICA Browser search technique. Boolean TRUE, FALSE(default)

LocHTTPBrowserAddress Local HTTP browser address. Used for application/server-name resolution.

String

LocIPXBrowserAddress Local IPX browser address. Used for application/server-name resolution.

String

LocNetbiosBrowserAddress Local NetBIOS browser address. Used for application/server-name resolution.

String

LocTCPBrowserAddress Local TCP/IP browser address. Used for application/server-name resolution..

String

Page 47: Citrix ICA Client Object

Chapter 4 ICA Client Object Properties 47

Notes:

DoNotUseDefaultCSL controls which set of addresses to use.

When set to FALSE, which is the default, the HTTPBrowserAddress, IPXBrowserAddress, NETBIOSBrowserAddress, and TCPBrowserAddress properties are used. When set to TRUE, the LocHTTPBrowserAddress, LocIPXBrowserAddress, LocNETBIOSBrowserAddress, and LocTCPBrowserAddress properties are used.

The difference between the two is that the ones that start with “Loc” are considered to be strong overrides and the client will not use any other internal address from the INI files. The addresses used when DoNotUseDefaultCSL is FALSE do not take precedence over what might be in the [WFCLIENT] section of the client Ini files. “Loc” addresses are more specific and there is less room for confusion.

BrowserProtocol determines which protocol to use to contact the ICA Browser. For IPX, SPX, and NetBIOS, this is fairly straightforward. Both IPX and SPX use IPXBrowserAddress or LocIPXBrowserAddress. NetBIOS uses NETBIOSBrowserAddress or LocNETBIOSBrowserAddress.

UDP and HTTP+TCP both use TCP/IP but differ in the type of ICA Browser communication. UDP uses the traditional technique of using UDP over a TCP/IP network. HTTP+TCP uses TCP with the HTTP protocol. HTTP+TCP selects the browser address from LocHTTPBrowserAddress or HTTPBrowserAddress. UDP selects from TCPBrowserAddress or LocTCPBrowserAddress.

ICA Browser Address Grid

TransportDriver BrowserProtocol DoNotUseDefaultCSLICA Browser AddressUsed

IPX IPX FALSE IPXBrowserAddress

IPX IPX TRUE LocIPXBrowserAddress

SPX SPX FALSE IPXBrowserAddress

SPX SPX TRUE LocIPXBrowserAddress

NETBIOS NETBIOS FALSE NETBIOSBrowserAddress

NETBIOS NETBIOS TRUE LocNETBIOSBrowserAddress

TCP/IP UDP FALSE TCPBrowserAddress

TCP/IP UDP TRUE LocTCPBrowserAddress

TCP/IP HTTP+TCP FALSE HTTPBrowserAddress

TCP/IP HTTP+TCP TRUE LocHTTPBrowserAddress

Page 48: Citrix ICA Client Object

48 Citrix ICA Client Object Programmer’s Guide

Notes:

HTTP+TCP is popular to use on the Internet because it allows traffic to pass through firewalls. Without this feature, it is very difficult to publish applications on the Internet because most firewalls prohibit UDP traffic.

Most of the time it is perfectly satisfactory to use the non-Loc browser addresses. The only time it becomes a serious issue is when there are previous installations of the Citrix ICA Client, AND the client has been configured to have specific browser addresses that do not correspond to the properties set by the ICA Client Object.

Page 49: Citrix ICA Client Object

49

5C H A P T E R 5

Example Scripts

This chapter illustrates how the ICA Client Object works using a few selected examples, and explains how the embedding and scripting interfaces contribute to their functionality.

EmbeddingThe following sample HTML scripts illustrate how to embed the ICA Client Object in a Web page.

ActiveXIn this simple example, an ICA session is embedded in a Web page. The ICA Client automatically connects to the remote Citrix server when the user accesses the page.

� An instance of the ICA Client Object is embedded in the Web page using the <OBJECT> tag. The classid is a unique identifier for the ActiveX object, commonly known as the GUID. This identifier must be specified as shown in the following example.

� The codebase defines the URL where a binary copy of the ActiveX object can be found in case the ActiveX object is not already installed on the client device. The ActiveX embedding model provides the default mechanism to download the object if required.

� A published application (ActiveXDemo.ica) as defined by the IcaFile property is launched within this ICA session.

� Two of the properties for the embedded session are specified using the <PARAM> tag, border size, and automatic start, respectively.

Page 50: Citrix ICA Client Object

50 Citrix ICA Client Object Programmer’s Guide

<html><head><title>ICA Client Object Demo - embedded ActiveX</title></head><body><center><object classid="clsid:238f6f83-b8b4-11cf-8771-00a024541ee3" codebase="http://icaobj_server/icaobj/wfica.cab#version=-1,-1,-1,-1" width="640" height="480"> <param name="IcaFile" value="http://icaobj_server/icaobj/ActiveXDemo.ica"> <param name="Border" value="1"> <param name="Start" value="Auto"></object></center></body>

</html>

Page 51: Citrix ICA Client Object

Chapter 5 Example Scripts 51

Netscape Plug-inIn the following example, an ICA session is embedded in a Web page. The ICA Client automatically connects to the remote Citrix or MetaFrame server when the page is first visited.

� An instance of the ICA Client Object is embedded in the Web page using the <EMBED> tag. The “type” property is a unique MIME-type identifier for the plug-in object. This identifier must be specified as illustrated below.

� A published application (PluginDemo.ica) as defined by the IcaFile property is launched within this ICA session.

<html><head><title>ICA Client Object Demo - embedded Plugin</title></head><body><center><embed width="640" height="480" type="application/x-ica" name="icaObj" IcaFile="http://icaobj_server/icaobj/PluginDemo.ica" Border="1" Start="Auto"></embed></center></body>

</html>

Page 52: Citrix ICA Client Object

52 Citrix ICA Client Object Programmer’s Guide

ScriptingThe following sample HTML scripts illustrate how the ICA Client Object can be controlled, through scripting, when embedded in a Web page.

EventsThe following parts of this example illustrate the event interface.

� An alert box is displayed when the ICA Client connects to the MetaFrame server (OnConnect event).

� An alert box is displayed when the user is successfully logged on to the MetaFrame server (OnLogon events).

� An alert box is displayed when the user is disconnected from the MetaFrame server (OnDisconnect event).

Important You must set the Address property to an existing MetaFrame server.

ActiveX<html><head><title>Event Example for ActiveX</title><script language="javascript" type="text/javascript"><!--function PageInit(){ document.icaobj.Startup();}--></script><script id="clientEventHandlersJS" language="javascript" type="text/javascript"><!--function icaobj_OnConnect(){ alert("OnConnect");}function icaobj_OnDisconnect() { alert("OnDisconnect");}

<contd ...>

Page 53: Citrix ICA Client Object

Chapter 5 Example Scripts 53

function icaobj_OnLogon() { alert("OnLogon");}//--></script><script language="javascript" for="icaobj" event="OnConnect" type="text/javascript"><!-- icaobj_OnConnect();//--></script><script language="javascript" for="icaobj" event="OnDisconnect" type="text/javascript"><!-- icaobj_OnDisconnect();//--></script><script language="javascript" for="icaobj" event="OnLogon" type="text/javascript"><!-- icaobj_OnLogon();//--></script></head><body onload="PageInit()"><center><h1>Event Example for ActiveX</h1><p>Event notification for Connect, Disconnect and Logon.</p>

<object id="icaobj" style="WIDTH: 400px; HEIGHT: 300px" classid="clsid:238F6F83-B8B4-11CF-8771-00A024541EE3"> <param name="Address" value="mfserver"></object>

</center></body></html>

Page 54: Citrix ICA Client Object

54 Citrix ICA Client Object Programmer’s Guide

Netscape Plug-in<html><head><title>Event Example for Netscape Plugin</title><script language="javascript" type="text/javascript"><!--function icaobj_OnConnect(){ alert("OnConnect");}function icaobj_OnDisconnect(){ alert("OnDisconnect");}function icaobj_OnLogon(){ alert("OnLogon");}function PageInit(){ document.icaobj.Startup();}--></script></head><body onload="PageInit()"><center><h1>Event Example for Netscape Plugin</h1><p>Event notification for Connect, Disconnect and Logon.</p>

<embed name="icaobj" type="application/x-ica" width="400" height="300" address="mfserver">

</center></body></html>

Page 55: Citrix ICA Client Object

Chapter 5 Example Scripts 55

LoginThe following examples illustrate a simple Web page to establish a desktop session. When the user clicks the Login button, a desktop session is initiated on the server with the specified credentials.

ActiveX<html><head><title>Login Example for ActiveX</title><script language="javascript" type="text/javascript"><!--function Login(form){ document.icaobj.SetProp("Address",form.address.value); document.icaobj.SetProp("Username",form.username.value); document.icaobj.SetProp("Password",form.password.value); document.icaobj.SetProp("Domain",form.domain.value); document.icaobj.Connect();}--></script></head><body><center><h1>Login Example for ActiveX</h1><p>Login with Username and Password.</p>

<object id="icaobj" style="WIDTH: 400px; HEIGHT: 300px" classid="clsid:238F6F83-B8B4-11CF-8771-00A024541EE3"></object>

<form name="loginform"> Server: <input type="text" name="address"><br> Username: <input type="text" name="username"><br> Password: <input type="password" name="password"><br> Domain: <input type="text" name="domain"><br> <input type="button" value="Login" onclick="Login(this.form)"></form>

</center></body></html>

Page 56: Citrix ICA Client Object

56 Citrix ICA Client Object Programmer’s Guide

Netscape Plug-in<html><head><title>Login Example for Netscape Plugin</title><script language="javascript" type="text/javascript"><!--function Login(form){ document.icaobj.SetProp("Address",form.address.value); document.icaobj.SetProp("Username",form.username.value); document.icaobj.SetProp("Password",form.password.value); document.icaobj.SetProp("Domain",form.domain.value); document.icaobj.Connect();}--></script></head><body><center><h1>Login Example for Netscape Plugin</h1><p>Login with Username and Password.</p>

<embed name="icaobj" type="application/x-ica" width="400" height="300">

<form name="loginform"> Server: <input type="text" name="address"><br> Username: <input type="text" name="username"><br> Password: <input type="password" name="password"><br> Domain: <input type="text" name="domain"><br> <input type="button" value="Login" onclick="Login(this.form)"></form>

</center></body></html>

Page 57: Citrix ICA Client Object

Chapter 5 Example Scripts 57

Custom UIThe following examples illustrate how to customize the appearance of the UI for the ICA session prior to connection.

You can change the border size and color, background color, and message text and color.

Important The UIActive property must be set to True for CustomMessage to work.

ActiveX

<html><head><title>UI Example for ActiveX</title></head><body><center><h1>UI Example for ActiveX</h1><p>Custom border, background and message text.</p>

<object id="icaobj" style="WIDTH: 400px; HEIGHT: 300px" classid="clsid:238F6F83-B8B4-11CF-8771-00A024541EE3"> <param name="UIActive" value="true"> <param name="Border" value="5"> <param name="BorderColor" value="#ff0000"> <param name="BackgroundColor" value="#0000ff"> <param name="TextColor" value="#00ff00"> <param name="CustomMessage" value="Custom UI Example: Border size and color; Background color; Message Text Color."></object>

</center></body></html>

Page 58: Citrix ICA Client Object

58 Citrix ICA Client Object Programmer’s Guide

Netscape Plug-in<html><head><title>Custom UI Example for Netscape Plugin</title></head><body><center><h1>Custom UI Example for Netscape Plugin</h1><p>Custom border, background and message text.</p>

<embed name="icaobj" type="application/x-ica" width="400" height="300" UIActive="true" Border="10" BorderColor="#ff0000" BackgroundColor="#0000ff" TextColor="#00ff00" CustomMessage="Custom UI Example: Border size and color; Background color; Message Text Color."></center></body></html>

Page 59: Citrix ICA Client Object

Chapter 5 Example Scripts 59

Mouse ClickThe following examples illustrate handling of mouse input.

Note The UIActive property must be set to True to enable the OnClick event.

ActiveX<html><head><title>UI OnClick Example for ActiveX</title><script id="clientEventHandlersJS" language="javascript" type="text/javascript"><!--function icaobj_OnClick(mbutton, x, y, keymask){ var mButtonStr; var keyMaskStr = "";

switch (mbutton) { case 1: mButtonStr = "left"; break; case 2: mButtonStr = "right"; break; case 16: mButtonStr = "middle"; break; } if (keymask == 0) { keyMaskStr = "none"; } else { if (keymask & 4) { keyMaskStr += "Shift "; } if (keymask & 8) { keyMaskStr += "Ctrl";

<contd ...>

Page 60: Citrix ICA Client Object

60 Citrix ICA Client Object Programmer’s Guide

} }alert("You clicked the " + mButtonStr + " mouse button\nat the fol-lowing location (" + x + ", " + y + "),\nkeymask=" + keyMaskStr + ".");}//--></script><script language="javascript" for="icaobj" event="OnClick(mbutton, x, y, keymask)" type="text/javascript"><!-- icaobj_OnClick(mbutton, x, y, keymask)//--></script></head><body><center><h1>UI OnClick Example for ActiveX</h1>

<p>UIActive, custom message text, and OnClick handling.</p>

<object id="icaobj" style="WIDTH: 400px; HEIGHT: 300px" classid="clsid:238F6F83-B8B4-11CF-8771-00A024541EE3"> <param name="UIActive" value="true"> <param name="CustomMessage" value="Hold down the Shift and/or Ctrl key, and click mouse buttons anywhere..."></object>

</center></body></html>

Page 61: Citrix ICA Client Object

Chapter 5 Example Scripts 61

Netscape Plug-in<html><head><title>UI OnClick Example for Netscape Plugin</title><script language="javascript" type="text/javascript"><!--function icaobj_OnClick(mbutton, x, y, keymask){ var mButtonStr; var keyMaskStr = "";

switch (mbutton) { case 1: mButtonStr = "left"; break; case 2: mButtonStr = "right"; break; case 16: mButtonStr = "middle"; break; } if (keymask == 0) { keyMaskStr = "none"; } else { if (keymask & 4) { keyMaskStr += "Shift "; } if (keymask & 8) { keyMaskStr += "Ctrl"; } } alert("You clicked the " + mButtonStr + " mouse button\nat the fol-lowing location (" + x + ", " + y + "),\nkeymask=" + keyMaskStr + ".");}

<contd ...>

Page 62: Citrix ICA Client Object

62 Citrix ICA Client Object Programmer’s Guide

//

// Page initialization function

//

function PageInit()

{

document.icaobj.Startup();

}

//-->

</script>

</head>

<body onload="PageInit()">

<center>

<h1>UI OnClick Example for Netscape Plugin</h1>

<p>UIActive, custom message text, and OnClick handling.</p>

<embed

name="icaobj"

type="application/x-ica"

width="400" height="300"

UIActive="true"

CustomMessage="Hold down the Shift and/or Ctrl key, and click mouse buttons anywhere..."

>

</center>

</body>

</html>

Page 63: Citrix ICA Client Object

Chapter 5 Example Scripts 63

Other ExamplesThe examples in this section illustrate how scripting can be used in client-side HTML/VBScript so users can start different published applications.

ActiveXThe following example illustrates how scripting can be used in client-side HTML/VBScript so users can start different published applications.

� The ICA Client Object (icaObj) is embedded using the <OBJECT> tag.� A SELECT list (AppList) is used to present a selection of available

applications. In this case, actual ICA files are used to identify the published application.

� When the Start button is pressed, the current ICA session is disconnected using the icaObj.Disconnect method. The selected ICA file is then used as the parameter to the icaObj.SetProp method, which sets the value of the IcaFile property internal to the icaObj. The selected application is then started with the icaObj.Connect method.

� The Connect button is used to call the icaObj.Connect method to (re)connect to the MetaFrame server.

� The Disconnect button is used to call the icaObj.Disconnect method to disconnect from the MetaFrame server.

� The Logoff button is used to call the icaObj.Logoff method to terminate the current application and log off from the MetaFrame server.

� The About button is used to call the icaObj.AboutBox method to display information about the currently installed ICA Win32 Client.

The events notification feature is not illustrated. Events notification can be used to enhance the user experience by disabling buttons that do not apply to the current state of the ICA session. For example, the Connect button can be disabled when the container (browser) is notified that the connection is established, and subsequently re-enabled when it is notified that the connection is closed or lost due to network problems.

Page 64: Citrix ICA Client Object

64 Citrix ICA Client Object Programmer’s Guide

<html><head><title>ICA Client Object Demo - scripting ActiveX</title><script id="clientEventHandlersVBS" language="vbscript">

<!--Sub ConnButton_onclick ‘(re)connect current session icaObj.ConnectEnd Sub

Sub DiscButton_onclick ‘disconnect current session icaObj.DisconnectEnd Sub

Sub LogoffButton_onclick ‘logoff from remote server icaObj.LogoffEnd Sub

Sub AboutButton_onclick ‘show ICA Client Object's "AboutBox" icaObj.AboutBoxEnd Sub

Sub StartButton_onclick ‘Disconnect current application and start the selected application if icaObj.IsConnected then icaObj.Disconnect end if icaObj.SetProp "ICAFile",

AppList.options(AppList.selectedIndex).text icaObj.ConnectEnd Sub

--></script></head>

<contd ...>

Page 65: Citrix ICA Client Object

Chapter 5 Example Scripts 65

<body><center><table cellspacing="1" cellpadding="10" border="0"> <tr><td align="center">

<object id="icaObj" codebase="http://icaobj_server/icaobj/wfica.cab#version=-1,-1,-1,-1"classid="clsid:238f6f83-b8b4-11cf-8771-00a024541ee3" width="320" height="240"></object></td></tr> <tr><td align="center"> <input id="ConnButton" type="button" value="Connect" name="ConnButton"> <input id="DiscButton" type="button" value="Disconnect" name="DiscButton"><input id="LogoffButton" type="button" value="Logoff" name="LogoffButton"> <input id="AboutButton" type="button" value="About" name="AboutButton"></td></tr><tr><td> <hr style="LEFT: 10px; TOP: 104px"> Available Applications:<br> <select id="AppList" style="WIDTH: 500px"> <option selected>http://icaobj_server/icaobj/excel.ica</option> <option>http://icaobj_server/icaobj/word.ica</option> <option>http://icaobj_server/icaobj/ActiveXDemo.ica</option> </select> <input id="StartButton" type="button" value="Start" name="StartButton"><br> </td></tr></table>name="LogoffButton"> <input id="AboutButton" type="button" value="About" name="AboutButton"> </td></tr><tr><td> <hr style="LEFT: 10px; TOP: 104px"> Available Applications:<br>

<select id="AppList" style="WIDTH: 500px"> <option selected>http://icaobj_server/icaobj/excel.ica</option>

<contd ...>

Page 66: Citrix ICA Client Object

66 Citrix ICA Client Object Programmer’s Guide

Netscape Plug-inThe following example illustrates how scripting can be used in client-side HTML/JavaScript so users can start different published applications.

� The ICA Client Object (icaObj) is embedded using the <EMBED> tag.� A SELECT list (AppList) is used to present a selection of available

applications. In this case, actual ICA files are used to identify the published application.

� When the Start button is pressed, the current ICA session is disconnected using the icaObj.Disconnect method. The selected ICA file is then used as the parameter to the icaObj.SetProp method, which sets the value of the IcaFile property internal to the icaObj. The selected application is then started with the icaObj.Connect method.

� The Connect button is used to call the icaObj.Connect method to (re)connect to the MetaFrame server.

� The Disconnect button is used to call the icaObj.Disconnect method to disconnect from the MetaFrame server.

� The Logoff button is used to call the icaObj.Logoff method to terminate the current application and log off from the MetaFrame server.

� The About button is used to call the icaObj.AboutBox method to display information about the currently installed ICA Win32 Client.

<option>http://icaobj_server/icaobj/word.ica</option><option>http://icaobj_server/icaobj/ActiveXDemo.ica</option></select><input id="StartButton" type="button" value="Start" name="Start-

Button"><br></td></tr>

</table></center></body>

</html>

Page 67: Citrix ICA Client Object

Chapter 5 Example Scripts 67

<html><head><title>ICA Client Object sample - scripting Netscape Plugin</title><script language="JavaScript" type="text/javascript"><!--

function ConnButton_onclick(form) { var icaObj = form.icaObj // (re)connect current session icaObj.Connect()}

function DiscButton_onclick(form) { var icaObj = form.icaObj // disconnect current session icaObj.Disconnect()}

function LogoffButton_onclick(form) { var icaObj = form.icaObj // logoff from remote server icaObj.Logoff()}function AboutButton_onclick(form) { var icaObj = form.icaObj // show ICA Client Object's "AboutBox" icaObj.AboutBox()

}

function StartButton_onclick(form) { var icaObj = form.icaObj var AppList = form.AppList // Disconnect current application and start the selected

//application if (icaObj.IsConnected()) icaObj.Disconnect() icaObj.SetProp("IcaFile",

AppList.options[AppList.selectedIndex].text) icaObj.Connect()}

<contd ...>

Page 68: Citrix ICA Client Object

68 Citrix ICA Client Object Programmer’s Guide

// --></script></head><body><center><form name="appsForm"><table cellspacing="1" cellpadding="10" border="0"><tr><td align="center"> <embed name="icaObj" type="application/x-ica" width="320" height="240" ></td></tr>

<tr><td align="center"> <input id="ConnButton" type="button" value="Connect" name="ConnButton" onclick="ConnButton_onclick(this.form)">&nbsp; <input id="DiscButton" type="button" value="Disconnect" name="DiscButton" onclick="DiscButton_onclick(this.form)">&nbsp; <input id="LogoffButton" type="button" value="Logoff" name="LogoffButton" onclick="LogoffButton_onclick(this.form)">&nbsp; <input id="AboutButton" type="button" value="About" name="AboutButton" onclick="AboutButton_onclick(this.form)"></td></tr>

<tr><td> <hr style="LEFT: 10px; TOP: 104px"> Available Applications:<br> <select name="AppList" style="WIDTH: 500px"> <option selected>http://icaobj_server/icaobj//excel.ica</option> <option>http://icaobj_server/icaobj/word.ica</option> <option>http://icaobj_server/icaobj/PluginDemo.ica</option> </select> <input id="StartButton" type="button" value="Start" name="StartButton" onclick="StartButton_onclick(this.form)"><br></td></tr>

</table></form></center></body>

</html>

Page 69: Citrix ICA Client Object

Index 69

Index

AAcrobat Reader program 10ActiveX 14

Embedding 15Events 16Methods 16Properties 15

audience 8CCitrix Documentation Library 11Citrix ICA Clients

downloading 10Citrix web site 10

EEvents Interface

OnClick 38OnConnect 35OnConnectFailed 35OnConnecting 37OnDisconnect 36OnDisconnectFailed 38OnICAFile 37OnICAFileFailed 37OnInitializing 37OnInitialProp 38OnLogoffFailed 38OnLogon 36OnPublishedApp 36OnPublishedAppFailed 36

FFrequently Asked Questions 11

IICA

ICA Clients 8ICA Browser Specific Properties

BrowserProtocol 46DoNotUseDefaultCSL 46LocHTTPBrowserAddress 46LocIPXBrowserAddress 46LocNetbiosBrowserAddress 46LocTCPBrowserAddress 46

ICA Client Objectdata types 19functional specification 19Properties 41

ICA Client Object PropertiesAddress 42Application 42APPSRVINI 42AudioBandwidthLimit 42BackgroundColor 42Border 42BorderColor 42BrowserProtocol 42CDMAllowed 42ClientAudio 42ClientName 42ClientPath 42ClientVersion 42COMAllowed 42Compress 42Connected 42CPMAllowed 43CustomMessage 43Description 43DesiredColor 43DesiredHRes 43DesiredVRes 43Domain 43DoNotUseDefaultCSL 43Encrypt 43EncryptionLevelSession 43Height 43HTTPBrowserAddress 43ICAFile 43ICAPortNumber 43IconIndex 43IconPath 44InitialProgram 44IPXBrowserAddress 44KeyboardTime 44Launch 44LocHTTPBrowserAddr 44LocIPXBrowserAddress 44LocNetbiosBrowserAddress 44LocTCPBrowserAddress 44LogAppend 44LogConnect 44LogErrors 44LogFile 44LogFlush 44LogKeyboard 44

Page 70: Citrix ICA Client Object

70 Citrix ICA Client Object Programmer’s Guide

LogReceive 44LogTransmit 44MODULEINI 44MouseTimer 44NetbiosBrowserAddress 44NotificationReason 44Password 44PasswordType 45PersistentCacheEnabled 45ProtocolSupport 45Reliable 45Scrollbars 45SessionEndAction 45Start 45TCPBrowserAddress 45TextColor 45Title 45TransportDriver 45UIActive 45UpdatesAllowed 45UserName 45Version 45VSLAllowed 45WFCLIENTINI 45Width 45WinstationDriver 45WorkDirectory 45

Lload-time 19

MMethods Interface

AboutBox 32Connect 25Disconnect 25GetClientIdentification 29GetInterfaceVersion 28GetNotificationReason 31

GetSessionCounter 30GetSessionString 29IsConnected 28LoadIcaFile 26Logoff 26RunPublishedApplication 27SetSessionEndAction 27Startup 32

NNetscape Plug-In

Embedding 16Events 17Methods 17Properties 17Summary 17

Netscape Plug-Ins 14

PProperties 15Property Interface 19

ClearProps 20DeleteProp 21DeletePropByIndex 21GetPropCount 20GetPropNameByIndex 22GetPropValue 23GetPropValueByIndex 24ResetProps 22SetProp 23

RRequirements 8run-time 19

Sscripting 14Solution Knowledgebase 11