Содержание материала

Все системы с Интернет Explorer 4 и новее есть библиотека mlang.dll в\system32 каталог. Обычно вы можете сказать, Дельфы, чтобы просто импортировать эти библиотеки com. Этот, однако, не Делфи. Я начал преобразования "самых разыскиваемых интерфейс" для себя. Результаты я представляю вам здесь.

Сначала я дам вам код для блока преобразования, который позволяет Вам просто преобразовать любой текст из страницы кодекса перевод на другую. Далее мы вскоре будем обсуждать код и дать вам пример того, как использовать его.

uCodePageConverter

Code:

{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

*

* Unit Name : uCodePageConverter

* Autor     : Daniel Wischnewski

* Copyright : Copyright © by gate(n)etwork. All Right Reserved.

* Urheber   : Daniel Wischnewski

*

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}

 

unit uCodePageConverter;

 

interface

 

uses

Windows;

 

const

IID_MLangConvertCharset: TGUID = '{D66D6F98-CDAA-11D0-B822-00C04FC9B31F}';

CLASS_MLangConvertCharset: TGUID = '{D66D6F99-CDAA-11D0-B822-00C04FC9B31F}';

 

type

tagMLCONVCHARF = DWORD;

 

const

MLCONVCHARF_AUTODETECT: tagMLCONVCHARF = 1;

MLCONVCHARF_ENTITIZE: tagMLCONVCHARF = 2;

 

type

tagCODEPAGE = UINT;

 

const

CODEPAGE_Thai: tagCODEPAGE = 0874;

CODEPAGE_Japanese: tagCODEPAGE = 0932;

CODEPAGE_Chinese_PRC: tagCODEPAGE = 0936;

CODEPAGE_Korean: tagCODEPAGE = 0949;

CODEPAGE_Chinese_Taiwan: tagCODEPAGE = 0950;

CODEPAGE_UniCode: tagCODEPAGE = 1200;

CODEPAGE_Windows_31_EastEurope: tagCODEPAGE = 1250;

CODEPAGE_Windows_31_Cyrillic: tagCODEPAGE = 1251;

CODEPAGE_Windows_31_Latin1: tagCODEPAGE = 1252;

CODEPAGE_Windows_31_Greek: tagCODEPAGE = 1253;

CODEPAGE_Windows_31_Turkish: tagCODEPAGE = 1254;

CODEPAGE_Hebrew: tagCODEPAGE = 1255;

CODEPAGE_Arabic: tagCODEPAGE = 1256;

CODEPAGE_Baltic: tagCODEPAGE = 1257;

 

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.

 

 

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить