178 lines
4.4 KiB
Plaintext
178 lines
4.4 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: Danila Manapsal, Don Craven, Joel Ivey
|
|
Description: Property Editors for TRPCBroker component.
|
|
Current Release: Version 1.1 Patch 40 (January 7, 2005))
|
|
*************************************************************** }
|
|
|
|
unit RpcbEdtr;
|
|
|
|
{$I IISBase.inc}
|
|
|
|
interface
|
|
|
|
uses
|
|
{Delphi standard}
|
|
Classes, Controls, Dialogs,
|
|
{$IFDEF D6_OR_HIGHER}
|
|
DesignIntf, DesignEditors, DesignMenus,
|
|
{$ELSE}
|
|
DsgnIntf,
|
|
{$ENDIF}
|
|
Forms, Graphics, Messages, SysUtils,
|
|
WinProcs, WinTypes,
|
|
Trpcb; //P14 -- pack split
|
|
|
|
|
|
type
|
|
|
|
{------ TRemoteProc property editor ------}
|
|
{This property editor gets a list of remote procedures from the API file.}
|
|
|
|
TRemoteProcProperty = class(TStringProperty)
|
|
private
|
|
{ Private declarations }
|
|
protected
|
|
{ Protected declarations }
|
|
public
|
|
{ Public declarations }
|
|
function GetAttributes: TPropertyAttributes; override;
|
|
procedure GetValues(Proc: TGetStrProc); override;
|
|
procedure SetValue(const Value: string); override;
|
|
end;
|
|
|
|
|
|
{------ TServerProperty property editor ------}
|
|
{This property editor gets a list of servers from the C:\WINDOWS\HOSTS file}
|
|
|
|
TServerProperty = class(TStringProperty)
|
|
private
|
|
{ Private declarations }
|
|
protected
|
|
{ Protected declarations }
|
|
public
|
|
{ Public declarations }
|
|
function GetAttributes: TPropertyAttributes; override;
|
|
procedure GetValues(Proc: TGetStrProc); override;
|
|
function GetValue: string; override;
|
|
procedure SetValue(const Value: string); override;
|
|
end;
|
|
|
|
|
|
{------ TRpcVersion property editor ------}
|
|
{This property editor checks to make sure that RpcVersion is not eimpty.
|
|
If it is, it stuffs '0' (default).}
|
|
|
|
TRpcVersionProperty = class(TStringProperty)
|
|
private
|
|
{ Private declarations }
|
|
protected
|
|
{ Protected declarations }
|
|
public
|
|
{ Public declarations }
|
|
procedure SetValue(const Value: string); override;
|
|
end;
|
|
|
|
|
|
procedure Register;
|
|
|
|
|
|
implementation
|
|
|
|
|
|
uses
|
|
XWBut1, MFunStr, {TRPCB,} Hash, RpcbErr; //P14 -- pack split
|
|
|
|
function TRemoteProcProperty.GetAttributes;
|
|
begin
|
|
Result := [paAutoUpdate,paValueList];
|
|
end;
|
|
|
|
procedure TRemoteProcProperty.GetValues(Proc: TGetStrProc);
|
|
var
|
|
RpcbEdited, RPCBTemp: TRPCBroker;
|
|
I: integer;
|
|
begin
|
|
RPCBTemp := nil;
|
|
RpcbEdited := GetComponent(0) as TRPCBroker;
|
|
try
|
|
RPCBTemp := TRPCBroker.Create(RpcbEdited);
|
|
with RpcbTemp do begin
|
|
ShowErrorMsgs := RpcbEdited.ShowErrorMsgs;
|
|
Server := RpcbEdited.Server;
|
|
ListenerPort := RpcbEdited.ListenerPort;
|
|
ClearParameters := True;
|
|
ClearResults := True;
|
|
RemoteProcedure := 'XWB RPC LIST';
|
|
Param[0].Value := GetValue;
|
|
Param[0].PType := literal;
|
|
Call;
|
|
for I := 0 to Results.Count - 1 do Proc(Results[I]);
|
|
end;
|
|
finally
|
|
RPCBTemp.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TRemoteProcProperty.SetValue(const Value: string);
|
|
begin
|
|
SetStrValue(UpperCase(Piece(Value,' [',1))); {convert user entry all to upper case}
|
|
end;
|
|
|
|
function TServerProperty.GetAttributes;
|
|
begin
|
|
Result := [paAutoUpdate,paValueList];
|
|
end;
|
|
|
|
function TServerProperty.GetValue: string;
|
|
begin
|
|
Result := Piece(GetStrValue,' [',1); {get just the name}
|
|
end;
|
|
|
|
procedure TServerProperty.GetValues(Proc: TGetStrProc);
|
|
var
|
|
ServerList: TStringList;
|
|
I: integer;
|
|
begin
|
|
ServerList := TStringList.Create;
|
|
GetHostList(ServerList);
|
|
for I := 0 to ServerList.Count - 1 do Proc(ServerList[I]);
|
|
ServerList.Free;
|
|
end;
|
|
|
|
procedure TServerProperty.SetValue(const Value: string);
|
|
begin
|
|
SetStrValue(Piece(Value,' [',1)); {get just the name}
|
|
end;
|
|
|
|
procedure TRpcVersionProperty.SetValue(const Value: string);
|
|
begin
|
|
{
|
|
try
|
|
if Value = '' then NetError('Configure',XWB_NullRpcVer)
|
|
else SetStrValue(Value);
|
|
except
|
|
on E: EBrokerError do begin
|
|
ShowBrokerError(E);
|
|
SetStrValue('0');
|
|
end;
|
|
end;
|
|
}
|
|
if Value <> '' then SetStrValue(Value)
|
|
else begin
|
|
ShowMessage('RPCVersion cannot be empty. Default is 0 (zero).');
|
|
SetStrValue('0');
|
|
end;
|
|
end;
|
|
|
|
procedure Register;
|
|
begin
|
|
RegisterPropertyEditor(TypeInfo(TRemoteProc),nil,'',TRemoteProcProperty);
|
|
RegisterPropertyEditor(TypeInfo(TServer),nil,'',TServerProperty);
|
|
RegisterPropertyEditor(TypeInfo(TRpcVersion),nil,'',TRpcVersionProperty);
|
|
end;
|
|
|
|
end.
|