1 /***********************************************************************\ 2 * richedit.d * 3 * * 4 * Windows API header module * 5 * * 6 * Translated from MinGW Windows headers * 7 * * 8 * Placed into public domain * 9 \***********************************************************************/ 10 module win32.richedit; 11 12 private import win32.windef, win32.winuser; 13 private import win32.wingdi; // for LF_FACESIZE 14 15 align(4): 16 17 version(Unicode) { 18 const wchar[] RICHEDIT_CLASS = "RichEdit20W"; 19 } else { 20 const char[] RICHEDIT_CLASS = "RichEdit20A"; 21 } 22 23 const RICHEDIT_CLASS10A = "RICHEDIT"; 24 25 const TCHAR[] 26 CF_RTF = "Rich Text Format", 27 CF_RTFNOOBJS = "Rich Text Format Without Objects", 28 CF_RETEXTOBJ = "RichEdit Text and Objects"; 29 30 const DWORD 31 CFM_BOLD = 1, 32 CFM_ITALIC = 2, 33 CFM_UNDERLINE = 4, 34 CFM_STRIKEOUT = 8, 35 CFM_PROTECTED = 16, 36 CFM_LINK = 32, 37 CFM_SIZE = 0x80000000, 38 CFM_COLOR = 0x40000000, 39 CFM_FACE = 0x20000000, 40 CFM_OFFSET = 0x10000000, 41 CFM_CHARSET = 0x08000000, 42 CFM_SUBSCRIPT = 0x00030000, 43 CFM_SUPERSCRIPT = 0x00030000; 44 45 const DWORD 46 CFE_BOLD = 1, 47 CFE_ITALIC = 2, 48 CFE_UNDERLINE = 4, 49 CFE_STRIKEOUT = 8, 50 CFE_PROTECTED = 16, 51 CFE_SUBSCRIPT = 0x00010000, 52 CFE_SUPERSCRIPT = 0x00020000, 53 CFE_AUTOCOLOR = 0x40000000; 54 55 const CFM_EFFECTS = CFM_BOLD | CFM_ITALIC | CFM_UNDERLINE | CFM_COLOR 56 | CFM_STRIKEOUT | CFE_PROTECTED | CFM_LINK; 57 58 // flags for EM_SETIMEOPTIONS 59 const LPARAM 60 IMF_FORCENONE = 1, 61 IMF_FORCEENABLE = 2, 62 IMF_FORCEDISABLE = 4, 63 IMF_CLOSESTATUSWINDOW = 8, 64 IMF_VERTICAL = 32, 65 IMF_FORCEACTIVE = 64, 66 IMF_FORCEINACTIVE = 128, 67 IMF_FORCEREMEMBER = 256; 68 69 const SEL_EMPTY=0; 70 const SEL_TEXT=1; 71 const SEL_OBJECT=2; 72 const SEL_MULTICHAR=4; 73 const SEL_MULTIOBJECT=8; 74 75 const MAX_TAB_STOPS=32; 76 77 const PFM_ALIGNMENT=8; 78 const PFM_NUMBERING=32; 79 const PFM_OFFSET=4; 80 const PFM_OFFSETINDENT=0x80000000; 81 const PFM_RIGHTINDENT=2; 82 const PFM_STARTINDENT=1; 83 const PFM_TABSTOPS=16; 84 const PFM_BORDER=2048; 85 const PFM_LINESPACING=256; 86 const PFM_NUMBERINGSTART=32768; 87 const PFM_NUMBERINGSTYLE=8192; 88 const PFM_NUMBERINGTAB=16384; 89 const PFM_SHADING=4096; 90 const PFM_SPACEAFTER=128; 91 const PFM_SPACEBEFORE=64; 92 const PFM_STYLE=1024; 93 const PFM_DONOTHYPHEN=4194304; 94 const PFM_KEEP=131072; 95 const PFM_KEEPNEXT=262144; 96 const PFM_NOLINENUMBER=1048576; 97 const PFM_NOWIDOWCONTROL=2097152; 98 const PFM_PAGEBREAKBEFORE=524288; 99 const PFM_RTLPARA=65536; 100 const PFM_SIDEBYSIDE=8388608; 101 const PFM_TABLE=1073741824; 102 const PFN_BULLET=1; 103 104 const PFE_DONOTHYPHEN=64; 105 const PFE_KEEP=2; 106 const PFE_KEEPNEXT=4; 107 const PFE_NOLINENUMBER=16; 108 const PFE_NOWIDOWCONTROL=32; 109 const PFE_PAGEBREAKBEFORE=8; 110 const PFE_RTLPARA=1; 111 const PFE_SIDEBYSIDE=128; 112 const PFE_TABLE=16384; 113 const PFA_LEFT=1; 114 const PFA_RIGHT=2; 115 const PFA_CENTER=3; 116 const PFA_JUSTIFY=4; 117 const PFA_FULL_INTERWORD=4; 118 119 const SF_TEXT=1; 120 const SF_RTF=2; 121 const SF_RTFNOOBJS=3; 122 const SF_TEXTIZED=4; 123 const SF_UNICODE=16; 124 const SF_USECODEPAGE=32; 125 const SF_NCRFORNONASCII=64; 126 const SF_RTFVAL=0x0700; 127 128 const SFF_PWD=0x0800; 129 const SFF_KEEPDOCINFO=0x1000; 130 const SFF_PERSISTVIEWSCALE=0x2000; 131 const SFF_PLAINRTF=0x4000; 132 const SFF_SELECTION=0x8000; 133 134 const WB_CLASSIFY = 3; 135 const WB_MOVEWORDLEFT = 4; 136 const WB_MOVEWORDRIGHT = 5; 137 const WB_LEFTBREAK = 6; 138 const WB_RIGHTBREAK = 7; 139 const WB_MOVEWORDPREV = 4; 140 const WB_MOVEWORDNEXT = 5; 141 const WB_PREVBREAK = 6; 142 const WB_NEXTBREAK = 7; 143 144 const WBF_WORDWRAP = 16; 145 const WBF_WORDBREAK = 32; 146 const WBF_OVERFLOW = 64; 147 const WBF_LEVEL1 = 128; 148 const WBF_LEVEL2 = 256; 149 const WBF_CUSTOM = 512; 150 151 const ES_DISABLENOSCROLL = 8192; 152 const ES_SUNKEN = 16384; 153 const ES_SAVESEL = 32768; 154 const ES_EX_NOCALLOLEINIT = 16777216; 155 const ES_NOIME = 524288; 156 const ES_NOOLEDRAGDROP = 8; 157 const ES_SELECTIONBAR = 16777216; 158 const ES_SELFIME = 262144; 159 const ES_VERTICAL = 4194304; 160 161 const EM_CANPASTE = WM_USER+50; 162 const EM_DISPLAYBAND = WM_USER+51; 163 const EM_EXGETSEL = WM_USER+52; 164 const EM_EXLIMITTEXT = WM_USER+53; 165 const EM_EXLINEFROMCHAR = WM_USER+54; 166 const EM_EXSETSEL = WM_USER+55; 167 const EM_FINDTEXT = WM_USER+56; 168 const EM_FORMATRANGE = WM_USER+57; 169 const EM_GETCHARFORMAT = WM_USER+58; 170 const EM_GETEVENTMASK = WM_USER+59; 171 const EM_GETOLEINTERFACE = WM_USER+60; 172 const EM_GETPARAFORMAT = WM_USER+61; 173 const EM_GETSELTEXT = WM_USER+62; 174 const EM_HIDESELECTION = WM_USER+63; 175 const EM_PASTESPECIAL = WM_USER+64; 176 const EM_REQUESTRESIZE = WM_USER+65; 177 const EM_SELECTIONTYPE = WM_USER+66; 178 const EM_SETBKGNDCOLOR = WM_USER+67; 179 const EM_SETCHARFORMAT = WM_USER+68; 180 const EM_SETEVENTMASK = WM_USER+69; 181 const EM_SETOLECALLBACK = WM_USER+70; 182 const EM_SETPARAFORMAT = WM_USER+71; 183 const EM_SETTARGETDEVICE = WM_USER+72; 184 const EM_STREAMIN = WM_USER+73; 185 const EM_STREAMOUT = WM_USER+74; 186 const EM_GETTEXTRANGE = WM_USER+75; 187 const EM_FINDWORDBREAK = WM_USER+76; 188 const EM_SETOPTIONS = WM_USER+77; 189 const EM_GETOPTIONS = WM_USER+78; 190 const EM_FINDTEXTEX = WM_USER+79; 191 const EM_GETWORDBREAKPROCEX = WM_USER+80; 192 const EM_SETWORDBREAKPROCEX = WM_USER+81; 193 /* RichEdit 2.0 messages */ 194 const EM_SETUNDOLIMIT = WM_USER+82; 195 const EM_REDO = WM_USER+84; 196 const EM_CANREDO = WM_USER+85; 197 const EM_GETUNDONAME = WM_USER+86; 198 const EM_GETREDONAME = WM_USER+87; 199 const EM_STOPGROUPTYPING = WM_USER+88; 200 const EM_SETTEXTMODE = WM_USER+89; 201 const EM_GETTEXTMODE = WM_USER+90; 202 const EM_AUTOURLDETECT = WM_USER+91; 203 const EM_GETAUTOURLDETECT = WM_USER + 92; 204 const EM_SETPALETTE = WM_USER + 93; 205 const EM_GETTEXTEX = WM_USER+94; 206 const EM_GETTEXTLENGTHEX = WM_USER+95; 207 const EM_SHOWSCROLLBAR = WM_USER+96; 208 const EM_SETTEXTEX = WM_USER + 97; 209 const EM_SETPUNCTUATION = WM_USER + 100; 210 const EM_GETPUNCTUATION = WM_USER + 101; 211 const EM_SETWORDWRAPMODE = WM_USER + 102; 212 const EM_GETWORDWRAPMODE = WM_USER + 103; 213 const EM_SETIMECOLOR = WM_USER + 104; 214 const EM_GETIMECOLOR = WM_USER + 105; 215 const EM_SETIMEOPTIONS = WM_USER + 106; 216 const EM_GETIMEOPTIONS = WM_USER + 107; 217 const EM_SETLANGOPTIONS = WM_USER+120; 218 const EM_GETLANGOPTIONS = WM_USER+121; 219 const EM_GETIMECOMPMODE = WM_USER+122; 220 const EM_FINDTEXTW = WM_USER + 123; 221 const EM_FINDTEXTEXW = WM_USER + 124; 222 const EM_RECONVERSION = WM_USER + 125; 223 const EM_SETBIDIOPTIONS = WM_USER + 200; 224 const EM_GETBIDIOPTIONS = WM_USER + 201; 225 const EM_SETTYPOGRAPHYOPTIONS = WM_USER+202; 226 const EM_GETTYPOGRAPHYOPTIONS = WM_USER+203; 227 const EM_SETEDITSTYLE = WM_USER + 204; 228 const EM_GETEDITSTYLE = WM_USER + 205; 229 const EM_GETSCROLLPOS = WM_USER+221; 230 const EM_SETSCROLLPOS = WM_USER+222; 231 const EM_SETFONTSIZE = WM_USER+223; 232 const EM_GETZOOM = WM_USER+224; 233 const EM_SETZOOM = WM_USER+225; 234 235 const EN_MSGFILTER = 1792; 236 const EN_REQUESTRESIZE = 1793; 237 const EN_SELCHANGE = 1794; 238 const EN_DROPFILES = 1795; 239 const EN_PROTECTED = 1796; 240 const EN_CORRECTTEXT = 1797; 241 const EN_STOPNOUNDO = 1798; 242 const EN_IMECHANGE = 1799; 243 const EN_SAVECLIPBOARD = 1800; 244 const EN_OLEOPFAILED = 1801; 245 const EN_LINK = 1803; 246 247 const ENM_NONE = 0; 248 const ENM_CHANGE = 1; 249 const ENM_UPDATE = 2; 250 const ENM_SCROLL = 4; 251 const ENM_SCROLLEVENTS = 8; 252 const ENM_DRAGDROPDONE = 16; 253 const ENM_KEYEVENTS = 65536; 254 const ENM_MOUSEEVENTS = 131072; 255 const ENM_REQUESTRESIZE = 262144; 256 const ENM_SELCHANGE = 524288; 257 const ENM_DROPFILES = 1048576; 258 const ENM_PROTECTED = 2097152; 259 const ENM_CORRECTTEXT = 4194304; 260 const ENM_IMECHANGE = 8388608; 261 const ENM_LANGCHANGE = 16777216; 262 const ENM_OBJECTPOSITIONS = 33554432; 263 const ENM_LINK = 67108864; 264 265 const ECO_AUTOWORDSELECTION=1; 266 const ECO_AUTOVSCROLL=64; 267 const ECO_AUTOHSCROLL=128; 268 const ECO_NOHIDESEL=256; 269 const ECO_READONLY=2048; 270 const ECO_WANTRETURN=4096; 271 const ECO_SAVESEL=0x8000; 272 const ECO_SELECTIONBAR=0x1000000; 273 const ECO_VERTICAL=0x400000; 274 275 enum { 276 ECOOP_SET = 1, 277 ECOOP_OR, 278 ECOOP_AND, 279 ECOOP_XOR 280 } 281 282 const SCF_DEFAULT = 0; 283 const SCF_SELECTION = 1; 284 const SCF_WORD = 2; 285 const SCF_ALL = 4; 286 const SCF_USEUIRULES = 8; 287 288 const TM_PLAINTEXT=1; 289 const TM_RICHTEXT=2; 290 const TM_SINGLELEVELUNDO=4; 291 const TM_MULTILEVELUNDO=8; 292 const TM_SINGLECODEPAGE=16; 293 const TM_MULTICODEPAGE=32; 294 295 const GT_DEFAULT=0; 296 const GT_USECRLF=1; 297 298 const yHeightCharPtsMost=1638; 299 const lDefaultTab=720; 300 301 struct CHARFORMATA { 302 UINT cbSize = this.sizeof; 303 DWORD dwMask; 304 DWORD dwEffects; 305 LONG yHeight; 306 LONG yOffset; 307 COLORREF crTextColor; 308 BYTE bCharSet; 309 BYTE bPitchAndFamily; 310 char szFaceName[LF_FACESIZE]; 311 } 312 struct CHARFORMATW { 313 UINT cbSize = this.sizeof; 314 DWORD dwMask; 315 DWORD dwEffects; 316 LONG yHeight; 317 LONG yOffset; 318 COLORREF crTextColor; 319 BYTE bCharSet; 320 BYTE bPitchAndFamily; 321 WCHAR szFaceName[LF_FACESIZE]; 322 } 323 324 struct CHARFORMAT2A { 325 UINT cbSize = this.sizeof; 326 DWORD dwMask; 327 DWORD dwEffects; 328 LONG yHeight; 329 LONG yOffset; 330 COLORREF crTextColor; 331 BYTE bCharSet; 332 BYTE bPitchAndFamily; 333 char szFaceName[LF_FACESIZE]; 334 WORD wWeight; 335 SHORT sSpacing; 336 COLORREF crBackColor; 337 LCID lcid; 338 DWORD dwReserved; 339 SHORT sStyle; 340 WORD wKerning; 341 BYTE bUnderlineType; 342 BYTE bAnimation; 343 BYTE bRevAuthor; 344 } 345 346 struct CHARFORMAT2W { 347 UINT cbSize = this.sizeof; 348 DWORD dwMask; 349 DWORD dwEffects; 350 LONG yHeight; 351 LONG yOffset; 352 COLORREF crTextColor; 353 BYTE bCharSet; 354 BYTE bPitchAndFamily; 355 WCHAR szFaceName[LF_FACESIZE]; 356 WORD wWeight; 357 SHORT sSpacing; 358 COLORREF crBackColor; 359 LCID lcid; 360 DWORD dwReserved; 361 SHORT sStyle; 362 WORD wKerning; 363 BYTE bUnderlineType; 364 BYTE bAnimation; 365 BYTE bRevAuthor; 366 } 367 368 struct CHARRANGE { 369 LONG cpMin; 370 LONG cpMax; 371 } 372 373 struct COMPCOLOR { 374 COLORREF crText; 375 COLORREF crBackground; 376 DWORD dwEffects; 377 } 378 379 extern (Windows) { 380 alias DWORD function(DWORD,PBYTE,LONG,LONG*) EDITSTREAMCALLBACK; 381 } 382 383 struct EDITSTREAM { 384 DWORD dwCookie; 385 DWORD dwError; 386 EDITSTREAMCALLBACK pfnCallback; 387 } 388 389 struct ENCORRECTTEXT { 390 NMHDR nmhdr; 391 CHARRANGE chrg; 392 WORD seltyp; 393 } 394 395 struct ENDROPFILES { 396 NMHDR nmhdr; 397 HANDLE hDrop; 398 LONG cp; 399 BOOL fProtected; 400 } 401 402 struct ENLINK { 403 NMHDR nmhdr; 404 UINT msg; 405 WPARAM wParam; 406 LPARAM lParam; 407 CHARRANGE chrg; 408 } 409 410 struct ENOLEOPFAILED { 411 NMHDR nmhdr; 412 LONG iob; 413 LONG lOper; 414 HRESULT hr; 415 } 416 417 struct ENPROTECTED { 418 NMHDR nmhdr; 419 UINT msg; 420 WPARAM wParam; 421 LPARAM lParam; 422 CHARRANGE chrg; 423 } 424 alias ENPROTECTED* LPENPROTECTED; 425 426 struct ENSAVECLIPBOARD { 427 NMHDR nmhdr; 428 LONG cObjectCount; 429 LONG cch; 430 } 431 432 struct FINDTEXTA { 433 CHARRANGE chrg; 434 LPSTR lpstrText; 435 } 436 437 struct FINDTEXTW { 438 CHARRANGE chrg; 439 LPWSTR lpstrText; 440 } 441 442 struct FINDTEXTEXA { 443 CHARRANGE chrg; 444 LPSTR lpstrText; 445 CHARRANGE chrgText; 446 } 447 448 struct FINDTEXTEXW { 449 CHARRANGE chrg; 450 LPWSTR lpstrText; 451 CHARRANGE chrgText; 452 } 453 454 struct FORMATRANGE { 455 HDC hdc; 456 HDC hdcTarget; 457 RECT rc; 458 RECT rcPage; 459 CHARRANGE chrg; 460 } 461 462 struct MSGFILTER { 463 NMHDR nmhdr; 464 UINT msg; 465 WPARAM wParam; 466 LPARAM lParam; 467 } 468 469 struct PARAFORMAT { 470 UINT cbSize = this.sizeof; 471 DWORD dwMask; 472 WORD wNumbering; 473 WORD wReserved; 474 LONG dxStartIndent; 475 LONG dxRightIndent; 476 LONG dxOffset; 477 WORD wAlignment; 478 SHORT cTabCount; 479 LONG rgxTabs[MAX_TAB_STOPS]; 480 } 481 482 struct PARAFORMAT2 { 483 UINT cbSize = this.sizeof; 484 DWORD dwMask; 485 WORD wNumbering; 486 WORD wEffects; 487 LONG dxStartIndent; 488 LONG dxRightIndent; 489 LONG dxOffset; 490 WORD wAlignment; 491 SHORT cTabCount; 492 LONG rgxTabs[MAX_TAB_STOPS]; 493 LONG dySpaceBefore; 494 LONG dySpaceAfter; 495 LONG dyLineSpacing; 496 SHORT sStype; 497 BYTE bLineSpacingRule; 498 BYTE bOutlineLevel; 499 WORD wShadingWeight; 500 WORD wShadingStyle; 501 WORD wNumberingStart; 502 WORD wNumberingStyle; 503 WORD wNumberingTab; 504 WORD wBorderSpace; 505 WORD wBorderWidth; 506 WORD wBorders; 507 } 508 509 struct SELCHANGE { 510 NMHDR nmhdr; 511 CHARRANGE chrg; 512 WORD seltyp; 513 } 514 515 struct TEXTRANGEA { 516 CHARRANGE chrg; 517 LPSTR lpstrText; 518 } 519 520 struct TEXTRANGEW { 521 CHARRANGE chrg; 522 LPWSTR lpstrText; 523 } 524 525 struct REQRESIZE { 526 NMHDR nmhdr; 527 RECT rc; 528 } 529 530 struct REPASTESPECIAL { 531 DWORD dwAspect; 532 DWORD dwParam; 533 } 534 535 struct PUNCTUATION { 536 UINT iSize; 537 LPSTR szPunctuation; 538 } 539 540 struct GETTEXTEX { 541 DWORD cb; 542 DWORD flags; 543 UINT codepage; 544 LPCSTR lpDefaultChar; 545 LPBOOL lpUsedDefaultChar; 546 } 547 548 extern (Windows) { 549 alias LONG function(char*,LONG,BYTE,INT) EDITWORDBREAKPROCEX; 550 } 551 552 /* Defines for EM_SETTYPOGRAPHYOPTIONS */ 553 const TO_ADVANCEDTYPOGRAPHY = 1; 554 const TO_SIMPLELINEBREAK = 2; 555 556 /* Defines for GETTEXTLENGTHEX */ 557 const GTL_DEFAULT = 0; 558 const GTL_USECRLF = 1; 559 const GTL_PRECISE = 2; 560 const GTL_CLOSE = 4; 561 const GTL_NUMCHARS = 8; 562 const GTL_NUMBYTES = 16; 563 564 struct GETTEXTLENGTHEX { 565 DWORD flags; 566 UINT codepage; 567 } 568 569 version(Unicode) { 570 alias CHARFORMATW CHARFORMAT; 571 alias CHARFORMAT2W CHARFORMAT2; 572 alias FINDTEXTW FINDTEXT; 573 alias FINDTEXTEXW FINDTEXTEX; 574 alias TEXTRANGEW TEXTRANGE; 575 } else { 576 alias CHARFORMATA CHARFORMAT; 577 alias CHARFORMAT2A CHARFORMAT2; 578 alias FINDTEXTA FINDTEXT; 579 alias FINDTEXTEXA FINDTEXTEX; 580 alias TEXTRANGEA TEXTRANGE; 581 }