This file is indexed.

/usr/include/wine/windows/richedit.h is in libwine-dev 1.8.7-2.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

   1
   2
   3
   4
   5
   6
   7
   8
   9
  10
  11
  12
  13
  14
  15
  16
  17
  18
  19
  20
  21
  22
  23
  24
  25
  26
  27
  28
  29
  30
  31
  32
  33
  34
  35
  36
  37
  38
  39
  40
  41
  42
  43
  44
  45
  46
  47
  48
  49
  50
  51
  52
  53
  54
  55
  56
  57
  58
  59
  60
  61
  62
  63
  64
  65
  66
  67
  68
  69
  70
  71
  72
  73
  74
  75
  76
  77
  78
  79
  80
  81
  82
  83
  84
  85
  86
  87
  88
  89
  90
  91
  92
  93
  94
  95
  96
  97
  98
  99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 112
 113
 114
 115
 116
 117
 118
 119
 120
 121
 122
 123
 124
 125
 126
 127
 128
 129
 130
 131
 132
 133
 134
 135
 136
 137
 138
 139
 140
 141
 142
 143
 144
 145
 146
 147
 148
 149
 150
 151
 152
 153
 154
 155
 156
 157
 158
 159
 160
 161
 162
 163
 164
 165
 166
 167
 168
 169
 170
 171
 172
 173
 174
 175
 176
 177
 178
 179
 180
 181
 182
 183
 184
 185
 186
 187
 188
 189
 190
 191
 192
 193
 194
 195
 196
 197
 198
 199
 200
 201
 202
 203
 204
 205
 206
 207
 208
 209
 210
 211
 212
 213
 214
 215
 216
 217
 218
 219
 220
 221
 222
 223
 224
 225
 226
 227
 228
 229
 230
 231
 232
 233
 234
 235
 236
 237
 238
 239
 240
 241
 242
 243
 244
 245
 246
 247
 248
 249
 250
 251
 252
 253
 254
 255
 256
 257
 258
 259
 260
 261
 262
 263
 264
 265
 266
 267
 268
 269
 270
 271
 272
 273
 274
 275
 276
 277
 278
 279
 280
 281
 282
 283
 284
 285
 286
 287
 288
 289
 290
 291
 292
 293
 294
 295
 296
 297
 298
 299
 300
 301
 302
 303
 304
 305
 306
 307
 308
 309
 310
 311
 312
 313
 314
 315
 316
 317
 318
 319
 320
 321
 322
 323
 324
 325
 326
 327
 328
 329
 330
 331
 332
 333
 334
 335
 336
 337
 338
 339
 340
 341
 342
 343
 344
 345
 346
 347
 348
 349
 350
 351
 352
 353
 354
 355
 356
 357
 358
 359
 360
 361
 362
 363
 364
 365
 366
 367
 368
 369
 370
 371
 372
 373
 374
 375
 376
 377
 378
 379
 380
 381
 382
 383
 384
 385
 386
 387
 388
 389
 390
 391
 392
 393
 394
 395
 396
 397
 398
 399
 400
 401
 402
 403
 404
 405
 406
 407
 408
 409
 410
 411
 412
 413
 414
 415
 416
 417
 418
 419
 420
 421
 422
 423
 424
 425
 426
 427
 428
 429
 430
 431
 432
 433
 434
 435
 436
 437
 438
 439
 440
 441
 442
 443
 444
 445
 446
 447
 448
 449
 450
 451
 452
 453
 454
 455
 456
 457
 458
 459
 460
 461
 462
 463
 464
 465
 466
 467
 468
 469
 470
 471
 472
 473
 474
 475
 476
 477
 478
 479
 480
 481
 482
 483
 484
 485
 486
 487
 488
 489
 490
 491
 492
 493
 494
 495
 496
 497
 498
 499
 500
 501
 502
 503
 504
 505
 506
 507
 508
 509
 510
 511
 512
 513
 514
 515
 516
 517
 518
 519
 520
 521
 522
 523
 524
 525
 526
 527
 528
 529
 530
 531
 532
 533
 534
 535
 536
 537
 538
 539
 540
 541
 542
 543
 544
 545
 546
 547
 548
 549
 550
 551
 552
 553
 554
 555
 556
 557
 558
 559
 560
 561
 562
 563
 564
 565
 566
 567
 568
 569
 570
 571
 572
 573
 574
 575
 576
 577
 578
 579
 580
 581
 582
 583
 584
 585
 586
 587
 588
 589
 590
 591
 592
 593
 594
 595
 596
 597
 598
 599
 600
 601
 602
 603
 604
 605
 606
 607
 608
 609
 610
 611
 612
 613
 614
 615
 616
 617
 618
 619
 620
 621
 622
 623
 624
 625
 626
 627
 628
 629
 630
 631
 632
 633
 634
 635
 636
 637
 638
 639
 640
 641
 642
 643
 644
 645
 646
 647
 648
 649
 650
 651
 652
 653
 654
 655
 656
 657
 658
 659
 660
 661
 662
 663
 664
 665
 666
 667
 668
 669
 670
 671
 672
 673
 674
 675
 676
 677
 678
 679
 680
 681
 682
 683
 684
 685
 686
 687
 688
 689
 690
 691
 692
 693
 694
 695
 696
 697
 698
 699
 700
 701
 702
 703
 704
 705
 706
 707
 708
 709
 710
 711
 712
 713
 714
 715
 716
 717
 718
 719
 720
 721
 722
 723
 724
 725
 726
 727
 728
 729
 730
 731
 732
 733
 734
 735
 736
 737
 738
 739
 740
 741
 742
 743
 744
 745
 746
 747
 748
 749
 750
 751
 752
 753
 754
 755
 756
 757
 758
 759
 760
 761
 762
 763
 764
 765
 766
 767
 768
 769
 770
 771
 772
 773
 774
 775
 776
 777
 778
 779
 780
 781
 782
 783
 784
 785
 786
 787
 788
 789
 790
 791
 792
 793
 794
 795
 796
 797
 798
 799
 800
 801
 802
 803
 804
 805
 806
 807
 808
 809
 810
 811
 812
 813
 814
 815
 816
 817
 818
 819
 820
 821
 822
 823
 824
 825
 826
 827
 828
 829
 830
 831
 832
 833
 834
 835
 836
 837
 838
 839
 840
 841
 842
 843
 844
 845
 846
 847
 848
 849
 850
 851
 852
 853
 854
 855
 856
 857
 858
 859
 860
 861
 862
 863
 864
 865
 866
 867
 868
 869
 870
 871
 872
 873
 874
 875
 876
 877
 878
 879
 880
 881
 882
 883
 884
 885
 886
 887
 888
 889
 890
 891
 892
 893
 894
 895
 896
 897
 898
 899
 900
 901
 902
 903
 904
 905
 906
 907
 908
 909
 910
 911
 912
 913
 914
 915
 916
 917
 918
 919
 920
 921
 922
 923
 924
 925
 926
 927
 928
 929
 930
 931
 932
 933
 934
 935
 936
 937
 938
 939
 940
 941
 942
 943
 944
 945
 946
 947
 948
 949
 950
 951
 952
 953
 954
 955
 956
 957
 958
 959
 960
 961
 962
 963
 964
 965
 966
 967
 968
 969
 970
 971
 972
 973
 974
 975
 976
 977
 978
 979
 980
 981
 982
 983
 984
 985
 986
 987
 988
 989
 990
 991
 992
 993
 994
 995
 996
 997
 998
 999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
