⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 midas_tlb.pas

📁 delphi多层应用系统 delphi多层应用系统
💻 PAS
📖 第 1 页 / 共 2 页
字号:
  OutBuf: IMarshalOutBuffer;
  InBuf: IMarshalInBuffer;
begin
  FStub.CreateRequest('AS_GetProviderNames', True, OutBuf);
  FStub.Invoke(OutBuf, InBuf);
  Result := UnmarshalAny(InBuf);
end;

function TAppServerStub.AS_GetParams(const ProviderName: WideString; var OwnerData: OleVariant): OleVariant;
var
  OutBuf: IMarshalOutBuffer;
  InBuf: IMarshalInBuffer;
begin
  FStub.CreateRequest('AS_GetParams', True, OutBuf);
  OutBuf.PutWideText(PWideChar(Pointer(ProviderName)));
  MarshalAny(OutBuf, OwnerData);
  FStub.Invoke(OutBuf, InBuf);
  Result := UnmarshalAny(InBuf);
  OwnerData := UnmarshalAny(InBuf);
end;

function TAppServerStub.AS_RowRequest(const ProviderName: WideString; Row: OleVariant; 
                                      RequestType: Integer; var OwnerData: OleVariant): OleVariant;
var
  OutBuf: IMarshalOutBuffer;
  InBuf: IMarshalInBuffer;
begin
  FStub.CreateRequest('AS_RowRequest', True, OutBuf);
  OutBuf.PutWideText(PWideChar(Pointer(ProviderName)));
  MarshalAny(OutBuf, Row);
  OutBuf.PutLong(RequestType);
  MarshalAny(OutBuf, OwnerData);
  FStub.Invoke(OutBuf, InBuf);
  Result := UnmarshalAny(InBuf);
  OwnerData := UnmarshalAny(InBuf);
end;

procedure TAppServerStub.AS_Execute(const ProviderName: WideString; const CommandText: WideString; 
                                    var Params: OleVariant; var OwnerData: OleVariant);
var
  OutBuf: IMarshalOutBuffer;
  InBuf: IMarshalInBuffer;
begin
  FStub.CreateRequest('AS_Execute', True, OutBuf);
  OutBuf.PutWideText(PWideChar(Pointer(ProviderName)));
  OutBuf.PutWideText(PWideChar(Pointer(CommandText)));
  MarshalAny(OutBuf, Params);
  MarshalAny(OutBuf, OwnerData);
  FStub.Invoke(OutBuf, InBuf);
  Params := UnmarshalAny(InBuf);
  OwnerData := UnmarshalAny(InBuf);
end;

{ TAppServerSkeleton }

constructor TAppServerSkeleton.Create(const InstanceName: string; const Impl: IUnknown);
begin
  inherited;
  inherited InitSkeleton('AppServer', InstanceName, 'IDL:Midas/IAppServer:1.0', tmMultiThreaded, True);
  FIntf := Impl as IAppServer;
end;

procedure TAppServerSkeleton.GetImplementation(out Impl: IUnknown);
begin
  Impl := FIntf;
end;

procedure TAppServerSkeleton.AS_ApplyUpdates(const InBuf: IMarshalInBuffer; Cookie: Pointer);
var
  OutBuf: IMarshalOutBuffer;
  Retval: OleVariant;
  ProviderName: WideString;
  Delta: OleVariant;
  MaxErrors: Integer;
  ErrorCount: Integer;
  OwnerData: OleVariant;
begin
  ProviderName := UnmarshalWideText(InBuf);
  Delta := UnmarshalAny(InBuf);
  MaxErrors := InBuf.GetLong;
  OwnerData := UnmarshalAny(InBuf);
  Retval := FIntf.AS_ApplyUpdates(ProviderName, Delta, MaxErrors, ErrorCount, OwnerData);
  FSkeleton.GetReplyBuffer(Cookie, OutBuf);
  MarshalAny(OutBuf, Retval);
  OutBuf.PutLong(ErrorCount);
  MarshalAny(OutBuf, OwnerData);
end;

procedure TAppServerSkeleton.AS_GetRecords(const InBuf: IMarshalInBuffer; Cookie: Pointer);
var
  OutBuf: IMarshalOutBuffer;
  Retval: OleVariant;
  ProviderName: WideString;
  Count: Integer;
  RecsOut: Integer;
  Options: Integer;
  CommandText: WideString;
  Params: OleVariant;
  OwnerData: OleVariant;
