+ wxCHECK_MSG( version >= 1 && version <= 3, FALSE,
+ _T("incorrect richedit control version requested") );
+
+ if ( version <= gs_verRichEdit )
+ {
+ // we've already got this or better
+ return TRUE;
+ }
+
+ if ( gs_hRichEdit )
+ {
+ ::FreeLibrary(gs_hRichEdit);
+ }
+
+ // always try load riched20.dll first - like this we won't have to reload
+ // it later if we're first asked for RE 1 and then for RE 2 or 3
+ wxString dllname = _T("riched20.dll");
+ gs_hRichEdit = ::LoadLibrary(dllname);
+ if ( !gs_hRichEdit && (version == 1) )
+ {
+ // fall back to RE 1
+ dllname = _T("riched32.dll");
+ gs_hRichEdit = ::LoadLibrary(dllname);
+ }
+
+ if ( !gs_hRichEdit )
+ {
+ wxLogSysError(_("Could not load Rich Edit DLL '%s'"), dllname.c_str());
+
+ gs_verRichEdit = -1;
+
+ return FALSE;
+ }
+
+ gs_verRichEdit = version;
+
+ return TRUE;