/*
 * Copyright (C) 2000 Jean-Claude Batista
 * Copyright (C) 2002 Andriy Palamarchuk
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
 */

#ifndef __WINE_RICHEDIT_H
#define __WINE_RICHEDIT_H

#include <pshpack4.h>

#ifdef __cplusplus
extern "C" {
#endif

#ifndef _RICHEDIT_VER
#define _RICHEDIT_VER   0x0210
#endif /* _RICHEDIT_VER */

#define cchTextLimitDefault 0x7fff

#if defined(__GNUC__)
# define MSFTEDIT_CLASS (const WCHAR []){ 'R','i','c','h','E','d','i','t','5','0','W',0 }
#elif defined(_MSC_VER)
# define MSFTEDIT_CLASS L"RichEdit50W"
#else
static const WCHAR MSFTEDIT_CLASS[] = { 'R','i','c','h','E','d','i','t','5','0','W',0 };
#endif

#define RICHEDIT_CLASS20A	"RichEdit20A"
#if defined(__GNUC__)
# define RICHEDIT_CLASS20W (const WCHAR []){ 'R','i','c','h','E','d','i','t','2','0','W',0 }
#elif defined(_MSC_VER)
# define RICHEDIT_CLASS20W      L"RichEdit20W"
#else
static const WCHAR RICHEDIT_CLASS20W[] = { 'R','i','c','h','E','d','i','t','2','0','W',0 };
#endif
#define RICHEDIT_CLASS10A	"RICHEDIT"

#if (_RICHEDIT_VER >= 0x0200 )
#define RICHEDIT_CLASS		WINELIB_NAME_AW(RICHEDIT_CLASS20)
#else
#define RICHEDIT_CLASS		RICHEDIT_CLASS10A
#endif

#ifndef WM_NOTIFY
#define WM_NOTIFY               0x004e
#endif
#ifndef WM_CONTEXTMENU
#define WM_CONTEXTMENU          0x007b
#endif
#ifndef WM_UNICHAR
#define WM_UNICHAR              0x0109
#endif
#ifndef WM_PRINTCLIENT
#define WM_PRINTCLIENT          0x0318
#endif

#ifndef EM_GETLIMITTEXT
#define EM_GETLIMITTEXT         (WM_USER + 37)
#endif
#ifndef EM_POSFROMCHAR
#define EM_POSFROMCHAR          (WM_USER + 38)
#define EM_CHARFROMPOS          (WM_USER + 39)
#endif
#ifndef EM_SCROLLCARET
#define EM_SCROLLCARET		(WM_USER + 49)
#endif
#define EM_CANPASTE		(WM_USER + 50)
#define EM_DISPLAYBAND		(WM_USER + 51)
#define EM_EXGETSEL		(WM_USER + 52)
#define EM_EXLIMITTEXT		(WM_USER + 53)
#define EM_EXLINEFROMCHAR	(WM_USER + 54)
#define EM_EXSETSEL		(WM_USER + 55)
#define EM_FINDTEXT		(WM_USER + 56)
#define EM_FORMATRANGE		(WM_USER + 57)
#define EM_GETCHARFORMAT	(WM_USER + 58)
#define EM_GETEVENTMASK		(WM_USER + 59)
#define EM_GETOLEINTERFACE	(WM_USER + 60)
#define EM_GETPARAFORMAT	(WM_USER + 61)
#define EM_GETSELTEXT		(WM_USER + 62)
#define EM_HIDESELECTION	(WM_USER + 63)
#define EM_PASTESPECIAL		(WM_USER + 64)
#define EM_REQUESTRESIZE	(WM_USER + 65)
#define EM_SELECTIONTYPE	(WM_USER + 66)
#define EM_SETBKGNDCOLOR	(WM_USER + 67)
#define EM_SETCHARFORMAT	(WM_USER + 68)
#define EM_SETEVENTMASK		(WM_USER + 69)
#define EM_SETOLECALLBACK	(WM_USER + 70)
#define EM_SETPARAFORMAT	(WM_USER + 71)
#define EM_SETTARGETDEVICE	(WM_USER + 72)
#define EM_STREAMIN		(WM_USER + 73)
#define EM_STREAMOUT		(WM_USER + 74)
#define EM_GETTEXTRANGE		(WM_USER + 75)
#define EM_FINDWORDBREAK	(WM_USER + 76)
#define EM_SETOPTIONS		(WM_USER + 77)
#define EM_GETOPTIONS		(WM_USER + 78)
#define EM_FINDTEXTEX		(WM_USER + 79)
#define EM_GETWORDBREAKPROCEX	(WM_USER + 80)
#define EM_SETWORDBREAKPROCEX	(WM_USER + 81)

#define EM_SETUNDOLIMIT		(WM_USER + 82)
#define EM_REDO			(WM_USER + 84)
#define EM_CANREDO		(WM_USER + 85)
#define EM_GETUNDONAME		(WM_USER + 86)
#define EM_GETREDONAME		(WM_USER + 87)
#define EM_STOPGROUPTYPING	(WM_USER + 88)

#define EM_SETTEXTMODE		(WM_USER + 89)
#define EM_GETTEXTMODE		(WM_USER + 90)
#define EM_AUTOURLDETECT	(WM_USER + 91)
#define EM_GETAUTOURLDETECT	(WM_USER + 92)
#define EM_SETPALETTE		(WM_USER + 93)
#define EM_GETTEXTEX		(WM_USER + 94)
#define EM_GETTEXTLENGTHEX	(WM_USER + 95)
#define EM_SHOWSCROLLBAR	(WM_USER + 96)
#define EM_SETTEXTEX		(WM_USER + 97)

#define EM_SETPUNCTUATION	(WM_USER + 100)
#define EM_GETPUNCTUATION	(WM_USER + 101)
#define EM_SETWORDWRAPMODE	(WM_USER + 102)
#define EM_GETWORDWRAPMODE	(WM_USER + 103)
#define EM_SETIMECOLOR		(WM_USER + 104)
#define EM_GETIMECOLOR		(WM_USER + 105)
#define EM_SETIMEOPTIONS	(WM_USER + 106)
#define EM_GETIMEOPTIONS	(WM_USER + 107)
#define EM_CONVPOSITION		(WM_USER + 108)

#define EM_SETLANGOPTIONS	(WM_USER + 120)
#define EM_GETLANGOPTIONS	(WM_USER + 121)
#define EM_GETIMECOMPMODE	(WM_USER + 122)

#define EM_FINDTEXTW		(WM_USER + 123)
#define EM_FINDTEXTEXW		(WM_USER + 124)

#define EM_RECONVERSION		(WM_USER + 125)
#define EM_SETIMEMODEBIAS	(WM_USER + 126)
#define EM_GETIMEMODEBIAS	(WM_USER + 127)

#define EM_SETBIDIOPTIONS	(WM_USER + 200)
#define EM_GETBIDIOPTIONS	(WM_USER + 201)

#define EM_SETTYPOGRAPHYOPTIONS (WM_USER + 202)
#define EM_GETTYPOGRAPHYOPTIONS (WM_USER + 203)

#define EM_SETEDITSTYLE		(WM_USER + 204)
#define EM_GETEDITSTYLE		(WM_USER + 205)

#define EM_OUTLINE              (WM_USER + 220)

#define EM_GETSCROLLPOS         (WM_USER + 221)
#define EM_SETSCROLLPOS         (WM_USER + 222)

#define EM_SETFONTSIZE          (WM_USER + 223)
#define EM_GETZOOM		(WM_USER + 224)
#define EM_SETZOOM		(WM_USER + 225)
#define EM_GETVIEWKIND          (WM_USER + 226)
#define EM_SETVIEWKIND          (WM_USER + 227)

#define EM_GETPAGE              (WM_USER + 228)
#define EM_SETPAGE              (WM_USER + 229)
#define EM_GETHYPHENATEINFO     (WM_USER + 230)
#define EM_SETHYPHENATEINFO     (WM_USER + 231)
#define EM_GETPAGEROTATE        (WM_USER + 235)
#define EM_SETPAGEROTATE        (WM_USER + 236)
#define EM_GETCTFMODEBIAS       (WM_USER + 237)
#define EM_SETCTFMODEBIAS       (WM_USER + 238)
#define EM_GETCTFOPENSTATUS     (WM_USER + 240)
#define EM_SETCTFOPENSTATUS     (WM_USER + 241)
#define EM_GETIMECOMPTEXT       (WM_USER + 242)
#define EM_ISIME                (WM_USER + 243)
#define EM_GETIMEPROPERTY       (WM_USER + 244)
#define EM_GETQUERYRTFOBJ       (WM_USER + 269)
#define EM_SETQUERYRTFOBJ       (WM_USER + 270)

/* New notifications */
#define EN_MSGFILTER                    0x0700
#define EN_REQUESTRESIZE                0x0701
#define EN_SELCHANGE                    0x0702
#define EN_DROPFILES                    0x0703
#define EN_PROTECTED                    0x0704
#define EN_CORRECTTEXT                  0x0705
#define EN_STOPNOUNDO                   0x0706
#define EN_IMECHANGE                    0x0707
#define EN_SAVECLIPBOARD                0x0708
#define EN_OLEOPFAILED                  0x0709
#define EN_OBJECTPOSITIONS              0x070a
#define EN_LINK				0x070b
#define EN_DRAGDROPDONE                 0x070c
#define EN_PARAGRAPHEXPANDED		0x070d
#define EN_PAGECHANGE                   0x070e
#define EN_LOWFIRTF                     0x070f
#define EN_ALIGNLTR			0x0710
#define EN_ALIGNRTL			0x0711


typedef DWORD (CALLBACK * EDITSTREAMCALLBACK)( DWORD_PTR, LPBYTE, LONG, LONG * );


#define yHeightCharPtsMost    1638
#define lDefaultTab           720

/* tab stops number limit */
#define MAX_TAB_STOPS         0x00000020

#define MAX_TABLE_CELLS       63

/* Rich edit control styles */
#define ES_NOOLEDRAGDROP      0x00000008
#define ES_DISABLENOSCROLL    0x00002000
#define ES_SUNKEN             0x00004000
#define ES_SAVESEL            0x00008000
#define ES_SELFIME            0x00040000
#define ES_NOIME              0x00080000
#define ES_VERTICAL           0x00400000
#define ES_SELECTIONBAR       0x01000000
#define ES_EX_NOCALLOLEINIT   0x01000000

/* the character formatting options */
#define SCF_DEFAULT           0x00000000
#define SCF_SELECTION         0x00000001
#define SCF_WORD              0x00000002
#define SCF_ALL               0x00000004
#define SCF_USEUIRULES        0x00000008
#define SCF_ASSOCIATEFONT     0x00000010
#define SCF_NOKBUPDATE        0x00000020
#define SCF_ASSOCIATEFONT2    0x00000040

#ifndef WM_NOTIFY
typedef struct _nmhdr
{
    HWND       hwndFrom;
    UINT       idFrom;
    UINT       code;
} NMHDR;
#endif

/* CHARFORMAT structure */
typedef struct _charformat
{
    UINT       cbSize;
    DWORD      dwMask;
    DWORD      dwEffects;
    LONG       yHeight;
    LONG       yOffset;
    COLORREF   crTextColor;
    BYTE       bCharSet;
    BYTE       bPitchAndFamily;
    char       szFaceName[LF_FACESIZE];
} CHARFORMATA;

typedef struct _charformatw
{
    UINT       cbSize;
    DWORD      dwMask;
    DWORD      dwEffects;
    LONG       yHeight;
    LONG       yOffset;
    COLORREF   crTextColor;
    BYTE       bCharSet;
    BYTE       bPitchAndFamily;
    WCHAR      szFaceName[LF_FACESIZE];
} CHARFORMATW;

DECL_WINELIB_TYPE_AW(CHARFORMAT)

typedef struct _charformat2a {
    UINT       cbSize;
    DWORD      dwMask;
    DWORD      dwEffects;
    LONG       yHeight;
    LONG       yOffset;
    COLORREF   crTextColor;
    BYTE       bCharSet;
    BYTE       bPitchAndFamily;
    char       szFaceName[LF_FACESIZE];
    WORD       wWeight;
    SHORT      sSpacing;
    COLORREF   crBackColor;
    LCID       lcid;
    DWORD      dwReserved;
    SHORT      sStyle;
    WORD       wKerning;
    BYTE       bUnderlineType;
    BYTE       bAnimation;
    BYTE       bRevAuthor;
} CHARFORMAT2A;

typedef struct _charformat2w {
    UINT       cbSize;
    DWORD      dwMask;
    DWORD      dwEffects;
    LONG       yHeight;
    LONG       yOffset;
    COLORREF   crTextColor;
    BYTE       bCharSet;
    BYTE       bPitchAndFamily;
    WCHAR      szFaceName[LF_FACESIZE];
    WORD       wWeight;
    SHORT      sSpacing;
    COLORREF   crBackColor;
    LCID       lcid;
    DWORD      dwReserved;
    SHORT      sStyle;
    WORD       wKerning;
    BYTE       bUnderlineType;
    BYTE       bAnimation;
    BYTE       bRevAuthor;
} CHARFORMAT2W;

DECL_WINELIB_TYPE_AW(CHARFORMAT2)

#define CHARFORMATDELTA       (sizeof(CHARFORMAT2) - sizeof(CHARFORMAT))

/* CHARFORMAT masks */
#define CFM_BOLD              0x00000001
#define CFM_ITALIC            0x00000002
#define CFM_UNDERLINE         0x00000004
#define CFM_STRIKEOUT         0x00000008
#define CFM_PROTECTED         0x00000010
#define CFM_LINK              0x00000020
#define CFM_SMALLCAPS         0x00000040
#define CFM_ALLCAPS           0x00000080
#define CFM_HIDDEN            0x00000100
#define CFM_OUTLINE           0x00000200
#define CFM_SHADOW            0x00000400
#define CFM_EMBOSS            0x00000800
#define CFM_IMPRINT           0x00001000
#define CFM_DISABLED          0x00002000
#define CFM_REVISED           0x00004000
#define CFM_REVAUTHOR         0x00008000
#define CFM_SUBSCRIPT         0x00030000
#define CFM_SUPERSCRIPT       0x00030000
#define CFM_ANIMATION         0x00040000
#define CFM_STYLE             0x00080000
#define CFM_KERNING           0x00100000
#define CFM_SPACING           0x00200000
#define CFM_WEIGHT            0x00400000
#define CFM_UNDERLINETYPE     0x00800000
#define CFM_LCID              0x02000000
#define CFM_BACKCOLOR         0x04000000
#define CFM_CHARSET           0x08000000
#define CFM_OFFSET            0x10000000
#define CFM_FACE              0x20000000
#define CFM_COLOR             0x40000000
#define CFM_SIZE              0x80000000

#define CFM_EFFECTS           (CFM_BOLD | \
                               CFM_ITALIC | \
                               CFM_UNDERLINE | \
                               CFM_COLOR | \
                               CFM_STRIKEOUT | \
                               CFE_PROTECTED | \
                               CFM_LINK)

