DosPutMessage (FAPI)

From EDM2
Revision as of 15:37, 25 September 2016 by Martini (Talk | contribs)

Jump to: navigation, search

Legacy.png This is the legacy function, please visit DosPutMessage.

Description

This call outputs the message in a buffer passed by a caller to the specified handle. The function formats the buffer to prevent words from wrapping if displayed to a screen.

Syntax

 DosPutMessage

    (FileHandle, MessageLength, MessageBuffer) 

Parameters

FileHandle (USHORT) - input 
Handle of the output file or device.
MessageLength (USHORT) - input 
Length of the message to be output.
MessageBuffer (PCHAR) - input 
Address of the buffer that contains the returned message.

Return Code

rc (USHORT) - return

Return code descriptions are:

  • 0 NO_ERROR
  • 6 ERROR_INVALID_HANDLE
  • 19 ERROR_WRITE_PROTECT
  • 321 ERROR_MR_UN_PERFORM

Remarks

Screen width is assumed to be 80 characters. The DosPutMessage call counts a CR/LF in the 80 characters that it tries to write to the screen. If a word extends past column 78, it is put on the next line. DosPutMessage assumes the starting cursor position is column one when handling a word wrap.

If the last character to be positioned on a line is a double-byte character that would be bisected, the rule above ensures that the character is not bisected.


Example Code

C Binding

#define INCL_DOSMISC

USHORT  rc = DosPutMessage(FileHandle, MessageLength, MessageBuffer);

USHORT           FileHandle;    /* Handle of output file/device */
USHORT           MessageLength; /* Length of message buffer */
PCHAR            MessageBuffer; /* Message buffer */

USHORT           rc;            /* return code */

MASM Binding

EXTRN  DosPutMessage:FAR
INCL_DOSMISC      EQU 1

PUSH   WORD    FileHandle    ;Handle of output file/device
PUSH   WORD    MessageLength ;Length of message buffer
PUSH@  OTHER   MessageBuffer ;Message buffer
CALL   DosPutMessage

Returns WORD

Related Functions