博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
读取STGMEDIUM中的数据
阅读量:6734 次
发布时间:2019-06-25

本文共 1380 字,大约阅读时间需要 4 分钟。

该数据结构用在COM对象之间传递使用, 头文件中定义的数据结构如下:

typedef struct tagSTGMEDIUM    {    DWORD tymed;    /* [switch_is][switch_type] */ union         {        /* [case()] */ HBITMAP hBitmap;        /* [case()] */ HMETAFILEPICT hMetaFilePict;        /* [case()] */ HENHMETAFILE hEnhMetaFile;        /* [case()] */ HGLOBAL hGlobal;        /* [case()] */ LPOLESTR lpszFileName;        /* [case()] */ IStream *pstm;        /* [case()] */ IStorage *pstg;        /* [default] */  /* Empty union arm */         }     ;    /* [unique] */ IUnknown *pUnkForRelease;    }     uSTGMEDIUM;

该结构通过 tymed来表示 联合体中的那个数据成员有效,取值可以如下:

typedef [transmit_as(long)] enum tagTYMED {     TYMED_HGLOBAL     = 1,     TYMED_FILE        = 2,     TYMED_ISTREAM     = 4,     TYMED_ISTORAGE    = 8,     TYMED_GDI         = 16,     TYMED_MFPICT      = 32,     TYMED_ENHMF       = 64,     TYMED_NULL        = 0 } TYMED;
TYMED_FILE表示STGMEDIUM中的lpszFileName有效, 其他与此类似,可以参看msdn来 如果数据是一个TYMED_HGLOBAL , 可以通过如下读取:
DWORD dwDataLength = pBindInfo->cbstgmedData;                if (pBindInfo->stgmedData.tymed & TYMED_HGLOBAL)                {                    char* pSrc = (char*)::GlobalLock(pBindInfo->stgmedData.hGlobal);                    m_pCallback->SetPostData(pSrc, dwDataLength);                    ::GlobalUnlock(pBindInfo->stgmedData.hGlobal);                }

 

 

 

 

 

 

 

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/kwliu/archive/2013/01/08/2851102.html

你可能感兴趣的文章
POI/JFreeChart
查看>>
1101 Quick Sort
查看>>
vue过滤器
查看>>
开山之震
查看>>
axios详解
查看>>
npm发包注意
查看>>
ubuntu16.04 安装OpenNI并运行kinnectfusion
查看>>
python常用命令(持续) | Commonly used Python command list (con't)
查看>>
IOS6.0 学习第2篇,弹出AlertView
查看>>
博客已搬家,新博地址 http://www.yiven.vip
查看>>
Openstack的nova-network的vlan模式扩展
查看>>
在SContruct中编译.c
查看>>
JavaScript中点击按钮弹出新的浏览器窗口
查看>>
菜鸟Scrum敏捷实践系列(三)用户故事的组织---功能架构的规划
查看>>
让ubuntu开启ssh服务以及让vi/vim正常使用方向键与退格键
查看>>
python中的null值
查看>>
ssm jQuery 获取checkbox选中的值form表单提交例子
查看>>
JavaEE(17) - JPA查询API和JPQL
查看>>
简单方法编写在群晖ds218play上运行的sh
查看>>
ubuntu16.04下ftp服务器的安装与配置
查看>>