#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)

#define CFM_ALL               (CFM_EFFECTS | \
                               CFM_SIZE | \
                               CFM_FACE | \
                               CFM_OFFSET | \
                               CFM_CHARSET)

#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)

/* CHARFORMAT effects */
#define CFE_BOLD              0x00000001
#define CFE_ITALIC            0x00000002
#define CFE_UNDERLINE         0x00000004
#define CFE_STRIKEOUT         0x00000008
#define CFE_PROTECTED         0x00000010
#define CFE_LINK              0x00000020
#define CFE_SUBSCRIPT         0x00010000
#define CFE_SUPERSCRIPT       0x00020000
#define CFE_AUTOCOLOR         0x40000000

#define CFE_SMALLCAPS         CFM_SMALLCAPS
#define CFE_ALLCAPS           CFM_ALLCAPS
#define CFE_HIDDEN            CFM_HIDDEN
#define CFE_OUTLINE           CFM_OUTLINE
#define CFE_SHADOW            CFM_SHADOW
#define CFE_EMBOSS            CFM_EMBOSS
#define CFE_IMPRINT           CFM_IMPRINT
#define CFE_DISABLED          CFM_DISABLED
#define CFE_REVISED           CFM_REVISED
#define CFE_AUTOBACKCOLOR     CFM_BACKCOLOR

