📄 pdiiserver_tlb.pas
字号:
end;
procedure Register;
implementation
uses ComObj;
{ TCORBADIIServerStub }
function TCORBADIIServerStub.Employees: OleVariant;
var
OutBuf: IMarshalOutBuffer;
InBuf: IMarshalInBuffer;
begin
FStub.CreateRequest('Employees', True, OutBuf);
FStub.Invoke(OutBuf, InBuf);
Result := UnmarshalAny(InBuf);
end;
{ TCORBADIIServerSkeleton }
constructor TCORBADIIServerSkeleton.Create(const InstanceName: string; const Impl: IUnknown);
begin
inherited;
inherited InitSkeleton('CORBADIIServer', InstanceName, 'IDL:PDIIServer/ICORBADIIServer:1.0', tmMultiThreaded, True);
FIntf := Impl as ICORBADIIServer;
end;
procedure TCORBADIIServerSkeleton.GetImplementation(out Impl: IUnknown);
begin
Impl := FIntf;
end;
procedure TCORBADIIServerSkeleton.Employees(const InBuf: IMarshalInBuffer; Cookie: Pointer);
var
OutBuf: IMarshalOutBuffer;
Retval: OleVariant;
begin
Retval := FIntf.Employees;
FSkeleton.GetReplyBuffer(Cookie, OutBuf);
MarshalAny(OutBuf, Retval);
end;
class function CoCORBADIIServer.Create: ICORBADIIServer;
begin
Result := CreateComObject(CLASS_CORBADIIServer) as ICORBADIIServer;
end;
class function CoCORBADIIServer.CreateRemote(const MachineName: string): ICORBADIIServer;
begin
Result := CreateRemoteComObject(MachineName, CLASS_CORBADIIServer) as ICORBADIIServer;
end;
procedure TCORBADIIServer.InitServerData;
const
CServerData: TServerData = (
ClassID: '{2E842E23-89A5-11D3-8DB9-0080C8518D0A}';
IntfIID: '{2E842E21-89A5-11D3-8DB9-0080C8518D0A}';
EventIID: '';
LicenseKey: nil;
Version: 500);
begin
ServerData := @CServerData;
end;
procedure TCORBADIIServer.Connect;
var
punk: IUnknown;
begin
if FIntf = nil then
begin
punk := GetServer;
Fintf:= punk as ICORBADIIServer;
end;
end;
procedure TCORBADIIServer.ConnectTo(svrIntf: ICORBADIIServer);
begin
Disconnect;
FIntf := svrIntf;
end;
procedure TCORBADIIServer.DisConnect;
begin
if Fintf <> nil then
begin
FIntf := nil;
end;
end;
function TCORBADIIServer.GetDefaultInterface: ICORBADIIServer;
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 TCORBADIIServer.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps := TCORBADIIServerProperties.Create(Self);
{$ENDIF}
end;
destructor TCORBADIIServer.Destroy;
begin
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps.Free;
{$ENDIF}
inherited Destroy;
end;
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
function TCORBADIIServer.GetServerProperties: TCORBADIIServerProperties;
begin
Result := FProps;
end;
{$ENDIF}
function TCORBADIIServer.AS_ApplyUpdates(const ProviderName: WideString; Delta: OleVariant;
MaxErrors: Integer; out ErrorCount: Integer;
var OwnerData: OleVariant): OleVariant;
begin
Result := DefaultInterface.AS_ApplyUpdates(ProviderName, Delta, MaxErrors, ErrorCount, OwnerData);
end;
function TCORBADIIServer.AS_GetRecords(const ProviderName: WideString; Count: Integer;
out RecsOut: Integer; Options: Integer;
const CommandText: WideString; var Params: OleVariant;
var OwnerData: OleVariant): OleVariant;
begin
Result := DefaultInterface.AS_GetRecords(ProviderName, Count, RecsOut, Options, CommandText,
Params, OwnerData);
end;
function TCORBADIIServer.AS_DataRequest(const ProviderName: WideString; Data: OleVariant): OleVariant;
begin
Result := DefaultInterface.AS_DataRequest(ProviderName, Data);
end;
function TCORBADIIServer.AS_GetProviderNames: OleVariant;
begin
Result := DefaultInterface.AS_GetProviderNames;
end;
function TCORBADIIServer.AS_GetParams(const ProviderName: WideString; var OwnerData: OleVariant): OleVariant;
begin
Result := DefaultInterface.AS_GetParams(ProviderName, OwnerData);
end;
function TCORBADIIServer.AS_RowRequest(const ProviderName: WideString; Row: OleVariant;
RequestType: Integer; var OwnerData: OleVariant): OleVariant;
begin
Result := DefaultInterface.AS_RowRequest(ProviderName, Row, RequestType, OwnerData);
end;
procedure TCORBADIIServer.AS_Execute(const ProviderName: WideString; const CommandText: WideString;
var Params: OleVariant; var OwnerData: OleVariant);
begin
DefaultInterface.AS_Execute(ProviderName, CommandText, Params, OwnerData);
end;
function TCORBADIIServer.Employees: OleVariant;
begin
Result := DefaultInterface.Employees;
end;
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
constructor TCORBADIIServerProperties.Create(AServer: TCORBADIIServer);
begin
inherited Create;
FServer := AServer;
end;
function TCORBADIIServerProperties.GetDefaultInterface: ICORBADIIServer;
begin
Result := FServer.DefaultInterface;
end;
{$ENDIF}
class function TCORBADIIServerCorbaFactory.CreateInstance(const InstanceName: string): ICORBADIIServer;
begin
Result := CorbaFactoryCreateStub('IDL:PDIIServer/CORBADIIServerFactory:1.0', 'CORBADIIServer',
InstanceName, '', ICORBADIIServer) as ICORBADIIServer;
end;
procedure Register;
begin
RegisterComponents('Servers',[TCORBADIIServer]);
end;
initialization
CorbaStubManager.RegisterStub(ICORBADIIServer, TCORBADIIServerStub);
CorbaInterfaceIDManager.RegisterInterface(ICORBADIIServer, 'IDL:PDIIServer/ICORBADIIServer:1.0');
CorbaSkeletonManager.RegisterSkeleton(ICORBADIIServer, TCORBADIIServerSkeleton);
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -