TixUtils library

The default extension DLL implementation includes a number of helper functions that may be useful when you implement your own extension DLL. None of the function require special runtime support; they can be compiled without the use of the C/C++ runtime library, MFC, or any other libraries. Only a minimal set of standard Windows DLLs are required on the target system.

The functions are documented in their header file; their full source code is also included. Please consult the following files for details:

InstallMate 9\Tix\TixUtils.h
The annotated declarations of the utility functions.
InstallMate 9\Tix\TixUtils.c
The source code for all utility functions.

Memory allocation

Function Description
TixMalloc Allocate a block of unitialized memory
TixCalloc Allocate a block of zero-filled memory
TixFree Release an allocated block of memory

Null-terminated string and memory block manipulation

Function Description
TixMemMove Copy bytes in memory (overlapping source and destinations ranges are allowed)
TixStrCopy Copy a null-terminated string
TixStrNCopy Copy a null-terminated string up to a given maximum length
TixStrDup Allocate a copy of a null-terminated string
TixStrDupA2W Allocate a Unicode copy of a null-terminated multibyte string
TixStrDupW2A Allocated a multibyte copy of a null-terminated Unicode string
TixStrToU Parse an unsigned decimal integer number from a null-terminated string
TixLoadStringEx Load a (possibly localized) string resource from the extension DLL's resources
TixParseVersion Parse a dotted version number a.b.c.d from a null-terminated string
TixFormatVersion Format a version number a.b.c.d to a null-terminated string buffer

File and directory path operations

Function Description
TixMakePath Combine a directory path and file name to a new path
TixGetFileName Return a pointer to the rightmost component in a file or directory path
TixPathRemoveRight Removed the rightmost component from a file or directory path

File and directory operations

Note: Symbolic <pathnames> are allowed and will be resolved automatically.

Function Description
TixCreateDirectory Create a new directory
TixCopyDirectory Copy a directory and its contents, with optional depth-limited recursion
TixDeleteDirectory Delete a directory and its files, without recursion
TixDeleteDirectoryRecursive Delete a directory and its files, including all its subdirectories
TixDeleteFiles Delete all files that match a given wildcard specification
TixFileExists Check if a file or directory exists
TixFindFile Perform a recursive search for a file or directory that matches a given wildcard specification
TixGetVersionInfo Retrieve the version information from an executable file
TixGetFileVersion Retrieve the file version from an executable file
TixGetOcxVersion Retrieve the installed version of an ActiveX control, given its CLSID or ProgID
TixGetOcxVersionEx Extended version of TixGetOcxVersion that checks a list of CLSID and/or ProgIDs.
TixCreateShortcut Create a new shortcut (i.e., shell link) to a file or folder.
TixDeleteShortcut Delete a shortcut to a file or folder.

User interaction

Function Description
TixMessageBox Display a message box with optionally localized text. In quiet mode, returns the default response.
TixDialogBox Display a dialog box with optionally localized content.
TixQueryDirectory Display the standard Windows Select Folder dialog box and returns the selected directory path.

Process-related operations

Function Description
TixWait Suspend the installer process for a number of milliseconds.
TixIsProcessRunning Check if another process is running.
TixIsProcessRunningEx Enumerate all running instances of a given process name and perform a callback action on each one.
TixEnumProcesses Enumerate all running processes and perform a callback action on each one.
TixIsProcessRunningNT Enumerate all running instances of a given process name, using a Windows NT-specific method.

Debugging macros

Macro Description
TIX_OPENLOG Open the debugging log file; only has effect in Debug builds.
TIX_CLOSELOG Close the debugging log file; only has effect in Debug builds.
TIX_LOG Write a message to the debugging log file; only has effect in Debug builds.
TIX_MSGNAME Returns the symbolic name of the given TIX message number.