#define CFU_UNDERLINENONE             0x00
#define CFU_UNDERLINE                 0x01
#define CFU_UNDERLINEWORD             0x02
#define CFU_UNDERLINEDOUBLE           0x03
#define CFU_UNDERLINEDOTTED           0x04
#define CFU_UNDERLINEDASH             0x05
#define CFU_UNDERLINEDASHDOT          0x06
#define CFU_UNDERLINEDASHDOTDOT       0x07
#define CFU_UNDERLINEWAVE             0x08
#define CFU_UNDERLINETHICK            0x09
#define CFU_UNDERLINEHAIRLINE         0x0a
#define CFU_UNDERLINEDOUBLEWAVE       0x0b
#define CFU_UNDERLINEHEAVYWAVE        0x0c
#define CFU_UNDERLINELONGDASH         0x0d
#define CFU_UNDERLINETHICKDASH        0x0e
#define CFU_UNDERLINETHICKDASHDOT     0x0f
#define CFU_UNDERLINETHICKDASHDOTDOT  0x10
#define CFU_UNDERLINETHICKDOTTED      0x11
#define CFU_UNDERLINETHICKLONGDASH    0x12
#define CFU_INVERT                    0xFE
#define CFU_CF1UNDERLINE              0xFF

/* ECO operations */
#define ECOOP_SET             0x0001
#define ECOOP_OR              0x0002
#define ECOOP_AND             0x0003
#define ECOOP_XOR             0x0004

