VAPINM_TEXTBUFFER
Description
Syntax
#include <kvvapi.h> VAPINM_TEXTBUFFER = uMsg; (wParam is unused). TPVAPITextInfo lpTextInfo = (TPVAPITextInfo*) lParam;
Arguments
|
Argument |
Description |
|---|---|
|
|
Pointer to a TPVAPITextInfo structure that defines the text buffer. |
Returns
None
Discussion
-
The
lpTextInfo->cbTextparameter is the number of bytes of text in the buffer. Typically, the buffer is approximately 4 KB, but might be larger. It cannot exceed 10 KB.Text buffers are usually created at an even boundary, such as the end of a paragraph, table row, or page column. However, if a table row or page column contains a large amount of text, it might be split across text buffers to make sure that
lpTextInfo->cbTextdoes not exceed 10 K. Individual words are never split across buffers. IflpTextInfoisNULL, the end of the document is reached. -
The
lpTextInfo->lpTextparameter is a pointer to the buffer of characters. Typically, the buffer is in the Windows ANSI character set; however, the Viewing API allows the user to select either the OEM or ANSI character set for text files. Depending on your integration of Viewing, this might or might not be an issue.The buffer is zero-terminated. The terminator is not counted in the byte count. The text is an allocated buffer returned to the system upon return of this message. Therefore, you can write within this buffer if it is convenient.
Embedded control codes exist as follows:
KV_EOP0x01End of paragraph.
KV_EOC0x02End of cell.
KV_PIC0x03Picture exists at this logical address.
-
To form a logical address from a
TEXTBUFFERmessage, take the base address and add to it the number ofBYTESfrom the start of the text buffer (lpText) that the base address references.For example, the following
TEXTBUFFERmessages might occur in a document:{ 0, 1000, xxxx } { 1000, 2300, yyyy } { 3300, 1000, zzzz }In this case, addresses 0 through 999 exist in the first
TEXTBUFFER, addresses 1000 through 3299 in the second buffer, and 3300 through 4299 in the third buffer.