root/trunk/win32/richedit.d

Revision 380, 13.5 kB (checked in by Zone, 2 months ago)

Adding the missing bits and pieces (primarily vista/7 enums etc) required to compile the D port of the WTL that I am working on

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