Consider reviewing the file msidefs.h from platform SDK's include directory for more insights. In this case, you'll want to check the enum msidbCustomActionType for the first ten values.
// CustomAction.Type
enum msidbCustomActionType
{
// executable types
msidbCustomActionTypeDll = 0x00000001, // Target = entry point name
msidbCustomActionTypeExe = 0x00000002, // Target = command line args
msidbCustomActionTypeTextData = 0x00000003, // Target = text string to be formatted and set into property
msidbCustomActionTypeJScript = 0x00000005, // Target = entry point name, null if none to call
msidbCustomActionTypeVBScript = 0x00000006, // Target = entry point name, null if none to call
msidbCustomActionTypeInstall = 0x00000007, // Target = property list for nested engine initialization
// source of code
msidbCustomActionTypeBinaryData = 0x00000000, // Source = Binary.Name, data stored in stream
msidbCustomActionTypeSourceFile = 0x00000010, // Source = File.File, file part of installation
msidbCustomActionTypeDirectory = 0x00000020, // Source = Directory.Directory, folder containing existing file
msidbCustomActionTypeProperty = 0x00000030, // Source = Property.Property, full path to executable
...
}
The MSDN topic above covers the valid combinations of these bit flags.
Robert Flaming
Windows Installer Program Manager
Team Blog: http://blogs.msdn.com/windows_installer_team
Individual Blog: http://blogs.msdn.com/rflaming