Selaa lähdekoodia

+ Added Delphi compatible richedit unit.

git-svn-id: trunk@6070 -
yury 18 vuotta sitten
vanhempi
commit
4ed3ef645b
2 muutettua tiedostoa jossa 627 lisäystä ja 0 poistoa
  1. 1 0
      .gitattributes
  2. 626 0
      packages/extra/winunits/richedit.pp

+ 1 - 0
.gitattributes

@@ -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

+ 626 - 0
packages/extra/winunits/richedit.pp

@@ -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.