751 lines
36 KiB
C
751 lines
36 KiB
C
/*
|
|
* mq.h Message queue functions
|
|
*
|
|
* =========================================================================
|
|
*
|
|
* Open Watcom Project
|
|
*
|
|
* Copyright (c) 2004-2010 The Open Watcom Contributors. All Rights Reserved.
|
|
*
|
|
* This file is automatically generated. Do not edit directly.
|
|
*
|
|
* =========================================================================
|
|
*/
|
|
|
|
#ifndef __MQ_H__
|
|
#define __MQ_H__
|
|
|
|
#ifndef _ENABLE_AUTODEPEND
|
|
#pragma read_only_file;
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/* Forward declarations */
|
|
typedef interface ITransaction ITransaction;
|
|
|
|
/* Queue handle data type */
|
|
typedef HANDLE QUEUEHANDLE;
|
|
|
|
/* Property identifier data types */
|
|
typedef PROPID MSGPROPID;
|
|
typedef PROPID QUEUEPROPID;
|
|
typedef PROPID QMPROPID;
|
|
typedef PROPID MGMTPROPID;
|
|
|
|
/* Message queue relational operators */
|
|
#define PRLT 0L
|
|
#define PRLE 1L
|
|
#define PRGT 2L
|
|
#define PRGE 3L
|
|
#define PREQ 4L
|
|
#define PRNE 5L
|
|
|
|
/* Message queue sort orders */
|
|
#define QUERY_SORTASCEND 0L
|
|
#define QUERY_SORTDESCEND 1L
|
|
|
|
/* MQOpenQueue() access flags */
|
|
#define MQ_RECEIVE_ACCESS 0x00000001L
|
|
#define MQ_SEND_ACCESS 0x00000002L
|
|
#define MQ_MOVE_ACCESS 0x00000004L
|
|
#define MQ_PEEK_ACCESS 0x00000020L
|
|
#define MQ_ADMIN_ACCESS 0x00000080L
|
|
|
|
/* MQOpenQueue() share values */
|
|
#define MQ_DENY_NONE 0x00000000L
|
|
#define MQ_DENY_RECEIVE_SHARE 0x00000001L
|
|
|
|
/* MQReceiveMessage() actions */
|
|
#define MQ_ACTION_RECEIVE 0x00000000L
|
|
#define MQ_ACTION_PEEK_CURRENT 0x80000000L
|
|
#define MQ_ACTION_PEEK_NEXT 0x80000001L
|
|
|
|
/* MQReceiveMessageByLookupId() actions */
|
|
#if (_WIN32_WINNT >= 0x0501)
|
|
#define MQ_LOOKUP_PEEK_CURRENT 0x40000010L
|
|
#define MQ_LOOKUP_PEEK_NEXT 0x40000011L
|
|
#define MQ_LOOKUP_PEEK_PREV 0x40000012L
|
|
#define MQ_LOOKUP_PEEK_FIRST 0x40000014L
|
|
#define MQ_LOOKUP_PEEK_LAST 0x40000018L
|
|
#define MQ_LOOKUP_RECEIVE_CURRENT 0x40000020L
|
|
#define MQ_LOOKUP_RECEIVE_NEXT 0x40000021L
|
|
#define MQ_LOOKUP_RECEIVE_PREV 0x40000022L
|
|
#define MQ_LOOKUP_RECEIVE_FIRST 0x40000024L
|
|
#define MQ_LOOKUP_RECEIVE_LAST 0x40000028L
|
|
#define MQ_LOOKUP_RECEIVE_ALLOW_PEEK 0x40000120L
|
|
#endif
|
|
|
|
/* Transaction special values */
|
|
#define MQ_NO_TRANSACTION NULL
|
|
#define MQ_MTS_TRANSACTION ((ITransaction *)1)
|
|
#define MQ_XA_TRANSACTION ((ITransaction *)2)
|
|
#define MQ_SINGLE_MESSAGE ((ITransaction *)3)
|
|
|
|
/* Message priority limits */
|
|
#define MQ_MIN_PRIORITY 0
|
|
#define MQ_MAX_PRIORITY 7
|
|
|
|
/* Message properties */
|
|
#define PROPID_M_BASE 0
|
|
#define PROPID_M_CLASS (PROPID_M_BASE + 1)
|
|
#define PROPID_M_MSGID (PROPID_M_BASE + 2)
|
|
#define PROPID_M_CORRELATIONID (PROPID_M_BASE + 3)
|
|
#define PROPID_M_PRIORITY (PROPID_M_BASE + 4)
|
|
#define PROPID_M_DELIVERY (PROPID_M_BASE + 5)
|
|
#define PROPID_M_ACKNOWLEDGE (PROPID_M_BASE + 6)
|
|
#define PROPID_M_JOURNAL (PROPID_M_BASE + 7)
|
|
#define PROPID_M_APPSPECIFIC (PROPID_M_BASE + 8)
|
|
#define PROPID_M_BODY (PROPID_M_BASE + 9)
|
|
#define PROPID_M_BODY_SIZE (PROPID_M_BASE + 10)
|
|
#define PROPID_M_LABEL (PROPID_M_BASE + 11)
|
|
#define PROPID_M_LABEL_LEN (PROPID_M_BASE + 12)
|
|
#define PROPID_M_TIME_TO_REACH_QUEUE (PROPID_M_BASE + 13)
|
|
#define PROPID_M_TIME_TO_BE_RECEIVED (PROPID_M_BASE + 14)
|
|
#define PROPID_M_RESP_QUEUE (PROPID_M_BASE + 15)
|
|
#define PROPID_M_RESP_QUEUE_LEN (PROPID_M_BASE + 16)
|
|
#define PROPID_M_ADMIN_QUEUE (PROPID_M_BASE + 17)
|
|
#define PROPID_M_ADMIN_QUEUE_LEN (PROPID_M_BASE + 18)
|
|
#define PROPID_M_VERSION (PROPID_M_BASE + 19)
|
|
#define PROPID_M_SENDERID (PROPID_M_BASE + 20)
|
|
#define PROPID_M_SENDERID_LEN (PROPID_M_BASE + 21)
|
|
#define PROPID_M_SENDERID_TYPE (PROPID_M_BASE + 22)
|
|
#define PROPID_M_PRIV_LEVEL (PROPID_M_BASE + 23)
|
|
#define PROPID_M_AUTH_LEVEL (PROPID_M_BASE + 24)
|
|
#define PROPID_M_AUTHENTICATED (PROPID_M_BASE + 25)
|
|
#define PROPID_M_HASH_ALG (PROPID_M_BASE + 26)
|
|
#define PROPID_M_ENCRYPTION_ALG (PROPID_M_BASE + 27)
|
|
#define PROPID_M_SENDER_CERT (PROPID_M_BASE + 28)
|
|
#define PROPID_M_SENDER_CERT_LEN (PROPID_M_BASE + 29)
|
|
#define PROPID_M_SRC_MACHINE_ID (PROPID_M_BASE + 30)
|
|
#define PROPID_M_SENTTIME (PROPID_M_BASE + 31)
|
|
#define PROPID_M_ARRIVEDTIME (PROPID_M_BASE + 32)
|
|
#define PROPID_M_DEST_QUEUE (PROPID_M_BASE + 33)
|
|
#define PROPID_M_DEST_QUEUE_LEN (PROPID_M_BASE + 34)
|
|
#define PROPID_M_EXTENSION (PROPID_M_BASE + 35)
|
|
#define PROPID_M_EXTENSION_LEN (PROPID_M_BASE + 36)
|
|
#define PROPID_M_SECURITY_CONTEXT (PROPID_M_BASE + 37)
|
|
#define PROPID_M_CONNECTOR_TYPE (PROPID_M_BASE + 38)
|
|
#define PROPID_M_XACT_STATUS_QUEUE (PROPID_M_BASE + 39)
|
|
#define PROPID_M_XACT_STATUS_QUEUE_LEN (PROPID_M_BASE + 40)
|
|
#define PROPID_M_TRACE (PROPID_M_BASE + 41)
|
|
#define PROPID_M_BODY_TYPE (PROPID_M_BASE + 42)
|
|
#define PROPID_M_DEST_SYMM_KEY (PROPID_M_BASE + 43)
|
|
#define PROPID_M_DEST_SYMM_KEY_LEN (PROPID_M_BASE + 44)
|
|
#define PROPID_M_SIGNATURE (PROPID_M_BASE + 45)
|
|
#define PROPID_M_SIGNATURE_LEN (PROPID_M_BASE + 46)
|
|
#define PROPID_M_PROV_TYPE (PROPID_M_BASE + 47)
|
|
#define PROPID_M_PROV_NAME (PROPID_M_BASE + 48)
|
|
#define PROPID_M_PROV_NAME_LEN (PROPID_M_BASE + 49)
|
|
#define PROPID_M_FIRST_IN_XACT (PROPID_M_BASE + 50)
|
|
#define PROPID_M_LAST_IN_XACT (PROPID_M_BASE + 51)
|
|
#define PROPID_M_XACTID (PROPID_M_BASE + 52)
|
|
#define PROPID_M_AUTHENTICATED_EX (PROPID_M_BASE + 53)
|
|
#if (_WIN32_WINNT >= 0x0500)
|
|
#define PROPID_M_RESP_FORMAT_NAME (PROPID_M_BASE + 54)
|
|
#define PROPID_M_RESP_FORMAT_NAME_LEN (PROPID_M_BASE + 55)
|
|
#define PROPID_M_DEST_FORMAT_NAME (PROPID_M_BASE + 58)
|
|
#define PROPID_M_DEST_FORMAT_NAME_LEN (PROPID_M_BASE + 59)
|
|
#define PROPID_M_LOOKUPID (PROPID_M_BASE + 60)
|
|
#define PROPID_M_SOAP_ENVELOPE (PROPID_M_BASE + 61)
|
|
#define PROPID_M_SOAP_ENVELOPE_LEN (PROPID_M_BASE + 62)
|
|
#define PROPID_M_COMPOUND_MESSAGE (PROPID_M_BASE + 63)
|
|
#define PROPID_M_COMPOUND_MESSAGE_SIZE (PROPID_M_BASE + 64)
|
|
#define PROPID_M_SOAP_HEADER (PROPID_M_BASE + 65)
|
|
#define PROPID_M_SOAP_BODY (PROPID_M_BASE + 66)
|
|
#define PROPID_M_DEADLETTER_QUEUE (PROPID_M_BASE + 67)
|
|
#define PROPID_M_DEADLETTER_QUEUE_LEN (PROPID_M_BASE + 68)
|
|
#define PROPID_M_ABORT_COUNT (PROPID_M_BASE + 69)
|
|
#define PROPID_M_MOVE_COUNT (PROPID_M_BASE + 70)
|
|
#define PROPID_M_LAST_MOVE_TIME (PROPID_M_BASE + 75)
|
|
#endif
|
|
|
|
/* Message property sizes */
|
|
#define PROPID_M_MSGID_SIZE 20
|
|
#define PROPID_M_CORRELATIONID_SIZE 20
|
|
#define PROPID_M_XACTID_SIZE 20
|
|
|
|
/* Macros to manipulate message clases */
|
|
#define MQCLASS_CODE( p1, p2, p3 ) ((USHORT)(((p1) << 15) | ((p2) << 14) | (p3)))
|
|
#define MQCLASS_NACK( x ) ((x) & 0x8000)
|
|
#define MQCLASS_RECEIVE( x ) ((x) & 0x4000)
|
|
#define MQCLASS_NACK_HTTP( x ) (((x) & 0xA000) === 0xA000)
|
|
|
|
/* Message classes */
|
|
#define MQMSG_CLASS_NORMAL MQCLASS_CODE( 0, 0, 0x00 )
|
|
#define MQMSG_CLASS_REPORT MQCLASS_CODE( 0, 0, 0x01 )
|
|
#define MQMSG_CLASS_ACK_REACH_QUEUE MQCLASS_CODE( 0, 0, 0x02 )
|
|
#define MQMSG_CLASS_ACK_RECEIVE MQCLASS_CODE( 0, 1, 0x00 )
|
|
#define MQMSG_CLASS_NACK_BAD_DST_Q MQCLASS_CODE( 1, 0, 0x00 )
|
|
#define MQMSG_CLASS_NACK_PURGED MQCLASS_CODE( 1, 0, 0x01 )
|
|
#define MQMSG_CLASS_NACK_REACH_QUEUE_TIMEOUT MQCLASS_CODE( 1, 0, 0x02 )
|
|
#define MQMSG_CLASS_NACK_Q_EXCEED_QUOTA MQCLASS_CODE( 1, 0, 0x03 )
|
|
#define MQMSG_CLASS_NACK_ACCESS_DENIED MQCLASS_CODE( 1, 0, 0x04 )
|
|
#define MQMSG_CLASS_NACK_HOP_COUNT_EXCEEDED MQCLASS_CODE( 1, 0, 0x05 )
|
|
#define MQMSG_CLASS_NACK_BAD_SIGNATURE MQCLASS_CODE( 1, 0, 0x06 )
|
|
#define MQMSG_CLASS_NACK_BAD_ENCRYPTION MQCLASS_CODE( 1, 0, 0x07 )
|
|
#define MQMSG_CLASS_NACK_COULD_NOT_ENCRYPT MQCLASS_CODE( 1, 0, 0x08 )
|
|
#define MQMSG_CLASS_NACK_NOT_TRANSACTIONAL_Q MQCLASS_CODE( 1, 0, 0x09 )
|
|
#define MQMSG_CLASS_NACK_NOT_TRANSACTIONAL_MSG MQCLASS_CODE( 1, 0, 0x0A )
|
|
#define MQMSG_CLASS_NACK_UNSUPPORTED_CRYPTO_PROVIDER MQCLASS_CODE( 1, 0, 0x0B )
|
|
#define MQMSG_CLASS_NACK_SOURCE_COMPUTER_GUID_CHANGED MQCLASS_CODE( 1, 0, 0x0C )
|
|
#define MQMSG_CLASS_NACK_MESSAGE_TOO_LARGE MQCLASS_CODE( 1, 0, 0x0D )
|
|
#define MQMSG_CLASS_NACK_Q_DELETED MQCLASS_CODE( 1, 1, 0x00 )
|
|
#define MQMSG_CLASS_NACK_Q_PURGED MQCLASS_CODE( 1, 1, 0x01 )
|
|
#define MQMSG_CLASS_NACK_RECEIVE_TIMEOUT MQCLASS_CODE( 1, 1, 0x02 )
|
|
#define MQMSG_CLASS_NACK_RECEIVE_TIMEOUT_AT_SENDER MQCLASS_CODE( 1, 1, 0x03 )
|
|
#define MQMSG_CLASS_NACK_RECEIVE_REJECTED MQCLASS_CODE( 1, 1, 0x04 )
|
|
|
|
/* Message acknowledgement flags */
|
|
#define MQMSG_ACKNOWLEDGEMENT_NONE 0x00
|
|
#define MQMSG_ACKNOWLEDGEMENT_POS_ARRIVAL 0x01
|
|
#define MQMSG_ACKNOWLEDGEMENT_POS_RECEIVE 0x02
|
|
#define MQMSG_ACKNOWLEDGEMENT_NEG_ARRIVAL 0x04
|
|
#define MQMSG_ACKNOWLEDGEMENT_NEG_RECEIVE 0x08
|
|
#define MQMSG_ACKNOWLEDGEMENT_NACK_REACH_QUEUE \
|
|
MQMSG_ACKNOWLEDGEMENT_NEG_ARRIVAL
|
|
#define MQMSG_ACKNOWLEDGEMENT_FULL_REACH_QUEUE \
|
|
(MQMSG_ACKNOWLEDGEMENT_NEG_ARRIVAL | MQMSG_ACKNOWLEDGEMENT_POS_ARRIVAL)
|
|
#define MQMSG_ACKNOWLEDGEMENT_NACK_RECEIVE \
|
|
(MQMSG_ACKNOWLEDGEMENT_NEG_ARRIVAL | MQMSG_ACKNOWLEDGEMENT_NEG_RECEIVE)
|
|
#define MQMSG_ACKNOWLEDGEMENT_FULL_RECEIVE \
|
|
(MQMSG_ACKNOWLEDGEMENT_NEG_ARRIVAL | MQMSG_ACKNOWLEDGEMENT_NEG_RECEIVE | \
|
|
MQMSG_ACKNOWLEDGMENT_POS_RECEIVE)
|
|
|
|
/* Message delivery values */
|
|
#define MQMSG_DELIVERY_EXPRESS 0
|
|
#define MQMSG_DELIVERY_RECOVERABLE 1
|
|
|
|
/* Message journal values */
|
|
#define MQMSG_JOURNAL_NONE 0
|
|
#define MQMSG_DEADLETTER 1
|
|
#define MQMSG_JOURNAL 2
|
|
|
|
/* Message trace values */
|
|
#define MQMSG_TRACE_NONE 0
|
|
#define MQMSG_SEND_ROUTE_TO_REPORT_QUEUE 1
|
|
|
|
/* Message sender identifier types */
|
|
#define MQMSG_SENDERID_TYPE_NONE 0
|
|
#define MQMSG_SENDERID_TYPE_SID 1
|
|
|
|
/* Message privilege levels */
|
|
#define MQMSG_PRIV_LEVEL_NONE 0x00
|
|
#define MQMSG_PRIV_LEVEL_BODY_BASE 0x01
|
|
#define MQMSG_PRIV_LEVEL_BODY_ENHANCED 0x03
|
|
#define MQMSG_PRIV_LEVEL_BODY_AES 0x05
|
|
|
|
/* Message authentication levels */
|
|
#define MQMSG_AUTH_LEVEL_NONE 0
|
|
#define MQMSG_AUTH_LEVEL_ALWAYS 1
|
|
#define MQMSG_AUTH_LEVEL_MSMQ10 2
|
|
#define MQMSG_AUTH_LEVEL_MSMQ20 4
|
|
#define MQMSG_AUTH_LEVEL_SIG10 2
|
|
#define MQMSG_AUTH_LEVEL_SIG20 4
|
|
#define MQMSG_AUTH_LEVEL_SIG30 8
|
|
|
|
/* Message authentication values */
|
|
#define MQMSG_AUTHENTICATION_NOT_REQUESTED 0
|
|
#define MQMSG_AUTHENTICATION_REQUESTED 1
|
|
#define MQMSG_AUTHENTICATION_REQUESTED_EX 3
|
|
#define MQMSG_AUTHENTICATED_SIG10 1
|
|
#define MQMSG_AUTHENTICATED_SIG20 3
|
|
#define MQMSG_AUTHENTICATED_SIG30 5
|
|
#define MQMSG_AUTHENTICATED_SIGXML 9
|
|
#define MQMSG_AUTHENTICATED_QM_MESSAGE 11
|
|
|
|
/* Message first in transaction values */
|
|
#define MQMSG_NOT_FIRST_IN_XACT 0
|
|
#define MQMSG_FIRST_IN_XACT 1
|
|
|
|
/* Message last in transaction values */
|
|
#define MQMSG_NOT_LAST_IN_XACT 0
|
|
#define MQMSG_LAST_IN_XACT 1
|
|
|
|
/* Message queue properties */
|
|
#define PROPID_Q_BASE 100
|
|
#define PROPID_Q_INSTANCE (PROPID_Q_BASE + 1)
|
|
#define PROPID_Q_TYPE (PROPID_Q_BASE + 2)
|
|
#define PROPID_Q_PATHNAME (PROPID_Q_BASE + 3)
|
|
#define PROPID_Q_JOURNAL (PROPID_Q_BASE + 4)
|
|
#define PROPID_Q_QUOTA (PROPID_Q_BASE + 5)
|
|
#define PROPID_Q_BASEPRIORITY (PROPID_Q_BASE + 6)
|
|
#define PROPID_Q_JOURNAL_QUOTA (PROPID_Q_BASE + 7)
|
|
#define PROPID_Q_LABEL (PROPID_Q_BASE + 8)
|
|
#define PROPID_Q_CREATE_TIME (PROPID_Q_BASE + 9)
|
|
#define PROPID_Q_MODIFY_TIME (PROPID_Q_BASE + 10)
|
|
#define PROPID_Q_AUTHENTICATE (PROPID_Q_BASE + 11)
|
|
#define PROPID_Q_PRIV_LEVEL (PROPID_Q_BASE + 12)
|
|
#define PROPID_Q_TRANSACTION (PROPID_Q_BASE + 13)
|
|
#define PROPID_Q_PATHNAME_DNS (PROPID_Q_BASE + 24)
|
|
#define PROPID_Q_MULTICAST_ADDRESS (PROPID_Q_BASE + 25)
|
|
#define PROPID_Q_ADS_PATH (PROPID_Q_BASE + 26)
|
|
|
|
/* Message queue journal values */
|
|
#define MQ_JOURNAL_NONE 0
|
|
#define MQ_JOURNAL 1
|
|
|
|
/* Message queue types */
|
|
#define MQ_QTYPE_REPORT \
|
|
{ 0x55EE8F32, 0xCCE9, 0x11CF, { 0xB1, 0x08, 0x00, 0x20, 0xAF, 0xD6, 0x1C, 0xE9 } }
|
|
#define MQ_QTYPE_TEST \
|
|
{ 0x55EE8F33, 0xCCE9, 0x11CF, { 0xB1, 0x08, 0x00, 0x20, 0xAF, 0xD6, 0x1C, 0xE9 } }
|
|
|
|
/* Message queue transaction values */
|
|
#define MQ_TRANSACTIONAL_NONE 0
|
|
#define MQ_TRANSACTIONAL 1
|
|
|
|
/* Message queue authentication values */
|
|
#define MQ_AUTHENTICATE_NONE 0
|
|
#define MQ_AUTHENTICATE 1
|
|
|
|
/* Message queue privilege levels */
|
|
#define MQ_PRIV_LEVEL_NONE 0
|
|
#define MQ_PRIV_LEVEL_OPTIONAL 1
|
|
#define MQ_PRIV_LEVEL_BODY 2
|
|
|
|
/* Machine properties */
|
|
#define PROPID_QM_BASE 200
|
|
#define PROPID_QM_SITE_ID (PROPID_QM_BASE + 1)
|
|
#define PROPID_QM_MACHINE_ID (PROPID_QM_BASE + 2)
|
|
#define PROPID_QM_PATHNAME (PROPID_QM_BASE + 3)
|
|
#define PROPID_QM_CONNECTION (PROPID_QM_BASE + 4)
|
|
#define PROPID_QM_ENCRYPTION_PK (PROPID_QM_BASE + 5)
|
|
#define PROPID_QM_ENCRYPTION_PK_BASE (PROPID_QM_BASE + 31)
|
|
#define PROPID_QM_ENCRYPTION_PK_ENHANCED (PROPID_QM_BASE + 32)
|
|
#define PROPID_QM_PATHNAME_DNS (PROPID_QM_BASE + 33)
|
|
#define PROPID_QM_ENCRYPTION_PK_AES (PROPID_QM_BASE + 44)
|
|
|
|
/* Private computer properties */
|
|
#define PROPID_PC_BASE 5800
|
|
#define PROPID_PC_VERSION (PROPID_PC_BASE + 1)
|
|
#define PROPID_PC_DS_ENABLED (PROPID_PC_BASE + 2)
|
|
|
|
/* Management properties */
|
|
#define PROPID_MGMT_MSMQ_BASE 0
|
|
#define PROPID_MGMT_MSMQ_ACTIVEQUEUES (PROPID_MGMT_MSMQ_BASE + 1)
|
|
#define PROPID_MGMT_MSMQ_PRIVATEQ (PROPID_MGMT_MSMQ_BASE + 2)
|
|
#define PROPID_MGMT_MSMQ_DSSERVER (PROPID_MGMT_MSMQ_BASE + 3)
|
|
#define PROPID_MGMT_MSMQ_CONNECTED (PROPID_MGMT_MSMQ_BASE + 4)
|
|
#define PROPID_MGMT_MSMQ_TYPE (PROPID_MGMT_MSMQ_BASE + 5)
|
|
#define PROPID_MGMT_MSMQ_BYTES_IN_ALL_QUEUES (PROPID_MGMT_MSMQ_BASE + 6)
|
|
|
|
/* Management connected values */
|
|
#define MSMQ_CONNECTED L"CONNECTED"
|
|
#define MSMQ_DISCONNECTED L"DISCONNECTED"
|
|
|
|
/* Management queue properties */
|
|
#define PROPID_MGMT_QUEUE_BASE 0
|
|
#define PROPID_MGMT_QUEUE_PATHNAME (PROPID_MGMT_QUEUE_BASE + 1)
|
|
#define PROPID_MGMT_QUEUE_FORMATNAME (PROPID_MGMT_QUEUE_BASE + 2)
|
|
#define PROPID_MGMT_QUEUE_TYPE (PROPID_MGMT_QUEUE_BASE + 3)
|
|
#define PROPID_MGMT_QUEUE_LOCATION (PROPID_MGMT_QUEUE_BASE + 4)
|
|
#define PROPID_MGMT_QUEUE_XACT (PROPID_MGMT_QUEUE_BASE + 5)
|
|
#define PROPID_MGMT_QUEUE_FOREIGN (PROPID_MGMT_QUEUE_BASE + 6)
|
|
#define PROPID_MGMT_QUEUE_MESSAGE_COUNT (PROPID_MGMT_QUEUE_BASE + 7)
|
|
#define PROPID_MGMT_QUEUE_BYTES_IN_QUEUE (PROPID_MGMT_QUEUE_BASE + 8)
|
|
#define PROPID_MGMT_QUEUE_JOURNAL_MESSAGE_COUNT (PROPID_MGMT_QUEUE_BASE + 9)
|
|
#define PROPID_MGMT_QUEUE_BYTES_IN_JOURNAL (PROPID_MGMT_QUEUE_BASE + 10)
|
|
#define PROPID_MGMT_QUEUE_STATE (PROPID_MGMT_QUEUE_BASE + 11)
|
|
#define PROPID_MGMT_QUEUE_NEXTHOPS (PROPID_MGMT_QUEUE_BASE + 12)
|
|
#define PROPID_MGMT_QUEUE_EOD_LAST_ACK (PROPID_MGMT_QUEUE_BASE + 13)
|
|
#define PROPID_MGMT_QUEUE_EOD_LAST_ACK_TIME (PROPID_MGMT_QUEUE_BASE + 14)
|
|
#define PROPID_MGMT_QUEUE_EOD_LAST_ACK_COUNT (PROPID_MGMT_QUEUE_BASE + 15)
|
|
#define PROPID_MGMT_QUEUE_EOD_FIRST_NON_ACK (PROPID_MGMT_QUEUE_BASE + 16)
|
|
#define PROPID_MGMT_QUEUE_EOD_LAST_NON_ACK (PROPID_MGMT_QUEUE_BASE + 17)
|
|
#define PROPID_MGMT_QUEUE_EOD_NEXT_SEQ (PROPID_MGMT_QUEUE_BASE + 18)
|
|
#define PROPID_MGMT_QUEUE_EOD_NO_READ_COUNT (PROPID_MGMT_QUEUE_BASE + 19)
|
|
#define PROPID_MGMT_QUEUE_EOD_NO_ACK_COUNT (PROPID_MGMT_QUEUE_BASE + 20)
|
|
#define PROPID_MGMT_QUEUE_EOD_RESEND_TIME (PROPID_MGMT_QUEUE_BASE + 21)
|
|
#define PROPID_MGMT_QUEUE_EOD_RESEND_INTERVAL (PROPID_MGMT_QUEUE_BASE + 22)
|
|
#define PROPID_MGMT_QUEUE_EOD_RESEND_COUNT (PROPID_MGMT_QUEUE_BASE + 23)
|
|
#define PROPID_MGMT_QUEUE_EOD_SOURCE_INFO (PROPID_MGMT_QUEUE_BASE + 24)
|
|
#define PROPID_MGMT_QUEUE_CONNECTION_HISTORY (PROPID_MGMT_QUEUE_BASE + 25)
|
|
#define PROPID_MGMT_QUEUE_SUBQUEUE_COUNT (PROPID_MGMT_QUEUE_BASE + 26)
|
|
#define PROPID_MGMT_QUEUE_SUBQUEUE_NAMES (PROPID_MGMT_QUEUE_BASE + 27)
|
|
#define PROPID_MGMT_QUEUE_USED_QUOTA PROPID_MGMT_QUEUE_BYTES_IN_QUEUE
|
|
#define PROPID_MGMT_QUEUE_JOURNAL_USED_QUOTA PROPID_MGMT_QUEUE_BYTES_IN_JOURNAL
|
|
|
|
/* Management queue types */
|
|
#define MGMT_QUEUE_TYPE_PUBLIC L"PUBLIC"
|
|
#define MGMT_QUEUE_TYPE_PRIVATE L"PRIVATE"
|
|
#define MGMT_QUEUE_TYPE_MACHINE L"MACHINE"
|
|
#define MGMT_QUEUE_TYPE_CONNECTOR L"CONNECTOR"
|
|
#define MGMT_QUEUE_TYPE_MULTICAST L"MULTICAST"
|
|
|
|
/* Management queue states */
|
|
#define MGMT_QUEUE_STATE_LOCAL L"LOCAL CONNECTION"
|
|
#define MGMT_QUEUE_STATE_NONACTIVE L"INACTIVE"
|
|
#define MGMT_QUEUE_STATE_WAITING L"WAITING"
|
|
#define MGMT_QUEUE_STATE_NEED_VALIDATE L"NEED VALIDATION"
|
|
#define MGMT_QUEUE_STATE_ONHOLD L"ONHOLD"
|
|
#define MGMT_QUEUE_STATE_CONNECTED L"CONNECTED"
|
|
#define MGMT_QUEUE_STATE_DISCONNECTING L"DISCONNECTING"
|
|
#define MGMT_QUEUE_STATE_DISCONNECTED L"DISCONNECTED"
|
|
#define MGMT_QUEUE_STATE_LOCKED L"LOCKED"
|
|
|
|
/* Management queue locations */
|
|
#define MGMT_QUEUE_LOCAL_LOCATION L"LOCAL"
|
|
#define MGMT_QUEUE_REMOTE_LOCATION L"REMOTE"
|
|
|
|
/* Management queue transaction and foreign types */
|
|
#define MGMT_QUEUE_UNKNOWN_TYPE L"UNKNOWN"
|
|
#define MGMT_QUEUE_CORRECT_TYPE L"YES"
|
|
#define MGMT_QUEUE_INCORRECT_TYPE L"NO"
|
|
|
|
/* Management queue transaction types */
|
|
#define MGMT_QUEUE_TRANSACTIONAL_TYPE L"YES"
|
|
#define MGMT_QUEUE_NOT_TRANSACTIONAL_TYPE L"NO"
|
|
|
|
/* Management queue foreign types */
|
|
#define MGMT_QUEUE_FOREIGN_TYPE L"YES"
|
|
#define MGMT_QUEUE_NOT_FOREIGN_TYPE L"NO"
|
|
|
|
/* MQMgmtAction() object parameter values */
|
|
#define MO_MACHINE_TOKEN L"MACHINE"
|
|
#define MO_QUEUE_TOKEN L"QUEUE"
|
|
|
|
/* MQMgmtAction() action parameter values */
|
|
#define MACHINE_ACTION_CONNECT L"CONNECT"
|
|
#define MACHINE_ACTION_DISCONNECT L"DISCONNECT"
|
|
#define MACHINE_ACTION_TIDY L"TIDY"
|
|
#define QUEUE_ACTION_PAUSE L"PAUSE"
|
|
#define QUEUE_ACTION_RESUME L"RESUME"
|
|
#define QUEUE_ACTION_EOD_RESEND L"EOD_RESEND"
|
|
|
|
/* Special time value */
|
|
#define LONG_LIVED 0xFFFFFFFEL
|
|
|
|
/* Maximum length */
|
|
#define MQ_MAX_Q_NAME_LEN 124
|
|
#define MQ_MAX_Q_LABEL_LEN 124
|
|
#define MQ_MAX_MSG_LABEL_LEN 250
|
|
|
|
/* MQRegisterCertificate() flags */
|
|
#define MQCERT_REGISTER_ALWAYS 0x01
|
|
#define MQCERT_REGISTER_IF_NOT_EXIST 0x02
|
|
|
|
/* Message queue security flags */
|
|
#define MQSEC_DELETE_MESSAGE 0x0001L
|
|
#define MQSEC_PEEK_MESSAGE 0x0002L
|
|
#define MQSEC_WRITE_MESSAGE 0x0004L
|
|
#define MQSEC_DELETE_JOURNAL_MESSAGE 0x0008L
|
|
#define MQSEC_SET_QUEUE_PROPERTIES 0x0010L
|
|
#define MQSEC_GET_QUEUE_PROPERTIES 0x0020L
|
|
#define MQSEC_DELETE_QUEUE DELETE
|
|
#define MQSEC_GET_QUEUE_PERMISSIONS READ_CONTROL
|
|
#define MQSEC_CHANGE_QUEUE_PERMISSIONS WRITE_DAC
|
|
#define MQSEC_TAKE_QUEUE_OWNERSHIP WRITE_OWNER
|
|
#define MQSEC_RECEIVE_MESSAGE (MQSEC_DELETE_MESSAGE | MQSEC_PEEK_MESSAGE)
|
|
#define MQSEC_RECEIVE_JOURNAL_MESSAGE \
|
|
(MQSEC_DELETE_JOURNAL_MESSAGE | MQSEC_PEEK_MESSAGE)
|
|
#define MQSEC_QUEUE_GENERIC_READ \
|
|
(MQSEC_GET_QUEUE_PROPERTIES | MQSEC_GET_QUEUE_PERMISSIONS | MQSEC_RECEIVE_MESSAGE | \
|
|
MQSEC_RECEIVE_JOURNAL_MESSAGE)
|
|
#define MQSEC_QUEUE_GENERIC_WRITE \
|
|
(MQSEC_GET_QUEUE_PROPERTIES | MQSEC_GET_QUEUE_PERMISSIONS | MQSEC_WRITE_MESSAGE)
|
|
#define MQSEC_QUEUE_GENERIC_EXECUTE 0x0000L
|
|
#define MQSEC_QUEUE_GENERIC_ALL \
|
|
(MQSEC_RECEIVE_MESSAGE | MQSEC_RECEIVE_JOURNAL_MESSAGE | MQSEC_WRITE_MESSAGE | \
|
|
MQSEC_SET_QUEUE_PROPERTIES | MQSEC_GET_QUEUE_PROPERTIES | MQSEC_DELETE_QUEUE | \
|
|
MQSEC_GET_QUEUE_PERMISSIONS | MQSEC_CHANGE_QUEUE_PERMISSIONS | \
|
|
MQSEC_TAKE_QUEUE_OWNERSHIP)
|
|
|
|
/* Message queue error codes */
|
|
#define MQ_OK 0L
|
|
#define MQ_INFORMATION_PROPERTY 0x400E0001L
|
|
#define MQ_INFORMATION_ILLEGAL_PROPERTY 0x400E0002L
|
|
#define MQ_INFORMATION_PROPERTY_IGNORED 0x400E0003L
|
|
#define MQ_INFORMATION_UNSUPPORTED_PROPERTY 0x400E0004L
|
|
#define MQ_INFORMATION_DUPLICATE_PROPERTY 0x400E0005L
|
|
#define MQ_INFORMATION_OPERATION_PENDING 0x400E0006L
|
|
#define MQ_INFORMATION_FORMATNAME_BUFFER_TOO_SMALL 0x400E0009L
|
|
#define MQ_INFORMATION_INTERNAL_USER_CERT_EXIST 0x400E000AL
|
|
#define MQ_INFORMATION_OWNER_IGNORED 0x400E000BL
|
|
#define MQ_ERROR 0xC00E0001L
|
|
#define MQ_ERROR_PROPERTY 0xC00E0002L
|
|
#define MQ_ERROR_QUEUE_NOT_FOUND 0xC00E0003L
|
|
#define MQ_ERROR_QUEUE_NOT_ACTIVE 0xC00E0004L
|
|
#define MQ_ERROR_QUEUE_EXISTS 0xC00E0005L
|
|
#define MQ_ERROR_INVALID_PARAMETER 0xC00E0006L
|
|
#define MQ_ERROR_INVALID_HANDLE 0xC00E0007L
|
|
#define MQ_ERROR_OPERATION_CANCELLED 0xC00E0008L
|
|
#define MQ_ERROR_SHARING_VIOLATION 0xC00E0009L
|
|
#define MQ_ERROR_SERVICE_NOT_AVAILABLE 0xC00E000BL
|
|
#define MQ_ERROR_MACHINE_NOT_FOUND 0xC00E000DL
|
|
#define MQ_ERROR_ILLEGAL_SORT 0xC00E0010L
|
|
#define MQ_ERROR_ILLEGAL_USER 0xC00E0011L
|
|
#define MQ_ERROR_NO_DS 0xC00E0013L
|
|
#define MQ_ERROR_ILLEGAL_QUEUE_PATHNAME 0xC00E0014L
|
|
#define MQ_ERROR_ILLEGAL_PROPERTY_VALUE 0xC00E0018L
|
|
#define MQ_ERROR_ILLEGAL_PROPERTY_VT 0xC00E0019L
|
|
#define MQ_ERROR_BUFFER_OVERFLOW 0xC00E001AL
|
|
#define MQ_ERROR_IO_TIMEOUT 0xC00E001BL
|
|
#define MQ_ERROR_ILLEGAL_CURSOR_ACTION 0xC00E001CL
|
|
#define MQ_ERROR_MESSAGE_ALREADY_RECEIVED 0xC00E001DL
|
|
#define MQ_ERROR_ILLEGAL_FORMATNAME 0xC00E001EL
|
|
#define MQ_ERROR_FORMATNAME_BUFFER_TOO_SMALL 0xC00E001FL
|
|
#define MQ_ERROR_UNSUPPORTED_FORMATNAME_OPERATION 0xC00E0020L
|
|
#define MQ_ERROR_ILLEGAL_SECURITY_DESCRIPTOR 0xC00E0021L
|
|
#define MQ_ERROR_SENDERID_BUFFER_TOO_SMALL 0xC00E0022L
|
|
#define MQ_ERROR_SECURITY_DESCRIPTOR_TOO_SMALL 0xC00E0023L
|
|
#define MQ_ERROR_CANNOT_IMPERSONATE_CLIENT 0xC00E0024L
|
|
#define MQ_ERROR_ACCESS_DENIED 0xC00E0025L
|
|
#define MQ_ERROR_PRIVILEGE_NOT_HELD 0xC00E0026L
|
|
#define MQ_ERROR_INSUFFICIENT_RESOURCES 0xC00E0027L
|
|
#define MQ_ERROR_USER_BUFFER_TOO_SMALL 0xC00E0028L
|
|
#define MQ_ERROR_MESSAGE_STORAGE_FAILED 0xC00E002AL
|
|
#define MQ_ERROR_SENDER_CERT_BUFFER_TOO_SMALL 0xC00E002BL
|
|
#define MQ_ERROR_INVALID_CERTIFICATE 0xC00E002CL
|
|
#define MQ_ERROR_CORRUPTED_INTERNAL_CERTIFICATE 0xC00E002DL
|
|
#define MQ_ERROR_INTERNAL_USER_CERT_EXIST 0xC00E002EL
|
|
#define MQ_ERROR_NO_INTERNAL_USER_CERT 0xC00E002FL
|
|
#define MQ_ERROR_CORRUPTED_SECURITY_DATA 0xC00E0030L
|
|
#define MQ_ERROR_CORRUPTED_PERSONAL_CERT_STORE 0xC00E0031L
|
|
#define MQ_ERROR_COMPUTER_DOES_NOT_SUPPORT_ENCRYPTION 0xC00E0033L
|
|
#define MQ_ERROR_BAD_SECURITY_CONTEXT 0xC00E0035L
|
|
#define MQ_ERROR_COULD_NOT_GET_USER_SID 0xC00E0036L
|
|
#define MQ_ERROR_COULD_NOT_GET_ACCOUNT_INFO 0xC00E0037L
|
|
#define MQ_ERROR_ILLEGAL_MQCOLUMNS 0xC00E0038L
|
|
#define MQ_ERROR_ILLEGAL_PROPID 0xC00E0039L
|
|
#define MQ_ERROR_ILLEGAL_RELATION 0xC00E003AL
|
|
#define MQ_ERROR_ILLEGAL_PROPERTY_SIZE 0xC00E003BL
|
|
#define MQ_ERROR_ILLEGAL_RESTRICTION_PROPID 0xC00E003CL
|
|
#define MQ_ERROR_ILLEGAL_MQQUEUEPROPS 0xC00E003DL
|
|
#define MQ_ERROR_PROPERTY_NOTALLOWED 0xC00E003EL
|
|
#define MQ_ERROR_INSUFFICIENT_PROPERTIES 0xC00E003FL
|
|
#define MQ_ERROR_MACHINE_EXISTS 0xC00E0040L
|
|
#define MQ_ERROR_ILLEGAL_MQQMPROPS 0xC00E0041L
|
|
#define MQ_ERROR_DS_IS_FULL 0xC00E0042L
|
|
#define MQ_ERROR_DS_ERROR 0xC00E0043L
|
|
#define MQ_ERROR_INVALID_OWNER 0xC00E0044L
|
|
#define MQ_ERROR_UNSUPPORTED_ACCESS_MODE 0xC00E0045L
|
|
#define MQ_ERROR_RESULT_BUFFER_TOO_SMALL 0xC00E0046L
|
|
#define MQ_ERROR_DELETE_CN_IN_USE 0xC00E0048L
|
|
#define MQ_ERROR_NO_RESPONSE_FROM_OBJECT_SERVER 0xC00E0049L
|
|
#define MQ_ERROR_OBJECT_SERVER_NOT_AVAILABLE 0xC00E004AL
|
|
#define MQ_ERROR_QUEUE_NOT_AVAILABLE 0xC00E004BL
|
|
#define MQ_ERROR_DTC_CONNECT 0xC00E004CL
|
|
#define MQ_ERROR_TRANSACTION_IMPORT 0xC00E004EL
|
|
#define MQ_ERROR_TRANSACTION_USAGE 0xC00E0050L
|
|
#define MQ_ERROR_TRANSACTION_SEQUENCE 0xC00E0051L
|
|
#define MQ_ERROR_MISSING_CONNECTOR_TYPE 0xC00E0055L
|
|
#define MQ_ERROR_STALE_HANDLE 0xC00E0056L
|
|
#define MQ_ERROR_TRANSACTION_ENLIST 0xC00E0058L
|
|
#define MQ_ERROR_QUEUE_DELETED 0xC00E005AL
|
|
#define MQ_ERROR_ILLEGAL_CONTEXT 0xC00E005BL
|
|
#define MQ_ERROR_ILLEGAL_SORT_PROPID 0xC00E005CL
|
|
#define MQ_ERROR_LABEL_TOO_LONG 0xC00E005DL
|
|
#define MQ_ERROR_LABEL_BUFFER_TOO_SMALL 0xC00E005EL
|
|
#define MQ_ERROR_MQIS_SERVER_EMPTY 0xC00E005FL
|
|
#define MQ_ERROR_MQIS_READONLY_MODE 0xC00E0060L
|
|
#define MQ_ERROR_SYMM_KEY_BUFFER_TOO_SMALL 0xC00E0061L
|
|
#define MQ_ERROR_SIGNATURE_BUFFER_TOO_SMALL 0xC00E0062L
|
|
#define MQ_ERROR_PROV_NAME_BUFFER_TOO_SMALL 0xC00E0063L
|
|
#define MQ_ERROR_ILLEGAL_OPERATION 0xC00E0064L
|
|
#define MQ_ERROR_WRITE_NOT_ALLOWED 0xC00E0065L
|
|
#define MQ_ERROR_WKS_CANT_SERVE_CLIENT 0xC00E0066L
|
|
#define MQ_ERROR_DEPEND_WKS_LICENSE_OVERFLOW 0xC00E0067L
|
|
#define MQ_CORRUPTED_QUEUE_WAS_DELETED 0xC00E0068L
|
|
#define MQ_ERROR_REMOTE_MACHINE_NOT_AVAILABLE 0xC00E0069L
|
|
#define MQ_ERROR_UNSUPPORTED_OPERATION 0xC00E006AL
|
|
#define MQ_ERROR_ENCRYPTION_PROVIDER_NOT_SUPPORTED 0xC00E006BL
|
|
#define MQ_ERROR_CANNOT_SET_CRYPTO_SEC_DESCR 0xC00E006CL
|
|
#define MQ_ERROR_CERTIFICATE_NOT_PROVIDED 0xC00E006DL
|
|
#define MQ_ERROR_Q_DNS_PROPERTY_NOT_SUPPORTED 0xC00E006EL
|
|
#define MQ_ERROR_CANNOT_CREATE_CERT_STORE 0xC00E006FL
|
|
#define MQ_ERROR_CANNOT_OPEN_CERT_STORE 0xC00E0070L
|
|
#define MQ_ERROR_ILLEGAL_ENTERPRISE_OPERATION 0xC00E0071L
|
|
#define MQ_ERROR_CANNOT_GRANT_ADD_GUID 0xC00E0072L
|
|
#define MQ_ERROR_CANNOT_LOAD_MSMQOCM 0xC00E0073L
|
|
#define MQ_ERROR_NO_ENTRY_POINT_MSMQOCM 0xC00E0074L
|
|
#define MQ_ERROR_NO_MSMQ_SERVERS_ON_DC 0xC00E0075L
|
|
#define MQ_ERROR_CANNOT_JOIN_DOMAIN 0xC00E0076L
|
|
#define MQ_ERROR_CANNOT_CREATE_ON_GC 0xC00E0077L
|
|
#define MQ_ERROR_GUID_NOT_MATCHING 0xC00E0078L
|
|
#define MQ_ERROR_PUBLIC_KEY_NOT_FOUND 0xC00E0079L
|
|
#define MQ_ERROR_PUBLIC_KEY_DOES_NOT_EXIST 0xC00E007AL
|
|
#define MQ_ERROR_ILLEGAL_MQPRIVATEPROPS 0xC00E007BL
|
|
#define MQ_ERROR_NO_GC_IN_DOMAIN 0xC00E007CL
|
|
#define MQ_ERROR_NO_MSMQ_SERVERS_ON_GC 0xC00E007DL
|
|
#define MQ_ERROR_CANNOT_GET_DN 0xC00E007EL
|
|
#define MQ_ERROR_CANNOT_HASH_DATA_EX 0xC00E007FL
|
|
#define MQ_ERROR_CANNOT_SIGN_DATA_EX 0xC00E0080L
|
|
#define MQ_ERROR_CANNOT_CREATE_HASH_EX 0xC00E0081L
|
|
#define MQ_ERROR_FAIL_VERIFY_SIGNATURE_EX 0xC00E0082L
|
|
#define MQ_ERROR_CANNOT_DELETE_PSC_OBJECTS 0xC00E0083L
|
|
#define MQ_ERROR_NO_MQUSER_OU 0xC00E0084L
|
|
#define MQ_ERROR_CANNOT_LOAD_MQAD 0xC00E0085L
|
|
#define MQ_ERROR_CANNOT_LOAD_MQDSSRV 0xC00E0086L
|
|
#define MQ_ERROR_PROPERTIES_CONFLICT 0xC00E0087L
|
|
#define MQ_ERROR_MESSAGE_NOT_FOUND 0xC00E0088L
|
|
#define MQ_ERROR_CANT_RESOLVE_SITES 0xC00E0089L
|
|
#define MQ_ERROR_NOT_SUPPORTED_BY_DEPENDENT_CLIENTS 0xC00E008AL
|
|
#define MQ_ERROR_OPERATION_NOT_SUPPORTED_BY_REMOTE_COMPUTER 0xC00E008BL
|
|
#define MQ_ERROR_NOT_A_CORRECT_OBJECT_CLASS 0xC00E008CL
|
|
#define MQ_ERROR_MULTI_SORT_KEYS 0xC00E008DL
|
|
#define MQ_ERROR_GC_NEEDED 0xC00E008EL
|
|
#define MQ_ERROR_DS_BIND_ROOT_FOREST 0xC00E008FL
|
|
#define MQ_ERROR_DS_LOCAL_USER 0xC00E0090L
|
|
#define MQ_ERROR_Q_ADS_PROPERTY_NOT_SUPPORTED 0xC00E0091L
|
|
#define MQ_ERROR_BAD_XML_FORMAT 0xC00E0092L
|
|
#define MQ_ERROR_UNSUPPORTED_CLASS 0xC00E0093L
|
|
#define MQ_ERROR_UNINITIALIZED_OBJECT 0xC00E0094L
|
|
#define MQ_ERROR_CANNOT_CREATE_PSC_OBJECTS 0xC00E0095L
|
|
#define MQ_ERROR_CANNOT_UPDATE_PSC_OBJECTS 0xC00E0096L
|
|
#define MQ_ERROR_RESOLVE_ADDRESS 0xC00E0099L
|
|
#define MQ_ERROR_TOO_MANY_PROPERTIES 0xC00E009AL
|
|
#define MQ_ERROR_MESSAGE_NOT_AUTHENTICATED 0xC00E009BL
|
|
#define MQ_ERROR_MESSAGE_LOCKED_UNDER_TRANSACTION 0xC00E009CL
|
|
|
|
/* Message queue property variant */
|
|
typedef PROPVARIANT MQPROPVARIANT;
|
|
|
|
/* Message queue property restriction */
|
|
typedef struct tagMQPROPERTYRESTRICTION {
|
|
ULONG rel;
|
|
PROPID prop;
|
|
MQPROPVARIANT prval;
|
|
} MQPROPERTYRESTRICTION;
|
|
|
|
/* Message queue restriction */
|
|
typedef struct tagMQRESTRICTION {
|
|
ULONG cRes;
|
|
MQPROPERTYRESTRICTION *paPropRes;
|
|
} MQRESTRICTION;
|
|
|
|
/* Message queue column set */
|
|
typedef struct tagMQCOLUMNSET {
|
|
ULONG cCol;
|
|
PROPID *aCol;
|
|
} MQCOLUMNSET;
|
|
|
|
/* Message queue sort key */
|
|
typedef struct tagMQSORTKEY {
|
|
PROPID propColumn;
|
|
ULONG dwOrder;
|
|
} MQSORTKEY;
|
|
|
|
/* Message queue sort set */
|
|
typedef struct tagMQSORTSET {
|
|
ULONG cCol;
|
|
MQSORTKEY *aCol;
|
|
} MQSORTSET;
|
|
|
|
/* Message queue message properties */
|
|
typedef struct tagMQMSGPROPS {
|
|
DWORD cProp;
|
|
MSGPROPID *aPropID;
|
|
MQPROPVARIANT *aPropVar;
|
|
HRESULT *aStatus;
|
|
} MQMSGPROPS;
|
|
|
|
/* Message queue queue properties */
|
|
typedef struct tagMQQUEUEPROPS {
|
|
DWORD cProp;
|
|
QUEUEPROPID *aPropID;
|
|
MQPROPVARIANT *aPropVar;
|
|
HRESULT *aStatus;
|
|
} MQQUEUEPROPS;
|
|
|
|
/* Message queue queue manager properties */
|
|
typedef struct tagMQQMPROPS {
|
|
DWORD cProp;
|
|
QMPROPID *aPropID;
|
|
MQPROPVARIANT *aPropVar;
|
|
HRESULT *aStatus;
|
|
} MQQMPROPS;
|
|
|
|
/* Message queue private properties */
|
|
typedef struct tagMQPRIVATEPROPS {
|
|
DWORD cProp;
|
|
QMPROPID *aPropID;
|
|
MQPROPVARIANT *aPropVar;
|
|
HRESULT *aStatus;
|
|
} MQPRIVATEPROPS;
|
|
|
|
/* Message queue management properties */
|
|
typedef struct tagMQMGMTPROPS {
|
|
DWORD cProp;
|
|
MGMTPROPID *aPropID;
|
|
MQPROPVARIANT *aPropVar;
|
|
HRESULT *aStatus;
|
|
} MQMGMTPROPS;
|
|
|
|
/* Sequence information */
|
|
typedef struct tagSEQUENCE_INFO {
|
|
LONGLONG SeqID;
|
|
ULONG SeqNo;
|
|
ULONG PrevNo;
|
|
} SEQUENCE_INFO;
|
|
|
|
/* Message queue connection state */
|
|
typedef enum tagMQConnectionState {
|
|
MQCONN_NOFAILURE = 0,
|
|
MQCONN_ESTABLISH_PACKET_RECEIVED = 1,
|
|
MQCONN_READY = 2,
|
|
MQCONN_UNKNOWN_FAILURE = 0x80000000,
|
|
MQCONN_PING_FAILURE = 0x80000001,
|
|
MQCONN_CREATE_SOCKET_FAILURE = 0x80000002,
|
|
MQCONN_BIND_SOCKET_FAILURE = 0x80000003,
|
|
MQCONN_CONNECT_SOCKET_FAILURE = 0x80000004,
|
|
MQCONN_TCP_NOT_ENABLED = 0x80000005,
|
|
MQCONN_SEND_FAILURE = 0x80000006,
|
|
MQCONN_NOT_READY = 0x80000007,
|
|
MQCONN_NAME_RESOLUTION_FAILURE = 0x80000008,
|
|
MQCONN_INVALID_SERVER_CERT = 0x80000009,
|
|
MQCONN_LIMIT_REACHED = 0x8000000A,
|
|
MQCONN_REFUSED_BY_OTHER_SIDE = 0x8000000B,
|
|
MQCONN_ROUTING_FAILURE = 0x8000000C,
|
|
MQCONN_OUT_OF_MEMORY = 0x8000000D
|
|
} MQConnectionState;
|
|
|
|
/* Message queue receive callback */
|
|
typedef VOID (APIENTRY *PMQRECEIVECALLBACK)( HRESULT, QUEUEHANDLE, DWORD, DWORD, MQMSGPROPS *, LPOVERLAPPED, HANDLE );
|
|
|
|
/* Functions in MQRT.DLL */
|
|
HRESULT APIENTRY MQBeginTransaction( ITransaction ** );
|
|
HRESULT APIENTRY MQCloseCursor( HANDLE );
|
|
HRESULT APIENTRY MQCloseQueue( QUEUEHANDLE );
|
|
HRESULT APIENTRY MQCreateCursor( QUEUEHANDLE, PHANDLE );
|
|
HRESULT APIENTRY MQCreateQueue( PSECURITY_DESCRIPTOR, MQQUEUEPROPS *, LPWSTR, LPDWORD );
|
|
HRESULT APIENTRY MQDeleteQueue( LPCWSTR );
|
|
VOID APIENTRY MQFreeMemory( PVOID );
|
|
VOID APIENTRY MQFreeSecurityContext( HANDLE );
|
|
HRESULT APIENTRY MQGetMachineProperties( LPCWSTR, const GUID *, MQQMPROPS * );
|
|
HRESULT APIENTRY MQGetOverlappedResult( LPOVERLAPPED );
|
|
HRESULT APIENTRY MQGetPrivateComputerInformation( LPCWSTR, MQPRIVATEPROPS * );
|
|
HRESULT APIENTRY MQGetQueueProperties( LPCWSTR, MQQUEUEPROPS * );
|
|
HRESULT APIENTRY MQGetQueueSecurity( LPCWSTR, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR, DWORD, LPDWORD );
|
|
HRESULT APIENTRY MQGetSecurityContext( PVOID, DWORD, HANDLE * );
|
|
HRESULT APIENTRY MQGetSecurityContextEx( PVOID, DWORD, HANDLE * );
|
|
HRESULT APIENTRY MQHandleToFormatName( QUEUEHANDLE, LPWSTR, LPDWORD );
|
|
HRESULT APIENTRY MQInstanceToFormatName( GUID *, LPWSTR, LPDWORD );
|
|
HRESULT APIENTRY MQLocateBegin( LPCWSTR, MQRESTRICTION *, MQCOLUMNSET *, MQSORTSET *, PHANDLE );
|
|
HRESULT APIENTRY MQLocateEnd( HANDLE );
|
|
HRESULT APIENTRY MQLocateNext( HANDLE, DWORD *, MQPROPVARIANT [] );
|
|
HRESULT APIENTRY MQMarkMessageRejected( HANDLE, ULONGLONG );
|
|
HRESULT APIENTRY MQMgmtAction( LPCWSTR, LPCWSTR, LPCWSTR );
|
|
HRESULT APIENTRY MQMgmtGetInfo( LPCWSTR, LPCWSTR, MQMGMTPROPS * );
|
|
HRESULT APIENTRY MQMoveMessage( QUEUEHANDLE, QUEUEHANDLE, ULONGLONG, ITransaction * );
|
|
HRESULT APIENTRY MQOpenQueue( LPCWSTR, DWORD, DWORD, QUEUEHANDLE * );
|
|
HRESULT APIENTRY MQPathNameToFormatName( LPCWSTR, LPWSTR, LPDWORD );
|
|
HRESULT APIENTRY MQPurgeQueue( QUEUEHANDLE );
|
|
HRESULT APIENTRY MQReceiveMessage( QUEUEHANDLE, DWORD, DWORD, MQMSGPROPS *, LPOVERLAPPED, PMQRECEIVECALLBACK, HANDLE, ITransaction * );
|
|
HRESULT APIENTRY MQRegisterCertificate( DWORD, PVOID, DWORD );
|
|
HRESULT APIENTRY MQSendMessage( QUEUEHANDLE, MQMSGPROPS *, ITransaction * );
|
|
HRESULT APIENTRY MQSetQueueProperties( LPCWSTR, MQQUEUEPROPS * );
|
|
HRESULT APIENTRY MQSetQueueSecurity( LPCWSTR, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR );
|
|
#if (_WIN32_WINNT >= 0x0501)
|
|
HRESULT APIENTRY MQADsPathToFormatName( LPCWSTR, LPWSTR, LPDWORD );
|
|
HRESULT APIENTRY MQReceiveMessageByLookupId( QUEUEHANDLE, ULONGLONG, DWORD, MQMSGPROPS *, LPOVERLAPPED, PMQRECEIVECALLBACK, ITransaction * );
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
} /* extern "C" */
|
|
#endif
|
|
|
|
#endif /* __MQ_H__ */
|