- 1、本文档共24页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
activex控件在IE中弹出安全警告的解决办法(国外英文资料)
activex控件在IE中弹出安全警告的解决办法(国外英文资料)
写的activex控件在IE中弹出安全警告的解决办法
# include objsafe.h
/ /在控件头文件中加入:
DECLARE_INTERFACE_MAP()
BEGIN_INTERFACE_PART(ObjectSafety IObjectSafety)
STDMETHOD(GetInterfaceSafetyOptions)(REFIID riid,DWORD __RPC_FAR * pdwSupportedOptions,DWORD __RPC_FAR * pdwEnabledOptions);
STDMETHOD(SetInterfaceSafetyOptions)(REFIID riid、DWORD dwOptionSetMask、DWORD dwEnabledOptions);
END_INTERFACE_PART(ObjectSafety)
/ /在控件的CPP文件中加入:
BEGIN_INTERFACE_MAP(CVP2PCtrl COleControl)
INTERFACE_PART(CVP2PCtrl IID_IObjectSafety ObjectSafety)
END_INTERFACE_MAP()
/ / IObjectSafety的实现
STDMETHODIMP CVP2PCtrl:XObjectSafety::GetInterfaceSafetyOptions(
REFIID riid,
DWORD __RPC_FAR * pdwSupportedOptions,
DWORD __RPC_FAR * pdwEnabledOptions)
{
METHOD_PROLOGUE_EX(CVP2PCtrl ObjectSafety)
如果(!pdwSupportedOptions | | ! pdwEnabledOptions)
{
返回E_POINTER;
}
* pdwSupportedOptions = interfacesafe_for_untrusted_@| INTERFACESAFE_FOR_UNTRUSTED_DATA;
* pdwEnabledOptions = 0;
如果(NULL = = pThis - GetInterface(riid))
{
跟踪(“请求的接口不受支持。\ n”);
返回E_NOINTERFACE;
}
/ /什么接口正在被检查?
OLECHAR szGUID[39];
我= StringFromGUID2(riid,szGUID,39);
如果(riid = = IID_IDispatch)
{
/ /客户端想知道对象是否对脚本安全
* pdwEnabledOptions = INTERFACESAFE_FOR_UNTRUSTED_CALLER;
返回S_OK;
}
else if(riid = = IID_IPersistPropertyBag)
| | riid = = IID_IPersistStreamInit
| | riid = = IID_IPersistStorage
| | riid = = IID_IPersistMemory)
{
/ /这些是COleControl派生控制支持的持久性接口
/ /如在afxctl . h中所示
/ /客户端想知道对象是否安全地从持久数据初始化
* pdwEnabledOptions = INTERFACESAFE_FOR_UNTRUSTED_DATA;
返回S_OK;
}
其他的
{
/ /找出这是什么接口,并决定启用哪些选项
TRACE(“我们没有考虑到这个接口的安全性,它是我们支持的……”);
返回E_NOINTERFACE;
}
}
STDMETHODIMP CVP2PCtrl:XObjectSafety::SetInterfaceSafetyOptions(
REFIID riid,
DWORD dwOptionSetMask,
DWORD dwEnabledOptions)
{
METHOD_PROLOGUE_EX(CVP2PCtrl ObjectSafety)
OLECHAR szGUID[39];
/ /这个接口到底是什么?
/ /我们可以在HKEY_CLASSES_ROOT \ Interface下面的注册表中进行快速查找
我= StringFromGUID2(riid,szGUID,39);
如果(0 = dwOptionSetMask 0 = dwEnabledOptions)
{
/ /控件当然不会通过指定的接口来支持请求
/ /因此,即使不支持该接口,也可以安全地返回S_OK。
返回S_OK;
}
您可能关注的文档
最近下载
- Unit 6 Rain or Shine (第3课时) 课件人教版(2024)英语七年级下册.pptx VIP
- 港珠澳大桥岛隧工程沉管隧道混凝土质量控制措施.pdf
- 2025年中考数学复习热搜题速递之尺规作图(2024年7月).docx
- 股市风险预警机制-深度研究.pptx
- 政策解读2025年中央一号文件PPT.pptx VIP
- 5.0MPa路面抗折混凝土配合比.docx VIP
- 17J927-1 车库建筑构造(OCR).pdf VIP
- XX市疾病预防控制中心-艾滋病HIV筛查实验室管理手册_精品.doc
- 2025年春季小学学校德育工作计划(1975字).docx VIP
- 渤海水泥厂包装车间除尘系统设计.docx
文档评论(0)