source: trunk/include/win/richedit.h@ 9406

Last change on this file since 9406 was 9406, checked in by sandervl, 23 years ago

header update

File size: 17.2 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/* ECO operations */
306#define ECOOP_SET 0x0001
307#define ECOOP_OR 0x0002
308#define ECOOP_AND 0x0003
309#define ECOOP_XOR 0x0004
310
311/* edit control options */
312#define ECO_AUTOWORDSELECTION 0x00000001
313#define ECO_AUTOVSCROLL 0x00000040
314#define ECO_AUTOHSCROLL 0x00000080
315#define ECO_NOHIDESEL 0x00000100
316#define ECO_READONLY 0x00000800
317#define ECO_WANTRETURN 0x00001000
318#define ECO_SAVESEL 0x00008000
319#define ECO_SELECTIONBAR 0x01000000
320#define ECO_VERTICAL 0x00400000
321
322/* Event notification masks */
323#define ENM_NONE 0x00000000
324#define ENM_CHANGE 0x00000001
325#define ENM_UPDATE 0x00000002
326#define ENM_SCROLL 0x00000004
327#define ENM_KEYEVENTS 0x00010000
328#define ENM_MOUSEEVENTS 0x00020000
329#define ENM_REQUESTRESIZE 0x00040000
330#define ENM_SELCHANGE 0x00080000
331#define ENM_DROPFILES 0x00100000
332#define ENM_PROTECTED 0x00200000
333#define ENM_CORRECTTEXT 0x00400000
334#define ENM_IMECHANGE 0x00800000
335#define ENM_LINK 0x04000000
336
337typedef struct _charrange
338{
339 LONG cpMin;
340 LONG cpMax;
341} CHARRANGE;
342
343typedef struct _textrange
344{
345 CHARRANGE chrg;
346 LPSTR lpstrText;
347} TEXTRANGEA;
348
349typedef struct _textrangew
350{
351 CHARRANGE chrg;
352 LPWSTR lpstrText;
353} TEXTRANGEW;
354
355DECL_WINELIB_TYPE_AW(TEXTRANGE)
356
357typedef struct _editstream
358{
359 DWORD dwCookie;
360 DWORD dwError;
361 EDITSTREAMCALLBACK pfnCallback;
362} EDITSTREAM;
363
364typedef struct _compcolor {
365 COLORREF crText;
366 COLORREF crBackground;
367 DWORD dwEffects;
368} COMPCOLOR;
369
370typedef struct _encorrecttext {
371 NMHDR nmhdr;
372 CHARRANGE chrg;
373 WORD seltyp;
374} ENCORRECTTEXT;
375
376typedef struct _endropfiles {
377 NMHDR nmhdr;
378 HANDLE hDrop;
379 LONG cp;
380 BOOL fProtected;
381} ENDROPFILES;
382
383typedef struct _enlink {
384 NMHDR nmhdr;
385 UINT msg;
386 WPARAM wParam;
387 LPARAM lParam;
388 CHARRANGE chrg;
389} ENLINK;
390
391typedef struct {
392 NMHDR nmhdr;
393 LONG iob;
394 LONG lOper;
395 HRESULT hr;
396} ENOLEOPFAILED;
397
398typedef struct _enprotected {
399 NMHDR nmhdr;
400 UINT msg;
401 WPARAM wParam;
402 LPARAM lParam;
403 CHARRANGE chrg;
404} ENPROTECTED, *LPENPROTECTED;
405
406typedef struct _ensaveclipboard {
407 NMHDR nmhdr;
408 LONG cObjectCount;
409 LONG cch;
410} ENSAVECLIPBOARD;
411
412typedef struct _findtextA {
413 CHARRANGE chrg;
414 LPSTR lpstrText;
415} FINDTEXTA;
416
417typedef struct _findtextW {
418 CHARRANGE chrg;
419 LPWSTR lpstrText;
420} FINDTEXTW;
421
422DECL_WINELIB_TYPE_AW(FINDTEXT);
423
424typedef struct _findtextexA {
425 CHARRANGE chrg;
426 LPSTR lpstrText;
427 CHARRANGE chrgText;
428} FINDTEXTEXA;
429
430typedef struct _findtextexW {
431 CHARRANGE chrg;
432 LPWSTR lpstrText;
433 CHARRANGE chrgText;
434} FINDTEXTEXW;
435
436DECL_WINELIB_TYPE_AW(FINDTEXTEX);
437
438typedef struct _formatrange {
439 HDC hdc;
440 HDC hdcTarget;
441 RECT rc;
442 RECT rcPage;
443 CHARRANGE chrg;
444} FORMATRANGE;
445
446typedef struct _msgfilter {
447 NMHDR nmhdr;
448 UINT msg;
449 WPARAM wParam;
450 LPARAM lParam;
451} MSGFILTER;
452
453typedef struct _paraformat {
454 UINT cbSize;
455 DWORD dwMask;
456 WORD wNumbering;
457 WORD wReserved;
458 LONG dxStartIndent;
459 LONG dxRightIndent;
460 LONG dxOffset;
461 WORD wAlignment;
462 SHORT cTabCount;
463 LONG rgxTabs[MAX_TAB_STOPS];
464} PARAFORMAT;
465
466typedef struct _selchange {
467 NMHDR nmhdr;
468 CHARRANGE chrg;
469 WORD seltyp;
470} SELCHANGE;
471
472typedef struct _reqresize {
473 NMHDR nmhdr;
474 RECT rc;
475} REQRESIZE;
476
477typedef struct _repastespecial {
478 DWORD dwAspect;
479 DWORD dwParam;
480} REPASTESPECIAL;
481
482typedef struct _punctuation {
483 UINT iSize;
484 LPSTR szPunctuation;
485} PUNCTUATION;
486
487typedef struct _gettextex {
488 DWORD cb;
489 DWORD flags;
490 UINT codepage;
491 LPCSTR lpDefaultChar;
492 LPBOOL lpUsedDefaultChar;
493} GETTEXTEX;
494
495#define SF_TEXT 0x00000001
496#define SF_RTF 0x00000002
497#define SF_RTFNOOBJS 0x00000003
498#define SF_TEXTIZED 0x00000004
499#define SF_UNICODE 0x00000010
500#define SF_USECODEPAGE 0x00000020
501#define SF_NCRFORNONASCII 0x00000040
502#define SF_RTFVAL 0x00000700
503
504/* Clipboard formats */
505#define CF_RTF TEXT("Rich Text Format")
506#define CF_RTFNOOBJS TEXT("Rich Text Format Without Objects")
507#define CF_RETEXTOBJ TEXT("RichEdit Text and Objects")
508
509
510/* Parameters of the EM_SETIMEOPTIONS message */
511#define IMF_FORCENONE 0x00000001
512#define IMF_FORCEENABLE 0x00000002
513#define IMF_FORCEDISABLE 0x00000004
514#define IMF_CLOSESTATUSWINDOW 0x00000008
515#define IMF_VERTICAL 0x00000020
516#define IMF_FORCEACTIVE 0x00000040
517#define IMF_FORCEINACTIVE 0x00000080
518#define IMF_FORCEREMEMBER 0x00000100
519
520/* return values of the EM_SELECTION_TYPE message */
521#define SEL_EMPTY 0x00000000
522#define SEL_TEXT 0x00000001
523#define SEL_OBJECT 0x00000002
524#define SEL_MULTICHAR 0x00000004
525#define SEL_MULTIOBJECT 0x00000008
526
527/* mask values in the PARAFORMAT2 structure */
528#define PFM_STARTINDENT 0x00000001
529#define PFM_RIGHTINDENT 0x00000002
530#define PFM_OFFSET 0x00000004
531#define PFM_ALIGNMENT 0x00000008
532#define PFM_TABSTOPS 0x00000010
533#define PFM_NUMBERING 0x00000020
534#define PFM_OFFSETINDENT 0x80000000
535
536/* numbering option */
537#define PFN_BULLET 0x00000001
538
539/* paragraph alignment */
540#define PFA_LEFT 0x00000001
541#define PFA_RIGHT 0x00000002
542#define PFA_CENTER 0x00000003
543
544/* streaming flags */
545#define SFF_PWD 0x00000800
546#define SFF_KEEPDOCINFO 0x00001000
547#define SFF_PERSISTVIEWSCALE 0x00002000
548#define SFF_PLAINRTF 0x00004000
549#define SFF_SELECTION 0x00008000
550
551typedef LONG (*EDITWORDBREAKPROCEX)(char*,LONG,BYTE,INT);
552
553/* options of the EM_FINDWORDBREAK message */
554#define WB_CLASSIFY 0x00000003
555#define WB_MOVEWORDLEFT 0x00000004
556#define WB_MOVEWORDPREV 0x00000004
557#define WB_MOVEWORDRIGHT 0x00000005
558#define WB_MOVEWORDNEXT 0x00000005
559#define WB_LEFTBREAK 0x00000006
560#define WB_PREVBREAK 0x00000006
561#define WB_RIGHTBREAK 0x00000007
562#define WB_NEXTBREAK 0x00000007
563
564/* options of the EM_SETWORDWRAPMODE message */
565#define WBF_WORDWRAP 0x00000010
566#define WBF_WORDBREAK 0x00000020
567#define WBF_OVERFLOW 0x00000040
568#define WBF_LEVEL1 0x00000080
569#define WBF_LEVEL2 0x00000100
570#define WBF_CUSTOM 0x00000200
571
572/* options of the EM_SETTEXTMODE message */
573#define TM_PLAINTEXT 0x00000001
574#define TM_RICHTEXT 0x00000002
575#define TM_SINGLELEVELUNDO 0x00000004
576#define TM_MULTILEVELUNDO 0x00000008
577#define TM_SINGLECODEPAGE 0x00000010
578#define TM_MULTICODEPAGE 0x00000020
579
580/* GETTEXT structure flags */
581#define GT_DEFAULT 0x00000000
582#define GT_USECRLF 0x00000001
583
584/* Options of the EM_SETTYPOGRAPHYOPTIONS message */
585#define TO_ADVANCEDTYPOGRAPHY 0x00000001
586#define TO_SIMPLELINEBREAK 0x00000002
587
588typedef struct _gettextlengthex {
589 DWORD flags;
590 UINT codepage;
591} GETTEXTLENGTHEX;
592
593/* Flags of the GETTEXTLENGTHEX structure */
594#define GTL_DEFAULT 0x00000000
595#define GTL_USECRLF 0x00000001
596#define GTL_PRECISE 0x00000002
597#define GTL_CLOSE 0x00000004
598#define GTL_NUMCHARS 0x00000008
599#define GTL_NUMBYTES 0x00000010
600
601#ifdef __cplusplus
602}
603#endif
604
605#include "poppack.h"
606
607#endif /* __WINE_RICHEDIT_H */
Note: See TracBrowser for help on using the repository browser.