mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2026-01-01 17:40:43 +01:00
968 lines
28 KiB
ObjectPascal
968 lines
28 KiB
ObjectPascal
{ Converted by H2Pas from richedit.h }
|
|
unit RichEdit;
|
|
|
|
{$mode objfpc}
|
|
{$calling stdcall}
|
|
|
|
{$ifdef FPC_OS_UNICODE}
|
|
{$define UNICODE}
|
|
{$endif}
|
|
|
|
interface
|
|
|
|
uses Messages, Windows;
|
|
|
|
{$IFDEF FPC}
|
|
{$PACKRECORDS C}
|
|
{$ENDIF}
|
|
|
|
Const
|
|
|
|
RICHEDIT_CLASSA = 'RichEdit20A';
|
|
RICHEDIT_CLASSW = 'RichEdit20W';
|
|
|
|
{$ifdef UNICODE }
|
|
const
|
|
RICHEDIT_CLASS = RICHEDIT_CLASSW;
|
|
{$else}
|
|
const
|
|
RICHEDIT_CLASS = RICHEDIT_CLASSA;
|
|
{$endif}
|
|
|
|
|
|
|
|
const
|
|
|
|
WM_CONTEXTMENU = $007B;
|
|
WM_UNICHAR = $0109;
|
|
WM_PRINTCLIENT = $0318;
|
|
|
|
//#ifndef EM_GETLIMITTEXT
|
|
EM_GETLIMITTEXT = (WM_USER + 37);
|
|
//#endif
|
|
|
|
//#ifndef EM_POSFROMCHAR
|
|
EM_POSFROMCHAR = (WM_USER + 38);
|
|
EM_CHARFROMPOS = (WM_USER + 39);
|
|
//#endif
|
|
|
|
//#ifndef EM_SCROLLCARET
|
|
EM_SCROLLCARET = (WM_USER + 49);
|
|
//#endif
|
|
EM_CANPASTE = (WM_USER + 50);
|
|
EM_DISPLAYBAND = (WM_USER + 51);
|
|
EM_EXGETSEL = (WM_USER + 52);
|
|
EM_EXLIMITTEXT = (WM_USER + 53);
|
|
EM_EXLINEFROMCHAR = (WM_USER + 54);
|
|
EM_EXSETSEL = (WM_USER + 55);
|
|
EM_FINDTEXT = (WM_USER + 56);
|
|
EM_FORMATRANGE = (WM_USER + 57);
|
|
EM_GETCHARFORMAT = (WM_USER + 58);
|
|
EM_GETEVENTMASK = (WM_USER + 59);
|
|
EM_GETOLEINTERFACE = (WM_USER + 60);
|
|
EM_GETPARAFORMAT = (WM_USER + 61);
|
|
EM_GETSELTEXT = (WM_USER + 62);
|
|
EM_HIDESELECTION = (WM_USER + 63);
|
|
EM_PASTESPECIAL = (WM_USER + 64);
|
|
EM_REQUESTRESIZE = (WM_USER + 65);
|
|
EM_SELECTIONTYPE = (WM_USER + 66);
|
|
EM_SETBKGNDCOLOR = (WM_USER + 67);
|
|
EM_SETCHARFORMAT = (WM_USER + 68);
|
|
EM_SETEVENTMASK = (WM_USER + 69);
|
|
EM_SETOLECALLBACK = (WM_USER + 70);
|
|
EM_SETPARAFORMAT = (WM_USER + 71);
|
|
EM_SETTARGETDEVICE = (WM_USER + 72);
|
|
EM_STREAMIN = (WM_USER + 73);
|
|
EM_STREAMOUT = (WM_USER + 74);
|
|
EM_GETTEXTRANGE = (WM_USER + 75);
|
|
EM_FINDWORDBREAK = (WM_USER + 76);
|
|
EM_SETOPTIONS = (WM_USER + 77);
|
|
EM_GETOPTIONS = (WM_USER + 78);
|
|
EM_FINDTEXTEX = (WM_USER + 79);
|
|
//#ifdef _WIN32
|
|
EM_GETWORDBREAKPROCEX = (WM_USER + 80);
|
|
EM_SETWORDBREAKPROCEX = (WM_USER + 81);
|
|
//#endif
|
|
|
|
// RichEdit 2.0 messages
|
|
EM_SETUNDOLIMIT = (WM_USER + 82);
|
|
EM_REDO = (WM_USER + 84);
|
|
EM_CANREDO = (WM_USER + 85);
|
|
EM_GETUNDONAME = (WM_USER + 86);
|
|
EM_GETREDONAME = (WM_USER + 87);
|
|
EM_STOPGROUPTYPING = (WM_USER + 88);
|
|
|
|
EM_SETTEXTMODE = (WM_USER + 89);
|
|
EM_GETTEXTMODE = (WM_USER + 90);
|
|
|
|
EM_AUTOURLDETECT = (WM_USER + 91);
|
|
EM_GETAUTOURLDETECT= (WM_USER + 92);
|
|
EM_SETPALETTE = (WM_USER + 93);
|
|
EM_GETTEXTEX = (WM_USER + 94);
|
|
EM_GETTEXTLENGTHEX = (WM_USER + 95);
|
|
EM_SHOWSCROLLBAR = (WM_USER + 96);
|
|
EM_SETTEXTEX = (WM_USER + 97);
|
|
|
|
// East Asia specific messages
|
|
EM_SETPUNCTUATION = (WM_USER + 100);
|
|
EM_GETPUNCTUATION = (WM_USER + 101);
|
|
EM_SETWORDWRAPMODE = (WM_USER + 102);
|
|
EM_GETWORDWRAPMODE = (WM_USER + 103);
|
|
EM_SETIMECOLOR = (WM_USER + 104);
|
|
EM_GETIMECOLOR = (WM_USER + 105);
|
|
EM_SETIMEOPTIONS = (WM_USER + 106);
|
|
EM_GETIMEOPTIONS = (WM_USER + 107);
|
|
EM_CONVPOSITION = (WM_USER + 108);
|
|
|
|
EM_SETLANGOPTIONS = (WM_USER + 120);
|
|
EM_GETLANGOPTIONS = (WM_USER + 121);
|
|
EM_GETIMECOMPMODE = (WM_USER + 122);
|
|
|
|
EM_FINDTEXTW = (WM_USER + 123);
|
|
EM_FINDTEXTEXW = (WM_USER + 124);
|
|
|
|
// RE3.0 FE messages
|
|
EM_RECONVERSION = (WM_USER + 125);
|
|
EM_SETIMEMODEBIAS = (WM_USER + 126);
|
|
EM_GETIMEMODEBIAS = (WM_USER + 127);
|
|
|
|
// BiDi specific messages
|
|
EM_SETBIDIOPTIONS = (WM_USER + 200);
|
|
EM_GETBIDIOPTIONS = (WM_USER + 201);
|
|
|
|
EM_SETTYPOGRAPHYOPTIONS = (WM_USER + 202);
|
|
EM_GETTYPOGRAPHYOPTIONS = (WM_USER + 203);
|
|
|
|
// Extended edit style specific messages
|
|
EM_SETEDITSTYLE = (WM_USER + 204);
|
|
EM_GETEDITSTYLE = (WM_USER + 205);
|
|
|
|
// Pegasus outline mode messages (RE 3.0)
|
|
|
|
// Outline mode message
|
|
EM_OUTLINE = (WM_USER + 220);
|
|
// Message for getting and restoring scroll pos
|
|
EM_GETSCROLLPOS = (WM_USER + 221);
|
|
EM_SETSCROLLPOS = (WM_USER + 222);
|
|
// Change fontsize in current selection by wParam
|
|
EM_SETFONTSIZE = (WM_USER + 223);
|
|
EM_GETZOOM = (WM_USER + 224);
|
|
EM_SETZOOM = (WM_USER + 225);
|
|
EM_GETVIEWKIND = (WM_USER + 226);
|
|
EM_SETVIEWKIND = (WM_USER + 227);
|
|
|
|
// RichEdit 4.0 messages
|
|
EM_GETPAGE = (WM_USER + 228);
|
|
EM_SETPAGE = (WM_USER + 229);
|
|
EM_GETHYPHENATEINFO= (WM_USER + 230);
|
|
EM_SETHYPHENATEINFO= (WM_USER + 231);
|
|
EM_INSERTTABLE = (WM_USER + 232);
|
|
EM_GETAUTOCORRECTPROC = (WM_USER + 233);
|
|
EM_SETAUTOCORRECTPROC = (WM_USER + 234);
|
|
EM_CALLAUTOCORRECTPROC = (WM_USER + 255);
|
|
|
|
EM_GETPAGEROTATE = (WM_USER + 235);
|
|
EM_SETPAGEROTATE = (WM_USER + 236);
|
|
EM_GETCTFMODEBIAS = (WM_USER + 237);
|
|
EM_SETCTFMODEBIAS = (WM_USER + 238);
|
|
EM_GETCTFOPENSTATUS= (WM_USER + 240);
|
|
EM_SETCTFOPENSTATUS= (WM_USER + 241);
|
|
EM_GETIMECOMPTEXT = (WM_USER + 242);
|
|
EM_ISIME = (WM_USER + 243);
|
|
EM_GETIMEPROPERTY = (WM_USER + 244);
|
|
EM_GETTABLEPARMS = (WM_USER + 265);
|
|
// These messages control what rich edit does when it comes accross
|
|
// OLE objects during RTF stream in. Normally rich edit queries the client
|
|
// application only after OleLoad has been called. With these messages it is possible to
|
|
// set the rich edit control to a mode where it will query the client application before
|
|
// OleLoad is called
|
|
EM_GETQUERYRTFOBJ = (WM_USER + 269);
|
|
EM_SETQUERYRTFOBJ = (WM_USER + 270);
|
|
EM_SETEDITSTYLEEX = (WM_USER + 275);
|
|
EM_GETEDITSTYLEEX = (WM_USER + 276);
|
|
|
|
AURL_ENABLEURL = 1;
|
|
AURL_ENABLEEMAILADDR = 2;
|
|
AURL_ENABLETELNO = 4;
|
|
AURL_ENABLEEAURLS = 8;
|
|
AURL_ENABLEDRIVELETTERS = 16;
|
|
AURL_DISABLEMIXEDLGC = 32; // Disable mixed Latin Greek Cyrillic IDNs
|
|
|
|
// CFM_COLOR mirrors CFE_AUTOCOLOR, a little hack to easily deal with autocolor
|
|
|
|
// CHARFORMAT masks
|
|
CFM_BOLD = $00000001;
|
|
CFM_ITALIC = $00000002;
|
|
CFM_UNDERLINE = $00000004;
|
|
CFM_STRIKEOUT = $00000008;
|
|
CFM_PROTECTED = $00000010;
|
|
CFM_LINK = $00000020; // Exchange hyperlink extension
|
|
CFM_SIZE = $80000000;
|
|
CFM_COLOR = $40000000;
|
|
CFM_FACE = $20000000;
|
|
CFM_OFFSET = $10000000;
|
|
CFM_CHARSET = $08000000;
|
|
|
|
// CHARFORMAT effects
|
|
CFE_BOLD = $00000001;
|
|
CFE_ITALIC = $00000002;
|
|
CFE_UNDERLINE = $00000004;
|
|
CFE_STRIKEOUT = $00000008;
|
|
CFE_PROTECTED = $00000010;
|
|
CFE_LINK = $00000020;
|
|
CFE_AUTOCOLOR = $40000000; // NOTE: this corresponds to CFM_COLOR, which controls it
|
|
|
|
|
|
// Masks and effects defined for CHARFORMAT2 -- an (*) indicates
|
|
// that the data is stored by RichEdit 2.0/3.0, but not displayed
|
|
CFM_SMALLCAPS = $00000040; // (*)
|
|
CFM_ALLCAPS = $00000080; // Displayed by 3.0
|
|
CFM_HIDDEN = $00000100; // Hidden by 3.0
|
|
CFM_OUTLINE = $00000200; // (*)
|
|
CFM_SHADOW = $00000400; // (*)
|
|
CFM_EMBOSS = $00000800; // (*)
|
|
CFM_IMPRINT = $00001000; // (*)
|
|
CFM_DISABLED = $00002000;
|
|
CFM_REVISED = $00004000;
|
|
|
|
|
|
|
|
CFM_REVAUTHOR = $00008000;
|
|
CFE_SUBSCRIPT = $00010000; // Superscript and subscript are
|
|
CFE_SUPERSCRIPT = $00020000; // mutually exclusive
|
|
CFM_ANIMATION = $00040000; // (*)
|
|
CFM_STYLE = $00080000; // (*)
|
|
CFM_KERNING = $00100000;
|
|
CFM_SPACING = $00200000; // Displayed by 3.0
|
|
CFM_WEIGHT = $00400000;
|
|
CFM_UNDERLINETYPE = $00800000; // Many displayed by 3.0
|
|
//#if (_RICHEDIT_VER >= = $0600)
|
|
CFM_COOKIE = $01000000; // RE 6.0
|
|
//#endif
|
|
CFM_LCID = $02000000;
|
|
CFM_BACKCOLOR = $04000000; // Higher mask bits defined above
|
|
|
|
CFM_SUBSCRIPT = (CFE_SUBSCRIPT or CFE_SUPERSCRIPT);
|
|
CFM_SUPERSCRIPT = CFM_SUBSCRIPT;
|
|
|
|
|
|
CFE_ALLCAPS = CFM_ALLCAPS;
|
|
CFE_AUTOBACKCOLOR = CFM_BACKCOLOR;
|
|
CFE_DISABLED = CFM_DISABLED;
|
|
CFE_EMBOSS = CFM_EMBOSS;
|
|
CFE_HIDDEN = CFM_HIDDEN;
|
|
CFE_IMPRINT = CFM_IMPRINT;
|
|
CFE_OUTLINE = CFM_OUTLINE;
|
|
CFE_SHADOW = CFM_SHADOW;
|
|
CFE_SMALLCAPS = CFM_SMALLCAPS;
|
|
|
|
CFM_EFFECTS =
|
|
CFM_BOLD or CFM_ITALIC or CFM_UNDERLINE or CFM_COLOR or
|
|
CFM_STRIKEOUT or CFE_PROTECTED or CFM_LINK;
|
|
|
|
CFM_ALL =
|
|
CFM_EFFECTS or CFM_SIZE or CFM_FACE or CFM_OFFSET or CFM_CHARSET;
|
|
|
|
CFM_EFFECTS2 =
|
|
CFM_EFFECTS or CFM_DISABLED or CFM_SMALLCAPS or CFM_ALLCAPS or
|
|
CFM_HIDDEN or CFM_OUTLINE or CFM_SHADOW or CFM_EMBOSS or
|
|
CFM_IMPRINT or CFM_DISABLED or CFM_REVISED or
|
|
CFM_SUBSCRIPT or CFM_SUPERSCRIPT or CFM_BACKCOLOR;
|
|
|
|
CFM_ALL2 =
|
|
CFM_ALL or CFM_EFFECTS2 or CFM_BACKCOLOR or CFM_LCID or
|
|
CFM_UNDERLINETYPE or CFM_WEIGHT or CFM_REVAUTHOR or
|
|
CFM_SPACING or CFM_KERNING or CFM_STYLE or CFM_ANIMATION;
|
|
|
|
CFU_CF1UNDERLINE = $000000FF;
|
|
CFU_INVERT = $000000FE;
|
|
CFU_UNDERLINEDOTTED = $00000004;
|
|
CFU_UNDERLINEDOUBLE = $00000003;
|
|
CFU_UNDERLINEWORD = $00000002;
|
|
CFU_UNDERLINE = $00000001;
|
|
CFU_UNDERLINENONE = $00000000;
|
|
|
|
GCM_RIGHTMOUSEDROP = $8000;
|
|
|
|
|
|
// Extended edit style masks
|
|
SES_EMULATESYSEDIT = 1;
|
|
SES_BEEPONMAXTEXT = 2;
|
|
SES_EXTENDBACKCOLOR = 4;
|
|
SES_MAPCPS = 8; // Obsolete (never used)
|
|
//#if (_RICHEDIT_VER >= = $0500)
|
|
SES_HYPERLINKTOOLTIPS = 8;
|
|
//#endif
|
|
SES_EMULATE10 = 16; // Obsolete (never used)
|
|
//#if (_RICHEDIT_VER >= = $0700)
|
|
SES_DEFAULTLATINLIGA = 16;
|
|
//#endif
|
|
SES_USECRLF = 32; // Obsolete (never used)
|
|
//#if (_RICHEDIT_VER >= = $0700)
|
|
SES_NOFOCUSLINKNOTIFY = 32;
|
|
//#endif
|
|
SES_USEAIMM = 64;
|
|
SES_NOIME = 128;
|
|
SES_NOXLTSYMBOLRANGE = 32;
|
|
|
|
SES_ALLOWBEEPS = 256;
|
|
SES_UPPERCASE = 512;
|
|
SES_LOWERCASE = 1024;
|
|
SES_NOINPUTSEQUENCECHK= 2048;
|
|
SES_BIDI = 4096;
|
|
SES_SCROLLONKILLFOCUS = 8192;
|
|
SES_XLTCRCRLFTOCR = 16384;
|
|
SES_DRAFTMODE = 32768;
|
|
|
|
SES_USECTF = $00010000;
|
|
SES_HIDEGRIDLINES = $00020000;
|
|
SES_USEATFONT = $00040000;
|
|
SES_CUSTOMLOOK = $00080000;
|
|
SES_LBSCROLLNOTIFY = $00100000;
|
|
SES_CTFALLOWEMBED = $00200000;
|
|
SES_CTFALLOWSMARTTAG = $00400000;
|
|
SES_CTFALLOWPROOFING = $00800000;
|
|
//#if (_RICHEDIT_VER >= = $0500)
|
|
SES_LOGICALCARET = $01000000;
|
|
SES_WORDDRAGDROP = $02000000;
|
|
SES_SMARTDRAGDROP = $04000000;
|
|
SES_MULTISELECT = $08000000;
|
|
SES_CTFNOLOCK = $10000000;
|
|
SES_NOEALINEHEIGHTADJUST = $20000000;
|
|
SES_MAX = $20000000;
|
|
//#endif
|
|
|
|
// Options for EM_SETLANGOPTIONS and EM_GETLANGOPTIONS
|
|
IMF_AUTOKEYBOARD = $0001;
|
|
IMF_AUTOFONT = $0002;
|
|
IMF_IMECANCELCOMPLETE = $0004; // High completes comp string when aborting, low cancels
|
|
IMF_IMEALWAYSSENDNOTIFY= $0008;
|
|
IMF_AUTOFONTSIZEADJUST= $0010;
|
|
IMF_UIFONTS = $0020;
|
|
IMF_NOIMPLICITLANG = $0040;
|
|
IMF_DUALFONT = $0080;
|
|
IMF_NOKBDLIDFIXUP = $0200;
|
|
IMF_NORTFFONTSUBSTITUTE = $0400;
|
|
IMF_SPELLCHECKING = $0800;
|
|
IMF_TKBPREDICTION = $1000;
|
|
IMF_IMEUIINTEGRATION = $2000;
|
|
|
|
|
|
// Values for EM_GETIMECOMPMODE
|
|
ICM_NOTOPEN = $0000;
|
|
ICM_LEVEL3 = $0001;
|
|
ICM_LEVEL2 = $0002;
|
|
ICM_LEVEL2_5 = $0003;
|
|
ICM_LEVEL2_SUI = $0004;
|
|
ICM_CTF = $0005;
|
|
|
|
// Options for EM_SETTYPOGRAPHYOPTIONS
|
|
TO_ADVANCEDTYPOGRAPHY = $0001;
|
|
TO_SIMPLELINEBREAK = $0002;
|
|
TO_DISABLECUSTOMTEXTOUT = $0004;
|
|
TO_ADVANCEDLAYOUT = $0008;
|
|
|
|
// EM_SETPAGEROTATE wparam values
|
|
EPR_0 = 0; // Text flows left to right and top to bottom
|
|
EPR_270 = 1; // Text flows top to bottom and right to left
|
|
EPR_180 = 2; // Text flows right to left and bottom to top
|
|
EPR_90 = 3; // Text flows bottom to top and left to right
|
|
//#if (_RICHEDIT_VER >= 0x0800)
|
|
EPR_SE = 5; // Text flows top to bottom and left to right (Mongolian text layout)
|
|
//#endif
|
|
|
|
// EM_SETCTFMODEBIAS wparam values
|
|
CTFMODEBIAS_DEFAULT = $000;
|
|
CTFMODEBIAS_FILENAME = $001;
|
|
CTFMODEBIAS_NAME = $002;
|
|
CTFMODEBIAS_READING = $003;
|
|
CTFMODEBIAS_DATETIME = $004;
|
|
CTFMODEBIAS_CONVERSATION = $005;
|
|
CTFMODEBIAS_NUMERIC = $006;
|
|
CTFMODEBIAS_HIRAGANA = $007;
|
|
CTFMODEBIAS_KATAKANA = $008;
|
|
CTFMODEBIAS_HANGUL = $009;
|
|
CTFMODEBIAS_HALFWIDTHKATAKANA = $00A;
|
|
CTFMODEBIAS_FULLWIDTHALPHANUMERIC = $00B;
|
|
CTFMODEBIAS_HALFWIDTHALPHANUMERIC = $00C;
|
|
|
|
// EM_SETIMEMODEBIAS lparam values
|
|
IMF_SMODE_PLAURALCLAUSE = $001;
|
|
IMF_SMODE_NONE = $002;
|
|
|
|
ATP_NOCHANG = 0;
|
|
ATP_CHANGE = 1;
|
|
ATP_NODELIMITER = 2;
|
|
ATP_REPLACEALLTEXT = 4;
|
|
|
|
OLEOP_DOVERB = 1;
|
|
|
|
RICHEDIT_CLASS10A = 'RICHEDIT';
|
|
CF_RTF = 'Rich Text Format';
|
|
CF_RTFNOOBJS = 'Rich Text Format Without Objects';
|
|
CF_RETEXTOBJ = 'RichEdit Text and Objects';
|
|
|
|
IMF_FORCENONE = 1;
|
|
IMF_FORCEENABLE = 2;
|
|
IMF_FORCEDISABLE = 4;
|
|
IMF_CLOSESTATUSWINDOW = 8;
|
|
IMF_VERTICAL = 32;
|
|
IMF_FORCEACTIVE = 64;
|
|
IMF_FORCEINACTIVE = 128;
|
|
IMF_FORCEREMEMBER = 256;
|
|
IMF_MULTIPLEEDIT = $0400;
|
|
|
|
SEL_EMPTY = 0;
|
|
SEL_TEXT = 1;
|
|
SEL_OBJECT = 2;
|
|
SEL_MULTICHAR = 4;
|
|
SEL_MULTIOBJECT = 8;
|
|
MAX_TAB_STOPS = 32;
|
|
PFM_ALIGNMENT = 8;
|
|
PFM_NUMBERING = 32;
|
|
PFM_OFFSET = 4;
|
|
PFM_OFFSETINDENT = $80000000;
|
|
PFM_RIGHTINDENT = 2;
|
|
PFM_STARTINDENT = 1;
|
|
PFM_TABSTOPS = 16;
|
|
PFM_BORDER = 2048;
|
|
PFM_LINESPACING = 256;
|
|
PFM_NUMBERINGSTART = 32768;
|
|
PFM_NUMBERINGSTYLE = 8192;
|
|
PFM_NUMBERINGTAB = 16384;
|
|
PFM_SHADING = 4096;
|
|
PFM_SPACEAFTER = 128;
|
|
PFM_SPACEBEFORE = 64;
|
|
PFM_STYLE = 1024;
|
|
PFM_DONOTHYPHEN = 4194304;
|
|
PFM_KEEP = 131072;
|
|
PFM_KEEPNEXT = 262144;
|
|
PFM_NOLINENUMBER = 1048576;
|
|
PFM_NOWIDOWCONTROL = 2097152;
|
|
PFM_PAGEBREAKBEFORE = 524288;
|
|
PFM_RTLPARA = 65536;
|
|
PFM_SIDEBYSIDE = 8388608;
|
|
PFM_TABLE = 1073741824;
|
|
PFM_TEXTWRAPPINGBREAK = $20000000;
|
|
PFM_TABLEROWDELIMITER = $10000000;
|
|
PFM_COLLAPSED = $01000000;
|
|
PFM_OUTLINELEVEL = $02000000;
|
|
PFM_BOX = $04000000;
|
|
|
|
PFM_ALL =
|
|
PFM_STARTINDENT or PFM_RIGHTINDENT or PFM_OFFSET or PFM_ALIGNMENT
|
|
or PFM_TABSTOPS or PFM_NUMBERING or PFM_OFFSETINDENT or PFM_RTLPARA;
|
|
|
|
PFM_EFFECTS =
|
|
PFM_RTLPARA or PFM_KEEP or PFM_KEEPNEXT or PFM_TABLE or PFM_PAGEBREAKBEFORE
|
|
or PFM_NOLINENUMBER or PFM_NOWIDOWCONTROL or PFM_DONOTHYPHEN or PFM_SIDEBYSIDE
|
|
or PFM_TABLE or PFM_TABLEROWDELIMITER;
|
|
|
|
PFM_ALL2 =
|
|
PFM_ALL or PFM_EFFECTS or PFM_SPACEBEFORE or PFM_SPACEAFTER or
|
|
PFM_LINESPACING or PFM_STYLE or PFM_SHADING or PFM_BORDER or
|
|
PFM_NUMBERINGTAB or PFM_NUMBERINGSTART or PFM_NUMBERINGSTYLE;
|
|
|
|
|
|
|
|
PFN_BULLET = 1;
|
|
|
|
PFE_DONOTHYPHEN = 64;
|
|
PFE_KEEP = 2;
|
|
PFE_KEEPNEXT = 4;
|
|
PFE_NOLINENUMBER = 16;
|
|
PFE_NOWIDOWCONTROL = 32;
|
|
PFE_PAGEBREAKBEFORE = 8;
|
|
PFE_RTLPARA = 1;
|
|
PFE_SIDEBYSIDE = 128;
|
|
PFE_TABLE = 16384;
|
|
PFA_LEFT = 1;
|
|
PFA_RIGHT = 2;
|
|
PFA_CENTER = 3;
|
|
PFA_JUSTIFY = 4;
|
|
PFA_FULL_INTERWORD = 4;
|
|
SF_TEXT = 1;
|
|
SF_RTF = 2;
|
|
SF_RTFNOOBJS = 3;
|
|
SF_TEXTIZED = 4;
|
|
SF_UNICODE = 16;
|
|
SF_USECODEPAGE = 32;
|
|
SF_NCRFORNONASCII = 64;
|
|
SF_RTFVAL = $0700;
|
|
SFF_PWD = $0800;
|
|
SFF_KEEPDOCINFO = $1000;
|
|
SFF_PERSISTVIEWSCALE = $2000;
|
|
SFF_PLAINRTF = $4000;
|
|
SFF_SELECTION = $8000;
|
|
WB_CLASSIFY = 3;
|
|
WB_MOVEWORDLEFT = 4;
|
|
WB_MOVEWORDRIGHT = 5;
|
|
WB_LEFTBREAK = 6;
|
|
WB_RIGHTBREAK = 7;
|
|
WB_MOVEWORDPREV = 4;
|
|
WB_MOVEWORDNEXT = 5;
|
|
WB_PREVBREAK = 6;
|
|
WB_NEXTBREAK = 7;
|
|
WBF_WORDWRAP = 16;
|
|
WBF_WORDBREAK = 32;
|
|
WBF_OVERFLOW = 64;
|
|
WBF_LEVEL1 = 128;
|
|
WBF_LEVEL2 = 256;
|
|
WBF_CUSTOM = 512;
|
|
ES_DISABLENOSCROLL = 8192;
|
|
ES_EX_NOCALLOLEINIT = 16777216;
|
|
ES_NOIME = 524288;
|
|
ES_NOOLEDRAGDROP = 8;
|
|
ES_SAVESEL = 32768;
|
|
ES_SELECTIONBAR = 16777216;
|
|
ES_SELFIME = 262144;
|
|
ES_SUNKEN = 16384;
|
|
ES_VERTICAL = 4194304;
|
|
EN_CORRECTTEXT = 1797;
|
|
EN_DROPFILES = 1795;
|
|
EN_IMECHANGE = 1799;
|
|
EN_LINK = 1803;
|
|
EN_MSGFILTER = 1792;
|
|
EN_OLEOPFAILED = 1801;
|
|
EN_OBJECTPOSITIONS = $070a;
|
|
EN_DRAGDROPDONE = $070c;
|
|
EN_PROTECTED = 1796;
|
|
EN_REQUESTRESIZE = 1793;
|
|
EN_SAVECLIPBOARD = 1800;
|
|
EN_SELCHANGE = 1794;
|
|
EN_STOPNOUNDO = 1798;
|
|
ENM_NONE = 0;
|
|
ENM_CHANGE = 1;
|
|
ENM_CORRECTTEXT = 4194304;
|
|
ENM_DRAGDROPDONE = 16;
|
|
ENM_DROPFILES = 1048576;
|
|
ENM_IMECHANGE = 8388608;
|
|
ENM_KEYEVENTS = 65536;
|
|
ENM_LANGCHANGE = 16777216;
|
|
ENM_LINK = 67108864;
|
|
ENM_MOUSEEVENTS = 131072;
|
|
ENM_OBJECTPOSITIONS = 33554432;
|
|
ENM_PROTECTED = 2097152;
|
|
ENM_REQUESTRESIZE = 262144;
|
|
ENM_SCROLL = 4;
|
|
ENM_SCROLLEVENTS = 8;
|
|
ENM_SELCHANGE = 524288;
|
|
ENM_UPDATE = 2;
|
|
ECO_AUTOWORDSELECTION = 1;
|
|
ECO_AUTOVSCROLL = 64;
|
|
ECO_AUTOHSCROLL = 128;
|
|
ECO_NOHIDESEL = 256;
|
|
ECO_READONLY = 2048;
|
|
ECO_WANTRETURN = 4096;
|
|
ECO_SAVESEL = $8000;
|
|
ECO_SELECTIONBAR = $1000000;
|
|
ECO_VERTICAL = $400000;
|
|
ECOOP_SET = 1;
|
|
ECOOP_OR = 2;
|
|
ECOOP_AND = 3;
|
|
ECOOP_XOR = 4;
|
|
SCF_DEFAULT = 0;
|
|
SCF_SELECTION = 1;
|
|
SCF_WORD = 2;
|
|
SCF_ALL = 4;
|
|
SCF_USEUIRULES = 8;
|
|
TM_PLAINTEXT = 1;
|
|
TM_RICHTEXT = 2;
|
|
TM_SINGLELEVELUNDO = 4;
|
|
TM_MULTILEVELUNDO = 8;
|
|
TM_SINGLECODEPAGE = 16;
|
|
TM_MULTICODEPAGE = 32;
|
|
GT_DEFAULT = 0;
|
|
GT_USECRLF = 1;
|
|
GT_SELECTION = 2;
|
|
GT_RAWTEXT = 4;
|
|
GT_NOHIDDENTEXT = 8;
|
|
|
|
yHeightCharPtsMost = 1638;
|
|
lDefaultTab = 720;
|
|
FT_MATCHCASE = 4;
|
|
FT_WHOLEWORD = 2;
|
|
PC_FOLLOWING = 1;
|
|
PC_LEADING = 2;
|
|
PC_OVERFLOW = 3;
|
|
PC_DELIMITER = 4;
|
|
|
|
PFE_TABLEROW = $c000;
|
|
PFE_TABLECELLEND = $8000;
|
|
PFE_TABLECELL = $4000;
|
|
WBF_CLASS = $0F;
|
|
WBF_ISWHITE = $10;
|
|
WBF_BREAKLINE = $20;
|
|
WBF_BREAKAFTER = $40;
|
|
|
|
WCH_EMBEDDING = $FFFC;
|
|
cchTextLimitDefault = 32767;
|
|
|
|
type
|
|
UNDONAMEID = (UID_UNKNOWN, UID_TYPING, UID_DELETE, UID_DRAGDROP, UID_CUT, UID_PASTE);
|
|
|
|
_charformat = record
|
|
cbSize : UINT;
|
|
dwMask : DWORD;
|
|
dwEffects : DWORD;
|
|
yHeight : LONG;
|
|
yOffset : LONG;
|
|
crTextColor : COLORREF;
|
|
bCharSet : BYTE;
|
|
bPitchAndFamily : BYTE;
|
|
szFaceName : array[0..(LF_FACESIZE)-1] of char;
|
|
end;
|
|
CHARFORMATA = _charformat;
|
|
TCHARFORMATA = _charformat;
|
|
|
|
_charformatw = record
|
|
cbSize : UINT;
|
|
dwMask : DWORD;
|
|
dwEffects : DWORD;
|
|
yHeight : LONG;
|
|
yOffset : LONG;
|
|
crTextColor : COLORREF;
|
|
bCharSet : BYTE;
|
|
bPitchAndFamily : BYTE;
|
|
szFaceName : array[0..(LF_FACESIZE)-1] of WCHAR;
|
|
end;
|
|
CHARFORMATW = _charformatw;
|
|
TCHARFORMATW = _charformatw;
|
|
|
|
_charformat2a = record
|
|
cbSize : UINT;
|
|
dwMask : DWORD;
|
|
dwEffects : DWORD;
|
|
yHeight : LONG;
|
|
yOffset : LONG;
|
|
crTextColor : COLORREF;
|
|
bCharSet : BYTE;
|
|
bPitchAndFamily : BYTE;
|
|
szFaceName : array[0..(LF_FACESIZE)-1] of char;
|
|
wWeight : WORD;
|
|
sSpacing : SHORT;
|
|
crBackColor : COLORREF;
|
|
lcid : LCID;
|
|
dwReserved : DWORD;
|
|
sStyle : SHORT;
|
|
wKerning : WORD;
|
|
bUnderlineType : BYTE;
|
|
bAnimation : BYTE;
|
|
bRevAuthor : BYTE;
|
|
end;
|
|
CHARFORMAT2A = _charformat2a;
|
|
TCHARFORMAT2A = _charformat2a;
|
|
|
|
_charformat2w = record
|
|
cbSize : UINT;
|
|
dwMask : DWORD;
|
|
dwEffects : DWORD;
|
|
yHeight : LONG;
|
|
yOffset : LONG;
|
|
crTextColor : COLORREF;
|
|
bCharSet : BYTE;
|
|
bPitchAndFamily : BYTE;
|
|
szFaceName : array[0..(LF_FACESIZE)-1] of WCHAR;
|
|
wWeight : WORD;
|
|
sSpacing : SHORT;
|
|
crBackColor : COLORREF;
|
|
lcid : LCID;
|
|
dwReserved : DWORD;
|
|
sStyle : SHORT;
|
|
wKerning : WORD;
|
|
bUnderlineType : BYTE;
|
|
bAnimation : BYTE;
|
|
bRevAuthor : BYTE;
|
|
end;
|
|
CHARFORMAT2W = _charformat2w;
|
|
TCHARFORMAT2W = _charformat2w;
|
|
|
|
_charrange = record
|
|
cpMin : LONG;
|
|
cpMax : LONG;
|
|
end;
|
|
CHARRANGE = _charrange;
|
|
TCHARRANGE = _charrange;
|
|
|
|
_compcolor = record
|
|
crText : COLORREF;
|
|
crBackground : COLORREF;
|
|
dwEffects : DWORD;
|
|
end;
|
|
COMPCOLOR = _compcolor;
|
|
TCOMPCOLOR = _compcolor;
|
|
|
|
EDITSTREAMCALLBACK = function (dwCookie:PDWORD; pbBuff:LPBYTE; cb:LONG; var pcb:LONG):DWORD;
|
|
|
|
_editstream = record
|
|
dwCookie : DWORD_PTR;
|
|
dwError : DWORD;
|
|
pfnCallback : EDITSTREAMCALLBACK;
|
|
end;
|
|
EDITSTREAM = _editstream;
|
|
TEDITSTREAM = _editstream;
|
|
|
|
_encorrecttext = record
|
|
nmhdr : NMHDR;
|
|
chrg : CHARRANGE;
|
|
seltyp : WORD;
|
|
end;
|
|
ENCORRECTTEXT = _encorrecttext;
|
|
TENCORRECTTEXT = _encorrecttext;
|
|
|
|
_endropfiles = record
|
|
nmhdr : NMHDR;
|
|
hDrop : HANDLE;
|
|
cp : LONG;
|
|
fProtected : BOOL;
|
|
end;
|
|
ENDROPFILES = _endropfiles;
|
|
TENDROPFILES = _endropfiles;
|
|
|
|
_enlink = record
|
|
nmhdr : NMHDR;
|
|
msg : UINT;
|
|
wParam : WPARAM;
|
|
lParam : LPARAM;
|
|
chrg : CHARRANGE;
|
|
end;
|
|
ENLINK = _enlink;
|
|
TENLINK = _enlink;
|
|
|
|
ENOLEOPFAILED = record
|
|
nmhdr : NMHDR;
|
|
iob : LONG;
|
|
lOper : LONG;
|
|
hr : HRESULT;
|
|
end;
|
|
|
|
_enprotected = record
|
|
nmhdr : NMHDR;
|
|
msg : UINT;
|
|
wParam : WPARAM;
|
|
lParam : LPARAM;
|
|
chrg : CHARRANGE;
|
|
end;
|
|
ENPROTECTED = _enprotected;
|
|
TENPROTECTED = _enprotected;
|
|
LPENPROTECTED = ^_enprotected;
|
|
|
|
_ensaveclipboard = record
|
|
nmhdr : NMHDR;
|
|
cObjectCount : LONG;
|
|
cch : LONG;
|
|
end;
|
|
ENSAVECLIPBOARD = _ensaveclipboard;
|
|
TENSAVECLIPBOARD = _ensaveclipboard;
|
|
|
|
_findtextA = record
|
|
chrg : CHARRANGE;
|
|
lpstrText : LPSTR;
|
|
end;
|
|
FINDTEXTA = _findtextA;
|
|
TFINDTEXTA = _findtextA;
|
|
|
|
_findtextW = record
|
|
chrg : CHARRANGE;
|
|
lpstrText : LPWSTR;
|
|
end;
|
|
FINDTEXTW = _findtextW;
|
|
TFINDTEXTW = _findtextW;
|
|
|
|
_findtextexA = record
|
|
chrg : CHARRANGE;
|
|
lpstrText : LPSTR;
|
|
chrgText : CHARRANGE;
|
|
end;
|
|
FINDTEXTEXA = _findtextexA;
|
|
TFINDTEXTEXA = _findtextexA;
|
|
|
|
_findtextexW = record
|
|
chrg : CHARRANGE;
|
|
lpstrText : LPWSTR;
|
|
chrgText : CHARRANGE;
|
|
end;
|
|
FINDTEXTEXW = _findtextexW;
|
|
TFINDTEXTEXW = _findtextexW;
|
|
|
|
_formatrange = record
|
|
hdc : HDC;
|
|
hdcTarget : HDC;
|
|
rc : RECT;
|
|
rcPage : RECT;
|
|
chrg : CHARRANGE;
|
|
end;
|
|
FORMATRANGE = _formatrange;
|
|
TFORMATRANGE = _formatrange;
|
|
|
|
_msgfilter = record
|
|
nmhdr : NMHDR;
|
|
msg : UINT;
|
|
wParam : WPARAM;
|
|
lParam : LPARAM;
|
|
end;
|
|
MSGFILTER = _msgfilter;
|
|
TMSGFILTER = _msgfilter;
|
|
|
|
TReqSize = record
|
|
nmhdr: TNMHdr;
|
|
rc: TRect;
|
|
end;
|
|
PReqSize = ^TReqSize;
|
|
|
|
_paraformat = record
|
|
cbSize : UINT;
|
|
dwMask : DWORD;
|
|
wNumbering : WORD;
|
|
wReserved : WORD;
|
|
dxStartIndent : LONG;
|
|
dxRightIndent : LONG;
|
|
dxOffset : LONG;
|
|
wAlignment : WORD;
|
|
cTabCount : SHORT;
|
|
rgxTabs : array[0..(MAX_TAB_STOPS)-1] of LONG;
|
|
end;
|
|
PARAFORMAT = _paraformat;
|
|
TParaFormat = _paraformat;
|
|
|
|
_paraformat2 = record
|
|
cbSize : UINT;
|
|
dwMask : DWORD;
|
|
wNumbering : WORD;
|
|
wEffects : WORD;
|
|
dxStartIndent : LONG;
|
|
dxRightIndent : LONG;
|
|
dxOffset : LONG;
|
|
wAlignment : WORD;
|
|
cTabCount : SHORT;
|
|
rgxTabs : array[0..(MAX_TAB_STOPS)-1] of LONG;
|
|
dySpaceBefore : LONG;
|
|
dySpaceAfter : LONG;
|
|
dyLineSpacing : LONG;
|
|
sStype : SHORT;
|
|
bLineSpacingRule : BYTE;
|
|
bOutlineLevel : BYTE;
|
|
wShadingWeight : WORD;
|
|
wShadingStyle : WORD;
|
|
wNumberingStart : WORD;
|
|
wNumberingStyle : WORD;
|
|
wNumberingTab : WORD;
|
|
wBorderSpace : WORD;
|
|
wBorderWidth : WORD;
|
|
wBorders : WORD;
|
|
end;
|
|
PARAFORMAT2 = _paraformat2;
|
|
TPARAFORMAT2 = _paraformat2;
|
|
|
|
_selchange = record
|
|
nmhdr : NMHDR;
|
|
chrg : CHARRANGE;
|
|
seltyp : WORD;
|
|
end;
|
|
SELCHANGE = _selchange;
|
|
TSELCHANGE = _selchange;
|
|
|
|
_textrange = record
|
|
chrg : CHARRANGE;
|
|
lpstrText : LPSTR;
|
|
end;
|
|
TEXTRANGEA = _textrange;
|
|
TTEXTRANGEA = _textrange;
|
|
|
|
_textrangew = record
|
|
chrg : CHARRANGE;
|
|
lpstrText : LPWSTR;
|
|
end;
|
|
TEXTRANGEW = _textrangew;
|
|
TTEXTRANGEW = _textrangew;
|
|
|
|
_reqresize = record
|
|
nmhdr : NMHDR;
|
|
rc : RECT;
|
|
end;
|
|
REQRESIZE = _reqresize;
|
|
TREQRESIZE = _reqresize;
|
|
|
|
_repastespecial = record
|
|
dwAspect : DWORD;
|
|
dwParam : DWORD;
|
|
end;
|
|
REPASTESPECIAL = _repastespecial;
|
|
TREPASTESPECIAL = _repastespecial;
|
|
|
|
_punctuation = record
|
|
iSize : UINT;
|
|
szPunctuation : LPSTR;
|
|
end;
|
|
PUNCTUATION = _punctuation;
|
|
TPUNCTUATION = _punctuation;
|
|
|
|
_gettextex = record
|
|
cb : DWORD;
|
|
flags : DWORD;
|
|
codepage : UINT;
|
|
lpDefaultChar : LPCSTR;
|
|
lpUsedDefaultChar : LPBOOL;
|
|
end;
|
|
GETTEXTEX = _gettextex;
|
|
TGETTEXTEX = _gettextex;
|
|
|
|
EDITWORDBREAKPROCEX = function (pchText:pchar; cchText:LONG; bCharSet:BYTE; action:LONG):LONG;
|
|
{ Defines for EM_SETTYPOGRAPHYOPTIONS }
|
|
|
|
const
|
|
{ Defines for GETTEXTLENGTHEX }
|
|
GTL_DEFAULT = 0;
|
|
GTL_USECRLF = 1;
|
|
GTL_PRECISE = 2;
|
|
GTL_CLOSE = 4;
|
|
GTL_NUMCHARS = 8;
|
|
GTL_NUMBYTES = 16;
|
|
|
|
type
|
|
OBJECTPOSITIONS = record
|
|
nmhdr: TNMHdr;
|
|
cObjectCount: Longint;
|
|
pcpPositions: PLongint;
|
|
end;
|
|
TObjectPositions = OBJECTPOSITIONS;
|
|
|
|
_gettextlengthex = record
|
|
flags : DWORD;
|
|
codepage : UINT;
|
|
end;
|
|
GETTEXTLENGTHEX = _gettextlengthex;
|
|
{$ifdef UNICODE}
|
|
|
|
CHARFORMAT = CHARFORMATW;
|
|
TCHARFORMAT = CHARFORMATW;
|
|
CHARFORMAT2 = CHARFORMAT2W;
|
|
TCHARFORMAT2 = CHARFORMAT2W;
|
|
FINDTEXT = FINDTEXTW;
|
|
TFINDTEXT = FINDTEXTW;
|
|
FINDTEXTEX = FINDTEXTEXW;
|
|
TFINDTEXTEX = FINDTEXTEXW;
|
|
TEXTRANGE = TEXTRANGEW;
|
|
TTEXTRANGE = TEXTRANGEW;
|
|
{$else}
|
|
|
|
type
|
|
|
|
CHARFORMAT = CHARFORMATA;
|
|
TCHARFORMAT = CHARFORMATA;
|
|
CHARFORMAT2 = CHARFORMAT2A;
|
|
TCHARFORMAT2 = CHARFORMAT2A;
|
|
FINDTEXT = FINDTEXTA;
|
|
TFINDTEXT = FINDTEXTA;
|
|
FINDTEXTEX = FINDTEXTEXA;
|
|
TFINDTEXTEX = FINDTEXTEXA;
|
|
TEXTRANGE = TEXTRANGEA;
|
|
TTEXTRANGE = TEXTRANGEA;
|
|
{$endif}
|
|
|
|
|
|
implementation
|
|
|
|
|
|
end.
|