source: trunk/include/win/richedit.h

Last change on this file was 21503, checked in by dmik, 15 years ago

GETTEXTEX::lpUsedDefaultChar should be lpUsedDefChar according to Win32 SDK.

File size: 17.3 KB
Line 
1/*
2 * Copyright (C) 2000 Jean-Claude Batista
3 * Copyright (C) 2002 Andriy Palamarchuk
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 */
19
20#ifndef __WINE_RICHEDIT_H
21#define __WINE_RICHEDIT_H
22
23#include "pshpack4.h"
24
25#ifdef __cplusplus
26extern "C" {
27#endif
28
29#ifndef _RICHEDIT_VER
30#define _RICHEDIT_VER 0x0210
31#endif /* _RICHEDIT_VER */
32
33#define cchTextLimitDefault 0x7fff
34
35#define RICHEDIT_CLASS20A "RichEdit20A"
36#if defined(__GNUC__)
37# define RICHEDIT_CLASS20W (const WCHAR []){ 'R','i','c','h','E','d','i','t','2','0','W',0 }
38#elif defined(_MSC_VER)
39# define RICHEDIT_CLASS20W L"RichEdit20W"
40#else
41static const WCHAR RICHEDIT_CLASS20W[] = { 'R','i','c','h','E','d','i','t','2','0','W',0 };
42#endif
43#define RICHEDIT_CLASS10A "RICHEDIT"
44
45#if (_RICHEDIT_VER >= 0x0200 )
46#define RICHEDIT_CLASS WINELIB_NAME_AW(RICHEDIT_CLASS20)
47#else
48#define RICHEDIT_CLASS RICHEDIT_CLASS10A
49#endif
50
51#define EM_CANPASTE (WM_USER + 50)
52#define EM_DISPLAYBAND (WM_USER + 51)
53#define EM_EXGETSEL (WM_USER + 52)
54#define EM_EXLIMITTEXT (WM_USER + 53)
55#define EM_EXLINEFROMCHAR (WM_USER + 54)
56#define EM_EXSETSEL (WM_USER + 55)
57#define EM_FINDTEXT (WM_USER + 56)
58#define EM_FORMATRANGE (WM_USER + 57)
59#define EM_GETCHARFORMAT (WM_USER + 58)
60#define EM_GETEVENTMASK (WM_USER + 59)
61#define EM_GETOLEINTERFACE (WM_USER + 60)
62#define EM_GETPARAFORMAT (WM_USER + 61)
63#define EM_GETSELTEXT (WM_USER + 62)
64#define EM_HIDESELECTION (WM_USER + 63)
65#define EM_PASTESPECIAL (WM_USER + 64)
66#define EM_REQUESTRESIZE (WM_USER + 65)
67#define EM_SELECTIONTYPE (WM_USER + 66)
68#define EM_SETBKGNDCOLOR (WM_USER + 67)
69#define EM_SETCHARFORMAT (WM_USER + 68)
70#define EM_SETEVENTMASK (WM_USER + 69)
71#define EM_SETOLECALLBACK (WM_USER + 70)
72#define EM_SETPARAFORMAT (WM_USER + 71)
73#define EM_SETTARGETDEVICE (WM_USER + 72)
74#define EM_STREAMIN (WM_USER + 73)
75#define EM_STREAMOUT (WM_USER + 74)
76#define EM_GETTEXTRANGE (WM_USER + 75)
77#define EM_FINDWORDBREAK (WM_USER + 76)
78#define EM_SETOPTIONS (WM_USER + 77)
79#define EM_GETOPTIONS (WM_USER + 78)
80#define EM_FINDTEXTEX (WM_USER + 79)
81#define EM_GETWORDBREAKPROCEX (WM_USER + 80)
82#define EM_SETWORDBREAKPROCEX (WM_USER + 81)
83
84#define EM_SETUNDOLIMIT (WM_USER + 82)
85#define EM_REDO (WM_USER + 84)
86#define EM_CANREDO (WM_USER + 85)
87#define EM_GETUNDONAME (WM_USER + 86)
88#define EM_GETREDONAME (WM_USER + 87)
89#define EM_STOPGROUPTYPING (WM_USER + 88)
90
91#define EM_SETTEXTMODE (WM_USER + 89)
92#define EM_GETTEXTMODE (WM_USER + 90)
93#define EM_AUTOURLDETECT (WM_USER + 91)
94#define EM_GETAUTOURLDETECT (WM_USER + 92)
95#define EM_SETPALETTE (WM_USER + 93)
96#define EM_GETTEXTEX (WM_USER + 94)
97#define EM_GETTEXTLENGTHEX (WM_USER + 95)
98#define EM_SHOWSCROLLBAR (WM_USER + 96)
99#define EM_SETTEXTEX (WM_USER + 97)
100
101#define EM_SETPUNCTUATION (WM_USER + 100)
102#define EM_GETPUNCTUATION (WM_USER + 101)
103#define EM_SETWORDWRAPMODE (WM_USER + 102)
104#define EM_GETWORDWRAPMODE (WM_USER + 103)
105#define EM_SETIMECOLOR (WM_USER + 104)
106#define EM_GETIMECOLOR (WM_USER + 105)
107#define EM_SETIMEOPTIONS (WM_USER + 106)
108#define EM_GETIMEOPTIONS (WM_USER + 107)
109#define EM_CONVPOSITION (WM_USER + 108)
110
111#define EM_SETLANGOPTIONS (WM_USER + 120)
112#define EM_GETLANGOPTIONS (WM_USER + 121)
113#define EM_GETIMECOMPMODE (WM_USER + 122)
114
115#define EM_SETLANGOPTIONS (WM_USER + 120)
116#define EM_GETLANGOPTIONS (WM_USER + 121)
117#define EM_GETIMECOMPMODE (WM_USER + 122)
118
119#define EM_FINDTEXTW (WM_USER + 123)
120#define EM_FINDTEXTEXW (WM_USER + 124)
121
122#define EM_RECONVERSION (WM_USER + 125)
123#define EM_SETIMEMODEBIAS (WM_USER + 126)
124#define EM_GETIMEMODEBIAS (WM_USER + 127)
125
126#define EM_SETBIDIOPTIONS (WM_USER + 200)
127#define EM_GETBIDIOPTIONS (WM_USER + 201)
128
129#define EM_SETTYPOGRAPHYOPTIONS (WM_USER + 202)
130#define EM_GETTYPOGRAPHYOPTIONS (WM_USER + 203)
131
132#define EM_SETEDITSTYLE (WM_USER + 204)
133#define EM_GETEDITSTYLE (WM_USER + 205)
134
135#define EM_OUTLINE (WM_USER + 220)
136
137#define EM_GETSCROLLPOS (WM_USER + 221)
138#define EM_SETSCROLLPOS (WM_USER + 222)
139
140#define EM_SETFONTSIZE (WM_USER + 223)
141#define EM_GETZOOM (WM_USER + 224)
142#define EM_SETZOOM (WM_USER + 225)
143
144/* New notifications */
145#define EN_MSGFILTER 0x0700
146#define EN_REQUESTRESIZE 0x0701
147#define EN_SELCHANGE 0x0702
148#define EN_DROPFILES 0x0703
149#define EN_PROTECTED 0x0704
150#define EN_CORRECTTEXT 0x0705
151#define EN_STOPNOUNDO 0x0706
152#define EN_IMECHANGE 0x0707
153#define EN_SAVECLIPBOARD 0x0708
154#define EN_OLEOPFAILED 0x0709
155#define EN_OBJECTPOSITIONS 0x070a
156#define EN_LINK 0x070b
157#define EN_DRAGDROPDONE 0x070c
158#define EN_PARAGRAPHEXPANDED 0x070d
159#define EN_ALIGNLTR 0x0710
160#define EN_ALIGNRTL 0x0711
161
162
163#ifdef __WIN32OS2__
164typedef DWORD (* CALLBACK EDITSTREAMCALLBACK)( DWORD, LPBYTE, LONG, LONG * );
165#else
166typedef DWORD (CALLBACK * EDITSTREAMCALLBACK)( DWORD, LPBYTE, LONG, LONG * );
167#endif
168/* tab stops number limit */
169#define MAX_TAB_STOPS 0x00000020
170
171/* Rich edit control styles */
172#define ES_DISABLENOSCROLL 0x00002000
173#define ES_SUNKEN 0x00004000
174#define ES_SAVESEL 0x00008000
175#define ES_SELFIME 0x00040000
176#define ES_NOIME 0x00080000
177#define ES_VERTICAL 0x00400000
178#define ES_EX_NOCALLOLEINIT 0x01000000
179
180/* the character formatting options */
181#define SCF_DEFAULT 0x00000000
182#define SCF_SELECTION 0x00000001
183#define SCF_WORD 0x00000002
184#define SCF_ALL 0x00000004
185#define SCF_USEUIRULES 0x00000008
186
187/* CHARFORMAT structure */
188typedef struct _charformat
189{
190 UINT cbSize;
191 DWORD dwMask;
192 DWORD dwEffects;
193 LONG yHeight;
194 LONG yOffset;
195 COLORREF crTextColor;
196 BYTE bCharSet;
197 BYTE bPitchAndFamily;
198 char szFaceName[LF_FACESIZE];
199} CHARFORMATA;
200
201typedef struct _charformatw
202{
203 UINT cbSize;
204 DWORD dwMask;
205 DWORD dwEffects;
206 LONG yHeight;
207 LONG yOffset;
208 COLORREF crTextColor;
209 BYTE bCharSet;
210 BYTE bPitchAndFamily;
211 WCHAR szFaceName[LF_FACESIZE];
212} CHARFORMATW;
213
214DECL_WINELIB_TYPE_AW(CHARFORMAT)
215
216typedef struct _charformat2a {
217 UINT cbSize;
218 DWORD dwMask;
219 DWORD dwEffects;
220 LONG yHeight;
221 LONG yOffset;
222 COLORREF crTextColor;
223 BYTE bCharSet;
224 BYTE bPitchAndFamily;
225 char szFaceName[LF_FACESIZE];
226 WORD wWeight;
227 SHORT sSpacing;
228 COLORREF crBackColor;
229 LCID lcid;
230 DWORD dwReserved;
231 SHORT sStyle;
232 WORD wKerning;
233 BYTE bUnderlineType;
234 BYTE bAnimation;
235 BYTE bRevAuthor;
236} CHARFORMAT2A;
237
238typedef struct _charformat2w {
239 UINT cbSize;
240 DWORD dwMask;
241 DWORD dwEffects;
242 LONG yHeight;
243 LONG yOffset;
244 COLORREF crTextColor;
245 BYTE bCharSet;
246 BYTE bPitchAndFamily;
247 WCHAR szFaceName[LF_FACESIZE];
248 WORD wWeight;
249 SHORT sSpacing;
250 COLORREF crBackColor;
251 LCID lcid;
252 DWORD dwReserved;
253 SHORT sStyle;
254 WORD wKerning;
255 BYTE bUnderlineType;
256 BYTE bAnimation;
257 BYTE bRevAuthor;
258} CHARFORMAT2W;
259
260DECL_WINELIB_TYPE_AW(CHARFORMAT2)
261
262/* CHARFORMAT masks */
263#define CFM_BOLD 0x00000001
264#define CFM_ITALIC 0x00000002
265#define CFM_UNDERLINE 0x00000004
266#define CFM_STRIKEOUT 0x00000008
267#define CFM_PROTECTED 0x00000010
268#define CFM_LINK 0x00000020
269#define CFM_SMALLCAPS 0x00000040
270#define CFM_ALLCAPS 0x00000080
271#define CFM_HIDDEN 0x00000100
272#define CFM_OUTLINE 0x00000200
273#define CFM_SHADOW 0x00000400
274#define CFM_EMBOSS 0x00000800
275#define CFM_IMPRINT 0x00001000
276#define CFM_DISABLED 0x00002000
277#define CFM_REVISED 0x00004000
278#define CFM_REVAUTHOR 0x00008000
279#define CFM_SUBSCRIPT 0x00030000
280#define CFM_SUPERSCRIPT 0x00030000
281#define CFM_ANIMATION 0x00040000
282#define CFM_STYLE 0x00080000
283#define CFM_KERNING 0x00100000
284#define CFM_SPACING 0x00200000
285#define CFM_WEIGHT 0x00400000
286#define CFM_LCID 0x02000000
287#define CFM_BACKCOLOR 0x04000000
288#define CFM_CHARSET 0x08000000
289#define CFM_OFFSET 0x10000000
290#define CFM_FACE 0x20000000
291#define CFM_COLOR 0x40000000
292#define CFM_SIZE 0x80000000
293#define CFM_EFFECTS (CFM_BOLD | CFM_ITALIC | CFM_UNDERLINE | CFM_COLOR | CFM_STRIKEOUT | CFE_PROTECTED | CFM_LINK)
294
295/* CHARFORMAT effects */
296#define CFE_BOLD 0x00000001
297#define CFE_ITALIC 0x00000002
298#define CFE_UNDERLINE 0x00000004
299#define CFE_STRIKEOUT 0x00000008
300#define CFE_PROTECTED 0x00000010
301#define CFE_SUBSCRIPT 0x00010000
302#define CFE_SUPERSCRIPT 0x00020000
303#define CFE_AUTOCOLOR 0x40000000
304
305#define CFE_AUTOBACKCOLOR CFM_BACKCOLOR
306
307/* ECO operations */
308#define ECOOP_SET 0x0001
309#define ECOOP_OR 0x0002
310#define ECOOP_AND 0x0003
311#define ECOOP_XOR 0x0004
312
313/* edit control options */
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/* Event notification masks */
325#define ENM_NONE 0x00000000
326#define ENM_CHANGE 0x00000001
327#define ENM_UPDATE 0x00000002
328#define ENM_SCROLL 0x00000004
329#define ENM_KEYEVENTS 0x00010000
330#define ENM_MOUSEEVENTS 0x00020000
331#define ENM_REQUESTRESIZE 0x00040000
332#define ENM_SELCHANGE 0x00080000
333#define ENM_DROPFILES 0x00100000
334#define ENM_PROTECTED 0x00200000
335#define ENM_CORRECTTEXT 0x00400000
336#define ENM_IMECHANGE 0x00800000
337#define ENM_LINK 0x04000000
338
339typedef struct _charrange
340{
341 LONG cpMin;
342 LONG cpMax;
343} CHARRANGE;
344
345typedef struct _textrange
346{
347 CHARRANGE chrg;
348 LPSTR lpstrText;
349} TEXTRANGEA;
350
351typedef struct _textrangew
352{
353 CHARRANGE chrg;
354 LPWSTR lpstrText;
355} TEXTRANGEW;
356
357DECL_WINELIB_TYPE_AW(TEXTRANGE)
358
359typedef struct _editstream
360{
361 DWORD dwCookie;
362 DWORD dwError;
363 EDITSTREAMCALLBACK pfnCallback;
364} EDITSTREAM;
365
366typedef struct _compcolor {
367 COLORREF crText;
368 COLORREF crBackground;
369 DWORD dwEffects;
370} COMPCOLOR;
371
372typedef struct _encorrecttext {
373 NMHDR nmhdr;
374 CHARRANGE chrg;
375 WORD seltyp;
376} ENCORRECTTEXT;
377
378typedef struct _endropfiles {
379 NMHDR nmhdr;
380 HANDLE hDrop;
381 LONG cp;
382 BOOL fProtected;
383} ENDROPFILES;
384
385typedef struct _enlink {
386 NMHDR nmhdr;
387 UINT msg;
388 WPARAM wParam;
389 LPARAM lParam;
390 CHARRANGE chrg;
391} ENLINK;
392
393typedef struct {
394 NMHDR nmhdr;
395 LONG iob;
396 LONG lOper;
397 HRESULT hr;
398} ENOLEOPFAILED;
399
400typedef struct _enprotected {
401 NMHDR nmhdr;
402 UINT msg;
403 WPARAM wParam;
404 LPARAM lParam;
405 CHARRANGE chrg;
406} ENPROTECTED, *LPENPROTECTED;
407
408typedef struct _ensaveclipboard {
409 NMHDR nmhdr;
410 LONG cObjectCount;
411 LONG cch;
412} ENSAVECLIPBOARD;
413
414typedef struct _findtextA {
415 CHARRANGE chrg;
416 LPSTR lpstrText;
417} FINDTEXTA;
418
419typedef struct _findtextW {
420 CHARRANGE chrg;
421 LPWSTR lpstrText;
422} FINDTEXTW;
423
424DECL_WINELIB_TYPE_AW(FINDTEXT);
425
426typedef struct _findtextexA {
427 CHARRANGE chrg;
428 LPSTR lpstrText;
429 CHARRANGE chrgText;
430} FINDTEXTEXA;
431
432typedef struct _findtextexW {
433 CHARRANGE chrg;
434 LPWSTR lpstrText;
435 CHARRANGE chrgText;
436} FINDTEXTEXW;
437
438DECL_WINELIB_TYPE_AW(FINDTEXTEX);
439
440typedef struct _formatrange {
441 HDC hdc;
442 HDC hdcTarget;
443 RECT rc;
444 RECT rcPage;
445 CHARRANGE chrg;
446} FORMATRANGE;
447
448typedef struct _msgfilter {
449 NMHDR nmhdr;
450 UINT msg;
451 WPARAM wParam;
452 LPARAM lParam;
453} MSGFILTER;
454
455typedef struct _paraformat {
456 UINT cbSize;
457 DWORD dwMask;
458 WORD wNumbering;
459 WORD wReserved;
460 LONG dxStartIndent;
461 LONG dxRightIndent;
462 LONG dxOffset;
463 WORD wAlignment;
464 SHORT cTabCount;
465 LONG rgxTabs[MAX_TAB_STOPS];
466} PARAFORMAT;
467
468typedef struct _selchange {
469 NMHDR nmhdr;
470 CHARRANGE chrg;
471 WORD seltyp;
472} SELCHANGE;
473
474typedef struct _reqresize {
475 NMHDR nmhdr;
476 RECT rc;
477} REQRESIZE;
478
479typedef struct _repastespecial {
480 DWORD dwAspect;
481 DWORD dwParam;
482} REPASTESPECIAL;
483
484typedef struct _punctuation {
485 UINT iSize;
486 LPSTR szPunctuation;
487} PUNCTUATION;
488
489typedef struct _gettextex {
490 DWORD cb;
491 DWORD flags;
492 UINT codepage;
493 LPCSTR lpDefaultChar;
494 LPBOOL lpUsedDefChar;
495} GETTEXTEX;
496
497#define SF_TEXT 0x00000001
498#define SF_RTF 0x00000002
499#define SF_RTFNOOBJS 0x00000003
500#define SF_TEXTIZED 0x00000004
501#define SF_UNICODE 0x00000010
502#define SF_USECODEPAGE 0x00000020
503#define SF_NCRFORNONASCII 0x00000040
504#define SF_RTFVAL 0x00000700
505
506/* Clipboard formats */
507#define CF_RTF TEXT("Rich Text Format")
508#define CF_RTFNOOBJS TEXT("Rich Text Format Without Objects")
509#define CF_RETEXTOBJ TEXT("RichEdit Text and Objects")
510
511
512/* Parameters of the EM_SETIMEOPTIONS message */
513#define IMF_FORCENONE 0x00000001
514#define IMF_FORCEENABLE 0x00000002
515#define IMF_FORCEDISABLE 0x00000004
516#define IMF_CLOSESTATUSWINDOW 0x00000008
517#define IMF_VERTICAL 0x00000020
518#define IMF_FORCEACTIVE 0x00000040
519#define IMF_FORCEINACTIVE 0x00000080
520#define IMF_FORCEREMEMBER 0x00000100
521
522/* return values of the EM_SELECTION_TYPE message */
523#define SEL_EMPTY 0x00000000
524#define SEL_TEXT 0x00000001
525#define SEL_OBJECT 0x00000002
526#define SEL_MULTICHAR 0x00000004
527#define SEL_MULTIOBJECT 0x00000008
528
529/* mask values in the PARAFORMAT2 structure */
530#define PFM_STARTINDENT 0x00000001
531#define PFM_RIGHTINDENT 0x00000002
532#define PFM_OFFSET 0x00000004
533#define PFM_ALIGNMENT 0x00000008
534#define PFM_TABSTOPS 0x00000010
535#define PFM_NUMBERING 0x00000020
536#define PFM_OFFSETINDENT 0x80000000
537
538/* numbering option */
539#define PFN_BULLET 0x00000001
540
541/* paragraph alignment */
542#define PFA_LEFT 0x00000001
543#define PFA_RIGHT 0x00000002
544#define PFA_CENTER 0x00000003
545
546/* streaming flags */
547#define SFF_PWD 0x00000800
548#define SFF_KEEPDOCINFO 0x00001000
549#define SFF_PERSISTVIEWSCALE 0x00002000
550#define SFF_PLAINRTF 0x00004000
551#define SFF_SELECTION 0x00008000
552
553typedef LONG (*EDITWORDBREAKPROCEX)(char*,LONG,BYTE,INT);
554
555/* options of the EM_FINDWORDBREAK message */
556#define WB_CLASSIFY 0x00000003
557#define WB_MOVEWORDLEFT 0x00000004
558#define WB_MOVEWORDPREV 0x00000004
559#define WB_MOVEWORDRIGHT 0x00000005
560#define WB_MOVEWORDNEXT 0x00000005
561#define WB_LEFTBREAK 0x00000006
562#define WB_PREVBREAK 0x00000006
563#define WB_RIGHTBREAK 0x00000007
564#define WB_NEXTBREAK 0x00000007
565
566/* options of the EM_SETWORDWRAPMODE message */
567#define WBF_WORDWRAP 0x00000010
568#define WBF_WORDBREAK 0x00000020
569#define WBF_OVERFLOW 0x00000040
570#define WBF_LEVEL1 0x00000080
571#define WBF_LEVEL2 0x00000100
572#define WBF_CUSTOM 0x00000200
573
574/* options of the EM_SETTEXTMODE message */
575#define TM_PLAINTEXT 0x00000001
576#define TM_RICHTEXT 0x00000002
577#define TM_SINGLELEVELUNDO 0x00000004
578#define TM_MULTILEVELUNDO 0x00000008
579#define TM_SINGLECODEPAGE 0x00000010
580#define TM_MULTICODEPAGE 0x00000020
581
582/* GETTEXT structure flags */
583#define GT_DEFAULT 0x00000000
584#define GT_USECRLF 0x00000001
585
586/* Options of the EM_SETTYPOGRAPHYOPTIONS message */
587#define TO_ADVANCEDTYPOGRAPHY 0x00000001
588#define TO_SIMPLELINEBREAK 0x00000002
589
590typedef struct _gettextlengthex {
591 DWORD flags;
592 UINT codepage;
593} GETTEXTLENGTHEX;
594
595/* Flags of the GETTEXTLENGTHEX structure */
596#define GTL_DEFAULT 0x00000000
597#define GTL_USECRLF 0x00000001
598#define GTL_PRECISE 0x00000002
599#define GTL_CLOSE 0x00000004
600#define GTL_NUMCHARS 0x00000008
601#define GTL_NUMBYTES 0x00000010
602
603#ifdef __cplusplus
604}
605#endif
606
607#include "poppack.h"
608
609#endif /* __WINE_RICHEDIT_H */
Note: See TracBrowser for help on using the repository browser.