结构或大内存块打包的办法(上2)
来源:互联网 发布:脑洞大开的日剧知乎 编辑:程序博客网 时间:2024/05/23 16:04
The information in this article applies to: |
- Microsoft Visual C++ 6.0,SP5 |
结构或大内存块打包的办法(上)
Revision History:
对本文档所有修改都应按修改时间顺序记录在此。
Version | Date | Creator | Description |
1.0.0.1 | 2004-2-23 | 郑昀 | 草稿 |
Implementation Scope:
继续阅读之前,我们假设您熟悉以下知识:
n SAFEARRAY
n ISTREAM
n Microsoft MSMQ
目录:
1:概述
2:借用SAFEARRAY打包把结构写入MSMQ队列
3:借用IStream流打包传递数据到MSMQ队列
下面给出读取MSMQ消息时解析的步骤(VC++代码):
//////////////////////////////////////////////////////////// //Added Headers: //////////////////////////////////////////////////////////// #include #include /////////////////////////////////////////////////////////// //Added for MSMQ: /////////////////////////////////////////////////////////// #import "mqoa.dll" no_namespace, named_guids typedef struct _DATA { int _n; char _str; }_DATA; //main: { .. .. .. .. hr = pisQI->raw_Open(MQ_PEEK_ACCESS,MQ_DENY_NONE,&pisQueue); IMSMQMessagePtr piMessage; // 获取MSMQ队列中的一个消息: piMessage = pisQueue->PeekCurrent(); _DATA *msg = new _DATA(); // 解析函数: ChangeVariant2Struct(CComVariant(piMessage->Body), msg); .. .. } // ChangeVariant2Struct函数的定义: // 第一个参数: // 类型:CComVariant // 作用:源 // 第二个参数: // 类型:_DATA* // 作用:接收者 HRESULT ChangeVariant2Struct (CComVariant &var, _DATA *DP) { SAFEARRAY* psa; BYTE HUGEP *lpb; psa = var.parray; SafeArrayAccessData(psa, (void HUGEP **)&lpb); CopyMemory((LPVOID)DP, (LPVOID)lpb, 8); SafeArrayUnaccessData(psa); return S_OK; } |
Writen by zhengyun.NoJunk(at)tomosoft.dot.com
Disclaimers:
Programmer’s Blog List: |
[MVPLeader]Grace Zhang |
本文档仅供参考。本文档所包含的信息代表了在发布之日,zhengyun对所讨论问题的当前看法,zhengyun不保证所给信息在发布之日以后的准确性。
用户应清楚本文档的准确性及其使用可能带来的全部风险。可以复制和传播本文档,但须遵守以下条款:
- 复制时不得修改原文,复制内容须包含所有页 ;
- 所有副本均须含有 zhengyun的版权声明以及所提供的其它声明 ;
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=12750
- 结构或大内存块打包的办法(上2)
- 结构或大内存块打包的办法(上2)
- 结构或大内存块打包的办法(上2)
- 结构或大内存块打包的办法(上2)
- 结构或大内存块打包的办法(上2)
- 结构或大内存块打包的办法(上2)
- 结构或大内存块打包的办法(中)
- 结构或大内存块打包的办法(中)
- 结构或大内存块打包的办法(下)
- 结构或大内存块打包的办法(中)
- 结构或大内存块打包的办法(下)
- 结构或大内存块打包的办法(中)
- 结构或大内存块打包的办法(中)
- 结构或大内存块打包的办法(下)
- 结构或大内存块打包的办法(中)
- 结构或大内存块打包的办法(上1.1)
- 结构或大内存块打包的办法(上1.2)
- 结构或大内存块打包的办法(上1.1)
- 结构或大内存块打包的办法(下)
- groups-beta.google.com的蓄势待发
- 结构或大内存块打包的办法(上1.1)
- [Wap]command和selectionList冲突的分析
- LifeStreams+FriendStreams:你的切片之不同玩法
- 结构或大内存块打包的办法(上2)
- [SQL]启动SQLServer的死锁检查
- [C#]C++调用dotNet组件的步骤
- 阳为SS/SN 阴为SP(中)
- Outlook Add-in(COM加载项)技术指南(四)
- 修改自定义数据类型精度
- 部分省短信乱码或空短信问题的汇报
- 结构或大内存块打包的办法(中)
- [Domino]Java访问Domino邮件代码片断[3]