/* edit control options */
#define ECO_AUTOWORDSELECTION 0x00000001
#define ECO_AUTOVSCROLL       0x00000040
#define ECO_AUTOHSCROLL       0x00000080
#define ECO_NOHIDESEL         0x00000100
#define ECO_READONLY          0x00000800
#define ECO_WANTRETURN        0x00001000
#define ECO_SAVESEL           0x00008000
#define ECO_SELECTIONBAR      0x01000000
#define ECO_VERTICAL          0x00400000

/* Event notification masks */
#define ENM_NONE              0x00000000
#define ENM_CHANGE            0x00000001
#define ENM_UPDATE            0x00000002
#define ENM_SCROLL            0x00000004
#define ENM_SCROLLEVENTS      0x00000008
#define ENM_DRAGDROPDONE      0x00000010
#define ENM_PARAGRAPHEXPANDED 0x00000020
#define ENM_PAGECHANGE        0x00000040
#define ENM_KEYEVENTS         0x00010000
#define ENM_MOUSEEVENTS       0x00020000
#define ENM_REQUESTRESIZE     0x00040000
#define ENM_SELCHANGE         0x00080000
#define ENM_DROPFILES         0x00100000
#define ENM_PROTECTED         0x00200000
#define ENM_CORRECTTEXT       0x00400000
#define ENM_IMECHANGE         0x00800000
#define ENM_LANGCHANGE        0x01000000
#define ENM_OBJECTPOSITIONS   0x02000000
#define ENM_LINK              0x04000000
#define ENM_LOWFIRTF          0x08000000

typedef struct _bidioptions
{
    UINT    cbSize;
    WORD    wMask;
    WORD    wEffects;
} BIDIOPTIONS;

#ifndef __RICHEDIT_CHARRANGE_DEFINED
#define __RICHEDIT_CHARRANGE_DEFINED

typedef struct _charrange
{
    LONG    cpMin;
    LONG    cpMax;
} CHARRANGE;

#endif /* __RICHEDIT_CHARRANGE_DEFINED */

typedef struct _textrange
{
    CHARRANGE chrg;
    LPSTR     lpstrText;
} TEXTRANGEA;

typedef struct _textrangew
{
    CHARRANGE chrg;
    LPWSTR     lpstrText;
} TEXTRANGEW;

DECL_WINELIB_TYPE_AW(TEXTRANGE)

typedef struct _editstream
{
    DWORD_PTR		dwCookie;
    DWORD		dwError;
    EDITSTREAMCALLBACK	pfnCallback;
} EDITSTREAM;

typedef struct _compcolor {
    COLORREF   crText;
    COLORREF   crBackground;
    DWORD      dwEffects;
} COMPCOLOR;

typedef struct _encorrecttext {
    NMHDR      nmhdr;
    CHARRANGE  chrg;
    WORD       seltyp;
} ENCORRECTTEXT;

typedef struct _endropfiles {
    NMHDR      nmhdr;
    HANDLE     hDrop;
    LONG       cp;
    BOOL       fProtected;
} ENDROPFILES;

typedef struct _enlink {
    NMHDR      nmhdr;
    UINT       msg;
    WPARAM     wParam;
    LPARAM     lParam;
    CHARRANGE  chrg;
} ENLINK;

typedef struct _enlowfirtf {
    NMHDR      nmhdr;
    char       *szControl;
} ENLOWFIRTF;

typedef struct {
    NMHDR      nmhdr;
    LONG       iob;
    LONG       lOper;
    HRESULT    hr;
} ENOLEOPFAILED;

typedef struct _enprotected {
    NMHDR      nmhdr;
    UINT       msg;
    WPARAM     wParam;
    LPARAM     lParam;
    CHARRANGE  chrg;
} ENPROTECTED, *LPENPROTECTED;

typedef struct _ensaveclipboard {
    NMHDR      nmhdr;
    LONG       cObjectCount;
    LONG       cch;
} ENSAVECLIPBOARD;

typedef struct _findtextA {
    CHARRANGE  chrg;
    LPCSTR     lpstrText;
} FINDTEXTA;

typedef struct _findtextW {
    CHARRANGE  chrg;
    LPCWSTR    lpstrText;
} FINDTEXTW;

DECL_WINELIB_TYPE_AW(FINDTEXT)

typedef struct _findtextexA {
    CHARRANGE  chrg;
    LPCSTR     lpstrText;
    CHARRANGE  chrgText;
} FINDTEXTEXA;

typedef struct _findtextexW {
    CHARRANGE  chrg;
    LPCWSTR    lpstrText;
    CHARRANGE  chrgText;
} FINDTEXTEXW;

DECL_WINELIB_TYPE_AW(FINDTEXTEX)

typedef struct _formatrange {
    HDC        hdc;
    HDC        hdcTarget;
    RECT       rc;
    RECT       rcPage;
    CHARRANGE  chrg;
} FORMATRANGE;

typedef enum tagKHYPH
{
    khyphNil           = 0,
    khyphNormal        = 1,
    khyphAddBefore     = 2,
    khyphChangeBefore  = 3,
    khyphDeleteBefore  = 4,
    khyphChangeAfter   = 5,
    khyphDelAndChange  = 6
} KHYPH;

typedef struct hyphresult
{
    KHYPH      khyph;
    LONG       ichHyph;
    WCHAR      chHyph;
} HYPHRESULT;

typedef struct tagHyphenateInfo
{
    SHORT      cbSize;
    SHORT      dxHyphenateZone;
    void       (WINAPI* pfnHyphenate)(WCHAR*, LANGID, LONG, HYPHRESULT*);
} HYPHENATEINFO;

