7 inline VOID
GenericInsertText(LPCWSTR lpszText
, LONG InsertedTextLen
, DWORD dwEffects
)
10 LONG Len
= GetTextLen();
15 SetText
.flags
= ST_SELECTION
;
16 SetText
.codepage
= 1200;
18 SendMessageW(EM_SETTEXTEX
, (WPARAM
) &SetText
, (LPARAM
) lpszText
);
20 SetRangeFormatting(Len
, Len
+ InsertedTextLen
,
21 (dwEffects
== CFM_LINK
) ? (PathIsURLW(lpszText
) ? dwEffects
: 0) : dwEffects
);
26 VOID
SetRangeFormatting(LONG Start
, LONG End
, DWORD dwEffects
)
28 CHARFORMAT2W CharFormat
;
30 SendMessageW(EM_SETSEL
, Start
, End
);
32 ZeroMemory(&CharFormat
, sizeof(CharFormat
));
34 CharFormat
.cbSize
= sizeof(CharFormat
);
35 CharFormat
.dwMask
= dwEffects
;
36 CharFormat
.dwEffects
= dwEffects
;
38 SendMessageW(EM_SETCHARFORMAT
, SCF_WORD
| SCF_SELECTION
, (LPARAM
) &CharFormat
);
40 SendMessageW(EM_SETSEL
, End
, End
+ 1);
45 GETTEXTLENGTHEX TxtLenStruct
;
47 TxtLenStruct
.flags
= GTL_NUMCHARS
;
48 TxtLenStruct
.codepage
= 1200;
50 return (LONG
) SendMessageW(EM_GETTEXTLENGTHEX
, (WPARAM
) &TxtLenStruct
, 0);
54 * Insert text (without cleaning old text)
61 VOID
InsertText(LPCWSTR lpszText
, DWORD dwEffects
)
63 GenericInsertText(lpszText
, wcslen(lpszText
), dwEffects
);
66 VOID
InsertText(const ATL::CStringW
& szText
, DWORD dwEffects
)
68 GenericInsertText(szText
.GetString(), szText
.GetLength(), dwEffects
);
71 * Clear old text and add new
73 VOID
SetText(LPCWSTR lpszText
, DWORD dwEffects
)
76 InsertText(lpszText
, dwEffects
);
79 VOID
SetText(const ATL::CStringW
& szText
, DWORD dwEffects
)
81 SetText(szText
.GetString(), dwEffects
);
84 HWND
Create(HWND hwndParent
)
86 LoadedLibrary
= LoadLibraryW(L
"riched20.dll");
88 m_hWnd
= CreateWindowExW(0,
91 WS_CHILD
| WS_VISIBLE
| ES_MULTILINE
|
92 ES_LEFT
| ES_READONLY
,
96 _AtlBaseModule
.GetModuleInstance(),
101 SendMessageW(EM_SETBKGNDCOLOR
, 0, GetSysColor(COLOR_BTNFACE
));
102 SendMessageW(WM_SETFONT
, (WPARAM
) GetStockObject(DEFAULT_GUI_FONT
), 0);
103 SendMessageW(EM_SETEVENTMASK
, 0, ENM_LINK
| ENM_MOUSEEVENTS
);
104 SendMessageW(EM_SHOWSCROLLBAR
, SB_VERT
, TRUE
);
110 virtual VOID
OnLink(ENLINK
*Link
)
116 FreeLibrary(LoadedLibrary
);