VistA-cprs/BDK32/Source/RPCSharedBrokerSessionMgr1_...

877 lines
42 KiB
Plaintext

{ **************************************************************
Package: XWB - Kernel RPCBroker
Date Created: Sept 18, 1997 (Version 1.1)
Site Name: Oakland, OI Field Office, Dept of Veteran Affairs
Developers: Joel Ivey
Description: Type library for use with SharedRPCBroker.
Current Release: Version 1.1 Patch 40 (January 7, 2005))
*************************************************************** }
unit RPCSharedBrokerSessionMgr1_TLB;
// ************************************************************************ //
// WARNING
// -------
// The types declared in this file were generated from data read from a
// Type Library. If this type library is explicitly or indirectly (via
// another type library referring to this type library) re-imported, or the
// 'Refresh' command of the Type Library Editor activated while editing the
// Type Library, the contents of this file will be regenerated and all
// manual modifications will be lost.
// ************************************************************************ //
// PASTLWTR : $Revision: 1.88.1.0.1.0 $
// File generated on 1/25/2002 11:58:49 AM from Type Library described below.
// *************************************************************************//
// NOTE:
// Items guarded by $IFDEF_LIVE_SERVER_AT_DESIGN_TIME are used by properties
// which return objects that may need to be explicitly created via a function
// call prior to any access via the property. These items have been disabled
// in order to prevent accidental use from within the object inspector. You
// may enable them by defining LIVE_SERVER_AT_DESIGN_TIME or by selectively
// removing them from the $IFDEF blocks. However, such items must still be
// programmatically created via a method of the appropriate CoClass before
// they can be used.
// ************************************************************************ //
// Type Lib: D:\Development\RPCSharedBroker\Exe1\RPCSharedBrokerSessionMgr1.exe (1)
// IID\LCID: {1F7D1EB0-E54F-46F0-B485-2D56743EBB70}\0
// Helpfile:
// DepndLst:
// (1) v2.0 stdole, (C:\WINNT\System32\stdole2.tlb)
// (2) v4.0 StdVCL, (C:\WINNT\System32\STDVCL40.DLL)
// Errors:
// Error creating palette bitmap of (TSharedBroker) : Invalid GUID format
// ************************************************************************ //
{$TYPEDADDRESS OFF} // Unit must be compiled without type-checked pointers.
interface
uses Windows, ActiveX, Classes, Graphics, OleServer, OleCtrls, StdVCL;
// *********************************************************************//
// GUIDS declared in the TypeLibrary. Following prefixes are used:
// Type Libraries : LIBID_xxxx
// CoClasses : CLASS_xxxx
// DISPInterfaces : DIID_xxxx
// Non-DISP interfaces: IID_xxxx
// *********************************************************************//
const
// TypeLibrary Major and minor versions
RPCSharedBrokerSessionMgr1MajorVersion = 1;
RPCSharedBrokerSessionMgr1MinorVersion = 0;
LIBID_RPCSharedBrokerSessionMgr1: TGUID = '{1F7D1EB0-E54F-46F0-B485-2D56743EBB70}';
IID_ISharedBroker: TGUID = '{E1D9A5E6-B7C6-40AD-AC34-6A3E12BDC328}';
DIID_ISharedBrokerEvents: TGUID = '{CBEA7167-4F9B-465A-B82E-4CEBDF933C35}';
CLASS_SharedBroker: TGUID = '{EB44A5CD-1871-429F-A5BC-19C71B722182}';
// *********************************************************************//
// Declaration of Enumerations defined in Type Library
// *********************************************************************//
// Constants for enum ISharedBrokerErrorCode
type
ISharedBrokerErrorCode = TOleEnum;
const
GeneralFailure = $00000000;
Success = $00000001;
UniqueRpcIdDoesNotExist = $00000002;
UniqueClientIdDoesNotExist = $00000003;
RpcHistoryIndexOutOfRange = $00000004;
RpcHistoryNotEnabled = $00000005;
CouldNotSetContext = $00000006;
CouldNotConnect = $00000007;
ClientIndexOutOfRange = $00000008;
NilClientPointer = $00000009;
ConnectionIndexOutOfRange = $0000000A;
// Constants for enum IRegistryRootEnum
type
IRegistryRootEnum = TOleEnum;
const
HKCR = $00000000;
HKCU = $00000001;
HKLM = $00000002;
HKU = $00000003;
HKCC = $00000004;
HKDD = $00000005;
// Constants for enum ISharedBrokerConnection
type
ISharedBrokerConnection = TOleEnum;
const
Failed = $00000000;
New = $00000001;
Shared = $00000002;
Debug = $00000003;
// Constants for enum ISharedBrokerClient
type
ISharedBrokerClient = TOleEnum;
const
BrokerClient = $00000000;
DebuggerClient = $00000001;
// Constants for enum ISharedBrokerShowErrorMsgs
type
ISharedBrokerShowErrorMsgs = TOleEnum;
const
isemRaise = $00000000;
isemQuiet = $00000001;
type
// *********************************************************************//
// Forward declaration of types defined in TypeLibrary
// *********************************************************************//
ISharedBroker = interface;
ISharedBrokerDisp = dispinterface;
ISharedBrokerEvents = dispinterface;
// *********************************************************************//
// Declaration of CoClasses defined in Type Library
// (NOTE: Here we map each CoClass to its Default Interface)
// *********************************************************************//
SharedBroker = ISharedBroker;
// *********************************************************************//
// Interface: ISharedBroker
// Flags: (4416) Dual OleAutomation Dispatchable
// GUID: {E1D9A5E6-B7C6-40AD-AC34-6A3E12BDC328}
// *********************************************************************//
ISharedBroker = interface(IDispatch)
['{E1D9A5E6-B7C6-40AD-AC34-6A3E12BDC328}']
function BrokerConnect(const ClientName: WideString; ConnectionType: ISharedBrokerClient;
const ServerPort: WideString; WantDebug: WordBool;
AllowShared: WordBool; KernelLogin: WordBool;
ShowErrMsgs: ISharedBrokerShowErrorMsgs; RpcTimeLim: SYSINT;
var LoginStr: WideString; out UniqueClientIId: SYSINT;
out ErrorMsg: WideString): ISharedBrokerErrorCode; safecall;
function BrokerDisconnect: ISharedBrokerErrorCode; safecall;
function BrokerSetContext(const OptionName: WideString): ISharedBrokerErrorCode; safecall;
function BrokerCall(const RpcName: WideString; const RpcParams: WideString;
RpcTimeLimit: Integer; out RpcResults: WideString;
out UniqueRpcCallId: Integer): ISharedBrokerErrorCode; safecall;
function ReadRegDataDefault(Root: IRegistryRootEnum; const Key: WideString;
const Name: WideString; const Default: WideString;
out RegResult: WideString): ISharedBrokerErrorCode; safecall;
function Get_RpcVersion: WideString; safecall;
procedure Set_RpcVersion(const version: WideString); safecall;
function Get_RpcHistoryEnabled: WordBool; safecall;
procedure Set_RpcHistoryEnabled(enabled: WordBool); safecall;
function Get_PerClientRpcHistoryLimit: Integer; safecall;
procedure Set_PerClientRpcHistoryLimit(limit: Integer); safecall;
function GetRpcHistoryCountForClient(UniqueClientId: Integer; out rpcHistoryCount: Integer): ISharedBrokerErrorCode; safecall;
function GetClientIdAndNameFromIndex(clientIndex: Integer; out UniqueClientId: Integer;
out ClientName: WideString): ISharedBrokerErrorCode; safecall;
function LogoutConnectedClients(logoutTimeLimit: Integer): ISharedBrokerErrorCode; safecall;
function GetClientNameFromUniqueClientId(UniqueClientId: Integer; out ClientName: WideString): ISharedBrokerErrorCode; safecall;
function GetActiveBrokerConnectionIndexCount(out connectionIndexCount: Integer): ISharedBrokerErrorCode; safecall;
function GetActiveBrokerConnectionInfo(connectionIndex: Integer;
out connectedServerIp: WideString;
out connectedServerPort: Integer;
out lastContext: WideString): ISharedBrokerErrorCode; safecall;
function GetActiveBrokerConnectionIndexFromUniqueClientId(UniqueClientId: Integer;
out connectionIndex: Integer): ISharedBrokerErrorCode; safecall;
function GetRpcCallFromHistory(uniqueRpcId: Integer; out UniqueClientId: Integer;
out brokerContext: WideString; out RpcName: WideString;
out RpcParams: WideString; out rpcResult: WideString;
out rpcStartDateTime: Double; out rpcDuration: Integer): ISharedBrokerErrorCode; safecall;
function GetRpcCallFromHistoryIndex(UniqueClientId: Integer; rpcCallIndex: Integer;
out uniqueRpcId: Integer; out brokerContext: WideString;
out RpcName: WideString; out RpcParams: WideString;
out rpcResult: WideString; out rpcStartDateTime: Double;
out rpcDuration: Integer): ISharedBrokerErrorCode; safecall;
function GetRpcClientIdFromHistory(uniqueRpcId: Integer; out UniqueClientId: Integer;
out ClientName: WideString): ISharedBrokerErrorCode; safecall;
function GetConnectedClientCount(out connectedClientCount: Integer): ISharedBrokerErrorCode; safecall;
function Get_CurrentContext: WideString; safecall;
function Get_User: WideString; safecall;
function Get_Login: WideString; safecall;
procedure Set_Login(const Value: WideString); safecall;
function Get_RpcbError: WideString; safecall;
function Get_Socket: Integer; safecall;
function Get_KernelLogin: WordBool; safecall;
procedure Set_KernelLogin(Value: WordBool); safecall;
function Get_ShowErrorMsgs: ISharedBrokerShowErrorMsgs; safecall;
procedure Set_ShowErrorMsgs(Value: ISharedBrokerShowErrorMsgs); safecall;
property RpcVersion: WideString read Get_RpcVersion write Set_RpcVersion;
property RpcHistoryEnabled: WordBool read Get_RpcHistoryEnabled write Set_RpcHistoryEnabled;
property PerClientRpcHistoryLimit: Integer read Get_PerClientRpcHistoryLimit write Set_PerClientRpcHistoryLimit;
property CurrentContext: WideString read Get_CurrentContext;
property User: WideString read Get_User;
property Login: WideString read Get_Login write Set_Login;
property RpcbError: WideString read Get_RpcbError;
property Socket: Integer read Get_Socket;
property KernelLogin: WordBool read Get_KernelLogin write Set_KernelLogin;
property ShowErrorMsgs: ISharedBrokerShowErrorMsgs read Get_ShowErrorMsgs write Set_ShowErrorMsgs;
end;
// *********************************************************************//
// DispIntf: ISharedBrokerDisp
// Flags: (4416) Dual OleAutomation Dispatchable
// GUID: {E1D9A5E6-B7C6-40AD-AC34-6A3E12BDC328}
// *********************************************************************//
ISharedBrokerDisp = dispinterface
['{E1D9A5E6-B7C6-40AD-AC34-6A3E12BDC328}']
function BrokerConnect(const ClientName: WideString; ConnectionType: ISharedBrokerClient;
const ServerPort: WideString; WantDebug: WordBool;
AllowShared: WordBool; KernelLogin: WordBool;
ShowErrMsgs: ISharedBrokerShowErrorMsgs; RpcTimeLim: SYSINT;
var LoginStr: WideString; out UniqueClientIId: SYSINT;
out ErrorMsg: WideString): ISharedBrokerErrorCode; dispid 1;
function BrokerDisconnect: ISharedBrokerErrorCode; dispid 2;
function BrokerSetContext(const OptionName: WideString): ISharedBrokerErrorCode; dispid 3;
function BrokerCall(const RpcName: WideString; const RpcParams: WideString;
RpcTimeLimit: Integer; out RpcResults: WideString;
out UniqueRpcCallId: Integer): ISharedBrokerErrorCode; dispid 4;
function ReadRegDataDefault(Root: IRegistryRootEnum; const Key: WideString;
const Name: WideString; const Default: WideString;
out RegResult: WideString): ISharedBrokerErrorCode; dispid 5;
property RpcVersion: WideString dispid 7;
property RpcHistoryEnabled: WordBool dispid 6;
property PerClientRpcHistoryLimit: Integer dispid 8;
function GetRpcHistoryCountForClient(UniqueClientId: Integer; out rpcHistoryCount: Integer): ISharedBrokerErrorCode; dispid 10;
function GetClientIdAndNameFromIndex(clientIndex: Integer; out UniqueClientId: Integer;
out ClientName: WideString): ISharedBrokerErrorCode; dispid 11;
function LogoutConnectedClients(logoutTimeLimit: Integer): ISharedBrokerErrorCode; dispid 12;
function GetClientNameFromUniqueClientId(UniqueClientId: Integer; out ClientName: WideString): ISharedBrokerErrorCode; dispid 13;
function GetActiveBrokerConnectionIndexCount(out connectionIndexCount: Integer): ISharedBrokerErrorCode; dispid 14;
function GetActiveBrokerConnectionInfo(connectionIndex: Integer;
out connectedServerIp: WideString;
out connectedServerPort: Integer;
out lastContext: WideString): ISharedBrokerErrorCode; dispid 15;
function GetActiveBrokerConnectionIndexFromUniqueClientId(UniqueClientId: Integer;
out connectionIndex: Integer): ISharedBrokerErrorCode; dispid 16;
function GetRpcCallFromHistory(uniqueRpcId: Integer; out UniqueClientId: Integer;
out brokerContext: WideString; out RpcName: WideString;
out RpcParams: WideString; out rpcResult: WideString;
out rpcStartDateTime: Double; out rpcDuration: Integer): ISharedBrokerErrorCode; dispid 17;
function GetRpcCallFromHistoryIndex(UniqueClientId: Integer; rpcCallIndex: Integer;
out uniqueRpcId: Integer; out brokerContext: WideString;
out RpcName: WideString; out RpcParams: WideString;
out rpcResult: WideString; out rpcStartDateTime: Double;
out rpcDuration: Integer): ISharedBrokerErrorCode; dispid 18;
function GetRpcClientIdFromHistory(uniqueRpcId: Integer; out UniqueClientId: Integer;
out ClientName: WideString): ISharedBrokerErrorCode; dispid 19;
function GetConnectedClientCount(out connectedClientCount: Integer): ISharedBrokerErrorCode; dispid 20;
property CurrentContext: WideString readonly dispid 9;
property User: WideString readonly dispid 22;
property Login: WideString dispid 23;
property RpcbError: WideString readonly dispid 24;
property Socket: Integer readonly dispid 25;
property KernelLogin: WordBool dispid 26;
property ShowErrorMsgs: ISharedBrokerShowErrorMsgs dispid 27;
end;
// *********************************************************************//
// DispIntf: ISharedBrokerEvents
// Flags: (4096) Dispatchable
// GUID: {CBEA7167-4F9B-465A-B82E-4CEBDF933C35}
// *********************************************************************//
ISharedBrokerEvents = dispinterface
['{CBEA7167-4F9B-465A-B82E-4CEBDF933C35}']
procedure OnLogout; dispid 1;
procedure OnRpcCallRecorded(uniqueRpcId: SYSINT); dispid 2;
procedure OnClientConnect(UniqueClientId: SYSINT; Connection: ISharedBrokerConnection); dispid 3;
procedure OnClientDisconnect(UniqueClientId: SYSINT); dispid 4;
procedure OnContextChanged(connectionIndex: SYSINT; const NewContext: WideString); dispid 5;
procedure OnRPCBFailure(const ErrorText: WideString); dispid 6;
procedure OnLoginError(const ErrorText: WideString); dispid 7;
procedure OnConnectionDropped(connectionIndex: SYSINT; const ErrorText: WideString); dispid 8;
end;
// *********************************************************************//
// The Class CoSharedBroker provides a Create and CreateRemote method to
// create instances of the default interface ISharedBroker exposed by
// the CoClass SharedBroker. The functions are intended to be used by
// clients wishing to automate the CoClass objects exposed by the
// server of this typelibrary.
// *********************************************************************//
CoSharedBroker = class
class function Create: ISharedBroker;
class function CreateRemote(const MachineName: string): ISharedBroker;
end;
TSharedBrokerOnRpcCallRecorded = procedure(Sender: TObject; uniqueRpcId: SYSINT) of object;
TSharedBrokerOnClientConnect = procedure(Sender: TObject; UniqueClientId: SYSINT;
Connection: ISharedBrokerConnection) of object;
TSharedBrokerOnClientDisconnect = procedure(Sender: TObject; UniqueClientId: SYSINT) of object;
TSharedBrokerOnContextChanged = procedure(Sender: TObject; connectionIndex: SYSINT;
var NewContext: OleVariant) of object;
TSharedBrokerOnRPCBFailure = procedure(Sender: TObject; var ErrorText: OleVariant) of object;
TSharedBrokerOnLoginError = procedure(Sender: TObject; var ErrorText: OleVariant) of object;
TSharedBrokerOnConnectionDropped = procedure(Sender: TObject; connectionIndex: SYSINT;
var ErrorText: OleVariant) of object;
// *********************************************************************//
// OLE Server Proxy class declaration
// Server Object : TSharedBroker
// Help String : SharedBroker Object
// Default Interface: ISharedBroker
// Def. Intf. DISP? : No
// Event Interface: ISharedBrokerEvents
// TypeFlags : (2) CanCreate
// *********************************************************************//
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
TSharedBrokerProperties= class;
{$ENDIF}
TSharedBroker = class(TOleServer)
private
FOnLogout: TNotifyEvent;
FOnRpcCallRecorded: TSharedBrokerOnRpcCallRecorded;
FOnClientConnect: TSharedBrokerOnClientConnect;
FOnClientDisconnect: TSharedBrokerOnClientDisconnect;
FOnContextChanged: TSharedBrokerOnContextChanged;
FOnRPCBFailure: TSharedBrokerOnRPCBFailure;
FOnLoginError: TSharedBrokerOnLoginError;
FOnConnectionDropped: TSharedBrokerOnConnectionDropped;
FIntf: ISharedBroker;
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps: TSharedBrokerProperties;
function GetServerProperties: TSharedBrokerProperties;
{$ENDIF}
function GetDefaultInterface: ISharedBroker;
protected
procedure InitServerData; override;
procedure InvokeEvent(DispID: TDispID; var Params: TVariantArray); override;
function Get_RpcVersion: WideString;
procedure Set_RpcVersion(const version: WideString);
function Get_RpcHistoryEnabled: WordBool;
procedure Set_RpcHistoryEnabled(enabled: WordBool);
function Get_PerClientRpcHistoryLimit: Integer;
procedure Set_PerClientRpcHistoryLimit(limit: Integer);
function Get_CurrentContext: WideString;
function Get_User: WideString;
function Get_Login: WideString;
procedure Set_Login(const Value: WideString);
function Get_RpcbError: WideString;
function Get_Socket: Integer;
function Get_KernelLogin: WordBool;
procedure Set_KernelLogin(Value: WordBool);
function Get_ShowErrorMsgs: ISharedBrokerShowErrorMsgs;
procedure Set_ShowErrorMsgs(Value: ISharedBrokerShowErrorMsgs);
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure Connect; override;
procedure ConnectTo(svrIntf: ISharedBroker);
procedure Disconnect; override;
function BrokerConnect(const ClientName: WideString; ConnectionType: ISharedBrokerClient;
const ServerPort: WideString; WantDebug: WordBool;
AllowShared: WordBool; KernelLogin: WordBool;
ShowErrMsgs: ISharedBrokerShowErrorMsgs; RpcTimeLim: SYSINT;
var LoginStr: WideString; out UniqueClientIId: SYSINT;
out ErrorMsg: WideString): ISharedBrokerErrorCode;
function BrokerDisconnect: ISharedBrokerErrorCode;
function BrokerSetContext(const OptionName: WideString): ISharedBrokerErrorCode;
function BrokerCall(const RpcName: WideString; const RpcParams: WideString;
RpcTimeLimit: Integer; out RpcResults: WideString;
out UniqueRpcCallId: Integer): ISharedBrokerErrorCode;
function ReadRegDataDefault(Root: IRegistryRootEnum; const Key: WideString;
const Name: WideString; const Default: WideString;
out RegResult: WideString): ISharedBrokerErrorCode;
function GetRpcHistoryCountForClient(UniqueClientId: Integer; out rpcHistoryCount: Integer): ISharedBrokerErrorCode;
function GetClientIdAndNameFromIndex(clientIndex: Integer; out UniqueClientId: Integer;
out ClientName: WideString): ISharedBrokerErrorCode;
function LogoutConnectedClients(logoutTimeLimit: Integer): ISharedBrokerErrorCode;
function GetClientNameFromUniqueClientId(UniqueClientId: Integer; out ClientName: WideString): ISharedBrokerErrorCode;
function GetActiveBrokerConnectionIndexCount(out connectionIndexCount: Integer): ISharedBrokerErrorCode;
function GetActiveBrokerConnectionInfo(connectionIndex: Integer;
out connectedServerIp: WideString;
out connectedServerPort: Integer;
out lastContext: WideString): ISharedBrokerErrorCode;
function GetActiveBrokerConnectionIndexFromUniqueClientId(UniqueClientId: Integer;
out connectionIndex: Integer): ISharedBrokerErrorCode;
function GetRpcCallFromHistory(uniqueRpcId: Integer; out UniqueClientId: Integer;
out brokerContext: WideString; out RpcName: WideString;
out RpcParams: WideString; out rpcResult: WideString;
out rpcStartDateTime: Double; out rpcDuration: Integer): ISharedBrokerErrorCode;
function GetRpcCallFromHistoryIndex(UniqueClientId: Integer; rpcCallIndex: Integer;
out uniqueRpcId: Integer; out brokerContext: WideString;
out RpcName: WideString; out RpcParams: WideString;
out rpcResult: WideString; out rpcStartDateTime: Double;
out rpcDuration: Integer): ISharedBrokerErrorCode;
function GetRpcClientIdFromHistory(uniqueRpcId: Integer; out UniqueClientId: Integer;
out ClientName: WideString): ISharedBrokerErrorCode;
function GetConnectedClientCount(out connectedClientCount: Integer): ISharedBrokerErrorCode;
property DefaultInterface: ISharedBroker read GetDefaultInterface;
property CurrentContext: WideString read Get_CurrentContext;
property User: WideString read Get_User;
property RpcbError: WideString read Get_RpcbError;
property Socket: Integer read Get_Socket;
property RpcVersion: WideString read Get_RpcVersion write Set_RpcVersion;
property RpcHistoryEnabled: WordBool read Get_RpcHistoryEnabled write Set_RpcHistoryEnabled;
property PerClientRpcHistoryLimit: Integer read Get_PerClientRpcHistoryLimit write Set_PerClientRpcHistoryLimit;
property Login: WideString read Get_Login write Set_Login;
property KernelLogin: WordBool read Get_KernelLogin write Set_KernelLogin;
property ShowErrorMsgs: ISharedBrokerShowErrorMsgs read Get_ShowErrorMsgs write Set_ShowErrorMsgs;
published
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
property Server: TSharedBrokerProperties read GetServerProperties;
{$ENDIF}
property OnLogout: TNotifyEvent read FOnLogout write FOnLogout;
property OnRpcCallRecorded: TSharedBrokerOnRpcCallRecorded read FOnRpcCallRecorded write FOnRpcCallRecorded;
property OnClientConnect: TSharedBrokerOnClientConnect read FOnClientConnect write FOnClientConnect;
property OnClientDisconnect: TSharedBrokerOnClientDisconnect read FOnClientDisconnect write FOnClientDisconnect;
property OnContextChanged: TSharedBrokerOnContextChanged read FOnContextChanged write FOnContextChanged;
property OnRPCBFailure: TSharedBrokerOnRPCBFailure read FOnRPCBFailure write FOnRPCBFailure;
property OnLoginError: TSharedBrokerOnLoginError read FOnLoginError write FOnLoginError;
property OnConnectionDropped: TSharedBrokerOnConnectionDropped read FOnConnectionDropped write FOnConnectionDropped;
end;
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
// *********************************************************************//
// OLE Server Properties Proxy Class
// Server Object : TSharedBroker
// (This object is used by the IDE's Property Inspector to allow editing
// of the properties of this server)
// *********************************************************************//
TSharedBrokerProperties = class(TPersistent)
private
FServer: TSharedBroker;
function GetDefaultInterface: ISharedBroker;
constructor Create(AServer: TSharedBroker);
protected
function Get_RpcVersion: WideString;
procedure Set_RpcVersion(const version: WideString);
function Get_RpcHistoryEnabled: WordBool;
procedure Set_RpcHistoryEnabled(enabled: WordBool);
function Get_PerClientRpcHistoryLimit: Integer;
procedure Set_PerClientRpcHistoryLimit(limit: Integer);
function Get_CurrentContext: WideString;
function Get_User: WideString;
function Get_Login: WideString;
procedure Set_Login(const Value: WideString);
function Get_RpcbError: WideString;
function Get_Socket: Integer;
function Get_KernelLogin: WordBool;
procedure Set_KernelLogin(Value: WordBool);
function Get_ShowErrorMsgs: ISharedBrokerShowErrorMsgs;
procedure Set_ShowErrorMsgs(Value: ISharedBrokerShowErrorMsgs);
public
property DefaultInterface: ISharedBroker read GetDefaultInterface;
published
property RpcVersion: WideString read Get_RpcVersion write Set_RpcVersion;
property RpcHistoryEnabled: WordBool read Get_RpcHistoryEnabled write Set_RpcHistoryEnabled;
property PerClientRpcHistoryLimit: Integer read Get_PerClientRpcHistoryLimit write Set_PerClientRpcHistoryLimit;
property Login: WideString read Get_Login write Set_Login;
property KernelLogin: WordBool read Get_KernelLogin write Set_KernelLogin;
property ShowErrorMsgs: ISharedBrokerShowErrorMsgs read Get_ShowErrorMsgs write Set_ShowErrorMsgs;
end;
{$ENDIF}
// procedure Register;
implementation
uses ComObj;
class function CoSharedBroker.Create: ISharedBroker;
begin
Result := CreateComObject(CLASS_SharedBroker) as ISharedBroker;
end;
class function CoSharedBroker.CreateRemote(const MachineName: string): ISharedBroker;
begin
Result := CreateRemoteComObject(MachineName, CLASS_SharedBroker) as ISharedBroker;
end;
procedure TSharedBroker.InitServerData;
const
CServerData: TServerData = (
ClassID: '{EB44A5CD-1871-429F-A5BC-19C71B722182}';
IntfIID: '{E1D9A5E6-B7C6-40AD-AC34-6A3E12BDC328}';
EventIID: '{CBEA7167-4F9B-465A-B82E-4CEBDF933C35}';
LicenseKey: nil;
Version: 500);
begin
ServerData := @CServerData;
end;
procedure TSharedBroker.Connect;
var
punk: IUnknown;
begin
if FIntf = nil then
begin
punk := GetServer;
ConnectEvents(punk);
Fintf:= punk as ISharedBroker;
end;
end;
procedure TSharedBroker.ConnectTo(svrIntf: ISharedBroker);
begin
Disconnect;
FIntf := svrIntf;
ConnectEvents(FIntf);
end;
procedure TSharedBroker.DisConnect;
begin
if Fintf <> nil then
begin
DisconnectEvents(FIntf);
FIntf := nil;
end;
end;
function TSharedBroker.GetDefaultInterface: ISharedBroker;
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 TSharedBroker.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps := TSharedBrokerProperties.Create(Self);
{$ENDIF}
end;
destructor TSharedBroker.Destroy;
begin
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps.Free;
{$ENDIF}
inherited Destroy;
end;
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
function TSharedBroker.GetServerProperties: TSharedBrokerProperties;
begin
Result := FProps;
end;
{$ENDIF}
procedure TSharedBroker.InvokeEvent(DispID: TDispID; var Params: TVariantArray);
begin
case DispID of
-1: Exit; // DISPID_UNKNOWN
1: if Assigned(FOnLogout) then
FOnLogout(Self);
2: if Assigned(FOnRpcCallRecorded) then
FOnRpcCallRecorded(Self, Params[0] {SYSINT});
3: if Assigned(FOnClientConnect) then
FOnClientConnect(Self, Params[0] {SYSINT}, Params[1] {ISharedBrokerConnection});
4: if Assigned(FOnClientDisconnect) then
FOnClientDisconnect(Self, Params[0] {SYSINT});
5: if Assigned(FOnContextChanged) then
FOnContextChanged(Self, Params[0] {SYSINT}, Params[1] {const WideString});
6: if Assigned(FOnRPCBFailure) then
FOnRPCBFailure(Self, Params[0] {const WideString});
7: if Assigned(FOnLoginError) then
FOnLoginError(Self, Params[0] {const WideString});
8: if Assigned(FOnConnectionDropped) then
FOnConnectionDropped(Self, Params[0] {SYSINT}, Params[1] {const WideString});
end; {case DispID}
end;
function TSharedBroker.Get_RpcVersion: WideString;
begin
Result := DefaultInterface.Get_RpcVersion;
end;
procedure TSharedBroker.Set_RpcVersion(const version: WideString);
begin
DefaultInterface.Set_RpcVersion(version);
end;
function TSharedBroker.Get_RpcHistoryEnabled: WordBool;
begin
Result := DefaultInterface.Get_RpcHistoryEnabled;
end;
procedure TSharedBroker.Set_RpcHistoryEnabled(enabled: WordBool);
begin
DefaultInterface.Set_RpcHistoryEnabled(enabled);
end;
function TSharedBroker.Get_PerClientRpcHistoryLimit: Integer;
begin
Result := DefaultInterface.Get_PerClientRpcHistoryLimit;
end;
procedure TSharedBroker.Set_PerClientRpcHistoryLimit(limit: Integer);
begin
DefaultInterface.Set_PerClientRpcHistoryLimit(limit);
end;
function TSharedBroker.Get_CurrentContext: WideString;
begin
Result := DefaultInterface.Get_CurrentContext;
end;
function TSharedBroker.Get_User: WideString;
begin
Result := DefaultInterface.Get_User;
end;
function TSharedBroker.Get_Login: WideString;
begin
Result := DefaultInterface.Get_Login;
end;
procedure TSharedBroker.Set_Login(const Value: WideString);
begin
DefaultInterface.Set_Login(Value);
end;
function TSharedBroker.Get_RpcbError: WideString;
begin
Result := DefaultInterface.Get_RpcbError;
end;
function TSharedBroker.Get_Socket: Integer;
begin
Result := DefaultInterface.Get_Socket;
end;
function TSharedBroker.Get_KernelLogin: WordBool;
begin
Result := DefaultInterface.Get_KernelLogin;
end;
procedure TSharedBroker.Set_KernelLogin(Value: WordBool);
begin
DefaultInterface.Set_KernelLogin(Value);
end;
function TSharedBroker.Get_ShowErrorMsgs: ISharedBrokerShowErrorMsgs;
begin
Result := DefaultInterface.Get_ShowErrorMsgs;
end;
procedure TSharedBroker.Set_ShowErrorMsgs(Value: ISharedBrokerShowErrorMsgs);
begin
DefaultInterface.Set_ShowErrorMsgs(Value);
end;
function TSharedBroker.BrokerConnect(const ClientName: WideString;
ConnectionType: ISharedBrokerClient;
const ServerPort: WideString; WantDebug: WordBool;
AllowShared: WordBool; KernelLogin: WordBool;
ShowErrMsgs: ISharedBrokerShowErrorMsgs; RpcTimeLim: SYSINT;
var LoginStr: WideString; out UniqueClientIId: SYSINT;
out ErrorMsg: WideString): ISharedBrokerErrorCode;
begin
Result := DefaultInterface.BrokerConnect(ClientName, ConnectionType, ServerPort, WantDebug,
AllowShared, KernelLogin, ShowErrMsgs, RpcTimeLim,
LoginStr, UniqueClientIId, ErrorMsg);
end;
function TSharedBroker.BrokerDisconnect: ISharedBrokerErrorCode;
begin
Result := DefaultInterface.BrokerDisconnect;
end;
function TSharedBroker.BrokerSetContext(const OptionName: WideString): ISharedBrokerErrorCode;
begin
Result := DefaultInterface.BrokerSetContext(OptionName);
end;
function TSharedBroker.BrokerCall(const RpcName: WideString; const RpcParams: WideString;
RpcTimeLimit: Integer; out RpcResults: WideString;
out UniqueRpcCallId: Integer): ISharedBrokerErrorCode;
begin
Result := DefaultInterface.BrokerCall(RpcName, RpcParams, RpcTimeLimit, RpcResults,
UniqueRpcCallId);
end;
function TSharedBroker.ReadRegDataDefault(Root: IRegistryRootEnum; const Key: WideString;
const Name: WideString; const Default: WideString;
out RegResult: WideString): ISharedBrokerErrorCode;
begin
Result := DefaultInterface.ReadRegDataDefault(Root, Key, Name, Default, RegResult);
end;
function TSharedBroker.GetRpcHistoryCountForClient(UniqueClientId: Integer;
out rpcHistoryCount: Integer): ISharedBrokerErrorCode;
begin
Result := DefaultInterface.GetRpcHistoryCountForClient(UniqueClientId, rpcHistoryCount);
end;
function TSharedBroker.GetClientIdAndNameFromIndex(clientIndex: Integer;
out UniqueClientId: Integer;
out ClientName: WideString): ISharedBrokerErrorCode;
begin
Result := DefaultInterface.GetClientIdAndNameFromIndex(clientIndex, UniqueClientId, ClientName);
end;
function TSharedBroker.LogoutConnectedClients(logoutTimeLimit: Integer): ISharedBrokerErrorCode;
begin
Result := DefaultInterface.LogoutConnectedClients(logoutTimeLimit);
end;
function TSharedBroker.GetClientNameFromUniqueClientId(UniqueClientId: Integer;
out ClientName: WideString): ISharedBrokerErrorCode;
begin
Result := DefaultInterface.GetClientNameFromUniqueClientId(UniqueClientId, ClientName);
end;
function TSharedBroker.GetActiveBrokerConnectionIndexCount(out connectionIndexCount: Integer): ISharedBrokerErrorCode;
begin
Result := DefaultInterface.GetActiveBrokerConnectionIndexCount(connectionIndexCount);
end;
function TSharedBroker.GetActiveBrokerConnectionInfo(connectionIndex: Integer;
out connectedServerIp: WideString;
out connectedServerPort: Integer;
out lastContext: WideString): ISharedBrokerErrorCode;
begin
Result := DefaultInterface.GetActiveBrokerConnectionInfo(connectionIndex, connectedServerIp,
connectedServerPort, lastContext);
end;
function TSharedBroker.GetActiveBrokerConnectionIndexFromUniqueClientId(UniqueClientId: Integer;
out connectionIndex: Integer): ISharedBrokerErrorCode;
begin
Result := DefaultInterface.GetActiveBrokerConnectionIndexFromUniqueClientId(UniqueClientId,
connectionIndex);
end;
function TSharedBroker.GetRpcCallFromHistory(uniqueRpcId: Integer; out UniqueClientId: Integer;
out brokerContext: WideString;
out RpcName: WideString; out RpcParams: WideString;
out rpcResult: WideString;
out rpcStartDateTime: Double; out rpcDuration: Integer): ISharedBrokerErrorCode;
begin
Result := DefaultInterface.GetRpcCallFromHistory(uniqueRpcId, UniqueClientId, brokerContext,
RpcName, RpcParams, rpcResult, rpcStartDateTime,
rpcDuration);
end;
function TSharedBroker.GetRpcCallFromHistoryIndex(UniqueClientId: Integer; rpcCallIndex: Integer;
out uniqueRpcId: Integer;
out brokerContext: WideString;
out RpcName: WideString;
out RpcParams: WideString;
out rpcResult: WideString;
out rpcStartDateTime: Double;
out rpcDuration: Integer): ISharedBrokerErrorCode;
begin
Result := DefaultInterface.GetRpcCallFromHistoryIndex(UniqueClientId, rpcCallIndex, uniqueRpcId,
brokerContext, RpcName, RpcParams,
rpcResult, rpcStartDateTime, rpcDuration);
end;
function TSharedBroker.GetRpcClientIdFromHistory(uniqueRpcId: Integer;
out UniqueClientId: Integer;
out ClientName: WideString): ISharedBrokerErrorCode;
begin
Result := DefaultInterface.GetRpcClientIdFromHistory(uniqueRpcId, UniqueClientId, ClientName);
end;
function TSharedBroker.GetConnectedClientCount(out connectedClientCount: Integer): ISharedBrokerErrorCode;
begin
Result := DefaultInterface.GetConnectedClientCount(connectedClientCount);
end;
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
constructor TSharedBrokerProperties.Create(AServer: TSharedBroker);
begin
inherited Create;
FServer := AServer;
end;
function TSharedBrokerProperties.GetDefaultInterface: ISharedBroker;
begin
Result := FServer.DefaultInterface;
end;
function TSharedBrokerProperties.Get_RpcVersion: WideString;
begin
Result := DefaultInterface.Get_RpcVersion;
end;
procedure TSharedBrokerProperties.Set_RpcVersion(const version: WideString);
begin
DefaultInterface.Set_RpcVersion(version);
end;
function TSharedBrokerProperties.Get_RpcHistoryEnabled: WordBool;
begin
Result := DefaultInterface.Get_RpcHistoryEnabled;
end;
procedure TSharedBrokerProperties.Set_RpcHistoryEnabled(enabled: WordBool);
begin
DefaultInterface.Set_RpcHistoryEnabled(enabled);
end;
function TSharedBrokerProperties.Get_PerClientRpcHistoryLimit: Integer;
begin
Result := DefaultInterface.Get_PerClientRpcHistoryLimit;
end;
procedure TSharedBrokerProperties.Set_PerClientRpcHistoryLimit(limit: Integer);
begin
DefaultInterface.Set_PerClientRpcHistoryLimit(limit);
end;
function TSharedBrokerProperties.Get_CurrentContext: WideString;
begin
Result := DefaultInterface.Get_CurrentContext;
end;
function TSharedBrokerProperties.Get_User: WideString;
begin
Result := DefaultInterface.Get_User;
end;
function TSharedBrokerProperties.Get_Login: WideString;
begin
Result := DefaultInterface.Get_Login;
end;
procedure TSharedBrokerProperties.Set_Login(const Value: WideString);
begin
DefaultInterface.Set_Login(Value);
end;
function TSharedBrokerProperties.Get_RpcbError: WideString;
begin
Result := DefaultInterface.Get_RpcbError;
end;
function TSharedBrokerProperties.Get_Socket: Integer;
begin
Result := DefaultInterface.Get_Socket;
end;
function TSharedBrokerProperties.Get_KernelLogin: WordBool;
begin
Result := DefaultInterface.Get_KernelLogin;
end;
procedure TSharedBrokerProperties.Set_KernelLogin(Value: WordBool);
begin
DefaultInterface.Set_KernelLogin(Value);
end;
function TSharedBrokerProperties.Get_ShowErrorMsgs: ISharedBrokerShowErrorMsgs;
begin
Result := DefaultInterface.Get_ShowErrorMsgs;
end;
procedure TSharedBrokerProperties.Set_ShowErrorMsgs(Value: ISharedBrokerShowErrorMsgs);
begin
DefaultInterface.Set_ShowErrorMsgs(Value);
end;
{$ENDIF}
{
procedure Register;
begin
RegisterComponents('Kernel',[TSharedBroker]);
end;
}
end.