typedef struct _msgfilter {
    NMHDR      nmhdr;
    UINT       msg;
    WPARAM     wParam;
    LPARAM     lParam;
} MSGFILTER;

typedef struct _objectpositions {
    NMHDR      nmhdr;
    LONG       cObjectCount;
    LONG       *pcpPositions;
} OBJECTPOSITIONS;

typedef struct _paraformat {
    UINT       cbSize;
    DWORD      dwMask;
    WORD       wNumbering;
    WORD       wReserved;
    LONG       dxStartIndent;
    LONG       dxRightIndent;
    LONG       dxOffset;
    WORD       wAlignment;
    SHORT      cTabCount;
    LONG       rgxTabs[MAX_TAB_STOPS];
} PARAFORMAT;

typedef struct _paraformat2 {
    UINT       cbSize;
    DWORD      dwMask;
    WORD       wNumbering;
    WORD       wEffects;
    LONG       dxStartIndent;
    LONG       dxRightIndent;
    LONG       dxOffset;
    WORD       wAlignment;
    SHORT      cTabCount;
    LONG       rgxTabs[MAX_TAB_STOPS];
    LONG       dySpaceBefore, dySpaceAfter, dyLineSpacing;
    SHORT      sStyle;
    BYTE       bLineSpacingRule, bOutlineLevel;
    WORD       wShadingWeight, wShadingStyle;
    WORD       wNumberingStart, wNumberingStyle, wNumberingTab;
    WORD       wBorderSpace, wBorderWidth, wBorders;
} PARAFORMAT2;

typedef struct _selchange {
    NMHDR      nmhdr;
    CHARRANGE  chrg;
    WORD       seltyp;
} SELCHANGE;

typedef struct _reqresize {
    NMHDR      nmhdr;
    RECT       rc;
} REQRESIZE;

typedef struct _repastespecial {
    DWORD      dwAspect;
    DWORD_PTR  dwParam;
} REPASTESPECIAL;

typedef struct _punctuation {
    UINT       iSize;
    LPSTR      szPunctuation;
} PUNCTUATION;

typedef struct _gettextex {
    DWORD      cb;
    DWORD      flags;
    UINT       codepage;
    LPCSTR     lpDefaultChar;
    LPBOOL     lpUsedDefChar;
} GETTEXTEX;

typedef struct _imecomptext {
    LONG       cb;
    DWORD      flags;
} IMECOMPTEXT;

void WINAPI HyphenateProc(WCHAR*, LANGID, LONG, HYPHRESULT*);

#define SF_TEXT		      0x00000001
#define SF_RTF		      0x00000002
#define SF_RTFNOOBJS	      0x00000003
#define SF_TEXTIZED	      0x00000004
#define SF_UNICODE            0x00000010
#define SF_USECODEPAGE        0x00000020
#define SF_NCRFORNONASCII     0x00000040
#define SF_RTFVAL             0x00000700

/* BIDIOPTIONS.wMask flag values */
#define BOM_DEFPARADIR        0x00000001
#define BOM_PLAINTEXT         0x00000002
#define BOM_NEUTRALOVERRIDE   0x00000004
#define BOM_CONTEXTREADING    0x00000008
#define BOM_CONTEXTALIGNMENT  0x00000010
#define BOM_LEGACYBIDICLASS   0x00000040

/* BIDIOPTIONS.wEffects flag values */
#define BOE_RTLDIR            0x00000001
#define BOE_PLAINTEXT         0x00000002
#define BOE_NEUTRALOVERRIDE   0x00000004
#define BOE_CONTEXTREADING    0x00000008
#define BOE_CONTEXTALIGNMENT  0x00000010
#define BOE_LEGACYBIDICLASS   0x00000040

/* Clipboard formats */
#define CF_RTF          TEXT("Rich Text Format")
#define CF_RTFNOOBJS    TEXT("Rich Text Format Without Objects")
#define CF_RETEXTOBJ    TEXT("RichEdit Text and Objects")

/* Mode bias wParam values for EM_SETCTFMODEBIAS message */
#define CTFMODEBIAS_DEFAULT                0x00000000
#define CTFMODEBIAS_FILENAME               0x00000001
#define CTFMODEBIAS_NAME                   0x00000002
#define CTFMODEBIAS_READING                0x00000003
#define CTFMODEBIAS_DATETIME               0x00000004
#define CTFMODEBIAS_CONVERSATION           0x00000005
#define CTFMODEBIAS_NUMERIC                0x00000006
#define CTFMODEBIAS_HIRAGANA               0x00000007
#define CTFMODEBIAS_KATAKANA               0x00000008
#define CTFMODEBIAS_HANGUL                 0x00000009
#define CTFMODEBIAS_HALFWIDTHKATAKANA      0x0000000a
#define CTFMODEBIAS_FULLWIDTHALPHANUMERIC  0x0000000b
#define CTFMODEBIAS_HALFWIDTHALPHANUMERIC  0x0000000c

#define EMO_EXIT              0x00000000
#define EMO_ENTER             0x00000001
#define EMO_PROMOTE           0x00000002
#define EMO_EXPAND            0x00000003
#define EMO_MOVESELECTION     0x00000004
#define EMO_GETVIEWMODE       0x00000005

#define EMO_EXPANDSELECTION   0x00000000
#define EMO_EXPANDDOCUMENT    0x00000001

/* Page Rotate values used in wParam of EM_SETPAGEROTATE message */
#define EPR_0                 0x00000000
#define EPR_270               0x00000001
#define EPR_180               0x00000002
#define EPR_90                0x00000003

/* Find flags for wParam of EM_FINDTEXT message */
#define FR_MATCHDIAC          0x20000000
#define FR_MATCHKASHIDA       0x40000000
#define FR_MATCHALEFHAMZA     0x80000000

/* IME Compatibility Mode return values for EM_GETIMECOMPMODE message */
#define ICM_NOTOPEN           0x00000000
#define ICM_LEVEL3            0x00000001
#define ICM_LEVEL2            0x00000002
#define ICM_LEVEL2_5          0x00000003
#define ICM_LEVEL2_SUI        0x00000004
#define ICM_CTF               0x00000005

/* Flags value for IMECOMPTEXT structure */
#define ICT_RESULTREADSTR     0x00000001

