OSDN Git Service

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