Delphi不注册COM直接使用ActiveX控件并绑定事件

上传人:xmg****18 文档编号:120197315 上传时间:2020-02-05 格式:DOC 页数:12 大小:38.50KB
返回 下载 相关 举报
Delphi不注册COM直接使用ActiveX控件并绑定事件_第1页
第1页 / 共12页
Delphi不注册COM直接使用ActiveX控件并绑定事件_第2页
第2页 / 共12页
Delphi不注册COM直接使用ActiveX控件并绑定事件_第3页
第3页 / 共12页
Delphi不注册COM直接使用ActiveX控件并绑定事件_第4页
第4页 / 共12页
Delphi不注册COM直接使用ActiveX控件并绑定事件_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《Delphi不注册COM直接使用ActiveX控件并绑定事件》由会员分享,可在线阅读,更多相关《Delphi不注册COM直接使用ActiveX控件并绑定事件(12页珍藏版)》请在金锄头文库上搜索。

1、.word可编辑.Delphi不注册COM直接使用ActiveX控件并绑定事件 文笔不行,直接上源码:主窗口:delphi view plaincopyunit Unit1; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Vcl.StdCtrls, Winapi.ActiveX , System.Win.ComObj

2、, EventSink; type TForm1 = class(TForm) pnlCom: TPanel; Panel2: TPanel; Panel3: TPanel; btnGo: TButton; edt1: TEdit; LblStatus: TLabel; procedure FormCreate(Sender: TObject); procedure btnGoClick(Sender: TObject); private Private declarations EventSink: TEventSink; ActiveXCon: Variant; function Init

3、Atl: Boolean; procedure EventSinkInvoke(Sender: TObject; DispID: Integer; const IID: TGUID; LocaleID: Integer; Flags: Word; Params: tagDISPPARAMS; VarResult, ExcepInfo, ArgErr: Pointer); public Public declarations end; var Form1: TForm1; const CLASS_MsRdpClient: TGUID = 7CACBD7B-0D99-468F-AC33-22E49

4、5C0AFE5;/791FA017-2DE3-492E-ACC5-53C67A2B94D0; type PIUnknown=IUnknown; TAtlAxAttachControl = function(Control:IUnknown; hwind:hwnd;ppUnkContainer:PIUnknown): HRESULT; stdcall; /-此处参考mstscax.dll的接口文件,如果没有,在 Component->Import Component->Import a Type Library /-导入:Microsoft Terminal Services Act

5、ive Client 1.0 Type Library 1.0 IMsTscAxEvents = dispinterface 336D5562-EFA8-482E-8CB3-C5C0FC7A7DB6 procedure OnConnecting; dispid 1; procedure OnConnected; dispid 2; procedure OnLoginComplete; dispid 3; procedure OnDisconnected(discReason: Integer); dispid 4; procedure OnEnterFullScreenMode; dispid

6、 5; procedure OnLeaveFullScreenMode; dispid 6; procedure OnChannelReceivedData(const chanName: WideString; const data: WideString); dispid 7; procedure OnRequestGoFullScreen; dispid 8; procedure OnRequestLeaveFullScreen; dispid 9; procedure OnFatalError(errorCode: Integer); dispid 10; procedure OnWa

7、rning(warningCode: Integer); dispid 11; procedure OnRemoteDesktopSizeChange(width: Integer; height: Integer); dispid 12; procedure OnIdleTimeoutNotification; dispid 13; procedure OnRequestContainerMinimize; dispid 14; function OnConfirmClose: WordBool; dispid 15; function OnReceivedTSPublicKey(const

8、 publicKey: WideString): WordBool; dispid 16; function OnAutoReconnecting(disconnectReason: Integer; attemptCount: Integer): AutoReconnectContinueState; dispid 17; procedure OnAuthenticationWarningDisplayed; dispid 18; procedure OnAuthenticationWarningDismissed; dispid 19; end; implementation $R *.d

9、fm TForm1 function CreateComObjectFromDll(CLSID: TGUID; DllHandle: THandle): IUnknown; var Factory: IClassFactory; DllGetClassObject: function(const CLSID, IID: TGUID; var Obj): HResult; stdcall; hr: HRESULT; begin DllGetClassObject := GetProcAddress(DllHandle, DllGetClassObject); if Assigned(DllGet

10、ClassObject) then begin hr := DllGetClassObject(CLSID, IClassFactory, Factory); if hr = S_OK then try hr := Factory.CreateInstance(nil, IUnknown, Result); if hr <> S_OK then begin ShowMessage(Error); end; except ShowMessage(IntToStr(GetLastError); end; end; end; procedure TForm1.btnGoClick(Sen

11、der: TObject); begin ActiveXCon.Navigate(edt1.Text); end; procedure TForm1.EventSinkInvoke(Sender: TObject; DispID: Integer; const IID: TGUID; LocaleID: Integer; Flags: Word; Params: tagDISPPARAMS; VarResult, ExcepInfo, ArgErr: Pointer); begin <p> 这里需要注明Params这个参数, 包含了事件的参数 如: Params.rgvarg0 代

12、表第一个参数 Params.rgvarg1 代表第二个参数 . Params.rgvarg65535 代表第65535个参数 最多65535个参数 具体可以参考 tagDISPPARAMS 的定义</p><p> 这里只列出了怎么扑获相关事件,具体功能具体实现 </p> case dispid of $00000001: LblStatus.Caption := 正在连接; $00000002: LblStatus.Caption := 连接成功; $00000003: LblStatus.Caption := 登陆成功; $00000004: LblStat

13、us.Caption := 断开连接; $00000005: LblStatus.Caption := 进入全屏模式; $00000006: LblStatus.Caption := 离开全屏模式; $00000007: LblStatus.Caption := 通道接收数据; $00000008: LblStatus.Caption := OnRequestGoFullScreen; $00000009: LblStatus.Caption := OnRequestLeaveFullScreen; $00000010: LblStatus.Caption := OnFatalError; $

14、00000011: LblStatus.Caption := OnWarning; $00000012: LblStatus.Caption := OnRemoteDesktopSizeChange; $00000013: LblStatus.Caption := OnIdleTimeoutNotification; $00000014: LblStatus.Caption := OnRequestContainerMinimize; $00000015: LblStatus.Caption := OnConfirmClose; $00000016: LblStatus.Caption := OnReceivedTSPublicKey; $00000017: LblStatus.Caption := OnAutoReconnecting; $00000018: LblStatus.Caption := OnAuthenticationWarningDisplayed; $00000019: LblStatus.Caption := OnAuthenticationWarningDismisse

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号