/* Input Method Flags used in EM_SETLANGOPTIONS message */
#define IMF_AUTOKEYBOARD        0x00000001
#define IMF_AUTOFONT            0x00000002
#define IMF_IMECANCELCOMPLETE   0x00000004
#define IMF_IMEALWAYSSENDNOTIFY 0x00000008
#define IMF_AUTOFONTSIZEADJUST  0x00000010
#define IMF_UIFONTS             0x00000020
#define IMF_DUALFONT            0x00000080

/* Parameters values for the EM_SETIMEMODEBIAS message */
#define IMF_SMODE_PLAURALCLAUSE 0x00000001
#define IMF_SMODE_NONE          0x00000002

/* Parameters of the EM_SETIMEOPTIONS message */
#define IMF_FORCENONE         0x00000001
#define IMF_FORCEENABLE       0x00000002
#define IMF_FORCEDISABLE      0x00000004
#define IMF_CLOSESTATUSWINDOW 0x00000008
#define IMF_VERTICAL          0x00000020
#define IMF_FORCEACTIVE       0x00000040
#define IMF_FORCEINACTIVE     0x00000080
#define IMF_FORCEREMEMBER     0x00000100
#define IMF_MULTIPLEEDIT      0x00000400

/* return values of the EM_SELECTION_TYPE message */
#define SEL_EMPTY             0x00000000
#define SEL_TEXT              0x00000001
#define SEL_OBJECT            0x00000002
#define SEL_MULTICHAR         0x00000004
#define SEL_MULTIOBJECT       0x00000008

/* ENOLEOPFAILED.lOper value that indicates operation failure */
#define OLEOP_DOVERB          0x00000001

/* punctionation type values for wParam of EM_SETPUNCTUATION message */
#define PC_FOLLOWING          0x00000001
#define PC_LEADING            0x00000002
#define PC_OVERFLOW           0x00000003
#define PC_DELIMITER          0x00000004

/* mask values in the PARAFORMAT structure */
#define PFM_STARTINDENT       0x00000001
#define PFM_RIGHTINDENT       0x00000002
#define PFM_OFFSET            0x00000004
#define PFM_ALIGNMENT         0x00000008
#define PFM_TABSTOPS          0x00000010
#define PFM_NUMBERING         0x00000020
#define PFM_OFFSETINDENT      0x80000000

/* mask values in the PARAFORMAT2 structure */
#define PFM_SPACEBEFORE       0x00000040
#define PFM_SPACEAFTER        0x00000080
#define PFM_LINESPACING       0x00000100
#define PFM_STYLE             0x00000400
#define PFM_BORDER            0x00000800
#define PFM_SHADING           0x00001000
#define PFM_NUMBERINGSTYLE    0x00002000
#define PFM_NUMBERINGTAB      0x00004000
#define PFM_NUMBERINGSTART    0x00008000
#define PFM_RTLPARA           0x00010000
#define PFM_KEEP              0x00020000
#define PFM_KEEPNEXT          0x00040000
#define PFM_PAGEBREAKBEFORE   0x00080000
#define PFM_NOLINENUMBER      0x00100000
#define PFM_NOWIDOWCONTROL    0x00200000
#define PFM_DONOTHYPHEN       0x00400000
#define PFM_SIDEBYSIDE        0x00800000
#define PFM_COLLAPSED         0x01000000
#define PFM_OUTLINELEVEL      0x02000000
#define PFM_BOX               0x04000000
#define PFM_RESERVED2         0x08000000
#define PFM_TABLEROWDELIMITER 0x10000000
#define PFM_TEXTWRAPPINGBREAK 0x20000000
#define PFM_TABLE             0x40000000

#define PFM_ALL               (PFM_STARTINDENT | \
                               PFM_RIGHTINDENT | \
                               PFM_OFFSET | \
                               PFM_ALIGNMENT | \
                               PFM_TABSTOPS | \
                               PFM_NUMBERING | \
                               PFM_OFFSETINDENT | \
                               PFM_RTLPARA)

#define PFM_EFFECTS           (PFM_RTLPARA | \
                               PFM_KEEP | \
                               PFM_KEEPNEXT | \
                               PFM_PAGEBREAKBEFORE | \
                               PFM_NOLINENUMBER | \
                               PFM_NOWIDOWCONTROL | \
                               PFM_DONOTHYPHEN | \
                               PFM_SIDEBYSIDE | \
                               PFM_TABLEROWDELIMITER | \
                               PFM_TABLE)

#define PFM_ALL2              (PFM_ALL | \
                               PFM_EFFECTS | \
                               PFM_SPACEBEFORE | \
                               PFM_SPACEAFTER | \
                               PFM_LINESPACING | \
                               PFM_STYLE | \
                               PFM_BORDER | \
                               PFM_SHADING | \
                               PFM_NUMBERINGSTYLE | \
                               PFM_NUMBERINGTAB | \
                               PFM_NUMBERINGSTART)

/* numbering option */
#define PFN_BULLET            0x00000001
#define PFN_ARABIC            0x00000002
#define PFN_LCLETTER          0x00000003
#define PFN_UCLETTER          0x00000004
#define PFN_LCROMAN           0x00000005
#define PFN_UCROMAN           0x00000006

/* paragraph format numbering styles */
#define PFNS_PAREN            0x00000000
#define PFNS_PARENS           0x00000100
#define PFNS_PERIOD           0x00000200
#define PFNS_PLAIN            0x00000300
#define PFNS_NONUMBER         0x00000400
#define PFNS_NEWNUMBER        0x00008000

/* paragraph alignment */
#define PFA_LEFT              0x00000001
#define PFA_RIGHT             0x00000002
#define PFA_CENTER            0x00000003
#define PFA_JUSTIFY           0x00000004
#define PFA_FULL_INTERWORD    0x00000004
#define PFA_FULL_INTERLETTER  0x00000005
#define PFA_FULL_SCALED       0x00000006
#define PFA_FULL_GLYPHS       0x00000007
#define PFA_SNAP_GRID         0x00000008

