文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院程序开发VB如何在VB中实现ActiveX控件的IobjectSafety接口
精品推荐
特别推荐
·VB表格控件总览与例程分析
·用VB6.0制作画图板
·VB打造超酷个性化菜单(六)
·MSHFlexGrid 控件的应用
·Visual Basic 控件简介
·利用硬盘序列号计算软件注册码
·计算机等级考试二级VB常用算法:排序
·用diskid.dll和disk32.dll获得硬盘序列号
·VB6中使用Winsock穿越各种代理的实现
·在VFP、VB应用程序中激活鼠标功能
·vb基础(打印问题)
·想用就用,VB基础代码
·运用多媒体WAV文件格式二三例
·VB基础学习:编码规范
·VB实现程序的隐形
·使用.NET Framework从VB6中访问事件日志
·怎样把VC++代码转换成VB代码
·如何用VB程序来播放WAV文件
·VB 实用函数集
·用VB制作RM压缩软件
热点TOP10
·VB+Access设计图书管理系统
·DataGrid 控件的使用
·VB设计有语音报时和报警功能的闹钟
·窗体控件大小随窗体大小变化而变化
·Visual Basic 控件简介
·VB中使用DirectX库的简明教程
·串口通讯及其在VB平台下的实现
·用VB跟我学做记事本(很简单哟)
·VB API函数介绍--绘图函数
·用VB6.0制作画图板
·Visual Basic CommonDialog 控件的使用
·VB中使用EXCEL输出
·编写电话拨号程序时一点小技巧
·用VB.net2008编写数据查询窗体
·VB表格控件总览与例程分析
·用VB6.0设计一个打字练习软件
·用diskid.dll和disk32.dll获得硬盘序列号
·VB编程之路-如何让界面美化
·VB经典:操作.ini文件的通用类源代码
·用VB播放Avi、Wave、midi文件

如何在VB中实现ActiveX控件的IobjectSafety接口

日期:2007年5月1日 作者: 查看:[大字体 中字体 小字体]



  总述
本文叙述了如何在VB中实现控件的IobjectSafety接口,以标志该控件是脚本安全和初始化安全的。VB控件默认的处理方式是在注册表中注册组件类来标识其安全性,但实现IobjectSafety接口是更好的方法。本言语包括了实现过程中所需的所有代码。

请注意,控件只有确确实实是安全的,才能被标识为“安全的”。本文并未论及如何确保控件的安全性,这个问题请参阅Internet Client Software Development Kit (SDK)中的相关文档 "Safe Initialization and Scripting for ActiveX Controls",它在Component Development 栏目中。


相关信息:
<此处略去了一段也许无关紧要的警告>

现在开始循序渐进地举例说明怎样创建一个简单的VB控件,以及怎样将它标识为脚本安全和初始化安全。
首先新建一个文件夹来存放在本例中所产生的文件。

从VB CD-ROM取得OLE 自动化类库的制作工具。将VB安装光盘中\Common\Tools\VB\Unsupprt\Typlib\目录下所有内容一并拷贝到前面新建的项目文件夹中。


把下列内容拷贝到“记事本”中,然后保存到上述文件夹,文件名为Objsafe.odl:


[
uuid(C67830E0-D11D-11cf-BD80-00AA00575603),
helpstring("VB IObjectSafety Interface"),
version(1.0)
]
library IObjectSafetyTLB
{
importlib("stdole2.tlb");
[
uuid(CB5BDC81-93C1-11cf-8F20-00805F2CD064),
helpstring("IObjectSafety Interface"),
odl
]
interface IObjectSafety:IUnknown {
[helpstring("GetInterfaceSafetyOptions")]
HRESULT GetInterfaceSafetyOptions(
[in] long riid,
[in] long *pdwSupportedOptions,
[in] long *pdwEnabledOptions);

[helpstring("SetInterfaceSafetyOptions")]
HRESULT SetInterfaceSafetyOptions(
[in] long riid,
[in] long dwOptionsSetMask,
[in] long dwEnabledOptions);
}
}
在命令行提示符下切换到项目文件夹,输入下列命令创建一个.tlb 文件:


MKTYPLIB objsafe.odl /tlb objsafe.tlb
在VB中新建一个ActiveX Control 项目。修改属性,把项目命名为IobjSafety,控件命名为DemoCtl。在控件上放置一个按钮,命名为cmdTest,在它的Click事件中加入一句代码 MsgBox "Test" 。


打开菜单“工程->引用”,点“浏览”,找到刚刚建立的Objsafe.tlb,把它加入到引用中。


增加一个新module名为basSafeCtl,并在其中加入下列代码:


Option Explicit

Public Const IID_IDispatch = "{00020400-0000-0000-C000-000000000046}"
Public Const IID_IPersistStorage = _
"{0000010A-0000-0000-C000-000000000046}"
Public Const IID_IPersistStream = _
"{00000109-0000-0000-C000-000000000046}"
Public Const IID_IPersistPropertyBag = _
"{37D84F60-42CB-11CE-8135-00AA004BB851}"

Public Const INTERFACESAFE_FOR_UNTRUSTED_CALLER = &H1
Public Const INTERFACESAFE_FOR_UNTRUSTED_DATA = &H2
Public Const E_NOINTERFACE = &H80004002
Public Const E_FAIL = &H80004005
Public Const MAX_GUIDLEN = 40

Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _
(pDest As Any, pSource As Any, ByVal ByteLen As Long)
Public Declare Function StringFromGUID2 Lib "ole32.dll" (rguid As _
Any, ByVal lpstrClsId As Long, ByVal cbMax As Integer) As Long


[1] [2] [3] 下一页 




上一篇:如何在VB中分割一个文件并组装恢复它

下一篇:如何在VB中实现Undo(撤消)功能?

如何在VB中实现ActiveX控件的IobjectSafety接口 相关文章:
·如何在QQ空间加入播放器代码
·如何实现局域网打印机共享
·TCP/IP编程实现远程文件传输
·Visual C++ 实现数字化图像的分割
·ASP.NET购物车的实现及结算处理
·一个Struts实现分页,增删改查,Tiles,国际化的DEMO
·用C语言实现Ping程序功能
·javascript+xml实现二级下拉菜单,不会被任何标签或元素遮住
·windows 2003服务器配置VPN实现各种网络环境VSS协同开发
·让Windows XP操作系统实现全速启动
如何在VB中实现ActiveX控件的IobjectSafety接口 相关软件:
·TCP-IP详解卷2:实现
·如何在聊天室里放歌
·ASP.NET的网站新闻管理系统设计与实现
·如何在 Solaris 架设 FTP 虚拟系统
·陈安之-如何在中国保险业成为NO.1 视频 现场秘训广州演讲
·全国声讯电话支付接口v2.1(ASP)
·Cisco IOS 12.0 参考库-接口配置技术
·如何在 Solaris 安裝 SMTP 和 POP3
·内置对象实现超酷日历
·如何在 Solaris 安裝 Anonymous FTP Server

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.vipcn.net
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.vipcn.net All Rights Reserved. 鄂ICP备05000083号Powered by:viphot