• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >vc/mfc > 继承COleControl的控件类,如何从新实现IPersistStorage接口,因此在ColeControl里实现的接口方法不能实现功能

继承COleControl的控件类,如何从新实现IPersistStorage接口,因此在ColeControl里实现的接口方法不能实现功能

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-04

佚名通过本文主要向大家介绍了 继承COleControl的控件类,如何从新实现IPersistStorage接口,因此在ColeControl里实现的接口方法不能实现功能等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 继承COleControl 的控件类,如何从新实现IPersistStorage接口,因此在ColeControl 里实现的接口方法不能实现功能
描述:

要求控件在持久化时,在Contents流中保持属性,另外创建一个流,保持一份二进制数据。注意,这是要求。别要在CONTENTS流里保持二进制数据。
我从新写了这个接口,但是遇到一些问题。请指教
STDMETHODIMP CGABSignatureOfficeCtrl::XPersistStorage::Load(LPSTORAGE pStg)
{
ASSERT(pStg != NULL);
METHOD_PROLOGUE_EX(CGABSignatureOfficeCtrl, PersistStorage)
CLIPFORMAT cf;
HRESULT hr;
CLSID fmtid;
hr = ::ReadFmtUserTypeStg(pStg, &cf, NULL);
if (SUCCEEDED(hr) /*&& _AfxOleMatchPropsetClipFormat(cf, &fmtid)*/)
{
// Load the property set data
//FORMATETC formatEtc;
//STGMEDIUM stgMedium;
//formatEtc.cfFormat = cf;
//formatEtc.ptd = NULL;
//formatEtc.dwAspect = DVASPECT_CONTENT;
//formatEtc.lindex = -1;
//formatEtc.tymed = TYMED_ISTORAGE;
//stgMedium.tymed = TYMED_ISTORAGE;
//stgMedium.pstg = pStg;
//stgMedium.pUnkForRelease = NULL;
//hr = pThis->SetPropsetData(&formatEtc, &stgMedium, fmtid) ?
// S_OK : E_FAIL;
}
else
{
// Open the "Contents" stream of the supplied storage object, and
// then delegate to same implementation as IPersistStreamInit::Load.
LPSTREAM pStm = NULL;
hr = pStg->OpenStream(OLESTR("Contents"), NULL,
STGM_READ | STGM_SHARE_EXCLUSIVE, 0, &pStm);
ASSERT(FAILED(hr) || pStm != NULL);
if (pStm != NULL)
{
//置状态量
pThis->SetStgState(false);
// Delegate to LoadState.
hr = pThis->LoadState(pStm);
pStm->Release();
}
if (pThis->m_pDefIPersistStorage == NULL)
pThis->m_pDefIPersistStorage =
(LPPERSISTSTORAGE)pThis->QueryDefHandler(IID_IPersistStorage);
// Delegate to default handler (for cache).
pThis->m_pDefIPersistStorage->Load(pStg);
hr = pStg->OpenStream(OLESTR("GABSIGNATURE"), NULL,
STGM_READ | STGM_SHARE_EXCLUSIVE, 0, &pStm);
ASSERT(FAILED(hr) || pStm != NULL);
if (pStm != NULL)
{
//置状态量
pThis->SetStgState(true);
// Delegate to LoadState.
hr = pThis->LoadState(pStm);
pStm->Release();
}
}
if (pThis->m_pDefIPersistStorage == NULL)
pThis->m_pDefIPersistStorage =
(LPPERSISTSTORAGE)pThis->QueryDefHandler(IID_IPersistStorage);
// Delegate to default handler (for cache).
pThis->m_pDefIPersistStorage->Load(pStg);
return hr;
}


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 继承COleControl的控件类,如何从新实现IPersistStorage接口,因此在ColeControl里实现的接口方法不能实现功能

相关文章

  • 2017-06-04 在vc60中如何使用Teechart控件?(我是新手)
  • 2017-06-04 急!急!急!为什么ImmGetCandidateList不能取得"智能ABC输入法"的CANDATLIST?
  • 2017-06-04 如何使用COM中定义的枚举常量?
  • 2017-06-05 头文件冲突问题
  • 2017-06-05 关于利用DLL,在VB和VC之间数据通信的问题
  • 2017-06-05 请教各位如何在DLL里导出类以及使用?100分
  • 2017-06-05 再次发贴问高手:Delphi调用VC的DLL问题。
  • 2017-06-05 如何获取网页的源代码?
  • 2017-06-05 请问如何得到带参数的多项式相乘的结果?
  • 2017-06-04 怎么在OCX的事件里面传递内存(指针)

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 一个调用ActiveX的问题,急!
    • 关于com中引用记数的一个问题
    • 如何在控件中设定Timer事件
    • 求一个小例子。
    • CoCreateInstance返回E_NOTIMPL
    • C#中使用VARIANT参数问题
    • ExitWindowsExEWX_SHUTDOWN,0为什么在2000和xp下面不能关闭计算机?
    • 关于父进程、子进程和核心对象的问题,谢谢了!!!
    • 扫盲:mfc编写的Activex控件和ATL编写的有何种区别?
    • 郁闷啦,基础不好,请高手指点

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有