📄 midas_tlb.pas
字号:
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 + -