Jump to content

DosPutMessage (FAPI): Difference between revisions

From EDM2
No edit summary
Ak120 (talk | contribs)
mNo edit summary
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{Legacy
|RepFunc=[[DosPutMessage]]
|Remarks=This function is part of the [[Family API]].
}}
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.
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==
==Syntax==
  DosPutMessage (FileHandle, MessageLength, MessageBuffer)  
  DosPutMessage (FileHandle, MessageLength, MessageBuffer)


==Parameters==
==Parameters==
Line 14: Line 10:


==Return Code==
==Return Code==
rc (USHORT) - return
;rc (USHORT) - return:Return code descriptions are:
Return code descriptions are:
*0 NO_ERROR
* 0         NO_ERROR
*6 ERROR_INVALID_HANDLE
* 6         ERROR_INVALID_HANDLE
*19 ERROR_WRITE_PROTECT
* 19       ERROR_WRITE_PROTECT
*321 ERROR_MR_UN_PERFORM
* 321       ERROR_MR_UN_PERFORM


==Remarks==
==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.
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.  
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==
==Bindings==
===C Binding===
===C===
<PRE>
<PRE>
#define INCL_DOSMISC
#define INCL_DOSMISC
Line 33: Line 28:
USHORT  rc = DosPutMessage(FileHandle, MessageLength, MessageBuffer);
USHORT  rc = DosPutMessage(FileHandle, MessageLength, MessageBuffer);


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


USHORT           rc;            /* return code */
USHORT rc;            /* return code */
</PRE>
</PRE>


===MASM Binding===
===MASM===
<PRE>
<PRE>
EXTRN  DosPutMessage:FAR
EXTRN  DosPutMessage:FAR
Line 52: Line 47:
Returns WORD
Returns WORD
</PRE>
</PRE>
==Related Functions==
*


[[Category:Dos]]
[[Category:Dos16]]

Latest revision as of 02:37, 26 January 2020

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.

Bindings

C

#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

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