📄 agentobjects_tlb.pas
字号:
procedure Click(const CharacterID: WideString; Button: Smallint; Shift: Smallint; x: Smallint;
y: Smallint); dispid 2;
procedure DblClick(const CharacterID: WideString; Button: Smallint; Shift: Smallint;
x: Smallint; y: Smallint); dispid 4;
procedure DragStart(const CharacterID: WideString; Button: Smallint; Shift: Smallint;
x: Smallint; y: Smallint); dispid 5;
procedure DragComplete(const CharacterID: WideString; Button: Smallint; Shift: Smallint;
x: Smallint; y: Smallint); dispid 6;
procedure Show(const CharacterID: WideString; Cause: Smallint); dispid 15;
procedure Hide(const CharacterID: WideString; Cause: Smallint); dispid 7;
procedure RequestStart(const Request: IDispatch); dispid 9;
procedure RequestComplete(const Request: IDispatch); dispid 11;
procedure Restart; dispid 21;
procedure Shutdown; dispid 12;
procedure Bookmark(BookmarkID: Integer); dispid 16;
procedure Command(const UserInput: IDispatch); dispid 17;
procedure IdleStart(const CharacterID: WideString); dispid 19;
procedure IdleComplete(const CharacterID: WideString); dispid 20;
procedure Move(const CharacterID: WideString; x: Smallint; y: Smallint; Cause: Smallint); dispid 22;
procedure Size(const CharacterID: WideString; Width: Smallint; Height: Smallint); dispid 23;
procedure BalloonShow(const CharacterID: WideString); dispid 24;
procedure BalloonHide(const CharacterID: WideString); dispid 25;
procedure HelpComplete(const CharacterID: WideString; const Name: WideString; Cause: Smallint); dispid 26;
procedure ListenStart(const CharacterID: WideString); dispid 27;
procedure ListenComplete(const CharacterID: WideString; Cause: Smallint); dispid 28;
procedure DefaultCharacterChange(const GUID: WideString); dispid 30;
procedure AgentPropertyChange; dispid 31;
procedure ActiveClientChange(const CharacterID: WideString; Active: WordBool); dispid 32;
end;
// *********************************************************************//
// OLE Control Proxy class declaration
// Control Name : TAgent
// Help String : Microsoft Agent Control 2.0
// Default Interface: IAgentCtlEx
// Def. Intf. DISP? : No
// Event Interface: _AgentEvents
// TypeFlags : (2) CanCreate
// *********************************************************************//
TAgentActivateInput = procedure(Sender: TObject; const CharacterID: WideString) of object;
TAgentDeactivateInput = procedure(Sender: TObject; const CharacterID: WideString) of object;
TAgentClick = procedure(Sender: TObject; const CharacterID: WideString; Button: Smallint;
Shift: Smallint; x: Smallint; y: Smallint) of object;
TAgentDblClick = procedure(Sender: TObject; const CharacterID: WideString; Button: Smallint;
Shift: Smallint; x: Smallint; y: Smallint) of object;
TAgentDragStart = procedure(Sender: TObject; const CharacterID: WideString; Button: Smallint;
Shift: Smallint; x: Smallint; y: Smallint) of object;
TAgentDragComplete = procedure(Sender: TObject; const CharacterID: WideString; Button: Smallint;
Shift: Smallint; x: Smallint; y: Smallint) of object;
TAgentShow = procedure(Sender: TObject; const CharacterID: WideString; Cause: Smallint) of object;
TAgentHide = procedure(Sender: TObject; const CharacterID: WideString; Cause: Smallint) of object;
TAgentRequestStart = procedure(Sender: TObject; const Request: IDispatch) of object;
TAgentRequestComplete = procedure(Sender: TObject; const Request: IDispatch) of object;
TAgentBookmark = procedure(Sender: TObject; BookmarkID: Integer) of object;
TAgentCommand = procedure(Sender: TObject; const UserInput: IDispatch) of object;
TAgentIdleStart = procedure(Sender: TObject; const CharacterID: WideString) of object;
TAgentIdleComplete = procedure(Sender: TObject; const CharacterID: WideString) of object;
TAgentMove = procedure(Sender: TObject; const CharacterID: WideString; x: Smallint; y: Smallint;
Cause: Smallint) of object;
TAgentSize = procedure(Sender: TObject; const CharacterID: WideString; Width: Smallint;
Height: Smallint) of object;
TAgentBalloonShow = procedure(Sender: TObject; const CharacterID: WideString) of object;
TAgentBalloonHide = procedure(Sender: TObject; const CharacterID: WideString) of object;
TAgentHelpComplete = procedure(Sender: TObject; const CharacterID: WideString;
const Name: WideString; Cause: Smallint) of object;
TAgentListenStart = procedure(Sender: TObject; const CharacterID: WideString) of object;
TAgentListenComplete = procedure(Sender: TObject; const CharacterID: WideString; Cause: Smallint) of object;
TAgentDefaultCharacterChange = procedure(Sender: TObject; const GUID: WideString) of object;
TAgentActiveClientChange = procedure(Sender: TObject; const CharacterID: WideString;
Active: WordBool) of object;
TAgent = class(TOleControl)
private
FOnActivateInput: TAgentActivateInput;
FOnDeactivateInput: TAgentDeactivateInput;
FOnClick: TAgentClick;
FOnDblClick: TAgentDblClick;
FOnDragStart: TAgentDragStart;
FOnDragComplete: TAgentDragComplete;
FOnShow: TAgentShow;
FOnHide: TAgentHide;
FOnRequestStart: TAgentRequestStart;
FOnRequestComplete: TAgentRequestComplete;
FOnRestart: TNotifyEvent;
FOnShutdown: TNotifyEvent;
FOnBookmark: TAgentBookmark;
FOnCommand: TAgentCommand;
FOnIdleStart: TAgentIdleStart;
FOnIdleComplete: TAgentIdleComplete;
FOnMove: TAgentMove;
FOnSize: TAgentSize;
FOnBalloonShow: TAgentBalloonShow;
FOnBalloonHide: TAgentBalloonHide;
FOnHelpComplete: TAgentHelpComplete;
FOnListenStart: TAgentListenStart;
FOnListenComplete: TAgentListenComplete;
FOnDefaultCharacterChange: TAgentDefaultCharacterChange;
FOnAgentPropertyChange: TNotifyEvent;
FOnActiveClientChange: TAgentActiveClientChange;
FIntf: IAgentCtlEx;
function GetControlInterface: IAgentCtlEx;
protected
procedure CreateControl;
procedure InitControlData; override;
function Get_Characters: IAgentCtlCharacters;
function Get_AudioOutput: IAgentCtlAudioObjectEx;
function Get_SpeechInput: IAgentCtlSpeechInput;
function Get_PropertySheet: IAgentCtlPropertySheet;
function Get_CommandsWindow: IAgentCtlCommandsWindow;
public
procedure ShowDefaultCharacterProperties; overload;
procedure ShowDefaultCharacterProperties(x: OleVariant); overload;
procedure ShowDefaultCharacterProperties(x: OleVariant; y: OleVariant); overload;
property ControlInterface: IAgentCtlEx read GetControlInterface;
property DefaultInterface: IAgentCtlEx read GetControlInterface;
property Characters: IAgentCtlCharacters read Get_Characters;
property AudioOutput: IAgentCtlAudioObjectEx read Get_AudioOutput;
property SpeechInput: IAgentCtlSpeechInput read Get_SpeechInput;
property PropertySheet: IAgentCtlPropertySheet read Get_PropertySheet;
property CommandsWindow: IAgentCtlCommandsWindow read Get_CommandsWindow;
property Suspended: WordBool index 14 read GetWordBoolProp;
published
property Connected: WordBool index 9 read GetWordBoolProp write SetWordBoolProp stored False;
property RaiseRequestErrors: WordBool index 21 read GetWordBoolProp write SetWordBoolProp stored False;
property OnActivateInput: TAgentActivateInput read FOnActivateInput write FOnActivateInput;
property OnDeactivateInput: TAgentDeactivateInput read FOnDeactivateInput write FOnDeactivateInput;
property OnClick: TAgentClick read FOnClick write FOnClick;
property OnDblClick: TAgentDblClick read FOnDblClick write FOnDblClick;
property OnDragStart: TAgentDragStart read FOnDragStart write FOnDragStart;
property OnDragComplete: TAgentDragComplete read FOnDragComplete write FOnDragComplete;
property OnShow: TAgentShow read FOnShow write FOnShow;
property OnHide: TAgentHide read FOnHide write FOnHide;
property OnRequestStart: TAgentRequestStart read FOnRequestStart write FOnRequestStart;
property OnRequestComplete: TAgentRequestComplete read FOnRequestComplete write FOnRequestComplete;
property OnRestart: TNotifyEvent read FOnRestart write FOnRestart;
property OnShutdown: TNotifyEvent read FOnShutdown write FOnShutdown;
property OnBookmark: TAgentBookmark read FOnBookmark write FOnBookmark;
property OnCommand: TAgentCommand read FOnCommand write FOnCommand;
property OnIdleStart: TAgentIdleStart read FOnIdleStart write FOnIdleStart;
property OnIdleComplete: TAgentIdleComplete read FOnIdleComplete write FOnIdleComplete;
property OnMove: TAgentMove read FOnMove write FOnMove;
property OnSize: TAgentSize read FOnSize write FOnSize;
property OnBalloonShow: TAgentBalloonShow read FOnBalloonShow write FOnBalloonShow;
property OnBalloonHide: TAgentBalloonHide read FOnBalloonHide write FOnBalloonHide;
property OnHelpComplete: TAgentHelpComplete read FOnHelpComplete write FOnHelpComplete;
property OnListenStart: TAgentListenStart read FOnListenStart write FOnListenStart;
property OnListenComplete: TAgentListenComplete read FOnListenComplete write FOnListenComplete;
property OnDefaultCharacterChange: TAgentDefaultCharacterChange read FOnDefaultCharacterChange write FOnDefaultCharacterChange;
property OnAgentPropertyChange: TNotifyEvent read FOnAgentPropertyChange write FOnAgentPropertyChange;
property OnActiveClientChange: TAgentActiveClientChange read FOnActiveClientChange write FOnActiveClientChange;
end;
procedure Register;
implementation
uses ComObj;
procedure TAgent.InitControlData;
const
CEventDispIDs: array [0..25] of DWORD = (
$00000001, $00000003, $00000002, $00000004, $00000005, $00000006,
$0000000F, $00000007, $00000009, $0000000B, $00000015, $0000000C,
$00000010, $00000011, $00000013, $00000014, $00000016, $00000017,
$00000018, $00000019, $0000001A, $0000001B, $0000001C, $0000001E,
$0000001F, $00000020);
CControlData: TControlData2 = (
ClassID: '{D45FD31B-5C6E-11D1-9EC1-00C04FD7081F}';
EventIID: '{F5BE8BD4-7DE6-11D0-91FE-00C04FD701A5}';
EventCount: 26;
EventDispIDs: @CEventDispIDs;
LicenseKey: nil (*HR:$80040154*);
Flags: $00000000;
Version: 401);
begin
ControlData := @CControlData;
TControlData2(CControlData).FirstEventOfs := Cardinal(@@FOnActivateInput) - Cardinal(Self);
end;
procedure TAgent.CreateControl;
procedure DoCreate;
begin
FIntf := IUnknown(OleObject) as IAgentCtlEx;
end;
begin
if FIntf = nil then DoCreate;
end;
function TAgent.GetControlInterface: IAgentCtlEx;
begin
CreateControl;
Result := FIntf;
end;
function TAgent.Get_Characters: IAgentCtlCharacters;
begin
Result := DefaultInterface.Get_Characters;
end;
function TAgent.Get_AudioOutput: IAgentCtlAudioObjectEx;
begin
Result := DefaultInterface.Get_AudioOutput;
end;
function TAgent.Get_SpeechInput: IAgentCtlSpeechInput;
begin
Result := DefaultInterface.Get_SpeechInput;
end;
function TAgent.Get_PropertySheet: IAgentCtlPropertySheet;
begin
Result := DefaultInterface.Get_PropertySheet;
end;
function TAgent.Get_CommandsWindow: IAgentCtlCommandsWindow;
begin
Result := DefaultInterface.Get_CommandsWindow;
end;
procedure TAgent.ShowDefaultCharacterProperties;
begin
DefaultInterface.ShowDefaultCharacterProperties(EmptyParam, EmptyParam);
end;
procedure TAgent.ShowDefaultCharacterProperties(x: OleVariant);
begin
DefaultInterface.ShowDefaultCharacterProperties(x, EmptyParam);
end;
procedure TAgent.ShowDefaultCharacterProperties(x: OleVariant; y: OleVariant);
begin
DefaultInterface.ShowDefaultCharacterProperties(x, y);
end;
procedure Register;
begin
RegisterComponents('ActiveX',[TAgent]);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -