p P

INSTALLSHIELD®
INSTALLSCRIPT™ LANGUAGE REFERENCE GUIDE

Version 12

Copyright Notice
Copyright © 1996–2006 Macrovision Corporation and/or Macrovision Europe Ltd. All Rights Reserved. This product contains proprietary and confidential technology provided by and owned by Macrovision Europe Ltd., UK, and Macrovision Corporation of Santa Clara, California, U.S.A. Any use, copying, publication, distribution, display, modification, or transmission of such technology in whole or in part in any form or by any means without the prior express written permission of Macrovision Europe Ltd. and Macrovision Corporation is strictly prohibited. Except where expressly provided by Macrovision Europe Ltd. and Macrovision Corporation in writing, possession of this technology shall not be construed to confer any license or rights under any of Macrovision Europe Ltd. and Macrovision Corporation’s intellectual property rights, whether by estoppel, implication, or otherwise. ALL COPIES OF THE TECHNOLOGY and RELATED INFORMATION, IF ALLOWED BY MACROVISION CORPORATION, MUST DISPLAY THIS NOTICE OF COPYRIGHT AND OWNERSHIP IN FULL.

Trademarks
Macrovision, DemoShield, FLEXnet, FLEXnet Manager, FLEXnet Publisher, InstallShield, InstallShield Developer, InstallShield DevStudio, InstallShield Professional, OneClickInstall, and QuickPatch are registered trademarks or trademarks of Macrovision Corporation in the United States of America and/or other countries. All other brand and product names mentioned herein are the trademarks and registered trademarks of their respective owners.

Restricted Rights Legend
The software and documentation are “commercial items,” as that term is defined at 48 C.F.R. §2.101, consisting of “commercial computer software” and “commercial computer software documentation,” as such terms are used in 48 C.F.R. §12.212 or 48 C.F.R. §227.2702, as applicable. Consistent with 48 C.F.R. §12.212 or 48 C.F.R. §227.2702-1 through 227.7202-4, as applicable, the commercial computer software and commercial computer software documentation are being licensed to U.S. government end users (A) only as commercial items and (B) with only those rights as are granted to all other end users pursuant to the terms and conditions set forth in the Macrovision Corporation standard commercial agreement for this software. Unpublished rights reserved under the copyright laws of the United States of America. February 2005

CONTENTS
1 InstallScript Language Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Integrated Compiler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Command-Line Compiler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2 Setup Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Structure of a Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Declarations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Program Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Function Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Identifiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Syntax Punctuation Rules. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Writing Comments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Using White Space . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Hungarian Notation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Escape Sequences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Embedding Quotation Marks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Format Specifiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Reserved Words . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 3 Language Keywords. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 abort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 BOOL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
InstallShield InstallScript Language Reference Guide iii

Table of Contents

cdecl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 exit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 export . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 external . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 for...endfor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 goto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 if . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 if Structure with goto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 if-then Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 if-then-else Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Nested if-then-else Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 elseif Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 property() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 repeat...until . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 return. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 set. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 stdcall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 switch...endswitch. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 try, catch, and endcatch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 void . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 while...endwhile. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Nested while Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Flow Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 4 Predefined Constants. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 AFTER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 ALLCONTENTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 ALLCONTROLS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 APPEND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 ASKDESTPATH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 ASKOPTIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 ASKPATH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 ASKTEXT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

iv

InstallShield InstallScript Language Reference Guide

Table of Contents

BACK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 BACKBUTTON. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 BACKGROUND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 BACKGROUNDCAPTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 BASEMEMORY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 BEFORE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 BIF_BROWSEFORCOMPUTER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 BIF_BROWSEFORPRINTER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 BIF_DONTGOBELOWDOMAIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 BIF_EDITBOX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 BIF_RETURNFSANCESTORS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 BIF_RETURNONLYFSDIRS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 BIF_STATUSTEXT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 BILLBOARD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 BITMAPICON. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 BK_BLUE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 BK_GREEN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 BK_MAGENTA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 BK_ORANGE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 BK_PINK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 BK_RED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 BK_SMOOTH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 BK_SOLIDBLACK. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 BK_SOLIDBLUE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 BK_SOLIDGREEN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 BK_SOLIDMAGENTA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 BK_SOLIDORANGE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 BK_SOLIDPINK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 BK_SOLIDRED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 BK_SOLIDWHITE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 BK_SOLIDYELLOW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 BK_YELLOW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

InstallShield InstallScript Language Reference Guide

v

Table of Contents

BLACK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 BLUE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 BOOTUPDRIVE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 BUTTON_CHECKED. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 BUTTON_UNCHECKED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 BYTES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 CANCEL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 CANCELBUTTON. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 CDROM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 CDROM_DRIVE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 CENTERED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 CHECKBOX. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 CHECKBOX95. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 CHECKLINE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 CHECKMARK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 COLORS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 COMMAND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 COMMON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 COMPACT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 COMPARE_DATE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 COMPARE_MD5_SIGNATURE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 COMPARE_SIZE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 COMPARE_VERSION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 COMP_NORMAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 COMP_UPDATE_DATE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 COMP_UPDATE_SAME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 COMP_UPDATE_VERSION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 CONTINUE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 COPY_ERR_CREATEDIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 COPY_ERR_MEMORY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 COPY_ERR_NODISKSPACE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 COPY_ERR_OPENINPUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

vi

InstallShield InstallScript Language Reference Guide

Table of Contents

COPY_ERR_OPENOUTPUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 COPY_ERR_TARGETREADONLY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 CPU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 CURRENTROOTKEY. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 CUSTOM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 DATA_COMPONENT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 DATA_LIST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 DATA_NUMBER. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 DATA_STRING. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 DATE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 DEFAULT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 DEFWINDOWMODE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 DELETE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 DELETE_EOF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 DIALOGCACHE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 DIFXAPI_ERROR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 DIFXAPI_INFO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 DIFXAPI_SUCCESS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 DIFXAPI_WARNING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 DIRECTORY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 DIR_WRITEABLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 DISABLE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 DISABLE_ALLUSERBTN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 DISABLE_PERUSERBTN. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 DISK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 DISK1FEATURE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 DISK_INFO_QUERY_ALL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 DISK_INFO_QUERY_BYTES_PER_CLUSTER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 DISK_INFO_QUERY_DISK_FREE_SPACE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 DISK_INFO_QUERY_DISK_TOTAL_SPACE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 DISK_INFO_QUERY_DRIVE_TYPE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 DISK_TOTALSPACE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

InstallShield InstallScript Language Reference Guide

vii

Table of Contents

DISK_TOTALSPACE_EX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 DLG_ASK_OPTIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 DLG_ASK_PATH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 DLG_ASK_TEXT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 DLG_ASK_YESNO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 DLG_CENTERED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 DLG_CLOSE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 DLG_DIR_DIRECTORY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 DLG_DIR_DRIVE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 DLG_DIR_FILE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 DLG_ENTER_DISK. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 DLG_ERR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 DLG_ERR_ALREADY_EXISTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 DLG_ERR_ENDDLG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 DLG_INFO_ALTIMAGE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 DLG_INFO_CHECKSELECTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 DLG_INFO_KUNITS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 DLG_INFO_USEDECIMAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 DLG_INIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 DLG_MSG_ALL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 DLG_MSG_INFORMATION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 DLG_MSG_SEVERE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 DLG_MSG_STANDARD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 DLG_MSG_WARNING. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 DLG_STATUS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 DLG_USER_CAPTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 DOINSTALL_OPTION_NOHIDEPROGRESS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 DOINSTALL_OPTION_NOHIDESPLASH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 DOINSTALL_OPTION_NOLANGSWITCH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 DOINSTALL_OPTION_NOSETBATCHINSTALL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 DOTNETFRAMEWORKINSTALLED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 DRIVE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

viii

InstallShield InstallScript Language Reference Guide

Table of Contents

DRIVE_CDROM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 DRIVE_FIXED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 DRIVE_NO_ROOT_DIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 DRIVE_RAMDISK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 DRIVE_REMOTE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 DRIVE_REMOVABLE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 DRIVE_UNKNOWN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 DRIVER_PACKAGE_DELETE_FILES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 DRIVER_PACKAGE_FORCE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 DRIVER_PACKAGE_LEGACY_MODE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 DRIVER_PACKAGE_ONLY_IF_DEVICE_PRESENT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 DRIVER_PACKAGE_REPAIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 DRIVER_PACKAGE_SILENT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 EDITBOX_CHANGE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 EFF_BOXSTRIPE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 EFF_FADE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 EFF_HORZREVEAL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 EFF_HORZSTRIPE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 EFF_NONE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 EFF_REVEAL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 EFF_VERTSTRIPE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 ENABLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 END_OF_FILE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 END_OF_LIST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 ENTERDISK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 EQUALS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 ERROR_ACCESS_DENIED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 ERROR_CIRCULAR_DEPENDENCY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 ERROR_DATABASE_DOES_NOT_EXIST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 ERROR_DEPENDENT_SERVICES_RUNNING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 ERROR_DUP_NAME. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 ERROR_FILE_NOT_FOUND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

InstallShield InstallScript Language Reference Guide

ix

Table of Contents

ERROR_INVALID_HANDLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 ERROR_INVALID_PARAMETER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 ERROR_INVALID_SERVICE_ACCOUNT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 ERROR_INVALID_SERVICE_CONTROL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 ERROR_PATH_NOT_FOUND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 ERROR_SERVICE_ALREADY_RUNNING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 ERROR_SERVICE_CANNOT_ACCEPT_CTRL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 ERROR_SERVICE_DATABASE_LOCKED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 ERROR_SERVICE_DEPENDENCY_DELETED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 ERROR_SERVICE_DEPENDENCY_FAIL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 ERROR_SERVICE_DISABLED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 ERROR_SERVICE_DOES_NOT_EXIST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 ERROR_SERVICE_EXISTS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 ERROR_SERVICE_LOGON_FAILED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 ERROR_SERVICE_NOT_ACTIVE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 ERROR_SERVICE_NO_THREAD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 ERROR_SERVICE_REQUEST_TIMEOUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 ERROR_TIMEOUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 ERR_ABORT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 ERR_BOX_BADPATH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 ERR_BOX_BADTAGFILE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 ERR_BOX_DISKID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 ERR_BOX_DRIVEOPEN. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 ERR_IGNORE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 ERR_NO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 ERR_PERFORM_AFTER_REBOOT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 ERR_RETRY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 ERR_YES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 EXCLUDE_SUBDIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 EXCLUSIVE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 EXISTS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 EXIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

x

InstallShield InstallScript Language Reference Guide

Table of Contents

EXTENDEDMEMORY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 EXTENSION_ONLY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 FALSE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 FEATURE_FIELD_CDROM_FOLDER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 FEATURE_FIELD_DESCRIPTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 FEATURE_FIELD_DISPLAYNAME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 FEATURE_FIELD_FILENEED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 FEATURE_FIELD_FTPLOCATION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 FEATURE_FIELD_HTTPLOCATION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 FEATURE_FIELD_IMAGE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 FEATURE_FIELD_MISC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 FEATURE_FIELD_PASSWORD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 FEATURE_FIELD_SELECTED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 FEATURE_FIELD_SIZE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 FEATURE_FIELD_STATUS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 FEATURE_FIELD_VISIBLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 FEATURE_INFO_ATTRIBUTE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 FEATURE_INFO_COMPSIZE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 FEATURE_INFO_COMPSIZE_HIGH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 FEATURE_INFO_COMPSIZE_LOW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 FEATURE_INFO_DATE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 FEATURE_INFO_DATE_EX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 FEATURE_INFO_LANGUAGE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 FEATURE_INFO_MD5_SIGNATURE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 FEATURE_INFO_ORIGSIZE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 FEATURE_INFO_ORIGSIZE_HIGH. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 FEATURE_INFO_ORIGSIZE_LOW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 FEATURE_INFO_OS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 FEATURE_INFO_PLATFORM_SUITE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 FEATURE_INFO_TIME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 FEATURE_INFO_VERSIONLS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 FEATURE_INFO_VERSIONMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

InstallShield InstallScript Language Reference Guide

xi

Table of Contents

FEATURE_INFO_VERSIONSTR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 FEATURE_OPCOST_UNINSTALL_FILE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 FEATURE_OPCOST_UNINSTALL_REGORINI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 FEATURE_OPCOST_UNINSTALL_UNREGFILE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 FEATURE_VALUE_CRITICAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 FEATURE_VALUE_HIGHLYRECOMMENDED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 FEATURE_VALUE_STANDARD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 File Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 FILENAME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 FILENAME_ONLY. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 FILE_ATTRIBUTE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 FILE_ATTR_ARCHIVED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 FILE_ATTR_HIDDEN. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 FILE_ATTR_NORMAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 FILE_ATTR_READONLY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 FILE_ATTR_SYSTEM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 FILE_BIN_CUR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 FILE_BIN_END . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 FILE_BIN_START . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 FILE_DATE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 FILE_EXISTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 FILE_INSTALLED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 FILE_IS_LOCKED. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 FILE_LINE_LENGTH. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 FILE_LOCKED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 FILE_MD5_SIGNATURE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 FILE_MODE_APPEND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 FILE_MODE_APPEND_UNICODE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 FILE_MODE_BINARY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 FILE_MODE_BINARYREADONLY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 FILE_MODE_NORMAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 FILE_NOT_FOUND. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110

xii

InstallShield InstallScript Language Reference Guide

Table of Contents

FILE_NO_VERSION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 FILE_RD_ONLY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 FILE_SHARED_COUNT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 FILE_SIZE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 FILE_SIZE_HIGH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 FILE_SIZE_LOW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 FILE_SRC_OLD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 FILE_TIME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 FILE_WRITEABLE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 FIXED_DRIVE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 FONT_AVAILABLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 FULL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 FULLSCREEN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 FULLSCREENSIZE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 FULLWINDOWMODE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 FUNCTION_EXPORTED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 GBYTES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 GREATER_THAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 GREEN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 HELP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 HKEY_CLASSES_ROOT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 HKEY_CURRENT_USER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 HKEY_LOCAL_MACHINE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 HKEY_USERS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 HKEY_USER_SELECTABLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 HOURGLASS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 HWND_DESKTOP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 HWND_INSTALL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 IDCANCEL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 IDOK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 IDS_IFX_ERROR_INVALID_MEDIA_PASSWORD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 IFX_ONNEXTDISK_PACKAGE_CAPTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

InstallShield InstallScript Language Reference Guide

xiii

Table of Contents

IFX_ONNEXTDISK_PACKAGE_MSG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 INCLUDE_SUBDIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 INDVFILESTATUS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 INFORMATION. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 ISDIFX_OPTION_DONT_ASSOCIATE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 ISDIFX_OPTION_DONT_RESOLVE_TEXTSUBS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 ISDIFX_OPTION_LOG_IN_DRIVER_PACKAGE_PATH . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 ISDIFX_OPTION_NO_REPAIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 ISERR_GEN_FAILURE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 ISERR_SUCCESS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 ISLANG_AFRIKAANS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 ISLANG_AFRIKAANS_STANDARD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 ISLANG_ALBANIAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 ISLANG_ALBANIAN_STANDARD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 ISLANG_ALL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 ISLANG_ARABIC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 ISLANG_ARABIC_ALGERIA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 ISLANG_ARABIC_BAHRAIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 ISLANG_ARABIC_EGYPT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 ISLANG_ARABIC_IRAQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 ISLANG_ARABIC_JORDAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 ISLANG_ARABIC_KUWAIT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 ISLANG_ARABIC_LEBANON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 ISLANG_ARABIC_LIBYA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 ISLANG_ARABIC_MOROCCO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 ISLANG_ARABIC_OMAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 ISLANG_ARABIC_QATAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 ISLANG_ARABIC_SAUDIARABIA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 ISLANG_ARABIC_SYRIA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 ISLANG_ARABIC_TUNISIA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 ISLANG_ARABIC_UAE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 ISLANG_ARABIC_YEMEN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126

xiv

InstallShield InstallScript Language Reference Guide

Table of Contents

ISLANG_BASQUE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 ISLANG_BASQUE_STANDARD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 ISLANG_BELARUSIAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 ISLANG_BELARUSIAN_STANDARD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 ISLANG_BULGARIAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 ISLANG_BULGARIAN_STANDARD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 ISLANG_CATALAN. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 ISLANG_CATALAN_STANDARD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 ISLANG_CHINESE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 ISLANG_CHINESE_HONGKONG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 ISLANG_CHINESE_PRC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 ISLANG_CHINESE_SINGAPORE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 ISLANG_CHINESE_TAIWAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 ISLANG_CROATIAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 ISLANG_CROATIAN_STANDARD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 ISLANG_CZECH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 ISLANG_CZECH_STANDARD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 ISLANG_DANISH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 ISLANG_DANISH_STANDARD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 ISLANG_DUTCH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 ISLANG_DUTCH_BELGIAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 ISLANG_DUTCH_STANDARD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 ISLANG_ENGLISH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 ISLANG_ENGLISH_AUSTRALIAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 ISLANG_ENGLISH_BELIZE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 ISLANG_ENGLISH_CANADIAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 ISLANG_ENGLISH_CARIBBEAN. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 ISLANG_ENGLISH_IRELAND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 ISLANG_ENGLISH_JAMAICA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 ISLANG_ENGLISH_NEWZEALAND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 ISLANG_ENGLISH_SOUTHAFRICA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 ISLANG_ENGLISH_TRINIDAD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130

InstallShield InstallScript Language Reference Guide

xv

Table of Contents

ISLANG_ENGLISH_UNITEDKINGDOM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 ISLANG_ENGLISH_UNITEDSTATES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 ISLANG_ESTONIAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 ISLANG_ESTONIAN_STANDARD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 ISLANG_FAEROESE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 ISLANG_FAEROESE_STANDARD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 ISLANG_FARSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 ISLANG_FARSI_STANDARD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 ISLANG_FINNISH. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 ISLANG_FINNISH_STANDARD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 ISLANG_FRENCH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 ISLANG_FRENCH_BELGIAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 ISLANG_FRENCH_CANADIAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 ISLANG_FRENCH_LUXEMBOURG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 ISLANG_FRENCH_STANDARD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 ISLANG_FRENCH_SWISS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 ISLANG_GERMAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 ISLANG_GERMAN_AUSTRIAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 ISLANG_GERMAN_LIECHTENSTEIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 ISLANG_GERMAN_LUXEMBOURG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 ISLANG_GERMAN_STANDARD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 ISLANG_GERMAN_SWISS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 ISLANG_GREEK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 ISLANG_GREEK_STANDARD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 ISLANG_HEBREW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 ISLANG_HEBREW_STANDARD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 ISLANG_HUNGARIAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 ISLANG_HUNGARIAN_STANDARD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 ISLANG_ICELANDIC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 ISLANG_ICELANDIC_STANDARD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 ISLANG_INDONESIAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 ISLANG_INDONESIAN_STANDARD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135

xvi

InstallShield InstallScript Language Reference Guide

Table of Contents

ISLANG_ITALIAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 ISLANG_ITALIAN_STANDARD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 ISLANG_ITALIAN_SWISS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 ISLANG_JAPANESE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 ISLANG_JAPANESE_STANDARD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 ISLANG_KOREAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 ISLANG_KOREAN_JOHAB. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 ISLANG_KOREAN_STANDARD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 ISLANG_LATVIAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 ISLANG_LATVIAN_STANDARD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 ISLANG_LITHUANIAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 ISLANG_LITHUANIAN_STANDARD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 ISLANG_NORWEGIAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 ISLANG_NORWEGIAN_BOKMAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 ISLANG_NORWEGIAN_NYNORSK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 ISLANG_POLISH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 ISLANG_POLISH_STANDARD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 ISLANG_PORTUGUESE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 ISLANG_PORTUGUESE_BRAZILIAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 ISLANG_PORTUGUESE_STANDARD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 ISLANG_ROMANIAN. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 ISLANG_ROMANIAN_STANDARD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 ISLANG_RUSSIAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 ISLANG_RUSSIAN_STANDARD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 ISLANG_SERBIAN_CYRILLIC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 ISLANG_SERBIAN_LATIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 ISLANG_SLOVAK. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 ISLANG_SLOVAK_STANDARD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 ISLANG_SLOVENIAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 ISLANG_SLOVENIAN_STANDARD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 ISLANG_SPANISH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 ISLANG_SPANISH_ARGENTINA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139

InstallShield InstallScript Language Reference Guide

xvii

Table of Contents

ISLANG_SPANISH_BOLIVIA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 ISLANG_SPANISH_CHILE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 ISLANG_SPANISH_COLOMBIA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 ISLANG_SPANISH_COSTARICA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 ISLANG_SPANISH_DOMINICANREPUBLIC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 ISLANG_SPANISH_ECUADOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 ISLANG_SPANISH_ELSALVADOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 ISLANG_SPANISH_GUATEMALA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 ISLANG_SPANISH_HONDURAS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 ISLANG_SPANISH_MEXICAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 ISLANG_SPANISH_MODERNSORT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 ISLANG_SPANISH_NICARAGUA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 ISLANG_SPANISH_PANAMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 ISLANG_SPANISH_PARAGUAY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 ISLANG_SPANISH_PERU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 ISLANG_SPANISH_PUERTORICO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 ISLANG_SPANISH_TRADITIONALSORT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 ISLANG_SPANISH_URUGUAY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 ISLANG_SPANISH_VENEZUELA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 ISLANG_SWEDISH. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 ISLANG_SWEDISH_FINLAND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 ISLANG_SWEDISH_STANDARD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 ISLANG_THAI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 ISLANG_THAI_STANDARD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 ISLANG_TURKISH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 ISLANG_TURKISH_STANDARD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 ISLANG_UKRAINIAN. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 ISLANG_UKRAINIAN_STANDARD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 ISLANG_VIETNAMESE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 ISLANG_VIETNAMESE_STANDARD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 ISOSL_ALL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 ISOSL_NT40. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144

xviii

InstallShield InstallScript Language Reference Guide

Table of Contents

ISOSL_NT40_ALPHA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 ISOSL_SUPPORTED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 ISOSL_WIN2000 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 ISOSL_WIN2000_ALPHA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 ISOSL_WIN95 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 ISOSL_WIN98 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 ISOSL_WINME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 ISOSL_WINSERVER2003 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 ISOSL_WINXP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 ISOS_ST_ALL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 ISOS_ST_BACKOFFICE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 ISOS_ST_DATACENTER. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 ISOS_ST_ENTERPRISE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 ISOS_ST_PROC_ARCH_32. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 ISOS_ST_PROC_ARCH_AMD64 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 ISOS_ST_PROC_ARCH_IA64 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 ISOS_ST_SERVER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 ISOS_ST_SMALLBUSINESS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 ISOS_ST_SMALLBUSINESS_RESTRICTED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 ISOS_ST_TERMINAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 ISOS_ST_WORKSTATION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 ISOS_ST_XP_HOME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 ISOS_ST_XP_PRO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 ISUS_AGENT_FEATURE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 ISUS_MAIN_FEATURE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 ISUS_TEXTSUB_HOST. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 ISUS_TEXTSUB_INTERVAL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 ISUS_TEXTSUB_LANGUAGE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 ISUS_TEXTSUB_LOGO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 ISUS_TEXTSUB_MANAGER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 ISUS_TEXTSUB_VERSION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 ISUS_UPDATEMANAGER_FEATURE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153

InstallShield InstallScript Language Reference Guide

xix

Table of Contents

IS_386. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 IS_486. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 IS_ALPHA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 IS_CDROM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 IS_EGA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 IS_FIXED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 IS_FOLDER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 IS_ITEM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 IS_PENTIUM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 IS_REMOTE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 IS_REMOVABLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 IS_SVGA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 IS_UNKNOWN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 IS_UVGA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 IS_VGA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 IS_WINDOWS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 IS_WINDOWS9X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 IS_WINDOWSNT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 IS_XVGA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 KBYTES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 LAAW_OPTION_HIDDEN. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 LAAW_OPTION_MAXIMIZED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 LAAW_OPTION_MINIMIZED. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 LAAW_OPTION_NO_CHANGEDIRECTORY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 LAAW_OPTION_NOWAIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 LAAW_OPTION_SET_BATCH_INSTALL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 LAAW_OPTION_SHOW_HOURGLASS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 LAAW_OPTION_USE_CALLBACK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 LAAW_OPTION_WAIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 LANG_SUPPORTED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 LANGUAGE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 LESS_THAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161

xx

InstallShield InstallScript Language Reference Guide

Table of Contents

LINE_NUMBER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 LISTBOX_ENTER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 LISTBOX_SELECT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 LISTFIRST. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 LISTLAST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 LISTNEXT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 LISTPREV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 LIST_NULL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 LOCKEDFILE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 LOGGING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 LOWER_LEFT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 LOWER_RIGHT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 LWFT_OPTION_WRITE_AS_ANSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 LWFT_OPTION_WRITE_AS_UNICODE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 MAGENTA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 MATH_COPROCESSOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 MBYTES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 MEDIA_FIELD_ADDREMOVE_NOMODIFY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 MEDIA_FIELD_ADDREMOVE_NOREMOVE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 MEDIA_FIELD_COMPANY_NAME. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 MEDIA_FIELD_MEDIA_FLAGS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 MEDIA_FIELD_PREVIOUS_VERSIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 MEDIA_FIELD_PRODUCT_COMMENTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 MEDIA_FIELD_PRODUCT_EXE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 MEDIA_FIELD_PRODUCT_ICON. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 MEDIA_FIELD_PRODUCT_NAME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 MEDIA_FIELD_PRODUCT_README . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 MEDIA_FIELD_PRODUCT_SUPPORT_CONTACT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 MEDIA_FIELD_PRODUCT_SUPPORT_PHONE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 MEDIA_FIELD_PRODUCT_SUPPORT_URL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 MEDIA_FIELD_PRODUCT_UPDATE_URL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 MEDIA_FIELD_PRODUCT_URL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170

InstallShield InstallScript Language Reference Guide

xxi

Table of Contents

MEDIA_FIELD_PRODUCT_VERSION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 MEDIA_FIELD_TARGETDIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 MEDIA_FLAG_FORMAT_DIFFERENTIAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 MEDIA_FLAG_FORMAT_PATCH. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 MEDIA_FLAG_UPDATEMODE_SUPPORTED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 MEDIA_PASSWORD_KEY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 METAFILE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 MMEDIA_AVI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 MMEDIA_MIDI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 MMEDIA_PLAYASYNCH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 MMEDIA_PLAYCONTINUOUS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 MMEDIA_PLAYSYNCH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 MMEDIA_STOP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 MMEDIA_WAVE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 MODIFY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 NEXT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 NEXTBUTTON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 NO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 NONEXCLUSIVE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 NORMALMODE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 NORMAL_PRIORITY_CLASS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 NOSET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 NOTEXISTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 NO_SUBDIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 NULL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 NUMBERLIST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 OFF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 OK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 ON. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 ONLYDIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 OTHER_FAILURE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 OUT_OF_DISK_SPACE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180

xxii

InstallShield InstallScript Language Reference Guide

Table of Contents

PARALLEL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 PARTIAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 PATH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 PATH_EXISTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 PCRESTORE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 PERSONAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 READ_CONTROL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 REBOOTED. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 RECORDMODE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 RED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 REGDBREMOTEREGCONNECTED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 REGDB_APPPATH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 REGDB_APPPATH_DEFAULT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 REGDB_BINARY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 REGDB_ERR_CONNECTIONEXISTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 REGDB_ERR_CORRUPTEDREGISTRY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 REGDB_ERR_INITIALIZATION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 REGDB_ERR_INVALIDHANDLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 REGDB_ERR_INVALIDNAME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 REGDB_KEYPATH_APPPATHS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 REGDB_KEYPATH_DOTNET_10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 REGDB_KEYPATH_DOTNET_11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 REGDB_KEYPATH_DOTNET_20 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 REGDB_KEYPATH_RUN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 REGDB_KEYPATH_RUNONCE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 REGDB_KEYPATH_RUNONCEEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 REGDB_KEYPATH_SHAREDDLLS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 REGDB_KEYPATH_UNINSTALL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 REGDB_KEYPATH_WINCURRVER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 REGDB_KEYPATH_WINCURRVER_AUTO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 REGDB_KEYPATH_WINNTCURRVER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 REGDB_KEYS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188

InstallShield InstallScript Language Reference Guide

xxiii

Table of Contents

REGDB_NAMES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 REGDB_NUMBER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 REGDB_STRING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 REGDB_STRING_EXPAND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 REGDB_STRING_MULTI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 REGDB_UNINSTALL_COMMENTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 REGDB_UNINSTALL_CONTACT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 REGDB_UNINSTALL_DISPLAYICON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 REGDB_UNINSTALL_DISPLAY_VERSION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 REGDB_UNINSTALL_HELPLINK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 REGDB_UNINSTALL_HELPTELEPHONE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 REGDB_UNINSTALL_INSTALLDATE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 REGDB_UNINSTALL_INSTALLLOC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 REGDB_UNINSTALL_INSTALLSOURCE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 REGDB_UNINSTALL_LANGUAGE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 REGDB_UNINSTALL_LOGFILE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 REGDB_UNINSTALL_MAINT_OPTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 REGDB_UNINSTALL_MAJOR_VERSION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 REGDB_UNINSTALL_MINOR_VERSION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 REGDB_UNINSTALL_MODIFYPATH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 REGDB_UNINSTALL_NAME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 REGDB_UNINSTALL_NOMODIFY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 REGDB_UNINSTALL_NOREMOVE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 REGDB_UNINSTALL_NOREPAIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 REGDB_UNINSTALL_PRODUCTGUID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 REGDB_UNINSTALL_PRODUCTID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 REGDB_UNINSTALL_PUBLISHER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 REGDB_UNINSTALL_README . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 REGDB_UNINSTALL_REGCOMPANY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 REGDB_UNINSTALL_REGOWNER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 REGDB_UNINSTALL_STRING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 REGDB_UNINSTALL_SYSTEMCOMPONENT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197

xxiv

InstallShield InstallScript Language Reference Guide

Table of Contents

REGDB_UNINSTALL_URLINFOABOUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 REGDB_UNINSTALL_URLUPDATEINFO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 REGDB_UNINSTALL_VERSION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 REGDB_VALUENAME_APPPATH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 REGDB_VALUENAME_APPPATHDEFAULT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 REGDB_VALUENAME_INSTALL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 REGDB_VALUENAME_SP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 REGDB_VALUENAME_UNINSTALL_COMMENTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 REGDB_VALUENAME_UNINSTALL_CONTACT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 REGDB_VALUENAME_UNINSTALL_DISPLAYICON. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 REGDB_VALUENAME_UNINSTALL_DISPLAYNAME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 REGDB_VALUENAME_UNINSTALL_DISPLAYVERSION . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 REGDB_VALUENAME_UNINSTALL_HELPLINK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 REGDB_VALUENAME_UNINSTALL_HELPTELEPHONE. . . . . . . . . . . . . . . . . . . . . . . . . . . 200 REGDB_VALUENAME_UNINSTALL_INSTALLDATE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 REGDB_VALUENAME_UNINSTALL_INSTALLLOCATION . . . . . . . . . . . . . . . . . . . . . . . . . . 200 REGDB_VALUENAME_UNINSTALL_INSTALLSOURCE . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 REGDB_VALUENAME_UNINSTALL_LANGUAGE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 REGDB_VALUENAME_UNINSTALL_LOGFILE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 REGDB_VALUENAME_UNINSTALL_LOGMODE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 REGDB_VALUENAME_UNINSTALL_MAJORVERSION . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 REGDB_VALUENAME_UNINSTALL_MINORVERSION . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 REGDB_VALUENAME_UNINSTALL_MODIFYPATH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 REGDB_VALUENAME_UNINSTALL_NOMODIFY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 REGDB_VALUENAME_UNINSTALL_NOREMOVE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202 REGDB_VALUENAME_UNINSTALL_NOREPAIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202 REGDB_VALUENAME_UNINSTALL_PRODUCTGUID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202 REGDB_VALUENAME_UNINSTALL_PRODUCTID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202 REGDB_VALUENAME_UNINSTALL_PUBLISHER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202 REGDB_VALUENAME_UNINSTALL_README . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 REGDB_VALUENAME_UNINSTALL_REGCOMPANY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 REGDB_VALUENAME_UNINSTALL_REGOWNER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203

InstallShield InstallScript Language Reference Guide

xxv

Table of Contents

REGDB_VALUENAME_UNINSTALL_SYSTEMCOMPONENT . . . . . . . . . . . . . . . . . . . . . . . . 203 REGDB_VALUENAME_UNINSTALL_UNINSTALLSTRING . . . . . . . . . . . . . . . . . . . . . . . . . . 203 REGDB_VALUENAME_UNINSTALL_URLINFOABOUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 REGDB_VALUENAME_UNINSTALL_URLUPDATEINFO . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 REGDB_VALUENAME_UNINSTALL_VERSION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 REGDB_VALUENAME_WINCURRVER_REGORGANIZATION . . . . . . . . . . . . . . . . . . . . . . . . 204 REGDB_VALUENAME_WINCURRVER_REGOWNER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 REGDB_WINCURRVER_REGORGANIZATION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 REGDB_WINCURRVER_REGOWNER. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 REGFONT_OPTION_DEFAULT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 REGFONT_OPTION_DONTBROADCASTFONTCHANGEMSG . . . . . . . . . . . . . . . . . . . . . . . 205 REGFONT_OPTION_DONTUPDATEREGISTRY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 REGISTRYFUNCTIONS_USETEXTSUBS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 REMOTE_DRIVE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 REMOVE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 REMOVEABLE_DRIVE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 REMOVEALL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 REPAIR. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 REPLACE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 RESET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 RESTART . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 ROOT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 RUN_MAXIMIZED. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 RUN_MINIMIZED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 SELECTFOLDER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 SELFREGISTER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 SELFREGISTERBATCH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 SELFREGISTRATIONPROCESS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 SERIAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 SERVICE_ADAPTER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 SERVICE_ALL_ACCESS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 SERVICE_AUTO_START . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211

xxvi

InstallShield InstallScript Language Reference Guide

Table of Contents

SERVICE_BOOT_START . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 SERVICE_CHANGE_CONFIG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 SERVICE_CONTINUE_PENDING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 SERVICE_DEMAND_START . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 SERVICE_DISABLED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 SERVICE_ENUMERATE_DEPENDENTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 SERVICE_ERROR_CRITICAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 SERVICE_ERROR_IGNORE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 SERVICE_ERROR_NORMAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 SERVICE_ERROR_SEVERE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 SERVICE_FILE_SYSTEM_DRIVER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 SERVICE_FLAG_DIFX_32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 SERVICE_FLAG_DIFX_AMD64. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 SERVICE_FLAG_DIFX_IA64. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 SERVICE_FLAG_ISFONTREG. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 SERVICE_INTERACTIVE_PROCESS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 SERVICE_INTERROGATE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 SERVICE_ISFONTREG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 SERVICE_ISUPDATE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 SERVICE_KERNEL_DRIVER. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 SERVICE_PAUSED. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 SERVICE_PAUSE_CONTINUE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 SERVICE_PAUSE_PENDING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 SERVICE_QUERY_CONFIG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 SERVICE_QUERY_STATUS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 SERVICE_RECOGNIZER_DRIVER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 SERVICE_RUNNING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 SERVICE_START . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 SERVICE_START_PENDING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 SERVICE_STOP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 SERVICE_STOPPED. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 SERVICE_STOP_PENDING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221

InstallShield InstallScript Language Reference Guide

xxvii

Table of Contents

SERVICE_SYSTEM_START . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 SERVICE_USER_DEFINED_CONTROL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 SERVICE_WIN32_OWN_PROCESS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 SERVICE_WIN32_SHARE_PROCESS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 SETUPTYPE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 SETUPTYPE_INFO_DESCRIPTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 SETUPTYPE_INFO_DISPLAYNAME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 SETUPTYPE_STR_COMPACT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 SETUPTYPE_STR_COMPLETE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 SETUPTYPE_STR_CUSTOM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 SETUPTYPE_STR_TYPICAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 SETUP_PACKAGE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 SEVERE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 SHAREDFILE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 SILENTMODE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 SKIN_LOADED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 SRCINSTALLDIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 SRCTARGETDIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 STANDARD_RIGHTS_REQUIRED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 STATUS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 STATUSBAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 STATUSDLG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228 STATUSEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228 STATUSOLD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228 STRINGLIST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228 STYLE_BOLD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 STYLE_ITALIC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 STYLE_NORMAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 STYLE_SHADOW. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 STYLE_UNDERLINE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230 SW_MAXIMIZE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230 SW_MINIMIZE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230

xxviii

InstallShield InstallScript Language Reference Guide

Table of Contents

SW_RESTORE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230 SW_SHOW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 SYNCHRONIZE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 SYS_BOOTMACHINE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 TBYTES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 TILED. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 TIME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 TRUE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 TTFONTFILEINFO_FONTTITLE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 TYPICAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 UPDATESERVICECOMPONENT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 UPPER_LEFT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 UPPER_RIGHT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 URL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 USER_ADMINISTRATOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 USER_POWERUSER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 USE_LOADED_SKIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 VALID_PATH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 VERSION_COMPARE_RESULT_NEWER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 VERSION_COMPARE_RESULT_NEWER_NOT_SUPPORTED . . . . . . . . . . . . . . . . . . . . . . . 236 VERSION_COMPARE_RESULT_NOT_INSTALLED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 VERSION_COMPARE_RESULT_OLDER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 VERSION_COMPARE_RESULT_SAME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 VERSION_PREVIOUS_VERSION_DELIMITER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 VER_DLL_NOT_FOUND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 VER_UPDATE_ALWAYS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 VER_UPDATE_COND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 VIDEO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 VOLUMELABEL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 WARNING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 WEB_BASED_SETUP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 WELCOME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239

InstallShield InstallScript Language Reference Guide

xxix

Table of Contents

WHITE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 WILL_REBOOT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 WINDOWS_SHARED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 WINMAJOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 WINMINOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 WOW64FSREDIRECTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 WRITE_DAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 WRITE_OWNER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 YELLOW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 YES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 _MAX_PATH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 5 Predefined Script Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 __FILE__ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 __LINE__ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244 BASICMSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244 INSTALLSCRIPTMSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244 ISUS_PRODUCT_CODE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245 SERVICE_IS_PARAMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245 SERVICE_IS_STATUS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 6 Data Types and Predefined Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257 Constant Data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258 Data Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259 Language IDs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263 Pointers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264 System Folder Properties (Destination Folders) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 7 Variable Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269 Global vs. Local Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270 String Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272 String Indexing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272 String Size and Autosize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273 System Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274

xxx

InstallShield InstallScript Language Reference Guide

Table of Contents

ADDREMOVE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278 ADDREMOVE_COMBINEDBUTTON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278 ADDREMOVE_HIDECHANGEOPTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279 ADDREMOVE_HIDEREMOVEOPTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279 ADDREMOVE_STRING_REMOVEONLY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279 ADDREMOVE_SYSTEMCOMPONENT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280 ALLUSERS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280 How an InstallScript Installation Works by Default Depending on ALLUSERS . . . . . . . 281 BATCH_INSTALL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282 CMDLINE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283 COMMONFILES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283 COMMONFILES64 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283 DISK1SETUPEXENAME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284 DISK1TARGET. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284 ENABLED_ISERVICES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284 ENGINECOMMONDIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284 ENGINEDIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285 ERRORFILENAME. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285 FOLDER_APPDATA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285 FOLDER_APPLICATIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286 FOLDER_APPLICATIONS64 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286 FOLDER_COMMON_APPDATA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286 FOLDER_DESKTOP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287 FOLDER_DOTNET_10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287 FOLDER_DOTNET_11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287 FOLDER_DOTNET_20 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288 FOLDER_FONTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288 FOLDER_LOCAL_APPDATA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288 FOLDER_PERSONAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289 FOLDER_PROGRAMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289 FOLDER_STARTMENU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290 FOLDER_STARTUP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290 FOLDER_TEMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291 HKEYCURRENTROOTKEY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291 HKEY_USER_SELECTABLE_AUTO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292 IFX_COMPANY_NAME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292 IFX_DISK1INSTALLED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292 IFX_INITIALIZED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293

InstallShield InstallScript Language Reference Guide

xxxi

Table of Contents

IFX_INSTALLED_DISPLAY_VERSION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293 IFX_INSTALLED_VERSION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293 IFX_KEYPATH_PRODUCT_INFO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293 IFX_MULTI_INSTANCE_SUFFIX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294 IFX_ONNEXTDISK_PACKAGE_CAPTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294 IFX_ONNEXTDISK_PACKAGE_MSG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294 IFX_PRODUCT_COMMENTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295 IFX_PRODUCT_DISPLAY_NAME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295 IFX_PRODUCT_DISPLAY_VERSION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295 IFX_PRODUCT_ICON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295 IFX_PRODUCT_KEY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296 IFX_PRODUCT_NAME. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296 IFX_PRODUCT_README. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296 IFX_PRODUCT_REGISTEREDCOMPANY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297 IFX_PRODUCT_REGISTEREDOWNER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297 IFX_PRODUCT_REGISTEREDSERIALNUM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297 IFX_PRODUCT_SUPPORT_CONTACT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298 IFX_PRODUCT_SUPPORT_PHONE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298 IFX_PRODUCT_SUPPORT_URL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298 IFX_PRODUCT_UPDATE_URL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299 IFX_PRODUCT_URL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299 IFX_PRODUCT_VERSION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299 IFX_SETUP_TITLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299 IFX_SUPPORTED_VERSIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300 INFOFILENAME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300 INSTALLDIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300 INSTANCE_GUID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300 INSTANCE_GUID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301 ISDIFXAPPID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301 ISMSI_HANDLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301 ISRES. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302 ISUSER. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302 ISVERSION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302 LAAW_PARAMETERS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302 LAAW_PROCESS_INFORMATION. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304 LAAW_STARTUPINFO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304 MAINTENANCE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308 MAINT_OPTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308

xxxii

InstallShield InstallScript Language Reference Guide

Table of Contents

MEDIA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309 MODE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309 MSI_TARGETDIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309 MULTI_INSTANCE_COUNT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310 PACKAGE_LOCATION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310 PRODUCT_GUID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310 PRODUCT_INSTALLED. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310 PROGRAMFILES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310 PROGRAMFILES64 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311 REGDB_OPTIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312 REINSTALLMODE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313 REMOVEALLMODE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313 REMOVEONLY. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313 SELECTED_LANGUAGE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314 SHELL_OBJECT_FOLDER. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314 SHOW_PASSWORD_DIALOG. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314 SRCDIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314 SRCDISK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315 SUPPORTDIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315 SYSINFO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315 SYSPROCESSORINFO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320 TARGETDIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322 TARGETDISK. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322 UNINST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322 UNINSTALLKEY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323 UNINSTALL_DISPLAYNAME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324 UNINSTALL_STRING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324 UPDATEMODE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324 WINDIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325 WINDISK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325 WINSYSDIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325 WINSYSDIR64 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325 WINSYSDISK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326 8 Preprocessor Directives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327 #define . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328 #elif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329 #elifdef . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330

InstallShield InstallScript Language Reference Guide

xxxiii

Table of Contents

#error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330 #if. . .#else. . .#endif. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330 #ifdef and #ifndef . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331 #include . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332 #undef . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333 9 Event Handlers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335 Event Handler Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337 Component Event Handlers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339 Global Event Handlers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340 Initialization Handlers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OnCheckMediaPassword . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OnSetTARGETDIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OnSetUpdateMode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Before Move Data Handlers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OnAdminInstallUIBefore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OnAdvertisementBefore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OnAppSearch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OnBegin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OnCCPSearch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OnFirstUIBefore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OnIISInitialize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OnMaintUIBefore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OnPatchUIBefore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OnResumeUIBefore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OnSQLBatch Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OnSQLComponentInstalled . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OnSQLComponentUninstalled . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OnSQLLogin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OnSQLServerInitialize. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OnSQLServerInitializeMaint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OnUpdateUIBefore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OnFilterComponents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OnXMLInitialize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Move Data Handlers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OnCustomizeUninstInfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OnGeneratedMSIScript. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OnGeneratingMSIScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OnIISComponentInstalled . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OnIISVRootUninstalling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OnInstalledFile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340 341 341 342 343 345 345 345 346 347 347 348 348 349 349 349 349 350 350 350 350 351 351 352 352 354 355 355 355 355 356

xxxiv

InstallShield InstallScript Language Reference Guide

Table of Contents

OnInstalledFontFile. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OnInstallFilesActionBefore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OnInstallFilesActionAfter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OnInstallingFile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OnMoved . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OnMoveData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OnMoving . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OnNetApiCreateUserAccount . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OnSQLBatch Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OnSQLComponentInstalled . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OnSQLComponentUninstalled . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OnUninstalledFile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OnUninstallingFile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OnUninstallingDIFxDriverFile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OnUninstallingFontFile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OnXMLComponentInstalled . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OnXMLComponentUninstalling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . After Data Move Handlers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OnIISUninitialize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OnXMLUninitialize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OnFirstUIAfter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OnMaintUIAfter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OnUpdateUIAfter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OnAdminInstallUIAfter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OnPatchUIAfter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OnResumeUIAfter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OnAdvertisementAfter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OnEnd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

356 357 357 357 357 358 358 358 359 359 359 359 360 360 361 361 362 363 364 364 365 365 365 365 366 366 366 366

Feature Event Handlers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367 OnInstalling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368 OnInstalled . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369 OnUnInstalled . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369 OnUnInstalling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369 Miscellaneous Event Handlers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370 OnAbort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373 OnAdminPatchUIAfter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373 OnAdminPatchUIBefore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373 OnCanceling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373 OnComponentError . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374 OnDIFxLogCallback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374 OnError . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375

InstallShield InstallScript Language Reference Guide

xxxv

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375 OnFileError . . 400 Extensibility Functions . . . . . . . . . . . . . . . . . . . . . . 400 xxxvi InstallShield InstallScript Language Reference Guide . . . . . . . . . . . . . . . . . . 381 OnWarning . . . . . . . . . . . . . . 387 OnUninstall . . . . . . . . . . . . . . . . . . . . . . . . 394 Built-In Dialog Box Functions . . . . . . . . . . . . . . . 380 OnUpdateService . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379 OnSelfRegistrationError . . . . . . . 395 Component Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376 OnHelp . . . . . . . . . . . . . . . . . . 379 OnOutOfDiskSpace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383 OnNextDisk. . . . . . . . . . 377 OnLaunchAppAndWaitCallback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378 OnMsiSilentInstall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380 OnUninstall . . . . . . . . . . . . . . . . . . 391 Batch File Functions . 389 Using Built-In Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381 OnFileReadOnly . 394 Advanced Batch File Functions . . . . . . . . . . . . . . . . . . . 382 OnRemovingSharedFile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379 OnRebooted . . . . 396 Ez Config. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397 Advanced Configuration File Functions . . . . . . . . . . . . . . . 385 Advanced Event Handlers . . . . . . . . . . . . . . . . . . . . . . . 398 Device Driver Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388 10 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396 Configuration File Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376 OnFilesInUse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384 OnMD5Error . . . . . . . . . . . . . . . . . . . . . . . . . 393 Ez Batch File Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397 Custom Dialog Box Functions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Table of Contents OnException . . . . . . . . . . . . . . . . . . . . . . . . 379 OnResolveSource . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381 OnFileLocked . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377 OnInternetError . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .sys File Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386 OnShowUI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390 Built-In Functions by Category . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Table of Contents Feature Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416 Shell Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422 Version-Checking Functions . . . . . . . . . . . . . . . . . 411 Sd Dialog Box Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417 Special Registry-Related Functions . . . . . . . . . . . . . . /) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422 Update Service Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412 Shared and Locked File Functions . . . . . . . . . . . . . . 410 Registry Functions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423 Visual Interface Functions . . . . 436 Arithmetic Operators (+. . . . . 425 Windows Installer API Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425 Windows Installer API Functions Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406 List Processing Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402 File Media Library . . . . 405 Initialization File Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404 Information Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439 Assignment Operator . . . . . . . . 439 InstallShield InstallScript Language Reference Guide xxxvii . . . . . . . . . . . . . 435 Address Operator (&) . . . . . . . . . . . . . . . . . . . . . . . 424 Windows Installer Functions . . . . . . . . . . . . . . . . . . . . . . . . 421 Uninstallation Functions . . . . . . . . . . . . 436 Append to Path Operator (^) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437 Binary Arithmetic Operators . . . . File Media Library . . . . 409 Path Buffer Functions . . 408 Long File Name Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438 Unary Arithmetic Operators . . . . . . . . . . 409 Miscellaneous Functions . . . . . . . . . . . . . 432 11 Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401 Script-Created Feature Set vs. . . . 417 String Functions . 404 File/Directory Functions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437 Arithmetic Operator Precedence. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . *. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420 Text Substitutions . . . 407 Log File Functions . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) . . . +. . . . . . . . . . . . . . . 456 ReadProperties . . . . . . . . >=. . . . . . . . . . . . . . . . . . . . . . . . . 446 Relational Operator Precedence . . . . . . . . . ~. . . . . . . . . . . . . . . . 449 Find String Operator (%) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447 String Operators (^. . . . . . . . . . . . . . . . . 459 AddFolderIcon Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . =. . . . . . . . . . . . . . . . . . . . >>) . . . . 459 AddFolderIcon. . . . . . . . . . 440 BYREF Operator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449 12 Objects and Object Handlers . . . . . . . . . . . . . . . . . . . . . . . . 471 AdminAskPath. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473 AskDestPath Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443 Concatenate Operator (+) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472 AskDestPath . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454 TextSub Object . . . . . . . . . . . . . . . . . . . . . . . . . <<. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463 463 465 467 AddProfString . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ^. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451 Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453 Reboot Object. . 444 Logical Operators (&&. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442 BYVAL Operator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456 Exception Handling . . 469 AddProfString Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Table of Contents Bit Operators (&. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455 InitProperties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476 xxxviii InstallShield InstallScript Language Reference Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451 Err Object. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AddFolderIcon Example 2. . . . . . . . %) . . . . . . . . . . . . . . . . . 448 Structure Pointer Operator (->). . . 443 Indirection Operator (*) . . . . . . . . . . . 456 WriteProperties . . . . . . . . . 454 Object Handlers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451 Objects Object . . . 457 A Built-In Functions (A-D) . . . . . . . 444 Member Operator (. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |. . . . . >. . . . . . . . . . . . . . . . . . . . . . . AddFolderIcon Example 3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ||. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . !=) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445 Relational Operators (<. . . . !) . . . . . . . . . . . . . . . . . . . . . . . . . . . . AddFolderIcon Example 1. . . . . . . . . . . . . . . . . . . . . <=. . . . . . . . . . . . . . . . . . . . . .

. . . . . . 495 BatchDeleteEx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 491 BatchAdd Example . . . . . . 486 AskText Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 500 BatchFileLoad . . . . . . . . . . 510 BatchGetFileName . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512 BatchGetFileName Example . . . . . . . . 532 CoCreateObject . . . . . . . . . . . . . . . . 480 AskPath . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 527 CloseFile . . . . . . . . . . . . . . . . . . . . . . . 490 BatchAdd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521 CallDLLFx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 529 CloseFile Example . . . . . . . . . . . . 488 AskYesNo. . . . . . 531 CmdGetHwndDlg Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Table of Contents AskOptions . . . . . 513 BatchMoveEx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 518 BatchSetFileName Example . . . . . . . . . . . . . . . . . . . 523 ChangeDirectory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 526 CharReplace . . . . . . . . . . . . . . . . . . . . . . . . . . 535 InstallShield InstallScript Language Reference Guide xxxix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488 AskYesNo Example . . . . . . . . . . . . . . . . . . . . . 519 CalculateAndAddFileCost . . . . . . . . . . . . . . . . . . . . 498 BatchDeleteEx Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477 AskOptions Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485 AskText . . . . . . . . . . . . . . . . . . . . . 529 CmdGetHwndDlg. . . . . . . . . 505 BatchFileSave Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507 BatchFind . . . . . . . . . . . . . . 482 AskPath Example . . . . . . . . . . . . . . 522 CallDLLFx Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514 BatchMoveEx Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502 BatchFileLoad Example . . . 509 BatchFind Example . . . 524 ChangeDirectory Example . . . 517 BatchSetFileName. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503 BatchFileSave . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Table of Contents CoCreateObjectDotNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543 ConfigFileLoad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537 CoGetObject Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546 ConfigFileSave . . . . . 538 ConfigAdd . . . . . . . . . . . . . . . . . . . . . . . . . . . . 575 CopyFile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 549 ConfigFind . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 548 ConfigFileSave Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 539 ConfigAdd Example . . . . . . . . . . . . 557 ConfigGetInt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 562 ConfigMove Example . 576 CopyFile Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 569 ConvertSizeToUnits. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 583 CreateFile Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 581 CreateFile. . . . . . 573 CopyBytes Example. . . . . . . . . . . . . 551 ConfigFind Example . . . . . . . . . . . . . . . . . . . . . . . 579 CreateDir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 565 ConfigSetFileName Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 545 ConfigFileLoad Example. . . . . . . . . . . . . . 555 ConfigGetFileName Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 542 ConfigDelete Example . 585 xl InstallShield InstallScript Language Reference Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563 ConfigSetFileName . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 554 ConfigGetFileName . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 580 CreateDir Example . . . . . 571 ConvertWinHighLowSizeToISHighLowSize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 541 ConfigDelete. . . . . . . . 566 ConfigSetInt . . . . . . . . . . . . . . . . . . 572 CopyBytes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 536 CoGetObject. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 559 ConfigGetInt Example . 574 CopyCHARArrayToISStringArray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 560 ConfigMove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 568 ConfigSetInt Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 619 CtrlGetSubCommand. . . . . . . . . . . . 653 InstallShield InstallScript Language Reference Guide xli . . . . . . . . . . 647 CtrlSetList Example . . . . . 648 CtrlSetMLEText. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 587 CreateProgramFolder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 589 CreateRegistrySet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 634 CtrlSelectText Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 618 CtrlGetState Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 630 CtrlPGroups Example. . . . . . . . . 594 CtrlClear. . . . . . . . . . . . . . . . . . . . . . . . . . . . .Table of Contents CreateInstallationInfo . . . . . . 609 CtrlGetMultCurSel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 596 CtrlDir . . . . . . . . . . . . . . . . . . . 623 CtrlGetText. . . . . . . . . . . . . . . . . 604 CtrlGetMLEText. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 639 CtrlSetFont . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 599 CtrlDir Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 586 CreateObject . . . . . . . . . . . . 635 CtrlSetCurSel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 590 CreateRegistrySet Example . . . 627 CtrlGetText Example . . 593 CreateShellObjects Example . . . . . . . . . . . . . . . . . . . . . . . 643 CtrlSetList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 591 CreateShellObjects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 603 CtrlGetCurSel Example . . . . . . . . . . . . . . . . . . . 588 CreateProgramFolder Example. . . . . . . 631 CtrlSelectText. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 623 CtrlGetSubCommand Example . . . . . . . . . . . . . . 643 CtrlSetFont Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 613 CtrlGetMultCurSel Example . . . . . . . . . . . . . . 608 CtrlGetMLEText Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 614 CtrlGetState . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 627 CtrlPGroups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 600 CtrlGetCurSel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 638 CtrlSetCurSel Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 595 CtrlClear Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 669 DefineDialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 688 Delay Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 654 CtrlSetMultCurSel . . . . CHECKMARK Dialog Style. . . . . 710 DIFxDriverPackageInstall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 700 DialogSetInfo . . . . . . . . . . . . . . . . . 705 Dialog Styles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CHECKBOX95 Dialog Style. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 694 DeleteFolderIcon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 668 CtrlSetText Example . . . . . . . . . . . . . . . . . . . . . . . . . 689 DeleteDir . . . . . . . . . . . . . . CHECKBOX Dialog Style. . . . . . . . . . . . . . . . . . . 698 DeleteProgramFolder Example . . 690 DeleteDir Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Table of Contents CtrlSetMLEText Example . . . . . . . . . . 659 CtrlSetState . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 712 DIFxDriverPackagePreinstall. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 696 DeleteProgramFolder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 663 CtrlSetState Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 683 DeinstallStart Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 691 DeleteFile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 680 DeinstallStart . . . . . . . . . . . . . . . . . . 715 xlii InstallShield InstallScript Language Reference Guide . . . . . . . . . . . . . . . . . . . . . . . . 685 Delay . . . . . . . 678 DeinstallSetReference Example . . 696 DeleteFolderIcon Example . . . . . . . . . . . . . . . . . . . 706 707 708 709 710 DIFxDriverPackageGetPath . . . . . . . . . . . . . . . . . . . . . . CHECKLINE Dialog Style . 675 DeinstallSetReference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 692 DeleteFile Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 701 DialogSetInfo Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 672 DefineDialog Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 664 CtrlSetText . . . . . . . . . . . . . . . . . . . . . . . . . . . . 658 CtrlSetMultCurSel Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 699 DialogSetFont . . . . . . . . . . . . . . . . . 688 DeleteCHARArray . . . . . . . . . .

. . . . . . . . . . . . . . . . . 728 DoInstall Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 739 EndDialog. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 762 EzConfigAddDriver Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 746 ExistsDir. . . . . . . . . . . . 770 EzConfigGetValue Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 738 EndCurrentDialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 749 ExistsDisk Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 735 Enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 732 B Built-In Functions (E-G) . . . . . . . 773 InstallShield InstallScript Language Reference Guide xliii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 754 EzBatchAddString Example . . . . . . 747 ExistsDir Example . . . . . . . . . . 748 ExistsDisk . . . . . . . . . . . . . . . . . . . . . . . . . 721 Disable Example . . . . . . . . . . . . . . 725 Do Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 724 Do . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 727 DoInstall . . . . . . . . . . . . . . . . . . . . . 744 EnterDisk Example . . . . . . 718 Disable. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 759 EzBatchReplace Example. . . . . 745 EnterPassword . 756 EzBatchReplace . . . . . . . . 751 EzBatchAddPath Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 740 EndDialog Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Table of Contents DIFxDriverPackageUninstall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 763 EzConfigAddString . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 741 EnterDisk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 735 Enable Example . . . . . . . . . . . . . . . . . . . 760 EzConfigAddDriver . . . . . . . . . . . . . . 752 EzBatchAddString . . . . 750 EzBatchAddPath . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 771 EzConfigSetValue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 767 EzConfigGetValue . . . . . . . . . . . . . . . . . . . . . . . 772 EzConfigSetValue Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 765 EzConfigAddString Example . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 778 FeatureAddItem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 835 FeatureInitialize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 817 FeatureFilterOS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 800 FeatureFileEnum . . . . . . 776 FeatureAddCost . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 833 FeatureGetTotalCost . . . . . . . . . . . . . . . . . . . . . . . . . 840 xliv InstallShield InstallScript Language Reference Guide . . . 799 FeatureErrorInfo Example .Table of Contents EzDefineDialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 793 FeatureError . . . . . . . . 786 FeatureCompareSizeRequired Example . . . . . . . . . 791 FeatureDialog Example . . . . . . . . . . . . . . . . . . . . 822 FeatureGetCost. . . . . . . . . . . . . . . . . . . . . . . 789 FeatureDialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 806 FeatureFileInfo Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 804 FeatureFileInfo . . . . . . . . . . . . . 819 FeatureFilterOS Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 836 FeatureInitialize Example . . . . . . . . . . 815 FeatureFilterLanguage Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 811 FeatureFilterLanguage . . . . . . . . . . . . . . . . 780 FeatureAddItem Example . . . . . . . . . . . . . . 838 FeatureIsItemSelected . 826 FeatureGetData. . . . . . . . . . . . . . . . . . . . . . . . . . 783 FeatureAddUninstallCost . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 774 EzDefineDialog Example . . . . . . . . . . . . 784 FeatureCompareSizeRequired . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 802 FeatureFileEnum Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 824 FeatureGetCost Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 797 FeatureErrorInfo . . . . . . . . . . 839 FeatureIsItemSelected Example . . . . . . 794 FeatureError Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 828 FeatureGetData Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 832 FeatureGetItemSize Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 831 FeatureGetItemSize. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 825 FeatureGetCostEx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . 856 FeatureRemoveAllInMediaAndLog . . 879 FeatureSpendCost . . . 886 FeatureTotalSize Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 852 FeatureReinstall . . . . . . . . . . . . . . . . . . . . . . 845 FeatureMoveData Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 855 FeatureRemoveAllInMedia . . . . . . . . . . . . . . . 864 FeatureSetData Example . . . . . . . . . . . 842 FeatureListItems Example . . . . . . . . . . . . 844 FeatureMoveData . . . . . . . . . . . . . . . . 894 InstallShield InstallScript Language Reference Guide xlv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 892 FeatureValidate . . . . . . . . . . . . . . . . . . . . . . 874 FeatureSetupTypeSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 853 FeatureRemoveAll . . . . . . . . . . . . . . . . . . . . . . . . . . . 859 FeatureSelectItem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 893 FeatureValidate Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 867 FeatureSetTarget Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 862 FeatureSetData. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 870 FeatureSetupTypeEnum Example . . . . . . . 861 FeatureSelectNew. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 881 FeatureStandardSetupTypeSet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 878 FeatureSetupTypeSet Example . . . . . . . . . . . . . . . . . . . . . . . . . 888 FeatureTransferData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 843 FeatureLoadTarget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 854 FeatureRemoveAllInLogOnly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 890 FeatureUpdate . . . . . . . . . . . . . . . . . . . . . . . . 880 FeatureSpendUninstallCost . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 871 FeatureSetupTypeGetData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 846 FeaturePatch . . . . . . . . . . . . 869 FeatureSetupTypeEnum. . . . . . . . . . . . . . . . . . . . . 872 FeatureSetupTypeGetData Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 866 FeatureSetTarget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Table of Contents FeatureListItems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 858 FeatureSaveTarget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 860 FeatureSelectItem Example . . . . . . . . . . 883 FeatureTotalSize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . 916 FindFile . . . . . . . . . . . . . . . . . . . . . . . . . . . 936 GetDiskSpace Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 927 GetCurrentDialogName . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 937 GetDiskSpaceEx . . . . . . . . . . . . . . . . . . . . . 924 GetAndAddFileCost . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 941 GetEnvVar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 912 FindAllDirs Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 906 FileGrep Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 920 FindWindow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 928 GetCurrentDir . . 913 FindAllFiles . . . . . . . . . . . . . . . . . . . . . . . . . . 910 FindAllDirs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 903 FileGrep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 909 FileInsertLine Example . . . . . . . . . . . . . . . . . . . . . .Table of Contents FileCompare . . . . . . . . . . . . . . . . . . . . . . . 932 GetDisk Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 944 xlvi InstallShield InstallScript Language Reference Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 899 FileDeleteLine . . . . . . . . . 933 GetDiskInfo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 929 GetDir . . . . . . . . . . . . . . . . 924 GetAndAddAllFilesCost . . . . . . . . . . . . . . . . . . . . 919 FindFile Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 930 GetDir Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 939 GetDiskSpaceEx Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 902 FileDeleteLine Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 925 GetCHARArrayFromISStringArray . . . . . . . . . . . . . 931 GetDisk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 934 GetDiskSpace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 907 FileInsertLine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 942 GetEnvVar Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 897 FileCompare Example . . . . . . . . . . . . . 922 FormatMessage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 921 FindWindow Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 915 FindAllFiles Example . . . . . . . . . . . . . . . . . . . . . 942 GetExtendedErrInfo . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . 956 GetFont Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 971 GetProfSectionKeyCount . . . 945 GetFileInfo . . . . . . . . . . . . . . . . . . . . 955 GetFont . . . . . . . . . . . . . . . . . . . . . . . . 985 GetTrueTypeFontFileInfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 963 GetMemFree Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 967 GetObjectCount . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 997 Handler Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 962 GetMemFree. . . . . . . . . . . . . . . 989 GetUpdateStatusReboot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 975 GetProfStringList . . . . . . . . . . . . 990 GetValidDrivesList Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 990 GetValidDrivesList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 952 GetFolderNameList Example . . . . . . . . . . 950 GetFolderNameList . . . . . . . . . . . . . 964 GetObject. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 966 GetObjectByIndex . . . . . . . . 958 GetLine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 997 Handler . . . . . . . . . . . . . . . . . . . 977 GetSystemInfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 994 C Built-In Functions (H-P) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 988 GetUpdateStatus. . . . . . . 968 GetProfInt. . . .Table of Contents GetExtents . . . . . . . . . . . . . . . . . . . . . . . . . 961 GetLine Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 946 GetFileInfo Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 999 InstallShield InstallScript Language Reference Guide xlvii . . . . . . . . . . . . . . . . . . . . . . . . 979 GetSystemInfo Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . 992 GetWindowHandle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 944 GetExtents Example . . . . . . . . . . . . . . . 976 GetProfStringList Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 972 GetProfString . . . . . . . . . . . . . . . . . . . . . . . 969 GetProfInt Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 993 GetWindowHandle Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 972 GetProfString Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . 1020 LaunchApp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1041 ListCount . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1039 ListConvertNumToStr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1009 Is Example . . . . . . . 1036 ListAppendFromArray . . . . . . . . . . . 1031 ListAddItem Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1004 InstallationInfo Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1035 ListAddString Example. . . . . . . . . . . . . 1001 HIWORD . . 1002 HIWORD Example . . . . . . . . . . . . . . . . . 1046 ListCurrentItem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1021 LaunchApp Example . . . . . . . . . . . . . . . . . . . . . . . . 1038 ListAppendToArray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1042 ListCount Example . . . . . . . . . . . . . . . 1047 ListCurrentItem Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1029 ListAddItem . . . . . . . . . . . . . . . . . . . . . . . . . . 1019 IsObject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1018 IsEmpty . . 1049 xlviii InstallShield InstallScript Language Reference Guide . . . . . . . . . . . . . . . . . . . . . . . . . .Table of Contents HIBYTE. . . . . . . . . 1048 ListCurrentString. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1016 ISCompareServicePack Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1034 ListAddString . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1014 ISCompareServicePack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1019 IsEmpty Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1006 Is . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1044 ListCreate Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1040 ListConvertStrToNum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1003 InstallationInfo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1027 LaunchAppAndWaitInitStartupInfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1021 LaunchAppAndWait . . . . . . . . . . . . . . . . . . . . . . . . . . . 1032 ListAddList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1043 ListCreate . . . . . . . . . . . . . . . . . . . . . 1017 ISDeterminePlatform . 1022 LaunchAppAndWait Example. . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1079 ListReadFromFile Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1051 ListDeleteItem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1092 ListValidType . . . . . . . . . . . . . . . . . 1064 ListGetFirstItem . . . . . . 1063 ListFindString Example . . . . . . . . . . 1072 ListGetNextItem Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1067 ListGetFirstString . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1060 ListFindItem Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Table of Contents ListCurrentString Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1058 ListDestroy Example . . . . . . . . . . . . . . 1069 ListGetFirstString Example . . . . . . . . . . . . . 1088 ListSetIndex Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1069 ListGetIndex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1076 ListGetType . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1086 ListSetIndex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1085 ListSetCurrentString Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1052 ListDeleteItem Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1055 ListDeleteString Example . . . . . . . . . . . . . 1083 ListSetCurrentString . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1089 ListValid . . . . . . . 1066 ListGetFirstItem Example . . . . . . 1073 ListGetNextString . . . . . . . . . . . 1059 ListFindItem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1075 ListGetNextString Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1053 ListDeleteString . . . . . . . . . . . . . . . . 1050 ListDeleteAll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1094 InstallShield InstallScript Language Reference Guide xlix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1078 ListGetType Example . . . . . . . . . . . . . . . . . . . . . . 1080 ListSetCurrentItem . . . . . . . . . . . . . . . . . . . . . . . . . . . 1078 ListReadFromFile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1082 ListSetCurrentItem Example . . . . . . . . . . . . . . . . . . . . . . . . . 1056 ListDestroy. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1093 ListValidType Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1091 ListValid Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1061 ListFindString . . . . . . . . . . 1071 ListGetNextItem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . 1132 OpenFileMode. . . . . . . . . . . . . . . . . . . . . . 1103 LogWriteCustomNumber . . . 1106 LongPathFromShortPath . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1127 NumToStr. . . . . . . . . . . 1138 ParsePath Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1129 NumToStr Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1100 LogReadCustomNumber . . . . . . . . . . . . . . . . . . . . . . . . . 1107 LongPathFromShortPath Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1136 ParsePath . . . . . . . . . 1111 LongPathToShortPath . . . . . . . . . . . 1101 LogReadCustomString. . . . . . . . 1115 LOWORD Example . . . . . . . . . . . . . . . . . . . . . 1125 MessageBox Example . . . . . . . . . . . . . . . . . . . . . . . . . . . 1120 MediaGetDataEx . . . . . . . . . . . . . . . . . . . . . . . . . . 1113 LongPathToShortPath Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Table of Contents ListWriteToFile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1099 LOBYTE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1098 LoadStringFromStringTable . 1130 OpenFile. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1109 LongPathToQuote Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1104 LogWriteCustomString . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1141 l InstallShield InstallScript Language Reference Guide . . . . . . . . . . . . . . . . 1124 MessageBox. 1114 LOWORD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1116 MediaGetData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1096 ListWriteToFile Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1134 OpenFileMode Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1140 ParseUrl . . . . . . . . . . . . . . . . 1123 MessageBeep Example . . . . . . . . . . . . . . . . 1126 MessageBoxEx . . . . . . . . . . . . . . . . . . . . . . . . . . . 1096 ListWriteToFileEx. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1120 MessageBeep. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1131 OpenFile Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1115 MaintenanceStart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1108 LongPathToQuote . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . 1181 QueryProgItem . . . . . . 1156 PathMove Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1144 PathDelete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1188 ReadBytes . . . . 1176 ProgDefGroupType . . . . . . 1185 QueryShellMgr Example . . . . . . . . . . . . . . . . . 1167 PlaceWindow . . . . . . . . . . . . . . . . . . . . . . . . 1147 PathFind . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1173 PostShowComponentDlg . . . . . . . . . . . . . . 1189 ReadBytes Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1175 PreShowComponentDlg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1157 PathSet . . . . . . . . . . . 1193 InstallShield InstallScript Language Reference Guide li . . . . . . . . . . . . . . 1177 ProgDefGroupType Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1183 QueryShellMgr . . . . . . . . . . . . . . . . . . . . . . . . . . 1190 ReadNumberProperty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1142 PathAdd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1178 D Built-In Functions (Q-R) . . . . . . . . . . . . . . 1172 PlayMMedia Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1151 PathGet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1192 ReadStringProperty. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1162 PlaceBitmap Example . . . . . . . . . . . . . . . . 1154 PathMove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1153 PathGet Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1171 PlayMMedia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1186 ReadArrayProperty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1159 PathSet Example. . . . . . . . . . . . . . . . . . . . . 1160 PlaceBitmap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1169 PlaceWindow Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1187 ReadBoolProperty . . . . . . . . . . . . 1143 PathAdd Example . . . . . . . . . . . . . .Table of Contents ParseUrl Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1146 PathDelete Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1181 QueryProgItem Example . . . . . . . . . . . . . . . . . . . . . . . 1149 PathFind Example .

. 1241 RegDBQueryKeyCount . . . . . . . . . . 1207 RegDBDeleteKey. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1211 RegDBDeleteValue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1199 RegDBCopyKeys. . . . . . . . . . . . 1253 RegDBSetItem Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1228 RegDBGetKeyValueEx . 1205 RegDBCreateKeyEx Example . . . . . . . . . . . . . . . . . . . . . . . . . 1257 lii InstallShield InstallScript Language Reference Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1196 RegDBConnectRegistry Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1237 RegDBQueryKey . . . . 1246 RegDBSetAppInfo Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1242 RegDBQueryStringMultiStringCount . . . . . . . . 1223 RegDBGetItem Example . . . . . . . . . . . . . . . 1230 RegDBGetKeyValueEx Example. . 1234 RegDBKeyExist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Table of Contents RebootDialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1239 RegDBQueryKey Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1212 RegDBDeleteValue Example . . 1194 RebootDialog Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1213 RegDBDisConnectRegistry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1236 RegDBKeyExist Example . . . . . . 1218 RegDBGetAppInfo Example . . . . . . . . . . . . . . . . . . . . . 1216 RegDBGetAppInfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1196 RegDBConnectRegistry . . . . . . . . . 1223 RegDBGetItem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1248 RegDBSetDefaultRoot . . . . . . . . . . . . . . . . . . . . . . . . . 1203 RegDBCreateKeyEx. . . . . . . . . . . . . . . . . . . . . . . . . 1201 RegDBCopyValues . . . . . . . . . . . 1232 RegDBGetUninstCmdLine. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1209 RegDBDeleteKey Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1250 RegDBSetDefaultRoot Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1251 RegDBSetItem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1221 RegDBGetDefaultRoot . . . . . 1244 RegDBSetAppInfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1215 RegDBDisConnectRegistry Example . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1268 ReleaseDialog. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1291 SdAskOptions Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1285 SdAskDestPath Example . . . . . . . . . . 1299 SdConfirmNewDir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1278 ReplaceProfString Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Table of Contents RegDBSetKeyValueEx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1300 SdConfirmNewDir Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1269 RenameFile. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1259 RegDBSetKeyValueEx Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1290 SdAskOptions . . . . . . . . . . . . . . 1294 SdAskOptionsList Example. . . . . . . . . . . . . . . . . . . . . . . 1268 ReleaseDialog Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1296 SdBitmap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1265 RegisterFontResource Example . . . 1262 RegDBSetVersion . 1264 RegisterFontResource . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1309 InstallShield InstallScript Language Reference Guide liii . . . . . . . . 1304 SdCustomerInformation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1281 Resize . . . . . . . . . . . . . . . . . . . . . . . . 1308 SdCustomerInformationEx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1301 SdConfirmRegistration. . . . . . . . . . . . . 1288 SdAskDestPath2 Example . . . . . . . 1273 ReplaceFolderIcon. . . . . . . . . . . . . . . . 1277 ReplaceProfString . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1275 ReplaceFolderIcon Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1297 SdBitmap Example . . 1282 RGB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1285 SdAskDestPath . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1305 SdCustomerInformation Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1272 RenameFile Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1293 SdAskOptionsList . . . . . . . . . . . . . . . . . . . . . . . 1303 SdConfirmRegistration Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1287 SdAskDestPath2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1283 E Built-In Functions (S-T). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1283 RGB Example . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1324 SdFeatureDialog2 . . . . . . . . . . . . . . . . 1339 SdFilesInUse. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1358 SdLicense . . . . . . . . . . . . . . . . 1342 SdFinish Example . . 1355 SdFinishUpdateReboot Example . . . . . . . . 1346 SdFinishEx Example. . . . . . . . . . . . . . . . . . . 1353 SdFinishUpdateReboot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1332 SdFeatureMult . . . 1314 SdDiskSpaceRequirements Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1357 SdInit . . 1341 SdFinish . . . . . . . . . . . . . . . . . . 1336 SdFeatureTree . . . . . . . . . . . . . . . . . . . . 1345 SdFinishEx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1348 SdFinishReboot Example . . . . . . . 1350 SdFinishUpdate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Table of Contents SdCustomerInformationEx Example . . 1328 SdFeatureDialogAdv Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1314 SdDisplayTopics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1317 SdExceptions . . . . . . . . . . . . . . . . . . . . . . . . 1347 SdFinishReboot. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1364 liv InstallShield InstallScript Language Reference Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1328 SdFeatureDialogAdv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1340 SdFilesInUse Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1332 SdFeatureMult Example . . . . . . . . . . . . . . . . . . . . . . . . . 1324 SdFeatureDialog2 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1351 SdFinishUpdateEx . . . . . . . . . . . . . . . . . . 1361 SdLicense2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1321 SdFeatureDialog Example . . . 1319 SdFeatureDialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1315 SdDisplayTopics Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1362 SdLicense2 Example . . . . . . . . . . . . . . . . 1312 SdDiskSpaceRequirements . . . . . . 1358 SdInit Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1318 SdExceptions Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1359 SdLicense Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1336 SdFeatureTree Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . 1394 SdSelectFolder . . . . . 1369 SdLoadString . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1372 SdLogonUserInformation . 1374 SdMakeName Example . . . . . . . . . . . . . . . . . . . . . . . 1373 SdLogonUserListServers . . . . . . . . . . . . . . . . . . . 1371 SdLogonUserCreateUser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1380 SdOptionsButtons Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1403 SdSetupTypeEx . . . . . . . . . . . . . . 1384 SdPatchWelcome . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1386 SdProductName . . . . . . . . . . . . . 1392 SdRegisterUserEx Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1365 SdLicense2Rtf Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1366 SdLicenseRtf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1373 SdLogonUserListUsers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1400 SdSetupType2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1398 SdSetupType . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1385 SdPatchWelcome Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1370 SdLoadString Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1387 SdProductName Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1401 SdSetupType2 Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1370 SdLogonUserBrowse. . . . . . . . . . . . . . 1375 SdOptionsButtons . . . . . . . 1382 SdOutOfDiskSpace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1396 SdSetupCompleteError Example . . 1372 SdLogonUserListGroups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1388 SdRegisterUser . . . . . . . . . . . 1374 SdMakeName . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1389 SdRegisterUser Example . . . . . . . . . . . . . 1395 SdSelectFolder Example . . . . . . . . . .Table of Contents SdLicense2Rtf . 1367 SdLicenseRtf Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1405 InstallShield InstallScript Language Reference Guide lv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1398 SdSetupType Example. . . . . . . . . . . . . . . . . . . . 1396 SdSetupCompleteError . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1391 SdRegisterUserEx . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . 1440 SelectDir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1421 SdShowInfoList Example . . . . . . . . . . . . . . . . 1412 SdShowDlgEdit2 Example . . . . . . . . . . . . . . . . . . . 1433 SdWelcome . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1451 SendMessage. . . . . 1453 ServiceAddService . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1426 SdStartCopy Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1407 SdShowAnyDialog Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Table of Contents SdSetupTypeEx Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1445 SelectDirEx Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1418 SdShowFileMods Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1431 SdSubstituteProductInfo . . . 1406 SdShowAnyDialog . 1409 SdShowDlgEdit1 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1417 SdShowFileMods. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1439 SeekBytes Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1425 SdStartCopy. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1422 SdShowMsg . . . . . . . . . . . . . . . . . . 1435 SdWelcomeMaint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1415 SdShowDlgEdit3 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1428 SdStartCopy2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1442 SelectDir Example . . . . . . . . 1436 SdWelcomeMaint Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1420 SdShowInfoList . . . . . . . . 1449 SelectFolder Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1414 SdShowDlgEdit3 . . . . . . . 1434 SdWelcome Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1430 SdStartCopy2 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1409 SdShowDlgEdit1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1437 SeekBytes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1424 SdShowMsg Example . . . . . . . . . . . . . . . . . . . . . . . . . 1411 SdShowDlgEdit2 . . . . . . . . . . 1455 lvi InstallShield InstallScript Language Reference Guide . . . . . . . . . . . . . . . . . . . . . . . . . 1444 SelectDirEx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1452 SendMessage Example . . . . . . . . . 1448 SelectFolder . . . . . . . . . .

. . . . . . . . . . 1490 SetStatusWindow Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1469 SetDisplayEffect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1476 SetErrorTitle Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1470 SetDisplayEffect Example . . . . . . . . . . . . . . . . . . . . . . . 1457 ServiceInitParams . . . . . . . . . . . . . . . . . . . . . 1483 SetFont Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1493 SetTitle Example . . . . . . . . . . . . . . . . . . 1467 SetDialogTitle . . . . . . . . . . . . . 1489 SetStatusWindow . . . . . . . . . . . . . . . 1486 SetStatus . . . . . . . . . . . . . . 1457 ServiceGetServiceState . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1478 SetFileInfo . . . . . . . . . . . . . . . . . . . 1463 SetColor. . . . . . . . . . . . . . . . . . . . . . . . . . . . 1477 SetExtendedErrInfo . . 1500 SetupType2 . . . . . . . . . . . . . . . . . 1502 InstallShield InstallScript Language Reference Guide lvii . . . . . . . . . . . . . . . . . . . . . . . . . . . 1464 SetColor Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1459 ServiceRemoveService . . . 1462 ServiceStopService. . . . . . . . . . . . . . . 1472 SetErrorMsg. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1475 SetErrorMsg Example . . . . . . . . . . . . . . . . . . . . . 1475 SetErrorTitle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1497 SetupType Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1496 SetUpdateStatus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1468 SetDialogTitle Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1479 SetFileInfo Example . . . . . . . . . . . . . . . . . 1461 ServiceStartService . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1492 SetTitle . . . . . . . . . . . . . . . . . . . . . . . . . .Table of Contents ServiceExistsService . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1488 SetStatusExStaticText . . . . . . . . . . 1497 SetupType . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1487 SetStatusEx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1497 SetUpdateStatusReboot . . . . . . . . . . 1481 SetFont . . . . . . . . . . . . . . . . . . . . 1484 SetInstallationInfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . 1534 SQLRTConnect2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1532 SprintfMsiLog . . . . . . . . . . . . . . 1507 ShowProgramFolder Example. . . . . . . . . . . . . . . . . . . . . . 1542 SQLServerSelectLogin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1540 SQLServerLogin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1539 SQLRTPutConnectionInfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1506 ShowProgramFolder . . . 1543 StatusUpdate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1550 lviii InstallShield InstallScript Language Reference Guide . . . . . . . . . . . . . 1537 SQLRTGetLastError. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1545 StatusUpdate Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1518 SilentWriteData Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1526 Sprintf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1529 SprintfBox Example . . . . . . . . . . . . . . . . 1536 SQLRTGetConnectionAuthentication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1549 StrCompare . . . . . . . . . . . . . . . . 1528 SprintfBox . . . . . . . . . . . . . . . . . . 1533 SQLBrowse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1547 StrAddLastSlash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1538 SQLRTInitialize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1541 SQLServerSelect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1525 SizeWindow Example . . . . 1511 SilentReadData Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1513 SilentWriteData . . . . . . . . . . . . . . . . . . 1520 SizeOf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1525 SizeWindow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1504 ShowObjWizardPages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1535 SQLRTGetConnections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1508 ShowWindow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1549 StrCompare Example . . 1527 Sprintf Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1537 SQLRTGetConnectionInfo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Table of Contents SetupType2 Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1509 SilentReadData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. 1569 StrToNum. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1576 System Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1560 StrPutTokens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1566 STRTOCHAR . . . . . . . . . . . 1573 StrToUpper . . . . . . . 1556 StrLength . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1571 StrToNum Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1575 System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1585 InstallShield InstallScript Language Reference Guide lix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1568 StrToLower . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1558 StrLengthChars. . . . . . . 1553 StrGetTokens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1583 TTextSubSubstituteextSubSubstitute . . . . . . . . . . . 1579 TextSubParseTextSub . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1584 TextSubSubstitute Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1569 StrToLower Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1558 StrLength Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1565 StrSub . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1565 StrSub Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1552 StrFind Example . . . . . . . . . . . . . . . . . . 1564 StrReplace . . . . . 1554 StrGetTokens Example . . . . 1559 StrLengthChars Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1580 TextSubParseTextSub Example . . . . . . . . . . 1561 StrRemoveLastSlash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1552 StrFindEx . . 1581 TextSubSetValue. . . . . . . . . 1582 TextSubSetValue Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1572 StrToNumHex . . . . . . . . . . . . . . 1578 TextSubGetValue Example . . . . . . . .Table of Contents StreamFileFromBinary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1551 StrFind . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1577 TextSubGetValue. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1574 StrToUpper Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1562 StrRemoveLastSlash Example . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1589 UpdateServiceCheckForUpdates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1609 VarSave . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1599 UpdateServiceSetLanguage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1593 UpdateServiceEnableUpdateManagerInstall . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1628 VerProductIsVersionSupported. . . . . . . . . . 1629 VerProductStrToNum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Table of Contents F Built-In Functions (U-Z). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1613 VarSave Stack Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1598 UpdateServiceSetHost . . . . . . . . . 1587 UnUseDLL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1619 VerFindFileVersion Example . 1604 VarInit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1624 VerGetFileVersion Example. . . 1606 VarRestore . . . . . . . . . . . . . . . . 1602 UseDLL Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1626 VerProductGetInstalledVersion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1628 VerProductNumToStr . . . . . . . . . . . . 1616 VerFindFileVersion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1607 VarRestore Example . . . . . . . . . . . . . . . . . . . . . . . 1623 VerGetFileVersion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1630 lx InstallShield InstallScript Language Reference Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1594 UpdateServiceGetAgentTarget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1625 VerProductCompareVersions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1601 UseDLL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1592 UpdateServiceCreateShortcut . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1610 VarSave Example . . . . . 1595 UpdateServiceRegisterProduct. . . . . . . . . . . . . . . . . 1622 VerGetFileLanguages Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1620 VerGetFileLanguages. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1614 VerCompare . . . . . . . . . . . . . . . 1600 UpdateServiceSetLanguage Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1596 UpdateServiceRegisterProductEx . . . . . . . . . . . . . . . 1587 UninstallApplication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1588 UnUseDLL Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1616 VerCompare Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . .Table of Contents VerProductVerFromVerParts . . . . . . . . . . . . . . . . . 1664 WriteStringProperty. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1638 VerUpdateFile Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1652 WriteBytes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1656 WriteLine Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1636 VerUpdateFile . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1631 VerProductVerPartsFromVer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1651 WriteBoolProperty . . . . . . 1659 WriteProfInt . . . . . . . 1654 WriteLine . . . . . . . . . . . . . . . . . . . 1662 WriteProfString . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1665 XCopyFile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1653 WriteBytes Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1670 Index . . . . . . . . . . . . . . . . . . . . . . . . . . 1633 VerSearchAndUpdateFile Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1632 VerSearchAndUpdateFile . 1644 WaitOnDialog Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1645 Welcome . . . . . . . . 1657 WriteNumberProperty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1673 InstallShield InstallScript Language Reference Guide lxi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1649 WizardDirection. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1663 WriteProfString Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1643 WaitOnDialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1650 WriteArrayProperty . . . . . . . . . . . . . 1666 XCopyFile Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1648 Welcome Example. . . . . . . . . . . 1660 WriteProfInt Example . . . .

Table of Contents lxii InstallShield InstallScript Language Reference Guide .

And it does so better than any programming language in the world. InstallScript. It has a defined format and regulated syntax. each with specific properties. does not provide the full range of programming functionality that C does. you can quickly learn to build an installation with InstallScript. It also allows you to create custom functions. however. Table 1-1: InstallScript Language Reference Section Integrated Compiler Command-Line Compiler Description Provides general information about the InstallScript integrated compiler. Introduces you to the InstallScript language and the structure of a script. Regardless of your programming background. events. a simple but powerful programming language. InstallScript was designed to do one thing—create installations.1 INSTALLSCRIPT LANGUAGE REFERENCE InstallShield makes designing your installation easy with InstallScript. InstallScript is similar to the C language. PROJECT Some InstallScript functions. It uses certain data types. Contains details about the InstallScript commandline compiler that can be invoked from the DOS prompt or from a DOS batch file. and variables are limited to specific installation project types. Setup Scripts InstallShield InstallScript Language Reference Guide 1 .

) Section Language Keywords Description Presents background about language keywords. see Unsupported Functions. Describes the different types of functions that you can use in your installation scripts. to define constants. which are words InstallScript uses as commands in the script. Identifies and describes each of the predefined constants reserved by InstallScript. Contains information about the objects that InstallScript supports and how to separate error handling from the rest of your script code. and to display a userdefined error message. Preprocessor directives can instruct the compiler to include other source files in the compilation. Predefined Constants Predefined Script Variables Data Types and Predefined Structures Preprocessor Directives Flow Control Event Handlers Functions Operators Objects and Object Handlers NOTE Some of the functions that were available in InstallShield Professional are deprecated in later versions of InstallShield. also includes details about—and examples of—each of the builtin functions available in InstallScript. InstallScript project installation programs are driven by the InstallScript engine. Contains information about script variables that you can use with InstallScript. Language keywords are interpreted by the InstallScript compiler to perform some action.Chapter 1: InstallScript Language Reference Table 1-1: InstallScript Language Reference (cont. which generates a series of events in a specific order. 2 InstallShield InstallScript Language Reference Guide . or are considered part of a statement. To view a list of the functions. Contains information about supported operators in InstallScript. Contains information on how to control the flow of execution within scripts. Discusses preprocessor directives. These constants represent specific literal values that are passed to and returned by built-in functions. to include or exclude statements based on compile-time conditions. which are instructions to the InstallScript compiler that are executed as the script is compiled. Contains content about the data types and predefined structures supported in InstallScript.

therefore you do not need to use Compile. This program. You can specify an absolute or relative path with the filename. NOTE When you build the media using ISCmdBld. which is executed from the interface. Syntax Compile script_file [iswi_obl_file] [isrt_obl_file] [ifx_obl_file] switches You can pass any or all of your command line parameters to Compile.exe. Compiler messages are displayed in the Output window. In the command InstallShield InstallScript Language Reference Guide 3 . To specify a command file to Compile. After a setup project has been completely defined. Command-Line Compiler In addition to the integrated compiler. including any extension. You can use more than one command file in a Compile command.exe the build engine automatically compiles your script.exe can be used to compile the setup script using different options than the integrated compile step in the InstallShield designer. Compile. is located in the InstallShield folder's System subfolder. Integrated Compiler The integrated InstallScript compiler can be started from the InstallShield interface by selecting Compile from the Build menu. each parameter must begin and end on the same line—you cannot use the backslash (\) to combine a parameter across two lines. command_file is the name of a text file. called Compile. Compile.exe directly unless you want to use compiler options different from those specified in the InstallShield designer for the project. You can specify all or part of the command line in a command file.exe in the form of a command file.Chapter 1: InstallScript Language Reference Integrated Compiler Because the InstallShield Help Library is designed to interact with InstallShield. InstallShield includes a command-line compiler that can be invoked from the DOS prompt or from a DOS batch file. it is recommended that you open the help from within InstallShield. Copying the help files to another folder or system causes many of its features to work incorrectly.exe accepts the command file's input as if it were specified in that location on the command line. In the command file. use the following syntax: Compile @command_file In this example.exe.

Iswi. just the filename.obl or—if the -libpath switch is used to specify the path—just the filename. the setup script created as part of a new InstallShield project is named setup. Parameters Table 1-2: Command Line Compiler Parameter script_file Description Specifies the name of the setup script.obl or. Note the following: • The filename can include a drive designation and an absolute or relative path. These switches are optional. you must specify the location of those files with the -i switch unless they reside in the current directory. If the filename is unqualified. Note that included files may themselves specify #include directives. Table 1-3: Switches Switch /c or -c Description Compiles the script file without linking it to any existing library file. This is required unless you use the -c or -l switch. be sure the -i switch specifies a search path that can be used to find all included source files. Specifies the fully qualified name of Ifx. • • • iswi_obl_file Specifies the fully qualified name of Iswi.inx file created by compiling without the -c switch). the compiler will search for the script in the current directory of the current drive.obs file is an intermediate step in creating a library file.obl or. By default. arguments can be separated by spaces or tabs (as on the command line) and by newline (\n) characters.rul.obl is located in the InstallShield folder's Script\Iswi\Lib subfolder. just the filename. Ifx. Long path and file names must be enclosed in double quotation marks. 4 InstallShield InstallScript Language Reference Guide . Required unless you use the -c or -l switch. If the specified setup script uses #include directives to include other files in the setup.Chapter 1: InstallScript Language Reference Command-Line Compiler file. Isrt. if the -libpath switch is used to specify the path. unless you use the -c or -l switch.obl is located in the InstallShield folder's Script\Ifx\Lib subfolder.obs file (rather than the . Specifies the fully qualified name of Isrt. if the -libpath switch is used to specify the path. isrt_obl_file ifx_obl_file Switches The following switches can be passed to the compiler. Creating an . and if the filenames specified by #include statements do not include a path. except that you must specify the location of certain folders using the -i switch as noted in the -i section below.obl is located in the InstallShield folder's Script\Isrt\Lib subfolder. This will create an . Required unless you use the -c or -l switch.

obl. as in the example at the end of this help topic. No space is permitted between the switch and the expression or within the expression.) Switch /d or -d<identifier=value> Description Defines a constant. /g or -g /gi or -gi /i or -i<search path> Specifies a search path—a list of paths.Chapter 1: InstallScript Language Reference Command-Line Compiler Table 1-3: Switches (cont. Specifies that a debugging information file should be produced.dbg. use the -libpath switch multiple times. and makes it easier for others to reverse engineer your code. /libpath or -libpath<path> Specifies a single path that identifies a directory to search for Ifx. Long path names must be enclosed in double quotation marks. When the maximum number of error messages has been generated. The default value is 50. InstallShield InstallScript Language Reference Guide 5 .obl. Isrt. This switch must be followed by an expression in the following format: identifier=value The identifier must be a valid InstallScript identifier. or a custom library file. This option makes the compiled script larger and the setup slower. so a debugging information file is not needed. The following folders must be specified (unless you use the -c or -l switch) or a compiler error will occur: • • the InstallShield folder's Script\Ifx\Include subfolder the InstallShield folder's Script\Isrt\Include subfolder Long path names must be enclosed in double quotation marks. To specify multiple directories. /e or -e Specifies the maximum number of error messages. the value must be a constant. compilation stops. so it should typically not be used when creating your final setup for distribution to end users. each separated by a semicolon—that identifies the directories to search for source files that have been included in the setup via #include statements. Specifies that debugging information should be included in the compiled script file. This file is given the name of the setup and extension .

the compiled script is given the name of the script file and the extension . Example The following command line for an InstallScript project compiles the script Setup. 2—Displays Level 1 messages.Chapter 1: InstallScript Language Reference Command-Line Compiler Table 1-3: Switches (cont.rul that is located in the C:\My InstallShield 12 Projects\My InstallScript Project\script files folder: 6 InstallShield InstallScript Language Reference Guide . If a path is not specified. 3—Displays all warning messages. Long path and file names must be enclosed in double quotation marks. When the maximum number of warning messages has been generated.) Switch /o or -o<compiled script filename> Description Specifies the filename to assign to the compiled script.\. 1—Displays any system warning message that InstallShield is unable to handle.. however. Sets the warning level to one of the following values: • • • • 0—Displays no warning messages. Note the following: • The filename can include a drive designation and an absolute or relative path. If you specify a relative path to a filename (for example . /w or -w Specifies the maximum number of warning messages. This is the default setting. plus a message if string length exceeds the limit. If this parameter is not specified. that path must be relative to the current directory of the current drive at the time that you invoke the compiler. • • /q or -q /v or -v Suppresses the output of the copyright message and version information.. long filenames must be enclosed within double quotation marks. The default value is 50.\My Functions). compilation stops.inx and is stored in the current directory. Comments • • When specifying filenames. you can use either short or long filenames. the compiler will store the compiled script in the current directory.

rul" ifx.exe" "C:\My InstallShield 12 Projects\My InstallScript MSI Project\script files\setup.rul that is located in the :\My InstallShield 12 Projects\My InstallScript MSI Project\script files folder: "C:\Program Files\Macrovision\IS12\System\compile.exe" "C:\My InstallShield 12 Projects\My InstallScript Project\script files\setup.rul" ISWI.obl -libpath"C:\Program Files\Macrovision\IS12\script\ISWI\lib" -libpath"C:\Program Files\Macrovision\IS12\script\isrt\lib" -i"C:\Program Files\Macrovision\IS12\script\ifx\include" -i"C:\Program Files\Macrovision\IS12\script\isrt\include" -i"C:\Program Files\Macrovision\IS12\script\include" -i"C:\Program Files\Macrovision\IS12\script\SQLRuntime\Include" -i"C:\Program Files\Macrovision\IS12\script\IISRuntime\Include" -i"C:\Program Files\Macrovision\IS12\script\XMLRuntime\Include" -i"C:\My InstallShield 12 Projects\My InstallScript MSI Project\script files" InstallShield InstallScript Language Reference Guide 7 .obl isrt.obl -libpath"C:\Program Files\Macrovision\IS12\script\ifx\lib" -libpath"C:\Program Files\Macrovision\IS12\script\isrt\lib" -i"C:\Program Files\Macrovision\IS12\script\ifx\include" -i"C:\Program Files\Macrovision\IS12\script\isrt\include" -i"C:\Program Files\Macrovision\IS12\script\include" -i"C:\Program Files\Macrovision\IS12\script\SQLRuntime\Include" -i"C:\Program Files\Macrovision\IS12\script\IISRuntime\Include" -i"CC:\Program Files\Macrovision\IS12\script\XMLRuntime\Include" -i"C:\My InstallShield 12 Projects\My InstallScript Project\script files" The following command line for an InstallScript MSI project compiles the script Setup.Chapter 1: InstallScript Language Reference Command-Line Compiler "C:\Program Files\Macrovision\IS12\System\compile.obl isrt.

Chapter 1: InstallScript Language Reference Command-Line Compiler 8 InstallShield InstallScript Language Reference Guide .

InstallScript is similar to the C language. and function declarations // Function blocks InstallShield InstallScript Language Reference Guide 9 . It also allows you to create custom functions.2 SETUP SCRIPTS A setup script is a collection of event handlers. you can learn quickly to build your setup with InstallScript. It has a defined format and regulated syntax. each with specific properties. however. These elements are expressed in the InstallScript Language. InstallShield comes with more than 400 built-in functions that do most of the work for you. and data used by the event handlers and functions. a simple but powerful programming language. does not provide the full range of programming functionality that C does. The general outline of a script is shown below: // Constant definitions. InstallScript. InstallScript was designed to do one thing—create setups. global data declarations. Declarations can precede function declarations or appear between a function statement and the begin statement for that function. Structure of a Script Every script includes declarations and function blocks. Regardless of your programming background. It uses certain data types. And it does this effectively and efficiently. functions called by those event handlers.

endprogram Function Block PROJECT This information applies to InstallScript projects. Below are some examples of constant definitions. // Function declarations prototype DisplayMsg (NUMBER. STRING). prototype GetName (BYREF STRING). you define constants and declare each of the global variables and user-defined functions that you will be using. Declarations also build an association between a function and its attributes or values. which follows the keyword endprogram in a setup script. All functions that have been declared with a prototype statement must be defined in the function block. A program block cannot be used for an InstallScript custom action or in an event-driven script. STRING szName. program // In an event-driven script. the program block is optional and remains empty. You do not need to declare any of the built-in functions.Chapter 2: Setup Scripts Declarations Declarations Every script begins with global data declarations. since the InstallScript compiler already recognizes the function names. Program Block Program blocks are used in scripts written using InstallShield Professional 5.5 or earlier. Here. NUMBER nVal. data declarations. Declarations instruct the InstallScript compiler that the script will be using the listed items at a later time. The only code that is executed is found in event handlers and entry-point functions. and function declarations: // Constant definitions #define PRODUCT "InstallShield" #define LIMIT 100 // Variable declarations CHAR cVal. 10 InstallShield InstallScript Language Reference Guide .

either between the endprogram statement and the first function declaration or between function declarations.). and return. Be careful not to create an identifier that is a reserved word in InstallScript. The basic syntax of InstallScript is similar to that of the C programming language. such as start: or starthere:. This includes many one-word statements.Chapter 2: Setup Scripts Identifiers Additional global data declarations may be made in the function block. Writing Comments InstallScript gives you two ways to create comments in a script. End a label. and begin are placed on separate lines by themselves and receive no punctuation. InstallScript has syntax rules that regulate its usage. Enclose parameter lists within parentheses. data declared in the function block is visible only to functions that are defined after the data declaration. but only the first 63 characters are significant. Observe the following syntax rules when creating identifiers: • • • • An identifier may be of any length. with a colon (:). A-Z) or an underscore. Syntax Punctuation Rules Like any programming language. endprogram. The remaining characters may be alphabetic (a-z. You can use either method to add explanatory text to your script or to exclude or “comment out” certain parts of your script for testing and debugging purposes. The keywords program. Each identifier must be unique. Separate multiple parameters with commas. and functions in your script. A-Z). The first character of an identifier must be alphabetic (a-z.. such as end. InstallShield InstallScript Language Reference Guide 11 .. Identifiers Identifiers are the names that you create to denote constants. or an underscore. exit. Preprocessor statements—such as #define and #include—never end with a semicolon. variables. However. The following punctuation reminders apply to all sections of the script: • • • • • Most statements end with a semicolon (.. numeric (0-9). The function line that begins each function block receives no punctuation.

endif. Code Without White Space For example. SEVERE). nSpace = GetDiskSpace(szDrive). carriage returns) except in a string literal. SprintfBox(INFORMATION. // This is a line of sample code showing the // InstallScript function PlaceBitmap. "Disk Space: %s". Using White Space Like C and other programming languages. if (nResult < 0) then MessageBox("NumToStr failed. NUMBER nSpace. if necessary. nSpace). Block of Text One way to create a comment is to enclose a block of text between the character pairs /* and */. szDrive = DISK_DRIVE. the compiler returns an error. We recommend that you use white space to make your script easier to follow. svString). */ Line by Line The second way is to insert the characters // into a line. the following section of code is dense and difficult to decipher: #define DISK_DRIVE "C:\" STRING szDrive. You must write comments before or after these statements.". The compiler ignores everything to the right of the double slashes on that line only. InstallScript does not recognize white space (spaces and tabs. abort. nResult = NumToStr(svString. nResult. This method makes it easy to write a comment over multiple lines: /* This is a line of sample code that shows you * how to use the InstallScript function PlaceBitmap. "Info". Code With White Space Adding white space with indentation makes the same code much easier to read: 12 InstallShield InstallScript Language Reference Guide . Otherwise.Chapter 2: Setup Scripts Using White Space CAUTION You can begin comments anywhere in a script—with one exception: Comments cannot be placed on the same line as an #ifdef or #ifndef statement. svString.

In the syntax description for GetDir. szDrive = DISK_DRIVE. the syntax description of BatchDeleteEx shows that it takes two parameters: BatchDeleteEx ( szKey. could be a string variable or constant. GetDir ( szPath. iPointSize denotes an integer variable. for variable. nResult = NumToStr(svString. The second. SprintfBox(INFORMATION. svString). InstallShield InstallScript Language Reference Guide 13 . if (nResult < 0) then MessageBox("NumToStr failed. Hungarian notation is used for parameter names to indicate the type of data that may be passed in a parameter. the first parameter can be a string variable or constant. For example. lowercase prefixes to indicate the data type. Functions that require variable parameters generally return data to the caller in those parameters. In function syntax descriptions. while szFileName indicates a string variable. nResult. abort. svString. but the second parameter must be a variable. could be a number variable or constant. nSpace = GetDiskSpace(szDrive). "Info". Variable Parameters In those cases where a variable parameter is required.Chapter 2: Setup Scripts Hungarian Notation #define DISK_DRIVE "C:\" STRING NUMBER szDrive. nOptions ). For example. SEVERE). identified as szKey. the Language reference employs a special set of two-letter prefixes: • • The first letter indicates the data type. endif. The second character is the letter v. The first parameter. Hungarian Notation InstallShield help topics employ an extended form of Hungarian notation—a naming convention that uses short.". nSpace. Hungarian notation is used in example scripts to indicate the data type of all variables. identified as nOptions. svDir ). nSpace). "Disk Space: %s".

or variable. Integer constant. it is strongly recommended that you use Hungarian notation when you create variable names in your own scripts. Number variable only. String constant. literal. Constants and literals not allowed. Number constant. Handle variable. Constant or literal. or variable. literal. literal. Not used. Constants and literals not allowed. or variable. String variable only.Chapter 2: Setup Scripts Hungarian Notation Prefix Table Because Hungarian notation makes it easy to recognize a variable's type. Not used. or variable. Constants and literals not allowed. or variable. The table below describes each of the prefixes used in InstallShield. List variable. Long integer variable only. literal. literal. or variable. Constants and literals not allowed. Table 2-1: Prefix Table Prefix b bv c const h i l lv list n nv p pstruct s sz sv struct Data Type Boolean (BOOL) Boolean (BOOL) Character (CHAR) Constant Handle (HWND) Integer (INT) Long integer (LONG) Long integer (LONG) List (LIST) Number (NUMBER) Number (NUMBER) Pointer (POINTER) Pointer to a defined structure type Short integer (SHORT) String (STRING) String (STRING) Defined structure type When Used in Function Syntax Boolean constant. Boolean variable only. literal. Long integer constant. or variable. Variables not allowed. literal. Short integer constant. Pointer variable. Character constant. 14 InstallShield InstallScript Language Reference Guide .

This is line two. Inserts a carriage return only. you can insert \n in the szQuestion argument of AskText to manually format the string.” is displayed or printed as shown below: This is line one.Chapter 2: Setup Scripts Escape Sequences Escape Sequences An escape sequence is a set of characters used to insert into a string certain special characters—such as tabs. which is a sequence of characters that is used with functions such as Sprintf and SprintBox to indicate how the value stored in a variable should be displayed on screen. Inserts a double quotation mark in the string. that is. which inserts a newline character into a string. it is used as the first character of a format specifier. The newline escape sequence is case sensitive. Inserting a Newline Character Into a String A commonly used escape sequence is \n.\nThis is line two. Inserts a single quotation mark in the string. However. \N does not insert a newline character. They begin with a backslash. the string “This is line one. and the backslash is followed by one or more characters that have special meaning. InstallShield InstallScript Language Reference Guide 15 . carriage returns and quotation marks. The string “This is line one. NOTE • • • The \n escape sequence works only in multiline static text fields.” is displayed or printed on a single line. Inserts a tab character. For example. You can also use \n with MessageBox and SprintfBox. Supported Escape Sequences The following table lists the escape sequences that are supported by InstallScript: Table 2-2: Supported Escape Sequences Escape Sequence \n

###BOT_TEXT###quot; \r \t Performs the Following Action Inserts a carriage return and a line feed. called an escape character. Does not insert a line feed. Escape sequences in InstallScript are very much like those in C. If the backslash is followed by characters other than those used in an escape sequence. the backslash is ignored. The percent sign (%) also has a special function in InstallScript. This is line two.

to create the double backslash at the start of the path. 16 InstallShield InstallScript Language Reference Guide .S. 'I win. For example. either use the

Related Interests

escape sequence or open the string literal with double quotation marks: //These two statements will both yield embedded single quotation marks szQuote1 = 'Who said.'".) key on the standard U.txt" Embedding Quotation Marks You can insert double quotation marks as part of a string literal using one of two methods. "I quit.

Related Interests

Nice guys finish last

Related Interests

?'. keyboard. the path \MyServer\Public\Readme. ###BOT_TEXT###quot;Quitters never win###BOT_TEXT###quot;?". such as this help files uses outside of example scripts.txt must be specified as follows: "\\MyServer\Public\Readme. you must use two backslash escape sequences (that is. szQuote2 = 'The same guy who said. Do not use open or closed typographer's quotation marks (“”). If you begin the string literal with double quotation marks. szQuote2 = "The same guy who said. Specifying a Universal Naming Convention Path To specify a Universal Naming Convention (UNC) path in an InstallScript string. To embed a single quotation mark. however. You can. you must use the ###BOT_TEXT###quot; escape character to embed double quotation marks.Chapter 2: Setup Scripts Embedding Quotation Marks Table 2-2: Supported Escape Sequences (cont. "'. four backslashes—\\). Indicates an ASCII character—not an integer—in hexadecimal notation.) Escape Sequence \ooo \xhh \ Performs the Following Action Indicates an ASCII character—not an integer—in octal notation. NOTE Your setup scripts must use the standard quotation marks (" and ') found to the right of the semicolon (. begin the literal with a single quotation mark and then type the double quotation mark: //These two statements will both yield embedded double quotation marks szQuote1 = "Who said. Inserts a backslash.

the value of svString is displayed in a message box. The type field. szFormat. you must insert two percent signs in the string assigned to svFormat. NUMBER nNumber. The initial character % and the type field are both required. which is assigned to svFormat. SprintfBox(INFORMATION. NOTE To print a percent sign.. an identifying label is displayed to the left of a number variable: nNumber = 100. the following format specification string displays “nNumber = 100%”: InstallShield InstallScript Language Reference Guide 17 . In the following example. nNumber = 100. szFormat. szFormat = "%s". szTitle. The simplest format specification contains only the percent sign and a type character. szFormat. SprintfBox(INFORMATION. nNumber). The value assigned to svFormat may contain literal characters (including escape sequences) that are to be displayed along with the value of a variable. The format specifier %s. szString. STRING szTitle. szTitle. Items enclosed within brackets are optional. STRING szTitle. In the following example. szString). szFormat = "nNumber = %d. a string. indicates to SprintfBox that the value of svString should be displayed as a string of characters. szTitle = "Demonstrate format specifiers".precision] type Each field of a format specification is a single character or number that represents a particular format option. szTitle = "Demonstrate format specifiers". for example %s. szFormat.Chapter 2: Setup Scripts Format Specifiers Format Specifiers Format specifiers are used with the functions Sprintf and SprintfBox to control the display of values that are stored in variables.". Format specifications follow the format shown below: % [-] [#] [0] [width] [.". szString = "This is a string. or a number. A format specifier begins with a percent sign (%) and is followed by at least one or two characters. determines whether Sprintf or SprintfBox interprets the associated argument as a character. Assuming that the number to be printed is 100. for example.

If the number of characters in the output value is greater than the width specified. the output value is right aligned and padded on the left. # 0 width precision type Each format specifier has a matching variable. but not both at the same time. the value is never truncated. When two format specifier letter combinations are shown. or a number. subject to the value of the precision field. Pads the output value with zeros to fill the field width. the value is not truncated. a string.) appears without a number following it. If the number of digits in the argument is less than the precision value you enter. the output value is aligned left and padded on the right to the width of the field with blanks or zeros. Format the corresponding argument as a character. with the first variable matching the first format specifier in the string. If you omit this field. For strings. and so 18 InstallShield InstallScript Language Reference Guide . ld.Chapter 2: Setup Scripts Format Specifiers svFormat = "nNumber = %d%%. s—Formats a string (type STRING). Use this symbol to prefix hexadecimal values with 0x (lowercase) or 0X (uppercase). li—Formats a single signed decimal integer of type LONG. d. In this field you must enter one of the following characters: • • • • • c—Formats a single character of type CHAR. the second variable matching the second format specifier in the string. or if you omit the width field." Table 2-3: Format Specifier Fields Field - Meaning If you include a hyphen after the percent character. convert the maximum number of characters. every character of the value is displayed. This is a required field. the precision is set to 1. Type the width field as a non-negative integer. If you omit this field. the output value on the left is padded with zeros. When the number of digits exceeds the precision value. If you enter a precision value of zero or omit it entirely. the output value is padded with blanks. Enter the minimum number of digits you want in this field. The variables are listed from left to right after the string. you can use one or the other. i—Formats a single integer of type INT or of type NUMBER. lx. The Sprintf function ignores a character with a numeric value of zero. When you enter a width specification. or if the period (. lX—Formats a single unsigned hexadecimal integer of type LONG. Enter the minimum number of characters you want to place in this field.

Reserved Words Reserved words and characters have special meaning in InstallScript and cannot be used except for their intended purposes. InstallScript has the following classes of reserved words: • • • • • • Functions Language Keywords Predefined Constants System Variables Event Handlers Predefined Script Variables InstallShield InstallScript Language Reference Guide 19 . At run time.Chapter 2: Setup Scripts Reserved Words on. InstallShield inserts each variable's contents into the string at the location of its matching format specifier.

Chapter 2: Setup Scripts Reserved Words 20 InstallShield InstallScript Language Reference Guide .

the setup terminates.3 LANGUAGE KEYWORDS Language keywords are words InstallScript uses as commands in the script. Variables of this type should not be used to store any other values. Language keywords are interpreted by the InstallScript compiler to perform some action. InstallShield InstallScript Language Reference Guide 21 . The abort statement does not call a rollback if initiated after the OnFirstUIAfter event. Normally. The exit statement aborts the installation. only the value of zero is evaluated as FALSE. or are considered part of a statement. InstallScript evaluates non-zero values as TRUE. You cannot use these following keywords for any reason other than their predefined purpose (for example. these keywords cannot be used as variable names). The abort statement is also encountered in the InstallShield default exit handler (OnCanceling) when the end user exits the setup program before it has completed by pressing the Esc key or the Cancel button of an InstallScript dialog box. abort When the script encounters an abort statement. the value of one is used to indicate TRUE. NOTE • • The abort statement exits the installation and runs the uninstaller in silent mode to clean up the aborted installation. Like C++. but does not remove anything from the target system. BOOL Boolean data: either TRUE (1) or FALSE (0).

for. If your script includes conditional expressions that might cause it to exit before the installation has completed. NOTE The for statement itself is not terminated with a semicolon. long ). For example: prototype cdecl POINTER Msvcrt.memcpy( byref string. 22 InstallShield InstallScript Language Reference Guide . pointer. the setup engine always used the stdcall convention but would sometimes overlook an inconsistent DLL convention. An example is shown below: export prototype NewFeature1_Installing(). you should use abort instead of exit.Chapter 3: Language Keywords cdecl cdecl PROJECT This information applies to InstallScript projects. a semicolon is required after the endfor statement.. Most Windows API functions use the stdcall (WINAPI) calling convention. Consult Microsoft documentation for more information about calling conventions. It begins with the keyword for and an expression that specifies the number of times statements within the for structure are to be executed. The for structure ends with the keyword endfor. In previous versions of InstallShield Professional.endfor The for statement is designed to execute one or more statements a fixed number of times.. The cdecl keyword is used when declaring an external DLL function that uses the cdecl calling convention. external The keyword external is reserved and may not be used. Each setup script contains—at most—one exit statement. the setup process terminates. exit When the setup program encounters an exit statement in the script it is executing. export The prototype of any function that is called directly by the setup engine must be marked as export. however.

Because this value is outside the specified range.". This time. iCount = 20. a message box is displayed three times. iCount = 30. INFORMATION). on the second pass. INFORMATION). for iCount = 10 to 100 step 10 MessageBox ("This appears ten times. for j = 20 downto 10 step 5 MessageBox ("This appears three times. In the example below. on the third pass. On the first pass. iCount = 10. The first time the loop is entered.endfor In the following example. Counting Down from a Higher Number to a Lower Number You can count down from a higher number to a lower number by using the keyword downto in place of the keyword to. endfor. the message box is displayed.". iCount is set to 1. its value becomes 11.. j is set to 20. Because downto specifies that the controlling variable be decremented and step 5 sets a decrement of 5 per loop. step increases the value of iCount by 10 each time loop is executed. In the following example. On the first pass. InstallShield InstallScript Language Reference Guide 23 . INFORMATION). the for statement ends.. Adjusting the Increment The default increment in a for statement is one (1). The third time. the goto statement causes execution to continue with the AskText statement. but you can use the keyword step to adjust the increment. Because 1 is in the specified range (1 to 10). endfor. Then iCount is incremented by 1 and the for statement is resolved again. goto The goto keyword is used to branch directly to the statement immediately following a specified label.". endfor. In the following code fragment. j is equal to 15 the second time the loop is entered. the function MessageBox is called 10 times. iCount = 2 (still in the specified range) and the message box is displayed a second time. NOTE You cannot define a label inside a for statement. When iCount is incremented after the tenth pass. j is equal to 10. for iCount = 1 to 10 MessageBox ("This appears ten times. and so on.Chapter 3: Language Keywords goto Using for.

An if statement consists of the keyword if. as shown below: if (condition) then // statements to be executed if condition is true endif. SEVERE). A function that returns an integer result. variable or literal. The condition can be one of the following: • • • A Boolean or integer constant. A goto statement in the main program must specify a label that has been declared in the main program. An expression that produces a Boolean or integer result. InstallScript provides the following if statement structures: • • • • if Structure with goto if-then Structure if-then-else Structure Nested if-then-else Structure 24 InstallShield InstallScript Language Reference Guide . endif. TIP Many InstallScript functions return a negative value when they fail. the keyword then. and the keyword endif followed by a semicolon. if Use an if statement when you want your script to choose between two or more options. A goto statement in a function must specify a label that has been declared in that function. When using the result of InstallScript functions as the condition in an if statement. goto Name. test for failure by using a statement like the one below: if (FunctionA (ParameterOne) < 0) then // Statements to handle the failure else // Statements when the function succeeds endif.".Chapter 3: Language Keywords if Name: AskText("Company name:". a condition to be evaluated. The parentheses around the condition are optional. if (szSrc = "") then MessageBox("Please enter the company name. szSrc). "". but highly recommended for readability.

TIP You may find that your if statement is easier to read when you place the expression to be evaluated in parentheses. In the following example. For example: if (szStringA = "exit") then AskYesNo ( "Are you sure you want to exit?". but the parentheses are optional in InstallScript. endif. If the expression is not true. the result is FALSE (0) and the entire statement is ignored. The keyword endif is not used. InstallShield executes the MessageBox function: if (nDialog = DLG_ERR) then MessageBox ("Error has occurred". InstallShield InstallScript Language Reference Guide 25 . InstallShield ignores the entire statement. Name: AskText("Company name:". WARNING). the user will be prompted to enter a company name as long as szSrc is a null string (“”). This special structure is has the following features: • • • The condition must be followed by a goto statement. If szStringA contains anything else. The sample code below compares the values of the variable nDialog and the constant DLG_ERR. endif. the test evaluates to TRUE (1) and the AskYesNo function is called. if (szSrc = "") goto Name.Chapter 3: Language Keywords if • elseif Structure if Structure with goto InstallScript supports a special form of the if statement that can be used only with goto statements: if condition goto labelname. szSrc). if-then Structure The simplest if statement evaluates an expression and performs a specified action if the expression is true. If szStringA equals "exit". The keyword then is not used. "". NO ). If they are equivalent.

endif." the result is FALSE (0). AskYesNo is called. the execution proceeds to the label UserErrorHandler.." the test evaluates to TRUE (1). and the AskYesNo function is called. ". If the value of szStringA is "exit". else if (third condition) then // statements to be executed if first condition is // false and third condition is true else // statements to be executed if first condition is // false and third condition is false endif.. In the following example. INFORMATION ). if szStringA equals "exit. the program displays a message box. Nested if-then-else Structure You can create nested if statements. if the value of szStringA is "exit". and the MessageBox function is called following the else statement. If szStringA is not equal to "exit. as shown below: if (condition) then // statements to be executed if condition is true else // statements to be executed if condition is false endif. 26 InstallShield InstallScript Language Reference Guide . if szStringA is not equal to either of those values. NO ). This option is indicated with the keyword else. endif. else MessageBox ("Please wait. in which one if statement is embedded in another: if (first condition) then if (second condition) then // statements to be executed if first and // second conditions are true else // statements to be executed if first is true but // second condition is false endif. if szStringA = "exit" then AskYesNo ("Are you sure you want to exit?". In the example below.Chapter 3: Language Keywords if if-then-else Structure An if statement can also specify one or more statements to be executed if the condition is false.

INFORMATION ). endif.. endif.. In the following example.. NO ). InstallShield InstallScript Language Reference Guide 27 . NOTE You cannot define a label inside an if statement. elseif szStringA = "continue" then MessageBox ("Please wait.” If szStringA is equal to “continue. elseif szStringA = "reboot" then goto StartHere. else if szStringA = "continue" then MessageBox ("Please wait. else UserErrorHandler. if szStringA = "exit" then AskYesNo ("Are you sure you want to exit?". If szStringA is not equal to “exit. NO). elseif Structure InstallScript provides the elseif statement to create if structures in which the else branch of one if statement leads to another if statement: if (first condition) then // statements to be executed if first condition // is true elseif (second condition) then // statements to be executed if first condition // is false and second condition is true elseif (third condition) then // statements to be executed if first and second // conditions are false and third condition is // true endif.Chapter 3: Language Keywords if if szStringA = "exit" then AskYesNo ("Are you sure you want to exit?". if szStringA equals “exit.".” the program moves to the next elseif.". If szStringA is not equal to “continue. endif. and so on.” the result is TRUE and MessageBox is called. INFORMATION)..” AskYesNo is called.” the program continues to the elseif statement to test if szStringA is equal to “continue.

The method keyword is used to declare a method in an object script with the following syntax: method <return variable type> <method name> ( <argument variable type(s)> ). property() PROJECT This information applies to InstallScript projects. property(put) <return variable type> <property name> ( <argument variable type(s)> ).Chapter 3: Language Keywords method method PROJECT This information applies to InstallScript projects. Write only Read/write For example: property(get. The property() keyword is used to declare a property and its get and/or put procedures in an object script with the following syntax: Table 3-1: Property() Keyword Declarations Access Read only Declaration property(get) <return variable type> <property name> ( <argument variable type(s)> ).put) <return variable type> <property name> ( <argument variable type(s)> ). NUMBER ). For example: method STRING MyMethod ( STRING. If you add a method to the object project by using the Add New Method dialog box.put) STRING MyProperty ( NUMBER ). a method declaration is automatically placed in the object script. property(get. 28 InstallShield InstallScript Language Reference Guide .

3. It also is very similar to the InstallScript while statement. repeat MessageBox("Count is less than 5". Add the operation that changes the test variable (for example. InstallShield InstallScript Language Reference Guide 29 . nCount = nCount + 1. End the loop with an until statement containing the conditional test in parentheses.. program flow returns to the point at which the function was called. until (nCount = 5)..Chapter 3: Language Keywords repeat. 4. INFORMATION). There are two main differences between repeat and while in InstallScript: • • The repeat statement must loop at least once. A repeat statement terminates when the expression evaluates as true. 2. 5. Type repeat on its own line with no punctuation. or nCount = SomeVariable).. nCount = nCount + 1. TASK To create a repeat loop: 1...until If you add a property to the object project by using the Add New Property dialog box. A while statement might not loop at all.while loop in the C language.. repeat. The following example demonstrates repeat loop syntax: nCount = 1. Build the operation(s) that you want repeated. When a return statement is encountered.until The repeat statement is analogous to the do. Set the variable you will be using in the conditional test as you would for a while loop. a property declaration is automatically placed in the object script. NOTE You cannot define a label inside of the repeat statement. A while statement terminates when the expression evaluates as false. return You can use the return statement to return a value from a user-defined function (if the function prototype does not specify a return type of void).

or a value less than zero (< 0). return nNumber. indicating the success of the function. You can assign a number to the return value by using a return statement above the end statement in the function block.Installer"). indicating failure. begin // create the object set oMSI = CreateObject("WindowsInstaller. // . // free the object set oMSI = NOTHING. INFORMATION). // use the object (display MSI version on user's system) MessageBox("Your MSI version is: " + oMSI. The return value of most built-in functions will be either 0 (zero). 30 InstallShield InstallScript Language Reference Guide . This attribute allows you to return the value of a local variable to the caller. . as shown below: return -1. NOTE You can use the keywords try–catch–endcatch for more control over exception handling for COM objects. .Version. end. even though the local variable itself is destroyed: function MyFunction(ParamOne.Chapter 3: Language Keywords set When used to return from a call to a user-defined function. For example: function OnBegin( ) OBJECT oMSI. ParamTwo) NUMBER nNumber. end. begin nNumber = (ParamOne + ParamTwo). the return statement can return a specified value to the caller. set The set keyword must precede the assignment of an OBJECT variable to a reference returned by the CreateObject function. end.

function result. logical expression. followed by a colon (:). delimit them with commas. Terminate each statement with a semicolon. After all case statements have been specified. to control the program when the expression does not match any of the stated cases. If no calling convention is specified. arithmetic expression.). followed by the expression to be evaluated.. For example: prototype stdcall POINTER kernel32. Note that only constants can be specified here. 3.Chapter 3: Language Keywords stdcall stdcall PROJECT This information applies to InstallScript projects. For each option. switch. stdcall is assumed. variable. If more than one constant is specified. use the keyword default. The expression—which can be a constant. follow the colon with the statement or statements to be executed for that option. control passes to a default statement. 5. Consult Microsoft documentation for more information about calling conventions. Do not punctuate this line. InstallShield InstallScript Language Reference Guide 31 . if one has been specified. Type the keyword switch. byref string). For each case. Specifying a variable name. type the keyword case and one or more constants followed by a colon..endswitch The switch statement is similar to the elseif Structure statement. depending on the value of an expression. or function result—must be enclosed within parentheses.The stdcall keyword is used when declaring an external DLL function that uses the stdcall calling convention.lstrcpy( byref string. string table reference. 2. followed by a semicolon (. Most Windows API functions use the stdcall (WINAPI) calling convention. Creating Switch Statements TASK To create a switch statement: 1. or other type of expression after the keyword case results in an error. The switch statement evaluates the expression and then branches to the case statement whose constant value matches the result of the expression. Close the block with the keyword endswitch. If no match is found among the case statements. Use the switch statement to execute one of several different sections of code. 4.

default: szMsg = "Error".Chapter 3: Language Keywords try. GetSystemInfo (VIDEO. case IS_EGA: szMsg = "EGA resolution. case IS_UVGA: szMsg = "Greater than 1024 x 768 resolution.". endswitch. svResult). case IS_XVGA: szMsg = "XVGA (1024 x 768) resolution.". switch (nvResult) case IS_UNKNOWN: szMsg = "The user's video is unknown. see Exception Handling. and endcatch Example Script The following script segment displays the current video resolution of the computer on which it is executed: STRING szMsg. For more information on exception handling. NUMBER nvResult. MessageBox (szMsg. 32 InstallShield InstallScript Language Reference Guide . nvResult. By using the case statements as flags.". catch. and endcatch are used for exception handling. The keywords try. case IS_VGA: szMsg = "VGA resolution.". catch. INFORMATION). A switch block can be quite useful inside of a while loop. catch. After InstallShield executes a case block. it executes the next statement after the endswitch. svResult. and endcatch PROJECT This information applies to InstallScript projects.". try.". you can create a loop with optional exit points. case IS_SVGA: szMsg = "Super VGA (800 x 600) resolution. NOTE Only one case block is executed each time a switch statement is executed.

as long as a particular condition is true. begin // perform operations. nCount is equal to 5. Build the operation(s) that you want repeated. the message box is displayed and nCount is incremented by 1. the loop is not performed. followed by the conditional test in parentheses. or nCount = SomeVariable). Add the operation that changes the test variable (for example. After the fourth pass through the loop.". while. 5. 3. in the sense that a variable cannot be declared as type void. Set the variable you are using as the condition to an initial state. Void is only used in function prototypes to indicate that the function does not return a value. but // do not return a value end. Because nCount is assigned an initial value of 1. Do not punctuate this line. as in the following: prototype void Subroutine(int). INFORMATION). the while statement evaluates TRUE the first time it is executed. nCount = nCount + 1.Chapter 3: Language Keywords void void Void is not a true data type. while (nCount < 5) MessageBox ("This is still true. nCount = nCount + 1. InstallShield InstallScript Language Reference Guide 33 . the message box is displayed four times. If the condition is not true when the statement is first executed.endwhile Use the while statement when you want to execute one or more statements repeatedly. TASK To create a while loop: 1. function void Subroutine(int). the while statement evaluates FALSE and the program continues executing with the statement after endwhile. End the loop by typing endwhile. Type the keyword while.. nCount = 1.. 4. followed by a semicolon. In the following example. endwhile. 2.

/* This script illustrates a nested while loop. Nested while Example NOTE To call this function in a Basic MSI setup. OpenFile(nFileHandle. You must end each while block with endwhile.endwhile You cannot define a label within a while block. 34 InstallShield InstallScript Language Reference Guide . filename.count.h" export prototype ExFn_Nested while(HWND). svLine. // The following opens the file for editing. szPath. // To get the name of the file in the fully specified path StrGetTokens(listID. nest while statements in InstallScript.. ListCurrentString(listID. */ #define SOURCEDIR "c:\example". execute the custom action in a sequence or as the result of a dialog's control event. you must first create a custom action for the entrypoint function. OpenFileMode(FILE_MODE_NORMAL). svTarget = SOURCEDIR.. listID = ListCreate (STRINGLIST). szFileName = filename. nOp. STRING svTarget.h for built-in InstallScript function prototypes. szPath = svTarget. begin count = 0.txt". szFileName. szPath. szFileName). and then build the release. You can. nOp = RESET.filename).nFileHandle. svResult.svResult.Chapter 3: Language Keywords while. however. NUMBER nResult. nOp) = 0. * It searches for the specified type of files and * shows the number of lines in each file. // Set the file mode to normal. while FindAllFiles (svTarget. // Include Ifx. #include "Ifx."\"). "*. svResult. function ExFn_Nested while(hMSI) LIST listID.

Iteration is performed with loop statements that execute one or more statements repeatedly. end. endwhile. "*. endif. count = 0. svResult. endwhile. if (FindAllFiles (svTarget. nOp) < 0) then abort.count). svLine) = 0) count = count + 1. To control the flow of execution within scripts. SprintfBox(INFORMATION. InstallScript processes statements within a function block sequentially.filename. // The following closes the file CloseFile(nFileHandle). The linear flow of execution within a function block can be controlled with conditional statements that perform branching and iteration.Chapter 3: Language Keywords Flow Control /*------------------------------------------------------------------*\ * * The following retrieves each line of text from the open file and increments * a count to find the number of lines.txt". Flow Control Like most programming languages. InstallShield provides the following keywords: InstallShield InstallScript Language Reference Guide 35 . Branching is most commonly performed with an if statement that directs execution down one path or another. "The No."The Total lines in the file". * \*------------------------------------------------------------------*/ while (GetLine (nFileHandle. starting with the first statement and ending with the last. // Continue searching files where last file was left off nOp = CONTINUE. of lines in the file %s is %d". either for a set number of times or as long as a specified condition is met.

then..Chapter 3: Language Keywords Flow Control • • • • • • • • • abort exit for..until return switch.endif repeat.endwhile 36 InstallShield InstallScript Language Reference Guide ..endfor goto if.endswitch while...else...

4 PREDEFINED CONSTANTS A predefined constant is an identifier reserved by InstallScript to represent a specific literal value. InstallScript uses predefined constants to represent certain data values that are passed to and returned by built-in functions. However. By using these predefined constants rather than literal values. which displays the value of the predefined constant FEATURE_FIELD_SELECTED: SprintfBox (INFORMATION. as shown in the example below. you can determine the value of a predefined constant by calling SprintfBox. Macrovision strongly recommends that you use predefined constants wherever indicated for a function. You cannot change the value InstallShield assigns to a predefined constant. Used With • • EzBatchAddString EzBatchAddPath InstallShield InstallScript Language Reference Guide 37 . Following is a list of the predefined constants used by InstallScript. AFTER AFTER is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Although you can use a literal value in place of a predefined constant. FEATURE_FIELD_SELECTED). you can improve the readability of your setup scripts. "%d". You cannot change the value of a predefined constant. "".

You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. 38 InstallShield InstallScript Language Reference Guide . Used With • CtrlSetFont APPEND APPEND is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • DeleteDir ALLCONTROLS ALLCONTROLS is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant.Chapter 4: Predefined Constants ALLCONTENTS • • • • • • • • • • • • ConfigAdd ConfigMove ListAddItem ListAddString PathAdd PathMove BatchAdd PathMove BatchMoveEx FileInsertLine EzConfigAddDriver EzConfigAddString ALLCONTENTS ALLCONTENTS is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.

InstallShield InstallScript Language Reference Guide 39 . Used With • AskDestPath ASKOPTIONS ASKOPTIONS is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. Used With • • AskPath PlaceWindow ASKTEXT ASKTEXT is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.Chapter 4: Predefined Constants ASKDESTPATH Used With • FileInsertLine ASKDESTPATH ASKDESTPATH is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • • AskOptions PlaceWindow ASKPATH ASKPATH is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant.

Used With • • • • • • • • • • • • • • • • • • • • • • • • • SdWelcome FeatureDialog AskOptions AskText AskPath SdBitmap SdAskOptions SdLicense SdAskOptionsList SdSelectFolder SdFeatureDialog SdStartCopy SdFeatureDialogAdv AskDestPath SdFeatureMult SdSetupType SetupType SdAskDestPath SdFeatureDialog2 SdRegisterUserEx SdShowInfoList Welcome SelectFolder SdDisplayTopics SdOptionsButtons 40 InstallShield InstallScript Language Reference Guide .Chapter 4: Predefined Constants BACK Used With • • AskText PlaceWindow BACK BACK is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant.

You cannot change the value of a predefined constant.Chapter 4: Predefined Constants BACKBUTTON • • • • • • SdRegisterUser SdShowAnyDialog SdShowDlgEdit1 SdShowDlgEdit2 SdShowDlgEdit3 SdShowFileMods BACKBUTTON BACKBUTTON is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • • • • • PlaceWindow SetColor Enable SizeWindow Disable BACKGROUNDCAPTION BACKGROUNDCAPTION is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. Used With • • • Disable Enable Is BACKGROUND BACKGROUND is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. InstallShield InstallScript Language Reference Guide 41 . You cannot change the value of a predefined constant.

You cannot change the value of a predefined constant. BASEMEMORY is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • • • • • • • • • • • • • PathMove FileInsertLine EzBatchAddPath EzBatchAddString BatchAdd BatchMoveEx EzConfigAddDriver EzConfigAddString ConfigAdd ConfigMove ListAddItem ListAddString PathAdd 42 InstallShield InstallScript Language Reference Guide . You cannot change the value of a predefined constant. Used With • GetSystemInfo BEFORE BEFORE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.Chapter 4: Predefined Constants BASEMEMORY Used With • SetTitle BASEMEMORY PROJECT This information applies to InstallScript projects.

Used With • SelectDirEx InstallShield InstallScript Language Reference Guide 43 . Used With • SelectDirEx BIF_BROWSEFORPRINTER PROJECT This information applies to InstallScript projects. BIF_DONTGOBELOWDOMAIN is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. BIF_BROWSEFORPRINTER is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant.Chapter 4: Predefined Constants BIF_BROWSEFORCOMPUTER BIF_BROWSEFORCOMPUTER PROJECT This information applies to InstallScript projects. Used With • SelectDirEx BIF_DONTGOBELOWDOMAIN PROJECT This information applies to InstallScript projects. You cannot change the value of a predefined constant. BIF_BROWSEFORCOMPUTER is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.

You cannot change the value of a predefined constant. BIF_EDITBOX is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. BIF_RETURNONLYFSDIRS is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. Used With • SelectDirEx BIF_RETURNONLYFSDIRS PROJECT This information applies to InstallScript projects. Used With • SelectDirEx BIF_RETURNFSANCESTORS PROJECT This information applies to InstallScript projects. You cannot change the value of a predefined constant. BIF_RETURNFSANCESTORS is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.Chapter 4: Predefined Constants BIF_EDITBOX BIF_EDITBOX PROJECT This information applies to InstallScript projects. Used With • SelectDirEx 44 InstallShield InstallScript Language Reference Guide .

Used With • SelectDirEx BILLBOARD BILLBOARD is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. Used With • • Disable PlaceWindow BITMAPICON BITMAPICON is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.Chapter 4: Predefined Constants BIF_STATUSTEXT BIF_STATUSTEXT PROJECT This information applies to InstallScript projects. Used With • PlaceBitmap BK_BLUE BK_BLUE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. BIF_STATUSTEXT is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Used With • SetColor InstallShield InstallScript Language Reference Guide 45 .

Used With • SetColor BK_MAGENTA BK_MAGENTA is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Used With • SetColor BK_ORANGE BK_ORANGE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • SetColor BK_PINK BK_PINK is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. Used With • SetColor 46 InstallShield InstallScript Language Reference Guide .Chapter 4: Predefined Constants BK_GREEN BK_GREEN BK_GREEN is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant.

Chapter 4: Predefined Constants BK_RED BK_RED BK_RED is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Used With • SetColor BK_SOLIDBLUE BK_SOLIDBLUE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • SetColor BK_SMOOTH BK_SMOOTH is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • SetColor BK_SOLIDBLACK BK_SOLIDBLACK is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. Used With • SetColor InstallShield InstallScript Language Reference Guide 47 .

Used With • SetColor 48 InstallShield InstallScript Language Reference Guide . Used With • SetColor BK_SOLIDPINK BK_SOLIDPINK is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant.Chapter 4: Predefined Constants BK_SOLIDGREEN BK_SOLIDGREEN BK_SOLIDGREEN is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • SetColor BK_SOLIDMAGENTA BK_SOLIDMAGENTA is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Used With • SetColor BK_SOLIDORANGE BK_SOLIDORANGE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant.

Used With • SetColor BK_SOLIDWHITE BK_SOLIDWHITE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.Chapter 4: Predefined Constants BK_SOLIDRED BK_SOLIDRED BK_SOLIDRED is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Used With • SetColor BK_YELLOW BK_YELLOW is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. Used With • SetColor BK_SOLIDYELLOW BK_SOLIDYELLOW is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. Used With • SetColor InstallShield InstallScript Language Reference Guide 49 .

You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Used With • • CtrlSetState CtrlGetState 50 InstallShield InstallScript Language Reference Guide .Chapter 4: Predefined Constants BLACK BLACK BLACK is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • GetSystemInfo BUTTON_CHECKED BUTTON_CHECKED is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • SetTitle BLUE BLUE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. Used With • • SetColor SetTitle BOOTUPDRIVE BOOTUPDRIVE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.

You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Used With • SelectDir CANCELBUTTON CANCELBUTTON is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • • CtrlSetState CtrlGetState BYTES BYTES is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • • • Disable Enable Is InstallShield InstallScript Language Reference Guide 51 . You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Used With • ConvertSizeToUnits CANCEL CANCEL is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.Chapter 4: Predefined Constants BUTTON_UNCHECKED BUTTON_UNCHECKED BUTTON_UNCHECKED is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.

You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Used With • • PlaceWindow PlaceBitmap CHECKBOX CHECKBOX is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.Chapter 4: Predefined Constants CDROM CDROM CDROM is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • GetValidDrivesList CENTERED CENTERED is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. Used With • DialogSetInfo 52 InstallShield InstallScript Language Reference Guide . You cannot change the value of a predefined constant. Used With • GetSystemInfo CDROM_DRIVE CDROM_DRIVE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.

You cannot change the value of a predefined constant.Chapter 4: Predefined Constants CHECKBOX95 CHECKBOX95 CHECKBOX95 is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • DialogSetInfo CHECKLINE CHECKLINE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Used With • GetSystemInfo InstallShield InstallScript Language Reference Guide 53 . Used With • DialogSetInfo COLORS COLORS is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. Used With • DialogSetInfo CHECKMARK CHECKMARK is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.

You cannot change the value of a predefined constant. Used With • ProgDefGroupType COMPACT COMPACT is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • • • • • BatchMoveEx ConfigFind EzBatchAddString BatchAdd BatchDeleteEx COMMON COMMON is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.Chapter 4: Predefined Constants COMMAND COMMAND COMMAND is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. 54 InstallShield InstallScript Language Reference Guide . You cannot change the value of a predefined constant. Used With • • SetupType SdSetupType COMPARE_DATE COMPARE_DATE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant.

You cannot change the value of a predefined constant. Used With • FileCompare COMP_NORMAL COMP_NORMAL is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. Used With • FileCompare COMPARE_SIZE COMPARE_SIZE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Used With • XCopyFile InstallShield InstallScript Language Reference Guide 55 . Used With • FileCompare COMPARE_VERSION COMPARE_VERSION is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.Chapter 4: Predefined Constants COMPARE_MD5_SIGNATURE Used With • FileCompare COMPARE_MD5_SIGNATURE COMPARE_MD5_SIGNATURE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.

Used With • • • • • FileGrep BatchFind FindFile ConfigFind PathFind 56 InstallShield InstallScript Language Reference Guide . You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Used With • XCopyFile CONTINUE CONTINUE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.Chapter 4: Predefined Constants COMP_UPDATE_DATE COMP_UPDATE_DATE COMP_UPDATE_DATE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. Used With • XCopyFile COMP_UPDATE_SAME COMP_UPDATE_SAME is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. Used With • XCopyFile COMP_UPDATE_VERSION COMP_UPDATE_VERSION is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.

You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant.Chapter 4: Predefined Constants COPY_ERR_CREATEDIR COPY_ERR_CREATEDIR COPY_ERR_CREATEDIR is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • • CopyFile XCopyFile COPY_ERR_NODISKSPACE COPY_ERR_NODISKSPACE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • • CopyFile XCopyFile COPY_ERR_MEMORY COPY_ERR_MEMORY is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • • CopyFile XCopyFile InstallShield InstallScript Language Reference Guide 57 . Used With • • CopyFile XCopyFile COPY_ERR_OPENINPUT COPY_ERR_OPENINPUT is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.

Used With • GetSystemInfo CURRENTROOTKEY CURRENTROOTKEY is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. Used With • • CopyFile XCopyFile COPY_ERR_TARGETREADONLY COPY_ERR_TARGETREADONLY is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant.Chapter 4: Predefined Constants COPY_ERR_OPENOUTPUT COPY_ERR_OPENOUTPUT COPY_ERR_OPENOUTPUT is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • • VarRestore VarSave 58 InstallShield InstallScript Language Reference Guide . You cannot change the value of a predefined constant. Used With • • CopyFile XCopyFile CPU CPU is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.

You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant.Chapter 4: Predefined Constants CUSTOM CUSTOM CUSTOM is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • • SetupType SdSetupType DATA_COMPONENT DATA_COMPONENT is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • • SilentReadData SilentWriteData DATA_LIST DATA_LIST is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • • SilentReadData SilentWriteData InstallShield InstallScript Language Reference Guide 59 . Used With • SilentWriteData DATA_NUMBER DATA_NUMBER is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.

. You cannot change the value of a predefined constant.. Used With • GetSystemInfo DEFAULT DEFAULT is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.Chapter 4: Predefined Constants DATA_STRING DATA_STRING DATA_STRING is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant.endswitch DEFWINDOWMODE DEFWINDOWMODE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. Used With • • SilentReadData SilentWriteData DATE DATE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • Enable 60 InstallShield InstallScript Language Reference Guide . You cannot change the value of a predefined constant. Used With • switch.

Used With • • Disable Enable DIFXAPI_ERROR DIFXAPI_ERROR is a predefined constant used to represent a value that is available for use with one or event handlers. You cannot change the value of a predefined constant.Chapter 4: Predefined Constants DELETE DELETE PROJECT This information applies to InstallScript projects. Used With • SERVICE_IS_PARAMS DELETE_EOF DELETE_EOF is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • FileDeleteLine DIALOGCACHE DIALOGCACHE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. DELETE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions or assigned to one or more system variables. Used With • OnDIFxLogCallback InstallShield InstallScript Language Reference Guide 61 . You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant.

Used With • OnDIFxLogCallback DIFXAPI_WARNING DIFXAPI_WARNING is a predefined constant used to represent a value that is available for use with one or more event handlers. You cannot change the value of a predefined constant. Used With • ParsePath 62 InstallShield InstallScript Language Reference Guide . You cannot change the value of a predefined constant. Used With • OnDIFxLogCallback DIRECTORY DIRECTORY is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant.Chapter 4: Predefined Constants DIFXAPI_INFO DIFXAPI_INFO DIFXAPI_INFO is a predefined constant used to represent a value that is available for use with one or more event handlers. Used With • OnDIFxLogCallback DIFXAPI_SUCCESS DIFXAPI_SUCCESS is a predefined constant used to represent a value that is available for use with one or more event handlers. You cannot change the value of a predefined constant.

Used With • • SdCustomerInformation SdCustomerInformationEx DISABLE_PERUSERBTN PROJECT This information applies to InstallScript projects. You cannot change the value of a predefined constant. DISABLE_PERUSERBTN is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. DISABLE_ALLUSERBTN is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. InstallShield InstallScript Language Reference Guide 63 . You cannot change the value of a predefined constant. Used With • Is DISABLE DISABLE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant.Chapter 4: Predefined Constants DIR_WRITEABLE DIR_WRITEABLE DIR_WRITEABLE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • Disable DISABLE_ALLUSERBTN PROJECT This information applies to InstallScript projects.

cab files by the media builder and is not displayed in the IDE. DISK1FEATURE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. DISK1FEATURE specifies the feature with the files needed for maintenance setups and uninstallation.Chapter 4: Predefined Constants DISK Used With • • SdCustomerInformation SdCustomerInformationEx DISK DISK is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • GetDiskInfo 64 InstallShield InstallScript Language Reference Guide .) Used With • • FeatureSelectItem FeatureIsItemSelected DISK_INFO_QUERY_ALL DISK_INFO_QUERY_ALL is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • ParsePath DISK1FEATURE PROJECT This information applies to InstallScript projects. (Note that this feature is automatically placed in your . You cannot change the value of a predefined constant. You cannot change the value of a predefined constant.

Used With • GetDiskInfo DISK_INFO_QUERY_DISK_FREE_SPACE DISK_INFO_QUERY_DISK_FREE_SPACE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. Used With • GetDiskInfo InstallShield InstallScript Language Reference Guide 65 . Used With • GetDiskInfo DISK_INFO_QUERY_DISK_TOTAL_SPACE DISK_INFO_QUERY_DISK_TOTAL_SPACE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Used With • GetDiskInfo DISK_INFO_QUERY_DRIVE_TYPE DISK_INFO_QUERY_DRIVE_TYPE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant.Chapter 4: Predefined Constants DISK_INFO_QUERY_BYTES_PER_CLUSTER DISK_INFO_QUERY_BYTES_PER_CLUSTER DISK_INFO_QUERY_BYTES_PER_CLUSTER is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.

Used With • GetSystemInfo DLG_ASK_OPTIONS DLG_ASK_OPTIONS is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • GetSystemInfo DISK_TOTALSPACE_EX DISK_TOTALSPACE_EX is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • SetDialogTitle DLG_ASK_PATH DLG_ASK_PATH is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Used With • SetDialogTitle 66 InstallShield InstallScript Language Reference Guide . You cannot change the value of a predefined constant.Chapter 4: Predefined Constants DISK_TOTALSPACE DISK_TOTALSPACE DISK_TOTALSPACE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant.

Used With • DefineDialog DLG_CLOSE DLG_CLOSE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant.Chapter 4: Predefined Constants DLG_ASK_TEXT DLG_ASK_TEXT DLG_ASK_TEXT is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. Used With • WaitOnDialog InstallShield InstallScript Language Reference Guide 67 . Used With • SetDialogTitle DLG_ASK_YESNO DLG_ASK_YESNO is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • SetDialogTitle DLG_CENTERED DLG_CENTERED is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant.

You cannot change the value of a predefined constant. Used With • SetDialogTitle 68 InstallShield InstallScript Language Reference Guide . Used With • CtrlDir DLG_DIR_DRIVE DLG_DIR_DRIVE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.Chapter 4: Predefined Constants DLG_DIR_DIRECTORY DLG_DIR_DIRECTORY DLG_DIR_DIRECTORY is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • CtrlDir DLG_ENTER_DISK DLG_ENTER_DISK is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • CtrlDir DLG_DIR_FILE DLG_DIR_FILE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant.

You cannot change the value of a predefined constant. Used With • • • • • WaitOnDialog EzDefineDialog ReleaseDialog CtrlGetState DefineDialog DLG_ERR_ALREADY_EXISTS DLG_ERR_ALREADY_EXISTS is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • • DefineDialog EzDefineDialog DLG_ERR_ENDDLG DLG_ERR_ENDDLG is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. InstallShield InstallScript Language Reference Guide 69 . Used With • ReleaseDialog DLG_INFO_ALTIMAGE DLG_INFO_ALTIMAGE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant.Chapter 4: Predefined Constants DLG_ERR DLG_ERR DLG_ERR is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant.

You cannot change the value of a predefined constant. Used With • WaitOnDialog 70 InstallShield InstallScript Language Reference Guide . You cannot change the value of a predefined constant.Chapter 4: Predefined Constants DLG_INFO_CHECKSELECTION Used With • DialogSetInfo DLG_INFO_CHECKSELECTION DLG_INFO_CHECKSELECTION is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. Used With • DialogSetInfo DLG_INFO_USEDECIMAL DLG_INFO_USEDECIMAL is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • DialogSetInfo DLG_INFO_KUNITS DLG_INFO_KUNITS is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. Used With • DialogSetInfo DLG_INIT DLG_INIT is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.

Used With • DefineDialog DLG_MSG_INFORMATION DLG_MSG_INFORMATION is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • SetDialogTitle DLG_MSG_SEVERE DLG_MSG_SEVERE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Used With • DefineDialog InstallShield InstallScript Language Reference Guide 71 . You cannot change the value of a predefined constant.Chapter 4: Predefined Constants DLG_MSG_ALL DLG_MSG_ALL DLG_MSG_ALL is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. Used With • SetDialogTitle DLG_MSG_STANDARD DLG_MSG_STANDARD is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.

You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Used With • DoInstall 72 InstallShield InstallScript Language Reference Guide .Chapter 4: Predefined Constants DLG_MSG_WARNING DLG_MSG_WARNING DLG_MSG_WARNING is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. Used With • SetDialogTitle DOINSTALL_OPTION_NOHIDEPROGRESS DOINSTALL_OPTION_NOHIDEPROGRESS is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • SetDialogTitle DLG_STATUS DLG_STATUS is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. Used With • SetDialogTitle DLG_USER_CAPTION DLG_USER_CAPTION is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.

You cannot change the value of a predefined constant. Used With • DoInstall DOINSTALL_OPTION_NOLANGSWITCH DOINSTALL_OPTION_NOLANGSWITCH is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.Chapter 4: Predefined Constants DOINSTALL_OPTION_NOHIDESPLASH DOINSTALL_OPTION_NOHIDESPLASH DOINSTALL_OPTION_NOHIDESPLASH is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • Is InstallShield InstallScript Language Reference Guide 73 . Used With • DoInstall DOINSTALL_OPTION_NOSETBATCHINSTALL DOINSTALL_OPTION_NOSETBATCHINSTALL is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Used With • DoInstall DOTNETFRAMEWORKINSTALLED DOTNETFRAMEWORKINSTALLED is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.

You cannot change the value of a predefined constant. Used With • GetDiskInfo DRIVE_FIXED DRIVE_FIXED is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. Used With • GetSystemInfo DRIVE_CDROM DRIVE_CDROM is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • GetDiskInfo DRIVE_NO_ROOT_DIR DRIVE_NO_ROOT_DIR is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Used With • GetDiskInfo 74 InstallShield InstallScript Language Reference Guide .Chapter 4: Predefined Constants DRIVE DRIVE DRIVE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.

Chapter 4: Predefined Constants DRIVE_RAMDISK DRIVE_RAMDISK DRIVE_RAMDISK is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • GetDiskInfo InstallShield InstallScript Language Reference Guide 75 . Used With • GetDiskInfo DRIVE_REMOVABLE DRIVE_REMOVABLE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • GetDiskInfo DRIVE_REMOTE DRIVE_REMOTE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. Used With • GetDiskInfo DRIVE_UNKNOWN DRIVE_UNKNOWN is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant.

You cannot change the value of a predefined constant. Used With • • • DIFxDriverPackageInstall DIFxDriverPackagePreinstall DIFxDriverPackageUninstall DRIVER_PACKAGE_LEGACY_MODE DRIVER_PACKAGE_LEGACY_MODE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • • DIFxDriverPackageInstall DIFxDriverPackagePreinstall 76 InstallShield InstallScript Language Reference Guide .Chapter 4: Predefined Constants DRIVER_PACKAGE_DELETE_FILES DRIVER_PACKAGE_DELETE_FILES DRIVER_PACKAGE_DELETE_FILES is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • DIFxDriverPackageUninstall DRIVER_PACKAGE_FORCE DRIVER_PACKAGE_FORCE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. Used With • • DIFxDriverPackageInstall DIFxDriverPackagePreinstall DRIVER_PACKAGE_ONLY_IF_DEVICE_PRESENT DRIVER_PACKAGE_ONLY_IF_DEVICE_PRESENT is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant.

You cannot change the value of a predefined constant. Used With • SetDisplayEffect InstallShield InstallScript Language Reference Guide 77 . Used With • CtrlGetSubCommand EFF_BOXSTRIPE EFF_BOXSTRIPE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. Used With • • DIFxDriverPackageInstall DIFxDriverPackagePreinstall EDITBOX_CHANGE EDITBOX_CHANGE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.Chapter 4: Predefined Constants DRIVER_PACKAGE_REPAIR DRIVER_PACKAGE_REPAIR DRIVER_PACKAGE_REPAIR is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • • • DIFxDriverPackageInstall DIFxDriverPackagePreinstall DIFxDriverPackageUninstall DRIVER_PACKAGE_SILENT DRIVER_PACKAGE_SILENT is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant.

You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Used With • SetDisplayEffect EFF_NONE EFF_NONE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. Used With • SetDisplayEffect EFF_HORZSTRIPE EFF_HORZSTRIPE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. Used With • SetDisplayEffect 78 InstallShield InstallScript Language Reference Guide . Used With • SetDisplayEffect EFF_HORZREVEAL EFF_HORZREVEAL is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.Chapter 4: Predefined Constants EFF_FADE EFF_FADE EFF_FADE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.

Used With • SetDisplayEffect EFF_VERTSTRIPE EFF_VERTSTRIPE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • SetDisplayEffect ENABLE ENABLE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant.Chapter 4: Predefined Constants EFF_REVEAL EFF_REVEAL EFF_REVEAL is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. Used With • Enable END_OF_FILE END_OF_FILE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • FileGrep InstallShield InstallScript Language Reference Guide 79 . You cannot change the value of a predefined constant.

Used With • • EnterDisk PlaceWindow EQUALS EQUALS is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. Used With • • • • • • • • • • • • • ListCurrentItem ListCurrentString ListGetFirstItem ListSetIndex ListDeleteItem ListDeleteString ListFindItem ListFindString ListCurrentString ListGetNextItem ListGetNextString ListSetCurrentItem ListSetCurrentString ENTERDISK ENTERDISK is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.Chapter 4: Predefined Constants END_OF_LIST END_OF_LIST END_OF_LIST is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. 80 InstallShield InstallScript Language Reference Guide . You cannot change the value of a predefined constant.

You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. ERROR_DATABASE_DOES_NOT_EXIST is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. InstallShield InstallScript Language Reference Guide 81 .Chapter 4: Predefined Constants ERROR_ACCESS_DENIED Used With • • VerCompare FileCompare ERROR_ACCESS_DENIED PROJECT This information applies to InstallScript projects. ERROR_ACCESS_DENIED is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • GetExtendedErrInfo ERROR_CIRCULAR_DEPENDENCY PROJECT This information applies to InstallScript projects. Used With • GetExtendedErrInfo ERROR_DATABASE_DOES_NOT_EXIST PROJECT This information applies to InstallScript projects. You cannot change the value of a predefined constant. ERROR_CIRCULAR_DEPENDENCY is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.

ERROR_DEPENDENT_SERVICES_RUNNING is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. ERROR_DUP_NAME is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. ERROR_FILE_NOT_FOUND is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.Chapter 4: Predefined Constants ERROR_DEPENDENT_SERVICES_RUNNING Used With • GetExtendedErrInfo ERROR_DEPENDENT_SERVICES_RUNNING PROJECT This information applies to InstallScript projects. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Used With • GetExtendedErrInfo 82 InstallShield InstallScript Language Reference Guide . Used With • GetExtendedErrInfo ERROR_DUP_NAME PROJECT This information applies to InstallScript projects. You cannot change the value of a predefined constant. Used With • GetExtendedErrInfo ERROR_FILE_NOT_FOUND PROJECT This information applies to InstallScript projects.

ERROR_INVALID_PARAMETER is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • GetExtendedErrInfo ERROR_INVALID_SERVICE_ACCOUNT PROJECT This information applies to InstallScript projects. Used With • GetExtendedErrInfo InstallShield InstallScript Language Reference Guide 83 . You cannot change the value of a predefined constant.Chapter 4: Predefined Constants ERROR_INVALID_HANDLE ERROR_INVALID_HANDLE PROJECT This information applies to InstallScript projects. ERROR_INVALID_SERVICE_ACCOUNT is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. ERROR_INVALID_HANDLE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. Used With • GetExtendedErrInfo ERROR_INVALID_PARAMETER PROJECT This information applies to InstallScript projects. You cannot change the value of a predefined constant.

ERROR_PATH_NOT_FOUND is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • GetExtendedErrInfo ERROR_PATH_NOT_FOUND PROJECT This information applies to InstallScript projects. ERROR_INVALID_SERVICE_CONTROL is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. Used With • GetExtendedErrInfo ERROR_SERVICE_ALREADY_RUNNING PROJECT This information applies to InstallScript projects. You cannot change the value of a predefined constant. ERROR_SERVICE_ALREADY_RUNNING is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • GetExtendedErrInfo 84 InstallShield InstallScript Language Reference Guide . You cannot change the value of a predefined constant.Chapter 4: Predefined Constants ERROR_INVALID_SERVICE_CONTROL ERROR_INVALID_SERVICE_CONTROL PROJECT This information applies to InstallScript projects.

You cannot change the value of a predefined constant. Used With • GetExtendedErrInfo ERROR_SERVICE_DATABASE_LOCKED PROJECT This information applies to InstallScript projects. ERROR_SERVICE_DEPENDENCY_DELETED is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. ERROR_SERVICE_DATABASE_LOCKED is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. Used With • GetExtendedErrInfo ERROR_SERVICE_DEPENDENCY_DELETED PROJECT This information applies to InstallScript projects.Chapter 4: Predefined Constants ERROR_SERVICE_CANNOT_ACCEPT_CTRL ERROR_SERVICE_CANNOT_ACCEPT_CTRL PROJECT This information applies to InstallScript projects. ERROR_SERVICE_CANNOT_ACCEPT_CTRL is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • GetExtendedErrInfo InstallShield InstallScript Language Reference Guide 85 .

You cannot change the value of a predefined constant. ERROR_SERVICE_DISABLED is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. ERROR_SERVICE_DEPENDENCY_FAIL is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. ERROR_SERVICE_DOES_NOT_EXIST is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. Used With • GetExtendedErrInfo ERROR_SERVICE_DOES_NOT_EXIST PROJECT This information applies to InstallScript projects. Used With • GetExtendedErrInfo ERROR_SERVICE_DISABLED PROJECT This information applies to InstallScript projects. Used With • GetExtendedErrInfo 86 InstallShield InstallScript Language Reference Guide .Chapter 4: Predefined Constants ERROR_SERVICE_DEPENDENCY_FAIL ERROR_SERVICE_DEPENDENCY_FAIL PROJECT This information applies to InstallScript projects.

ERROR_SERVICE_LOGON_FAILED is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. ERROR_SERVICE_EXISTS is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant.Chapter 4: Predefined Constants ERROR_SERVICE_EXISTS ERROR_SERVICE_EXISTS PROJECT This information applies to InstallScript projects. You cannot change the value of a predefined constant. Used With • GetExtendedErrInfo InstallShield InstallScript Language Reference Guide 87 . Used With • GetExtendedErrInfo ERROR_SERVICE_NOT_ACTIVE PROJECT This information applies to InstallScript projects. ERROR_SERVICE_NOT_ACTIVE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • GetExtendedErrInfo ERROR_SERVICE_LOGON_FAILED PROJECT This information applies to InstallScript projects. You cannot change the value of a predefined constant.

Used With • GetExtendedErrInfo ERROR_SERVICE_REQUEST_TIMEOUT PROJECT This information applies to InstallScript projects. ERROR_TIMEOUT is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. ERROR_SERVICE_NO_THREAD is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.Chapter 4: Predefined Constants ERROR_SERVICE_NO_THREAD ERROR_SERVICE_NO_THREAD PROJECT This information applies to InstallScript projects. ERROR_SERVICE_REQUEST_TIMEOUT is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • GetExtendedErrInfo ERROR_TIMEOUT PROJECT This information applies to InstallScript projects. You cannot change the value of a predefined constant. Used With • GetExtendedErrInfo 88 InstallShield InstallScript Language Reference Guide . You cannot change the value of a predefined constant. You cannot change the value of a predefined constant.

You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Used With • • SetErrorTitle SetErrorMsg InstallShield InstallScript Language Reference Guide 89 . Used With • OnNextDisk ERR_BOX_BADPATH ERR_BOX_BADPATH is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • • SetErrorMsg SetErrorTitle ERR_BOX_DISKID ERR_BOX_DISKID is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.Chapter 4: Predefined Constants ERR_ABORT ERR_ABORT ERR_ABORT is a predefined constant used to represent a value that is passed to or returned by one event handlers. You cannot change the value of a predefined constant. Used With • • SetErrorMsg SetErrorTitle ERR_BOX_BADTAGFILE ERR_BOX_BADTAGFILE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.

Used With • SdExceptions 90 InstallShield InstallScript Language Reference Guide . You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Used With • SdExceptions ERR_NO ERR_NO is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions or event handlers. Used With • • SetErrorTitle SetErrorMsg ERR_IGNORE ERR_IGNORE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions or event handlers. Used With • SdExceptions ERR_PERFORM_AFTER_REBOOT ERR_PERFORM_AFTER_REBOOT is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions or event handlers.Chapter 4: Predefined Constants ERR_BOX_DRIVEOPEN ERR_BOX_DRIVEOPEN ERR_BOX_DRIVEOPEN is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.

Used With • • XCopyFile FindAllDirs EXCLUSIVE EXCLUSIVE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant.Chapter 4: Predefined Constants ERR_RETRY ERR_RETRY ERR_RETRY is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions or event handlers. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Used With • • • SdAskOptionsList AskOptions SdAskOptions InstallShield InstallScript Language Reference Guide 91 . Used With • SdExceptions EXCLUDE_SUBDIR EXCLUDE_SUBDIR is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • • OnNextDisk SdExceptions ERR_YES ERR_YES is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions or event handlers. You cannot change the value of a predefined constant.

Used With • ParsePath 92 InstallShield InstallScript Language Reference Guide . Used With • • ExistsDir ExistsDisk EXIT EXIT is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.Chapter 4: Predefined Constants EXISTS EXISTS EXISTS is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Used With • GetSystemInfo EXTENSION_ONLY EXTENSION_ONLY is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • • Do Handler EXTENDEDMEMORY EXTENDEDMEMORY is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant.

You cannot change the value of a predefined constant. Used With • • • • • • • • • • AskOptions FeatureTotalSize FeatureGetData FeatureIsItemSelected SdShowMsg FeatureSelectItem FeatureAddItem LongPathToQuote CtrlSetMultCurSel SelectDir FEATURE_FIELD_CDROM_FOLDER PROJECT This information applies to InstallScript projects. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Used With • FeatureSetData FEATURE_FIELD_DESCRIPTION PROJECT This information applies to InstallScript projects. InstallShield InstallScript Language Reference Guide 93 .Chapter 4: Predefined Constants FALSE FALSE FALSE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. FEATURE_FIELD_CDROM_FOLDER is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. FEATURE_FIELD_DESCRIPTION is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.

FEATURE_FIELD_DISPLAYNAME is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • • FeatureSetData FeatureGetData FEATURE_FIELD_FILENEED PROJECT This information applies to InstallScript projects. 94 InstallShield InstallScript Language Reference Guide .Chapter 4: Predefined Constants FEATURE_FIELD_DISPLAYNAME Used With • • FeatureSetData FeatureGetData FEATURE_FIELD_DISPLAYNAME PROJECT This information applies to InstallScript projects. Used With • FeatureGetData FEATURE_FIELD_FTPLOCATION PROJECT This information applies to InstallScript projects. FEATURE_FIELD_FTPLOCATION is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. FEATURE_FIELD_FILENEED is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant.

Used With • FeatureSetData FEATURE_FIELD_MISC PROJECT This information applies to InstallScript projects. FEATURE_FIELD_HTTPLOCATION is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. FEATURE_FIELD_IMAGE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. Used With • FeatureSetData InstallShield InstallScript Language Reference Guide 95 . FEATURE_FIELD_MISC is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant.Chapter 4: Predefined Constants FEATURE_FIELD_HTTPLOCATION Used With • FeatureGetData FEATURE_FIELD_HTTPLOCATION PROJECT This information applies to InstallScript projects. Used With • FeatureGetData FEATURE_FIELD_IMAGE PROJECT This information applies to InstallScript projects.

You cannot change the value of a predefined constant.Chapter 4: Predefined Constants FEATURE_FIELD_PASSWORD • FeatureGetData FEATURE_FIELD_PASSWORD PROJECT This information applies to InstallScript projects. FEATURE_FIELD_PASSWORD is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • FeatureGetData FEATURE_FIELD_SELECTED PROJECT This information applies to InstallScript projects. You cannot change the value of a predefined constant. Used With • • FeatureGetData FeatureSetData FEATURE_FIELD_SIZE PROJECT This information applies to InstallScript projects. FEATURE_FIELD_SELECTED is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. FEATURE_FIELD_SIZE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • • FeatureGetData FeatureSetData 96 InstallShield InstallScript Language Reference Guide . You cannot change the value of a predefined constant.

FEATURE_FIELD_VISIBLE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Used With • • FeatureGetData FeatureSetData FEATURE_INFO_ATTRIBUTE PROJECT This information applies to InstallScript projects. FEATURE_INFO_ATTRIBUTE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions or assigned to one or more system variables. Used With • • FeatureGetData FeatureSetData FEATURE_FIELD_VISIBLE PROJECT This information applies to InstallScript projects. Used With • FeatureFileInfo InstallShield InstallScript Language Reference Guide 97 . FEATURE_FIELD_STATUS is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.Chapter 4: Predefined Constants FEATURE_FIELD_STATUS FEATURE_FIELD_STATUS PROJECT This information applies to InstallScript projects.

You cannot change the value of a predefined constant. 98 InstallShield InstallScript Language Reference Guide . Used With • FeatureFileInfo FEATURE_INFO_COMPSIZE_HIGH FEATURE_INFO_COMPSIZE_HIGH is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. Used With • FeatureFileInfo FEATURE_INFO_DATE PROJECT This information applies to InstallScript projects. FEATURE_INFO_DATE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions or assigned to one or more system variables. You cannot change the value of a predefined constant. Used With • FeatureFileInfo FEATURE_INFO_COMPSIZE_LOW FEATURE_INFO_COMPSIZE_LOW is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.Chapter 4: Predefined Constants FEATURE_INFO_COMPSIZE FEATURE_INFO_COMPSIZE PROJECT This information applies to InstallScript projects. You cannot change the value of a predefined constant. FEATURE_INFO_COMPSIZE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions or assigned to one or more system variables.

FEATURE_INFO_LANGUAGE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions or assigned to one or more system variables.Chapter 4: Predefined Constants FEATURE_INFO_DATE_EX Used With • FeatureFileInfo FEATURE_INFO_DATE_EX PROJECT This information applies to InstallScript projects. You cannot change the value of a predefined constant. Used With • FeatureFileInfo FEATURE_INFO_LANGUAGE PROJECT This information applies to InstallScript projects. You cannot change the value of a predefined constant. FEATURE_INFO_DATE_EX is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions or assigned to one or more system variables. Used With • FeatureFileInfo InstallShield InstallScript Language Reference Guide 99 . Used With • FeatureFileInfo FEATURE_INFO_MD5_SIGNATURE FEATURE_INFO_MD5_SIGNATURE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant.

You cannot change the value of a predefined constant. FEATURE_INFO_ORIGSIZE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions or assigned to one or more system variables. Used With • FeatureFileInfo FEATURE_INFO_ORIGSIZE_HIGH FEATURE_INFO_ORIGSIZE_HIGH is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • FeatureFileInfo FEATURE_INFO_ORIGSIZE_LOW FEATURE_INFO_ORIGSIZE_LOW is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. 100 InstallShield InstallScript Language Reference Guide . You cannot change the value of a predefined constant.Chapter 4: Predefined Constants FEATURE_INFO_ORIGSIZE FEATURE_INFO_ORIGSIZE PROJECT This information applies to InstallScript projects. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. FEATURE_INFO_OS is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions or assigned to one or more system variables. Used With • FeatureFileInfo FEATURE_INFO_OS PROJECT This information applies to InstallScript projects.

You cannot change the value of a predefined constant. Used With • FeatureFileInfo InstallShield InstallScript Language Reference Guide 101 . FEATURE_INFO_VERSIONLS is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions or assigned to one or more system variables. You cannot change the value of a predefined constant. FEATURE_INFO_TIME is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions or assigned to one or more system variables. FEATURE_INFO_PLATFORM_SUITE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions or assigned to one or more system variables.Chapter 4: Predefined Constants FEATURE_INFO_PLATFORM_SUITE Used With • FeatureFileInfo FEATURE_INFO_PLATFORM_SUITE PROJECT This information applies to InstallScript projects. You cannot change the value of a predefined constant. Used With • FeatureFileInfo FEATURE_INFO_TIME PROJECT This information applies to InstallScript projects. Used With • FeatureFileInfo FEATURE_INFO_VERSIONLS PROJECT This information applies to InstallScript projects.

You cannot change the value of a predefined constant.Chapter 4: Predefined Constants FEATURE_INFO_VERSIONMS FEATURE_INFO_VERSIONMS PROJECT This information applies to InstallScript projects. You cannot change the value of a predefined constant. 102 InstallShield InstallScript Language Reference Guide . FEATURE_INFO_VERSIONSTR is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions or assigned to one or more system variables. Used With • • FeatureAddUninstallCost FeatureSpendUninstallCost FEATURE_OPCOST_UNINSTALL_REGORINI FEATURE_OPCOST_UNINSTALL_REGORINI is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • FeatureFileInfo FEATURE_INFO_VERSIONSTR PROJECT This information applies to InstallScript projects. FEATURE_INFO_VERSIONMS is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions or assigned to one or more system variables. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Used With • FeatureFileInfo FEATURE_OPCOST_UNINSTALL_FILE FEATURE_OPCOST_UNINSTALL_FILE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.

You cannot change the value of a predefined constant. You cannot change the value of a predefined constant.Chapter 4: Predefined Constants FEATURE_OPCOST_UNINSTALL_UNREGFILE Used With • • FeatureAddUninstallCost FeatureSpendUninstallCost FEATURE_OPCOST_UNINSTALL_UNREGFILE FEATURE_OPCOST_UNINSTALL_UNREGFILE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. FEATURE_VALUE_HIGHLYRECOMMENDED is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • • FeatureAddUninstallCost FeatureSpendUninstallCost FEATURE_VALUE_CRITICAL PROJECT This information applies to InstallScript projects. FEATURE_VALUE_CRITICAL is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • FeatureGetData InstallShield InstallScript Language Reference Guide 103 . Used With • FeatureGetData FEATURE_VALUE_HIGHLYRECOMMENDED PROJECT This information applies to InstallScript projects. You cannot change the value of a predefined constant.

The file is a directory. The file is archived. The file is read-only. Used With • FeatureGetData File Attributes PROJECT This information applies to InstallScript projects.Chapter 4: Predefined Constants FEATURE_VALUE_STANDARD FEATURE_VALUE_STANDARD PROJECT This information applies to InstallScript projects. You cannot change the value of a predefined constant. FILENAME FILENAME is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. The file is hidden. Used With • ParsePath 104 InstallShield InstallScript Language Reference Guide . The file is a system file. Table 4-1: File Attributes Attribute FILE_ATTR_NORMAL FILE_ATTR_ARCHIVED FILE_ATTR_DIRECTORY FILE_ATTR_HIDDEN FILE_ATTR_READONLY FILE_ATTR_SYSTEM Description The file is a normal file. FEATURE_VALUE_STANDARD is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant.

Chapter 4: Predefined Constants FILENAME_ONLY FILENAME_ONLY FILENAME_ONLY is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Used With • • GetFileInfo SetFileInfo FILE_ATTR_ARCHIVED FILE_ATTR_ARCHIVED is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • ParsePath FILE_ATTRIBUTE FILE_ATTRIBUTE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • SetFileInfo FILE_ATTR_HIDDEN FILE_ATTR_HIDDEN is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • SetFileInfo InstallShield InstallScript Language Reference Guide 105 . You cannot change the value of a predefined constant.

You cannot change the value of a predefined constant. Used With • SetFileInfo FILE_ATTR_SYSTEM FILE_ATTR_SYSTEM is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.Chapter 4: Predefined Constants FILE_ATTR_NORMAL FILE_ATTR_NORMAL FILE_ATTR_NORMAL is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • SetFileInfo FILE_BIN_CUR FILE_BIN_CUR is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • SetFileInfo FILE_ATTR_READONLY FILE_ATTR_READONLY is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • SeekBytes 106 InstallShield InstallScript Language Reference Guide . You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant.

You cannot change the value of a predefined constant. Used With • • GetFileInfo SetFileInfo FILE_EXISTS FILE_EXISTS is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • SeekBytes FILE_BIN_START FILE_BIN_START is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.Chapter 4: Predefined Constants FILE_BIN_END FILE_BIN_END FILE_BIN_END is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Used With • Is InstallShield InstallScript Language Reference Guide 107 . Used With • SeekBytes FILE_DATE FILE_DATE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.

Used With • • VerUpdateFile VerSearchAndUpdateFile FILE_LINE_LENGTH FILE_LINE_LENGTH is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. Used With • • FileInsertLine FileGrep FILE_LOCKED FILE_LOCKED is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant.Chapter 4: Predefined Constants FILE_INSTALLED FILE_INSTALLED FILE_INSTALLED is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • Is 108 InstallShield InstallScript Language Reference Guide . You cannot change the value of a predefined constant. Used With • VerSearchAndUpdateFile FILE_IS_LOCKED FILE_IS_LOCKED is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant.

Used With • OpenFileMode FILE_MODE_BINARY FILE_MODE_BINARY is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. Used With • • WriteBytes OpenFileMode InstallShield InstallScript Language Reference Guide 109 . Used With • • OpenFileMode CreateFile FILE_MODE_APPEND_UNICODE FILE_MODE_APPEND_UNICODE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant.Chapter 4: Predefined Constants FILE_MD5_SIGNATURE FILE_MD5_SIGNATURE FILE_MD5_SIGNATURE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Used With • GetFileInfo FILE_MODE_APPEND FILE_MODE_APPEND is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.

You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Used With • OpenFileMode FILE_NOT_FOUND FILE_NOT_FOUND is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • • • • • • VerGetFileVersion FileGrep FileInsertLine FileCompare FileDeleteLine VerFindFileVersion FILE_NO_VERSION FILE_NO_VERSION is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.Chapter 4: Predefined Constants FILE_MODE_BINARYREADONLY FILE_MODE_BINARYREADONLY FILE_MODE_BINARYREADONLY is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. Used With • OpenFileMode FILE_MODE_NORMAL FILE_MODE_NORMAL is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. 110 InstallShield InstallScript Language Reference Guide .

You cannot change the value of a predefined constant. Used With • • • • VerUpdateFile FileDeleteLine FileInsertLine VerSearchAndUpdateFile FILE_SHARED_COUNT PROJECT This information applies to InstallScript projects. You cannot change the value of a predefined constant. FILE_SHARED_COUNT is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • GetFileInfo InstallShield InstallScript Language Reference Guide 111 . Used With • GetFileInfo FILE_SIZE FILE_SIZE (same as FILE_SIZE_LOW) is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.Chapter 4: Predefined Constants FILE_RD_ONLY Used With • • • • VerGetFileVersion VerSearchAndUpdateFile VerFindFileVersion VerUpdateFile FILE_RD_ONLY FILE_RD_ONLY is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant.

You cannot change the value of a predefined constant. Used With • • GetFileInfo SetFileInfo 112 InstallShield InstallScript Language Reference Guide . Used With • • VerSearchAndUpdateFile VerUpdateFile FILE_TIME FILE_TIME is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • GetFileInfo FILE_SIZE_LOW FILE_SIZE_LOW is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Used With • GetFileInfo FILE_SRC_OLD FILE_SRC_OLD is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.Chapter 4: Predefined Constants FILE_SIZE_HIGH FILE_SIZE_HIGH FILE_SIZE_HIGH is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.

You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Used With • Is FULL FULL is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • PathAdd InstallShield InstallScript Language Reference Guide 113 . Used With • GetValidDrivesList FONT_AVAILABLE FONT_AVAILABLE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant.Chapter 4: Predefined Constants FILE_WRITEABLE FILE_WRITEABLE PROJECT This information applies to the following project types: • • Installscript InstallScript Object FILE_WRITEABLE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • Is FIXED_DRIVE FIXED_DRIVE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.

FUNCTION_EXPORTED is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. 114 InstallShield InstallScript Language Reference Guide . Used With • PlaceBitmap FULLSCREENSIZE FULLSCREENSIZE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • Enable FUNCTION_EXPORTED PROJECT This information applies to InstallScript projects. You cannot change the value of a predefined constant.Chapter 4: Predefined Constants FULLSCREEN • • • PathFind PathMove PathDelete FULLSCREEN FULLSCREEN is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • PlaceBitmap FULLWINDOWMODE FULLWINDOWMODE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant.

Chapter 4: Predefined Constants GBYTES Used With • Is GBYTES GBYTES is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • • SetColor SetTitle HELP PROJECT This information applies to the following project types: • • InstallScript InstallScript MSI InstallShield InstallScript Language Reference Guide 115 . You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Used With • ConvertSizeToUnits GREATER_THAN GREATER_THAN is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • • FileCompare VerCompare GREEN GREEN is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.

You cannot change the value of a predefined constant. Used With • RegDBSetDefaultRoot HKEY_LOCAL_MACHINE HKEY_LOCAL_MACHINE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. Used With • • • • • • • RegDBSetDefaultRoot RegDBSetKeyValueEx RegDBDeleteKey RegDBDeleteValue RegDBGetKeyValueEx RegDBKeyExist RegDBCreateKeyEx HKEY_CURRENT_USER HKEY_CURRENT_USER is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. 116 InstallShield InstallScript Language Reference Guide . You cannot change the value of a predefined constant. Used With • • Do Handler HKEY_CLASSES_ROOT HKEY_CLASSES_ROOT is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.Chapter 4: Predefined Constants HKEY_CLASSES_ROOT HELP is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant.

Used With • RegDBSetDefaultRoot HOURGLASS HOURGLASS is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. NOTE Windows NT 4. Used With • • • RegDBConnectRegistry InstallationInfo RegDBSetDefaultRoot HKEY_USERS HKEY_USERS is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. HKEY_USER_SELECTABLE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant.0 does not allow the creation of a key directly under HKEY_LOCAL_MACHINE. You cannot change the value of a predefined constant. InstallShield InstallScript Language Reference Guide 117 .0 does not allow the creation of a key directly under HKEY_USERS. You cannot change the value of a predefined constant. Used With • • RegDBSetDefaultRoot RegDBConnectRegistry HKEY_USER_SELECTABLE PROJECT This information applies to InstallScript projects.Chapter 4: Predefined Constants HKEY_USERS NOTE Windows NT 4.

IDCANCEL is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.Chapter 4: Predefined Constants HWND_DESKTOP Used With • • Disable Enable HWND_DESKTOP HWND_DESKTOP is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • GetWindowHandle IDCANCEL PROJECT This information applies to InstallScript projects. Used With • • SelectDir SelectDirEx 118 InstallShield InstallScript Language Reference Guide . You cannot change the value of a predefined constant. Used With • GetWindowHandle HWND_INSTALL HWND_INSTALL is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant.

Used With • SdLoadString InstallShield InstallScript Language Reference Guide 119 . Used With • SdLoadString IFX_ONNEXTDISK_PACKAGE_CAPTION PROJECT This information applies to InstallScript projects. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. IDS_IFX_ERROR_INVALID_MEDIA_PASSWORD is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions or assigned to one or more system variables.Chapter 4: Predefined Constants IDOK IDOK PROJECT This information applies to InstallScript projects. IFX_ONNEXTDISK_PACKAGE_CAPTION is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions or assigned to one or more system variables. Used With • • SelectDir SelectDirEx IDS_IFX_ERROR_INVALID_MEDIA_PASSWORD PROJECT This information applies to InstallScript projects. IDOK is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.

Used With • SdLoadString INCLUDE_SUBDIR INCLUDE_SUBDIR is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • • FindAllDirs XCopyFile INDVFILESTATUS INDVFILESTATUS is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. 120 InstallShield InstallScript Language Reference Guide .Chapter 4: Predefined Constants IFX_ONNEXTDISK_PACKAGE_MSG IFX_ONNEXTDISK_PACKAGE_MSG PROJECT This information applies to InstallScript projects. You cannot change the value of a predefined constant. IFX_ONNEXTDISK_PACKAGE_MSG is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions or assigned to one or more system variables. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Used With • • • Disable SetStatusWindow Enable INFORMATION INFORMATION is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.

Used With • • • • DIFxDriverPackageGetPath DIFxDriverPackageInstall DIFxDriverPackagePreinstall DIFxDriverPackageUninstall ISDIFX_OPTION_LOG_IN_DRIVER_PACKAGE_PATH ISDIFX_OPTION_LOG_IN_DRIVER_PACKAGE_PATH is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant.Chapter 4: Predefined Constants ISDIFX_OPTION_DONT_ASSOCIATE Used With • • MessageBox SprintfBox ISDIFX_OPTION_DONT_ASSOCIATE ISDIFX_OPTION_DONT_ASSOCIATE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • • DIFxDriverPackageInstall DIFxDriverPackageUninstall ISDIFX_OPTION_DONT_RESOLVE_TEXTSUBS ISDIFX_OPTION_DONT_RESOVE_TEXTSUBS is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • • DIFxDriverPackageInstall DIFxDriverPackagePreinstall InstallShield InstallScript Language Reference Guide 121 . You cannot change the value of a predefined constant.

For more information about how to use this constant.Chapter 4: Predefined Constants ISDIFX_OPTION_NO_REPAIR ISDIFX_OPTION_NO_REPAIR ISDIFX_OPTION_NO_REPAIR is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. 122 InstallShield InstallScript Language Reference Guide . You cannot change the value of a predefined constant. ISLANG_AFRIKAANS ISLANG_AFRIKAANS is a predefined constant that corresponds to a Windows language ID. Used With • • DIFxDriverPackageInstall DIFxDriverPackagePreinstall ISERR_GEN_FAILURE PROJECT This information applies to InstallScript projects. ISERR_GEN_FAILURE is a predefined constant used to represent the value that is returned by built-in functions when they fail and more specific information on the cause of the failure is not available. see Language IDs. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. ISERR_SUCCESS PROJECT This information applies to the following project types: • • InstallScript InstallScript MSI ISERR_SUCCESS is a predefined constant used to represent the value that is returned by built-in functions when they are successful.

see Language IDs. ISLANG_ALBANIAN ISLANG_ALBANIAN is a predefined constant that corresponds to a Windows language ID. ISLANG_ARABIC_ALGERIA ISLANG_ARABIC_ALGERIA is a predefined constant that corresponds to a Windows language ID. For more information about how to use this constant. For more information about how to use this constant. see Language IDs. For more information about how to use this constant. ISLANG_ALL ISLANG_ALL is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. see Language IDs. see Language IDs. InstallShield InstallScript Language Reference Guide 123 . For more information about how to use this constant. For more information about how to use this constant. Used With • FeatureFilterLanguage ISLANG_ARABIC ISLANG_ARABIC is a predefined constant that corresponds to a Windows language ID. see Language IDs.Chapter 4: Predefined Constants ISLANG_AFRIKAANS_STANDARD ISLANG_AFRIKAANS_STANDARD ISLANG_AFRIKAANS_STANDARD is a predefined constant that corresponds to a Windows language ID. ISLANG_ALBANIAN_STANDARD ISLANG_ALBANIAN_STANDARD is a predefined constant that corresponds to a Windows language ID.

For more information about how to use this constant. For more information about how to use this constant. For more information about how to use this constant. ISLANG_ARABIC_LEBANON ISLANG_ARABIC_LEBANON is a predefined constant that corresponds to a Windows language ID. see Language IDs. ISLANG_ARABIC_IRAQ ISLANG_ARABIC_IRAQ is a predefined constant that corresponds to a Windows language ID. see Language IDs. 124 InstallShield InstallScript Language Reference Guide . ISLANG_ARABIC_JORDAN ISLANG_ARABIC_JORDAN is a predefined constant that corresponds to a Windows language ID. For more information about how to use this constant. ISLANG_ARABIC_KUWAIT ISLANG_ARABIC_KUWAIT is a predefined constant that corresponds to a Windows language ID. ISLANG_ARABIC_EGYPT ISLANG_ARABIC_EGYPT is a predefined constant that corresponds to a Windows language ID. For more information about how to use this constant.Chapter 4: Predefined Constants ISLANG_ARABIC_BAHRAIN ISLANG_ARABIC_BAHRAIN ISLANG_ARABIC_BAHRAIN is a predefined constant that corresponds to a Windows language ID. see Language IDs. see Language IDs. see Language IDs. For more information about how to use this constant. see Language IDs. see Language IDs. For more information about how to use this constant. ISLANG_ARABIC_LIBYA ISLANG_ARABIC_LIBYA is a predefined constant that corresponds to a Windows language ID.

see Language IDs. For more information about how to use this constant. ISLANG_ARABIC_QATAR ISLANG_ARABIC_QATAR is a predefined constant that corresponds to a Windows language ID. see Language IDs. For more information about how to use this constant. see Language IDs. For more information about how to use this constant.Chapter 4: Predefined Constants ISLANG_ARABIC_MOROCCO ISLANG_ARABIC_MOROCCO ISLANG_ARABIC_MOROCCO is a predefined constant that corresponds to a Windows language ID. ISLANG_ARABIC_OMAN ISLANG_ARABIC_OMAN is a predefined constant that corresponds to a Windows language ID. ISLANG_ARABIC_SAUDIARABIA ISLANG_ARABIC_SAUDIARABIA is a predefined constant that corresponds to a Windows language ID. For more information about how to use this constant. For more information about how to use this constant. see Language IDs. ISLANG_ARABIC_SYRIA ISLANG_ARABIC_SYRIA is a predefined constant that corresponds to a Windows language ID. For more information about how to use this constant. see Language IDs. see Language IDs. see Language IDs. For more information about how to use this constant. ISLANG_ARABIC_UAE ISLANG_ARABIC_UAE is a predefined constant that corresponds to a Windows language ID. InstallShield InstallScript Language Reference Guide 125 . ISLANG_ARABIC_TUNISIA ISLANG_ARABIC_TUNISIA is a predefined constant that corresponds to a Windows language ID.

see Language IDs. see Language IDs. ISLANG_BELARUSIAN_STANDARD ISLANG_BELARUSIAN_STANDARD is a predefined constant that corresponds to a Windows language ID. see Language IDs. For more information about how to use this constant. ISLANG_BASQUE ISLANG_BASQUE is a predefined constant that corresponds to a Windows language ID. 126 InstallShield InstallScript Language Reference Guide . see Language IDs.Chapter 4: Predefined Constants ISLANG_ARABIC_YEMEN ISLANG_ARABIC_YEMEN ISLANG_ARABIC_YEMEN is a predefined constant that corresponds to a Windows language ID. For more information about how to use this constant. ISLANG_BASQUE_STANDARD ISLANG_BASQUE_STANDARD is a predefined constant that corresponds to a Windows language ID. For more information about how to use this constant. see Language IDs. For more information about how to use this constant. ISLANG_BULGARIAN ISLANG_BULGARIAN is a predefined constant that corresponds to a Windows language ID. see Language IDs. ISLANG_BULGARIAN_STANDARD ISLANG_BULGARIAN_STANDARD is a predefined constant that corresponds to a Windows language ID. see Language IDs. For more information about how to use this constant. For more information about how to use this constant. ISLANG_BELARUSIAN ISLANG_BELARUSIAN is a predefined constant that corresponds to a Windows language ID. For more information about how to use this constant.

For more information about how to use this constant. ISLANG_CHINESE_HONGKONG ISLANG_CHINESE_HONGKONG is a predefined constant that corresponds to a Windows language ID. ISLANG_CHINESE_PRC ISLANG_CHINESE_PRC is a predefined constant that corresponds to a Windows language ID. ISLANG_CHINESE_TAIWAN ISLANG_CHINESE_TAIWAN is a predefined constant that corresponds to a Windows language ID. InstallShield InstallScript Language Reference Guide 127 .Chapter 4: Predefined Constants ISLANG_CATALAN ISLANG_CATALAN ISLANG_CATALAN is a predefined constant that corresponds to a Windows language ID. For more information about how to use this constant. For more information about how to use this constant. see Language IDs. ISLANG_CHINESE ISLANG_CHINESE is a predefined constant that corresponds to a Windows language ID. see Language IDs. For more information about how to use this constant. For more information about how to use this constant. see Language IDs. see Language IDs. For more information about how to use this constant. see Language IDs. ISLANG_CHINESE_SINGAPORE ISLANG_CHINESE_SINGAPORE is a predefined constant that corresponds to a Windows language ID. see Language IDs. For more information about how to use this constant. ISLANG_CATALAN_STANDARD ISLANG_CATALAN_STANDARD is a predefined constant that corresponds to a Windows language ID. see Language IDs.

For more information about how to use this constant. ISLANG_CZECH_STANDARD ISLANG_CZECH_STANDARD is a predefined constant that corresponds to a Windows language ID. see Language IDs. ISLANG_DANISH_STANDARD ISLANG_DANISH_STANDARD is a predefined constant that corresponds to a Windows language ID. For more information about how to use this constant.Chapter 4: Predefined Constants ISLANG_CROATIAN ISLANG_CROATIAN ISLANG_CROATIAN is a predefined constant that corresponds to a Windows language ID. see Language IDs. ISLANG_DUTCH ISLANG_DUTCH is a predefined constant that corresponds to a Windows language ID. 128 InstallShield InstallScript Language Reference Guide . ISLANG_CROATIAN_STANDARD ISLANG_CROATIAN_STANDARD is a predefined constant that corresponds to a Windows language ID. ISLANG_CZECH ISLANG_CZECH is a predefined constant that corresponds to a Windows language ID. For more information about how to use this constant. see Language IDs. For more information about how to use this constant. For more information about how to use this constant. see Language IDs. ISLANG_DANISH ISLANG_DANISH is a predefined constant that corresponds to a Windows language ID. For more information about how to use this constant. see Language IDs. For more information about how to use this constant. see Language IDs. see Language IDs.

see Language IDs. see Language IDs. ISLANG_DUTCH_STANDARD ISLANG_DUTCH_STANDARD is a predefined constant that corresponds to a Windows language ID. For more information about how to use this constant. For more information about how to use this constant. see Language IDs. see Language IDs. ISLANG_ENGLISH_BELIZE ISLANG_ENGLISH_BELIZE is a predefined constant that corresponds to a Windows language ID. ISLANG_ENGLISH ISLANG_ENGLISH is a predefined constant that corresponds to a Windows language ID. For more information about how to use this constant. ISLANG_ENGLISH_CANADIAN ISLANG_ENGLISH_CANADIAN is a predefined constant that corresponds to a Windows language ID.Chapter 4: Predefined Constants ISLANG_DUTCH_BELGIAN ISLANG_DUTCH_BELGIAN ISLANG_DUTCH_BELGIAN is a predefined constant that corresponds to a Windows language ID. InstallShield InstallScript Language Reference Guide 129 . see Language IDs. For more information about how to use this constant. see Language IDs. For more information about how to use this constant. see Language IDs. ISLANG_ENGLISH_AUSTRALIAN ISLANG_ENGLISH_AUSTRALIAN is a predefined constant that corresponds to a Windows language ID. For more information about how to use this constant. ISLANG_ENGLISH_CARIBBEAN ISLANG_ENGLISH_CARIBBEAN is a predefined constant that corresponds to a Windows language ID. For more information about how to use this constant.

For more information about how to use this constant. see Language IDs. ISLANG_ENGLISH_UNITEDKINGDOM ISLANG_ENGLISH_UNITEDKINGDOM is a predefined constant that corresponds to a Windows language ID. For more information about how to use this constant. For more information about how to use this constant. ISLANG_ENGLISH_SOUTHAFRICA ISLANG_ENGLISH_SOUTHAFRICA is a predefined constant that corresponds to a Windows language ID. see Language IDs. see Language IDs. For more information about how to use this constant. see Language IDs. ISLANG_ENGLISH_TRINIDAD ISLANG_ENGLISH_TRINIDAD is a predefined constant that corresponds to a Windows language ID. see Language IDs. ISLANG_ENGLISH_UNITEDSTATES ISLANG_ENGLISH_UNITEDSTATES is a predefined constant that corresponds to a Windows language ID.Chapter 4: Predefined Constants ISLANG_ENGLISH_IRELAND ISLANG_ENGLISH_IRELAND ISLANG_ENGLISH_IRELAND is a predefined constant that corresponds to a Windows language ID. For more information about how to use this constant. For more information about how to use this constant. ISLANG_ENGLISH_NEWZEALAND ISLANG_ENGLISH_NEWZEALAND is a predefined constant that corresponds to a Windows language ID. For more information about how to use this constant. see Language IDs. see Language IDs. ISLANG_ENGLISH_JAMAICA ISLANG_ENGLISH_JAMAICA is a predefined constant that corresponds to a Windows language ID. 130 InstallShield InstallScript Language Reference Guide .

ISLANG_FAEROESE ISLANG_FAEROESE is a predefined constant that corresponds to a Windows language ID. For more information about how to use this constant. ISLANG_FARSI ISLANG_FARSI is a predefined constant that corresponds to a Windows language ID. see Language IDs. see Language IDs. ISLANG_FINNISH ISLANG_FINNISH is a predefined constant that corresponds to a Windows language ID. ISLANG_ESTONIAN_STANDARD ISLANG_ESTONIAN_STANDARD is a predefined constant that corresponds to a Windows language ID. ISLANG_FAEROESE_STANDARD ISLANG_FAEROESE_STANDARD is a predefined constant that corresponds to a Windows language ID. see Language IDs. For more information about how to use this constant. see Language IDs. For more information about how to use this constant. For more information about how to use this constant. For more information about how to use this constant. InstallShield InstallScript Language Reference Guide 131 .Chapter 4: Predefined Constants ISLANG_ESTONIAN ISLANG_ESTONIAN ISLANG_ESTONIAN is a predefined constant that corresponds to a Windows language ID. see Language IDs. see Language IDs. see Language IDs. For more information about how to use this constant. ISLANG_FARSI_STANDARD ISLANG_FARSI_STANDARD is a predefined constant that corresponds to a Windows language ID. For more information about how to use this constant.

ISLANG_FRENCH_LUXEMBOURG ISLANG_FRENCH_LUXEMBOURG is a predefined constant that corresponds to a Windows language ID. 132 InstallShield InstallScript Language Reference Guide . For more information about how to use this constant. For more information about how to use this constant. ISLANG_FRENCH_STANDARD ISLANG_FRENCH_STANDARD is a predefined constant that corresponds to a Windows language ID. see Language IDs. For more information about how to use this constant. see Language IDs.Chapter 4: Predefined Constants ISLANG_FINNISH_STANDARD ISLANG_FINNISH_STANDARD ISLANG_FINNISH_STANDARD is a predefined constant that corresponds to a Windows language ID. see Language IDs. For more information about how to use this constant. see Language IDs. For more information about how to use this constant. For more information about how to use this constant. see Language IDs. ISLANG_FRENCH_CANADIAN ISLANG_FRENCH_CANADIAN is a predefined constant that corresponds to a Windows language ID. ISLANG_FRENCH_SWISS ISLANG_FRENCH_SWISS is a predefined constant that corresponds to a Windows language ID. ISLANG_FRENCH ISLANG_FRENCH is a predefined constant that corresponds to a Windows language ID. see Language IDs. For more information about how to use this constant. see Language IDs. ISLANG_FRENCH_BELGIAN ISLANG_FRENCH_BELGIAN is a predefined constant that corresponds to a Windows language ID.

see Language IDs. ISLANG_GERMAN_STANDARD ISLANG_GERMAN_STANDARD is a predefined constant that corresponds to a Windows language ID. For more information about how to use this constant. see Language IDs. see Language IDs. see Language IDs. ISLANG_GERMAN_SWISS ISLANG_GERMAN_SWISS is a predefined constant that corresponds to a Windows language ID. For more information about how to use this constant. For more information about how to use this constant. InstallShield InstallScript Language Reference Guide 133 . see Language IDs. For more information about how to use this constant. ISLANG_GERMAN_AUSTRIAN ISLANG_GERMAN_AUSTRIAN is a predefined constant that corresponds to a Windows language ID. ISLANG_GERMAN_LIECHTENSTEIN ISLANG_GERMAN_LIECHTENSTEIN is a predefined constant that corresponds to a Windows language ID. For more information about how to use this constant. ISLANG_GREEK ISLANG_GREEK is a predefined constant that corresponds to a Windows language ID. see Language IDs.Chapter 4: Predefined Constants ISLANG_GERMAN ISLANG_GERMAN ISLANG_GERMAN is a predefined constant that corresponds to a Windows language ID. For more information about how to use this constant. ISLANG_GERMAN_LUXEMBOURG ISLANG_GERMAN_LUXEMBOURG is a predefined constant that corresponds to a Windows language ID. see Language IDs. For more information about how to use this constant.

For more information about how to use this constant. For more information about how to use this constant. ISLANG_HEBREW ISLANG_HEBREW is a predefined constant that corresponds to a Windows language ID. see Language IDs. see Language IDs. ISLANG_HEBREW_STANDARD ISLANG_HEBREW_STANDARD is a predefined constant that corresponds to a Windows language ID. see Language IDs. ISLANG_ICELANDIC ISLANG_ICELANDIC is a predefined constant that corresponds to a Windows language ID. For more information about how to use this constant.Chapter 4: Predefined Constants ISLANG_GREEK_STANDARD ISLANG_GREEK_STANDARD ISLANG_GREEK_STANDARD is a predefined constant that corresponds to a Windows language ID. For more information about how to use this constant. ISLANG_HUNGARIAN_STANDARD ISLANG_HUNGARIAN_STANDARD is a predefined constant that corresponds to a Windows language ID. see Language IDs. ISLANG_ICELANDIC_STANDARD ISLANG_ICELANDIC_STANDARD is a predefined constant that corresponds to a Windows language ID. ISLANG_HUNGARIAN ISLANG_HUNGARIAN is a predefined constant that corresponds to a Windows language ID. see Language IDs. For more information about how to use this constant. For more information about how to use this constant. For more information about how to use this constant. 134 InstallShield InstallScript Language Reference Guide . see Language IDs. see Language IDs.

For more information about how to use this constant. ISLANG_JAPANESE_STANDARD ISLANG_JAPANESE_STANDARD is a predefined constant that corresponds to a Windows language ID. see Language IDs. ISLANG_ITALIAN_SWISS ISLANG_ITALIAN_SWISS is a predefined constant that corresponds to a Windows language ID. For more information about how to use this constant. see Language IDs. For more information about how to use this constant. For more information about how to use this constant. For more information about how to use this constant. ISLANG_ITALIAN ISLANG_ITALIAN is a predefined constant that corresponds to a Windows language ID. see Language IDs. For more information about how to use this constant. InstallShield InstallScript Language Reference Guide 135 . ISLANG_INDONESIAN_STANDARD ISLANG_INDONESIAN_STANDARD is a predefined constant that corresponds to a Windows language ID. ISLANG_JAPANESE ISLANG_JAPANESE is a predefined constant that corresponds to a Windows language ID. see Language IDs. For more information about how to use this constant. see Language IDs. see Language IDs. ISLANG_ITALIAN_STANDARD ISLANG_ITALIAN_STANDARD is a predefined constant that corresponds to a Windows language ID.Chapter 4: Predefined Constants ISLANG_INDONESIAN ISLANG_INDONESIAN ISLANG_INDONESIAN is a predefined constant that corresponds to a Windows language ID. see Language IDs.

ISLANG_LITHUANIAN ISLANG_LITHUANIAN is a predefined constant that corresponds to a Windows language ID.Chapter 4: Predefined Constants ISLANG_KOREAN ISLANG_KOREAN ISLANG_KOREAN is a predefined constant that corresponds to a Windows language ID. For more information about how to use this constant. ISLANG_KOREAN_STANDARD ISLANG_KOREAN_STANDARD is a predefined constant that corresponds to a Windows language ID. see Language IDs. For more information about how to use this constant. For more information about how to use this constant. see Language IDs. see Language IDs. For more information about how to use this constant. see Language IDs. For more information about how to use this constant. see Language IDs. see Language IDs. 136 InstallShield InstallScript Language Reference Guide . For more information about how to use this constant. ISLANG_LATVIAN_STANDARD ISLANG_LATVIAN_STANDARD is a predefined constant that corresponds to a Windows language ID. see Language IDs. ISLANG_LITHUANIAN_STANDARD ISLANG_LITHUANIAN_STANDARD is a predefined constant that corresponds to a Windows language ID. ISLANG_LATVIAN ISLANG_LATVIAN is a predefined constant that corresponds to a Windows language ID. ISLANG_KOREAN_JOHAB ISLANG_KOREAN_JOHAB is a predefined constant that corresponds to a Windows language ID. For more information about how to use this constant.

For more information about how to use this constant. ISLANG_PORTUGUESE ISLANG_PORTUGUESE is a predefined constant that corresponds to a Windows language ID. ISLANG_NORWEGIAN_NYNORSK ISLANG_NORWEGIAN_NYNORSK is a predefined constant that corresponds to a Windows language ID. ISLANG_POLISH_STANDARD ISLANG_POLISH_STANDARD is a predefined constant that corresponds to a Windows language ID. For more information about how to use this constant. see Language IDs. see Language IDs. see Language IDs. InstallShield InstallScript Language Reference Guide 137 .Chapter 4: Predefined Constants ISLANG_NORWEGIAN ISLANG_NORWEGIAN ISLANG_NORWEGIAN is a predefined constant that corresponds to a Windows language ID. For more information about how to use this constant. For more information about how to use this constant. For more information about how to use this constant. ISLANG_PORTUGUESE_BRAZILIAN ISLANG_PORTUGUESE_BRAZILIAN is a predefined constant that corresponds to a Windows language ID. ISLANG_POLISH ISLANG_POLISH is a predefined constant that corresponds to a Windows language ID. see Language IDs. see Language IDs. ISLANG_NORWEGIAN_BOKMAL ISLANG_NORWEGIAN_BOKMAL is a predefined constant that corresponds to a Windows language ID. For more information about how to use this constant. For more information about how to use this constant. see Language IDs. see Language IDs.

For more information about how to use this constant. For more information about how to use this constant.Chapter 4: Predefined Constants ISLANG_PORTUGUESE_STANDARD ISLANG_PORTUGUESE_STANDARD ISLANG_PORTUGUESE_STANDARD is a predefined constant that corresponds to a Windows language ID. see Language IDs. ISLANG_RUSSIAN_STANDARD ISLANG_RUSSIAN_STANDARD is a predefined constant that corresponds to a Windows language ID. ISLANG_SERBIAN_LATIN ISLANG_SERBIAN_LATIN is a predefined constant that corresponds to a Windows language ID. see Language IDs. see Language IDs. ISLANG_ROMANIAN_STANDARD ISLANG_ROMANIAN_STANDARD is a predefined constant that corresponds to a Windows language ID. ISLANG_RUSSIAN ISLANG_RUSSIAN is a predefined constant that corresponds to a Windows language ID. see Language IDs. 138 InstallShield InstallScript Language Reference Guide . see Language IDs. ISLANG_ROMANIAN ISLANG_ROMANIAN is a predefined constant that corresponds to a Windows language ID. For more information about how to use this constant. For more information about how to use this constant. see Language IDs. For more information about how to use this constant. ISLANG_SERBIAN_CYRILLIC ISLANG_SERBIAN_CYRILLIC is a predefined constant that corresponds to a Windows language ID. For more information about how to use this constant. see Language IDs. For more information about how to use this constant.

see Language IDs. ISLANG_SLOVAK_STANDARD ISLANG_SLOVAK_STANDARD is a predefined constant that corresponds to a Windows language ID. see Language IDs. ISLANG_SPANISH ISLANG_SPANISH is a predefined constant that corresponds to a Windows language ID. For more information about how to use this constant. For more information about how to use this constant. For more information about how to use this constant.Chapter 4: Predefined Constants ISLANG_SLOVAK ISLANG_SLOVAK ISLANG_SLOVAK is a predefined constant that corresponds to a Windows language ID. see Language IDs. For more information about how to use this constant. For more information about how to use this constant. see Language IDs. InstallShield InstallScript Language Reference Guide 139 . ISLANG_SPANISH_BOLIVIA ISLANG_SPANISH_BOLIVIA is a predefined constant that corresponds to a Windows language ID. ISLANG_SLOVENIAN ISLANG_SLOVENIAN is a predefined constant that corresponds to a Windows language ID. ISLANG_SPANISH_ARGENTINA ISLANG_SPANISH_ARGENTINA is a predefined constant that corresponds to a Windows language ID. see Language IDs. see Language IDs. ISLANG_SLOVENIAN_STANDARD ISLANG_SLOVENIAN_STANDARD is a predefined constant that corresponds to a Windows language ID. For more information about how to use this constant. For more information about how to use this constant. see Language IDs.

For more information about how to use this constant. ISLANG_SPANISH_COLOMBIA ISLANG_SPANISH_COLOMBIA is a predefined constant that corresponds to a Windows language ID. see Language IDs. ISLANG_SPANISH_GUATEMALA ISLANG_SPANISH_GUATEMALA is a predefined constant that corresponds to a Windows language ID. ISLANG_SPANISH_DOMINICANREPUBLIC ISLANG_SPANISH_DOMINICANREPUBLIC is a predefined constant that corresponds to a Windows language ID. see Language IDs. see Language IDs. see Language IDs. see Language IDs. ISLANG_SPANISH_ECUADOR ISLANG_SPANISH_ECUADOR is a predefined constant that corresponds to a Windows language ID. For more information about how to use this constant. 140 InstallShield InstallScript Language Reference Guide . For more information about how to use this constant. ISLANG_SPANISH_ELSALVADOR ISLANG_SPANISH_ELSALVADOR is a predefined constant that corresponds to a Windows language ID. see Language IDs. For more information about how to use this constant. see Language IDs. For more information about how to use this constant. For more information about how to use this constant.Chapter 4: Predefined Constants ISLANG_SPANISH_CHILE ISLANG_SPANISH_CHILE ISLANG_SPANISH_CHILE is a predefined constant that corresponds to a Windows language ID. ISLANG_SPANISH_COSTARICA ISLANG_SPANISH_COSTARICA is a predefined constant that corresponds to a Windows language ID. For more information about how to use this constant.

see Language IDs.Chapter 4: Predefined Constants ISLANG_SPANISH_HONDURAS ISLANG_SPANISH_HONDURAS ISLANG_SPANISH_HONDURAS is a predefined constant that corresponds to a Windows language ID. InstallShield InstallScript Language Reference Guide 141 . see Language IDs. ISLANG_SPANISH_PANAMA ISLANG_SPANISH_PANAMA is a predefined constant that corresponds to a Windows language ID. For more information about how to use this constant. ISLANG_SPANISH_MEXICAN ISLANG_SPANISH_MEXICAN is a predefined constant that corresponds to a Windows language ID. see Language IDs. For more information about how to use this constant. For more information about how to use this constant. see Language IDs. ISLANG_SPANISH_NICARAGUA ISLANG_SPANISH_NICARAGUA is a predefined constant that corresponds to a Windows language ID. ISLANG_SPANISH_PARAGUAY ISLANG_SPANISH_PARAGUAY is a predefined constant that corresponds to a Windows language ID. For more information about how to use this constant. see Language IDs. For more information about how to use this constant. For more information about how to use this constant. ISLANG_SPANISH_MODERNSORT ISLANG_SPANISH_MODERNSORT is a predefined constant that corresponds to a Windows language ID. ISLANG_SPANISH_PERU ISLANG_SPANISH_PERU is a predefined constant that corresponds to a Windows language ID. see Language IDs. see Language IDs. For more information about how to use this constant.

For more information about how to use this constant. 142 InstallShield InstallScript Language Reference Guide . For more information about how to use this constant. see Language IDs. For more information about how to use this constant. For more information about how to use this constant. For more information about how to use this constant. see Language IDs. ISLANG_SPANISH_URUGUAY ISLANG_SPANISH_URUGUAY is a predefined constant that corresponds to a Windows language ID. For more information about how to use this constant. ISLANG_SPANISH_TRADITIONALSORT ISLANG_SPANISH_TRADITIONALSORT is a predefined constant that corresponds to a Windows language ID. ISLANG_SWEDISH_FINLAND ISLANG_SWEDISH_FINLAND is a predefined constant that corresponds to a Windows language ID. see Language IDs. see Language IDs.Chapter 4: Predefined Constants ISLANG_SPANISH_PUERTORICO ISLANG_SPANISH_PUERTORICO ISLANG_SPANISH_PUERTORICO is a predefined constant that corresponds to a Windows language ID. see Language IDs. ISLANG_SPANISH_VENEZUELA ISLANG_SPANISH_VENEZUELA is a predefined constant that corresponds to a Windows language ID. For more information about how to use this constant. ISLANG_SWEDISH ISLANG_SWEDISH is a predefined constant that corresponds to a Windows language ID. see Language IDs. see Language IDs. ISLANG_SWEDISH_STANDARD ISLANG_SWEDISH_STANDARD is a predefined constant that corresponds to a Windows language ID.

ISLANG_TURKISH ISLANG_TURKISH is a predefined constant that corresponds to a Windows language ID. For more information about how to use this constant. For more information about how to use this constant. ISLANG_UKRAINIAN ISLANG_UKRAINIAN is a predefined constant that corresponds to a Windows language ID. see Language IDs. see Language IDs. For more information about how to use this constant. For more information about how to use this constant. see Language IDs. For more information about how to use this constant. ISLANG_UKRAINIAN_STANDARD ISLANG_UKRAINIAN_STANDARD is a predefined constant that corresponds to a Windows language ID. see Language IDs. ISLANG_THAI_STANDARD ISLANG_THAI_STANDARD is a predefined constant that corresponds to a Windows language ID. InstallShield InstallScript Language Reference Guide 143 . For more information about how to use this constant.Chapter 4: Predefined Constants ISLANG_THAI ISLANG_THAI ISLANG_THAI is a predefined constant that corresponds to a Windows language ID. see Language IDs. see Language IDs. see Language IDs. ISLANG_TURKISH_STANDARD ISLANG_TURKISH_STANDARD is a predefined constant that corresponds to a Windows language ID. For more information about how to use this constant. ISLANG_VIETNAMESE ISLANG_VIETNAMESE is a predefined constant that corresponds to a Windows language ID.

Used With • FeatureFilterOS ISOSL_NT40 ISOSL_NT40 is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.Chapter 4: Predefined Constants ISLANG_VIETNAMESE_STANDARD ISLANG_VIETNAMESE_STANDARD ISLANG_VIETNAMESE_STANDARD is a predefined constant that corresponds to a Windows language ID. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. see Language IDs. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Used With • FeatureFilterOS ISOSL_SUPPORTED ISOSL_SUPPORTED is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. ISOSL_ALL ISOSL_ALL is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • FeatureFilterOS ISOSL_NT40_ALPHA ISOSL_NT40_ALPHA is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. 144 InstallShield InstallScript Language Reference Guide . For more information about how to use this constant.

You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Used With • FeatureFilterOS ISOSL_WIN98 ISOSL_WIN98 is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. Used With • FeatureFilterOS ISOSL_WIN2000_ALPHA ISOSL_WIN2000_ALPHA is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • FeatureFilterOS InstallShield InstallScript Language Reference Guide 145 .Chapter 4: Predefined Constants ISOSL_WIN2000 Used With • FeatureFilterOS ISOSL_WIN2000 ISOSL_WIN2000 is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • FeatureFilterOS ISOSL_WIN95 ISOSL_WIN95 is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant.

ISOSL_WINME is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Used With • FeatureFilterOS ISOSL_WINXP ISOSL_WINXP is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. 146 InstallShield InstallScript Language Reference Guide . Used With • FeatureFilterOS ISOSL_WINSERVER2003 ISOSL_WINSERVER2003 is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant.Chapter 4: Predefined Constants ISOSL_WINME See Also Predefined Constants ISOSL_WINME PROJECT This information applies to InstallScript projects. Used With • FeatureFilterOS ISOS_ST_ALL PROJECT This information applies to InstallScript projects.

You cannot change the value of a predefined constant. ISOS_ST_ENTERPRISE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. ISOS_ST_DATACENTER is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • FeatureFilterOS ISOS_ST_BACKOFFICE PROJECT This information applies to InstallScript projects. InstallShield InstallScript Language Reference Guide 147 . Used With • FeatureFilterOS ISOS_ST_DATACENTER PROJECT This information applies to InstallScript projects.Chapter 4: Predefined Constants ISOS_ST_BACKOFFICE ISOS_ST_ALL is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. ISOS_ST_BACKOFFICE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Used With • FeatureFilterOS ISOS_ST_ENTERPRISE PROJECT This information applies to InstallScript projects. You cannot change the value of a predefined constant.

ISOS_ST_PROC_ARCH_32 is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. ISOS_ST_PROC_ARCH_AMD64 is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. Used With • FeatureFilterOS ISOS_ST_PROC_ARCH_AMD64 PROJECT This information applies to InstallScript projects. Used With • FeatureFilterOS 148 InstallShield InstallScript Language Reference Guide .Chapter 4: Predefined Constants ISOS_ST_PROC_ARCH_32 Used With • FeatureFilterOS ISOS_ST_PROC_ARCH_32 PROJECT This information applies to InstallScript projects. ISOS_ST_PROC_ARCH_IA64 is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • FeatureFilterOS ISOS_ST_PROC_ARCH_IA64 PROJECT This information applies to InstallScript projects.

Used With • FeatureFilterOS InstallShield InstallScript Language Reference Guide 149 . Used With • FeatureFilterOS ISOS_ST_SMALLBUSINESS PROJECT This information applies to InstallScript projects. You cannot change the value of a predefined constant.Chapter 4: Predefined Constants ISOS_ST_SERVER ISOS_ST_SERVER PROJECT This information applies to InstallScript projects. You cannot change the value of a predefined constant. ISOS_ST_SERVER is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. ISOS_ST_SMALLBUSINESS_RESTRICTED is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • FeatureFilterOS ISOS_ST_SMALLBUSINESS_RESTRICTED PROJECT This information applies to InstallScript projects. You cannot change the value of a predefined constant. ISOS_ST_SMALLBUSINESS is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.

Used With • FeatureFilterOS ISOS_ST_XP_HOME PROJECT This information applies to InstallScript projects. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Used With • FeatureFilterOS 150 InstallShield InstallScript Language Reference Guide . ISOS_ST_XP_HOME is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.Chapter 4: Predefined Constants ISOS_ST_TERMINAL ISOS_ST_TERMINAL PROJECT This information applies to InstallScript projects. You cannot change the value of a predefined constant. Used With • FeatureFilterOS ISOS_ST_WORKSTATION PROJECT This information applies to InstallScript projects. ISOS_ST_WORKSTATION is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. ISOS_ST_TERMINAL is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.

Used With • TextSubGetValue InstallShield InstallScript Language Reference Guide 151 . ISUS_TEXTSUB_INTERVAL can be set as a numeric string indicating the number of days. It can be set as a string value. ISUS_TEXTSUB_HOST ISUS_TEXTSUB_HOST is a predefined constant used to represent the Host property value in the InstallShield user interface. ISOS_ST_XP_PRO is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant.Chapter 4: Predefined Constants ISOS_ST_XP_PRO ISOS_ST_XP_PRO PROJECT This information applies to InstallScript projects. The UPDATESERVICECOMPONENT is still available for use. Used With • FeatureFilterOS ISUS_AGENT_FEATURE This constant contains the name of the Update Service agent sub-feature. ISUS_MAIN_FEATURE This script variable serves the same purpose as the UPDATESERVICECOMPONENT which specifies the component with the files needed for installing Update Service. Used With • TextSubGetValue ISUS_TEXTSUB_INTERVAL ISUS_TEXTSUB_INTERVAL is a predefined constant used to represent the Update Check Interval property value in the InstallShield user interface.

Used With • TextSubGetValue 152 InstallShield InstallScript Language Reference Guide .Chapter 4: Predefined Constants ISUS_TEXTSUB_LANGUAGE ISUS_TEXTSUB_LANGUAGE ISUS_TEXTSUB_LANGUAGE is a predefined constant used to represent the language property value in the InstallShield user interface. Used With • TextSubGetValue ISUS_TEXTSUB_MANAGER ISUS_TEXTSUB_MANAGER is a predefined constant used to represent the Install Manager property in the InstallShield user interface. ISUS_TEXTSUB_LANGUAGE can be set as a numeric string to indicate the language (decimal value). ISUS_TEXTSUB_MANAGER should not be set manually. Used With • TextSubGetValue ISUS_TEXTSUB_LOGO ISUS_TEXTSUB_LOGO is a predefined constant used to represent the company logo property in the InstallShield user interface. ISUS_TEXTSUB_VERSION can be set as a string. Used With • TextSubGetValue ISUS_TEXTSUB_VERSION ISUS_TEXTSUB_VERSION is a predefined constant used to represent the version number in the InstallShield user interface. ISUS_TEXTSUB_LOGO can be set as a string. Call UpdateServiceEnableUpdateManagerInstall instead.

You cannot change the value of a predefined constant. InstallShield InstallScript Language Reference Guide 153 . You cannot change the value of a predefined constant. Used With • GetSystemInfo IS_ALPHA IS_ALPHA is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. Used With • GetSystemInfo IS_CDROM IS_CDROM is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.Chapter 4: Predefined Constants ISUS_UPDATEMANAGER_FEATURE ISUS_UPDATEMANAGER_FEATURE This constant contains the name of the Update Service Manager feature. Used With • GetSystemInfo IS_486 IS_486 is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. The name of the Update Service Manager feature should be enabled or disabled by calling UpdateServiceEnableUpdateManagerInstall. You cannot change the value of a predefined constant. IS_386 IS_386 is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.

Used With • GetSystemInfo IS_FIXED IS_FIXED is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Used With • QueryProgItem 154 InstallShield InstallScript Language Reference Guide . You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Used With • GetSystemInfo IS_FOLDER IS_FOLDER is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • • QueryProgItem ReplaceFolderIcon IS_ITEM IS_ITEM is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.Chapter 4: Predefined Constants IS_EGA Used With • GetSystemInfo IS_EGA IS_EGA is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.

Used With • GetSystemInfo IS_REMOTE IS_REMOTE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • GetSystemInfo IS_REMOVABLE IS_REMOVABLE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • GetSystemInfo IS_SVGA IS_SVGA is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • GetSystemInfo InstallShield InstallScript Language Reference Guide 155 . You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant.Chapter 4: Predefined Constants IS_PENTIUM • ReplaceFolderIcon IS_PENTIUM IS_PENTIUM is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant.

Used With • GetSystemInfo 156 InstallShield InstallScript Language Reference Guide .Chapter 4: Predefined Constants IS_UNKNOWN IS_UNKNOWN IS_UNKNOWN is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Used With • GetSystemInfo IS_WINDOWS IS_WINDOWS is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Used With • GetSystemInfo IS_UVGA IS_UVGA is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • GetSystemInfo IS_VGA IS_VGA is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.

You cannot change the value of a predefined constant.Chapter 4: Predefined Constants IS_WINDOWS9X IS_WINDOWS9X IS_WINDOWS9X is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. Used With • GetSystemInfo IS_XVGA IS_XVGA is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • GetSystemInfo IS_WINDOWSNT IS_WINDOWSNT is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • GetSystemInfo KBYTES KBYTES is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • ConvertSizeToUnits InstallShield InstallScript Language Reference Guide 157 . You cannot change the value of a predefined constant. You cannot change the value of a predefined constant.

Used With • • DoInstall LaunchAppAndWait 158 InstallShield InstallScript Language Reference Guide . LAAW_OPTION_HIDDEN is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. LAAW_OPTION_MAXIMIZED is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Used With • • DoInstall LaunchAppAndWait LAAW_OPTION_MAXIMIZED PROJECT This information applies to InstallScript projects.Chapter 4: Predefined Constants LAAW_OPTION_HIDDEN LAAW_OPTION_HIDDEN PROJECT This information applies to InstallScript projects. LAAW_OPTION_MINIMIZED is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • • DoInstall LaunchAppAndWait LAAW_OPTION_MINIMIZED PROJECT This information applies to InstallScript projects.

Used With • • DoInstall LaunchAppAndWait LAAW_OPTION_NOWAIT PROJECT This information applies to InstallScript projects. LAAW_OPTION_NOWAIT is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. LAAW_OPTION_NO_CHANGEDIRECTORY is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • • DoInstall LaunchAppAndWait LAAW_OPTION_SET_BATCH_INSTALL PROJECT This information applies to InstallScript projects. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. LAAW_OPTION_SET_BATCH_INSTALL is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • • DoInstall LaunchAppAndWait InstallShield InstallScript Language Reference Guide 159 .Chapter 4: Predefined Constants LAAW_OPTION_NO_CHANGEDIRECTORY LAAW_OPTION_NO_CHANGEDIRECTORY PROJECT This information applies to InstallScript projects.

You cannot change the value of a predefined constant. You cannot change the value of a predefined constant.Chapter 4: Predefined Constants LAAW_OPTION_SHOW_HOURGLASS LAAW_OPTION_SHOW_HOURGLASS PROJECT This information applies to InstallScript projects. LAAW_OPTION_SHOW_HOURGLASS is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. Used With • • DoInstall LaunchAppAndWait LAAW_OPTION_WAIT PROJECT This information applies to InstallScript projects. LAAW_OPTION_WAIT is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • • DoInstall LaunchAppAndWait LAAW_OPTION_USE_CALLBACK LAAW_OPTION_USE_CALLBACK is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • • DoInstall LaunchAppAndWait 160 InstallShield InstallScript Language Reference Guide .

Used With • Is LANGUAGE LANGUAGE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.Chapter 4: Predefined Constants LANG_SUPPORTED LANG_SUPPORTED LANG_SUPPORTED is a predefined constant that is used to specify the language that an installation supports. Used With • • FileCompare VerCompare LINE_NUMBER LINE_NUMBER is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • GetSystemInfo LESS_THAN LESS_THAN is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • • FileDeleteLine FileInsertLine InstallShield InstallScript Language Reference Guide 161 . You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant.

Used With • ListSetIndex LISTLAST LISTLAST is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Used With • ListSetIndex 162 InstallShield InstallScript Language Reference Guide . You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Used With • CtrlGetSubCommand LISTBOX_SELECT LISTBOX_SELECT is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • CtrlGetSubCommand LISTFIRST LISTFIRST is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.Chapter 4: Predefined Constants LISTBOX_ENTER LISTBOX_ENTER LISTBOX_ENTER is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.

Chapter 4: Predefined Constants LISTNEXT LISTNEXT LISTNEXT is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • ListCreate LOCKEDFILE LOCKEDFILE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. Used With • ListSetIndex LISTPREV LISTPREV is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • ListSetIndex LIST_NULL LIST_NULL is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • • • • XCopyFile InstallationInfo VerUpdateFile DeinstallStart InstallShield InstallScript Language Reference Guide 163 . You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant.

You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Used With • • • • DeinstallStart Disable Enable InstallationInfo LOWER_LEFT LOWER_LEFT is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. 164 InstallShield InstallScript Language Reference Guide .Chapter 4: Predefined Constants LOGGING LOGGING LOGGING is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Used With • • PlaceBitmap PlaceWindow LWFT_OPTION_WRITE_AS_ANSI LWFT_OPTION_WRITE_AS_ANSI is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • • PlaceBitmap PlaceWindow LOWER_RIGHT LOWER_RIGHT is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.

Used With • ConvertSizeToUnits InstallShield InstallScript Language Reference Guide 165 . You cannot change the value of a predefined constant.Chapter 4: Predefined Constants LWFT_OPTION_WRITE_AS_UNICODE Used With • ListWriteToFileEx LWFT_OPTION_WRITE_AS_UNICODE LWFT_OPTION_WRITE_AS_UNICODE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. Used With • ListWriteToFileEx MAGENTA MAGENTA is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • Is MBYTES MBYTES is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • • SetColor SetTitle MATH_COPROCESSOR MATH_COPROCESSOR is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant.

MEDIA_FIELD_ADDREMOVE_NOMODIFY is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant.Chapter 4: Predefined Constants MEDIA_FIELD_ADDREMOVE_NOMODIFY MEDIA_FIELD_ADDREMOVE_NOMODIFY PROJECT This information applies to InstallScript projects. Used With • MediaGetData 166 InstallShield InstallScript Language Reference Guide . MEDIA_FIELD_ADDREMOVE_NOREMOVE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. Used With • • MediaGetData MediaGetDataEx MEDIA_FIELD_ADDREMOVE_NOREMOVE PROJECT This information applies to InstallScript projects. MEDIA_FIELD_COMPANY_NAME is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • • MediaGetData MediaGetDataEx MEDIA_FIELD_COMPANY_NAME PROJECT This information applies to InstallScript projects.

Used With • • MediaGetData MediaGetDataEx InstallShield InstallScript Language Reference Guide 167 . You cannot change the value of a predefined constant. MEDIA_FIELD_PREVIOUS_VERSIONS is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant.Chapter 4: Predefined Constants MEDIA_FIELD_MEDIA_FLAGS MEDIA_FIELD_MEDIA_FLAGS PROJECT This information applies to InstallScript projects. MEDIA_FIELD_MEDIA_FLAGS is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. MEDIA_FIELD_PRODUCT_COMMENTS is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • MediaGetData MEDIA_FIELD_PRODUCT_COMMENTS PROJECT This information applies to InstallScript projects. Used With • MediaGetData MEDIA_FIELD_PREVIOUS_VERSIONS PROJECT This information applies to InstallScript projects.

You cannot change the value of a predefined constant. MEDIA_FIELD_PRODUCT_ICON is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. Used With • MediaGetData 168 InstallShield InstallScript Language Reference Guide .Chapter 4: Predefined Constants MEDIA_FIELD_PRODUCT_EXE MEDIA_FIELD_PRODUCT_EXE PROJECT This information applies to InstallScript projects. Used With • • MediaGetData MediaGetDataEx MEDIA_FIELD_PRODUCT_NAME PROJECT This information applies to InstallScript projects. MEDIA_FIELD_PRODUCT_NAME is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. MEDIA_FIELD_PRODUCT_EXE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • MediaGetData MEDIA_FIELD_PRODUCT_ICON PROJECT This information applies to InstallScript projects.

Chapter 4: Predefined Constants MEDIA_FIELD_PRODUCT_README MEDIA_FIELD_PRODUCT_README PROJECT This information applies to InstallScript projects. You cannot change the value of a predefined constant. Used With • • MediaGetData MediaGetDataEx MEDIA_FIELD_PRODUCT_SUPPORT_CONTACT PROJECT This information applies to InstallScript projects. Used With • • MediaGetData MediaGetDataEx InstallShield InstallScript Language Reference Guide 169 . MEDIA_FIELD_PRODUCT_README is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • • MediaGetData MediaGetDataEx MEDIA_FIELD_PRODUCT_SUPPORT_PHONE PROJECT This information applies to InstallScript projects. MEDIA_FIELD_PRODUCT_SUPPORT_PHONE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. MEDIA_FIELD_PRODUCT_SUPPORT_CONTACT is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.

MEDIA_FIELD_PRODUCT_URL is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • • MediaGetData MediaGetDataEx MEDIA_FIELD_PRODUCT_UPDATE_URL PROJECT This information applies to InstallScript projects. Used With • • MediaGetData MediaGetDataEx MEDIA_FIELD_PRODUCT_URL PROJECT This information applies to InstallScript projects. MEDIA_FIELD_PRODUCT_SUPPORT_URL is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. MEDIA_FIELD_PRODUCT_UPDATE_URL is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant.Chapter 4: Predefined Constants MEDIA_FIELD_PRODUCT_SUPPORT_URL MEDIA_FIELD_PRODUCT_SUPPORT_URL PROJECT This information applies to InstallScript projects. Used With • • MediaGetData MediaGetDataEx 170 InstallShield InstallScript Language Reference Guide . You cannot change the value of a predefined constant.

MEDIA_FIELD_PRODUCT_VERSION is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. Used With • MediaGetData MEDIA_FIELD_TARGETDIR PROJECT This information applies to InstallScript projects.Chapter 4: Predefined Constants MEDIA_FIELD_PRODUCT_VERSION MEDIA_FIELD_PRODUCT_VERSION PROJECT This information applies to InstallScript projects. You cannot change the value of a predefined constant. MEDIA_FLAG_FORMAT_DIFFERENTIAL is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. Used With • MediaGetData MEDIA_FLAG_FORMAT_DIFFERENTIAL PROJECT This information applies to InstallScript projects. MEDIA_FIELD_TARGETDIR is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • MediaGetData InstallShield InstallScript Language Reference Guide 171 .

You cannot change the value of a predefined constant. Used With • MediaGetData MEDIA_PASSWORD_KEY PROJECT This information applies to InstallScript projects. MEDIA_FLAG_FORMAT_PATCH is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • MediaGetData MEDIA_FLAG_UPDATEMODE_SUPPORTED PROJECT This information applies to InstallScript projects. You cannot change the value of a predefined constant. MEDIA_FLAG_UPDATEMODE_SUPPORTED is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.Chapter 4: Predefined Constants MEDIA_FLAG_FORMAT_PATCH MEDIA_FLAG_FORMAT_PATCH PROJECT This information applies to InstallScript projects. Used With • • LogReadCustomString LogWriteCustomString 172 InstallShield InstallScript Language Reference Guide . MEDIA_PASSWORD_KEY is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions or assigned to one or more system variables. You cannot change the value of a predefined constant.

Used With • PlayMMedia InstallShield InstallScript Language Reference Guide 173 . You cannot change the value of a predefined constant.Chapter 4: Predefined Constants METAFILE METAFILE METAFILE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • SizeWindow MMEDIA_AVI MMEDIA_AVI is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • • • PlayMMedia PlaceWindow SizeWindow MMEDIA_MIDI MMEDIA_MIDI is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Used With • PlayMMedia MMEDIA_PLAYASYNCH MMEDIA_PLAYASYNCH is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant.

Used With • PlayMMedia MMEDIA_PLAYSYNCH MMEDIA_PLAYSYNCH is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Used With • PlayMMedia MMEDIA_STOP MMEDIA_STOP is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • PlayMMedia 174 InstallShield InstallScript Language Reference Guide . You cannot change the value of a predefined constant. Used With • PlayMMedia MMEDIA_WAVE MMEDIA_WAVE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant.Chapter 4: Predefined Constants MMEDIA_PLAYCONTINUOUS MMEDIA_PLAYCONTINUOUS MMEDIA_PLAYCONTINUOUS is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.

Chapter 4: Predefined Constants MODIFY MODIFY PROJECT This information applies to InstallScript projects. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. MODIFY is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • • • • • • • • • • • • • • • • • • • SelectFolder FeatureDialog SdFinish SdBitmap SdFinishReboot SdDisplayTopics SdRegisterUserEx SdShowAnyDialog AskDestPath SdShowDlgEdit2 SdAskOptionsList SdShowDlgEdit3 SdSelectFolder SdFeatureDialog2 SdFeatureMult Welcome SdShowInfoList SdStartCopy SdWelcome InstallShield InstallScript Language Reference Guide 175 . Used With • SdWelcomeMaint NEXT NEXT is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.

You cannot change the value of a predefined constant. Used With • • • SdConfirmNewDir SdConfirmRegistration AskYesNo NONEXCLUSIVE NONEXCLUSIVE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.Chapter 4: Predefined Constants NEXTBUTTON • • • • • • • • • • SdRegisterUser SdAskDestPath AskText SdFeatureDialog SdFeatureDialogAdv SdShowDlgEdit1 SdShowFileMods SdAskOptions AskPath AskOptions NEXTBUTTON NEXTBUTTON is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. 176 InstallShield InstallScript Language Reference Guide . You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Used With • • • Disable Enable Is NO NO is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.

You cannot change the value of a predefined constant. Used With • EzBatchAddString NOTEXISTS NOTEXISTS is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.Chapter 4: Predefined Constants NORMALMODE Used With • • • SdAskOptionsList AskOptions SdAskOptions NORMALMODE NORMALMODE is a predefined constant that can be used to test whether or not a setup is running in silent mode. You cannot change the value of a predefined constant. For more information. InstallShield InstallScript Language Reference Guide 177 . Used With • SERVICE_IS_PARAMS NOSET NOSET is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. NORMAL_PRIORITY_CLASS is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions or assigned to one or more system variables. You cannot change the value of a predefined constant. refer to the InstallShield system variable MODE. NORMAL_PRIORITY_CLASS PROJECT This information applies to InstallScript projects.

Used With • • • • ReplaceFolderIcon QueryProgItem AddFolderIcon FindWindow NUMBERLIST NUMBERLIST is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • FeatureFileEnum NULL NULL is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.Chapter 4: Predefined Constants NO_SUBDIR Used With • • ExistsDir ExistsDisk NO_SUBDIR PROJECT This information applies to InstallScript projects. You cannot change the value of a predefined constant. Used With • ListCreate 178 InstallShield InstallScript Language Reference Guide . You cannot change the value of a predefined constant. NO_SUBDIR is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant.

You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant.Chapter 4: Predefined Constants OFF OFF OFF is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • DeleteDir OTHER_FAILURE OTHER_FAILURE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. InstallShield InstallScript Language Reference Guide 179 . Used With • StatusUpdate OK OK is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • EnterDisk ON ON is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. Used With • StatusUpdate ONLYDIR ONLYDIR is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant.

You cannot change the value of a predefined constant. You cannot change the value of a predefined constant.Chapter 4: Predefined Constants OUT_OF_DISK_SPACE Used With • • • • • FileDeleteLine VerUpdateFile FileCompare FileGrep FileInsertLine OUT_OF_DISK_SPACE OUT_OF_DISK_SPACE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • • • PathAdd PathFind PathMove 180 InstallShield InstallScript Language Reference Guide . Used With • GetSystemInfo PARTIAL PARTIAL is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • • • • VerUpdateFile FileInsertLine FileDeleteLine VerSearchAndUpdateFile PARALLEL PARALLEL is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant.

You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Used With • ParsePath PATH_EXISTS » InstallScript Language Reference PATH_EXISTS is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. Used With • • Disable Enable PERSONAL PERSONAL is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • Is PCRESTORE PROJECT This information applies to InstallScript projects. PCRESTORE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. InstallShield InstallScript Language Reference Guide 181 .Chapter 4: Predefined Constants PATH • PathDelete PATH PATH is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant.

You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Used With • SERVICE_IS_PARAMS REBOOTED REBOOTED is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. For more information. refer to the InstallScript system variable MODE. in the Windows folder. You cannot change the value of a predefined constant. RED RED is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • • SetColor SetTitle 182 InstallShield InstallScript Language Reference Guide . Used With • Is RECORDMODE RECORDMODE is a predefined constant that can be used to test whether or not a setup is automatically generating a silent setup file (. READ_CONTROL is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions or assigned to one or more system variables.Chapter 4: Predefined Constants READ_CONTROL Used With • ProgDefGroupType READ_CONTROL PROJECT This information applies to InstallScript projects.iss file). which is a record of the setup input.

Chapter 4: Predefined Constants REGDBREMOTEREGCONNECTED REGDBREMOTEREGCONNECTED REGDBREMOTEREGCONNECTED is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. Used With • • RegDBGetItem RegDBSetItem REGDB_APPPATH_DEFAULT REGDB_APPPATH_DEFAULT is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. Used With • Is REGDB_APPPATH REGDB_APPPATH is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • • RegDBGetItem RegDBSetItem REGDB_BINARY REGDB_BINARY is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Used With • • • RegDBSetAppInfo RegDBGetKeyValueEx RegDBSetKeyValueEx InstallShield InstallScript Language Reference Guide 183 .

You cannot change the value of a predefined constant. Used With • RegDBConnectRegistry REGDB_ERR_INITIALIZATION REGDB_ERR_INITIALIZATION is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. Used With • RegDBConnectRegistry REGDB_ERR_CORRUPTEDREGISTRY REGDB_ERR_CORRUPTEDREGISTRY is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • RegDBConnectRegistry 184 InstallShield InstallScript Language Reference Guide . You cannot change the value of a predefined constant. You cannot change the value of a predefined constant.Chapter 4: Predefined Constants REGDB_ERR_CONNECTIONEXISTS • • RegDBGetAppInfo RegDBSetKeyValueEx REGDB_ERR_CONNECTIONEXISTS REGDB_ERR_CONNECTIONEXISTS is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • RegDBConnectRegistry REGDB_ERR_INVALIDHANDLE REGDB_ERR_INVALIDHANDLE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.

REGDB_KEYPATH_DOTNET_10 REGDB_KEYPATH_DOTNET_10 is a predefined constant whose value is the registry location (not including the root key) of the registry key for version 1.1.50727\. that is.NET Framework. Software\Microsoft\NET Framework Setup\NDP\v2. This predefined constant is also supported when using the Is funtion. Software\Microsoft\NET Framework Setup\NDP\v1.NET Framework. This predefined constant is also supported when using the Is funtion.0 of the . You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Used With • Is REGDB_KEYPATH_DOTNET_11 REGDB_KEYPATH_DOTNET_11 is a predefined constant whose value is the registry location (not including the root key) of the registry key for version 1. You cannot change the value of a predefined constant. Software\Microsoft\Windows\CurrentVersion\App Paths\. that is.1 of the .0.Chapter 4: Predefined Constants REGDB_ERR_INVALIDNAME REGDB_ERR_INVALIDNAME REGDB_ERR_INVALIDNAME is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You can use this constant to specify a key when calling a general registry-related function. Used With • RegDBConnectRegistry REGDB_KEYPATH_APPPATHS REGDB_KEYPATH_APPPATHS is a predefined constant whose value is the registry location (not including the root key) of the general application paths key.4322\. You can use this constant to specify a key when calling a general registry-related function. InstallShield InstallScript Language Reference Guide 185 . that is. You can use this constant to specify a key when calling a general registry-related function.

You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. that is. You can use this constant to specify a key when calling a general registry-related function. You can use this constant to specify a key when calling a general registry-related function.50215\.0. that is. Software\Microsoft\Windows\CurrentVersion\RunOnceEx\. You can use this constant to specify a key when calling a general registry-related function. You cannot change the value of a predefined constant. Used With • Is REGDB_KEYPATH_RUN REGDB_KEYPATH_RUN is a predefined constant whose value is the registry location (not including the root key) of the general application paths key. Software\Microsoft\Windows\CurrentVersion\RunOnce\. 186 InstallShield InstallScript Language Reference Guide . This predefined constant is also supported when using the Is funtion.0 of the . that is. You can use this constant to specify a key when calling a general registry-related function.Chapter 4: Predefined Constants REGDB_KEYPATH_DOTNET_20 Used With • Is REGDB_KEYPATH_DOTNET_20 REGDB_KEYPATH_DOTNET_20 is a predefined constant whose value is the registry location (not including the root key) of the registry key for version 2. Software\Microsoft\NET Framework Setup\NDP\v2. REGDB_KEYPATH_RUNONCEEX REGDB_KEYPATH_RUNONCEEX is a predefined constant whose value is the registry location (not including the root key) of the general application paths key. that is. REGDB_KEYPATH_RUNONCE REGDB_KEYPATH_RUNONCE is a predefined constant whose value is the registry location (not including the root key) of the general application paths key. You cannot change the value of a predefined constant.NET Framework. Software\Microsoft\Windows\CurrentVersion\Run\.

Software\Microsoft\Windows NT\CurrentVersion\. Windows 95. Software\Microsoft\Windows\CurrentVersion\Uninstall\. that is.Chapter 4: Predefined Constants REGDB_KEYPATH_SHAREDDLLS REGDB_KEYPATH_SHAREDDLLS REGDB_KEYPATH_SHAREDDLLS is a predefined constant whose value is the registry location (not including the root key) of the general application paths key. You cannot change the value of a predefined constant. Software\Microsoft\Windows\CurrentVersion\. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Windows 2000. You can use this constant to specify a key when calling a general registry-related function. You cannot change the value of a predefined constant. You can use this constant to specify a key when calling a general registry-related function. REGDB_KEYPATH_WINNTCURRVER REGDB_KEYPATH_WINNTCURRVER is a predefined constant whose value is the registry location (not including the root key) of the Windows NT current version key. Software\Microsoft\Windows\CurrentVersion\SharedDLLs\. that is. that is. and Windows Me. You can use this constant to specify a key when calling a general registry-related function. that is. REGDB_KEYPATH_WINCURRVER REGDB_KEYPATH_WINCURRVER is a predefined constant whose value is the registry location (not including the root key) of the Windows current version key. and Windows XP and later. REGDB_KEYPATH_WINCURRVER_AUTO The value of this system variable is REGDB_KEYPATH_WINCURRVER on Windows 95. and REGDB_KEYPATH_WINNTCURRVER on Windows NT. You can use this constant to specify a key when calling a general registry-related function. REGDB_KEYPATH_UNINSTALL REGDB_KEYPATH_UNINSTALL is a predefined constant whose value is the registry location (not including the root key) of the general uninstallation key for applications. InstallShield InstallScript Language Reference Guide 187 .

You cannot change the value of a predefined constant. You cannot change the value of a predefined constant.Chapter 4: Predefined Constants REGDB_KEYS REGDB_KEYS REGDB_KEYS is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • RegDBQueryKey REGDB_NAMES REGDB_NAMES is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. Used With • • • • RegDBGetAppInfo RegDBGetKeyValueEx RegDBSetKeyValueEx RegDBSetAppInfo REGDB_STRING REGDB_STRING is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. Used With • • RegDBGetAppInfo RegDBGetKeyValueEx 188 InstallShield InstallScript Language Reference Guide . Used With • RegDBQueryKey REGDB_NUMBER REGDB_NUMBER is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.

Used With • • RegDBGetItem RegDBSetItem InstallShield InstallScript Language Reference Guide 189 . You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant.Chapter 4: Predefined Constants REGDB_STRING_EXPAND • • RegDBSetKeyValueEx RegDBSetAppInfo REGDB_STRING_EXPAND REGDB_STRING_EXPAND is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • • • • RegDBGetAppInfo RegDBGetKeyValueEx RegDBSetKeyValueEx RegDBSetAppInfo REGDB_UNINSTALL_COMMENTS REGDB_UNINSTALL_COMMENTS is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • • • • RegDBSetAppInfo RegDBGetKeyValueEx RegDBSetKeyValueEx RegDBGetAppInfo REGDB_STRING_MULTI REGDB_STRING_MULTI is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.

You cannot change the value of a predefined constant. Used With • • RegDBGetItem RegDBSetItem REGDB_UNINSTALL_DISPLAY_VERSION PROJECT This information applies to InstallScript projects. You cannot change the value of a predefined constant. Used With • • RegDBGetItem RegDBSetItem REGDB_UNINSTALL_HELPLINK REGDB_UNINSTALL_HELPLINK is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • • RegDBGetItem RegDBSetItem REGDB_UNINSTALL_DISPLAYICON REGDB_UNINSTALL_DISPLAYICON is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. REGDB_UNINSTALL_DISPLAY_VERSION is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. 190 InstallShield InstallScript Language Reference Guide .Chapter 4: Predefined Constants REGDB_UNINSTALL_CONTACT REGDB_UNINSTALL_CONTACT REGDB_UNINSTALL_CONTACT is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant.

You cannot change the value of a predefined constant. Used With • • RegDBGetItem RegDBSetItem InstallShield InstallScript Language Reference Guide 191 . REGDB_UNINSTALL_INSTALLLOC is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant.Chapter 4: Predefined Constants REGDB_UNINSTALL_HELPTELEPHONE Used With • • RegDBGetItem RegDBSetItem REGDB_UNINSTALL_HELPTELEPHONE REGDB_UNINSTALL_HELPTELEPHONE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • • RegDBGetItem RegDBSetItem REGDB_UNINSTALL_INSTALLDATE REGDB_UNINSTALL_INSTALLDATE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • • RegDBGetItem RegDBSetItem REGDB_UNINSTALL_INSTALLLOC PROJECT This information applies to InstallScript projects.

You cannot change the value of a predefined constant. Used With • • RegDBGetItem RegDBSetItem REGDB_UNINSTALL_LOGFILE PROJECT This information applies to InstallScript projects. Used With • • RegDBGetItem RegDBSetItem REGDB_UNINSTALL_MAINT_OPTION PROJECT This information applies to InstallScript projects. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. REGDB_UNINSTALL_LOGFILE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions or assigned to one or more system variables. 192 InstallShield InstallScript Language Reference Guide . Used With • • RegDBGetItem RegDBSetItem REGDB_UNINSTALL_LANGUAGE REGDB_UNINSTALL_LANGUAGE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.Chapter 4: Predefined Constants REGDB_UNINSTALL_INSTALLSOURCE REGDB_UNINSTALL_INSTALLSOURCE REGDB_UNINSTALL_INSTALLSOURCE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.

You cannot change the value of a predefined constant. REGDB_UNINSTALL_MINOR_VERSION is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. InstallShield InstallScript Language Reference Guide 193 .Chapter 4: Predefined Constants REGDB_UNINSTALL_MAJOR_VERSION REGDB_UNINSTALL_MAINT_OPTION is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. REGDB_UNINSTALL_MAJOR_VERSION is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • • RegDBGetItem RegDBSetItem REGDB_UNINSTALL_MINOR_VERSION PROJECT This information applies to InstallScript projects. You cannot change the value of a predefined constant. Used With • • RegDBGetItem RegDBSetItem REGDB_UNINSTALL_MODIFYPATH REGDB_UNINSTALL_MODIFYPATH is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • • RegDBGetItem RegDBSetItem REGDB_UNINSTALL_MAJOR_VERSION PROJECT This information applies to InstallScript projects. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant.

You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Used With • • RegDBGetItem RegDBSetItem REGDB_UNINSTALL_NOMODIFY REGDB_UNINSTALL_NOMODIFY is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. Used With • • RegDBGetItem RegDBSetItem REGDB_UNINSTALL_NOREPAIR REGDB_UNINSTALL_NOREPAIR is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.Chapter 4: Predefined Constants REGDB_UNINSTALL_NAME Used With • • RegDBGetItem RegDBSetItem REGDB_UNINSTALL_NAME REGDB_UNINSTALL_NAME is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • • RegDBGetItem RegDBSetItem REGDB_UNINSTALL_NOREMOVE REGDB_UNINSTALL_NOREMOVE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. 194 InstallShield InstallScript Language Reference Guide . You cannot change the value of a predefined constant.

Used With • • RegDBGetItem RegDBSetItem InstallShield InstallScript Language Reference Guide 195 . Used With • • RegDBGetItem RegDBSetItem REGDB_UNINSTALL_PUBLISHER REGDB_UNINSTALL_PUBLISHER is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Used With • • RegDBGetItem RegDBSetItem REGDB_UNINSTALL_PRODUCTID REGDB_UNINSTALL_PRODUCTID is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.Chapter 4: Predefined Constants REGDB_UNINSTALL_PRODUCTGUID Used With • • RegDBGetItem RegDBSetItem REGDB_UNINSTALL_PRODUCTGUID PROJECT This information applies to InstallScript projects. You cannot change the value of a predefined constant. REGDB_UNINSTALL_PRODUCTGUID is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.

Used With • • RegDBGetItem RegDBSetItem REGDB_UNINSTALL_REGCOMPANY REGDB_UNINSTALL_REGCOMPANY is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. REGDB_UNINSTALL_STRING is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions or assigned to one or more system variables. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Used With • • RegDBGetItem RegDBSetItem REGDB_UNINSTALL_STRING PROJECT This information applies to InstallScript projects. Used With • • RegDBGetItem RegDBSetItem REGDB_UNINSTALL_REGOWNER REGDB_UNINSTALL_REGOWNER is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.Chapter 4: Predefined Constants REGDB_UNINSTALL_README REGDB_UNINSTALL_README REGDB_UNINSTALL_README is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. 196 InstallShield InstallScript Language Reference Guide . You cannot change the value of a predefined constant.

Used With • • RegDBGetItem RegDBSetItem REGDB_UNINSTALL_VERSION PROJECT This information applies to InstallScript projects. Used With • • RegDBGetItem RegDBSetItem REGDB_UNINSTALL_URLINFOABOUT REGDB_UNINSTALL_URLINFOABOUT is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.Chapter 4: Predefined Constants REGDB_UNINSTALL_SYSTEMCOMPONENT Used With • • RegDBGetItem RegDBSetItem REGDB_UNINSTALL_SYSTEMCOMPONENT REGDB_UNINSTALL_SYSTEMCOMPONENT is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Used With • • RegDBGetItem RegDBSetItem REGDB_UNINSTALL_URLUPDATEINFO REGDB_UNINSTALL_URLUPDATEINFO is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. InstallShield InstallScript Language Reference Guide 197 . You cannot change the value of a predefined constant.

You cannot change the value of a predefined constant. You can use this constant to specify a value name when calling a general registry-related function. REGDB_VALUENAME_SP REGDB_VALUENAME_INSTALL is a predefined constant whose value is "SP". You can use this constant to specify a value name when calling a general registry-related function. You can use this constant to specify a value when calling a general registry-related function. REGDB_VALUENAME_INSTALL REGDB_VALUENAME_INSTALL is a predefined constant whose value is "Install". You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. 198 InstallShield InstallScript Language Reference Guide . You can use this constant to specify a value name when calling a general registry-related function. Used With • • RegDBGetItem RegDBSetItem REGDB_VALUENAME_APPPATH REGDB_VALUENAME_APPPATH is a predefined constant whose value is the path value name under the application path key. You cannot change the value of a predefined constant. "Path".Chapter 4: Predefined Constants REGDB_VALUENAME_APPPATH REGDB_UNINSTALL_VERSION is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Comments. You cannot change the value of a predefined constant. REGDB_VALUENAME_APPPATHDEFAULT REGDB_VALUENAME_APPPATHDEFAULT is a predefined constant whose value is the default value name under the application path key. that is. You cannot change the value of a predefined constant. You can use this constant to specify a value when calling a general registry-related function. REGDB_VALUENAME_UNINSTALL_COMMENTS REGDB_VALUENAME_UNINSTALL_COMMENTS is a predefined constant whose value is the comments value name under the application uninstallation key— that is. that is. a null string ("").

HelpLink. DisplayName. Contact. You cannot change the value of a predefined constant.Chapter 4: Predefined Constants REGDB_VALUENAME_UNINSTALL_CONTACT REGDB_VALUENAME_UNINSTALL_CONTACT REGDB_VALUENAME_UNINSTALL_CONTACT is a predefined constant whose value is the contact value name under the application uninstallation key—that is. DisplayIcon. DisplayVersion. You cannot change the value of a predefined constant. You can use this constant to specify a value name when calling a general registry-related function. You can use this constant to specify a value name when calling a general registry-related function. You cannot change the value of a predefined constant. You can use this constant to specify a value name when calling a general registry-related function. REGDB_VALUENAME_UNINSTALL_DISPLAYVERSIO N REGDB_VALUENAME_UNINSTALL_DISPLAYVERSION is a predefined constant whose value is the display version value name under the application uninstallation key—that is. REGDB_VALUENAME_UNINSTALL_DISPLAYICON REGDB_VALUENAME_UNINSTALL_DISPLAYICON is a predefined constant whose value is the display icon value name under the application uninstallation key— that is. REGDB_VALUENAME_UNINSTALL_HELPLINK REGDB_VALUENAME_UNINSTALL_HELPLINK is a predefined constant whose value is the help link value name under the application uninstallation key—that is. InstallShield InstallScript Language Reference Guide 199 . You cannot change the value of a predefined constant. You can use this constant to specify a value name when calling a general registry-related function. You cannot change the value of a predefined constant. You can use this constant to specify a value name when calling a general registry-related function. REGDB_VALUENAME_UNINSTALL_DISPLAYNAME REGDB_VALUENAME_UNINSTALL_DISPLAYNAME is a predefined constant whose value is the display name value name under the application uninstallation key—that is.

You can use this constant to specify a value name when calling a general registry-related function. You can use this constant to specify a value name when calling a general registry-related function. InstallSource. REGDB_VALUENAME_UNINSTALL_LANGUAGE REGDB_VALUENAME_UNINSTALL_LANGUAGE is a predefined constant whose value is the language value name under the application uninstallation key—that is. You cannot change the value of a predefined constant. You can use this constant to specify a value name when calling a general registry-related function. REGDB_VALUENAME_UNINSTALL_INSTALLLOCATI ON REGDB_VALUENAME_UNINSTALL_INSTALLLOCATION is a predefined constant whose value is the installation location value name under the application uninstallation key—that is. HelpTelephone. You cannot change the value of a predefined constant. 200 InstallShield InstallScript Language Reference Guide . You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. InstallDate.Chapter 4: Predefined Constants REGDB_VALUENAME_UNINSTALL_HELPTELEPHONE REGDB_VALUENAME_UNINSTALL_HELPTELEPHON E REGDB_VALUENAME_UNINSTALL_HELPTELEPHONE is a predefined constant whose value is the help telephone value name under the application uninstallation key—that is. REGDB_VALUENAME_UNINSTALL_INSTALLDATE REGDB_VALUENAME_UNINSTALL_INSTALLDATE is a predefined constant whose value is the installation date value name under the application uninstallation key—that is. REGDB_VALUENAME_UNINSTALL_INSTALLSOURCE REGDB_VALUENAME_UNINSTALL_INSTALLSOURCE is a predefined constant whose value is the installation source value name under the application uninstallation key—that is. You can use this constant to specify a value name when calling a general registry-related function. You can use this constant to specify a value name when calling a general registry-related function. Language. InstallLocation.

REGDB_VALUENAME_UNINSTALL_MINORVERSION REGDB_VALUENAME_UNINSTALL_MINORVERSION is a predefined constant whose value is the minor version value name under the application uninstallation key—that is. You cannot change the value of a predefined constant. REGDB_VALUENAME_UNINSTALL_MODIFYPATH REGDB_VALUENAME_UNINSTALL_MODIFYPATH is a predefined constant whose value is the modify path value name under the application uninstallation key— that is. LogMode.Chapter 4: Predefined Constants REGDB_VALUENAME_UNINSTALL_LOGFILE REGDB_VALUENAME_UNINSTALL_LOGFILE REGDB_VALUENAME_UNINSTALL_LOGFILE is a predefined constant whose value is the log file value name under the application uninstallation key—that is. You can use this constant to specify a value name when calling a general registry-related function. ModifyPath. You can use this constant to specify a value name when calling a general registry-related function. MinorVersion. MajorVersion. LogFile. You cannot change the value of a predefined constant. REGDB_VALUENAME_UNINSTALL_NOMODIFY REGDB_VALUENAME_UNINSTALL_NOMODIFY is a predefined constant whose value is the no modify value name under the application uninstallation key— InstallShield InstallScript Language Reference Guide 201 . REGDB_VALUENAME_UNINSTALL_MAJORVERSION REGDB_VALUENAME_UNINSTALL_MAJORVERSION is a predefined constant whose value is the major version value name under the application uninstallation key—that is. You cannot change the value of a predefined constant. REGDB_VALUENAME_UNINSTALL_LOGMODE REGDB_VALUENAME_UNINSTALL_LOGMODE is a predefined constant whose value is the log mode value name under the application uninstallation key—that is. You can use this constant to specify a value name when calling a general registry-related function. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. You can use this constant to specify a value name when calling a general registry-related function. You can use this constant to specify a value name when calling a general registry-related function.

You cannot change the value of a predefined constant. You can use this constant to specify a value name when calling a general registry-related function. You cannot change the value of a predefined constant. NoModify. ProductGuid. You can use this constant to specify a value name when calling a general registry-related function. You cannot change the value of a predefined constant. You can use this constant to specify a value name when calling a general registry-related function. You can use this constant to specify a value name when calling a general registry-related function. REGDB_VALUENAME_UNINSTALL_NOREMOVE REGDB_VALUENAME_UNINSTALL_NOREMOVE is a predefined constant whose value is the no remove value name under the application uninstallation key— that is. 202 InstallShield InstallScript Language Reference Guide . REGDB_VALUENAME_UNINSTALL_PRODUCTID REGDB_VALUENAME_UNINSTALL_PRODUCTID is a predefined constant whose value is the product ID value name under the application uninstallation key— that is.Chapter 4: Predefined Constants REGDB_VALUENAME_UNINSTALL_NOREMOVE that is. You cannot change the value of a predefined constant. ProductId. REGDB_VALUENAME_UNINSTALL_NOREPAIR REGDB_VALUENAME_UNINSTALL_NOREPAIR is a predefined constant whose value is the no repair value name under the application uninstallation key—that is. Publisher. You cannot change the value of a predefined constant. You can use this constant to specify a value name when calling a general registry-related function. You cannot change the value of a predefined constant. NoRemove. NoRepair. REGDB_VALUENAME_UNINSTALL_PUBLISHER REGDB_VALUENAME_UNINSTALL_PUBLISHER is a predefined constant whose value is the publisher value name under the application uninstallation key— that is. REGDB_VALUENAME_UNINSTALL_PRODUCTGUID REGDB_VALUENAME_UNINSTALL_PRODUCTGUID is a predefined constant whose value is the product GUID value name under the application uninstallation key—that is. You can use this constant to specify a value name when calling a general registry-related function.

You cannot change the value of a predefined constant. SystemComponent. RegCompany. REGDB_VALUENAME_UNINSTALL_SYSTEMCOMPO NENT REGDB_VALUENAME_UNINSTALL_SYSTEMCOMPONENT is a predefined constant whose value is the system compnent value name under the application uninstallation key—that is. You can use this constant to specify a value name when calling a general registry-related function. You can use this constant to specify a value name when calling a general registry-related function. UninstallString.Chapter 4: Predefined Constants REGDB_VALUENAME_UNINSTALL_README REGDB_VALUENAME_UNINSTALL_README REGDB_VALUENAME_UNINSTALL_README is a predefined constant whose value is the readme value name under the application uninstallation key—that is. REGDB_VALUENAME_UNINSTALL_REGOWNER REGDB_VALUENAME_UNINSTALL_REGOWNER is a predefined constant whose value is the reg owner value name under the application uninstallation key— that is. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. You can use this constant to specify a value name when calling a general registry-related function. You can use this constant to specify a value name when calling a general registry-related function. REGDB_VALUENAME_UNINSTALL_UNINSTALLSTRI NG REGDB_VALUENAME_UNINSTALL_UNINSTALLSTRING is a predefined constant whose value is the uninstallation string value name under the application uninstallation key—that is. You can use this constant to specify a value name when calling a general registry-related function. REGDB_VALUENAME_UNINSTALL_REGCOMPANY REGDB_VALUENAME_UNINSTALL_REGCOMPANY is a predefined constant whose value is the reg company value name under the application uninstallation key—that is. InstallShield InstallScript Language Reference Guide 203 . You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Readme. RegOwner.

Version. You cannot change the value of a predefined constant. that is. URLDateInfo. REGDB_VALUENAME_UNINSTALL_VERSION REGDB_VALUENAME_UNINSTALL_VERSION is a predefined constant whose value is the application version value name under the application uninstallation key— that is. and Windows Me) current version key. You cannot change the value of a predefined constant. Windows 95. You can use this constant to specify a value name when calling a general registry-related function. that is. URLInfoAbout.Chapter 4: Predefined Constants REGDB_VALUENAME_UNINSTALL_URLINFOABOUT REGDB_VALUENAME_UNINSTALL_URLINFOABOUT REGDB_VALUENAME_UNINSTALL_URLINFOABOUT is a predefined constant whose value is the URL info about value name under the application uninstallation key—that is. REGDB_VALUENAME_WINCURRVER_REGOWNER REGDB_VALUENAME_WINCURRVER_REGOWNER is a predefined constant whose value is the registered owner value name under the Windows (on Windows 95. and Windows Me) current version key. Windows 95. REGDB_VALUENAME_WINCURRVER_REGORGANIZA TION REGDB_VALUENAME_WINCURRVER_REGORGANIZATION is a predefined constant whose value is the registered organization value name under the Windows (on Windows 95. Windows 95. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. You can use this constant to specify a value name when calling a general registry-related function. "RegisteredOwner". and Windows Me) or Windows NT (on Windows 95. REGDB_VALUENAME_UNINSTALL_URLUPDATEINFO REGDB_VALUENAME_UNINSTALL_URLUPDATEINFO is a predefined constant whose value is the URL date info value name under the application uninstallation key—that is. and Windows Me) or Windows NT (on Windows 95. You can use this 204 InstallShield InstallScript Language Reference Guide . "RegisteredOrganization". Windows 95. You can use this constant to specify a value name when calling a general registry-related function. You can use this constant to specify a value name when calling a general registry-related function.

You cannot change the value of a predefined constant. Used With • • RegDBGetItem RegDBSetItem REGFONT_OPTION_DEFAULT REGFONT_OPTION_DEFAULT is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. Used With • • RegDBGetItem RegDBSetItem REGDB_WINCURRVER_REGOWNER REGDB_WINCURRVER_REGOWNER is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • RegisterFontResource REGFONT_OPTION_DONTBROADCASTFONTCHANG EMSG REGFONT_OPTION_DONTBROADCASTFONTCHANGEMSG is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. InstallShield InstallScript Language Reference Guide 205 . You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. REGDB_WINCURRVER_REGORGANIZATION REGDB_WINCURRVER_REGORGANIZATION is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.Chapter 4: Predefined Constants REGDB_WINCURRVER_REGORGANIZATION constant to specify a value name when calling a general registry-related function.

Chapter 4: Predefined Constants REGFONT_OPTION_DONTUPDATEREGISTRY Used With • RegisterFontResource REGFONT_OPTION_DONTUPDATEREGISTRY REGFONT_OPTION_DONTUPDATEREGISTRY is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Used With • • Disable Enable REMOTE_DRIVE REMOTE_DRIVE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. Used With • GetValidDrivesList REMOVE REMOVE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • RegisterFontResource REGISTRYFUNCTIONS_USETEXTSUBS REGISTRYFUNCTIONS_USETEXTSUBS is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • PlaceBitmap 206 InstallShield InstallScript Language Reference Guide .

You cannot change the value of a predefined constant. InstallShield InstallScript Language Reference Guide 207 . You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Used With • SdWelcomeMaint REPAIR PROJECT This information applies to InstallScript projects. Used With • GetValidDrivesList REMOVEALL PROJECT This information applies to InstallScript projects. You cannot change the value of a predefined constant. REPAIR is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • SdWelcomeMaint REPLACE REPLACE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. REMOVEALL is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.Chapter 4: Predefined Constants REMOVEABLE_DRIVE REMOVEABLE_DRIVE REMOVEABLE_DRIVE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.

You cannot change the value of a predefined constant.Chapter 4: Predefined Constants RESET Used With • • • • • ConfigAdd AddFolderIcon FileInsertLine BatchAdd ReplaceFolderIcon RESET RESET is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. Used With • FindFile RESTART RESTART is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • • • • FileGrep PathFind ConfigFind BatchFind ROOT ROOT is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. Used With • DeleteDir 208 InstallShield InstallScript Language Reference Guide .

Chapter 4: Predefined Constants RUN_MAXIMIZED RUN_MAXIMIZED RUN_MAXIMIZED is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. Used With • SelectFolder SELFREGISTER SELFREGISTER is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Used With • • • QueryProgItem AddFolderIcon ReplaceFolderIcon SELECTFOLDER SELECTFOLDER is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • • VerUpdateFile XCopyFile InstallShield InstallScript Language Reference Guide 209 . Used With • • AddFolderIcon ReplaceFolderIcon RUN_MINIMIZED RUN_MINIMIZED is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.

Used With • SERVICE_IS_PARAMS 210 InstallShield InstallScript Language Reference Guide . You cannot change the value of a predefined constant. Used With • • Enable Disable SELFREGISTRATIONPROCESS SELFREGISTRATIONPROCESS is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • GetSystemInfo SERVICE_ADAPTER PROJECT This information applies to InstallScript projects. SERVICE_ADAPTER is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions or assigned to one or more system variables. You cannot change the value of a predefined constant.Chapter 4: Predefined Constants SELFREGISTERBATCH SELFREGISTERBATCH SELFREGISTERBATCH is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Used With • Do SERIAL SERIAL is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.

You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Used With • SERVICE_IS_PARAMS SERVICE_AUTO_START PROJECT This information applies to InstallScript projects. SERVICE_AUTO_START is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions or assigned to one or more system variables. Used With • SERVICE_IS_PARAMS SERVICE_BOOT_START PROJECT This information applies to InstallScript projects. You cannot change the value of a predefined constant. Used With • SERVICE_IS_PARAMS InstallShield InstallScript Language Reference Guide 211 . SERVICE_BOOT_START is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions or assigned to one or more system variables. SERVICE_ALL_ACCESS is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions or assigned to one or more system variables.Chapter 4: Predefined Constants SERVICE_ALL_ACCESS SERVICE_ALL_ACCESS PROJECT This information applies to InstallScript projects.

Chapter 4: Predefined Constants SERVICE_CHANGE_CONFIG SERVICE_CHANGE_CONFIG PROJECT This information applies to InstallScript projects. SERVICE_CHANGE_CONFIG is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions or assigned to one or more system variables. Used With • SERVICE_IS_STATUS SERVICE_DEMAND_START PROJECT This information applies to InstallScript projects. You cannot change the value of a predefined constant. SERVICE_DEMAND_START is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions or assigned to one or more system variables. Used With • SERVICE_IS_PARAMS SERVICE_CONTINUE_PENDING PROJECT This information applies to InstallScript projects. You cannot change the value of a predefined constant. Used With • SERVICE_IS_PARAMS 212 InstallShield InstallScript Language Reference Guide . SERVICE_CONTINUE_PENDING is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions or assigned to one or more system variables. You cannot change the value of a predefined constant.

Used With • SERVICE_IS_PARAMS InstallShield InstallScript Language Reference Guide 213 . SERVICE_ERROR_CRITICAL is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions or assigned to one or more system variables. You cannot change the value of a predefined constant. SERVICE_ENUMERATE_DEPENDENTS is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions or assigned to one or more system variables. Used With • SERVICE_IS_PARAMS SERVICE_ERROR_CRITICAL PROJECT This information applies to InstallScript projects. SERVICE_DISABLED is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions or assigned to one or more system variables. You cannot change the value of a predefined constant.Chapter 4: Predefined Constants SERVICE_DISABLED SERVICE_DISABLED PROJECT This information applies to InstallScript projects. You cannot change the value of a predefined constant. Used With • SERVICE_IS_PARAMS SERVICE_ENUMERATE_DEPENDENTS PROJECT This information applies to InstallScript projects.

You cannot change the value of a predefined constant. SERVICE_ERROR_NORMAL is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions or assigned to one or more system variables. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. SERVICE_ERROR_SEVERE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions or assigned to one or more system variables. Used With • SERVICE_IS_PARAMS SERVICE_ERROR_SEVERE PROJECT This information applies to InstallScript projects. Used With • SERVICE_IS_PARAMS SERVICE_ERROR_NORMAL PROJECT This information applies to InstallScript projects. Used With • SERVICE_IS_PARAMS 214 InstallShield InstallScript Language Reference Guide .Chapter 4: Predefined Constants SERVICE_ERROR_IGNORE SERVICE_ERROR_IGNORE PROJECT This information applies to InstallScript projects. SERVICE_ERROR_IGNORE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions or assigned to one or more system variables.

You cannot change the value of a predefined constant. SERVICE_FILE_SYSTEM_DRIVER is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions or assigned to one or more system variables.Chapter 4: Predefined Constants SERVICE_FILE_SYSTEM_DRIVER SERVICE_FILE_SYSTEM_DRIVER PROJECT This information applies to InstallScript projects. SERVICE_FLAG_DIFX_IA64 PROJECT This information applies to the following project types: • InstallScript InstallShield InstallScript Language Reference Guide 215 . SERVICE_FLAG_DIFX_AMD64 PROJECT This information applies to the following project types: • • InstallScript InstallScript Object SERVICE_FLAG_DIFX_AMD64 is a predefined constant used to represent a value that can be set as a bit flag in the system variable ENABLED_ISERVICES. You cannot change the value of a predefined constant. Used With • SERVICE_IS_PARAMS SERVICE_FLAG_DIFX_32 PROJECT This information applies to the following project types: • • InstallScript InstallScript Object SERVICE_FLAG_DIFX_32 is a predefined constant used to represent a value that can be set as a bit flag in the system variable ENABLED_ISERVICES. You cannot change the value of a predefined constant.

216 InstallShield InstallScript Language Reference Guide . You cannot change the value of a predefined constant. If the expression ENABLED_ISERVICES & SERVICE_FLAG_ISFONTREG is equal to a non-zero value.Chapter 4: Predefined Constants SERVICE_FLAG_ISFONTREG • InstallScript Object SERVICE_FLAG_DIFX_IA64 is a predefined constant used to represent a value that can be set as a bit flag in the system variable ENABLED_ISERVICES. Used With • SERVICE_IS_PARAMS SERVICE_INTERROGATE PROJECT This information applies to InstallScript projects. SERVICE_FLAG_ISFONTREG PROJECT This information applies to the following project types: • • InstallScript InstallScript Object SERVICE_FLAG_ISFONTREG is a predefined constant used to represent a value that can be set as a bit flag in the system variable ENABLED_ISERVICES. SERVICE_INTERROGATE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions or assigned to one or more system variables. You cannot change the value of a predefined constant. SERVICE_INTERACTIVE_PROCESS PROJECT This information applies to InstallScript projects. You cannot change the value of a predefined constant. global font registration is currently enabled. SERVICE_INTERACTIVE_PROCESS is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions or assigned to one or more system variables. You cannot change the value of a predefined constant.

SERVICE_ISUPDATE is a predefined constant used to represent a value that can be set as a bit flag in the system variable ENABLED_ISERVICES. For example. Used With • Disable SERVICE_ISUPDATE PROJECT This information applies to InstallScript projects. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. SERVICE_KERNEL_DRIVER PROJECT This information applies to InstallScript projects. the Update Service is currently enabled. SERVICE_KERNEL_DRIVER is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions or assigned to one or more system variables.Chapter 4: Predefined Constants SERVICE_ISFONTREG Used With • SERVICE_IS_PARAMS SERVICE_ISFONTREG SERVICE_ISFONTREG is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. if the expression ENABLED_ISERVICES & SERVICE_ISUPDATE is equal to a non-zero value. Used With • SERVICE_IS_PARAMS InstallShield InstallScript Language Reference Guide 217 .

Used With • SERVICE_IS_PARAMS SERVICE_PAUSE_PENDING PROJECT This information applies to InstallScript projects. SERVICE_PAUSED is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions or assigned to one or more system variables. Used With • SERVICE_IS_STATUS 218 InstallShield InstallScript Language Reference Guide .Chapter 4: Predefined Constants SERVICE_PAUSED SERVICE_PAUSED PROJECT This information applies to InstallScript projects. SERVICE_PAUSE_PENDING is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions or assigned to one or more system variables. You cannot change the value of a predefined constant. SERVICE_PAUSE_CONTINUE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions or assigned to one or more system variables. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Used With • SERVICE_IS_STATUS SERVICE_PAUSE_CONTINUE PROJECT This information applies to InstallScript projects.

Used With • SERVICE_IS_PARAMS SERVICE_QUERY_STATUS PROJECT This information applies to InstallScript projects. SERVICE_QUERY_CONFIG is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions or assigned to one or more system variables. You cannot change the value of a predefined constant. SERVICE_RECOGNIZER_DRIVER is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions or assigned to one or more system variables. Used With • SERVICE_IS_PARAMS SERVICE_RECOGNIZER_DRIVER PROJECT This information applies to InstallScript projects. You cannot change the value of a predefined constant. SERVICE_QUERY_STATUS is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions or assigned to one or more system variables. Used With • SERVICE_IS_PARAMS InstallShield InstallScript Language Reference Guide 219 . You cannot change the value of a predefined constant.Chapter 4: Predefined Constants SERVICE_QUERY_CONFIG SERVICE_QUERY_CONFIG PROJECT This information applies to InstallScript projects.

You cannot change the value of a predefined constant. Used With • SERVICE_IS_PARAMS SERVICE_START_PENDING PROJECT This information applies to InstallScript projects. You cannot change the value of a predefined constant. SERVICE_START is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions or assigned to one or more system variables. SERVICE_RUNNING is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions or assigned to one or more system variables. SERVICE_START_PENDING is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions or assigned to one or more system variables. Used With • SERVICE_IS_STATUS SERVICE_START PROJECT This information applies to InstallScript projects. You cannot change the value of a predefined constant.Chapter 4: Predefined Constants SERVICE_RUNNING SERVICE_RUNNING PROJECT This information applies to InstallScript projects. Used With • SERVICE_IS_STATUS 220 InstallShield InstallScript Language Reference Guide .

You cannot change the value of a predefined constant. SERVICE_STOP_PENDING is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions or assigned to one or more system variables. You cannot change the value of a predefined constant. Used With • SERVICE_IS_PARAMS SERVICE_STOPPED PROJECT This information applies to InstallScript projects. Used With • SERVICE_IS_STATUS SERVICE_STOP_PENDING PROJECT This information applies to InstallScript projects. You cannot change the value of a predefined constant. Used With • SERVICE_IS_STATUS InstallShield InstallScript Language Reference Guide 221 . SERVICE_STOPPED is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions or assigned to one or more system variables.Chapter 4: Predefined Constants SERVICE_STOP SERVICE_STOP PROJECT This information applies to InstallScript projects. SERVICE_STOP is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions or assigned to one or more system variables.

Used With • SERVICE_IS_PARAMS SERVICE_USER_DEFINED_CONTROL PROJECT This information applies to InstallScript projects. Used With • SERVICE_IS_PARAMS 222 InstallShield InstallScript Language Reference Guide . SERVICE_USER_DEFINED_CONTROL is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions or assigned to one or more system variables. SERVICE_WIN32_OWN_PROCESS is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions or assigned to one or more system variables. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant.Chapter 4: Predefined Constants SERVICE_SYSTEM_START SERVICE_SYSTEM_START PROJECT This information applies to InstallScript projects. Used With • SERVICE_IS_PARAMS SERVICE_WIN32_OWN_PROCESS PROJECT This information applies to InstallScript projects. SERVICE_SYSTEM_START is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions or assigned to one or more system variables. You cannot change the value of a predefined constant.

Used With • SetupType SETUPTYPE_INFO_DESCRIPTION SETUPTYPE_INFO_DESCRIPTION is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. SERVICE_WIN32_SHARE_PROCESS is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions or assigned to one or more system variables. Used With • SERVICE_IS_PARAMS SETUPTYPE SETUPTYPE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • FeatureSetupTypeGetData InstallShield InstallScript Language Reference Guide 223 .Chapter 4: Predefined Constants SERVICE_WIN32_SHARE_PROCESS SERVICE_WIN32_SHARE_PROCESS PROJECT This information applies to InstallScript projects. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Used With • FeatureSetupTypeGetData SETUPTYPE_INFO_DISPLAYNAME SETUPTYPE_INFO_DISPLAYNAME is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant.

You cannot change the value of a predefined constant. Used With • FeatureStandardSetupTypeSet SETUPTYPE_STR_COMPLETE SETUPTYPE_STR_COMPLETE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • FeatureStandardSetupTypeSet SETUPTYPE_STR_TYPICAL SETUPTYPE_STR_TYPICAL is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.Chapter 4: Predefined Constants SETUPTYPE_STR_COMPACT SETUPTYPE_STR_COMPACT SETUPTYPE_STR_COMPACT is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. Used With • FeatureStandardSetupTypeSet SETUPTYPE_STR_CUSTOM SETUPTYPE_STR_CUSTOM is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Used With • FeatureStandardSetupTypeSet 224 InstallShield InstallScript Language Reference Guide .

SETUP_PACKAGE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions or assigned to one or more system variables.Chapter 4: Predefined Constants SETUP_PACKAGE SETUP_PACKAGE PROJECT This information applies to InstallScript projects. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Used With • • MessageBox SprintfBox SHAREDFILE SHAREDFILE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. Used With • • • • • XCopyFile VerUpdateFile DeinstallStart InstallationInfo System InstallShield InstallScript Language Reference Guide 225 . Used With • Is SEVERE SEVERE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.

SRCTARGETDIR is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. SRCINSTALLDIR is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • Is SRCINSTALLDIR NOTE SRCINSTALLDIR replaces SRCTARGETDIR. You cannot change the value of a predefined constant.Chapter 4: Predefined Constants SILENTMODE SILENTMODE SILENTMODE is a predefined constant that can be used to test whether or not a setup is running in silent mode. SKIN_LOADED PROJECT This information applies to InstallScript projects. refer to the InstallShield system variable MODE. You cannot change the value of a predefined constant. 226 InstallShield InstallScript Language Reference Guide . SKIN_LOADED is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. For more information. Used With • • VarRestore VarSave SRCTARGETDIR NOTE SRCINSTALLDIR replaces SRCTARGETDIR.

You cannot change the value of a predefined constant. Used With • SetColor InstallShield InstallScript Language Reference Guide 227 . STANDARD_RIGHTS_REQUIRED is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions or assigned to one or more system variables. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant.Chapter 4: Predefined Constants STANDARD_RIGHTS_REQUIRED Used With • • VarRestore VarSave STANDARD_RIGHTS_REQUIRED PROJECT This information applies to InstallScript projects. Used With • • • PlaceWindow Enable Disable STATUSBAR STATUSBAR is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • SERVICE_IS_PARAMS STATUS STATUS is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.

Used With • • • PlaceWindow Enable Disable STRINGLIST STRINGLIST is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. 228 InstallShield InstallScript Language Reference Guide . Used With • • • PlaceWindow Enable Disable STATUSEX STATUSEX is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.Chapter 4: Predefined Constants STATUSDLG STATUSDLG STATUSDLG is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • • • PlaceWindow Enable Disable STATUSOLD STATUSOLD is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant.

You cannot change the value of a predefined constant. Used With • • GetFont SetFont STYLE_SHADOW STYLE_SHADOW is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant.Chapter 4: Predefined Constants STYLE_BOLD Used With • ListCreate STYLE_BOLD STYLE_BOLD is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. InstallShield InstallScript Language Reference Guide 229 . You cannot change the value of a predefined constant. Used With • • GetFont SetFont STYLE_ITALIC STYLE_ITALIC is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. Used With • • GetFont SetFont STYLE_NORMAL STYLE_NORMAL is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.

Used With • • GetFont SetFont SW_MAXIMIZE SW_MAXIMIZE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.Chapter 4: Predefined Constants STYLE_UNDERLINE Used With • SetFont STYLE_UNDERLINE STYLE_UNDERLINE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • ShowProgramFolder 230 InstallShield InstallScript Language Reference Guide . You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Used With • ShowProgramFolder SW_RESTORE SW_RESTORE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • ShowProgramFolder SW_MINIMIZE SW_MINIMIZE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.

SYNCHRONIZE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions or assigned to one or more system variables. You cannot change the value of a predefined constant. InstallShield InstallScript Language Reference Guide 231 . Used With • • • System RebootDialog SdFinishReboot TBYTES TBYTES is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.Chapter 4: Predefined Constants SW_SHOW SW_SHOW SW_SHOW is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Used With • ShowProgramFolder SYNCHRONIZE PROJECT This information applies to InstallScript projects. You cannot change the value of a predefined constant. Used With • SERVICE_IS_PARAMS SYS_BOOTMACHINE SYS_BOOTMACHINE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.

You cannot change the value of a predefined constant. Used With • • • • • • • • • • FeatureSelectItem AskOptions CtrlSetMultCurSel LongPathToQuote FeatureTotalSize SelectDir FeatureAddItem FeatureIsItemSelected SdShowMsg FeatureGetData 232 InstallShield InstallScript Language Reference Guide .Chapter 4: Predefined Constants TILED Used With • ConvertSizeToUnits TILED TILED is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Used With • PlaceBitmap TIME TIME is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • GetSystemInfo TRUE TRUE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.

Chapter 4: Predefined Constants TTFONTFILEINFO_FONTTITLE TTFONTFILEINFO_FONTTITLE TTFONTFILEINFO_FONTTITLE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. UPDATESERVICECOMPONENT is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant.) Used With • • FeatureSelectItem FeatureIsItemSelected InstallShield InstallScript Language Reference Guide 233 . (Note that this component is not displayed in InstallShield. You cannot change the value of a predefined constant. UPDATESERVICECOMPONENT specifies the component with the files needed for installing the Update Service. Used With • GetTrueTypeFontFileInfo TYPICAL TYPICAL is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • • SdSetupType SetupType UPDATESERVICECOMPONENT PROJECT This information applies to InstallScript projects.

Used With • • PlaceBitmap PlaceWindow UPPER_RIGHT UPPER_RIGHT is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • Is USER_ADMINISTRATOR USER_ADMINISTRATOR is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • • PlaceBitmap PlaceWindow URL PROJECT This information applies to InstallScript projects. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant.Chapter 4: Predefined Constants UPPER_LEFT UPPER_LEFT UPPER_LEFT is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • Is 234 InstallShield InstallScript Language Reference Guide . URL is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant.

USER_POWERUSER is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.Chapter 4: Predefined Constants USER_POWERUSER USER_POWERUSER PROJECT This information applies to InstallScript projects. You cannot change the value of a predefined constant. Used With • Is USE_LOADED_SKIN PROJECT This information applies to InstallScript projects. InstallShield InstallScript Language Reference Guide 235 . USE_LOADED_SKIN is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • Is VERSION_COMPARE_RESULT_NEWER PROJECT This information applies to InstallScript projects. Used With • • Disable Enable VALID_PATH VALID_PATH is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant.

Chapter 4: Predefined Constants VERSION_COMPARE_RESULT_NEWER_NOT_SUPPORTED VERSION_COMPARE_RESULT_NEWER is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. VERSION_COMPARE_RESULT_NEWER_NOT_SUPPORTED is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. VERSION_COMPARE_RESULT_NOT_INSTALLED is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • VerProductCompareVersions VERSION_COMPARE_RESULT_OLDER PROJECT This information applies to InstallScript projects. Used With • VerProductCompareVersions VERSION_COMPARE_RESULT_NOT_INSTALLED PROJECT This information applies to InstallScript projects. 236 InstallShield InstallScript Language Reference Guide . You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Used With • VerProductCompareVersions VERSION_COMPARE_RESULT_NEWER_NOT_SUPPO RTED PROJECT This information applies to InstallScript projects.

Used With • VerSearchAndUpdateFile InstallShield InstallScript Language Reference Guide 237 . Used With • VerProductCompareVersions VERSION_PREVIOUS_VERSION_DELIMITER PROJECT This information applies to InstallScript projects. Used With • VerProductCompareVersions VER_DLL_NOT_FOUND VER_DLL_NOT_FOUND is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. VERSION_COMPARE_RESULT_SAME is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. VERSION_PREVIOUS_VERSION_DELIMITER is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant.Chapter 4: Predefined Constants VERSION_COMPARE_RESULT_SAME VERSION_COMPARE_RESULT_OLDER is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • VerProductCompareVersions VERSION_COMPARE_RESULT_SAME PROJECT This information applies to InstallScript projects. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant.

Used With • GetSystemInfo VOLUMELABEL VOLUMELABEL is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • VerSearchAndUpdateFile VIDEO VIDEO is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.Chapter 4: Predefined Constants VER_UPDATE_ALWAYS VER_UPDATE_ALWAYS VER_UPDATE_ALWAYS is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Used With • • VerUpdateFile VerSearchAndUpdateFile VER_UPDATE_COND VER_UPDATE_COND is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • GetSystemInfo 238 InstallShield InstallScript Language Reference Guide . You cannot change the value of a predefined constant.

You cannot change the value of a predefined constant. Used With • Is WELCOME WELCOME is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.Chapter 4: Predefined Constants WARNING WARNING WARNING is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. WEB_BASED_SETUP is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. Used With • SetTitle InstallShield InstallScript Language Reference Guide 239 . Used With • Welcome WHITE WHITE is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. You cannot change the value of a predefined constant. Used With • • MessageBox SprintfBox WEB_BASED_SETUP PROJECT This information applies to InstallScript projects. You cannot change the value of a predefined constant.

You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Used With • GetSystemInfo WINMINOR WINMINOR is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • Is WINMAJOR WINMAJOR is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.Chapter 4: Predefined Constants WILL_REBOOT WILL_REBOOT WILL_REBOOT is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions or event handlers. You cannot change the value of a predefined constant. You cannot change the value of a predefined constant. Used With • GetSystemInfo 240 InstallShield InstallScript Language Reference Guide . Used With • • RebootDialog SdFinishReboot WINDOWS_SHARED WINDOWS_SHARED is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions.

You cannot change the value of a predefined constant. WRITE_DAC is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions or assigned to one or more system variables. Used With • • Disable Enable WRITE_DAC PROJECT This information applies to InstallScript projects. Used With • SERVICE_IS_PARAMS WRITE_OWNER PROJECT This information applies to InstallScript projects. WRITE_OWNER is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions or assigned to one or more system variables. WOW64FSREDIRECTION is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. Used With • SERVICE_IS_PARAMS InstallShield InstallScript Language Reference Guide 241 . You cannot change the value of a predefined constant.Chapter 4: Predefined Constants WOW64FSREDIRECTION WOW64FSREDIRECTION PROJECT This information applies to InstallScript projects. You cannot change the value of a predefined constant.

GetTempPathA( _MAX_PATH.. /* Windows API function call */ 242 InstallShield InstallScript Language Reference Guide . Used With • • • • AskYesNo SdLicense SdConfirmNewDir SdConfirmRegistration _MAX_PATH PROJECT This information applies to InstallScript projects. Used With • • SetColor SetTitle YES YES is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. The following sample code lines illustrate possible uses of _MAX_PATH: string szPath[_MAX_PATH]. szPath ). You cannot change the value of a predefined constant..Chapter 4: Predefined Constants YELLOW YELLOW YELLOW is a predefined constant used to represent a value that is passed to or returned by one or more built-in functions. MAX_PATH is a predefined constant used to represent the maximum length of a path variable that is passed to a Windows API function. Kernel32. /* variable declaration */ . You cannot change the value of a predefined constant.

InstallShield InstallScript Language Reference Guide 243 . __LINE__). MessageBox (svReturnString. __FILE__ During script compilation this reserved identifier is replaced by a string that contains the fully qualified name of the source file in which __FILE__ resides. For more complete and powerful debugging. "File: %s\nLine:%ld". The code fragment below extracts the file name and displays it. you can easily associate specific parts of your setup with specific sections of your script as you observe your setup run. use the InstallScript Debugger by clicking Debug on the Build menu in InstallShield. __FILE__. see the InstallScript Debugger Help. not the location from which the setup is being run. INFORMATION). __FILE__. by constructing a statement like the one below and copying it to strategic locations in your source files during testing. but it is most useful when used with __LINE__ for simple debugging..5 PREDEFINED SCRIPT VARIABLES This section includes a list of predefined script variables that are reserved during script compilation. ParsePath (svReturnString. If necessary. For more information. For example. __FILE__ can be specified anywhere in a script where a string constant is allowed. the ParsePath function can be called with __FILE__ in the second parameter to extract parts of the fully qualified file name. SprintfBox (INFORMATION. FILENAME). Note that the path will be the location from which the file was compiled. "".

see the InstallScript Debugger Help. therefore. by constructing a statement like the one below and copying it to strategic locations in your source files during testing. 244 InstallShield InstallScript Language Reference Guide . you can use this script variable to create script code that will work differently in the two project types without being recompiled.Chapter 5: Predefined Script Variables __LINE__ __LINE__ During setup compilation. this reserved identifier is replaced by the number of the source file line in which __LINE__ resides. use the InstallScript Debugger by clicking Debug on the Build menu in InstallShield. For more information. You can use BASICMSI to write a single script that produces different behavior in the different project types by including code such as the following in your script: if( BasicMSI ) then //Code for Basic MSI projects else //Code for InstallScript MSI or InstallScript projects endif. NOTE BASICMSI is not a preprocessor switch. but it is undefined and evaluates as zero in InstallScript MSI projects and in InstallScript projects. SprintfBox (INFORMATION. but it is undefined and evaluates as zero in InstallScript projects (and in InstallShield Professional projects). "File: %s\nLine:%ld". INSTALLSCRIPTMSI INSTALLSCRIPTMSI is defined in InstallScript MSI and Basic MSI projects. BASICMSI The BASICMSI script variable is defined for Basic MSI projects. therefore. you can use this script variable to create script code that will work differently in different project types without being recompiled. For more complete and powerful debugging. __LINE__). "". __FILE__. you can easily associate specific parts of your setup with specific sections of your script as you observe your setup run. For example. Note that __LINE__ can be specified anywhere in a script where a number constant is allowed. NOTE INSTALLSCRIPTMSI is not a preprocessor switch. but it is most useful when used with __FILE__ for simple debugging.

this variable is not linked to a text-sub. This system variable is initialized automatically during installation initialization by a call to ServiceInitParams.lpLoadOrderGroup SERVICE_IS_PARAMS.Chapter 5: Predefined Script Variables ISUS_PRODUCT_CODE You can use INSTALLSCRIPTMSI to write a single script that produces different behavior in the different project types by including code such as the following in your script: if( INSTALLSCRIPTMSI ) then //Code for InstallScript MSI and Basic MSI projects.lpDatabaseName SERVICE_IS_PARAMS..dwErrorControl SERVICE_IS_PARAMS.lpPassword The following members of SERVICE_IS_PARAMS control how the installation behaves when waiting for a service to reach a desired state.dwDesiredAccess SERVICE_IS_PARAMS.dwStartType SERVICE_IS_PARAMS.lpServiceStartName SERVICE_IS_PARAMS.lpdwTagId SERVICE_IS_PARAMS.. See the descriptions for each member for additional information. this script variable must be customized each time the setup is run. Like PRODUCT_GUID. or ChangeServiceConfig. endif. even during maintenance mode. Therefore..lpDependencies SERVICE_IS_PARAMS. if customized.dwServiceType SERVICE_IS_PARAMS. SERVICE_IS_PARAMS PROJECT This information applies to InstallScript projects..lpMachineName SERVICE_IS_PARAMS. NOTE Certain InstallScript service functions internally call the Windows API functions OpenSCManager. The following members of the structured variable SERVICE_IS_PARAMS specify the corresponding arguments for these Windows API functions: • • • • • • • • • • • SERVICE_IS_PARAMS. InstallShield InstallScript Language Reference Guide 245 . CreateService. ISUS_PRODUCT_CODE This is a read-write script variable which is set to PRODUCT_GUID during initialization. else //Code for InstallScript projects.

nWaitHintMax SERVICE_IS_PARAMS. If a service specifies a dwWaitHint longer than nWaitHintMax. If a service specifies a dwWaitHint smaller than nWaitHintMin.nWaitHintMin SERVICE_IS_PARAMS. nWaitHintMax Specifies the maximum dwWaitHint wait time (in milliseconds). 246 InstallShield InstallScript Language Reference Guide .Chapter 5: Predefined Script Variables SERVICE_IS_PARAMS • • • • SERVICE_IS_PARAMS. and is set by calling ServiceInitParams.nStopServiceWaitCount The SERVICE_IS_PARAMS script variable has the following members: Table 5-1: SERVICE_IS_PARMS Parameters Member dwServiceType Description This member can be set to these predefined constants: • • • • • • • SERVICE_WIN32_OWN_PROCESS SERVICE_WIN32_SHARE_PROCESS SERVICE_KERNEL_DRIVER SERVICE_FILE_SYSTEM_DRIVER SERVICE_ADAPTER SERVICE_RECOGNIZER_DRIVER SERVICE_INTERACTIVE_PROCESS dwStartType This member can be set to these predefined constants: • • • • • SERVICE_BOOT_START SERVICE_SYSTEM_START SERVICE_AUTO_START SERVICE_DEMAND_START SERVICE_DISABLED dwErrorControl This member can be set to these predefined constants: • • • • SERVICE_ERROR_IGNORE SERVICE_ERROR_NORMAL SERVICE_ERROR_SEVERE SERVICE_ERROR_CRITICAL nWaitHintMin Specifies the minimum dwWaitHint wait time (in milliseconds). This applies to both starting and stopping services. nWaitHintMax is used instead as the wait time. See the MDSN documentation for more information on how a service sets dwWaitHint.nStartServiceWaitCount SERVICE_IS_PARAMS. See the MDSN documentation for more information on how a service sets dwWaitHint. and is set by calling ServiceInitParams. This applies to both starting and stopping services. The default value of this member variable is 10000 (10 seconds). The default value of this member variable is 1000 (1 second). nWaitHintMin is used instead as the wait time.

nStopServiceWaitCount Specifies the service stop timeout in seconds. the installation does not interrupt this wait regardless of the value of this parameter. the installation does not interrupt this wait regardless of the value of this parameter. Unlike nWaitHintMax. or ChangeServiceConfig. Unlike nWaitHintMax. it is recommended that this value not be changed from the default value of INFINITE set by ServiceInitParams. consult the Windows API documentation.Chapter 5: Predefined Script Variables SERVICE_IS_STATUS Table 5-1: SERVICE_IS_PARMS Parameters (cont. if a service specifies a long dwWaitHint. Instead. CreateService. Therefore. update nWaitHintMax to prevent an undesired wait interval. Instead. if a service specifies a long dwWaitHint. This value can be set to a specific value to force the setup to stop waiting after the specified interval regardless of whether the service has reached the desired state. This value can be set to a specific value to force the installation to stop waiting after the specified interval regardless of whether the service has reached the desired state. SERVICE_IS_STATUS PROJECT This information applies to InstallScript projects. Additional Information For more information about the Windows API functions OpenSCManager. Therefore. it is recommended that this value not be changed from the default value of INFINITE set by ServiceInitParams.) Member nStartServiceWaitCount Description Specifies the service start timeout in seconds. InstallShield InstallScript Language Reference Guide 247 . update nWaitHintMax to prevent an undesired wait interval.

SERVICE_KERNEL_DRIVER—The service is a device driver. 248 InstallShield InstallScript Language Reference Guide . SERVICE_PAUSED—The service is paused. the following type may also be specified. The service should set this value to NO_ERROR when it is running and on normal termination. The current state of the service. This system variable is of type SERVICE_IS_STATUS. SERVICE_START_PENDING—The service is starting. SERVICE_RUNNING—The service is running. If the service type is either SERVICE_WIN32_OWN_PROCESS or SERVICE_WIN32_SHARE_PROCESS. • dwCurrentState SERVICE_INTERACTIVE_PROCESS—The service can interact with the desktop. it has the following members: Table 5-2: SERVICE_IS_STATUS Parameters Member dwServiceType Meaning The type of service. the service must set this value to ERROR_SERVICE_SPECIFIC_ERROR to indicate that the dwServiceSpecificExitCode member contains the error code. SERVICE_WIN32_OWN_PROCESS—The service runs in its own process.Chapter 5: Predefined Script Variables SERVICE_IS_STATUS When you call ServiceGetServiceState. dwWin32ExitCode A Win32 error code that the service uses to report an error that occurs when it is starting or stopping. SERVICE_WIN32_SHARE_PROCESS—The service shares a process with other services. • • • • • • • SERVICE_CONTINUE_PENDING—The service continue is pending. SERVICE_PAUSE_PENDING—The service pause is pending. This member can be one of the following values. • • • • SERVICE_FILE_SYSTEM_DRIVER—The service is a file system driver. this structured variable returns identification information about the service. This member can be one of the following values. SERVICE_STOP_PENDING—The service is stopping. SERVICE_STOPPED—The service is not running. To return an error code specific to the service.

The user interface program that invoked the operation on the service uses this value to track the progress of the service during a lengthy operation. and dwCheckPoint has not been incremented. If the amount of time specified by dwWaitHint passes. Table 53 lists the possible control codes for this member. pause. or dwCurrentState has not changed. all services accept the SERVICE_CONTROL_INTERROGATE value. For example. dwCheckPoint dwWaitHint dwControlsAccepted InstallShield InstallScript Language Reference Guide 249 . A value that the service increments periodically to report its progress during a lengthy start. stop.) Member dwServiceSpecificExitCode Meaning A service-specific error code that the service returns when an error occurs while the service is starting or stopping. An estimate of the amount of time.Chapter 5: Predefined Script Variables SERVICE_IS_STATUS Table 5-2: SERVICE_IS_STATUS Parameters (cont. or continue operation pending. or continue operation. in milliseconds. By default. The control codes that the service will accept and process in its handler function. or continue operation to take before the service makes its next call to the Windows API function SetServiceStatus with either an incremented dwCheckPoint value or a change in dwCurrentState. stop. that the service expects a pending start. the service control manager or service control program can assume that an error has occurred. the service should increment this value as it completes each step of its initialization when it is starting up. stop. pause. This value is ignored unless the dwWin32ExitCode member is set to ERROR_SERVICE_SPECIFIC_ERROR. A user interface process can control a service by specifying a control command in the Windows API function ControlService. This value is not valid and should be zero when the service does not have a start. pause.

which are supported only by service handler functions that are used with the Windows API function RegisterServiceCtrlHandlerEx. SERVICE_ACCEPT_PAUSE_CONTINUE The service can be paused and continued. Note that the Windows API function ControlService cannot send this notification. only the system can send it. This control code allows the service to receive SERVICE_CONTROL_NETBINDADD.Chapter 5: Predefined Script Variables SERVICE_IS_STATUS dwControlAccepted Control Codes This table lists the possible control codes for dwControlAccept script variable. This control code allows the service to receive SERVICE_CONTROL_PARAMCHANGE notifications. and SERVICE_CONTROL_NETBINDDISABLE notifications. This control code allows the service to receive SERVICE_CONTROL_PAUSE and SERVICE_CONTROL_CONTINUE notifications. SERVICE_ACCEPT_PARAMCHANGE Windows 2000 and later: The service can reread its startup parameters without being stopped and restarted. 250 InstallShield InstallScript Language Reference Guide . This enables the system to send SERVICE_CONTROL_HARDWAREPROFILECHANG E notifications to the service. SERVICE_ACCEPT_HARDWAREPROFILEC HANGE Windows 2000 and later: The service is notified when the computer's hardware profile has changed. This value can also contain the following extended control codes. This control code allows the service to receive SERVICE_CONTROL_SHUTDOWN notifications. SERVICE_ACCEPT_SHUTDOWN The service is notified when system shutdown occurs. SERVICE_ACCEPT_STOP The service can be stopped. SERVICE_CONTROL_NETBINDREMOVE. Table 5-3: dwControlsAccepted Control Codes Control Code SERVICE_ACCEPT_NETBINDCHANGE Description Windows 2000 and later: The service is a network component that can accept changes in its binding without being stopped and restarted. This control code allows the service to receive SERVICE_CONTROL_STOP notifications. SERVICE_CONTROL_NETBINDENABLE.

Chapter 5: Predefined Script Variables SERVICE_IS_STATUS
Table 5-3: dwControlsAccepted Control Codes (cont.)

Control Code
SERVICE_ACCEPT_POWEREVENT

Description
Windows 2000 and later: The service is notified when the computer's power status has changed. This enables the system to send SERVICE_CONTROL_POWEREVENT notifications to the service. Whistler: The service is notified when the computer's session status has changed. This enables the system to send SERVICE_CONTROL_SESSIONCHANGE notifications to the service.

SERVICE_ACCEPT_SESSIONCHANGE

InstallShield InstallScript Language Reference Guide

251

Chapter 5: Predefined Script Variables SERVICE_IS_STATUS

252

InstallShield InstallScript Language Reference Guide

6
DATA TYPES AND PREDEFINED STRUCTURES
Data Types
InstallScript supports the following data types. Note that some data types can be entered in either lowercase (recommended) or uppercase letters:
Table 6-1: Data Types

Data Type
BOOL

Description
Boolean data: either TRUE (1) or FALSE (0). Variables of this type should not be used to store any other values. Like C++, InstallScript evaluates non-zero values as TRUE; only the value of zero is evaluated as FALSE. Normally, the value of one is used to indicate TRUE. Character data: a single 8-bit signed character. When a literal character appears in a script, it must be enclosed within single or double quotation marks. Note that you can assign a numeric ASCII value to a character value. To display a char variable as a character, use the Format Specifiers “%c” with the function SprintfBox. To display the numeric value of a char variable use the specifier “%d”. InstallScript character variable types are signed; therefore extended ASCII characters will be interpreted as negative numbers when interpreted numerically. To avoid this problem, assign the value to a number variable; then AND (&) the number variable with the value 255 before interpreting the number.

char CHAR

InstallShield InstallScript Language Reference Guide

253

Chapter 6: Data Types and Predefined Structures

Table 6-1: Data Types (cont.)

Data Type
HWND

Description
Handle to a window. The HWND variable type also can be used to store any other type of handle valid in Windows. HWND variables are normally initialized using the CmdGetHwndDlg or GetWindowHandle functions. Internally, HWND variables are equivalent to the data type NUMBER. Equivalent to the number type; provided for convenience. Pointer to an InstallScript list. LIST variables are always initialized and uninitialized using the ListCreate and ListDestroy functions. Internally, LIST variables are equivalent to the data type NUMBER. Equivalent to the number type; provided for convenience. Equivalent to the pointer type; provided for convenience. Signed four-byte integer. number is the recommended data type for storing numeric data. The data type is similar to the long variable type of other programming languages. It can hold any value between -2,147,483,648 and +2,147,483,647. Note that all numeric data types in InstallScript are equivalent to the number variable type. A reference to a COM object. The reference is returned by the CreateObject function and assigned to the object variable using the set keyword. A pointer to data. pointer variables are normally initialized by using the address-of (&) operator to assign the address of a variable to the pointer variable. Equivalent to the number type; provided for convenience.

int INT LIST

long LONG LPSTR number NUMBER

object OBJECT pointer POINTER short SHORT

254

InstallShield InstallScript Language Reference Guide

Chapter 6: Data Types and Predefined Structures

Table 6-1: Data Types (cont.)

Data Type
string STRING

Description
An array of Unicode characters (two bytes per character). string variables, which are similar to arrays of characters in the C++ language, are NULL terminated. However, InstallShield does not support multiple NULL terminated strings in the same string variable. String variables can be declared with an explicit size of up to 65,535 characters. Strings variables that are declared without an explicit size are automatically sized by InstallShield. Note that string concatenation in a setup script is performed by using the concatenation operator, which is a plus sign (+). Strings to be concatenated are positioned as operands on either side of the operator, as shown in the statement below, which appends the value of szLastName to the value of szFirstName and assigns the resulting string to szFullName: szFullName = szFirstName + szLastName; To display a string variable, use the SprintfBox function with the format specifier “%s”, or use the MessageBox function.

variant VARIANT

Any kind of data: character, string, numeric, object reference, and so on. It is recommended that you use the other data types whenever possible; the VARIANT data type is necessary only when declaring a script-defined function that takes an array as an argument, for example: prototype number AverageValue( variant ); function OnBegin( ) number nAverage , nArray(10); begin /* Assign values to array elements here. */ /* Pass the array to the function. */ nAverage = AverageValue( nArray ); end;

InstallShield InstallScript Language Reference Guide

255

Chapter 6: Data Types and Predefined Structures

Table 6-1: Data Types (cont.)

Data Type
void VOID

Description
Void is not a true data type, in the sense that a variable cannot be declared as type void. Void is only used in function prototypes to indicate that the function does not return a value, as in the following: prototype void Subroutine(int); function void Subroutine(int); begin // perform operations, but // do not return a value end;

wstring WSTRING

Same as string except that, unlike string, it can be used when declaring DLL function calls in which a wide-character string argument is expected. For example: prototype long Kernel32.GetWindowsDirectoryW(BYREF wstring, int); You can pass a string variable in a wstring argument; for example: string svWinDir; ... GetWindowsDirectoryW(svWinDir, 1024);

NOTE

InstallScript does not provide unsigned or floating-point data types.

Predefined Structures
InstallScript supports the following predefined structures:
Table 6-2: Predefined Structures

Predefined Structure
_LAAW_PARAMETERS

Description
For a list of this data structure's members and their purposes and permitted values, see LAAW_PARAMETERS. For a list of this data structure's members and their purposes and permitted values, see SERVICE_IS_PARAMS.

_SERVICE_IS_PARAMS

256

InstallShield InstallScript Language Reference Guide

Chapter 6: Data Types and Predefined Structures Arrays
Table 6-2: Predefined Structures (cont.)

Predefined Structure
_SERVICE_IS_STATUS

Description
For a list of this data structure's members and their purposes and permitted values, see SERVICE_IS_STATUS. Data structure that contains the constituent parts of a URL. This structure is similar to the Windows API structure URL_COMPONENTS. For an example of the use of this structure, see ParseUrl. This structure has the following members: • • szScheme—String value that contains the scheme name. nInternetScheme—Numeric value that indicates the Internet protocol scheme; equals 3 for HTTP and 4 for HTTPS. szUserName—String value that contains the user name. szPassword—String value that contains the password. szHostName—String value that contains the host name. nInternetPort—Port number. szUrlPath—String value that contains the URL path. szExtraInfo—String value that contains the extra information (for example, ?something or #something).

ISURL_COMPONENTS

• • • • • •

PROCESS_INFORMATION

For a list of this data structure's members and their purposes and permitted values, see LAAW_PROCESS_INFORMATION. For a list of this data structure's members and their purposes and permitted values, see LAAW_STARTUPINFO.

STARTUPINFO

Arrays
You can declare and use any InstallScript data type as an array. To declare a variable as an array, append an open parenthesis and a close parenthesis, with an array size optionally between the parentheses, to the variable name in the declaration. For example, the following declares a variable called nArray to be an array containing 10 NUMBER elements:

InstallShield InstallScript Language Reference Guide

257

Chapter 6: Data Types and Predefined Structures Constant Data
NUMBER nArray(10);

If you do not declare an array size, for example,
NUMBER nArray( );

the array size defaults to zero. You can resize arrays in the script by using the Resize operator. You can get the size of an array by using the SizeOf operator. Use the following syntax to assign values to array elements:

Syntax
<array variable name>(<array index>) = <value>;

For example:
nArray(0) = 1; /* Array indexing begins with zero. */ nArray(5) = 17;

When declaring a script-defined function that takes an array as an argument, do not use an array as the parameter data type; for example:
prototype NUMBER AverageValue( NUMBER( ) ); /* This will not compile. */

Instead, use the VARIANT data type; for example:
prototype NUMBER AverageValue( VARIANT ); function OnBegin( ) NUMBER nAverage, nArray(10); begin /* Assign values to array elements here. */ /* Pass the array to the function. */ nAverage = AverageValue( nArray ); end;

Constant Data
A constant is a named data item with a defined value. InstallShield supports two types of constants:

Predefined constants, such as TRUE and RESET, are part of InstallScript. These constants, which are used as function parameters and return values for built-in functions, cannot be redefined in the script. Attempting to redefine a predefined constant will result in a compiler error. User-defined constants are declared by the programmer as needed for individual scripts. Although a user-defined constant can be redefined after the initial declaration, it is generally not considered good programming practice to do so.

258

InstallShield InstallScript Language Reference Guide

Chapter 6: Data Types and Predefined Structures Data Structures

User-defined constants are declared by with a #define preprocessor statement. (InstallScript does not support the const keyword for declaring variable constants as the C++ language does.) String constants must be enclosed within quotation marks; numeric constants are defined without quotation marks and contain only numeric characters. Once declared, a string constant can be used anywhere that a string literal can be used. Likewise, number constants can be used anywhere that a numeric literal can be used. In the following example, a string constant and a numeric constant are declared:
#define COMPANY_NAME "Example_Company" #define MAXCOUNT 1000

A constant name must follow the rules for InstallScript identifiers. By convention, constant identifiers are created with all upper case characters. InstallScript's predefined constants follow that convention.

TIP

When creating installations that require multi-language support, use the InstallShield interface to specify user-defined string constants in string tables. Then, in your script, access those string constants with the @ operator.

Data Structures
A data structure is a named data item that consists of logically-related variables, called members. In many programming languages, data structures are called records, and the variables within records are called fields. In InstallScript, data structures are similar in form and function to structures in C. They can include members of different data types, and those members within the data structure can be referenced directly by using the Member Operator (.).

Defining a Data Structure
To define a data structure, use the keyword typedef and follow it with the name of the data structure. Fields in the structure must be defined within a begin...end block, as shown in the example below, which defines a structure called EMPLOYEE. The data structure EMPLOYEE includes three variables: a string variable for an employee's name, a string variable for an employee's department, and a number variable for an employee's phone extension.
typedef EMPLOYEE begin STRING szName[50]; STRING szDepartment[50]; NUMBER nExtension; end;

InstallShield InstallScript Language Reference Guide

259

Chapter 6: Data Types and Predefined Structures Data Structures

When you define a data structure, you are actually defining a new data type. To use a data structure within a program, you must first declare a variable of that type. To do that, use the name of the defined data structure as the data type and follow it with an identifier, as shown in the example below, which creates a variable of type EMPLOYEE.
EMPLOYEE structEmployee;

To reference members of the structure variable, use the member operator ( . ). In the example below, literal values are assigned to each member of structEmployee.
structEmployee.szName = "I. S. Coder; structEmployee.szDepartment = "Development"; structEmployee.nExtension = 555;

Restrictions
The following restrictions apply to structures:

• • •

You cannot assign the contents of one structure to another structure with the assignment operator, as in newstruct = struct1. Instead, you must copy the structure one element at a time. You must specify the size of all STRING declarations in a structure— InstallShield's autosizing feature does not work in typedef statements. You cannot declare a structure within a function. You cannot use the BYREF operator with a structure, nor can you pass a structure member in a parameter that was declared with the BYREF operator. To modify a member of a user-defined structure in a user-defined function, pass a pointer to the structure and then use the Structure Pointer Operator (->) to access the data within the function. Referencing a pointer before the address of a data structure has been assigned to the pointer results in a run-time error.

Examples
Like C, InstallScript allows you to nest or embed data structures. For example, suppose you wanted to create a structure that could be used to define the upper-left and lower-right coordinates of a rectangle. Each coordinate consists of two values: an x value and a y value. You could define a structure that consists of four members: the x and y positions of the upper-left corner and the x and y positions of the lower-right corner. However, since each x and y pair is a logical unit, you might first define a structure called POINT that has two members defining a vertical and horizontal position. Then you could define a structure called RECT that includes two members of type POINT, one to define the upper left coordinate, another to define the lower right coordinate. These two structures are shown below:

260

InstallShield InstallScript Language Reference Guide

Chapter 6: Data Types and Predefined Structures Data Structures
// Define a point structure. typedef POINT begin SHORT nX; SHORT nY; end; // Use nested point structures to define a rectangle structure. typedef RECT begin POINT UpperLeft; POINT LowerRight; end;

When a structure is to be referenced by a pointer to that structure, you must use the structure pointer operator ( -> ) to address members of the structure. In the example below, a variable of type RECT is declared, a pointer to the structure is declared, and then the address of the RECT variable is assigned to the pointer. Finally, the structure pointer operator is used to initialize each member to 0.
RECT Rectangle; RECT POINTER pRect; pRect = &Rectangle; pRect->UpperLeft.nX pRect->UpperLeft.nY pRect->LowerRight.nX pRect->LowerRight.nY

= = = =

0; 0; 0; 0;

The following script presents a more complete demonstration of structure pointers, nested structures, and structure pointer dereferencing with the structure pointer operator.
// Use a structure to define a point. typedef POINT begin SHORT nX; SHORT nY; end; // Use nested structures to define a rectangle. typedef RECT begin POINT UpperLeft; POINT LowerRight; end; // Declare a rectangle structure variable. RECT Rectangle;

InstallShield InstallScript Language Reference Guide

261

Chapter 6: Data Types and Predefined Structures Data Structures

// Define a pointer to a RECT structure. RECT POINTER pRect; // Declare a function to display structure contents. prototype ShiftRectBy2(RECT POINTER); . . . // Get a pointer to the Rectangle structure. pRect = &Rectangle; // Define the points that define the rectangle. pRect->UpperLeft.nX = 100; pRect->UpperLeft.nY = 400; pRect->LowerRight.nX = 200; pRect->LowerRight.nY = 100; // Display point x and y values before calling ShiftRectBy2. SprintfBox (INFORMATION, "BEFORE calling ShiftRectBy2", "pRect->UpperLeft.nX = %d\n" + "pRect->UpperLeft.nY = %d\n" + "pRect->LowerRight.nX = %d\n" + "pRect->LowerRight.nY = %d\n", pRect->UpperLeft.nX, pRect->UpperLeft.nY, pRect->LowerRight.nX, pRect->LowerRight.nY ); // Shift the rectangle 2 up and 2 to the right. ShiftRectBy2(pRect); // Display point x and y values after calling ShiftRectBy2. SprintfBox (INFORMATION, "AFTER calling ShiftRectBy2", "pRect->UpperLeft.nX = %d\n" + "pRect->UpperLeft.nY = %d\n" + "pRect->LowerRight.nX = %d\n" + "pRect->LowerRight.nY = %d\n", pRect->UpperLeft.nX, pRect->UpperLeft.nY, pRect->LowerRight.nX, pRect->LowerRight.nY ); // Define the rectangle shifting function.

262

InstallShield InstallScript Language Reference Guide

Chapter 6: Data Types and Predefined Structures Language IDs
function ShiftRectBy2(pR) begin pR->UpperLeft.nX = pR->UpperLeft.nX + pR->UpperLeft.nY = pR->UpperLeft.nY + pR->LowerRight.nX = pR->LowerRight.nX pR->LowerRight.nY = pR->LowerRight.nY end;

2; 2; + 2; + 2;

Language IDs
InstallShield provides language constants for all languages supported by Windows. However, most of these constants are not supported for the designation of languagespecific components and language filtering. InstallScript constants can be used in the following contexts.

Parameter for FeatureFilterLanguage
InstallScript language constants are used as the second parameter to the function FeatureFilterLanguage. In this context, the language constant specifies which files to filter or unfilter. Only supported language constants, which are listed in the supported language table should be used for this purpose. Using an unsupported language constant for component filtering has no effect since components designated for an unsupported language are filtered (not included) during the media build and so cannot be installed.

Return Value for GetSystemInfo
A language constant serves as the value returned in nvResult by function GetSystemInfo when it is called with the constant LANGUAGE in the nItem parameter. In this context, any of the language constants listed in Sdlang.h can be returned because Windows supports all the language constants.

NOTE

If your installation includes language filtering based on these return values, you must use a switch statement to convert constants returned by this function into one of the constants supported for language filtering.

Language Constant Reference
For a complete list of language constants supported by InstallShield and their numeric equivalents, refer to the file SdLang.h—located in the Script\Include folder within the InstallShield installation folder. For a list of supported languages and the appropriate InstallScript constants, see Language Support for InstallScript.

InstallShield InstallScript Language Reference Guide

263

Chapter 6: Data Types and Predefined Structures Pointers

NOTE

The language that the setup is using to display prompts and messages is stored in the system variable SELECTED_LANGUAGE.

When the language selection dialog is used by a multilanguage installation to allow the user to select the installation language during setup initialization, the language dialog will display the Windows equivalent names. Because these names are generated by Windows, they will be localized to the version of Windows under which the setup is being run.

Pointers
A pointer is a variable that contains the address of another variable. To declare a pointer, use the keyword POINTER followed by a variable name, as shown below:
POINTER pPointerName;

To declare a pointer that will be used to access the members of a data structure, precede the keyword POINTER with the structure type:
typedef RECT begin SHORT sX; SHORT sY; end; RECT Rectangle; RECT POINTER pRect;

Use the address operator (&) to assign the address of a variable to a pointer variable:
pPointerName = &MyStructure; pNum = &nvNumber; pString = &svString;

When defining a function that takes a pointer to a structure as a parameter, use the structure name with POINTER in the function prototype, as shown below. Note that any function prototype that specifies a pointer to a structure as one of its parameters must be declared after the structure declaration.
typedef RECT begin SHORT sX; SHORT sY; end; RECT Rectangle; RECT POINTER pRect;

264

InstallShield InstallScript Language Reference Guide

Chapter 6: Data Types and Predefined Structures System Folder Properties (Destination Folders)

prototype SizeRectangle(RECT POINTER); . . . pRect = &Rectangle; SizeRectangle(pRect); . . . function SizeRectangle(pRectangle) begin pRectangle->sX = 10; pRectangle->sY = 5; end;

System Folder Properties (Destination Folders)
PROJECT This information does not apply to InstallScript projects.

When you add files to your setup, you do so by placing them in a destination folder. The following destination folders are provided by default. These folders are dynamic—meaning that they do not rely upon hard-coded paths. These system folders are set at run time by the installer.

InstallShield InstallScript Language Reference Guide

265

Chapter 6: Data Types and Predefined Structures System Folder Properties (Destination Folders)

The following properties hold the fully qualified path to many of the folders on the end user's system.
Table 6-3: Default Destination Folders

Property Name
AdminToolsFolder AppDataFolder

Description
Points to the folder where administrative tools are located. This property holds the full path to the current user's Application Data folder. A typical value of this property is C:\WINNT\Profiles\UserName\Application Data. Full path to the folder containing application data for all users. A common path is C:\WINNT\Profiles\All Users\Application Data. The value of this property is the full path to the 64bit Common Files folder. This property requires Windows Installer version 2.0. The value of this property is the full path to the 32bit Common Files folder. This property is used to hold the full path to the Desktop folder for the current user. If the setup is being run under Windows NT 4 or Windows 2000 for All Users, and the ALLUSERS property is set, then the DesktopFolder property should hold the full path to the All Users desktop folder. The FavoritesFolder property contains the full path to the Favorites folder for the current user. This property holds the full path to the Fonts folder. This property stores the default destination folder for your installation program's files. You can set an initial value for INSTALLDIR in the General Information view. The location of locally stored application data. A typical value for this property is C:\WINNT\Profiles\UserName\Local Settings\Application Data. Full path to the current user's MyPicturesFolder, which is commonly located at C:\WINNT\Profiles\UserName\My Documents\My Pictures. This property holds the full path to the current user's Personal folder.

CommonAppDataFolder

CommonFiles64Folder

CommonFilesFolder DesktopFolder

FavoritesFolder FontsFolder INSTALLDIR

LocalAppDataFolder

MyPicturesFolder

PersonalFolder

266

InstallShield InstallScript Language Reference Guide

Chapter 6: Data Types and Predefined Structures System Folder Properties (Destination Folders)
Table 6-3: Default Destination Folders (cont.)

Property Name
ProgramFiles64Folder

Description
This property holds the full path to the 64-bit Program Files folder. This property requires Windows Installer version 2.0. This property holds the full path to the 32-bit Program Files folder. This property is used to hold the full path to the Program menu for the current user. If the setup is being run under Windows NT 4 or Windows 2000 for All Users, and the ALLUSERS property is set, then the ProgramMenuFolder property should hold the full path to the All Users Programs menu. This property holds the full path to the current user's SendTo folder. This property is used to hold the full path the Start menu folder for the current user. If the setup is being run under NT for All Users, and the ALLUSERS property is set, then the StartMenuFolder property should hold the fully qualified path to the All Users program menu. This property is used to hold the full path to the Startup folder for the current user. If the setup is being run under Windows NT 4 or Windows 2000 for All Users, and the ALLUSERS property is set, then the StartupFolder property should hold the full path to the All Users program menu. This property holds the full path to the folder containing the system's 16-bit DLLs. (In Windows Installer version 2.0, this property is no longer used.) This property holds the full path to the 32-bit Windows system folder. This property holds the full path to the 64-bit Windows system folder. This property requires Windows Installer version 2.0. This property holds the full path to the Temp folder. This property holds the full path to the current user's Templates folder. This property holds the full path to the Windows folder.

ProgramFilesFolder ProgramMenuFolder

SendToFolder StartMenuFolder

StartupFolder

System16Folder

SystemFolder System64Folder

TempFolder TemplateFolder WindowsFolder

InstallShield InstallScript Language Reference Guide

267

Chapter 6: Data Types and Predefined Structures System Folder Properties (Destination Folders)
Table 6-3: Default Destination Folders (cont.)

Property Name
WindowsVolume

Description
This property holds the volume of the Windows folder. It is set to the drive where Windows is installed.

268

InstallShield InstallScript Language Reference Guide

7
VARIABLE DATA
A variable is a named data item whose value can change during program execution.

Variable Declaration Format
A variable must be declared in the following format:
data_type VariableName1[, VariableName2 [,...]];

Rules
Variable declaration must follow these rules:
• • •

A variable name can have a maximum of 32 characters. When more than one variable name is specified in a single declaration, the names must be separated by commas. Each variable declaration must be terminated with a semicolon.

CAUTION

The names of InstallScript variables and functions are case sensitive. For example, svItemCounter is not equivalent to svITEMCOUNTER.

Variable Declaration Example
In the following example, seven variables are declared. Note that the last declaration creates three numeric variables.

InstallShield User Guide

269

Chapter 7: Variable Data Global vs. Local Variables
BOOL bValidEntry; LONG lPopulation; //String explicitly sized STRING szUserName[128]; //String autosized STRING szMessage; NUMBER nFileSize, nDirSize, nDiskSpace;

Declaring String Variables
You can declare a string variable with or without an explicit size. String variables that are not declared with an explicit size are then sized automatically during a setup to accommodate the values assigned to them. Autosizing is recommended for all string variables except those that will be passed to an external (DLL or Windows API) function—in these cases, the string's size must be declared explicitly. The maximum size of a string is 65534 characters.

Global vs. Local Variables
Variables may be either global or local:

A variable is global if it is declared outside of the main program block and not within a function. Global variables are visible and available to all statements in a setup script that follow its declaration. A variable is local if it is declared between the function declaration and the keyword begin within that function. Local variables are visible and available only within the function where they are declared.

PROJECT

InstallScript events are not used in Basic MSI and merge module projects; therefore, all InstallScript code for these project types must be written in InstallScript custom actions. Global variables do not share state between these custom action invocations.

NOTE

InstallScript system variables are global and therefore are visible to the main program and to all functions in a script.

In the following example, the variable nVisibleEverywhere can be referenced by any statement in the script. The variable nVisibleOnlyToFunctions may be referenced only by the functions. The variable nVisibleOnlyToSecondFunction cannot be

270

InstallShield User Guide

Chapter 7: Variable Data Global vs. Local Variables

referenced by the main program or by FirstFunction. The variable szString is local to FirstFunction.
prototype FirstFunction(); prototype SecondFunction(); NUMBER nVisibleEverywhere; . . . nVisibleEverywhere = 10; FirstFunction(); SecondFunction(); . . . NUMBER nVisibleOnlyToFunctions; function FirstFunction() STRING szString; begin szString = "Local to FirstFunction"; nVisibleOnlyToFunctions = 20; end; NUMBER nVisibleOnlyToSecondFunction; function SecondFunction() begin nVisibleOnlyToSecondFunction = 30; end;

Although identifiers in a script must be unique, it is valid for a local variable to have a name identical to that of a global variable, or for one function to declare a local variable that has the same name as a local variable declared in another function. These exceptions are allowed because InstallShield qualifies local variable names based on the function with which they are associated. In the example below, the global variable szVal is not affected by the action of AFunction, which has a local variable of the same name; the function MessageBox displays the string “YES,” which was the value assigned to the global variable szVal.
STRING szVal; prototype AFunction(); . . .

InstallShield User Guide

271

Chapter 7: Variable Data String Variables
szVal = "YES"; AFunction(); MessageBox(szVal, INFORMATION); . . . function AFunction() STRING szVal; begin szVal = "NO"; end;

Parameter names in function definitions are considered to be local variables. If a global variable is passed to a function whose parameter has the same name as the global variable, the value of that global variable will not be changed (unless the parameter was specified with the BYREF operator in the function prototype). In the following example, AFunction has no effect on the global variable szVal; the script displays the string “YES”.
STRING szVal; prototype AFunction(STRING); . . . szVal = "YES"; AFunction(szVal); MessageBox(szVal, INFORMATION);

. . . function AFunction(szVal) begin szVal = "NO"; end;

String Variables
For information about string variables, refer to the following topics:
• •

String Indexing String Size and Autosize

String Indexing
A string variable is an array of Unicode characters with a null terminator. You can reference individual characters within a string by specifying the string name followed

272

InstallShield User Guide

Chapter 7: Variable Data String Variables

by an index value within square brackets. Note that the first character in a string is in position 0. In the example below, the function BlankLeadingZeros uses the string indexing technique to replace leading zeros in the string representation of a number with blank characters.
prototype BlankLeadingZeros(BYREF STRING); function BlankLeadingZeros(szString) INT iVal, iLength; begin iVal = 0; iLength = StrLength (szString); while (szString[iVal] = "0") && (iVal <= iLength) szString[iVal] = " "; iVal++; endwhile; end;

String Size and Autosize
InstallShield Autosizing
When you declare a string variable without a size specification, InstallShield automatically sizes a string buffer for that variable. The allocation for the buffer occurs when you first assign a string to the variable. If later, you assign a longer string to that variable, InstallShield increases the memory allocation to accommodate the longer string—up to the amount of available memory. However, if you later assign a shorter string to an autosized variable, InstallShield does not decrease the memory allocation.

CAUTION

InstallShield's autosizing feature does not work in typedef statements; you must specify the size of all STRING declarations in a structure.

Specifying a String Size
When specifying a string size, you must declare one character position for the null terminator. For example, if you want your string to hold up to 128 characters, you must declare it with a length of 129 to allow room for the null terminator. For this reason, the minimum size of a string is 2.

InstallShield User Guide

273

Chapter 7: Variable Data System Variables

When you are using a string that you have declared with a size, you must be aware of how that string might be used with other strings. For example, consider the following function call:
STRING szQuestion[20], szDefault[20], svResult[50]; begin szQuestion = "Enter company name"; szDefault = "Macrovision Corp."; AskText (szQuestion, szDefault, svResult);

The size of the string svResult should be greater than or equal to the size of the string szDefault. If not, then szDefault, if accepted, will not fit into the svResult variable returned by the function. The easiest way to avoid conflicts is to let InstallShield autosize all strings (except those in a typedef statement).

CAUTION

An autosized string variable that is passed by reference to a function is not autosized within the called function. If the function attempts to assign a value whose length is greater than the current size of that parameter, run-time error 401 occurs. To avoid this error, declare strings with a specific size when they are to be passed by reference to a function.

System Variables
System variables are predefined script variables that contain information such as the source path, the target path, the Windows folder, and the Windows system folder. InstallShield automatically initializes these system variables when the installation process begins, and it is not necessary to declare these variables in your script.

NOTE

Many Windows Installer directory properties—such as INSTALLDIR, AppDataFolder, and TempFolder—are available directly as variables in your script.

System Variables and Text Substitutions
Some of the system variables have corresponding text substitutions. The installation internally uses text substitution to set the values of certain system variables as shown in the following tables. You can use these text substitutions in your script in the same way that you use text substitutions that you have defined.

274

InstallShield User Guide

Chapter 7: Variable Data System Variables

Writable System Variables and Text Substitutions
Table 7-1: Writable System Variables and Text Substitutions

Script Variable
ALLUS