SRC:DELPHI: Имортированный хидер для MLang.dll часть IV
От: Sinclair Россия https://github.com/evilguest/
Дата: 11.11.02 23:04
Оценка:
procedure TCMLangConvertCharset.ConnectTo(svrIntf: IMLangConvertCharset);
begin
  Disconnect;
  FIntf := svrIntf;
end;

procedure TCMLangConvertCharset.DisConnect;
begin
  if Fintf <> nil then
  begin
    FIntf := nil;
  end;
end;

function TCMLangConvertCharset.GetDefaultInterface: IMLangConvertCharset;
begin
  if FIntf = nil then
    Connect;
  Assert(FIntf <> nil, 'DefaultInterface is NULL. Component is not connected to Server. You must call ''Connect'' or ''ConnectTo'' before this operation');
  Result := FIntf;
end;

constructor TCMLangConvertCharset.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
  FProps := TCMLangConvertCharsetProperties.Create(Self);
{$ENDIF}
end;

destructor TCMLangConvertCharset.Destroy;
begin
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
  FProps.Free;
{$ENDIF}
  inherited Destroy;
end;

{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
function TCMLangConvertCharset.GetServerProperties: TCMLangConvertCharsetProperties;
begin
  Result := FProps;
end;
{$ENDIF}

function TCMLangConvertCharset.Initialize(uiSrcCodePage: SYSUINT; uiDstCodePage: SYSUINT; 
                                          dwProperty: LongWord): HResult;
begin
  Result := DefaultInterface.Initialize(uiSrcCodePage, uiDstCodePage, dwProperty);
end;

function TCMLangConvertCharset.GetSourceCodePage(out puiSrcCodePage: SYSUINT): HResult;
begin
  Result := DefaultInterface.GetSourceCodePage(puiSrcCodePage);
end;

function TCMLangConvertCharset.GetDestinationCodePage(out puiDstCodePage: SYSUINT): HResult;
begin
  Result := DefaultInterface.GetDestinationCodePage(puiDstCodePage);
end;

function TCMLangConvertCharset.GetProperty(out pdwProperty: LongWord): HResult;
begin
  Result := DefaultInterface.GetProperty(pdwProperty);
end;

function TCMLangConvertCharset.DoConversion(var pSrcStr: Byte; var pcSrcSize: SYSUINT; 
                                            var pDstStr: Byte; var pcDstSize: SYSUINT): HResult;
begin
  Result := DefaultInterface.DoConversion(pSrcStr, pcSrcSize, pDstStr, pcDstSize);
end;

function TCMLangConvertCharset.DoConversionToUnicode(var pSrcStr: Shortint; var pcSrcSize: SYSUINT; 
                                                     var pDstStr: Word; var pcDstSize: SYSUINT): HResult;
begin
  Result := DefaultInterface.DoConversionToUnicode(pSrcStr, pcSrcSize, pDstStr, pcDstSize);
end;

function TCMLangConvertCharset.DoConversionFromUnicode(var pSrcStr: Word; var pcSrcSize: SYSUINT; 
                                                       var pDstStr: Shortint; var pcDstSize: SYSUINT): HResult;
begin
  Result := DefaultInterface.DoConversionFromUnicode(pSrcStr, pcSrcSize, pDstStr, pcDstSize);
end;

{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
constructor TCMLangConvertCharsetProperties.Create(AServer: TCMLangConvertCharset);
begin
  inherited Create;
  FServer := AServer;
end;

function TCMLangConvertCharsetProperties.GetDefaultInterface: IMLangConvertCharset;
begin
  Result := FServer.DefaultInterface;
end;

{$ENDIF}

class function CoCMultiLanguage.Create: IMultiLanguage;
begin
  Result := CreateComObject(CLASS_CMultiLanguage) as IMultiLanguage;
end;

class function CoCMultiLanguage.CreateRemote(const MachineName: string): IMultiLanguage;
begin
  Result := CreateRemoteComObject(MachineName, CLASS_CMultiLanguage) as IMultiLanguage;
end;

procedure TCMultiLanguage.InitServerData;
const
  CServerData: TServerData = (
    ClassID:   '{275C23E2-3747-11D0-9FEA-00AA003F8646}';
    IntfIID:   '{275C23E1-3747-11D0-9FEA-00AA003F8646}';
    EventIID:  '';
    LicenseKey: nil;
    Version: 500);
begin
  ServerData := @CServerData;
end;

procedure TCMultiLanguage.Connect;
var
  punk: IUnknown;
begin
  if FIntf = nil then
  begin
    punk := GetServer;
    Fintf:= punk as IMultiLanguage;
  end;
end;

procedure TCMultiLanguage.ConnectTo(svrIntf: IMultiLanguage);
begin
  Disconnect;
  FIntf := svrIntf;
end;

procedure TCMultiLanguage.DisConnect;
begin
  if Fintf <> nil then
  begin
    FIntf := nil;
  end;
end;

function TCMultiLanguage.GetDefaultInterface: IMultiLanguage;
begin
  if FIntf = nil then
    Connect;
  Assert(FIntf <> nil, 'DefaultInterface is NULL. Component is not connected to Server. You must call ''Connect'' or ''ConnectTo'' before this operation');
  Result := FIntf;
end;

constructor TCMultiLanguage.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
  FProps := TCMultiLanguageProperties.Create(Self);
{$ENDIF}
end;

destructor TCMultiLanguage.Destroy;
begin
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
  FProps.Free;
{$ENDIF}
  inherited Destroy;
end;

{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
function TCMultiLanguage.GetServerProperties: TCMultiLanguageProperties;
begin
  Result := FProps;
end;
{$ENDIF}

function TCMultiLanguage.GetNumberOfCodePageInfo(out pcCodePage: SYSUINT): HResult;
begin
  Result := DefaultInterface.GetNumberOfCodePageInfo(pcCodePage);
end;

function TCMultiLanguage.GetCodePageInfo(uiCodePage: SYSUINT; out pCodePageInfo: tagMIMECPINFO): HResult;
begin
  Result := DefaultInterface.GetCodePageInfo(uiCodePage, pCodePageInfo);
end;

function TCMultiLanguage.GetFamilyCodePage(uiCodePage: SYSUINT; out puiFamilyCodePage: SYSUINT): HResult;
begin
  Result := DefaultInterface.GetFamilyCodePage(uiCodePage, puiFamilyCodePage);
end;

function TCMultiLanguage.EnumCodePages(grfFlags: LongWord; out ppEnumCodePage: IEnumCodePage): HResult;
begin
  Result := DefaultInterface.EnumCodePages(grfFlags, ppEnumCodePage);
end;

function TCMultiLanguage.GetCharsetInfo(const Charset: WideString; out pCharsetInfo: tagMIMECSETINFO): HResult;
begin
  Result := DefaultInterface.GetCharsetInfo(Charset, pCharsetInfo);
end;

function TCMultiLanguage.IsConvertible(dwSrcEncoding: LongWord; dwDstEncoding: LongWord): HResult;
begin
  Result := DefaultInterface.IsConvertible(dwSrcEncoding, dwDstEncoding);
end;

function TCMultiLanguage.ConvertString(var pdwMode: LongWord; dwSrcEncoding: LongWord; 
                                       dwDstEncoding: LongWord; var pSrcStr: Byte; 
                                       var pcSrcSize: SYSUINT; var pDstStr: Byte; 
                                       var pcDstSize: SYSUINT): HResult;
begin
  Result := DefaultInterface.ConvertString(pdwMode, dwSrcEncoding, dwDstEncoding, pSrcStr, 
                                           pcSrcSize, pDstStr, pcDstSize);
end;

function TCMultiLanguage.ConvertStringToUnicode(var pdwMode: LongWord; dwEncoding: LongWord; 
                                                var pSrcStr: Shortint; var pcSrcSize: SYSUINT; 
                                                var pDstStr: Word; var pcDstSize: SYSUINT): HResult;
begin
  Result := DefaultInterface.ConvertStringToUnicode(pdwMode, dwEncoding, pSrcStr, pcSrcSize, 
                                                    pDstStr, pcDstSize);
end;

function TCMultiLanguage.ConvertStringFromUnicode(var pdwMode: LongWord; dwEncoding: LongWord; 
                                                  var pSrcStr: Word; var pcSrcSize: SYSUINT; 
                                                  var pDstStr: Shortint; var pcDstSize: SYSUINT): HResult;
begin
  Result := DefaultInterface.ConvertStringFromUnicode(pdwMode, dwEncoding, pSrcStr, pcSrcSize, 
                                                      pDstStr, pcDstSize);
end;

function TCMultiLanguage.ConvertStringReset: HResult;
begin
  Result := DefaultInterface.ConvertStringReset;
end;

function TCMultiLanguage.GetRfc1766FromLcid(locale: LongWord; out pbstrRfc1766: WideString): HResult;
begin
  Result := DefaultInterface.GetRfc1766FromLcid(locale, pbstrRfc1766);
end;

function TCMultiLanguage.GetLcidFromRfc1766(out plocale: LongWord; const bstrRfc1766: WideString): HResult;
begin
  Result := DefaultInterface.GetLcidFromRfc1766(plocale, bstrRfc1766);
end;

function TCMultiLanguage.EnumRfc1766(out ppEnumRfc1766: IEnumRfc1766): HResult;
begin
  Result := DefaultInterface.EnumRfc1766(ppEnumRfc1766);
end;

function TCMultiLanguage.GetRfc1766Info(locale: LongWord; out pRfc1766Info: tagRFC1766INFO): HResult;
begin
  Result := DefaultInterface.GetRfc1766Info(locale, pRfc1766Info);
end;

function TCMultiLanguage.CreateConvertCharset(uiSrcCodePage: SYSUINT; uiDstCodePage: SYSUINT; 
                                              dwProperty: LongWord; 
                                              out ppMLangConvertCharset: IMLangConvertCharset): HResult;
begin
  Result := DefaultInterface.CreateConvertCharset(uiSrcCodePage, uiDstCodePage, dwProperty, 
                                                  ppMLangConvertCharset);
end;

{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
constructor TCMultiLanguageProperties.Create(AServer: TCMultiLanguage);
begin
  inherited Create;
  FServer := AServer;
end;

function TCMultiLanguageProperties.GetDefaultInterface: IMultiLanguage;
begin
  Result := FServer.DefaultInterface;
end;

{$ENDIF}

procedure Register;
begin
  RegisterComponents(dtlServerPage, [TCMLangString, TCMLangConvertCharset, TCMultiLanguage]);
end;

end.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.