/* paragraph effects */
#define PFE_RTLPARA           0x00000001
#define PFE_KEEP              0x00000002
#define PFE_KEEPNEXT          0x00000004
#define PFE_PAGEBREAKBEFORE   0x00000008
#define PFE_NOLINENUMBER      0x00000010
#define PFE_NOWIDOWCONTROL    0x00000020
#define PFE_DONOTHYPHEN       0x00000040
#define PFE_SIDEBYSIDE        0x00000080
#define PFE_COLLAPSED         0x00000100
#define PFE_BOX               0x00000400
#define PFE_TABLEROWDELIMITER 0x00001000
#define PFE_TEXTWRAPPINGBREAK 0x00002000
#define PFE_TABLE             0x00004000

/* Set Edit Style flags for EM_SETEDITSTYLE message */
#define SES_EMULATESYSEDIT      0x00000001
#define SES_BEEPONMAXTEXT       0x00000002
#define SES_EXTENDBACKCOLOR     0x00000004
#define SES_MAPCPS              0x00000008
#define SES_EMULATE10           0x00000010
#define SES_USECRLF             0x00000020
#define SES_NOXLTSYMBOLRANGE    0x00000020
#define SES_USEAIMM             0x00000040
#define SES_NOIME               0x00000080
#define SES_ALLOWBEEPS          0x00000100
#define SES_UPPERCASE           0x00000200
#define SES_LOWERCASE           0x00000400
#define SES_NOINPUTSEQUENCECHK  0x00000800
#define SES_BIDI                0x00001000
#define SES_SCROLLONKILLFOCUS   0x00002000
#define SES_XLTCRCRLFTOCR       0x00004000
#define SES_DRAFTMODE           0x00008000
#define SES_USECTF              0x00010000
#define SES_HIDEGRIDLINES       0x00020000
#define SES_USEATFONT           0x00040000
#define SES_CUSTOMLOOK          0x00080000
#define SES_LBSCROLLNOTIFY      0x00100000
#define SES_CTFALLOWEMBED       0x00200000
#define SES_CTFALLOWSMARTTAG    0x00400000
#define SES_CTFALLOWPROOFING    0x00800000

/* streaming flags */
#define SFF_WRITEXTRAPAR      0x00000080
#define SFF_PWD               0x00000800
#define SFF_KEEPDOCINFO       0x00001000
#define SFF_PERSISTVIEWSCALE  0x00002000
#define SFF_PLAINRTF          0x00004000
#define SFF_SELECTION         0x00008000

typedef enum _undonameid
{
    UID_UNKNOWN     = 0,
    UID_TYPING      = 1,
    UID_DELETE      = 2,
    UID_DRAGDROP    = 3,
    UID_CUT         = 4,
    UID_PASTE       = 5,
    UID_AUTOCORRECT = 6
} UNDONAMEID;

typedef LONG (*EDITWORDBREAKPROCEX)(char*,LONG,BYTE,INT);

#define VM_OUTLINE            0x00000002
#define VM_NORMAL             0x00000004
#define VM_PAGE               0x00000009

/* options of the EM_FINDWORDBREAK message */
#define WB_CLASSIFY           0x00000003
#define WB_MOVEWORDLEFT       0x00000004
#define WB_MOVEWORDPREV       0x00000004
#define WB_MOVEWORDRIGHT      0x00000005
#define WB_MOVEWORDNEXT       0x00000005
#define WB_LEFTBREAK          0x00000006
#define WB_PREVBREAK          0x00000006
#define WB_RIGHTBREAK         0x00000007
#define WB_NEXTBREAK          0x00000007

/* options of the EM_SETWORDWRAPMODE message */
#define WBF_WORDWRAP          0x00000010
#define WBF_WORDBREAK         0x00000020
#define WBF_OVERFLOW          0x00000040
#define WBF_LEVEL1            0x00000080
#define WBF_LEVEL2            0x00000100
#define WBF_CUSTOM            0x00000200

#define WBF_CLASS             ((BYTE) 0x0F)
#define WBF_ISWHITE           ((BYTE) 0x10)
#define WBF_BREAKLINE         ((BYTE) 0x20)
#define WBF_BREAKAFTER        ((BYTE) 0x40)

/* Placeholder unicode character for an embedded object */
#ifndef WCH_EMBEDDING
#define WCH_EMBEDDING         (WCHAR)0xFFFC
#endif

/* options of the EM_SETTEXTMODE message */
#define TM_PLAINTEXT          0x00000001
#define TM_RICHTEXT           0x00000002
#define TM_SINGLELEVELUNDO    0x00000004
#define TM_MULTILEVELUNDO     0x00000008
#define TM_SINGLECODEPAGE     0x00000010
#define TM_MULTICODEPAGE      0x00000020

/* GETTEXTEX structure flags */
#define GT_DEFAULT            0x00000000
#define GT_USECRLF            0x00000001
#define GT_SELECTION          0x00000002
#define GT_RAWTEXT            0x00000004
#define GT_NOHIDDENTEXT       0x00000008

/* Options of the EM_SETTYPOGRAPHYOPTIONS message */
#define TO_ADVANCEDTYPOGRAPHY   0x00000001
#define TO_SIMPLELINEBREAK      0x00000002
#define TO_DISABLECUSTOMTEXTOUT 0x00000004
#define TO_ADVANCEDLAYOUT       0x00000008

typedef struct _gettextlengthex {
    DWORD      flags;
    UINT       codepage;
} GETTEXTLENGTHEX;

/* Flags of the GETTEXTLENGTHEX structure */
#define GTL_DEFAULT           0x00000000
#define GTL_USECRLF           0x00000001
#define GTL_PRECISE           0x00000002
#define GTL_CLOSE             0x00000004
#define GTL_NUMCHARS          0x00000008
#define GTL_NUMBYTES          0x00000010

#define GCM_RIGHTMOUSEDROP    0x8000

/* Options of the EM_SETTEXTEX message */
typedef struct _settextex {
    DWORD	flags;
    UINT	codepage;
} SETTEXTEX;

/* Flags of the EM_SETTEXTEX message */
#define ST_DEFAULT	      0x00000000	
#define ST_KEEPUNDO           0x00000001
#define ST_SELECTION          0x00000002
#define ST_NEWCHARS           0x00000004
#define ST_UNICODE            0x00000008

#ifdef __cplusplus
}
#endif

#include <poppack.h>

#endif /* __WINE_RICHEDIT_H */