📄 mqprops.h
字号:
//
// The message could not be decrypted.
//
#define MQMSG_CLASS_NACK_BAD_ENCRYPTION MQCLASS_CODE(1, 0, 0x07)
//
// The message could not be encrypted for the destination.
//
#define MQMSG_CLASS_NACK_COULD_NOT_ENCRYPT MQCLASS_CODE(1, 0, 0x08)
//
// The message was sent to a non-transactional queue within a transaction.
//
#define MQMSG_CLASS_NACK_NOT_TRANSACTIONAL_Q MQCLASS_CODE(1, 0, 0x09)
//
// The message was sent to a transactional queue not within a transaction.
//
#define MQMSG_CLASS_NACK_NOT_TRANSACTIONAL_MSG MQCLASS_CODE(1, 0, 0x0A)
//-----------------------------------------------
//
// Negative receive acknowledgments
//
//
// The queue was deleted, after the message has arrived
//
#define MQMSG_CLASS_NACK_Q_DELETED MQCLASS_CODE(1, 1, 0x00)
//
// The message was purged at the destination queue
//
#define MQMSG_CLASS_NACK_Q_PURGED MQCLASS_CODE(1, 1, 0x01)
//
// Time to receive has expired, while the message is in the queue
//
#define MQMSG_CLASS_NACK_RECEIVE_TIMEOUT MQCLASS_CODE(1, 1, 0x02)
//------ PROPID_M_ACKNOWLEDGE ---------------
#define MQMSG_ACKNOWLEDGMENT_NONE 0x00
#define MQMSG_ACKNOWLEDGMENT_POS_ARRIVAL 0x01
#define MQMSG_ACKNOWLEDGMENT_POS_RECEIVE 0x02
#define MQMSG_ACKNOWLEDGMENT_NEG_ARRIVAL 0x04
#define MQMSG_ACKNOWLEDGMENT_NEG_RECEIVE 0x08
// end_mq_h
#define MQMSG_ACKNOWLEDGMENT_IS_VALID(a) (!((a) & ~0x0F))
// begin_mq_h
#define MQMSG_ACKNOWLEDGMENT_NACK_REACH_QUEUE ((UCHAR)( \
MQMSG_ACKNOWLEDGMENT_NEG_ARRIVAL ))
#define MQMSG_ACKNOWLEDGMENT_FULL_REACH_QUEUE ((UCHAR)( \
MQMSG_ACKNOWLEDGMENT_NEG_ARRIVAL | \
MQMSG_ACKNOWLEDGMENT_POS_ARRIVAL ))
#define MQMSG_ACKNOWLEDGMENT_NACK_RECEIVE ((UCHAR)( \
MQMSG_ACKNOWLEDGMENT_NEG_ARRIVAL | \
MQMSG_ACKNOWLEDGMENT_NEG_RECEIVE ))
#define MQMSG_ACKNOWLEDGMENT_FULL_RECEIVE ((UCHAR)( \
MQMSG_ACKNOWLEDGMENT_NEG_ARRIVAL | \
MQMSG_ACKNOWLEDGMENT_NEG_RECEIVE | \
MQMSG_ACKNOWLEDGMENT_POS_RECEIVE ))
// end_mq_h
#define MQCLASS_MATCH_ACKNOWLEDGMENT(c, a) ( \
(((a) & MQMSG_ACKNOWLEDGMENT_POS_ARRIVAL) && MQCLASS_POS_ARRIVAL(c)) || \
(((a) & MQMSG_ACKNOWLEDGMENT_POS_RECEIVE) && MQCLASS_POS_RECEIVE(c)) || \
(((a) & MQMSG_ACKNOWLEDGMENT_NEG_ARRIVAL) && MQCLASS_NEG_ARRIVAL(c)) || \
(((a) & MQMSG_ACKNOWLEDGMENT_NEG_RECEIVE) && MQCLASS_NEG_RECEIVE(c)) )
// begin_mq_h
//------ PROPID_M_DELIVERY ------------------
#define MQMSG_DELIVERY_EXPRESS 0
#define MQMSG_DELIVERY_RECOVERABLE 1
//----- PROPID_M_JOURNAL --------------------
#define MQMSG_JOURNAL_NONE 0
#define MQMSG_DEADLETTER 1
#define MQMSG_JOURNAL 2
//----- PROPID_M_TRACE ----------------------
#define MQMSG_TRACE_NONE 0
#define MQMSG_SEND_ROUTE_TO_REPORT_QUEUE 1
//----- PROPID_M_SENDERID_TYPE --------------
#define MQMSG_SENDERID_TYPE_NONE 0
#define MQMSG_SENDERID_TYPE_SID 1
// end_mq_h
#define MQMSG_SENDERID_TYPE_QM 2
// begin_mq_h
//----- PROPID_M_PRIV_LEVEL -----------------
#define MQMSG_PRIV_LEVEL_NONE 0
#define MQMSG_PRIV_LEVEL_BODY 1
//----- PROPID_M_AUTH_LEVEL -----------------
#define MQMSG_AUTH_LEVEL_NONE 0
#define MQMSG_AUTH_LEVEL_ALWAYS 1
// end_mq_h
//------------- Default Values --------------
#define DEFAULT_M_PRIORITY ((MQ_MAX_PRIORITY + MQ_MIN_PRIORITY) >> 1)
#define DEFAULT_M_DELIVERY MQMSG_DELIVERY_EXPRESS
#define DEFAULT_M_ACKNOWLEDGE MQMSG_ACKNOWLEDGMENT_NONE
#define DEFAULT_M_JOURNAL MQMSG_JOURNAL_NONE
#define DEFAULT_M_APPSPECIFIC 0
#define DEFAULT_M_PRIV_LEVEL MQMSG_PRIV_LEVEL_NONE
#define DEFAULT_M_AUTH_LEVEL MQMSG_AUTH_LEVEL_NONE
#define DEFAULT_M_SENDERID_TYPE MQMSG_SENDERID_TYPE_SID
// begin_mq_h
//********************************************************************
// QUEUE PROPERTIES
//********************************************************************
#define PROPID_Q_BASE 100
#define PROPID_Q_INSTANCE (PROPID_Q_BASE + 1) /* VT_CLSID */
#define PROPID_Q_TYPE (PROPID_Q_BASE + 2) /* VT_CLSID */
#define PROPID_Q_PATHNAME (PROPID_Q_BASE + 3) /* VT_LPWSTR */
#define PROPID_Q_JOURNAL (PROPID_Q_BASE + 4) /* VT_UI1 */
#define PROPID_Q_QUOTA (PROPID_Q_BASE + 5) /* VT_UI4 */
#define PROPID_Q_BASEPRIORITY (PROPID_Q_BASE + 6) /* VT_I2 */
#define PROPID_Q_JOURNAL_QUOTA (PROPID_Q_BASE + 7) /* VT_UI4 */
#define PROPID_Q_LABEL (PROPID_Q_BASE + 8) /* VT_LPWSTR */
#define PROPID_Q_CREATE_TIME (PROPID_Q_BASE + 9) /* VT_I4 */
#define PROPID_Q_MODIFY_TIME (PROPID_Q_BASE + 10) /* VT_I4 */
#define PROPID_Q_AUTHENTICATE (PROPID_Q_BASE + 11) /* VT_UI1 */
#define PROPID_Q_PRIV_LEVEL (PROPID_Q_BASE + 12) /* VT_UI4 */
#define PROPID_Q_TRANSACTION (PROPID_Q_BASE + 13) /* VT_UI1 */
//----- PROPID_Q_JOURNAL ------------------
#define MQ_JOURNAL_NONE (unsigned char)0
#define MQ_JOURNAL (unsigned char)1
//----- PROPID_Q_TYPE ------------------
// {55EE8F32-CCE9-11cf-B108-0020AFD61CE9}
#define MQ_QTYPE_REPORT {0x55ee8f32, 0xcce9, 0x11cf, \
{0xb1, 0x8, 0x0, 0x20, 0xaf, 0xd6, 0x1c, 0xe9}}
// {55EE8F33-CCE9-11cf-B108-0020AFD61CE9}
#define MQ_QTYPE_TEST {0x55ee8f33, 0xcce9, 0x11cf, \
{0xb1, 0x8, 0x0, 0x20, 0xaf, 0xd6, 0x1c, 0xe9}}
//----- PROPID_Q_TRANSACTION ------------------
#define MQ_TRANSACTIONAL_NONE (unsigned char)0
#define MQ_TRANSACTIONAL (unsigned char)1
//----- PROPID_Q_AUTHENTICATE ------------------
#define MQ_AUTHENTICATE_NONE (unsigned char)0
#define MQ_AUTHENTICATE (unsigned char)1
//----- PROPID_Q_PRIV_LEVEL ------------------
#define MQ_PRIV_LEVEL_NONE (unsigned long)0
#define MQ_PRIV_LEVEL_OPTIONAL (unsigned long)1
#define MQ_PRIV_LEVEL_BODY (unsigned long)2
// end_mq_h
#define LAST_Q_PROPID PROPID_Q_TRANSACTION
//----- PROPID_Q_SCOPE ------------------
#define SITE_SCOPE (unsigned char)0
#define ENTERPRISE_SCOPE (unsigned char)1
//------------- Default Values ----------
#define DEFAULT_Q_JOURNAL MQ_JOURNAL_NONE
#define DEFAULT_Q_BASEPRIORITY 0
//
// Default for system private queues (order, mqis, admin)
//
#define DEFAULT_SYS_Q_BASEPRIORITY 0x7fff
#define DEFAULT_Q_QUOTA 0xFFFFFFFF
#define DEFAULT_Q_JOURNAL_QUOTA 0xFFFFFFFF
#define DEFAULT_Q_SCOPE ENTERPRISE_SCOPE
#define DEFAULT_Q_TRANSACTION MQ_TRANSACTIONAL_NONE
#define DEFAULT_Q_AUTHENTICATE MQ_AUTHENTICATE_NONE
#define DEFAULT_Q_PRIV_LEVEL MQ_PRIV_LEVEL_OPTIONAL
//
// Properties of objects can be public properties or private properties.
// Public properties of objects can be set and modified using the DS API
// Private properties of objects can be only set internally by the SD.
// In order to distinguish between private and public properties we set the
// value of the ID number of public properties to be less than 1000. Private
// properties has values higher than 1000. The hunderts number of each
// property should be equal to the value of the property identifier. This way
// we can easily associate a property ID with the object.
//
#define PRIVATE_PROPID_BASE 1000
#define PROPID_OBJ_GRANULARITY 100
#define PROPID_TO_OBJTYPE(pid) ((((pid) > PRIVATE_PROPID_BASE) ? ((pid) - PRIVATE_PROPID_BASE) : (pid)) / PROPID_OBJ_GRANULARITY)
#define IS_PRIVATE_PROPID(pid) ((pid) > PRIVATE_PROPID_BASE)
#if (PROPID_Q_BASE != (MQDS_QUEUE * PROPID_OBJ_GRANULARITY))
#error "PROPID_Q_BASE != (MQDS_QUEUE * PROPID_OBJ_GRANULARITY)"
#endif
//********************************************************************
// QUEUE PROPERTIES (MS internal)
//********************************************************************
#define PPROPID_Q_BASE (PRIVATE_PROPID_BASE + PROPID_Q_BASE)
/* [T] [R] [N] */
/* ------------------- */
#define PROPID_Q_SCOPE (PROPID_Q_BASE + 14) /* VT_UI1 */
#define PROPID_Q_QMID (PROPID_Q_BASE + 15) /* VT_CLSID + */
#define PROPID_Q_MASTERID (PROPID_Q_BASE + 16) /* VT_CLSID + */
#define PROPID_Q_SEQNUM (PROPID_Q_BASE + 17) /* VT_BLOB + */
#define PROPID_Q_HASHKEY (PROPID_Q_BASE + 18) /* VT_UI4 */
#define PROPID_Q_LABEL_HASHKEY (PROPID_Q_BASE + 19) /* VT_UI4 */
#define PROPID_Q_NT4ID (PROPID_Q_BASE + 20) /* VT_CLSID */
#define PROPID_Q_FULL_PATH (PROPID_Q_BASE + 21) /* VT_LPWSTR */
//
// Q_NT4ID is the guid of the queue on NT4 (MSMQ1.0). This is used
// for migration, to create a queue with predefined objectGUID.
//
#define PROPID_Q_DONOTHING (PROPID_Q_BASE + 22) /* VT_UI1 */
//
// Q_DONOTHING is used when creating replicated object (by the replication
// service) to ignore property which are not supported by NT5 DS, like
// creation time or SeqNum. The PropId of these ones are changed to
// Q_DONOTHING before calling DSCreateObject or DSSetProps.
//
#define PROPID_Q_SECURITY (PPROPID_Q_BASE + 1) /* VT_BLOB */
// begin_mq_h
//********************************************************************
// MACHINE PROPERTIES
//********************************************************************
#define PROPID_QM_BASE 200
// end_mq_h
#define PPROPID_QM_BASE (PRIVATE_PROPID_BASE + PROPID_QM_BASE)
#if (PROPID_QM_BASE != (MQDS_MACHINE * PROPID_OBJ_GRANULARITY))
#error "PROPID_QM_BASE != (MQDS_MACHINE * PROPID_OBJ_GRANULARITY)"
#endif
// begin_mq_h
#define PROPID_QM_SITE_ID (PROPID_QM_BASE + 1) /* VT_CLSID */
#define PROPID_QM_MACHINE_ID (PROPID_QM_BASE + 2) /* VT_CLSID */
#define PROPID_QM_PATHNAME (PROPID_QM_BASE + 3) /* VT_LPWSTR */
#define PROPID_QM_CONNECTION (PROPID_QM_BASE + 4) /* VT_LPWSTR|VT_VECTOR */
#define PROPID_QM_ENCRYPTION_PK (PROPID_QM_BASE + 5) /* VT_BLOB */
// end_mq_h
#define PROPID_QM_ADDRESS (PROPID_QM_BASE + 6) /* VT_BLOB */
#define PROPID_QM_CNS (PROPID_QM_BASE + 7) /* VT_CLSID|VT_VECTOR */
#define PROPID_QM_OUTFRS (PROPID_QM_BASE + 8) /* VT_CLSID|VT_VECTOR */
#define PROPID_QM_INFRS (PROPID_QM_BASE + 9) /* VT_CLSID|VT_VECTOR */
#define PROPID_QM_SERVICE (PROPID_QM_BASE + 10) /* VT_UI4 */
#define PROPID_QM_MASTERID (PROPID_QM_BASE + 11) /* VT_CLSID */
#define PROPID_QM_HASHKEY (PROPID_QM_BASE + 12) /* VT_UI4 */
#define PROPID_QM_SEQNUM (PROPID_QM_BASE + 13) /* VT_BLOB */
#define PROPID_QM_QUOTA (PROPID_QM_BASE + 14) /* VT_UI4 */
#define PROPID_QM_JOURNAL_QUOTA (PROPID_QM_BASE + 15) /* VT_UI4 */
#define PROPID_QM_MACHINE_TYPE (PROPID_QM_BASE + 16) /* VT_LPWSTR */
#define PROPID_QM_CREATE_TIME (PROPID_QM_BASE + 17) /* VT_I4 */
#define PROPID_QM_MODIFY_TIME (PROPID_QM_BASE + 18) /* VT_I4 */
#define PROPID_QM_FOREIGN (PROPID_QM_BASE + 19) /* VT_UI1 */
#define PROPID_QM_OS (PROPID_QM_BASE + 20) /* VT_UI4 */
#define PROPID_QM_FULL_PATH (PROPID_QM_BASE + 21) /* VT_LPWSTR */
#define PROPID_QM_SITE_IDS (PROPID_QM_BASE + 22) /* VT_CLSID|VT_VECTOR */
#define PROPID_QM_OUTFRS_DN (PROPID_QM_BASE + 23) /* VT_LPWSTR|VT_VECTOR */
#define PROPID_QM_INFRS_DN (PROPID_QM_BASE + 24) /* VT_LPWSTR|VT_VECTOR */
#define PROPID_QM_NT4ID (PROPID_QM_BASE + 25) /* VT_CLSID */
//
// QM_NT4ID is the guid of the QM on NT4 (MSMQ1.0). This is used
// for migration, to create a QM with predefined objectGUID.
//
#define PROPID_QM_DONOTHING (PROPID_QM_BASE + 26) /* VT_UI1 */
//
// QM_DONOTHING is used when creating replicated object (by the replication
// service) to ignore property which are not supported by NT5 DS, like
// creation time or SeqNum. The PropId of these ones are changed to
// QM_DONOTHING before calling DSCreateObject or DSSetProps.
//
#define PROPID_QM_SECURITY (PPROPID_QM_BASE + 1) /* VT_BLOB */
#define PROPID_QM_SIGN_PK (PPROPID_QM_BASE + 2) /* VT_BLOB */
#define PROPID_QM_ENCRYPT_PK (PPROPID_QM_BASE + 3) /* VT_BLOB */
#define LAST_QM_PROPID PROPID_QM_ENCRYPTION_PK
/*
*
Flags definition of PROPID_QM_FOREIGN
*
*/
#define FOREIGN_MACHINE 1
#define MSMQ_MACHINE 0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -