Все системы (Win 95 + и WinNT4 +) с MS Internet Explorer 4 и более новые имеют библиотеки mlang.dll в Winnt System32. Обычно вы можете сказать, Delphi, чтобы просто импортировать эти COM библиотеки. Это одно однако, Delphi этого не сделали. Я начал конвертировать "Most Wanted" интерфейс для себя. Результаты я представляю вам здесь.
Сначала я даю вам код для преобразования блока, что позволяет просто конвертировать любой текст из кода интерпретации страницы в другую. Далее код и пример того, как его использовать.
type
IMLangConvertCharset = interface
['{D66D6F98-CDAA-11D0-B822-00C04FC9B31F}']
function Initialize(
uiSrcCodePage: tagCODEPAGE; uiDstCodePage: tagCODEPAGE;
dwProperty: tagMLCONVCHARF
): HResult; stdcall;
function GetSourceCodePage(
out puiSrcCodePage: tagCODEPAGE
): HResult; stdcall;
function GetDestinationCodePage(
out puiDstCodePage: tagCODEPAGE
): HResult; stdcall;
function GetProperty(out pdwProperty: tagMLCONVCHARF): HResult; stdcall;
function DoConversion(
pSrcStr: PChar; pcSrcSize: PUINT; pDstStr: PChar; pcDstSize: PUINT
): HResult; stdcall;
function DoConversionToUnicode(
pSrcStr: PChar; pcSrcSize: PUINT; pDstStr: PWChar; pcDstSize: PUINT
): HResult; stdcall;
function DoConversionFromUnicode(
pSrcStr: PWChar; pcSrcSize: PUINT; pDstStr: PChar; pcDstSize: PUINT
): HResult; stdcall;
end;
CoMLangConvertCharset = class
class function Create: IMLangConvertCharset;
class function CreateRemote(const MachineName: string): IMLangConvertCharset;
end;
implementation
uses
ComObj;
{ CoMLangConvertCharset }
class function CoMLangConvertCharset.Create: IMLangConvertCharset;
begin
Result := CreateComObject(CLASS_MLangConvertCharset) as IMLangConvertCharset;
end;
class function CoMLangConvertCharset.CreateRemote(
const MachineName: string
): IMLangConvertCharset;
begin
Result := CreateRemoteComObject(
MachineName, CLASS_MLangConvertCharset
) as IMLangConvertCharset;
end;
end.
Как вы видите, я сделал перевод только одного из многих интерфейсов, однако эта является наиболее эффективным (по данным Microsoft) и самое главное этого достаточно, чтобы делать эту работу. Далее я добавил несколько констант, чтобы упростить задачу поиска наиболее важных ценностей.
При использовании данного юнита делая конвертациб для любой кодовой страницы вы не должны забывать, что оба кода страницы (источник и пункт назначения) должны быть установлены и поддерживаются на компьютере, для которых делается перевод.
Чтобы проверить код нужно просто создать форму с мемо и кнопки. Добавить следующий код кнопки на событие OnClick . (Не забудьте добавить код преобразования в предложении USES!)
Конвертирование кодовой страницы: статья предлагает утилиту для конвертации текста из одной кодовой страницы в другую, используя библиотеку mlang.dll MS Internet Explorer 4 и более новых систем.
Комментарии и вопросы
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.