您现在的位置: 主页 > www.288-365.com > 文章内容

MSMQ消息队列

作者:365bet注册地址    文章来源:365bet国际赌场    更新时间:2019-5-15
问题:消息队列MSMQ
说明:1。
我创建了一个调用COM组件的消息队列触发器。
该组件需要消息路径和消息ID。
现在我的消息惩罚是活跃的。
如何根据消息ID获取消息
(使用API??)
在VB中。
NET似乎有ReceiveById
2
我想使用MQReceiveMessageByLookupId,
接下来,我将触发器的消息ID参数更改为消息查询ID。
你总是可能出错,指标是0xC00E0088,我怎么写?
//相关代码
constintNUMBEROFPROPERTIES = 2; //属性数
DWORD cPropId = 0; //属性计数器
HRESULThr = MQ_OK; //返回代码
HANDLEhQueue = NULL。//提示句柄
WCHARwszLabelBuffer[MQ_MAX_MSG_LABEL_LEN];
//定义MQMSGPROPS结构。
MQMSGPROPSmsgProps;
MSGPROPIDAMsgPropId[NUMBEROFPROPERTIES];
MQPROPVARIANTaMsgPropVar[NUMBEROFPROPERTIES];
HRESULTaMsgStatus[NUMBEROFPROPERTIES];
//指定要获取的消息和消息。 本文来自织梦
aMsgPropId[cPropId]= PROPID_M_LABEL_LEN; // PropertyID
aMsgPropVar[cPropId]。
Vt = VT_UI 4; //类型指示符
aMsgPropVar[cPropId]。
ulVal = MQ_MAX_MSG_LABEL_LEN; // Labelbuffersize
cPropId ++;
aMsgPropId[cPropId]= PROPID_M_LABEL; // PropertyID
aMsgPropVar[cPropId]。
Vt = VT_LPWSTR。//类型指示器
aMsgPropVar[cPropId]。
pwszVal = wszLabelBuffer; //标签缓冲区
cPropId ++;
//初始化MQMSGPROPS结构。
msgprops
cProp = cPropId。//消息属性数
msgprops
aPropID = aMsgPropId; //消息属性的ID
msgprops
aPropVar = aMsgPropVar; //消息属性的值
msgprops
aStatus = aMsgStatus; //错误报告
WCHARwcsFormatName[FORMATNAMESIZE]; //队列格式名称
DWORDdwFormatNameLen = FORMATNAMESIZE; // Sizeofformatnamebuffer
Hr = MQPathNameToFormatName(MessagePath,wcsFormatName,dwFormatNameLen);
Hr = MQOpenQueue(
wcsFormatName,//队列的格式名称 织梦好,好织梦
MQ_RECEIVE_ACCESS | MQ_ADMIN_ACCESS,//访问模式
MQ_DENY_RECEIVE_SHARE,//共享模式
hQueue // OUT:Handleofqueue
;
是(失败(小时))
returnE_FAIL;
Hr = MQReceiveMessageByLookupId(hQueue,MessageId。
ullVal,
MQ_LOOKUP_RECEIVE_CURRENT,//访问模式
msgProps,// Messagepropertystructure
NULL / / / NoOVERLAPPED结构
NULL,//回调函数
MQ_NO_TRANSACTION);
//这总是浪费。
返回0xC00E0088。解决方案1:顺便提一下,在帮助的顶部,您最近可以使用消息队列。
解决方案2:我仍然不知道你想要什么

上一篇:了解黄羊角的健康益处  
下一篇:没有了