richedit.pp 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967
  1. { Converted by H2Pas from richedit.h }
  2. unit RichEdit;
  3. {$mode objfpc}
  4. {$calling stdcall}
  5. {$ifdef FPC_OS_UNICODE}
  6. {$define UNICODE}
  7. {$endif}
  8. interface
  9. uses Messages, Windows;
  10. {$IFDEF FPC}
  11. {$PACKRECORDS C}
  12. {$ENDIF}
  13. Const
  14. RICHEDIT_CLASSA = 'RichEdit20A';
  15. RICHEDIT_CLASSW = 'RichEdit20W';
  16. {$ifdef UNICODE }
  17. const
  18. RICHEDIT_CLASS = RICHEDIT_CLASSW;
  19. {$else}
  20. const
  21. RICHEDIT_CLASS = RICHEDIT_CLASSA;
  22. {$endif}
  23. const
  24. WM_CONTEXTMENU = $007B;
  25. WM_UNICHAR = $0109;
  26. WM_PRINTCLIENT = $0318;
  27. //#ifndef EM_GETLIMITTEXT
  28. EM_GETLIMITTEXT = (WM_USER + 37);
  29. //#endif
  30. //#ifndef EM_POSFROMCHAR
  31. EM_POSFROMCHAR = (WM_USER + 38);
  32. EM_CHARFROMPOS = (WM_USER + 39);
  33. //#endif
  34. //#ifndef EM_SCROLLCARET
  35. EM_SCROLLCARET = (WM_USER + 49);
  36. //#endif
  37. EM_CANPASTE = (WM_USER + 50);
  38. EM_DISPLAYBAND = (WM_USER + 51);
  39. EM_EXGETSEL = (WM_USER + 52);
  40. EM_EXLIMITTEXT = (WM_USER + 53);
  41. EM_EXLINEFROMCHAR = (WM_USER + 54);
  42. EM_EXSETSEL = (WM_USER + 55);
  43. EM_FINDTEXT = (WM_USER + 56);
  44. EM_FORMATRANGE = (WM_USER + 57);
  45. EM_GETCHARFORMAT = (WM_USER + 58);
  46. EM_GETEVENTMASK = (WM_USER + 59);
  47. EM_GETOLEINTERFACE = (WM_USER + 60);
  48. EM_GETPARAFORMAT = (WM_USER + 61);
  49. EM_GETSELTEXT = (WM_USER + 62);
  50. EM_HIDESELECTION = (WM_USER + 63);
  51. EM_PASTESPECIAL = (WM_USER + 64);
  52. EM_REQUESTRESIZE = (WM_USER + 65);
  53. EM_SELECTIONTYPE = (WM_USER + 66);
  54. EM_SETBKGNDCOLOR = (WM_USER + 67);
  55. EM_SETCHARFORMAT = (WM_USER + 68);
  56. EM_SETEVENTMASK = (WM_USER + 69);
  57. EM_SETOLECALLBACK = (WM_USER + 70);
  58. EM_SETPARAFORMAT = (WM_USER + 71);
  59. EM_SETTARGETDEVICE = (WM_USER + 72);
  60. EM_STREAMIN = (WM_USER + 73);
  61. EM_STREAMOUT = (WM_USER + 74);
  62. EM_GETTEXTRANGE = (WM_USER + 75);
  63. EM_FINDWORDBREAK = (WM_USER + 76);
  64. EM_SETOPTIONS = (WM_USER + 77);
  65. EM_GETOPTIONS = (WM_USER + 78);
  66. EM_FINDTEXTEX = (WM_USER + 79);
  67. //#ifdef _WIN32
  68. EM_GETWORDBREAKPROCEX = (WM_USER + 80);
  69. EM_SETWORDBREAKPROCEX = (WM_USER + 81);
  70. //#endif
  71. // RichEdit 2.0 messages
  72. EM_SETUNDOLIMIT = (WM_USER + 82);
  73. EM_REDO = (WM_USER + 84);
  74. EM_CANREDO = (WM_USER + 85);
  75. EM_GETUNDONAME = (WM_USER + 86);
  76. EM_GETREDONAME = (WM_USER + 87);
  77. EM_STOPGROUPTYPING = (WM_USER + 88);
  78. EM_SETTEXTMODE = (WM_USER + 89);
  79. EM_GETTEXTMODE = (WM_USER + 90);
  80. EM_AUTOURLDETECT = (WM_USER + 91);
  81. EM_GETAUTOURLDETECT= (WM_USER + 92);
  82. EM_SETPALETTE = (WM_USER + 93);
  83. EM_GETTEXTEX = (WM_USER + 94);
  84. EM_GETTEXTLENGTHEX = (WM_USER + 95);
  85. EM_SHOWSCROLLBAR = (WM_USER + 96);
  86. EM_SETTEXTEX = (WM_USER + 97);
  87. // East Asia specific messages
  88. EM_SETPUNCTUATION = (WM_USER + 100);
  89. EM_GETPUNCTUATION = (WM_USER + 101);
  90. EM_SETWORDWRAPMODE = (WM_USER + 102);
  91. EM_GETWORDWRAPMODE = (WM_USER + 103);
  92. EM_SETIMECOLOR = (WM_USER + 104);
  93. EM_GETIMECOLOR = (WM_USER + 105);
  94. EM_SETIMEOPTIONS = (WM_USER + 106);
  95. EM_GETIMEOPTIONS = (WM_USER + 107);
  96. EM_CONVPOSITION = (WM_USER + 108);
  97. EM_SETLANGOPTIONS = (WM_USER + 120);
  98. EM_GETLANGOPTIONS = (WM_USER + 121);
  99. EM_GETIMECOMPMODE = (WM_USER + 122);
  100. EM_FINDTEXTW = (WM_USER + 123);
  101. EM_FINDTEXTEXW = (WM_USER + 124);
  102. // RE3.0 FE messages
  103. EM_RECONVERSION = (WM_USER + 125);
  104. EM_SETIMEMODEBIAS = (WM_USER + 126);
  105. EM_GETIMEMODEBIAS = (WM_USER + 127);
  106. // BiDi specific messages
  107. EM_SETBIDIOPTIONS = (WM_USER + 200);
  108. EM_GETBIDIOPTIONS = (WM_USER + 201);
  109. EM_SETTYPOGRAPHYOPTIONS = (WM_USER + 202);
  110. EM_GETTYPOGRAPHYOPTIONS = (WM_USER + 203);
  111. // Extended edit style specific messages
  112. EM_SETEDITSTYLE = (WM_USER + 204);
  113. EM_GETEDITSTYLE = (WM_USER + 205);
  114. // Pegasus outline mode messages (RE 3.0)
  115. // Outline mode message
  116. EM_OUTLINE = (WM_USER + 220);
  117. // Message for getting and restoring scroll pos
  118. EM_GETSCROLLPOS = (WM_USER + 221);
  119. EM_SETSCROLLPOS = (WM_USER + 222);
  120. // Change fontsize in current selection by wParam
  121. EM_SETFONTSIZE = (WM_USER + 223);
  122. EM_GETZOOM = (WM_USER + 224);
  123. EM_SETZOOM = (WM_USER + 225);
  124. EM_GETVIEWKIND = (WM_USER + 226);
  125. EM_SETVIEWKIND = (WM_USER + 227);
  126. // RichEdit 4.0 messages
  127. EM_GETPAGE = (WM_USER + 228);
  128. EM_SETPAGE = (WM_USER + 229);
  129. EM_GETHYPHENATEINFO= (WM_USER + 230);
  130. EM_SETHYPHENATEINFO= (WM_USER + 231);
  131. EM_INSERTTABLE = (WM_USER + 232);
  132. EM_GETAUTOCORRECTPROC = (WM_USER + 233);
  133. EM_SETAUTOCORRECTPROC = (WM_USER + 234);
  134. EM_CALLAUTOCORRECTPROC = (WM_USER + 255);
  135. EM_GETPAGEROTATE = (WM_USER + 235);
  136. EM_SETPAGEROTATE = (WM_USER + 236);
  137. EM_GETCTFMODEBIAS = (WM_USER + 237);
  138. EM_SETCTFMODEBIAS = (WM_USER + 238);
  139. EM_GETCTFOPENSTATUS= (WM_USER + 240);
  140. EM_SETCTFOPENSTATUS= (WM_USER + 241);
  141. EM_GETIMECOMPTEXT = (WM_USER + 242);
  142. EM_ISIME = (WM_USER + 243);
  143. EM_GETIMEPROPERTY = (WM_USER + 244);
  144. EM_GETTABLEPARMS = (WM_USER + 265);
  145. // These messages control what rich edit does when it comes accross
  146. // OLE objects during RTF stream in. Normally rich edit queries the client
  147. // application only after OleLoad has been called. With these messages it is possible to
  148. // set the rich edit control to a mode where it will query the client application before
  149. // OleLoad is called
  150. EM_GETQUERYRTFOBJ = (WM_USER + 269);
  151. EM_SETQUERYRTFOBJ = (WM_USER + 270);
  152. EM_SETEDITSTYLEEX = (WM_USER + 275);
  153. EM_GETEDITSTYLEEX = (WM_USER + 276);
  154. AURL_ENABLEURL = 1;
  155. AURL_ENABLEEMAILADDR = 2;
  156. AURL_ENABLETELNO = 4;
  157. AURL_ENABLEEAURLS = 8;
  158. AURL_ENABLEDRIVELETTERS = 16;
  159. AURL_DISABLEMIXEDLGC = 32; // Disable mixed Latin Greek Cyrillic IDNs
  160. // CFM_COLOR mirrors CFE_AUTOCOLOR, a little hack to easily deal with autocolor
  161. // CHARFORMAT masks
  162. CFM_BOLD = $00000001;
  163. CFM_ITALIC = $00000002;
  164. CFM_UNDERLINE = $00000004;
  165. CFM_STRIKEOUT = $00000008;
  166. CFM_PROTECTED = $00000010;
  167. CFM_LINK = $00000020; // Exchange hyperlink extension
  168. CFM_SIZE = $80000000;
  169. CFM_COLOR = $40000000;
  170. CFM_FACE = $20000000;
  171. CFM_OFFSET = $10000000;
  172. CFM_CHARSET = $08000000;
  173. // CHARFORMAT effects
  174. CFE_BOLD = $00000001;
  175. CFE_ITALIC = $00000002;
  176. CFE_UNDERLINE = $00000004;
  177. CFE_STRIKEOUT = $00000008;
  178. CFE_PROTECTED = $00000010;
  179. CFE_LINK = $00000020;
  180. CFE_AUTOCOLOR = $40000000; // NOTE: this corresponds to CFM_COLOR, which controls it
  181. // Masks and effects defined for CHARFORMAT2 -- an (*) indicates
  182. // that the data is stored by RichEdit 2.0/3.0, but not displayed
  183. CFM_SMALLCAPS = $00000040; // (*)
  184. CFM_ALLCAPS = $00000080; // Displayed by 3.0
  185. CFM_HIDDEN = $00000100; // Hidden by 3.0
  186. CFM_OUTLINE = $00000200; // (*)
  187. CFM_SHADOW = $00000400; // (*)
  188. CFM_EMBOSS = $00000800; // (*)
  189. CFM_IMPRINT = $00001000; // (*)
  190. CFM_DISABLED = $00002000;
  191. CFM_REVISED = $00004000;
  192. CFM_REVAUTHOR = $00008000;
  193. CFE_SUBSCRIPT = $00010000; // Superscript and subscript are
  194. CFE_SUPERSCRIPT = $00020000; // mutually exclusive
  195. CFM_ANIMATION = $00040000; // (*)
  196. CFM_STYLE = $00080000; // (*)
  197. CFM_KERNING = $00100000;
  198. CFM_SPACING = $00200000; // Displayed by 3.0
  199. CFM_WEIGHT = $00400000;
  200. CFM_UNDERLINETYPE = $00800000; // Many displayed by 3.0
  201. //#if (_RICHEDIT_VER >= = $0600)
  202. CFM_COOKIE = $01000000; // RE 6.0
  203. //#endif
  204. CFM_LCID = $02000000;
  205. CFM_BACKCOLOR = $04000000; // Higher mask bits defined above
  206. CFM_SUBSCRIPT = (CFE_SUBSCRIPT or CFE_SUPERSCRIPT);
  207. CFM_SUPERSCRIPT = CFM_SUBSCRIPT;
  208. CFE_ALLCAPS = CFM_ALLCAPS;
  209. CFE_AUTOBACKCOLOR = CFM_BACKCOLOR;
  210. CFE_DISABLED = CFM_DISABLED;
  211. CFE_EMBOSS = CFM_EMBOSS;
  212. CFE_HIDDEN = CFM_HIDDEN;
  213. CFE_IMPRINT = CFM_IMPRINT;
  214. CFE_OUTLINE = CFM_OUTLINE;
  215. CFE_SHADOW = CFM_SHADOW;
  216. CFE_SMALLCAPS = CFM_SMALLCAPS;
  217. CFM_EFFECTS =
  218. CFM_BOLD or CFM_ITALIC or CFM_UNDERLINE or CFM_COLOR or
  219. CFM_STRIKEOUT or CFE_PROTECTED or CFM_LINK;
  220. CFM_ALL =
  221. CFM_EFFECTS or CFM_SIZE or CFM_FACE or CFM_OFFSET or CFM_CHARSET;
  222. CFM_EFFECTS2 =
  223. CFM_EFFECTS or CFM_DISABLED or CFM_SMALLCAPS or CFM_ALLCAPS or
  224. CFM_HIDDEN or CFM_OUTLINE or CFM_SHADOW or CFM_EMBOSS or
  225. CFM_IMPRINT or CFM_DISABLED or CFM_REVISED or
  226. CFM_SUBSCRIPT or CFM_SUPERSCRIPT or CFM_BACKCOLOR;
  227. CFM_ALL2 =
  228. CFM_ALL or CFM_EFFECTS2 or CFM_BACKCOLOR or CFM_LCID or
  229. CFM_UNDERLINETYPE or CFM_WEIGHT or CFM_REVAUTHOR or
  230. CFM_SPACING or CFM_KERNING or CFM_STYLE or CFM_ANIMATION;
  231. CFU_CF1UNDERLINE = $000000FF;
  232. CFU_INVERT = $000000FE;
  233. CFU_UNDERLINEDOTTED = $00000004;
  234. CFU_UNDERLINEDOUBLE = $00000003;
  235. CFU_UNDERLINEWORD = $00000002;
  236. CFU_UNDERLINE = $00000001;
  237. CFU_UNDERLINENONE = $00000000;
  238. GCM_RIGHTMOUSEDROP = $8000;
  239. // Extended edit style masks
  240. SES_EMULATESYSEDIT = 1;
  241. SES_BEEPONMAXTEXT = 2;
  242. SES_EXTENDBACKCOLOR = 4;
  243. SES_MAPCPS = 8; // Obsolete (never used)
  244. //#if (_RICHEDIT_VER >= = $0500)
  245. SES_HYPERLINKTOOLTIPS = 8;
  246. //#endif
  247. SES_EMULATE10 = 16; // Obsolete (never used)
  248. //#if (_RICHEDIT_VER >= = $0700)
  249. SES_DEFAULTLATINLIGA = 16;
  250. //#endif
  251. SES_USECRLF = 32; // Obsolete (never used)
  252. //#if (_RICHEDIT_VER >= = $0700)
  253. SES_NOFOCUSLINKNOTIFY = 32;
  254. //#endif
  255. SES_USEAIMM = 64;
  256. SES_NOIME = 128;
  257. SES_NOXLTSYMBOLRANGE = 32;
  258. SES_ALLOWBEEPS = 256;
  259. SES_UPPERCASE = 512;
  260. SES_LOWERCASE = 1024;
  261. SES_NOINPUTSEQUENCECHK= 2048;
  262. SES_BIDI = 4096;
  263. SES_SCROLLONKILLFOCUS = 8192;
  264. SES_XLTCRCRLFTOCR = 16384;
  265. SES_DRAFTMODE = 32768;
  266. SES_USECTF = $00010000;
  267. SES_HIDEGRIDLINES = $00020000;
  268. SES_USEATFONT = $00040000;
  269. SES_CUSTOMLOOK = $00080000;
  270. SES_LBSCROLLNOTIFY = $00100000;
  271. SES_CTFALLOWEMBED = $00200000;
  272. SES_CTFALLOWSMARTTAG = $00400000;
  273. SES_CTFALLOWPROOFING = $00800000;
  274. //#if (_RICHEDIT_VER >= = $0500)
  275. SES_LOGICALCARET = $01000000;
  276. SES_WORDDRAGDROP = $02000000;
  277. SES_SMARTDRAGDROP = $04000000;
  278. SES_MULTISELECT = $08000000;
  279. SES_CTFNOLOCK = $10000000;
  280. SES_NOEALINEHEIGHTADJUST = $20000000;
  281. SES_MAX = $20000000;
  282. //#endif
  283. // Options for EM_SETLANGOPTIONS and EM_GETLANGOPTIONS
  284. IMF_AUTOKEYBOARD = $0001;
  285. IMF_AUTOFONT = $0002;
  286. IMF_IMECANCELCOMPLETE = $0004; // High completes comp string when aborting, low cancels
  287. IMF_IMEALWAYSSENDNOTIFY= $0008;
  288. IMF_AUTOFONTSIZEADJUST= $0010;
  289. IMF_UIFONTS = $0020;
  290. IMF_NOIMPLICITLANG = $0040;
  291. IMF_DUALFONT = $0080;
  292. IMF_NOKBDLIDFIXUP = $0200;
  293. IMF_NORTFFONTSUBSTITUTE = $0400;
  294. IMF_SPELLCHECKING = $0800;
  295. IMF_TKBPREDICTION = $1000;
  296. IMF_IMEUIINTEGRATION = $2000;
  297. // Values for EM_GETIMECOMPMODE
  298. ICM_NOTOPEN = $0000;
  299. ICM_LEVEL3 = $0001;
  300. ICM_LEVEL2 = $0002;
  301. ICM_LEVEL2_5 = $0003;
  302. ICM_LEVEL2_SUI = $0004;
  303. ICM_CTF = $0005;
  304. // Options for EM_SETTYPOGRAPHYOPTIONS
  305. TO_ADVANCEDTYPOGRAPHY = $0001;
  306. TO_SIMPLELINEBREAK = $0002;
  307. TO_DISABLECUSTOMTEXTOUT = $0004;
  308. TO_ADVANCEDLAYOUT = $0008;
  309. // EM_SETPAGEROTATE wparam values
  310. EPR_0 = 0; // Text flows left to right and top to bottom
  311. EPR_270 = 1; // Text flows top to bottom and right to left
  312. EPR_180 = 2; // Text flows right to left and bottom to top
  313. EPR_90 = 3; // Text flows bottom to top and left to right
  314. //#if (_RICHEDIT_VER >= 0x0800)
  315. EPR_SE = 5; // Text flows top to bottom and left to right (Mongolian text layout)
  316. //#endif
  317. // EM_SETCTFMODEBIAS wparam values
  318. CTFMODEBIAS_DEFAULT = $000;
  319. CTFMODEBIAS_FILENAME = $001;
  320. CTFMODEBIAS_NAME = $002;
  321. CTFMODEBIAS_READING = $003;
  322. CTFMODEBIAS_DATETIME = $004;
  323. CTFMODEBIAS_CONVERSATION = $005;
  324. CTFMODEBIAS_NUMERIC = $006;
  325. CTFMODEBIAS_HIRAGANA = $007;
  326. CTFMODEBIAS_KATAKANA = $008;
  327. CTFMODEBIAS_HANGUL = $009;
  328. CTFMODEBIAS_HALFWIDTHKATAKANA = $00A;
  329. CTFMODEBIAS_FULLWIDTHALPHANUMERIC = $00B;
  330. CTFMODEBIAS_HALFWIDTHALPHANUMERIC = $00C;
  331. // EM_SETIMEMODEBIAS lparam values
  332. IMF_SMODE_PLAURALCLAUSE = $001;
  333. IMF_SMODE_NONE = $002;
  334. ATP_NOCHANG = 0;
  335. ATP_CHANGE = 1;
  336. ATP_NODELIMITER = 2;
  337. ATP_REPLACEALLTEXT = 4;
  338. OLEOP_DOVERB = 1;
  339. RICHEDIT_CLASS10A = 'RICHEDIT';
  340. CF_RTF = 'Rich Text Format';
  341. CF_RTFNOOBJS = 'Rich Text Format Without Objects';
  342. CF_RETEXTOBJ = 'RichEdit Text and Objects';
  343. IMF_FORCENONE = 1;
  344. IMF_FORCEENABLE = 2;
  345. IMF_FORCEDISABLE = 4;
  346. IMF_CLOSESTATUSWINDOW = 8;
  347. IMF_VERTICAL = 32;
  348. IMF_FORCEACTIVE = 64;
  349. IMF_FORCEINACTIVE = 128;
  350. IMF_FORCEREMEMBER = 256;
  351. IMF_MULTIPLEEDIT = $0400;
  352. SEL_EMPTY = 0;
  353. SEL_TEXT = 1;
  354. SEL_OBJECT = 2;
  355. SEL_MULTICHAR = 4;
  356. SEL_MULTIOBJECT = 8;
  357. MAX_TAB_STOPS = 32;
  358. PFM_ALIGNMENT = 8;
  359. PFM_NUMBERING = 32;
  360. PFM_OFFSET = 4;
  361. PFM_OFFSETINDENT = $80000000;
  362. PFM_RIGHTINDENT = 2;
  363. PFM_STARTINDENT = 1;
  364. PFM_TABSTOPS = 16;
  365. PFM_BORDER = 2048;
  366. PFM_LINESPACING = 256;
  367. PFM_NUMBERINGSTART = 32768;
  368. PFM_NUMBERINGSTYLE = 8192;
  369. PFM_NUMBERINGTAB = 16384;
  370. PFM_SHADING = 4096;
  371. PFM_SPACEAFTER = 128;
  372. PFM_SPACEBEFORE = 64;
  373. PFM_STYLE = 1024;
  374. PFM_DONOTHYPHEN = 4194304;
  375. PFM_KEEP = 131072;
  376. PFM_KEEPNEXT = 262144;
  377. PFM_NOLINENUMBER = 1048576;
  378. PFM_NOWIDOWCONTROL = 2097152;
  379. PFM_PAGEBREAKBEFORE = 524288;
  380. PFM_RTLPARA = 65536;
  381. PFM_SIDEBYSIDE = 8388608;
  382. PFM_TABLE = 1073741824;
  383. PFM_TEXTWRAPPINGBREAK = $20000000;
  384. PFM_TABLEROWDELIMITER = $10000000;
  385. PFM_COLLAPSED = $01000000;
  386. PFM_OUTLINELEVEL = $02000000;
  387. PFM_BOX = $04000000;
  388. PFM_ALL =
  389. PFM_STARTINDENT or PFM_RIGHTINDENT or PFM_OFFSET or PFM_ALIGNMENT
  390. or PFM_TABSTOPS or PFM_NUMBERING or PFM_OFFSETINDENT or PFM_RTLPARA;
  391. PFM_EFFECTS =
  392. PFM_RTLPARA or PFM_KEEP or PFM_KEEPNEXT or PFM_TABLE or PFM_PAGEBREAKBEFORE
  393. or PFM_NOLINENUMBER or PFM_NOWIDOWCONTROL or PFM_DONOTHYPHEN or PFM_SIDEBYSIDE
  394. or PFM_TABLE or PFM_TABLEROWDELIMITER;
  395. PFM_ALL2 =
  396. PFM_ALL or PFM_EFFECTS or PFM_SPACEBEFORE or PFM_SPACEAFTER or
  397. PFM_LINESPACING or PFM_STYLE or PFM_SHADING or PFM_BORDER or
  398. PFM_NUMBERINGTAB or PFM_NUMBERINGSTART or PFM_NUMBERINGSTYLE;
  399. PFN_BULLET = 1;
  400. PFE_DONOTHYPHEN = 64;
  401. PFE_KEEP = 2;
  402. PFE_KEEPNEXT = 4;
  403. PFE_NOLINENUMBER = 16;
  404. PFE_NOWIDOWCONTROL = 32;
  405. PFE_PAGEBREAKBEFORE = 8;
  406. PFE_RTLPARA = 1;
  407. PFE_SIDEBYSIDE = 128;
  408. PFE_TABLE = 16384;
  409. PFA_LEFT = 1;
  410. PFA_RIGHT = 2;
  411. PFA_CENTER = 3;
  412. PFA_JUSTIFY = 4;
  413. PFA_FULL_INTERWORD = 4;
  414. SF_TEXT = 1;
  415. SF_RTF = 2;
  416. SF_RTFNOOBJS = 3;
  417. SF_TEXTIZED = 4;
  418. SF_UNICODE = 16;
  419. SF_USECODEPAGE = 32;
  420. SF_NCRFORNONASCII = 64;
  421. SF_RTFVAL = $0700;
  422. SFF_PWD = $0800;
  423. SFF_KEEPDOCINFO = $1000;
  424. SFF_PERSISTVIEWSCALE = $2000;
  425. SFF_PLAINRTF = $4000;
  426. SFF_SELECTION = $8000;
  427. WB_CLASSIFY = 3;
  428. WB_MOVEWORDLEFT = 4;
  429. WB_MOVEWORDRIGHT = 5;
  430. WB_LEFTBREAK = 6;
  431. WB_RIGHTBREAK = 7;
  432. WB_MOVEWORDPREV = 4;
  433. WB_MOVEWORDNEXT = 5;
  434. WB_PREVBREAK = 6;
  435. WB_NEXTBREAK = 7;
  436. WBF_WORDWRAP = 16;
  437. WBF_WORDBREAK = 32;
  438. WBF_OVERFLOW = 64;
  439. WBF_LEVEL1 = 128;
  440. WBF_LEVEL2 = 256;
  441. WBF_CUSTOM = 512;
  442. ES_DISABLENOSCROLL = 8192;
  443. ES_EX_NOCALLOLEINIT = 16777216;
  444. ES_NOIME = 524288;
  445. ES_NOOLEDRAGDROP = 8;
  446. ES_SAVESEL = 32768;
  447. ES_SELECTIONBAR = 16777216;
  448. ES_SELFIME = 262144;
  449. ES_SUNKEN = 16384;
  450. ES_VERTICAL = 4194304;
  451. EN_CORRECTTEXT = 1797;
  452. EN_DROPFILES = 1795;
  453. EN_IMECHANGE = 1799;
  454. EN_LINK = 1803;
  455. EN_MSGFILTER = 1792;
  456. EN_OLEOPFAILED = 1801;
  457. EN_OBJECTPOSITIONS = $070a;
  458. EN_DRAGDROPDONE = $070c;
  459. EN_PROTECTED = 1796;
  460. EN_REQUESTRESIZE = 1793;
  461. EN_SAVECLIPBOARD = 1800;
  462. EN_SELCHANGE = 1794;
  463. EN_STOPNOUNDO = 1798;
  464. ENM_NONE = 0;
  465. ENM_CHANGE = 1;
  466. ENM_CORRECTTEXT = 4194304;
  467. ENM_DRAGDROPDONE = 16;
  468. ENM_DROPFILES = 1048576;
  469. ENM_IMECHANGE = 8388608;
  470. ENM_KEYEVENTS = 65536;
  471. ENM_LANGCHANGE = 16777216;
  472. ENM_LINK = 67108864;
  473. ENM_MOUSEEVENTS = 131072;
  474. ENM_OBJECTPOSITIONS = 33554432;
  475. ENM_PROTECTED = 2097152;
  476. ENM_REQUESTRESIZE = 262144;
  477. ENM_SCROLL = 4;
  478. ENM_SCROLLEVENTS = 8;
  479. ENM_SELCHANGE = 524288;
  480. ENM_UPDATE = 2;
  481. ECO_AUTOWORDSELECTION = 1;
  482. ECO_AUTOVSCROLL = 64;
  483. ECO_AUTOHSCROLL = 128;
  484. ECO_NOHIDESEL = 256;
  485. ECO_READONLY = 2048;
  486. ECO_WANTRETURN = 4096;
  487. ECO_SAVESEL = $8000;
  488. ECO_SELECTIONBAR = $1000000;
  489. ECO_VERTICAL = $400000;
  490. ECOOP_SET = 1;
  491. ECOOP_OR = 2;
  492. ECOOP_AND = 3;
  493. ECOOP_XOR = 4;
  494. SCF_DEFAULT = 0;
  495. SCF_SELECTION = 1;
  496. SCF_WORD = 2;
  497. SCF_ALL = 4;
  498. SCF_USEUIRULES = 8;
  499. TM_PLAINTEXT = 1;
  500. TM_RICHTEXT = 2;
  501. TM_SINGLELEVELUNDO = 4;
  502. TM_MULTILEVELUNDO = 8;
  503. TM_SINGLECODEPAGE = 16;
  504. TM_MULTICODEPAGE = 32;
  505. GT_DEFAULT = 0;
  506. GT_USECRLF = 1;
  507. GT_SELECTION = 2;
  508. GT_RAWTEXT = 4;
  509. GT_NOHIDDENTEXT = 8;
  510. yHeightCharPtsMost = 1638;
  511. lDefaultTab = 720;
  512. FT_MATCHCASE = 4;
  513. FT_WHOLEWORD = 2;
  514. PC_FOLLOWING = 1;
  515. PC_LEADING = 2;
  516. PC_OVERFLOW = 3;
  517. PC_DELIMITER = 4;
  518. PFE_TABLEROW = $c000;
  519. PFE_TABLECELLEND = $8000;
  520. PFE_TABLECELL = $4000;
  521. WBF_CLASS = $0F;
  522. WBF_ISWHITE = $10;
  523. WBF_BREAKLINE = $20;
  524. WBF_BREAKAFTER = $40;
  525. WCH_EMBEDDING = $FFFC;
  526. cchTextLimitDefault = 32767;
  527. type
  528. UNDONAMEID = (UID_UNKNOWN, UID_TYPING, UID_DELETE, UID_DRAGDROP, UID_CUT, UID_PASTE);
  529. _charformat = record
  530. cbSize : UINT;
  531. dwMask : DWORD;
  532. dwEffects : DWORD;
  533. yHeight : LONG;
  534. yOffset : LONG;
  535. crTextColor : COLORREF;
  536. bCharSet : BYTE;
  537. bPitchAndFamily : BYTE;
  538. szFaceName : array[0..(LF_FACESIZE)-1] of char;
  539. end;
  540. CHARFORMATA = _charformat;
  541. TCHARFORMATA = _charformat;
  542. _charformatw = record
  543. cbSize : UINT;
  544. dwMask : DWORD;
  545. dwEffects : DWORD;
  546. yHeight : LONG;
  547. yOffset : LONG;
  548. crTextColor : COLORREF;
  549. bCharSet : BYTE;
  550. bPitchAndFamily : BYTE;
  551. szFaceName : array[0..(LF_FACESIZE)-1] of WCHAR;
  552. end;
  553. CHARFORMATW = _charformatw;
  554. TCHARFORMATW = _charformatw;
  555. _charformat2a = record
  556. cbSize : UINT;
  557. dwMask : DWORD;
  558. dwEffects : DWORD;
  559. yHeight : LONG;
  560. yOffset : LONG;
  561. crTextColor : COLORREF;
  562. bCharSet : BYTE;
  563. bPitchAndFamily : BYTE;
  564. szFaceName : array[0..(LF_FACESIZE)-1] of char;
  565. wWeight : WORD;
  566. sSpacing : SHORT;
  567. crBackColor : COLORREF;
  568. lcid : LCID;
  569. dwReserved : DWORD;
  570. sStyle : SHORT;
  571. wKerning : WORD;
  572. bUnderlineType : BYTE;
  573. bAnimation : BYTE;
  574. bRevAuthor : BYTE;
  575. end;
  576. CHARFORMAT2A = _charformat2a;
  577. TCHARFORMAT2A = _charformat2a;
  578. _charformat2w = record
  579. cbSize : UINT;
  580. dwMask : DWORD;
  581. dwEffects : DWORD;
  582. yHeight : LONG;
  583. yOffset : LONG;
  584. crTextColor : COLORREF;
  585. bCharSet : BYTE;
  586. bPitchAndFamily : BYTE;
  587. szFaceName : array[0..(LF_FACESIZE)-1] of WCHAR;
  588. wWeight : WORD;
  589. sSpacing : SHORT;
  590. crBackColor : COLORREF;
  591. lcid : LCID;
  592. dwReserved : DWORD;
  593. sStyle : SHORT;
  594. wKerning : WORD;
  595. bUnderlineType : BYTE;
  596. bAnimation : BYTE;
  597. bRevAuthor : BYTE;
  598. end;
  599. CHARFORMAT2W = _charformat2w;
  600. TCHARFORMAT2W = _charformat2w;
  601. _charrange = record
  602. cpMin : LONG;
  603. cpMax : LONG;
  604. end;
  605. CHARRANGE = _charrange;
  606. TCHARRANGE = _charrange;
  607. _compcolor = record
  608. crText : COLORREF;
  609. crBackground : COLORREF;
  610. dwEffects : DWORD;
  611. end;
  612. COMPCOLOR = _compcolor;
  613. TCOMPCOLOR = _compcolor;
  614. EDITSTREAMCALLBACK = function (dwCookie:DWORD_PTR; pbBuff:LPBYTE; cb:LONG; var pcb:LONG):DWORD;
  615. _editstream = record
  616. dwCookie : DWORD_PTR;
  617. dwError : DWORD;
  618. pfnCallback : EDITSTREAMCALLBACK;
  619. end;
  620. EDITSTREAM = _editstream;
  621. TEDITSTREAM = _editstream;
  622. _encorrecttext = record
  623. nmhdr : NMHDR;
  624. chrg : CHARRANGE;
  625. seltyp : WORD;
  626. end;
  627. ENCORRECTTEXT = _encorrecttext;
  628. TENCORRECTTEXT = _encorrecttext;
  629. _endropfiles = record
  630. nmhdr : NMHDR;
  631. hDrop : HANDLE;
  632. cp : LONG;
  633. fProtected : BOOL;
  634. end;
  635. ENDROPFILES = _endropfiles;
  636. TENDROPFILES = _endropfiles;
  637. _enlink = record
  638. nmhdr : NMHDR;
  639. msg : UINT;
  640. wParam : WPARAM;
  641. lParam : LPARAM;
  642. chrg : CHARRANGE;
  643. end;
  644. ENLINK = _enlink;
  645. TENLINK = _enlink;
  646. ENOLEOPFAILED = record
  647. nmhdr : NMHDR;
  648. iob : LONG;
  649. lOper : LONG;
  650. hr : HRESULT;
  651. end;
  652. _enprotected = record
  653. nmhdr : NMHDR;
  654. msg : UINT;
  655. wParam : WPARAM;
  656. lParam : LPARAM;
  657. chrg : CHARRANGE;
  658. end;
  659. ENPROTECTED = _enprotected;
  660. TENPROTECTED = _enprotected;
  661. LPENPROTECTED = ^_enprotected;
  662. _ensaveclipboard = record
  663. nmhdr : NMHDR;
  664. cObjectCount : LONG;
  665. cch : LONG;
  666. end;
  667. ENSAVECLIPBOARD = _ensaveclipboard;
  668. TENSAVECLIPBOARD = _ensaveclipboard;
  669. _findtextA = record
  670. chrg : CHARRANGE;
  671. lpstrText : LPSTR;
  672. end;
  673. FINDTEXTA = _findtextA;
  674. TFINDTEXTA = _findtextA;
  675. _findtextW = record
  676. chrg : CHARRANGE;
  677. lpstrText : LPWSTR;
  678. end;
  679. FINDTEXTW = _findtextW;
  680. TFINDTEXTW = _findtextW;
  681. _findtextexA = record
  682. chrg : CHARRANGE;
  683. lpstrText : LPSTR;
  684. chrgText : CHARRANGE;
  685. end;
  686. FINDTEXTEXA = _findtextexA;
  687. TFINDTEXTEXA = _findtextexA;
  688. _findtextexW = record
  689. chrg : CHARRANGE;
  690. lpstrText : LPWSTR;
  691. chrgText : CHARRANGE;
  692. end;
  693. FINDTEXTEXW = _findtextexW;
  694. TFINDTEXTEXW = _findtextexW;
  695. _formatrange = record
  696. hdc : HDC;
  697. hdcTarget : HDC;
  698. rc : RECT;
  699. rcPage : RECT;
  700. chrg : CHARRANGE;
  701. end;
  702. FORMATRANGE = _formatrange;
  703. TFORMATRANGE = _formatrange;
  704. _msgfilter = record
  705. nmhdr : NMHDR;
  706. msg : UINT;
  707. wParam : WPARAM;
  708. lParam : LPARAM;
  709. end;
  710. MSGFILTER = _msgfilter;
  711. TMSGFILTER = _msgfilter;
  712. TReqSize = record
  713. nmhdr: TNMHdr;
  714. rc: TRect;
  715. end;
  716. PReqSize = ^TReqSize;
  717. _paraformat = record
  718. cbSize : UINT;
  719. dwMask : DWORD;
  720. wNumbering : WORD;
  721. wReserved : WORD;
  722. dxStartIndent : LONG;
  723. dxRightIndent : LONG;
  724. dxOffset : LONG;
  725. wAlignment : WORD;
  726. cTabCount : SHORT;
  727. rgxTabs : array[0..(MAX_TAB_STOPS)-1] of LONG;
  728. end;
  729. PARAFORMAT = _paraformat;
  730. TParaFormat = _paraformat;
  731. _paraformat2 = record
  732. cbSize : UINT;
  733. dwMask : DWORD;
  734. wNumbering : WORD;
  735. wEffects : WORD;
  736. dxStartIndent : LONG;
  737. dxRightIndent : LONG;
  738. dxOffset : LONG;
  739. wAlignment : WORD;
  740. cTabCount : SHORT;
  741. rgxTabs : array[0..(MAX_TAB_STOPS)-1] of LONG;
  742. dySpaceBefore : LONG;
  743. dySpaceAfter : LONG;
  744. dyLineSpacing : LONG;
  745. sStype : SHORT;
  746. bLineSpacingRule : BYTE;
  747. bOutlineLevel : BYTE;
  748. wShadingWeight : WORD;
  749. wShadingStyle : WORD;
  750. wNumberingStart : WORD;
  751. wNumberingStyle : WORD;
  752. wNumberingTab : WORD;
  753. wBorderSpace : WORD;
  754. wBorderWidth : WORD;
  755. wBorders : WORD;
  756. end;
  757. PARAFORMAT2 = _paraformat2;
  758. TPARAFORMAT2 = _paraformat2;
  759. _selchange = record
  760. nmhdr : NMHDR;
  761. chrg : CHARRANGE;
  762. seltyp : WORD;
  763. end;
  764. SELCHANGE = _selchange;
  765. TSELCHANGE = _selchange;
  766. _textrange = record
  767. chrg : CHARRANGE;
  768. lpstrText : LPSTR;
  769. end;
  770. TEXTRANGEA = _textrange;
  771. TTEXTRANGEA = _textrange;
  772. _textrangew = record
  773. chrg : CHARRANGE;
  774. lpstrText : LPWSTR;
  775. end;
  776. TEXTRANGEW = _textrangew;
  777. TTEXTRANGEW = _textrangew;
  778. _reqresize = record
  779. nmhdr : NMHDR;
  780. rc : RECT;
  781. end;
  782. REQRESIZE = _reqresize;
  783. TREQRESIZE = _reqresize;
  784. _repastespecial = record
  785. dwAspect : DWORD;
  786. dwParam : DWORD;
  787. end;
  788. REPASTESPECIAL = _repastespecial;
  789. TREPASTESPECIAL = _repastespecial;
  790. _punctuation = record
  791. iSize : UINT;
  792. szPunctuation : LPSTR;
  793. end;
  794. PUNCTUATION = _punctuation;
  795. TPUNCTUATION = _punctuation;
  796. _gettextex = record
  797. cb : DWORD;
  798. flags : DWORD;
  799. codepage : UINT;
  800. lpDefaultChar : LPCSTR;
  801. lpUsedDefaultChar : LPBOOL;
  802. end;
  803. GETTEXTEX = _gettextex;
  804. TGETTEXTEX = _gettextex;
  805. EDITWORDBREAKPROCEX = function (pchText:pchar; cchText:LONG; bCharSet:BYTE; action:LONG):LONG;
  806. { Defines for EM_SETTYPOGRAPHYOPTIONS }
  807. const
  808. { Defines for GETTEXTLENGTHEX }
  809. GTL_DEFAULT = 0;
  810. GTL_USECRLF = 1;
  811. GTL_PRECISE = 2;
  812. GTL_CLOSE = 4;
  813. GTL_NUMCHARS = 8;
  814. GTL_NUMBYTES = 16;
  815. type
  816. OBJECTPOSITIONS = record
  817. nmhdr: TNMHdr;
  818. cObjectCount: Longint;
  819. pcpPositions: PLongint;
  820. end;
  821. TObjectPositions = OBJECTPOSITIONS;
  822. _gettextlengthex = record
  823. flags : DWORD;
  824. codepage : UINT;
  825. end;
  826. GETTEXTLENGTHEX = _gettextlengthex;
  827. {$ifdef UNICODE}
  828. CHARFORMAT = CHARFORMATW;
  829. TCHARFORMAT = CHARFORMATW;
  830. CHARFORMAT2 = CHARFORMAT2W;
  831. TCHARFORMAT2 = CHARFORMAT2W;
  832. FINDTEXT = FINDTEXTW;
  833. TFINDTEXT = FINDTEXTW;
  834. FINDTEXTEX = FINDTEXTEXW;
  835. TFINDTEXTEX = FINDTEXTEXW;
  836. TEXTRANGE = TEXTRANGEW;
  837. TTEXTRANGE = TEXTRANGEW;
  838. {$else}
  839. type
  840. CHARFORMAT = CHARFORMATA;
  841. TCHARFORMAT = CHARFORMATA;
  842. CHARFORMAT2 = CHARFORMAT2A;
  843. TCHARFORMAT2 = CHARFORMAT2A;
  844. FINDTEXT = FINDTEXTA;
  845. TFINDTEXT = FINDTEXTA;
  846. FINDTEXTEX = FINDTEXTEXA;
  847. TFINDTEXTEX = FINDTEXTEXA;
  848. TEXTRANGE = TEXTRANGEA;
  849. TTEXTRANGE = TEXTRANGEA;
  850. {$endif}
  851. implementation
  852. end.