begin
  ProviderName := UnmarshalWideText(InBuf);
  Count := InBuf.GetLong;
  Options := InBuf.GetLong;
  CommandText := UnmarshalWideText(InBuf);
  Params := UnmarshalAny(InBuf);
  OwnerData := UnmarshalAny(InBuf);
  Retval := FIntf.AS_GetRecords(ProviderName, Count, RecsOut, Options, CommandText, Params, OwnerData);
  FSkeleton.GetReplyBuffer(Cookie, OutBuf);
  MarshalAny(OutBuf, Retval);
  OutBuf.PutLong(RecsOut);
  MarshalAny(OutBuf, Params);
  MarshalAny(OutBuf, OwnerData);
end;

procedure TAppServerSkeleton.AS_DataRequest(const InBuf: IMarshalInBuffer; Cookie: Pointer);
var
  OutBuf: IMarshalOutBuffer;
  Retval: OleVariant;
  ProviderName: WideString;
  Data: OleVariant;
begin
  ProviderName := UnmarshalWideText(InBuf);
  Data := UnmarshalAny(InBuf);
  Retval := FIntf.AS_DataRequest(ProviderName, Data);
  FSkeleton.GetReplyBuffer(Cookie, OutBuf);
  MarshalAny(OutBuf, Retval);
end;

procedure TAppServerSkeleton.AS_GetProviderNames(const InBuf: IMarshalInBuffer; Cookie: Pointer);
var
  OutBuf: IMarshalOutBuffer;
  Retval: OleVariant;
begin
  Retval := FIntf.AS_GetProviderNames;
  FSkeleton.GetReplyBuffer(Cookie, OutBuf);
  MarshalAny(OutBuf, Retval);
end;

procedure TAppServerSkeleton.AS_GetParams(const InBuf: IMarshalInBuffer; Cookie: Pointer);
var
  OutBuf: IMarshalOutBuffer;
  Retval: OleVariant;
  ProviderName: WideString;
  OwnerData: OleVariant;
begin
  ProviderName := UnmarshalWideText(InBuf);
  OwnerData := UnmarshalAny(InBuf);
  Retval := FIntf.AS_GetParams(ProviderName, OwnerData);
  FSkeleton.GetReplyBuffer(Cookie, OutBuf);
  MarshalAny(OutBuf, Retval);
  MarshalAny(OutBuf, OwnerData);
end;

procedure TAppServerSkeleton.AS_RowRequest(const InBuf: IMarshalInBuffer; Cookie: Pointer);
var
  OutBuf: IMarshalOutBuffer;
  Retval: OleVariant;
  ProviderName: WideString;
  Row: OleVariant;
  RequestType: Integer;
  OwnerData: OleVariant;
begin
  ProviderName := UnmarshalWideText(InBuf);
  Row := UnmarshalAny(InBuf);
  RequestType := InBuf.GetLong;
  OwnerData := UnmarshalAny(InBuf);
  Retval := FIntf.AS_RowRequest(ProviderName, Row, RequestType, OwnerData);
  FSkeleton.GetReplyBuffer(Cookie, OutBuf);
  MarshalAny(OutBuf, Retval);
  MarshalAny(OutBuf, OwnerData);
end;

procedure TAppServerSkeleton.AS_Execute(const InBuf: IMarshalInBuffer; Cookie: Pointer);
var
  OutBuf: IMarshalOutBuffer;
  ProviderName: WideString;
  CommandText: WideString;
  Params: OleVariant;
  OwnerData: OleVariant;
begin
  ProviderName := UnmarshalWideText(InBuf);
  CommandText := UnmarshalWideText(InBuf);
  Params := UnmarshalAny(InBuf);
  OwnerData := UnmarshalAny(InBuf);
  FIntf.AS_Execute(ProviderName, CommandText, Params, OwnerData);
  FSkeleton.GetReplyBuffer(Cookie, OutBuf);
  MarshalAny(OutBuf, Params);
  MarshalAny(OutBuf, OwnerData);
end;

initialization
  CorbaStubManager.RegisterStub(IAppServer, TAppServerStub);
  CorbaInterfaceIDManager.RegisterInterface(IAppServer, 'IDL:Midas/IAppServer:1.0');
  CorbaSkeletonManager.RegisterSkeleton(IAppServer, TAppServerSkeleton);

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -