/* * 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__ */