1/** 2 * This file has no copyright assigned and is placed in the Public Domain. 3 * This file is part of the mingw-w64 runtime package. 4 * No warranty is given; refer to the file DISCLAIMER.PD within this package. 5 */ 6#ifndef _RICHEDIT_ 7#define _RICHEDIT_ 8 9#include <_mingw_unicode.h> 10#include <pshpack4.h> 11 12#ifdef __cplusplus 13extern "C" { 14#endif 15 16#ifndef _RICHEDIT_VER 17#define _RICHEDIT_VER 0x0300 18#endif 19 20#define cchTextLimitDefault 32767 21 22#define MSFTEDIT_CLASS L"RICHEDIT50W" 23 24#define CERICHEDIT_CLASSA "RichEditCEA" 25#define CERICHEDIT_CLASSW L"RichEditCEW" 26 27#define RICHEDIT_CLASSA "RichEdit20A" 28#define RICHEDIT_CLASS10A "RICHEDIT" 29 30#define RICHEDIT_CLASSW L"RichEdit20W" 31 32#if (_RICHEDIT_VER >= 0x0200) 33#define RICHEDIT_CLASS __MINGW_NAME_AW(RICHEDIT_CLASS) 34#else 35#define RICHEDIT_CLASS RICHEDIT_CLASS10A 36#endif 37 38#ifndef WM_CONTEXTMENU 39#define WM_CONTEXTMENU 0x007B 40#endif 41 42#ifndef WM_UNICHAR 43#define WM_UNICHAR 0x0109 44#endif 45 46#ifndef WM_PRINTCLIENT 47#define WM_PRINTCLIENT 0x0318 48#endif 49 50#ifndef EM_GETLIMITTEXT 51#define EM_GETLIMITTEXT (WM_USER + 37) 52#endif 53 54#ifndef EM_POSFROMCHAR 55#define EM_POSFROMCHAR (WM_USER + 38) 56#define EM_CHARFROMPOS (WM_USER + 39) 57#endif 58 59#ifndef EM_SCROLLCARET 60#define EM_SCROLLCARET (WM_USER + 49) 61#endif 62#define EM_CANPASTE (WM_USER + 50) 63#define EM_DISPLAYBAND (WM_USER + 51) 64#define EM_EXGETSEL (WM_USER + 52) 65#define EM_EXLIMITTEXT (WM_USER + 53) 66#define EM_EXLINEFROMCHAR (WM_USER + 54) 67#define EM_EXSETSEL (WM_USER + 55) 68#define EM_FINDTEXT (WM_USER + 56) 69#define EM_FORMATRANGE (WM_USER + 57) 70#define EM_GETCHARFORMAT (WM_USER + 58) 71#define EM_GETEVENTMASK (WM_USER + 59) 72#define EM_GETOLEINTERFACE (WM_USER + 60) 73#define EM_GETPARAFORMAT (WM_USER + 61) 74#define EM_GETSELTEXT (WM_USER + 62) 75#define EM_HIDESELECTION (WM_USER + 63) 76#define EM_PASTESPECIAL (WM_USER + 64) 77#define EM_REQUESTRESIZE (WM_USER + 65) 78#define EM_SELECTIONTYPE (WM_USER + 66) 79#define EM_SETBKGNDCOLOR (WM_USER + 67) 80#define EM_SETCHARFORMAT (WM_USER + 68) 81#define EM_SETEVENTMASK (WM_USER + 69) 82#define EM_SETOLECALLBACK (WM_USER + 70) 83#define EM_SETPARAFORMAT (WM_USER + 71) 84#define EM_SETTARGETDEVICE (WM_USER + 72) 85#define EM_STREAMIN (WM_USER + 73) 86#define EM_STREAMOUT (WM_USER + 74) 87#define EM_GETTEXTRANGE (WM_USER + 75) 88#define EM_FINDWORDBREAK (WM_USER + 76) 89#define EM_SETOPTIONS (WM_USER + 77) 90#define EM_GETOPTIONS (WM_USER + 78) 91#define EM_FINDTEXTEX (WM_USER + 79) 92#define EM_GETWORDBREAKPROCEX (WM_USER + 80) 93#define EM_SETWORDBREAKPROCEX (WM_USER + 81) 94#define EM_SETUNDOLIMIT (WM_USER + 82) 95#define EM_REDO (WM_USER + 84) 96#define EM_CANREDO (WM_USER + 85) 97#define EM_GETUNDONAME (WM_USER + 86) 98#define EM_GETREDONAME (WM_USER + 87) 99#define EM_STOPGROUPTYPING (WM_USER + 88) 100 101#define EM_SETTEXTMODE (WM_USER + 89) 102#define EM_GETTEXTMODE (WM_USER + 90) 103 104 typedef enum tagTextMode { 105 TM_PLAINTEXT = 1,TM_RICHTEXT = 2,TM_SINGLELEVELUNDO = 4,TM_MULTILEVELUNDO = 8,TM_SINGLECODEPAGE = 16,TM_MULTICODEPAGE = 32 106 } TEXTMODE; 107 108#define EM_AUTOURLDETECT (WM_USER + 91) 109#define EM_GETAUTOURLDETECT (WM_USER + 92) 110#define EM_SETPALETTE (WM_USER + 93) 111#define EM_GETTEXTEX (WM_USER + 94) 112#define EM_GETTEXTLENGTHEX (WM_USER + 95) 113#define EM_SHOWSCROLLBAR (WM_USER + 96) 114#define EM_SETTEXTEX (WM_USER + 97) 115 116#define EM_SETPUNCTUATION (WM_USER + 100) 117#define EM_GETPUNCTUATION (WM_USER + 101) 118#define EM_SETWORDWRAPMODE (WM_USER + 102) 119#define EM_GETWORDWRAPMODE (WM_USER + 103) 120#define EM_SETIMECOLOR (WM_USER + 104) 121#define EM_GETIMECOLOR (WM_USER + 105) 122#define EM_SETIMEOPTIONS (WM_USER + 106) 123#define EM_GETIMEOPTIONS (WM_USER + 107) 124#define EM_CONVPOSITION (WM_USER + 108) 125 126#define EM_SETLANGOPTIONS (WM_USER + 120) 127#define EM_GETLANGOPTIONS (WM_USER + 121) 128#define EM_GETIMECOMPMODE (WM_USER + 122) 129 130#define EM_FINDTEXTW (WM_USER + 123) 131#define EM_FINDTEXTEXW (WM_USER + 124) 132 133#define EM_RECONVERSION (WM_USER + 125) 134#define EM_SETIMEMODEBIAS (WM_USER + 126) 135#define EM_GETIMEMODEBIAS (WM_USER + 127) 136 137#define EM_SETBIDIOPTIONS (WM_USER + 200) 138#define EM_GETBIDIOPTIONS (WM_USER + 201) 139 140#define EM_SETTYPOGRAPHYOPTIONS (WM_USER + 202) 141#define EM_GETTYPOGRAPHYOPTIONS (WM_USER + 203) 142 143#define EM_SETEDITSTYLE (WM_USER + 204) 144#define EM_GETEDITSTYLE (WM_USER + 205) 145 146#define SES_EMULATESYSEDIT 1 147#define SES_BEEPONMAXTEXT 2 148#define SES_EXTENDBACKCOLOR 4 149#define SES_MAPCPS 8 150#define SES_EMULATE10 16 151#define SES_USECRLF 32 152#define SES_USEAIMM 64 153#define SES_NOIME 128 154 155#define SES_ALLOWBEEPS 256 156#define SES_UPPERCASE 512 157#define SES_LOWERCASE 1024 158#define SES_NOINPUTSEQUENCECHK 2048 159#define SES_BIDI 4096 160#define SES_SCROLLONKILLFOCUS 8192 161#define SES_XLTCRCRLFTOCR 16384 162#define SES_DRAFTMODE 32768 163 164#define SES_USECTF 0x0010000 165#define SES_HIDEGRIDLINES 0x0020000 166#define SES_USEATFONT 0x0040000 167#define SES_CUSTOMLOOK 0x0080000 168#define SES_LBSCROLLNOTIFY 0x0100000 169#define SES_CTFALLOWEMBED 0x0200000 170#define SES_CTFALLOWSMARTTAG 0x0400000 171#define SES_CTFALLOWPROOFING 0x0800000 172 173#define IMF_AUTOKEYBOARD 0x0001 174#define IMF_AUTOFONT 0x0002 175#define IMF_IMECANCELCOMPLETE 0x0004 176#define IMF_IMEALWAYSSENDNOTIFY 0x0008 177#define IMF_AUTOFONTSIZEADJUST 0x0010 178#define IMF_UIFONTS 0x0020 179#define IMF_DUALFONT 0x0080 180 181#define ICM_NOTOPEN 0x0000 182#define ICM_LEVEL3 0x0001 183#define ICM_LEVEL2 0x0002 184#define ICM_LEVEL2_5 0x0003 185#define ICM_LEVEL2_SUI 0x0004 186#define ICM_CTF 0x0005 187 188#define TO_ADVANCEDTYPOGRAPHY 1 189#define TO_SIMPLELINEBREAK 2 190#define TO_DISABLECUSTOMTEXTOUT 4 191#define TO_ADVANCEDLAYOUT 8 192 193#define EM_OUTLINE (WM_USER + 220) 194 195#define EM_GETSCROLLPOS (WM_USER + 221) 196#define EM_SETSCROLLPOS (WM_USER + 222) 197 198#define EM_SETFONTSIZE (WM_USER + 223) 199#define EM_GETZOOM (WM_USER + 224) 200#define EM_SETZOOM (WM_USER + 225) 201#define EM_GETVIEWKIND (WM_USER + 226) 202#define EM_SETVIEWKIND (WM_USER + 227) 203 204#define EM_GETPAGE (WM_USER + 228) 205#define EM_SETPAGE (WM_USER + 229) 206#define EM_GETHYPHENATEINFO (WM_USER + 230) 207#define EM_SETHYPHENATEINFO (WM_USER + 231) 208#define EM_GETPAGEROTATE (WM_USER + 235) 209#define EM_SETPAGEROTATE (WM_USER + 236) 210#define EM_GETCTFMODEBIAS (WM_USER + 237) 211#define EM_SETCTFMODEBIAS (WM_USER + 238) 212#define EM_GETCTFOPENSTATUS (WM_USER + 240) 213#define EM_SETCTFOPENSTATUS (WM_USER + 241) 214#define EM_GETIMECOMPTEXT (WM_USER + 242) 215#define EM_ISIME (WM_USER + 243) 216#define EM_GETIMEPROPERTY (WM_USER + 244) 217 218#define EM_GETQUERYRTFOBJ (WM_USER + 269) 219#define EM_SETQUERYRTFOBJ (WM_USER + 270) 220 221#define EPR_0 0 222#define EPR_270 1 223#define EPR_180 2 224#define EPR_90 3 225 226#define CTFMODEBIAS_DEFAULT 0x0000 227#define CTFMODEBIAS_FILENAME 0x0001 228#define CTFMODEBIAS_NAME 0x0002 229#define CTFMODEBIAS_READING 0x0003 230#define CTFMODEBIAS_DATETIME 0x0004 231#define CTFMODEBIAS_CONVERSATION 0x0005 232#define CTFMODEBIAS_NUMERIC 0x0006 233#define CTFMODEBIAS_HIRAGANA 0x0007 234#define CTFMODEBIAS_KATAKANA 0x0008 235#define CTFMODEBIAS_HANGUL 0x0009 236#define CTFMODEBIAS_HALFWIDTHKATAKANA 0x000A 237#define CTFMODEBIAS_FULLWIDTHALPHANUMERIC 0x000B 238#define CTFMODEBIAS_HALFWIDTHALPHANUMERIC 0x000C 239 240#define IMF_SMODE_PLAURALCLAUSE 0x0001 241#define IMF_SMODE_NONE 0x0002 242 243 typedef struct _imecomptext { 244 LONG cb; 245 DWORD flags; 246 } IMECOMPTEXT; 247 248#define ICT_RESULTREADSTR 1 249 250#define EMO_EXIT 0 251#define EMO_ENTER 1 252#define EMO_PROMOTE 2 253#define EMO_EXPAND 3 254#define EMO_MOVESELECTION 4 255#define EMO_GETVIEWMODE 5 256 257#define EMO_EXPANDSELECTION 0 258#define EMO_EXPANDDOCUMENT 1 259 260#define VM_NORMAL 4 261#define VM_OUTLINE 2 262#define VM_PAGE 9 263 264#define EN_MSGFILTER 0x0700 265#define EN_REQUESTRESIZE 0x0701 266#define EN_SELCHANGE 0x0702 267#define EN_DROPFILES 0x0703 268#define EN_PROTECTED 0x0704 269#define EN_CORRECTTEXT 0x0705 270#define EN_STOPNOUNDO 0x0706 271#define EN_IMECHANGE 0x0707 272#define EN_SAVECLIPBOARD 0x0708 273#define EN_OLEOPFAILED 0x0709 274#define EN_OBJECTPOSITIONS 0x070a 275#define EN_LINK 0x070b 276#define EN_DRAGDROPDONE 0x070c 277#define EN_PARAGRAPHEXPANDED 0x070d 278#define EN_PAGECHANGE 0x070e 279#define EN_LOWFIRTF 0x070f 280#define EN_ALIGNLTR 0x0710 281#define EN_ALIGNRTL 0x0711 282 283#define ENM_NONE 0x00000000 284#define ENM_CHANGE 0x00000001 285#define ENM_UPDATE 0x00000002 286#define ENM_SCROLL 0x00000004 287#define ENM_SCROLLEVENTS 0x00000008 288#define ENM_DRAGDROPDONE 0x00000010 289#define ENM_PARAGRAPHEXPANDED 0x00000020 290#define ENM_PAGECHANGE 0x00000040 291#define ENM_KEYEVENTS 0x00010000 292#define ENM_MOUSEEVENTS 0x00020000 293#define ENM_REQUESTRESIZE 0x00040000 294#define ENM_SELCHANGE 0x00080000 295#define ENM_DROPFILES 0x00100000 296#define ENM_PROTECTED 0x00200000 297#define ENM_CORRECTTEXT 0x00400000 298#define ENM_IMECHANGE 0x00800000 299#define ENM_LANGCHANGE 0x01000000 300#define ENM_OBJECTPOSITIONS 0x02000000 301#define ENM_LINK 0x04000000 302#define ENM_LOWFIRTF 0x08000000 303 304#define ES_SAVESEL 0x00008000 305#define ES_SUNKEN 0x00004000 306#define ES_DISABLENOSCROLL 0x00002000 307#define ES_SELECTIONBAR 0x01000000 308#define ES_NOOLEDRAGDROP 0x00000008 309#define ES_EX_NOCALLOLEINIT 0x00000000 310#define ES_VERTICAL 0x00400000 311#define ES_NOIME 0x00080000 312#define ES_SELFIME 0x00040000 313 314#define ECO_AUTOWORDSELECTION 0x00000001 315#define ECO_AUTOVSCROLL 0x00000040 316#define ECO_AUTOHSCROLL 0x00000080 317#define ECO_NOHIDESEL 0x00000100 318#define ECO_READONLY 0x00000800 319#define ECO_WANTRETURN 0x00001000 320#define ECO_SAVESEL 0x00008000 321#define ECO_SELECTIONBAR 0x01000000 322#define ECO_VERTICAL 0x00400000 323 324#define ECOOP_SET 0x0001 325#define ECOOP_OR 0x0002 326#define ECOOP_AND 0x0003 327#define ECOOP_XOR 0x0004 328 329#define WB_CLASSIFY 3 330#define WB_MOVEWORDLEFT 4 331#define WB_MOVEWORDRIGHT 5 332#define WB_LEFTBREAK 6 333#define WB_RIGHTBREAK 7 334 335#define WB_MOVEWORDPREV 4 336#define WB_MOVEWORDNEXT 5 337#define WB_PREVBREAK 6 338#define WB_NEXTBREAK 7 339 340#define PC_FOLLOWING 1 341#define PC_LEADING 2 342#define PC_OVERFLOW 3 343#define PC_DELIMITER 4 344#define WBF_WORDWRAP 0x010 345#define WBF_WORDBREAK 0x020 346#define WBF_OVERFLOW 0x040 347#define WBF_LEVEL1 0x080 348#define WBF_LEVEL2 0x100 349#define WBF_CUSTOM 0x200 350 351#define IMF_FORCENONE 0x0001 352#define IMF_FORCEENABLE 0x0002 353#define IMF_FORCEDISABLE 0x0004 354#define IMF_CLOSESTATUSWINDOW 0x0008 355#define IMF_VERTICAL 0x0020 356#define IMF_FORCEACTIVE 0x0040 357#define IMF_FORCEINACTIVE 0x0080 358#define IMF_FORCEREMEMBER 0x0100 359#define IMF_MULTIPLEEDIT 0x0400 360 361#define WBF_CLASS ((BYTE) 0x0F) 362#define WBF_ISWHITE ((BYTE) 0x10) 363#define WBF_BREAKLINE ((BYTE) 0x20) 364#define WBF_BREAKAFTER ((BYTE) 0x40) 365 366 typedef LONG (*EDITWORDBREAKPROCEX)(char *pchText,LONG cchText,BYTE bCharSet,INT action); 367 368 typedef struct _charformat { 369 UINT cbSize; 370 DWORD dwMask; 371 DWORD dwEffects; 372 LONG yHeight; 373 LONG yOffset; 374 COLORREF crTextColor; 375 BYTE bCharSet; 376 BYTE bPitchAndFamily; 377 char szFaceName[LF_FACESIZE]; 378 } CHARFORMATA; 379 380 typedef struct _charformatw { 381 UINT cbSize; 382 DWORD dwMask; 383 DWORD dwEffects; 384 LONG yHeight; 385 LONG yOffset; 386 COLORREF crTextColor; 387 BYTE bCharSet; 388 BYTE bPitchAndFamily; 389 WCHAR szFaceName[LF_FACESIZE]; 390 } CHARFORMATW; 391 392#if (_RICHEDIT_VER >= 0x0200) 393#define CHARFORMAT __MINGW_NAME_AW(CHARFORMAT) 394#else 395#define CHARFORMAT CHARFORMATA 396#endif 397 398#ifdef __cplusplus 399 400 struct CHARFORMAT2W : _charformatw { 401 WORD wWeight; 402 SHORT sSpacing; 403 COLORREF crBackColor; 404 LCID lcid; 405 DWORD dwReserved; 406 SHORT sStyle; 407 WORD wKerning; 408 BYTE bUnderlineType; 409 BYTE bAnimation; 410 BYTE bRevAuthor; 411 }; 412 413 struct CHARFORMAT2A : _charformat { 414 WORD wWeight; 415 SHORT sSpacing; 416 COLORREF crBackColor; 417 LCID lcid; 418 DWORD dwReserved; 419 SHORT sStyle; 420 WORD wKerning; 421 BYTE bUnderlineType; 422 BYTE bAnimation; 423 BYTE bRevAuthor; 424 }; 425#else 426 427 typedef struct _charformat2w { 428 UINT cbSize; 429 DWORD dwMask; 430 DWORD dwEffects; 431 LONG yHeight; 432 LONG yOffset; 433 COLORREF crTextColor; 434 BYTE bCharSet; 435 BYTE bPitchAndFamily; 436 WCHAR szFaceName[LF_FACESIZE]; 437 WORD wWeight; 438 SHORT sSpacing; 439 COLORREF crBackColor; 440 LCID lcid; 441 DWORD dwReserved; 442 SHORT sStyle; 443 WORD wKerning; 444 BYTE bUnderlineType; 445 BYTE bAnimation; 446 BYTE bRevAuthor; 447 BYTE bReserved1; 448 } CHARFORMAT2W; 449 450 typedef struct _charformat2a { 451 UINT cbSize; 452 DWORD dwMask; 453 DWORD dwEffects; 454 LONG yHeight; 455 LONG yOffset; 456 COLORREF crTextColor; 457 BYTE bCharSet; 458 BYTE bPitchAndFamily; 459 char szFaceName[LF_FACESIZE]; 460 WORD wWeight; 461 SHORT sSpacing; 462 COLORREF crBackColor; 463 LCID lcid; 464 DWORD dwReserved; 465 SHORT sStyle; 466 WORD wKerning; 467 BYTE bUnderlineType; 468 BYTE bAnimation; 469 BYTE bRevAuthor; 470 } CHARFORMAT2A; 471#endif 472 473#define CHARFORMAT2 __MINGW_NAME_AW(CHARFORMAT2) 474 475#define CHARFORMATDELTA (sizeof(CHARFORMAT2) - sizeof(CHARFORMAT)) 476 477#define CFM_BOLD 0x00000001 478#define CFM_ITALIC 0x00000002 479#define CFM_UNDERLINE 0x00000004 480#define CFM_STRIKEOUT 0x00000008 481#define CFM_PROTECTED 0x00000010 482#define CFM_LINK 0x00000020 483#define CFM_SIZE 0x80000000 484#define CFM_COLOR 0x40000000 485#define CFM_FACE 0x20000000 486#define CFM_OFFSET 0x10000000 487#define CFM_CHARSET 0x08000000 488 489#define CFE_BOLD 0x0001 490#define CFE_ITALIC 0x0002 491#define CFE_UNDERLINE 0x0004 492#define CFE_STRIKEOUT 0x0008 493#define CFE_PROTECTED 0x0010 494#define CFE_LINK 0x0020 495#define CFE_AUTOCOLOR 0x40000000 496 497#define CFM_SMALLCAPS 0x0040 498#define CFM_ALLCAPS 0x0080 499#define CFM_HIDDEN 0x0100 500#define CFM_OUTLINE 0x0200 501#define CFM_SHADOW 0x0400 502#define CFM_EMBOSS 0x0800 503#define CFM_IMPRINT 0x1000 504#define CFM_DISABLED 0x2000 505#define CFM_REVISED 0x4000 506 507#define CFM_BACKCOLOR 0x04000000 508#define CFM_LCID 0x02000000 509#define CFM_UNDERLINETYPE 0x00800000 510#define CFM_WEIGHT 0x00400000 511#define CFM_SPACING 0x00200000 512#define CFM_KERNING 0x00100000 513#define CFM_STYLE 0x00080000 514#define CFM_ANIMATION 0x00040000 515#define CFM_REVAUTHOR 0x00008000 516 517#define CFE_SUBSCRIPT 0x00010000 518#define CFE_SUPERSCRIPT 0x00020000 519 520#define CFM_SUBSCRIPT CFE_SUBSCRIPT | CFE_SUPERSCRIPT 521#define CFM_SUPERSCRIPT CFM_SUBSCRIPT 522 523#define CFM_EFFECTS (CFM_BOLD | CFM_ITALIC | CFM_UNDERLINE | CFM_COLOR | CFM_STRIKEOUT | CFE_PROTECTED | CFM_LINK) 524#define CFM_ALL (CFM_EFFECTS | CFM_SIZE | CFM_FACE | CFM_OFFSET | CFM_CHARSET) 525#define CFM_EFFECTS2 (CFM_EFFECTS | CFM_DISABLED | CFM_SMALLCAPS | CFM_ALLCAPS | CFM_HIDDEN | CFM_OUTLINE | CFM_SHADOW | CFM_EMBOSS | CFM_IMPRINT | CFM_DISABLED | CFM_REVISED | CFM_SUBSCRIPT | CFM_SUPERSCRIPT | CFM_BACKCOLOR) 526#define CFM_ALL2 (CFM_ALL | CFM_EFFECTS2 | CFM_BACKCOLOR | CFM_LCID | CFM_UNDERLINETYPE | CFM_WEIGHT | CFM_REVAUTHOR | CFM_SPACING | CFM_KERNING | CFM_STYLE | CFM_ANIMATION) 527 528#define CFE_SMALLCAPS CFM_SMALLCAPS 529#define CFE_ALLCAPS CFM_ALLCAPS 530#define CFE_HIDDEN CFM_HIDDEN 531#define CFE_OUTLINE CFM_OUTLINE 532#define CFE_SHADOW CFM_SHADOW 533#define CFE_EMBOSS CFM_EMBOSS 534#define CFE_IMPRINT CFM_IMPRINT 535#define CFE_DISABLED CFM_DISABLED 536#define CFE_REVISED CFM_REVISED 537 538#define CFE_AUTOBACKCOLOR CFM_BACKCOLOR 539 540#define CFU_CF1UNDERLINE 0xFF 541#define CFU_INVERT 0xFE 542#define CFU_UNDERLINETHICKLONGDASH 18 543#define CFU_UNDERLINETHICKDOTTED 17 544#define CFU_UNDERLINETHICKDASHDOTDOT 16 545#define CFU_UNDERLINETHICKDASHDOT 15 546#define CFU_UNDERLINETHICKDASH 14 547#define CFU_UNDERLINELONGDASH 13 548#define CFU_UNDERLINEHEAVYWAVE 12 549#define CFU_UNDERLINEDOUBLEWAVE 11 550#define CFU_UNDERLINEHAIRLINE 10 551#define CFU_UNDERLINETHICK 9 552#define CFU_UNDERLINEWAVE 8 553#define CFU_UNDERLINEDASHDOTDOT 7 554#define CFU_UNDERLINEDASHDOT 6 555#define CFU_UNDERLINEDASH 5 556#define CFU_UNDERLINEDOTTED 4 557#define CFU_UNDERLINEDOUBLE 3 558#define CFU_UNDERLINEWORD 2 559#define CFU_UNDERLINE 1 560#define CFU_UNDERLINENONE 0 561 562#define yHeightCharPtsMost 1638 563 564#define SCF_SELECTION 0x0001 565#define SCF_WORD 0x0002 566#define SCF_DEFAULT 0x0000 567#define SCF_ALL 0x0004 568#define SCF_USEUIRULES 0x0008 569 570#define SCF_ASSOCIATEFONT 0x0010 571 572#define SCF_NOKBUPDATE 0x0020 573 574#define SCF_ASSOCIATEFONT2 0x0040 575 576 typedef struct _charrange { 577 LONG cpMin; 578 LONG cpMax; 579 } CHARRANGE; 580 581 typedef struct _textrange { 582 CHARRANGE chrg; 583 LPSTR lpstrText; 584 } TEXTRANGEA; 585 586 typedef struct _textrangew { 587 CHARRANGE chrg; 588 LPWSTR lpstrText; 589 } TEXTRANGEW; 590 591#if (_RICHEDIT_VER >= 0x0200) 592#define TEXTRANGE __MINGW_NAME_AW(TEXTRANGE) 593#else 594#define TEXTRANGE TEXTRANGEA 595#endif 596 597 typedef DWORD (CALLBACK *EDITSTREAMCALLBACK)(DWORD_PTR dwCookie,LPBYTE pbBuff,LONG cb,LONG *pcb); 598 599 typedef struct _editstream { 600 DWORD_PTR dwCookie; 601 DWORD dwError; 602 EDITSTREAMCALLBACK pfnCallback; 603 } EDITSTREAM; 604 605#define SF_TEXT 0x0001 606#define SF_RTF 0x0002 607#define SF_RTFNOOBJS 0x0003 608#define SF_TEXTIZED 0x0004 609 610#define SF_UNICODE 0x0010 611#define SF_USECODEPAGE 0x0020 612#define SF_NCRFORNONASCII 0x40 613#define SFF_WRITEXTRAPAR 0x80 614 615#define SFF_SELECTION 0x8000 616 617#define SFF_PLAINRTF 0x4000 618 619#define SFF_PERSISTVIEWSCALE 0x2000 620 621#define SFF_KEEPDOCINFO 0x1000 622 623#define SFF_PWD 0x0800 624 625#define SF_RTFVAL 0x0700 626 627 typedef struct _findtext { 628 CHARRANGE chrg; 629 LPCSTR lpstrText; 630 } FINDTEXTA; 631 632 typedef struct _findtextw { 633 CHARRANGE chrg; 634 LPCWSTR lpstrText; 635 } FINDTEXTW; 636 637#if (_RICHEDIT_VER >= 0x0200) 638#define FINDTEXT __MINGW_NAME_AW(FINDTEXT) 639#else 640#define FINDTEXT FINDTEXTA 641#endif 642 643 typedef struct _findtextexa { 644 CHARRANGE chrg; 645 LPCSTR lpstrText; 646 CHARRANGE chrgText; 647 } FINDTEXTEXA; 648 649 typedef struct _findtextexw { 650 CHARRANGE chrg; 651 LPCWSTR lpstrText; 652 CHARRANGE chrgText; 653 } FINDTEXTEXW; 654 655#if (_RICHEDIT_VER >= 0x0200) 656#define FINDTEXTEX __MINGW_NAME_AW(FINDTEXTEX) 657#else 658#define FINDTEXTEX FINDTEXTEXA 659#endif 660 661 typedef struct _formatrange { 662 HDC hdc; 663 HDC hdcTarget; 664 RECT rc; 665 RECT rcPage; 666 CHARRANGE chrg; 667 } FORMATRANGE; 668 669#define MAX_TAB_STOPS 32 670#define lDefaultTab 720 671#define MAX_TABLE_CELLS 63 672 673#define wReserved wEffects 674 675 typedef struct _paraformat { 676 UINT cbSize; 677 DWORD dwMask; 678 WORD wNumbering; 679 WORD wEffects; 680 LONG dxStartIndent; 681 LONG dxRightIndent; 682 LONG dxOffset; 683 WORD wAlignment; 684 SHORT cTabCount; 685 LONG rgxTabs[MAX_TAB_STOPS]; 686 } PARAFORMAT; 687 688#ifdef __cplusplus 689 struct PARAFORMAT2 : _paraformat { 690 LONG dySpaceBefore; 691 LONG dySpaceAfter; 692 LONG dyLineSpacing; 693 SHORT sStyle; 694 BYTE bLineSpacingRule; 695 BYTE bOutlineLevel; 696 WORD wShadingWeight; 697 WORD wShadingStyle; 698 WORD wNumberingStart; 699 WORD wNumberingStyle; 700 WORD wNumberingTab; 701 WORD wBorderSpace; 702 WORD wBorderWidth; 703 WORD wBorders; 704 }; 705#else 706 typedef struct _paraformat2 { 707 UINT cbSize; 708 DWORD dwMask; 709 WORD wNumbering; 710 WORD wReserved; 711 LONG dxStartIndent; 712 LONG dxRightIndent; 713 LONG dxOffset; 714 WORD wAlignment; 715 SHORT cTabCount; 716 LONG rgxTabs[MAX_TAB_STOPS]; 717 LONG dySpaceBefore; 718 LONG dySpaceAfter; 719 LONG dyLineSpacing; 720 SHORT sStyle; 721 BYTE bLineSpacingRule; 722 BYTE bOutlineLevel; 723 WORD wShadingWeight; 724 WORD wShadingStyle; 725 WORD wNumberingStart; 726 WORD wNumberingStyle; 727 WORD wNumberingTab; 728 WORD wBorderSpace; 729 WORD wBorderWidth; 730 WORD wBorders; 731 } PARAFORMAT2; 732#endif 733 734#define PFM_STARTINDENT 0x00000001 735#define PFM_RIGHTINDENT 0x00000002 736#define PFM_OFFSET 0x00000004 737#define PFM_ALIGNMENT 0x00000008 738#define PFM_TABSTOPS 0x00000010 739#define PFM_NUMBERING 0x00000020 740#define PFM_OFFSETINDENT 0x80000000 741 742#define PFM_SPACEBEFORE 0x00000040 743#define PFM_SPACEAFTER 0x00000080 744#define PFM_LINESPACING 0x00000100 745#define PFM_STYLE 0x00000400 746#define PFM_BORDER 0x00000800 747#define PFM_SHADING 0x00001000 748#define PFM_NUMBERINGSTYLE 0x00002000 749#define PFM_NUMBERINGTAB 0x00004000 750#define PFM_NUMBERINGSTART 0x00008000 751 752#define PFM_RTLPARA 0x00010000 753#define PFM_KEEP 0x00020000 754#define PFM_KEEPNEXT 0x00040000 755#define PFM_PAGEBREAKBEFORE 0x00080000 756#define PFM_NOLINENUMBER 0x00100000 757#define PFM_NOWIDOWCONTROL 0x00200000 758#define PFM_DONOTHYPHEN 0x00400000 759#define PFM_SIDEBYSIDE 0x00800000 760#define PFM_TABLE 0x40000000 761#define PFM_TEXTWRAPPINGBREAK 0x20000000 762#define PFM_TABLEROWDELIMITER 0x10000000 763 764#define PFM_COLLAPSED 0x01000000 765#define PFM_OUTLINELEVEL 0x02000000 766#define PFM_BOX 0x04000000 767#define PFM_RESERVED2 0x08000000 768 769#define PFM_ALL (PFM_STARTINDENT | PFM_RIGHTINDENT | PFM_OFFSET | PFM_ALIGNMENT | PFM_TABSTOPS | PFM_NUMBERING | PFM_OFFSETINDENT| PFM_RTLPARA) 770#define PFM_EFFECTS (PFM_RTLPARA | PFM_KEEP | PFM_KEEPNEXT | PFM_TABLE | PFM_PAGEBREAKBEFORE | PFM_NOLINENUMBER | PFM_NOWIDOWCONTROL | PFM_DONOTHYPHEN | PFM_SIDEBYSIDE | PFM_TABLE | PFM_TABLEROWDELIMITER) 771#define PFM_ALL2 (PFM_ALL | PFM_EFFECTS | PFM_SPACEBEFORE | PFM_SPACEAFTER | PFM_LINESPACING | PFM_STYLE | PFM_SHADING | PFM_BORDER | PFM_NUMBERINGTAB | PFM_NUMBERINGSTART | PFM_NUMBERINGSTYLE) 772 773#define PFE_RTLPARA (PFM_RTLPARA >> 16) 774#define PFE_KEEP (PFM_KEEP >> 16) 775#define PFE_KEEPNEXT (PFM_KEEPNEXT >> 16) 776#define PFE_PAGEBREAKBEFORE (PFM_PAGEBREAKBEFORE >> 16) 777#define PFE_NOLINENUMBER (PFM_NOLINENUMBER >> 16) 778#define PFE_NOWIDOWCONTROL (PFM_NOWIDOWCONTROL >> 16) 779#define PFE_DONOTHYPHEN (PFM_DONOTHYPHEN >> 16) 780#define PFE_SIDEBYSIDE (PFM_SIDEBYSIDE >> 16) 781#define PFE_TEXTWRAPPINGBREAK (PFM_TEXTWRAPPINGBREAK>>16) 782 783#define PFE_COLLAPSED (PFM_COLLAPSED >> 16) 784#define PFE_BOX (PFM_BOX >> 16) 785#define PFE_TABLE (PFM_TABLE >> 16) 786#define PFE_TABLEROWDELIMITER (PFM_TABLEROWDELIMITER>>16) 787 788#define PFN_BULLET 1 789 790#define PFN_ARABIC 2 791#define PFN_LCLETTER 3 792#define PFN_UCLETTER 4 793#define PFN_LCROMAN 5 794#define PFN_UCROMAN 6 795 796#define PFNS_PAREN 0x000 797#define PFNS_PARENS 0x100 798#define PFNS_PERIOD 0x200 799#define PFNS_PLAIN 0x300 800#define PFNS_NONUMBER 0x400 801 802#define PFNS_NEWNUMBER 0x8000 803 804#define PFA_LEFT 1 805#define PFA_RIGHT 2 806#define PFA_CENTER 3 807 808#define PFA_JUSTIFY 4 809#define PFA_FULL_INTERWORD 4 810#define PFA_FULL_INTERLETTER 5 811#define PFA_FULL_SCALED 6 812#define PFA_FULL_GLYPHS 7 813#define PFA_SNAP_GRID 8 814 815#ifndef WM_NOTIFY 816#define WM_NOTIFY 0x004E 817 818 typedef struct _nmhdr { 819 HWND hwndFrom; 820 UINT idFrom; 821 UINT code; 822 } NMHDR; 823#endif 824 825 typedef struct _msgfilter { 826 NMHDR nmhdr; 827 UINT msg; 828 WPARAM wParam; 829 LPARAM lParam; 830 } MSGFILTER; 831 832 typedef struct _reqresize { 833 NMHDR nmhdr; 834 RECT rc; 835 } REQRESIZE; 836 837 typedef struct _selchange { 838 NMHDR nmhdr; 839 CHARRANGE chrg; 840 WORD seltyp; 841 } SELCHANGE; 842 843#define SEL_EMPTY 0x0000 844#define SEL_TEXT 0x0001 845#define SEL_OBJECT 0x0002 846#define SEL_MULTICHAR 0x0004 847#define SEL_MULTIOBJECT 0x0008 848 849#define GCM_RIGHTMOUSEDROP 0x8000 850 851 typedef struct _endropfiles { 852 NMHDR nmhdr; 853 HANDLE hDrop; 854 LONG cp; 855 WINBOOL fProtected; 856 } ENDROPFILES; 857 858 typedef struct _enprotected { 859 NMHDR nmhdr; 860 UINT msg; 861 WPARAM wParam; 862 LPARAM lParam; 863 CHARRANGE chrg; 864 } ENPROTECTED; 865 866 typedef struct _ensaveclipboard { 867 NMHDR nmhdr; 868 LONG cObjectCount; 869 LONG cch; 870 } ENSAVECLIPBOARD; 871 872 typedef struct _enoleopfailed { 873 NMHDR nmhdr; 874 LONG iob; 875 LONG lOper; 876 HRESULT hr; 877 } ENOLEOPFAILED; 878 879#define OLEOP_DOVERB 1 880 881 typedef struct _objectpositions { 882 NMHDR nmhdr; 883 LONG cObjectCount; 884 LONG *pcpPositions; 885 } OBJECTPOSITIONS; 886 887 typedef struct _enlink { 888 NMHDR nmhdr; 889 UINT msg; 890 WPARAM wParam; 891 LPARAM lParam; 892 CHARRANGE chrg; 893 } ENLINK; 894 895 typedef struct _enlowfirtf { 896 NMHDR nmhdr; 897 char *szControl; 898 } ENLOWFIRTF; 899 900 typedef struct _encorrecttext { 901 NMHDR nmhdr; 902 CHARRANGE chrg; 903 WORD seltyp; 904 } ENCORRECTTEXT; 905 906 typedef struct _punctuation { 907 UINT iSize; 908 LPSTR szPunctuation; 909 } PUNCTUATION; 910 911 typedef struct _compcolor { 912 COLORREF crText; 913 COLORREF crBackground; 914 DWORD dwEffects; 915 } COMPCOLOR; 916 917#define CF_RTF TEXT("Rich Text Format") 918#define CF_RTFNOOBJS TEXT("Rich Text Format Without Objects") 919#define CF_RETEXTOBJ TEXT("RichEdit Text and Objects") 920 921 typedef struct _repastespecial { 922 DWORD dwAspect; 923 DWORD_PTR dwParam; 924 } REPASTESPECIAL; 925 926 typedef enum _undonameid { 927 UID_UNKNOWN = 0,UID_TYPING = 1,UID_DELETE = 2,UID_DRAGDROP = 3,UID_CUT = 4,UID_PASTE = 5,UID_AUTOCORRECT = 6 928 } UNDONAMEID; 929 930#define ST_DEFAULT 0 931#define ST_KEEPUNDO 1 932#define ST_SELECTION 2 933#define ST_NEWCHARS 4 934 935 typedef struct _settextex { 936 DWORD flags; 937 UINT codepage; 938 } SETTEXTEX; 939 940#define GT_DEFAULT 0 941#define GT_USECRLF 1 942#define GT_SELECTION 2 943#define GT_RAWTEXT 4 944#define GT_NOHIDDENTEXT 8 945 946 typedef struct _gettextex { 947 DWORD cb; 948 DWORD flags; 949 UINT codepage; 950 LPCSTR lpDefaultChar; 951 LPBOOL lpUsedDefChar; 952 } GETTEXTEX; 953 954#define GTL_DEFAULT 0 955#define GTL_USECRLF 1 956#define GTL_PRECISE 2 957#define GTL_CLOSE 4 958#define GTL_NUMCHARS 8 959#define GTL_NUMBYTES 16 960 961 typedef struct _gettextlengthex { 962 DWORD flags; 963 UINT codepage; 964 } GETTEXTLENGTHEX; 965 966 typedef struct _bidioptions { 967 UINT cbSize; 968 WORD wMask; 969 WORD wEffects; 970 } BIDIOPTIONS; 971 972#if (_RICHEDIT_VER==0x0100) 973#define BOM_DEFPARADIR 0x0001 974#define BOM_PLAINTEXT 0x0002 975#endif 976#define BOM_NEUTRALOVERRIDE 0x0004 977#define BOM_CONTEXTREADING 0x0008 978#define BOM_CONTEXTALIGNMENT 0x0010 979 980#if (_RICHEDIT_VER==0x0100) 981#define BOE_RTLDIR 0x0001 982#define BOE_PLAINTEXT 0x0002 983#endif 984#define BOE_NEUTRALOVERRIDE 0x0004 985#define BOE_CONTEXTREADING 0x0008 986#define BOE_CONTEXTALIGNMENT 0x0010 987 988#define FR_MATCHDIAC 0x20000000 989#define FR_MATCHKASHIDA 0x40000000 990#define FR_MATCHALEFHAMZA 0x80000000 991 992#ifndef WCH_EMBEDDING 993#define WCH_EMBEDDING (WCHAR)0xFFFC 994#endif 995 996 typedef enum tagKHYPH { 997 khyphNil,khyphNormal,khyphAddBefore,khyphChangeBefore,khyphDeleteBefore,khyphChangeAfter,khyphDelAndChange 998 } KHYPH; 999 1000 typedef struct hyphresult { 1001 KHYPH khyph; 1002 __LONG32 ichHyph; 1003 WCHAR chHyph; 1004 } HYPHRESULT; 1005 1006 void WINAPI HyphenateProc(WCHAR *pszWord,LANGID langid,__LONG32 ichExceed,HYPHRESULT *phyphresult); 1007 1008 typedef struct tagHyphenateInfo { 1009 SHORT cbSize; 1010 SHORT dxHyphenateZone; 1011 void (WINAPI *pfnHyphenate)(WCHAR*,LANGID,__LONG32,HYPHRESULT*); 1012 } HYPHENATEINFO; 1013 1014#include <poppack.h> 1015 1016#ifdef __cplusplus 1017} 1018#endif 1019#endif 1020