Export (0) Print
Expand All

Session.Message method

The Message method of the Session object performs any enabled logging operations and defers execution to the UI handler object associated with the engine. Logging may be selectively enabled for the various message types. See the EnableLog method.

If record field 0 contains a formatting string, it is used to format the data in the other fields. Else if the message is an error, warning, or user message, an attempt is made to find a message template in the Error table for the current database using the error number found in field 1 of the record for message types and return values.

Syntax


Session.Message(
  kind,
  record
)

Parameters

kind

The kind parameter is required to be one of the following values. To display a message box with push buttons and icons, calculate the value of kind by adding the standard message box styles used by MessageBox and MessageBoxEx to msiMessageTypeError, msiMessageTypeWarning, or msiMessageTypeUser. For more information see the Remarks section below.

ConstantMeaning
msiMessageTypeFatalExit
&H00000000

Premature termination, possibly fatal out of memory.

msiMessageTypeError
&H01000000

Formatted error message, [1] is message number in Error table.

msiMessageTypeWarning
&H02000000

Formatted warning message, [1] is message number in Error table.

msiMessageTypeUser
&H03000000

User request message, [1] is message number in Error table.

msiMessageTypeInfo
&H04000000

Informative message for log, not to be displayed.

msiMessageTypeFilesInUse
&H05000000

List of files in use that need to be replaced.

msiMessageTypeResolveSource
&H06000000

Request to determine a valid source location.

msiMessageTypeOutOfDiskSpace
&H07000000

Insufficient disk space message.

msiMessageTypeActionStart
&H08000000

Start of action, [1] action name, [2] description, [3] template for ACTIONDATA messages.

msiMessageTypeActionData
&H09000000

Action data. Record fields correspond to the template of ACTIONSTART message.

msiMessageTypeProgress
&H0A000000

Progress bar information. See the description of record fields below.

msiMessageTypeCommonData
&H0B000000

To enable the Cancel button set [1] to 2 and [2] to 1.

To disable the Cancel button set [1] to 2 and [2] to 0

 

record

Required Record object containing a message-specific field.

Return value

ConstantValue
msiMessageStatusError

-1

msiMessageStatusNone

0

msiMessageStatusOk

1

msiMessageStatusCancel

2

msiMessageStatusAbort

3

msiMessageStatusRetry

4

msiMessageStatusIgnore

5

msiMessageStatusYes

6

msiMessageStatusNo

7

 

Remarks

Message Record Fields

The following describes the record field definitions when msiMessageTypeProgress is passed as the message type.

Field 1 specifies the type of the progress message. The meaning of the other fields depend upon the value in this field. The possible values that can be set into Field 1 are as follows.

Message nameValueField 1 description
MasterReset0Resets progress bar and sets the expected total number of ticks in the bar.
ActionInfo1Provides information related to progress messages to be sent by the current action.
ProgressReport2Increments the progress bar.
ProgressAddition3Enables an action (such as CustomAction) to add ticks to the expected total number of progress of the progress bar.

 

The meaning of Field 2 depends upon the value in Field 1 as follows.

Field 1 valueField 2 description
0Expected total number of ticks in the progress bar.
1Number of ticks the progress bar moves for each ActionData message. This field is ignored if Field 3 is 0.
2Number of ticks the progress bar has moved.
3Number of ticks to add to total expected progress.

 

The meaning of Field 3 depends upon the value in Field 1 as follows.

Field 1 valueField 3 valueField 3 description
00Forward progress bar (left to right)
 1Backward progress bar (right to left)
10The current action will send explicit ProgressReport messages.
 1Increment the progress bar by the number of ticks specified in Field 2 each time an ActionData message is sent.
2Unused
3Unused

 

The meaning of Field 4 depends upon the value in Field 1 as follows.

Field 1 valueField 4 valueField 4 description
00Execution is in progress. In this case, the UI could calculate and display the time remaining.
 1Creating the execution script. In this case, the UI could display a message to please wait while the installer finishes preparing the installation.
1Unused
2Unused
3Unused

 

Displaying Message Boxes

To display a message box with push buttons and icons, calculate the value of kind by adding the standard message box styles used by MessageBox and MessageBoxEx to msiMessageTypeError, msiMessageTypeWarning, or msiTypeUser. The available push button options for VBScript are vbOKOnly (MB_OK), vbOKCancel (MB_OKCANCEL), vbAbortRetryIgnore (MB_ABORTRETRYIGNORE), vbYesNoCancel (MB_YESNOCANCEL), vbYesNo (MB_YESNO), and vbRetryCancel (MB_RETRYCANCEL). The available icon options for VBScript are vbCritical (MB_ICONERROR), vbQuestion (MB_ICONQUESTION), vbExclamation (MB_ICONWARNING), and vbInformation (MB_ICONINFORMATION).

For example, the following call sends a msiMessageTypeError message with the vbExclamation icon and vbYesNo buttons.


Session.Message &H01000034, record


If a custom action calls the Message method, the custom action should be capable of handling a cancellation by the user and should return msiDoActionStatusUserExit.

Requirements

Version

Windows Installer 5.0 on Windows Server 2012, Windows 8, Windows Server 2008 R2 or Windows 7. Windows Installer 4.0 or Windows Installer 4.5 on Windows Server 2008 or Windows Vista. Windows Installer on Windows Server 2003 or Windows XP

DLL

Msi.dll

IID

IID_ISession is defined as 000C109E-0000-0000-C000-000000000046

 

 

Community Additions

ADD
Show:
© 2014 Microsoft