+ Added Delphi compatible richedit unit.

git-svn-id: trunk@6070 -
This commit is contained in:
yury 2007-01-19 12:54:44 +00:00
parent 2219e9fa45
commit 4ed3ef645b
2 changed files with 627 additions and 0 deletions

1
.gitattributes vendored
View File

@ -4216,6 +4216,7 @@ packages/extra/winunits/jwazmouse.pas svneol=native#text/plain
packages/extra/winunits/mmsystem.pp svneol=native#text/plain
packages/extra/winunits/ole2.pp svneol=native#text/plain
packages/extra/winunits/oleserver.pp svneol=native#text/plain
packages/extra/winunits/richedit.pp -text
packages/extra/winunits/shellapi.pp svneol=native#text/plain
packages/extra/winunits/shfolder.pp svneol=native#text/plain
packages/extra/winunits/shlobj.pp svneol=native#text/plain

View File

@ -0,0 +1,626 @@
{ Converted by H2Pas from richedit.h }
unit richedit;
{$mode objfpc}
{$calling stdcall}
interface
uses Messages, Windows;
{$IFDEF FPC}
{$PACKRECORDS C}
{$ENDIF}
{$ifdef UNICODE }
const
RICHEDIT_CLASS = 'RichEdit20W';
{$else}
const
RICHEDIT_CLASS = 'RichEdit20A';
{$endif}
const
RICHEDIT_CLASS10A = 'RICHEDIT';
CF_RTF = 'Rich Text Format';
CF_RTFNOOBJS = 'Rich Text Format Without Objects';
CF_RETEXTOBJ = 'RichEdit Text and Objects';
CFM_BOLD = 1;
CFM_ITALIC = 2;
CFM_UNDERLINE = 4;
CFM_STRIKEOUT = 8;
CFM_PROTECTED = 16;
CFM_LINK = 32;
CFM_SIZE = $80000000;
CFM_COLOR = $40000000;
CFM_FACE = $20000000;
CFM_OFFSET = $10000000;
CFM_CHARSET = $08000000;
CFM_SUBSCRIPT = $00030000;
CFM_SUPERSCRIPT = $00030000;
CFM_EFFECTS = (((((CFM_BOLD or CFM_ITALIC) or CFM_UNDERLINE) or CFM_COLOR) or CFM_STRIKEOUT) or CFE_PROTECTED) or CFM_LINK;
CFE_BOLD = 1;
CFE_ITALIC = 2;
CFE_UNDERLINE = 4;
CFE_STRIKEOUT = 8;
CFE_PROTECTED = 16;
CFE_AUTOCOLOR = $40000000;
CFE_SUBSCRIPT = $00010000;
CFE_SUPERSCRIPT = $00020000;
IMF_FORCENONE = 1;
IMF_FORCEENABLE = 2;
IMF_FORCEDISABLE = 4;
IMF_CLOSESTATUSWINDOW = 8;
IMF_VERTICAL = 32;
IMF_FORCEACTIVE = 64;
IMF_FORCEINACTIVE = 128;
IMF_FORCEREMEMBER = 256;
SEL_EMPTY = 0;
SEL_TEXT = 1;
SEL_OBJECT = 2;
SEL_MULTICHAR = 4;
SEL_MULTIOBJECT = 8;
MAX_TAB_STOPS = 32;
PFM_ALIGNMENT = 8;
PFM_NUMBERING = 32;
PFM_OFFSET = 4;
PFM_OFFSETINDENT = $80000000;
PFM_RIGHTINDENT = 2;
PFM_STARTINDENT = 1;
PFM_TABSTOPS = 16;
PFM_BORDER = 2048;
PFM_LINESPACING = 256;
PFM_NUMBERINGSTART = 32768;
PFM_NUMBERINGSTYLE = 8192;
PFM_NUMBERINGTAB = 16384;
PFM_SHADING = 4096;
PFM_SPACEAFTER = 128;
PFM_SPACEBEFORE = 64;
PFM_STYLE = 1024;
PFM_DONOTHYPHEN = 4194304;
PFM_KEEP = 131072;
PFM_KEEPNEXT = 262144;
PFM_NOLINENUMBER = 1048576;
PFM_NOWIDOWCONTROL = 2097152;
PFM_PAGEBREAKBEFORE = 524288;
PFM_RTLPARA = 65536;
PFM_SIDEBYSIDE = 8388608;
PFM_TABLE = 1073741824;
PFN_BULLET = 1;
PFE_DONOTHYPHEN = 64;
PFE_KEEP = 2;
PFE_KEEPNEXT = 4;
PFE_NOLINENUMBER = 16;
PFE_NOWIDOWCONTROL = 32;
PFE_PAGEBREAKBEFORE = 8;
PFE_RTLPARA = 1;
PFE_SIDEBYSIDE = 128;
PFE_TABLE = 16384;
PFA_LEFT = 1;
PFA_RIGHT = 2;
PFA_CENTER = 3;
PFA_JUSTIFY = 4;
PFA_FULL_INTERWORD = 4;
SF_TEXT = 1;
SF_RTF = 2;
SF_RTFNOOBJS = 3;
SF_TEXTIZED = 4;
SF_UNICODE = 16;
SF_USECODEPAGE = 32;
SF_NCRFORNONASCII = 64;
SF_RTFVAL = $0700;
SFF_PWD = $0800;
SFF_KEEPDOCINFO = $1000;
SFF_PERSISTVIEWSCALE = $2000;
SFF_PLAINRTF = $4000;
SFF_SELECTION = $8000;
WB_CLASSIFY = 3;
WB_MOVEWORDLEFT = 4;
WB_MOVEWORDRIGHT = 5;
WB_LEFTBREAK = 6;
WB_RIGHTBREAK = 7;
WB_MOVEWORDPREV = 4;
WB_MOVEWORDNEXT = 5;
WB_PREVBREAK = 6;
WB_NEXTBREAK = 7;
WBF_WORDWRAP = 16;
WBF_WORDBREAK = 32;
WBF_OVERFLOW = 64;
WBF_LEVEL1 = 128;
WBF_LEVEL2 = 256;
WBF_CUSTOM = 512;
ES_DISABLENOSCROLL = 8192;
ES_EX_NOCALLOLEINIT = 16777216;
ES_NOIME = 524288;
ES_NOOLEDRAGDROP = 8;
ES_SAVESEL = 32768;
ES_SELECTIONBAR = 16777216;
ES_SELFIME = 262144;
ES_SUNKEN = 16384;
ES_VERTICAL = 4194304;
EM_CANPASTE = WM_USER+50;
EM_DISPLAYBAND = WM_USER+51;
EM_EXGETSEL = WM_USER+52;
EM_EXLIMITTEXT = WM_USER+53;
EM_EXLINEFROMCHAR = WM_USER+54;
EM_EXSETSEL = WM_USER+55;
EM_FINDTEXT = WM_USER+56;
EM_FORMATRANGE = WM_USER+57;
EM_GETCHARFORMAT = WM_USER+58;
EM_GETEVENTMASK = WM_USER+59;
EM_GETOLEINTERFACE = WM_USER+60;
EM_GETPARAFORMAT = WM_USER+61;
EM_GETSELTEXT = WM_USER+62;
EM_HIDESELECTION = WM_USER+63;
EM_PASTESPECIAL = WM_USER+64;
EM_REQUESTRESIZE = WM_USER+65;
EM_SELECTIONTYPE = WM_USER+66;
EM_SETBKGNDCOLOR = WM_USER+67;
EM_SETCHARFORMAT = WM_USER+68;
EM_SETEVENTMASK = WM_USER+69;
EM_SETOLECALLBACK = WM_USER+70;
EM_SETPARAFORMAT = WM_USER+71;
EM_SETTARGETDEVICE = WM_USER+72;
EM_STREAMIN = WM_USER+73;
EM_STREAMOUT = WM_USER+74;
EM_GETTEXTRANGE = WM_USER+75;
EM_FINDWORDBREAK = WM_USER+76;
EM_SETOPTIONS = WM_USER+77;
EM_GETOPTIONS = WM_USER+78;
EM_FINDTEXTEX = WM_USER+79;
EM_GETWORDBREAKPROCEX = WM_USER+80;
EM_SETWORDBREAKPROCEX = WM_USER+81;
{ RichEdit 2.0 messages }
EM_SETUNDOLIMIT = WM_USER+82;
EM_REDO = WM_USER+84;
EM_CANREDO = WM_USER+85;
EM_GETUNDONAME = WM_USER+86;
EM_GETREDONAME = WM_USER+87;
EM_STOPGROUPTYPING = WM_USER+88;
EM_SETTEXTMODE = WM_USER+89;
EM_GETTEXTMODE = WM_USER+90;
EM_AUTOURLDETECT = WM_USER+91;
EM_GETAUTOURLDETECT = WM_USER+92;
EM_SETPALETTE = WM_USER+93;
EM_GETTEXTEX = WM_USER+94;
EM_GETTEXTLENGTHEX = WM_USER+95;
EM_SHOWSCROLLBAR = WM_USER+96;
EM_SETTEXTEX = WM_USER+97;
EM_SETPUNCTUATION = WM_USER+100;
EM_GETPUNCTUATION = WM_USER+101;
EM_SETWORDWRAPMODE = WM_USER+102;
EM_GETWORDWRAPMODE = WM_USER+103;
EM_SETIMECOLOR = WM_USER+104;
EM_GETIMECOLOR = WM_USER+105;
EM_SETIMEOPTIONS = WM_USER+106;
EM_GETIMEOPTIONS = WM_USER+107;
EM_SETLANGOPTIONS = WM_USER+120;
EM_GETLANGOPTIONS = WM_USER+121;
EM_GETIMECOMPMODE = WM_USER+122;
EM_FINDTEXTW = WM_USER+123;
EM_FINDTEXTEXW = WM_USER+124;
EM_RECONVERSION = WM_USER+125;
EM_SETBIDIOPTIONS = WM_USER+200;
EM_GETBIDIOPTIONS = WM_USER+201;
EM_SETTYPOGRAPHYOPTIONS = WM_USER+202;
EM_GETTYPOGRAPHYOPTIONS = WM_USER+203;
EM_SETEDITSTYLE = WM_USER+204;
EM_GETEDITSTYLE = WM_USER+205;
EM_GETSCROLLPOS = WM_USER+221;
EM_SETSCROLLPOS = WM_USER+222;
EM_SETFONTSIZE = WM_USER+223;
EM_GETZOOM = WM_USER+224;
EM_SETZOOM = WM_USER+225;
EN_CORRECTTEXT = 1797;
EN_DROPFILES = 1795;
EN_IMECHANGE = 1799;
EN_LINK = 1803;
EN_MSGFILTER = 1792;
EN_OLEOPFAILED = 1801;
EN_PROTECTED = 1796;
EN_REQUESTRESIZE = 1793;
EN_SAVECLIPBOARD = 1800;
EN_SELCHANGE = 1794;
EN_STOPNOUNDO = 1798;
ENM_NONE = 0;
ENM_CHANGE = 1;
ENM_CORRECTTEXT = 4194304;
ENM_DRAGDROPDONE = 16;
ENM_DROPFILES = 1048576;
ENM_IMECHANGE = 8388608;
ENM_KEYEVENTS = 65536;
ENM_LANGCHANGE = 16777216;
ENM_LINK = 67108864;
ENM_MOUSEEVENTS = 131072;
ENM_OBJECTPOSITIONS = 33554432;
ENM_PROTECTED = 2097152;
ENM_REQUESTRESIZE = 262144;
ENM_SCROLL = 4;
ENM_SCROLLEVENTS = 8;
ENM_SELCHANGE = 524288;
ENM_UPDATE = 2;
ECO_AUTOWORDSELECTION = 1;
ECO_AUTOVSCROLL = 64;
ECO_AUTOHSCROLL = 128;
ECO_NOHIDESEL = 256;
ECO_READONLY = 2048;
ECO_WANTRETURN = 4096;
ECO_SAVESEL = $8000;
ECO_SELECTIONBAR = $1000000;
ECO_VERTICAL = $400000;
ECOOP_SET = 1;
ECOOP_OR = 2;
ECOOP_AND = 3;
ECOOP_XOR = 4;
SCF_DEFAULT = 0;
SCF_SELECTION = 1;
SCF_WORD = 2;
SCF_ALL = 4;
SCF_USEUIRULES = 8;
TM_PLAINTEXT = 1;
TM_RICHTEXT = 2;
TM_SINGLELEVELUNDO = 4;
TM_MULTILEVELUNDO = 8;
TM_SINGLECODEPAGE = 16;
TM_MULTICODEPAGE = 32;
GT_DEFAULT = 0;
GT_USECRLF = 1;
yHeightCharPtsMost = 1638;
lDefaultTab = 720;
FT_MATCHCASE = 4;
FT_WHOLEWORD = 2;
type
_charformat = record
cbSize : UINT;
dwMask : DWORD;
dwEffects : DWORD;
yHeight : LONG;
yOffset : LONG;
crTextColor : COLORREF;
bCharSet : BYTE;
bPitchAndFamily : BYTE;
szFaceName : array[0..(LF_FACESIZE)-1] of char;
end;
CHARFORMATA = _charformat;
TCHARFORMATA = _charformat;
_charformatw = record
cbSize : UINT;
dwMask : DWORD;
dwEffects : DWORD;
yHeight : LONG;
yOffset : LONG;
crTextColor : COLORREF;
bCharSet : BYTE;
bPitchAndFamily : BYTE;
szFaceName : array[0..(LF_FACESIZE)-1] of WCHAR;
end;
CHARFORMATW = _charformatw;
TCHARFORMATW = _charformatw;
_charformat2a = record
cbSize : UINT;
dwMask : DWORD;
dwEffects : DWORD;
yHeight : LONG;
yOffset : LONG;
crTextColor : COLORREF;
bCharSet : BYTE;
bPitchAndFamily : BYTE;
szFaceName : array[0..(LF_FACESIZE)-1] of char;
wWeight : WORD;
sSpacing : SHORT;
crBackColor : COLORREF;
lcid : LCID;
dwReserved : DWORD;
sStyle : SHORT;
wKerning : WORD;
bUnderlineType : BYTE;
bAnimation : BYTE;
bRevAuthor : BYTE;
end;
CHARFORMAT2A = _charformat2a;
TCHARFORMAT2A = _charformat2a;
_charformat2w = record
cbSize : UINT;
dwMask : DWORD;
dwEffects : DWORD;
yHeight : LONG;
yOffset : LONG;
crTextColor : COLORREF;
bCharSet : BYTE;
bPitchAndFamily : BYTE;
szFaceName : array[0..(LF_FACESIZE)-1] of WCHAR;
wWeight : WORD;
sSpacing : SHORT;
crBackColor : COLORREF;
lcid : LCID;
dwReserved : DWORD;
sStyle : SHORT;
wKerning : WORD;
bUnderlineType : BYTE;
bAnimation : BYTE;
bRevAuthor : BYTE;
end;
CHARFORMAT2W = _charformat2w;
TCHARFORMAT2W = _charformat2w;
_charrange = record
cpMin : LONG;
cpMax : LONG;
end;
CHARRANGE = _charrange;
TCHARRANGE = _charrange;
_compcolor = record
crText : COLORREF;
crBackground : COLORREF;
dwEffects : DWORD;
end;
COMPCOLOR = _compcolor;
TCOMPCOLOR = _compcolor;
EDITSTREAMCALLBACK = function (dwCookie:PDWORD; pbBuff:LPBYTE; cb:LONG; var pcb:LONG):DWORD;
_editstream = record
dwCookie : DWORD;
dwError : DWORD;
pfnCallback : EDITSTREAMCALLBACK;
end;
EDITSTREAM = _editstream;
TEDITSTREAM = _editstream;
_encorrecttext = record
nmhdr : NMHDR;
chrg : CHARRANGE;
seltyp : WORD;
end;
ENCORRECTTEXT = _encorrecttext;
TENCORRECTTEXT = _encorrecttext;
_endropfiles = record
nmhdr : NMHDR;
hDrop : HANDLE;
cp : LONG;
fProtected : BOOL;
end;
ENDROPFILES = _endropfiles;
TENDROPFILES = _endropfiles;
_enlink = record
nmhdr : NMHDR;
msg : UINT;
wParam : WPARAM;
lParam : LPARAM;
chrg : CHARRANGE;
end;
ENLINK = _enlink;
TENLINK = _enlink;
ENOLEOPFAILED = record
nmhdr : NMHDR;
iob : LONG;
lOper : LONG;
hr : HRESULT;
end;
_enprotected = record
nmhdr : NMHDR;
msg : UINT;
wParam : WPARAM;
lParam : LPARAM;
chrg : CHARRANGE;
end;
ENPROTECTED = _enprotected;
TENPROTECTED = _enprotected;
LPENPROTECTED = ^_enprotected;
_ensaveclipboard = record
nmhdr : NMHDR;
cObjectCount : LONG;
cch : LONG;
end;
ENSAVECLIPBOARD = _ensaveclipboard;
TENSAVECLIPBOARD = _ensaveclipboard;
_findtextA = record
chrg : CHARRANGE;
lpstrText : LPSTR;
end;
FINDTEXTA = _findtextA;
TFINDTEXTA = _findtextA;
_findtextW = record
chrg : CHARRANGE;
lpstrText : LPWSTR;
end;
FINDTEXTW = _findtextW;
TFINDTEXTW = _findtextW;
_findtextexA = record
chrg : CHARRANGE;
lpstrText : LPSTR;
chrgText : CHARRANGE;
end;
FINDTEXTEXA = _findtextexA;
TFINDTEXTEXA = _findtextexA;
_findtextexW = record
chrg : CHARRANGE;
lpstrText : LPWSTR;
chrgText : CHARRANGE;
end;
FINDTEXTEXW = _findtextexW;
TFINDTEXTEXW = _findtextexW;
_formatrange = record
hdc : HDC;
hdcTarget : HDC;
rc : RECT;
rcPage : RECT;
chrg : CHARRANGE;
end;
FORMATRANGE = _formatrange;
TFORMATRANGE = _formatrange;
_msgfilter = record
nmhdr : NMHDR;
msg : UINT;
wParam : WPARAM;
lParam : LPARAM;
end;
MSGFILTER = _msgfilter;
TMSGFILTER = _msgfilter;
_paraformat = record
cbSize : UINT;
dwMask : DWORD;
wNumbering : WORD;
wReserved : WORD;
dxStartIndent : LONG;
dxRightIndent : LONG;
dxOffset : LONG;
wAlignment : WORD;
cTabCount : SHORT;
rgxTabs : array[0..(MAX_TAB_STOPS)-1] of LONG;
end;
PARAFORMAT = _paraformat;
TParaFormat = _paraformat;
_paraformat2 = record
cbSize : UINT;
dwMask : DWORD;
wNumbering : WORD;
wEffects : WORD;
dxStartIndent : LONG;
dxRightIndent : LONG;
dxOffset : LONG;
wAlignment : WORD;
cTabCount : SHORT;
rgxTabs : array[0..(MAX_TAB_STOPS)-1] of LONG;
dySpaceBefore : LONG;
dySpaceAfter : LONG;
dyLineSpacing : LONG;
sStype : SHORT;
bLineSpacingRule : BYTE;
bOutlineLevel : BYTE;
wShadingWeight : WORD;
wShadingStyle : WORD;
wNumberingStart : WORD;
wNumberingStyle : WORD;
wNumberingTab : WORD;
wBorderSpace : WORD;
wBorderWidth : WORD;
wBorders : WORD;
end;
PARAFORMAT2 = _paraformat2;
TPARAFORMAT2 = _paraformat2;
_selchange = record
nmhdr : NMHDR;
chrg : CHARRANGE;
seltyp : WORD;
end;
SELCHANGE = _selchange;
TSELCHANGE = _selchange;
_textrange = record
chrg : CHARRANGE;
lpstrText : LPSTR;
end;
TEXTRANGEA = _textrange;
TTEXTRANGEA = _textrange;
_textrangew = record
chrg : CHARRANGE;
lpstrText : LPWSTR;
end;
TEXTRANGEW = _textrangew;
TTEXTRANGEW = _textrangew;
_reqresize = record
nmhdr : NMHDR;
rc : RECT;
end;
REQRESIZE = _reqresize;
TREQRESIZE = _reqresize;
_repastespecial = record
dwAspect : DWORD;
dwParam : DWORD;
end;
REPASTESPECIAL = _repastespecial;
TREPASTESPECIAL = _repastespecial;
_punctuation = record
iSize : UINT;
szPunctuation : LPSTR;
end;
PUNCTUATION = _punctuation;
TPUNCTUATION = _punctuation;
_gettextex = record
cb : DWORD;
flags : DWORD;
codepage : UINT;
lpDefaultChar : LPCSTR;
lpUsedDefaultChar : LPBOOL;
end;
GETTEXTEX = _gettextex;
TGETTEXTEX = _gettextex;
EDITWORDBREAKPROCEX = function (pchText:pchar; cchText:LONG; bCharSet:BYTE; action:LONG):LONG;
{ Defines for EM_SETTYPOGRAPHYOPTIONS }
const
TO_ADVANCEDTYPOGRAPHY = 1;
TO_SIMPLELINEBREAK = 2;
{ Defines for GETTEXTLENGTHEX }
GTL_DEFAULT = 0;
GTL_USECRLF = 1;
GTL_PRECISE = 2;
GTL_CLOSE = 4;
GTL_NUMCHARS = 8;
GTL_NUMBYTES = 16;
type
_gettextlengthex = record
flags : DWORD;
codepage : UINT;
end;
GETTEXTLENGTHEX = _gettextlengthex;
{$ifdef UNICODE}
CHARFORMAT = CHARFORMATW;
TCHARFORMAT = CHARFORMATW;
CHARFORMAT2 = CHARFORMAT2W;
TCHARFORMAT2 = CHARFORMAT2W;
FINDTEXT = FINDTEXTW;
TFINDTEXT = FINDTEXTW;
FINDTEXTEX = FINDTEXTEXW;
TFINDTEXTEX = FINDTEXTEXW;
TEXTRANGE = TEXTRANGEW;
TTEXTRANGE = TEXTRANGEW;
{$else}
type
CHARFORMAT = CHARFORMATA;
TCHARFORMAT = CHARFORMATA;
CHARFORMAT2 = CHARFORMAT2A;
TCHARFORMAT2 = CHARFORMAT2A;
FINDTEXT = FINDTEXTA;
TFINDTEXT = FINDTEXTA;
FINDTEXTEX = FINDTEXTEXA;
TFINDTEXTEX = FINDTEXTEXA;
TEXTRANGE = TEXTRANGEA;
TTEXTRANGE = TEXTRANGEA;
{$endif}
implementation
end.