Artifact be981eb75dda25696f71f54e71e637e55e9bae38
- File
src/win32/richedit.d
-
2015-05-05 06:49:05
- part of checkin
[9b639cf2d6]
on branch trunk
- Working version for update to 2.067.
The problem was __gshared. Replacing it with TLS fixed the issue. Remaining problem is that "hack.d"'s CloseHandle hack is not working anymore.
(user: kinaba) [annotate]
-
2015-05-05 06:49:05
- part of checkin
[9b639cf2d6]
on branch trunk
- Working version for update to 2.067.
/***********************************************************************\ * richedit.d * * * * Windows API header module * * * * Translated from MinGW Windows headers * * * * Placed into public domain * \***********************************************************************/ module win32.richedit; private import win32.windef, win32.winuser; private import win32.wingdi; // for LF_FACESIZE align(4): version(Unicode) { const wchar[] RICHEDIT_CLASS = "RichEdit20W"; } else { const char[] RICHEDIT_CLASS = "RichEdit20A"; } const RICHEDIT_CLASS10A = "RICHEDIT"; const TCHAR[] CF_RTF = "Rich Text Format", CF_RTFNOOBJS = "Rich Text Format Without Objects", CF_RETEXTOBJ = "RichEdit Text and Objects"; const DWORD CFM_BOLD = 1, CFM_ITALIC = 2, CFM_UNDERLINE = 4, CFM_STRIKEOUT = 8, CFM_PROTECTED = 16, CFM_LINK = 32, CFM_SIZE = 0x80000000, CFM_COLOR = 0x40000000, CFM_FACE = 0x20000000, CFM_OFFSET = 0x10000000, CFM_CHARSET = 0x08000000, CFM_SUBSCRIPT = 0x00030000, CFM_SUPERSCRIPT = 0x00030000; const DWORD CFE_BOLD = 1, CFE_ITALIC = 2, CFE_UNDERLINE = 4, CFE_STRIKEOUT = 8, CFE_PROTECTED = 16, CFE_SUBSCRIPT = 0x00010000, CFE_SUPERSCRIPT = 0x00020000, CFE_AUTOCOLOR = 0x40000000; const CFM_EFFECTS = CFM_BOLD | CFM_ITALIC | CFM_UNDERLINE | CFM_COLOR | CFM_STRIKEOUT | CFE_PROTECTED | CFM_LINK; // flags for EM_SETIMEOPTIONS const LPARAM IMF_FORCENONE = 1, IMF_FORCEENABLE = 2, IMF_FORCEDISABLE = 4, IMF_CLOSESTATUSWINDOW = 8, IMF_VERTICAL = 32, IMF_FORCEACTIVE = 64, IMF_FORCEINACTIVE = 128, IMF_FORCEREMEMBER = 256; const SEL_EMPTY=0; const SEL_TEXT=1; const SEL_OBJECT=2; const SEL_MULTICHAR=4; const SEL_MULTIOBJECT=8; const MAX_TAB_STOPS=32; const PFM_ALIGNMENT=8; const PFM_NUMBERING=32; const PFM_OFFSET=4; const PFM_OFFSETINDENT=0x80000000; const PFM_RIGHTINDENT=2; const PFM_STARTINDENT=1; const PFM_TABSTOPS=16; const PFM_BORDER=2048; const PFM_LINESPACING=256; const PFM_NUMBERINGSTART=32768; const PFM_NUMBERINGSTYLE=8192; const PFM_NUMBERINGTAB=16384; const PFM_SHADING=4096; const PFM_SPACEAFTER=128; const PFM_SPACEBEFORE=64; const PFM_STYLE=1024; const PFM_DONOTHYPHEN=4194304; const PFM_KEEP=131072; const PFM_KEEPNEXT=262144; const PFM_NOLINENUMBER=1048576; const PFM_NOWIDOWCONTROL=2097152; const PFM_PAGEBREAKBEFORE=524288; const PFM_RTLPARA=65536; const PFM_SIDEBYSIDE=8388608; const PFM_TABLE=1073741824; const PFN_BULLET=1; const PFE_DONOTHYPHEN=64; const PFE_KEEP=2; const PFE_KEEPNEXT=4; const PFE_NOLINENUMBER=16; const PFE_NOWIDOWCONTROL=32; const PFE_PAGEBREAKBEFORE=8; const PFE_RTLPARA=1; const PFE_SIDEBYSIDE=128; const PFE_TABLE=16384; const PFA_LEFT=1; const PFA_RIGHT=2; const PFA_CENTER=3; const PFA_JUSTIFY=4; const PFA_FULL_INTERWORD=4; const SF_TEXT=1; const SF_RTF=2; const SF_RTFNOOBJS=3; const SF_TEXTIZED=4; const SF_UNICODE=16; const SF_USECODEPAGE=32; const SF_NCRFORNONASCII=64; const SF_RTFVAL=0x0700; const SFF_PWD=0x0800; const SFF_KEEPDOCINFO=0x1000; const SFF_PERSISTVIEWSCALE=0x2000; const SFF_PLAINRTF=0x4000; const SFF_SELECTION=0x8000; const WB_CLASSIFY = 3; const WB_MOVEWORDLEFT = 4; const WB_MOVEWORDRIGHT = 5; const WB_LEFTBREAK = 6; const WB_RIGHTBREAK = 7; const WB_MOVEWORDPREV = 4; const WB_MOVEWORDNEXT = 5; const WB_PREVBREAK = 6; const WB_NEXTBREAK = 7; const WBF_WORDWRAP = 16; const WBF_WORDBREAK = 32; const WBF_OVERFLOW = 64; const WBF_LEVEL1 = 128; const WBF_LEVEL2 = 256; const WBF_CUSTOM = 512; const ES_DISABLENOSCROLL = 8192; const ES_SUNKEN = 16384; const ES_SAVESEL = 32768; const ES_EX_NOCALLOLEINIT = 16777216; const ES_NOIME = 524288; const ES_NOOLEDRAGDROP = 8; const ES_SELECTIONBAR = 16777216; const ES_SELFIME = 262144; const ES_VERTICAL = 4194304; const EM_CANPASTE = WM_USER+50; const EM_DISPLAYBAND = WM_USER+51; const EM_EXGETSEL = WM_USER+52; const EM_EXLIMITTEXT = WM_USER+53; const EM_EXLINEFROMCHAR = WM_USER+54; const EM_EXSETSEL = WM_USER+55; const EM_FINDTEXT = WM_USER+56; const EM_FORMATRANGE = WM_USER+57; const EM_GETCHARFORMAT = WM_USER+58; const EM_GETEVENTMASK = WM_USER+59; const EM_GETOLEINTERFACE = WM_USER+60; const EM_GETPARAFORMAT = WM_USER+61; const EM_GETSELTEXT = WM_USER+62; const EM_HIDESELECTION = WM_USER+63; const EM_PASTESPECIAL = WM_USER+64; const EM_REQUESTRESIZE = WM_USER+65; const EM_SELECTIONTYPE = WM_USER+66; const EM_SETBKGNDCOLOR = WM_USER+67; const EM_SETCHARFORMAT = WM_USER+68; const EM_SETEVENTMASK = WM_USER+69; const EM_SETOLECALLBACK = WM_USER+70; const EM_SETPARAFORMAT = WM_USER+71; const EM_SETTARGETDEVICE = WM_USER+72; const EM_STREAMIN = WM_USER+73; const EM_STREAMOUT = WM_USER+74; const EM_GETTEXTRANGE = WM_USER+75; const EM_FINDWORDBREAK = WM_USER+76; const EM_SETOPTIONS = WM_USER+77; const EM_GETOPTIONS = WM_USER+78; const EM_FINDTEXTEX = WM_USER+79; const EM_GETWORDBREAKPROCEX = WM_USER+80; const EM_SETWORDBREAKPROCEX = WM_USER+81; /* RichEdit 2.0 messages */ const EM_SETUNDOLIMIT = WM_USER+82; const EM_REDO = WM_USER+84; const EM_CANREDO = WM_USER+85; const EM_GETUNDONAME = WM_USER+86; const EM_GETREDONAME = WM_USER+87; const EM_STOPGROUPTYPING = WM_USER+88; const EM_SETTEXTMODE = WM_USER+89; const EM_GETTEXTMODE = WM_USER+90; const EM_AUTOURLDETECT = WM_USER+91; const EM_GETAUTOURLDETECT = WM_USER + 92; const EM_SETPALETTE = WM_USER + 93; const EM_GETTEXTEX = WM_USER+94; const EM_GETTEXTLENGTHEX = WM_USER+95; const EM_SHOWSCROLLBAR = WM_USER+96; const EM_SETTEXTEX = WM_USER + 97; const EM_SETPUNCTUATION = WM_USER + 100; const EM_GETPUNCTUATION = WM_USER + 101; const EM_SETWORDWRAPMODE = WM_USER + 102; const EM_GETWORDWRAPMODE = WM_USER + 103; const EM_SETIMECOLOR = WM_USER + 104; const EM_GETIMECOLOR = WM_USER + 105; const EM_SETIMEOPTIONS = WM_USER + 106; const EM_GETIMEOPTIONS = WM_USER + 107; const EM_SETLANGOPTIONS = WM_USER+120; const EM_GETLANGOPTIONS = WM_USER+121; const EM_GETIMECOMPMODE = WM_USER+122; const EM_FINDTEXTW = WM_USER + 123; const EM_FINDTEXTEXW = WM_USER + 124; const EM_RECONVERSION = WM_USER + 125; const EM_SETBIDIOPTIONS = WM_USER + 200; const EM_GETBIDIOPTIONS = WM_USER + 201; const EM_SETTYPOGRAPHYOPTIONS = WM_USER+202; const EM_GETTYPOGRAPHYOPTIONS = WM_USER+203; const EM_SETEDITSTYLE = WM_USER + 204; const EM_GETEDITSTYLE = WM_USER + 205; const EM_GETSCROLLPOS = WM_USER+221; const EM_SETSCROLLPOS = WM_USER+222; const EM_SETFONTSIZE = WM_USER+223; const EM_GETZOOM = WM_USER+224; const EM_SETZOOM = WM_USER+225; const EN_MSGFILTER = 1792; const EN_REQUESTRESIZE = 1793; const EN_SELCHANGE = 1794; const EN_DROPFILES = 1795; const EN_PROTECTED = 1796; const EN_CORRECTTEXT = 1797; const EN_STOPNOUNDO = 1798; const EN_IMECHANGE = 1799; const EN_SAVECLIPBOARD = 1800; const EN_OLEOPFAILED = 1801; const EN_LINK = 1803; const ENM_NONE = 0; const ENM_CHANGE = 1; const ENM_UPDATE = 2; const ENM_SCROLL = 4; const ENM_SCROLLEVENTS = 8; const ENM_DRAGDROPDONE = 16; const ENM_KEYEVENTS = 65536; const ENM_MOUSEEVENTS = 131072; const ENM_REQUESTRESIZE = 262144; const ENM_SELCHANGE = 524288; const ENM_DROPFILES = 1048576; const ENM_PROTECTED = 2097152; const ENM_CORRECTTEXT = 4194304; const ENM_IMECHANGE = 8388608; const ENM_LANGCHANGE = 16777216; const ENM_OBJECTPOSITIONS = 33554432; const ENM_LINK = 67108864; const ECO_AUTOWORDSELECTION=1; const ECO_AUTOVSCROLL=64; const ECO_AUTOHSCROLL=128; const ECO_NOHIDESEL=256; const ECO_READONLY=2048; const ECO_WANTRETURN=4096; const ECO_SAVESEL=0x8000; const ECO_SELECTIONBAR=0x1000000; const ECO_VERTICAL=0x400000; enum { ECOOP_SET = 1, ECOOP_OR, ECOOP_AND, ECOOP_XOR } const SCF_DEFAULT = 0; const SCF_SELECTION = 1; const SCF_WORD = 2; const SCF_ALL = 4; const SCF_USEUIRULES = 8; alias DWORD TEXTMODE; const TM_PLAINTEXT=1; const TM_RICHTEXT=2; const TM_SINGLELEVELUNDO=4; const TM_MULTILEVELUNDO=8; const TM_SINGLECODEPAGE=16; const TM_MULTICODEPAGE=32; const GT_DEFAULT=0; const GT_USECRLF=1; const yHeightCharPtsMost=1638; const lDefaultTab=720; alias DWORD UNDONAMEID; const UID_UNKNOWN = 0; const UID_TYPING = 1; const UID_DELETE = 2; const UID_DRAGDROP = 3; const UID_CUT = 4; const UID_PASTE = 5; struct CHARFORMATA { UINT cbSize = this.sizeof; DWORD dwMask; DWORD dwEffects; LONG yHeight; LONG yOffset; COLORREF crTextColor; BYTE bCharSet; BYTE bPitchAndFamily; char[LF_FACESIZE] szFaceName; } struct CHARFORMATW { UINT cbSize = this.sizeof; DWORD dwMask; DWORD dwEffects; LONG yHeight; LONG yOffset; COLORREF crTextColor; BYTE bCharSet; BYTE bPitchAndFamily; WCHAR[LF_FACESIZE] szFaceName; } struct CHARFORMAT2A { UINT cbSize = this.sizeof; DWORD dwMask; DWORD dwEffects; LONG yHeight; LONG yOffset; COLORREF crTextColor; BYTE bCharSet; BYTE bPitchAndFamily; char[LF_FACESIZE] szFaceName; WORD wWeight; SHORT sSpacing; COLORREF crBackColor; LCID lcid; DWORD dwReserved; SHORT sStyle; WORD wKerning; BYTE bUnderlineType; BYTE bAnimation; BYTE bRevAuthor; } struct CHARFORMAT2W { UINT cbSize = this.sizeof; DWORD dwMask; DWORD dwEffects; LONG yHeight; LONG yOffset; COLORREF crTextColor; BYTE bCharSet; BYTE bPitchAndFamily; WCHAR[LF_FACESIZE] szFaceName; WORD wWeight; SHORT sSpacing; COLORREF crBackColor; LCID lcid; DWORD dwReserved; SHORT sStyle; WORD wKerning; BYTE bUnderlineType; BYTE bAnimation; BYTE bRevAuthor; } struct CHARRANGE { LONG cpMin; LONG cpMax; } struct COMPCOLOR { COLORREF crText; COLORREF crBackground; DWORD dwEffects; } extern (Windows) { alias DWORD function(DWORD,PBYTE,LONG,LONG*) EDITSTREAMCALLBACK; } struct EDITSTREAM { DWORD dwCookie; DWORD dwError; EDITSTREAMCALLBACK pfnCallback; } struct ENCORRECTTEXT { NMHDR nmhdr; CHARRANGE chrg; WORD seltyp; } struct ENDROPFILES { NMHDR nmhdr; HANDLE hDrop; LONG cp; BOOL fProtected; } struct ENLINK { NMHDR nmhdr; UINT msg; WPARAM wParam; LPARAM lParam; CHARRANGE chrg; } struct ENOLEOPFAILED { NMHDR nmhdr; LONG iob; LONG lOper; HRESULT hr; } struct ENPROTECTED { NMHDR nmhdr; UINT msg; WPARAM wParam; LPARAM lParam; CHARRANGE chrg; } alias ENPROTECTED* LPENPROTECTED; struct ENSAVECLIPBOARD { NMHDR nmhdr; LONG cObjectCount; LONG cch; } struct FINDTEXTA { CHARRANGE chrg; LPSTR lpstrText; } struct FINDTEXTW { CHARRANGE chrg; LPWSTR lpstrText; } struct FINDTEXTEXA { CHARRANGE chrg; LPSTR lpstrText; CHARRANGE chrgText; } struct FINDTEXTEXW { CHARRANGE chrg; LPWSTR lpstrText; CHARRANGE chrgText; } struct FORMATRANGE { HDC hdc; HDC hdcTarget; RECT rc; RECT rcPage; CHARRANGE chrg; } struct MSGFILTER { NMHDR nmhdr; UINT msg; WPARAM wParam; LPARAM lParam; } struct PARAFORMAT { UINT cbSize = this.sizeof; DWORD dwMask; WORD wNumbering; WORD wReserved; LONG dxStartIndent; LONG dxRightIndent; LONG dxOffset; WORD wAlignment; SHORT cTabCount; LONG[MAX_TAB_STOPS] rgxTabs; } struct PARAFORMAT2 { UINT cbSize = this.sizeof; DWORD dwMask; WORD wNumbering; WORD wEffects; LONG dxStartIndent; LONG dxRightIndent; LONG dxOffset; WORD wAlignment; SHORT cTabCount; LONG[MAX_TAB_STOPS] rgxTabs; LONG dySpaceBefore; LONG dySpaceAfter; LONG dyLineSpacing; SHORT sStype; BYTE bLineSpacingRule; BYTE bOutlineLevel; WORD wShadingWeight; WORD wShadingStyle; WORD wNumberingStart; WORD wNumberingStyle; WORD wNumberingTab; WORD wBorderSpace; WORD wBorderWidth; WORD wBorders; } struct SELCHANGE { NMHDR nmhdr; CHARRANGE chrg; WORD seltyp; } struct TEXTRANGEA { CHARRANGE chrg; LPSTR lpstrText; } struct TEXTRANGEW { CHARRANGE chrg; LPWSTR lpstrText; } struct REQRESIZE { NMHDR nmhdr; RECT rc; } struct REPASTESPECIAL { DWORD dwAspect; DWORD dwParam; } struct PUNCTUATION { UINT iSize; LPSTR szPunctuation; } struct GETTEXTEX { DWORD cb; DWORD flags; UINT codepage; LPCSTR lpDefaultChar; LPBOOL lpUsedDefChar; } extern (Windows) { alias LONG function(char*,LONG,BYTE,INT) EDITWORDBREAKPROCEX; } /* Defines for EM_SETTYPOGRAPHYOPTIONS */ const TO_ADVANCEDTYPOGRAPHY = 1; const TO_SIMPLELINEBREAK = 2; /* Defines for GETTEXTLENGTHEX */ const GTL_DEFAULT = 0; const GTL_USECRLF = 1; const GTL_PRECISE = 2; const GTL_CLOSE = 4; const GTL_NUMCHARS = 8; const GTL_NUMBYTES = 16; struct GETTEXTLENGTHEX { DWORD flags; UINT codepage; } version(Unicode) { alias CHARFORMATW CHARFORMAT; alias CHARFORMAT2W CHARFORMAT2; alias FINDTEXTW FINDTEXT; alias FINDTEXTEXW FINDTEXTEX; alias TEXTRANGEW TEXTRANGE; } else { alias CHARFORMATA CHARFORMAT; alias CHARFORMAT2A CHARFORMAT2; alias FINDTEXTA FINDTEXT; alias FINDTEXTEXA FINDTEXTEX; alias TEXTRANGEA TEXTRANGE; }