从这里,您已经知道参数是:
Function Open(Access, ShareMode)
他们还说
访问权限可以设置为以下之一:
MQ_PEEK_ACCESS:只能查看消息。它们无法从队列中移除。
MQ_SEND_ACCESS:消息只能发送到队列。
MQ_RECEIVE_ACCESS:可以从队列中检索(读取和删除)消息、查看消息或清除消息。有关限制谁可以从队列中检索消息的信息,请参阅 ShareMode 参数的描述。
MQ_PEEK_ACCESS | MQ_ADMIN_ACCESS:本地传出队列中的消息只能被偷看(读取而不从队列中删除)。
MQ_RECEIVE_ACCESS | MQ_ADMIN_ACCESS:本地传出队列中的消息可以被检索(读取并从队列中删除)、窥视(读取而不从队列中删除)或清除(删除)。
在 MSDN 的MQACCESS文档中,它们为您提供了常量的数值:
typedef enum
{
MQ_RECEIVE_ACCESS = 1,
MQ_SEND_ACCESS = 2,
MQ_PEEK_ACCESS = 0x0020,
MQ_ADMIN_ACCESS = 0x0080
} MQACCESS;
第二个参数,ShareMode:
ShareMode 指定谁可以访问队列。设置为以下之一:
MQ_DENY_NONE:默认值。该队列可供所有人组的所有成员使用。如果 Access 设置为 MQ_PEEK_ACCESS 或 MQ_SEND_ACCESS,则必须使用此设置。
MQ_DENY_RECEIVE_SHARE:将可以从队列中检索消息的人限制在此进程中。如果队列已被另一个进程打开以检索消息,则此调用将失败并生成 MQ_ERROR_SHARING_VIOLATION (0xC00E0009) 错误。仅当 Access 设置为 MQ_RECEIVE_ACCESS 时适用。
这些常数是:
Const MQ_DENY_NONE = 0
Const MQ_DENY_RECEIVE_SHARE = 1
确实有点难找,但你可以在这里得到它,这不是一个可靠的来源,但我相信它是正确的。