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