| 1 | /** | 
 
 
 
 
 | 2 | * This file has no copyright assigned and is placed in the Public Domain. | 
 
 
 
 
 | 3 | * This file is part of the mingw-w64 runtime package. | 
 
 
 
 
 | 4 | * No warranty is given; refer to the file DISCLAIMER.PD within this package. | 
 
 
 
 
 | 5 | */ | 
 
 
 
 
 | 6 | #ifndef __MQ_H__ | 
 
 
 
 
 | 7 | #define __MQ_H__ | 
 
 
 
 
 | 8 |  | 
 
 
 
 
 | 9 | #ifndef __ITransaction_FWD_DEFINED__ | 
 
 
 
 
 | 10 | #define __ITransaction_FWD_DEFINED__ | 
 
 
 
 
 | 11 | typedef struct ITransaction ITransaction; | 
 
 
 
 
 | 12 | #endif | 
 
 
 
 
 | 13 |  | 
 
 
 
 
 | 14 | typedef struct tagPROPVARIANT tagMQPROPVARIANT; | 
 
 
 
 
 | 15 | typedef tagMQPROPVARIANT MQPROPVARIANT; | 
 
 
 
 
 | 16 |  | 
 
 
 
 
 | 17 | #define PRLT (0) | 
 
 
 
 
 | 18 | #define PRLE (1) | 
 
 
 
 
 | 19 | #define PRGT (2) | 
 
 
 
 
 | 20 | #define PRGE (3) | 
 
 
 
 
 | 21 | #define PREQ (4) | 
 
 
 
 
 | 22 | #define PRNE (5) | 
 
 
 
 
 | 23 |  | 
 
 
 
 
 | 24 | typedef struct tagMQPROPERTYRESTRICTION { | 
 
 
 
 
 | 25 | ULONG rel; | 
 
 
 
 
 | 26 | PROPID prop; | 
 
 
 
 
 | 27 | MQPROPVARIANT prval; | 
 
 
 
 
 | 28 | } MQPROPERTYRESTRICTION; | 
 
 
 
 
 | 29 |  | 
 
 
 
 
 | 30 | typedef struct tagMQRESTRICTION { | 
 
 
 
 
 | 31 | ULONG cRes; | 
 
 
 
 
 | 32 | MQPROPERTYRESTRICTION *paPropRes; | 
 
 
 
 
 | 33 | } MQRESTRICTION; | 
 
 
 
 
 | 34 |  | 
 
 
 
 
 | 35 | typedef struct tagMQCOLUMNSET { | 
 
 
 
 
 | 36 | ULONG cCol; | 
 
 
 
 
 | 37 | PROPID *aCol; | 
 
 
 
 
 | 38 | } MQCOLUMNSET; | 
 
 
 
 
 | 39 |  | 
 
 
 
 
 | 40 | #define QUERY_SORTASCEND (0) | 
 
 
 
 
 | 41 | #define QUERY_SORTDESCEND (1) | 
 
 
 
 
 | 42 |  | 
 
 
 
 
 | 43 | typedef struct tagMQSORTKEY { | 
 
 
 
 
 | 44 | PROPID propColumn; | 
 
 
 
 
 | 45 | ULONG dwOrder; | 
 
 
 
 
 | 46 | } MQSORTKEY; | 
 
 
 
 
 | 47 |  | 
 
 
 
 
 | 48 | typedef struct tagMQSORTSET { | 
 
 
 
 
 | 49 | ULONG cCol; | 
 
 
 
 
 | 50 | MQSORTKEY *aCol; | 
 
 
 
 
 | 51 | } MQSORTSET; | 
 
 
 
 
 | 52 |  | 
 
 
 
 
 | 53 | typedef HANDLE QUEUEHANDLE; | 
 
 
 
 
 | 54 | typedef PROPID MSGPROPID; | 
 
 
 
 
 | 55 |  | 
 
 
 
 
 | 56 | typedef struct tagMQMSGPROPS { | 
 
 
 
 
 | 57 | DWORD cProp; | 
 
 
 
 
 | 58 | MSGPROPID *aPropID; | 
 
 
 
 
 | 59 | MQPROPVARIANT *aPropVar; | 
 
 
 
 
 | 60 | HRESULT *aStatus; | 
 
 
 
 
 | 61 | } MQMSGPROPS; | 
 
 
 
 
 | 62 |  | 
 
 
 
 
 | 63 | typedef PROPID QUEUEPROPID; | 
 
 
 
 
 | 64 |  | 
 
 
 
 
 | 65 | typedef struct tagMQQUEUEPROPS { | 
 
 
 
 
 | 66 | DWORD cProp; | 
 
 
 
 
 | 67 | QUEUEPROPID *aPropID; | 
 
 
 
 
 | 68 | MQPROPVARIANT *aPropVar; | 
 
 
 
 
 | 69 | HRESULT *aStatus; | 
 
 
 
 
 | 70 | } MQQUEUEPROPS; | 
 
 
 
 
 | 71 |  | 
 
 
 
 
 | 72 | typedef PROPID QMPROPID; | 
 
 
 
 
 | 73 |  | 
 
 
 
 
 | 74 | typedef struct tagMQQMPROPS { | 
 
 
 
 
 | 75 | DWORD cProp; | 
 
 
 
 
 | 76 | QMPROPID *aPropID; | 
 
 
 
 
 | 77 | MQPROPVARIANT *aPropVar; | 
 
 
 
 
 | 78 | HRESULT *aStatus; | 
 
 
 
 
 | 79 | } MQQMPROPS; | 
 
 
 
 
 | 80 |  | 
 
 
 
 
 | 81 | typedef struct tagMQPRIVATEPROPS { | 
 
 
 
 
 | 82 | DWORD cProp; | 
 
 
 
 
 | 83 | QMPROPID *aPropID; | 
 
 
 
 
 | 84 | MQPROPVARIANT *aPropVar; | 
 
 
 
 
 | 85 | HRESULT *aStatus; | 
 
 
 
 
 | 86 | } MQPRIVATEPROPS; | 
 
 
 
 
 | 87 |  | 
 
 
 
 
 | 88 | typedef PROPID MGMTPROPID; | 
 
 
 
 
 | 89 |  | 
 
 
 
 
 | 90 | typedef struct tagMQMGMTPROPS { | 
 
 
 
 
 | 91 | DWORD cProp; | 
 
 
 
 
 | 92 | MGMTPROPID *aPropID; | 
 
 
 
 
 | 93 | MQPROPVARIANT *aPropVar; | 
 
 
 
 
 | 94 | HRESULT *aStatus; | 
 
 
 
 
 | 95 | } MQMGMTPROPS; | 
 
 
 
 
 | 96 |  | 
 
 
 
 
 | 97 | typedef struct tagSEQUENCE_INFO { | 
 
 
 
 
 | 98 | LONGLONG SeqID; | 
 
 
 
 
 | 99 | ULONG SeqNo; | 
 
 
 
 
 | 100 | ULONG PrevNo; | 
 
 
 
 
 | 101 | } SEQUENCE_INFO; | 
 
 
 
 
 | 102 |  | 
 
 
 
 
 | 103 | #define MQ_RECEIVE_ACCESS 0x00000001 | 
 
 
 
 
 | 104 | #define MQ_SEND_ACCESS 0x00000002 | 
 
 
 
 
 | 105 | #define MQ_PEEK_ACCESS 0x00000020 | 
 
 
 
 
 | 106 | #define MQ_ADMIN_ACCESS 0x00000080 | 
 
 
 
 
 | 107 |  | 
 
 
 
 
 | 108 | #define MQ_DENY_NONE 0x00000000 | 
 
 
 
 
 | 109 | #define MQ_DENY_RECEIVE_SHARE 0x00000001 | 
 
 
 
 
 | 110 |  | 
 
 
 
 
 | 111 | #define MQ_ACTION_RECEIVE 0x00000000 | 
 
 
 
 
 | 112 | #define MQ_ACTION_PEEK_CURRENT 0x80000000 | 
 
 
 
 
 | 113 | #define MQ_ACTION_PEEK_NEXT 0x80000001 | 
 
 
 
 
 | 114 |  | 
 
 
 
 
 | 115 | #define MQ_LOOKUP_PEEK_CURRENT 0x40000010 | 
 
 
 
 
 | 116 | #define MQ_LOOKUP_PEEK_NEXT 0x40000011 | 
 
 
 
 
 | 117 | #define MQ_LOOKUP_PEEK_PREV 0x40000012 | 
 
 
 
 
 | 118 | #define MQ_LOOKUP_PEEK_FIRST 0x40000014 | 
 
 
 
 
 | 119 | #define MQ_LOOKUP_PEEK_LAST 0x40000018 | 
 
 
 
 
 | 120 | #define MQ_LOOKUP_RECEIVE_CURRENT 0x40000020 | 
 
 
 
 
 | 121 | #define MQ_LOOKUP_RECEIVE_NEXT 0x40000021 | 
 
 
 
 
 | 122 | #define MQ_LOOKUP_RECEIVE_PREV 0x40000022 | 
 
 
 
 
 | 123 | #define MQ_LOOKUP_RECEIVE_FIRST 0x40000024 | 
 
 
 
 
 | 124 | #define MQ_LOOKUP_RECEIVE_LAST 0x40000028 | 
 
 
 
 
 | 125 |  | 
 
 
 
 
 | 126 | #define MQ_NO_TRANSACTION NULL | 
 
 
 
 
 | 127 | #define MQ_MTS_TRANSACTION (ITransaction *)1 | 
 
 
 
 
 | 128 | #define MQ_XA_TRANSACTION (ITransaction *)2 | 
 
 
 
 
 | 129 | #define MQ_SINGLE_MESSAGE (ITransaction *)3 | 
 
 
 
 
 | 130 |  | 
 
 
 
 
 | 131 | #define MQ_MIN_PRIORITY 0 | 
 
 
 
 
 | 132 | #define MQ_MAX_PRIORITY 7 | 
 
 
 
 
 | 133 |  | 
 
 
 
 
 | 134 | #define PROPID_M_BASE 0 | 
 
 
 
 
 | 135 | #define PROPID_M_CLASS (PROPID_M_BASE + 1) | 
 
 
 
 
 | 136 | #define PROPID_M_MSGID (PROPID_M_BASE + 2) | 
 
 
 
 
 | 137 | #define PROPID_M_CORRELATIONID (PROPID_M_BASE + 3) | 
 
 
 
 
 | 138 | #define PROPID_M_PRIORITY (PROPID_M_BASE + 4) | 
 
 
 
 
 | 139 | #define PROPID_M_DELIVERY (PROPID_M_BASE + 5) | 
 
 
 
 
 | 140 | #define PROPID_M_ACKNOWLEDGE (PROPID_M_BASE + 6) | 
 
 
 
 
 | 141 | #define PROPID_M_JOURNAL (PROPID_M_BASE + 7) | 
 
 
 
 
 | 142 | #define PROPID_M_APPSPECIFIC (PROPID_M_BASE + 8) | 
 
 
 
 
 | 143 | #define PROPID_M_BODY (PROPID_M_BASE + 9) | 
 
 
 
 
 | 144 | #define PROPID_M_BODY_SIZE (PROPID_M_BASE + 10) | 
 
 
 
 
 | 145 | #define PROPID_M_LABEL (PROPID_M_BASE + 11) | 
 
 
 
 
 | 146 | #define PROPID_M_LABEL_LEN (PROPID_M_BASE + 12) | 
 
 
 
 
 | 147 | #define PROPID_M_TIME_TO_REACH_QUEUE (PROPID_M_BASE + 13) | 
 
 
 
 
 | 148 | #define PROPID_M_TIME_TO_BE_RECEIVED (PROPID_M_BASE + 14) | 
 
 
 
 
 | 149 | #define PROPID_M_RESP_QUEUE (PROPID_M_BASE + 15) | 
 
 
 
 
 | 150 | #define PROPID_M_RESP_QUEUE_LEN (PROPID_M_BASE + 16) | 
 
 
 
 
 | 151 | #define PROPID_M_ADMIN_QUEUE (PROPID_M_BASE + 17) | 
 
 
 
 
 | 152 | #define PROPID_M_ADMIN_QUEUE_LEN (PROPID_M_BASE + 18) | 
 
 
 
 
 | 153 | #define PROPID_M_VERSION (PROPID_M_BASE + 19) | 
 
 
 
 
 | 154 | #define PROPID_M_SENDERID (PROPID_M_BASE + 20) | 
 
 
 
 
 | 155 | #define PROPID_M_SENDERID_LEN (PROPID_M_BASE + 21) | 
 
 
 
 
 | 156 | #define PROPID_M_SENDERID_TYPE (PROPID_M_BASE + 22) | 
 
 
 
 
 | 157 | #define PROPID_M_PRIV_LEVEL (PROPID_M_BASE + 23) | 
 
 
 
 
 | 158 | #define PROPID_M_AUTH_LEVEL (PROPID_M_BASE + 24) | 
 
 
 
 
 | 159 | #define PROPID_M_AUTHENTICATED (PROPID_M_BASE + 25) | 
 
 
 
 
 | 160 | #define PROPID_M_HASH_ALG (PROPID_M_BASE + 26) | 
 
 
 
 
 | 161 | #define PROPID_M_ENCRYPTION_ALG (PROPID_M_BASE + 27) | 
 
 
 
 
 | 162 | #define PROPID_M_SENDER_CERT (PROPID_M_BASE + 28) | 
 
 
 
 
 | 163 | #define PROPID_M_SENDER_CERT_LEN (PROPID_M_BASE + 29) | 
 
 
 
 
 | 164 | #define PROPID_M_SRC_MACHINE_ID (PROPID_M_BASE + 30) | 
 
 
 
 
 | 165 | #define PROPID_M_SENTTIME (PROPID_M_BASE + 31) | 
 
 
 
 
 | 166 | #define PROPID_M_ARRIVEDTIME (PROPID_M_BASE + 32) | 
 
 
 
 
 | 167 | #define PROPID_M_DEST_QUEUE (PROPID_M_BASE + 33) | 
 
 
 
 
 | 168 | #define PROPID_M_DEST_QUEUE_LEN (PROPID_M_BASE + 34) | 
 
 
 
 
 | 169 | #define PROPID_M_EXTENSION (PROPID_M_BASE + 35) | 
 
 
 
 
 | 170 | #define PROPID_M_EXTENSION_LEN (PROPID_M_BASE + 36) | 
 
 
 
 
 | 171 | #define PROPID_M_SECURITY_CONTEXT (PROPID_M_BASE + 37) | 
 
 
 
 
 | 172 | #define PROPID_M_CONNECTOR_TYPE (PROPID_M_BASE + 38) | 
 
 
 
 
 | 173 | #define PROPID_M_XACT_STATUS_QUEUE (PROPID_M_BASE + 39) | 
 
 
 
 
 | 174 | #define PROPID_M_XACT_STATUS_QUEUE_LEN (PROPID_M_BASE + 40) | 
 
 
 
 
 | 175 | #define PROPID_M_TRACE (PROPID_M_BASE + 41) | 
 
 
 
 
 | 176 | #define PROPID_M_BODY_TYPE (PROPID_M_BASE + 42) | 
 
 
 
 
 | 177 | #define PROPID_M_DEST_SYMM_KEY (PROPID_M_BASE + 43) | 
 
 
 
 
 | 178 | #define PROPID_M_DEST_SYMM_KEY_LEN (PROPID_M_BASE + 44) | 
 
 
 
 
 | 179 | #define PROPID_M_SIGNATURE (PROPID_M_BASE + 45) | 
 
 
 
 
 | 180 | #define PROPID_M_SIGNATURE_LEN (PROPID_M_BASE + 46) | 
 
 
 
 
 | 181 | #define PROPID_M_PROV_TYPE (PROPID_M_BASE + 47) | 
 
 
 
 
 | 182 | #define PROPID_M_PROV_NAME (PROPID_M_BASE + 48) | 
 
 
 
 
 | 183 | #define PROPID_M_PROV_NAME_LEN (PROPID_M_BASE + 49) | 
 
 
 
 
 | 184 | #define PROPID_M_FIRST_IN_XACT (PROPID_M_BASE + 50) | 
 
 
 
 
 | 185 | #define PROPID_M_LAST_IN_XACT (PROPID_M_BASE + 51) | 
 
 
 
 
 | 186 | #define PROPID_M_XACTID (PROPID_M_BASE + 52) | 
 
 
 
 
 | 187 | #define PROPID_M_AUTHENTICATED_EX (PROPID_M_BASE + 53) | 
 
 
 
 
 | 188 | #define PROPID_M_RESP_FORMAT_NAME (PROPID_M_BASE + 54) | 
 
 
 
 
 | 189 | #define PROPID_M_RESP_FORMAT_NAME_LEN (PROPID_M_BASE + 55) | 
 
 
 
 
 | 190 | #define PROPID_M_DEST_FORMAT_NAME (PROPID_M_BASE + 58) | 
 
 
 
 
 | 191 | #define PROPID_M_DEST_FORMAT_NAME_LEN (PROPID_M_BASE + 59) | 
 
 
 
 
 | 192 | #define PROPID_M_LOOKUPID (PROPID_M_BASE + 60) | 
 
 
 
 
 | 193 | #define PROPID_M_SOAP_ENVELOPE (PROPID_M_BASE + 61) | 
 
 
 
 
 | 194 | #define PROPID_M_SOAP_ENVELOPE_LEN (PROPID_M_BASE + 62) | 
 
 
 
 
 | 195 | #define PROPID_M_COMPOUND_MESSAGE (PROPID_M_BASE + 63) | 
 
 
 
 
 | 196 | #define PROPID_M_COMPOUND_MESSAGE_SIZE (PROPID_M_BASE + 64) | 
 
 
 
 
 | 197 | #define PROPID_M_SOAP_HEADER (PROPID_M_BASE + 65) | 
 
 
 
 
 | 198 | #define PROPID_M_SOAP_BODY (PROPID_M_BASE + 66) | 
 
 
 
 
 | 199 | #define PROPID_M_MSGID_SIZE 20 | 
 
 
 
 
 | 200 | #define PROPID_M_CORRELATIONID_SIZE 20 | 
 
 
 
 
 | 201 | #define PROPID_M_XACTID_SIZE 20 | 
 
 
 
 
 | 202 |  | 
 
 
 
 
 | 203 | #define MQCLASS_CODE(s,r,code) ((USHORT)(((s) << 15) | ((r) << 14) | (code))) | 
 
 
 
 
 | 204 | #define MQCLASS_NACK(c) ((c) & 0x8000) | 
 
 
 
 
 | 205 | #define MQCLASS_RECEIVE(c) ((c) & 0x4000) | 
 
 
 
 
 | 206 | #define MQCLASS_NACK_HTTP(c) (((c) & 0xA000)==0xA000) | 
 
 
 
 
 | 207 |  | 
 
 
 
 
 | 208 | #define MQMSG_CLASS_NORMAL MQCLASS_CODE(0,0,0x00) | 
 
 
 
 
 | 209 | #define MQMSG_CLASS_REPORT MQCLASS_CODE(0,0,0x01) | 
 
 
 
 
 | 210 | #define MQMSG_CLASS_ACK_REACH_QUEUE MQCLASS_CODE(0,0,0x02) | 
 
 
 
 
 | 211 | #define MQMSG_CLASS_ACK_RECEIVE MQCLASS_CODE(0,1,0x00) | 
 
 
 
 
 | 212 | #define MQMSG_CLASS_NACK_BAD_DST_Q MQCLASS_CODE(1,0,0x00) | 
 
 
 
 
 | 213 | #define MQMSG_CLASS_NACK_PURGED MQCLASS_CODE(1,0,0x01) | 
 
 
 
 
 | 214 | #define MQMSG_CLASS_NACK_REACH_QUEUE_TIMEOUT MQCLASS_CODE(1,0,0x02) | 
 
 
 
 
 | 215 | #define MQMSG_CLASS_NACK_Q_EXCEED_QUOTA MQCLASS_CODE(1,0,0x03) | 
 
 
 
 
 | 216 | #define MQMSG_CLASS_NACK_ACCESS_DENIED MQCLASS_CODE(1,0,0x04) | 
 
 
 
 
 | 217 | #define MQMSG_CLASS_NACK_HOP_COUNT_EXCEEDED MQCLASS_CODE(1,0,0x05) | 
 
 
 
 
 | 218 | #define MQMSG_CLASS_NACK_BAD_SIGNATURE MQCLASS_CODE(1,0,0x06) | 
 
 
 
 
 | 219 | #define MQMSG_CLASS_NACK_BAD_ENCRYPTION MQCLASS_CODE(1,0,0x07) | 
 
 
 
 
 | 220 | #define MQMSG_CLASS_NACK_COULD_NOT_ENCRYPT MQCLASS_CODE(1,0,0x08) | 
 
 
 
 
 | 221 | #define MQMSG_CLASS_NACK_NOT_TRANSACTIONAL_Q MQCLASS_CODE(1,0,0x09) | 
 
 
 
 
 | 222 | #define MQMSG_CLASS_NACK_NOT_TRANSACTIONAL_MSG MQCLASS_CODE(1,0,0x0A) | 
 
 
 
 
 | 223 | #define MQMSG_CLASS_NACK_UNSUPPORTED_CRYPTO_PROVIDER MQCLASS_CODE(1,0,0x0B) | 
 
 
 
 
 | 224 | #define MQMSG_CLASS_NACK_SOURCE_COMPUTER_GUID_CHANGED MQCLASS_CODE(1,0,0x0C) | 
 
 
 
 
 | 225 | #define MQMSG_CLASS_NACK_Q_DELETED MQCLASS_CODE(1,1,0x00) | 
 
 
 
 
 | 226 | #define MQMSG_CLASS_NACK_Q_PURGED MQCLASS_CODE(1,1,0x01) | 
 
 
 
 
 | 227 | #define MQMSG_CLASS_NACK_RECEIVE_TIMEOUT MQCLASS_CODE(1,1,0x02) | 
 
 
 
 
 | 228 | #define MQMSG_CLASS_NACK_RECEIVE_TIMEOUT_AT_SENDER MQCLASS_CODE(1,1,0x03) | 
 
 
 
 
 | 229 |  | 
 
 
 
 
 | 230 | #define MQMSG_ACKNOWLEDGMENT_NONE 0x00 | 
 
 
 
 
 | 231 | #define MQMSG_ACKNOWLEDGMENT_POS_ARRIVAL 0x01 | 
 
 
 
 
 | 232 | #define MQMSG_ACKNOWLEDGMENT_POS_RECEIVE 0x02 | 
 
 
 
 
 | 233 | #define MQMSG_ACKNOWLEDGMENT_NEG_ARRIVAL 0x04 | 
 
 
 
 
 | 234 | #define MQMSG_ACKNOWLEDGMENT_NEG_RECEIVE 0x08 | 
 
 
 
 
 | 235 |  | 
 
 
 
 
 | 236 | #define MQMSG_ACKNOWLEDGMENT_NACK_REACH_QUEUE ((UCHAR)(MQMSG_ACKNOWLEDGMENT_NEG_ARRIVAL)) | 
 
 
 
 
 | 237 | #define MQMSG_ACKNOWLEDGMENT_FULL_REACH_QUEUE ((UCHAR)(MQMSG_ACKNOWLEDGMENT_NEG_ARRIVAL | MQMSG_ACKNOWLEDGMENT_POS_ARRIVAL)) | 
 
 
 
 
 | 238 | #define MQMSG_ACKNOWLEDGMENT_NACK_RECEIVE ((UCHAR)(MQMSG_ACKNOWLEDGMENT_NEG_ARRIVAL | MQMSG_ACKNOWLEDGMENT_NEG_RECEIVE)) | 
 
 
 
 
 | 239 | #define MQMSG_ACKNOWLEDGMENT_FULL_RECEIVE ((UCHAR)(MQMSG_ACKNOWLEDGMENT_NEG_ARRIVAL | MQMSG_ACKNOWLEDGMENT_NEG_RECEIVE | MQMSG_ACKNOWLEDGMENT_POS_RECEIVE)) | 
 
 
 
 
 | 240 |  | 
 
 
 
 
 | 241 | #define MQMSG_DELIVERY_EXPRESS 0 | 
 
 
 
 
 | 242 | #define MQMSG_DELIVERY_RECOVERABLE 1 | 
 
 
 
 
 | 243 |  | 
 
 
 
 
 | 244 | #define MQMSG_JOURNAL_NONE 0 | 
 
 
 
 
 | 245 | #define MQMSG_DEADLETTER 1 | 
 
 
 
 
 | 246 | #define MQMSG_JOURNAL 2 | 
 
 
 
 
 | 247 |  | 
 
 
 
 
 | 248 | #define MQMSG_TRACE_NONE 0 | 
 
 
 
 
 | 249 | #define MQMSG_SEND_ROUTE_TO_REPORT_QUEUE 1 | 
 
 
 
 
 | 250 |  | 
 
 
 
 
 | 251 | #define MQMSG_SENDERID_TYPE_NONE 0 | 
 
 
 
 
 | 252 | #define MQMSG_SENDERID_TYPE_SID 1 | 
 
 
 
 
 | 253 |  | 
 
 
 
 
 | 254 | #define MQMSG_PRIV_LEVEL_NONE 0 | 
 
 
 
 
 | 255 | #define MQMSG_PRIV_LEVEL_BODY_BASE 0x01 | 
 
 
 
 
 | 256 | #define MQMSG_PRIV_LEVEL_BODY_ENHANCED 0x03 | 
 
 
 
 
 | 257 |  | 
 
 
 
 
 | 258 | #define MQMSG_AUTH_LEVEL_NONE 0 | 
 
 
 
 
 | 259 | #define MQMSG_AUTH_LEVEL_ALWAYS 1 | 
 
 
 
 
 | 260 |  | 
 
 
 
 
 | 261 | #define MQMSG_AUTH_LEVEL_MSMQ10 2 | 
 
 
 
 
 | 262 | #define MQMSG_AUTH_LEVEL_MSMQ20 4 | 
 
 
 
 
 | 263 |  | 
 
 
 
 
 | 264 | #define MQMSG_AUTH_LEVEL_SIG10 2 | 
 
 
 
 
 | 265 | #define MQMSG_AUTH_LEVEL_SIG20 4 | 
 
 
 
 
 | 266 | #define MQMSG_AUTH_LEVEL_SIG30 8 | 
 
 
 
 
 | 267 |  | 
 
 
 
 
 | 268 | #define MQMSG_AUTHENTICATION_NOT_REQUESTED 0 | 
 
 
 
 
 | 269 | #define MQMSG_AUTHENTICATION_REQUESTED 1 | 
 
 
 
 
 | 270 |  | 
 
 
 
 
 | 271 | #define MQMSG_AUTHENTICATION_REQUESTED_EX 3 | 
 
 
 
 
 | 272 |  | 
 
 
 
 
 | 273 | #define MQMSG_AUTHENTICATED_SIG10 1 | 
 
 
 
 
 | 274 | #define MQMSG_AUTHENTICATED_SIG20 3 | 
 
 
 
 
 | 275 | #define MQMSG_AUTHENTICATED_SIG30 5 | 
 
 
 
 
 | 276 | #define MQMSG_AUTHENTICATED_SIGXML 9 | 
 
 
 
 
 | 277 |  | 
 
 
 
 
 | 278 | #define MQMSG_NOT_FIRST_IN_XACT 0 | 
 
 
 
 
 | 279 | #define MQMSG_FIRST_IN_XACT 1 | 
 
 
 
 
 | 280 |  | 
 
 
 
 
 | 281 | #define MQMSG_NOT_LAST_IN_XACT 0 | 
 
 
 
 
 | 282 | #define MQMSG_LAST_IN_XACT 1 | 
 
 
 
 
 | 283 |  | 
 
 
 
 
 | 284 | #define PROPID_Q_BASE 100 | 
 
 
 
 
 | 285 | #define PROPID_Q_INSTANCE (PROPID_Q_BASE + 1) | 
 
 
 
 
 | 286 | #define PROPID_Q_TYPE (PROPID_Q_BASE + 2) | 
 
 
 
 
 | 287 | #define PROPID_Q_PATHNAME (PROPID_Q_BASE + 3) | 
 
 
 
 
 | 288 | #define PROPID_Q_JOURNAL (PROPID_Q_BASE + 4) | 
 
 
 
 
 | 289 | #define PROPID_Q_QUOTA (PROPID_Q_BASE + 5) | 
 
 
 
 
 | 290 | #define PROPID_Q_BASEPRIORITY (PROPID_Q_BASE + 6) | 
 
 
 
 
 | 291 | #define PROPID_Q_JOURNAL_QUOTA (PROPID_Q_BASE + 7) | 
 
 
 
 
 | 292 | #define PROPID_Q_LABEL (PROPID_Q_BASE + 8) | 
 
 
 
 
 | 293 | #define PROPID_Q_CREATE_TIME (PROPID_Q_BASE + 9) | 
 
 
 
 
 | 294 | #define PROPID_Q_MODIFY_TIME (PROPID_Q_BASE + 10) | 
 
 
 
 
 | 295 | #define PROPID_Q_AUTHENTICATE (PROPID_Q_BASE + 11) | 
 
 
 
 
 | 296 | #define PROPID_Q_PRIV_LEVEL (PROPID_Q_BASE + 12) | 
 
 
 
 
 | 297 | #define PROPID_Q_TRANSACTION (PROPID_Q_BASE + 13) | 
 
 
 
 
 | 298 | #define PROPID_Q_PATHNAME_DNS (PROPID_Q_BASE + 24) | 
 
 
 
 
 | 299 | #define PROPID_Q_MULTICAST_ADDRESS (PROPID_Q_BASE + 25) | 
 
 
 
 
 | 300 | #define PROPID_Q_ADS_PATH (PROPID_Q_BASE + 26) | 
 
 
 
 
 | 301 |  | 
 
 
 
 
 | 302 | #define MQ_JOURNAL_NONE (unsigned char)0 | 
 
 
 
 
 | 303 | #define MQ_JOURNAL (unsigned char)1 | 
 
 
 
 
 | 304 |  | 
 
 
 
 
 | 305 | #define MQ_QTYPE_REPORT {0x55ee8f32,0xcce9,0x11cf,{0xb1,0x8,0x0,0x20,0xaf,0xd6,0x1c,0xe9}} | 
 
 
 
 
 | 306 |  | 
 
 
 
 
 | 307 | #define MQ_QTYPE_TEST {0x55ee8f33,0xcce9,0x11cf,{0xb1,0x8,0x0,0x20,0xaf,0xd6,0x1c,0xe9}} | 
 
 
 
 
 | 308 |  | 
 
 
 
 
 | 309 | #define MQ_TRANSACTIONAL_NONE (unsigned char)0 | 
 
 
 
 
 | 310 | #define MQ_TRANSACTIONAL (unsigned char)1 | 
 
 
 
 
 | 311 |  | 
 
 
 
 
 | 312 | #define MQ_AUTHENTICATE_NONE (unsigned char)0 | 
 
 
 
 
 | 313 | #define MQ_AUTHENTICATE (unsigned char)1 | 
 
 
 
 
 | 314 |  | 
 
 
 
 
 | 315 | #define MQ_PRIV_LEVEL_NONE (unsigned __LONG32)0 | 
 
 
 
 
 | 316 | #define MQ_PRIV_LEVEL_OPTIONAL (unsigned __LONG32)1 | 
 
 
 
 
 | 317 | #define MQ_PRIV_LEVEL_BODY (unsigned __LONG32)2 | 
 
 
 
 
 | 318 |  | 
 
 
 
 
 | 319 | #define PROPID_QM_BASE 200 | 
 
 
 
 
 | 320 |  | 
 
 
 
 
 | 321 | #define PROPID_QM_SITE_ID (PROPID_QM_BASE + 1) | 
 
 
 
 
 | 322 | #define PROPID_QM_MACHINE_ID (PROPID_QM_BASE + 2) | 
 
 
 
 
 | 323 | #define PROPID_QM_PATHNAME (PROPID_QM_BASE + 3) | 
 
 
 
 
 | 324 | #define PROPID_QM_CONNECTION (PROPID_QM_BASE + 4) | 
 
 
 
 
 | 325 | #define PROPID_QM_ENCRYPTION_PK (PROPID_QM_BASE + 5) | 
 
 
 
 
 | 326 | #define PROPID_QM_ENCRYPTION_PK_BASE (PROPID_QM_BASE + 31) | 
 
 
 
 
 | 327 | #define PROPID_QM_ENCRYPTION_PK_ENHANCED (PROPID_QM_BASE + 32) | 
 
 
 
 
 | 328 | #define PROPID_QM_PATHNAME_DNS (PROPID_QM_BASE + 33) | 
 
 
 
 
 | 329 |  | 
 
 
 
 
 | 330 | #define PROPID_PC_BASE 5800 | 
 
 
 
 
 | 331 |  | 
 
 
 
 
 | 332 | #define PROPID_PC_VERSION (PROPID_PC_BASE + 1) | 
 
 
 
 
 | 333 | #define PROPID_PC_DS_ENABLED (PROPID_PC_BASE + 2) | 
 
 
 
 
 | 334 |  | 
 
 
 
 
 | 335 | #define PROPID_MGMT_MSMQ_BASE 0 | 
 
 
 
 
 | 336 | #define PROPID_MGMT_MSMQ_ACTIVEQUEUES (PROPID_MGMT_MSMQ_BASE + 1) | 
 
 
 
 
 | 337 | #define PROPID_MGMT_MSMQ_PRIVATEQ (PROPID_MGMT_MSMQ_BASE + 2) | 
 
 
 
 
 | 338 | #define PROPID_MGMT_MSMQ_DSSERVER (PROPID_MGMT_MSMQ_BASE + 3) | 
 
 
 
 
 | 339 | #define PROPID_MGMT_MSMQ_CONNECTED (PROPID_MGMT_MSMQ_BASE + 4) | 
 
 
 
 
 | 340 | #define PROPID_MGMT_MSMQ_TYPE (PROPID_MGMT_MSMQ_BASE + 5) | 
 
 
 
 
 | 341 | #define PROPID_MGMT_MSMQ_BYTES_IN_ALL_QUEUES (PROPID_MGMT_QUEUE_BASE + 6) | 
 
 
 
 
 | 342 |  | 
 
 
 
 
 | 343 | #define MSMQ_CONNECTED L"CONNECTED" | 
 
 
 
 
 | 344 | #define MSMQ_DISCONNECTED L"DISCONNECTED" | 
 
 
 
 
 | 345 |  | 
 
 
 
 
 | 346 | #define PROPID_MGMT_QUEUE_BASE 0 | 
 
 
 
 
 | 347 | #define PROPID_MGMT_QUEUE_PATHNAME (PROPID_MGMT_QUEUE_BASE + 1) | 
 
 
 
 
 | 348 | #define PROPID_MGMT_QUEUE_FORMATNAME (PROPID_MGMT_QUEUE_BASE + 2) | 
 
 
 
 
 | 349 | #define PROPID_MGMT_QUEUE_TYPE (PROPID_MGMT_QUEUE_BASE + 3) | 
 
 
 
 
 | 350 | #define PROPID_MGMT_QUEUE_LOCATION (PROPID_MGMT_QUEUE_BASE + 4) | 
 
 
 
 
 | 351 | #define PROPID_MGMT_QUEUE_XACT (PROPID_MGMT_QUEUE_BASE + 5) | 
 
 
 
 
 | 352 | #define PROPID_MGMT_QUEUE_FOREIGN (PROPID_MGMT_QUEUE_BASE + 6) | 
 
 
 
 
 | 353 | #define PROPID_MGMT_QUEUE_MESSAGE_COUNT (PROPID_MGMT_QUEUE_BASE + 7) | 
 
 
 
 
 | 354 | #define PROPID_MGMT_QUEUE_BYTES_IN_QUEUE (PROPID_MGMT_QUEUE_BASE + 8) | 
 
 
 
 
 | 355 | #define PROPID_MGMT_QUEUE_JOURNAL_MESSAGE_COUNT (PROPID_MGMT_QUEUE_BASE + 9) | 
 
 
 
 
 | 356 | #define PROPID_MGMT_QUEUE_BYTES_IN_JOURNAL (PROPID_MGMT_QUEUE_BASE + 10) | 
 
 
 
 
 | 357 | #define PROPID_MGMT_QUEUE_STATE (PROPID_MGMT_QUEUE_BASE + 11) | 
 
 
 
 
 | 358 | #define PROPID_MGMT_QUEUE_NEXTHOPS (PROPID_MGMT_QUEUE_BASE + 12) | 
 
 
 
 
 | 359 | #define PROPID_MGMT_QUEUE_EOD_LAST_ACK (PROPID_MGMT_QUEUE_BASE + 13) | 
 
 
 
 
 | 360 | #define PROPID_MGMT_QUEUE_EOD_LAST_ACK_TIME (PROPID_MGMT_QUEUE_BASE + 14) | 
 
 
 
 
 | 361 | #define PROPID_MGMT_QUEUE_EOD_LAST_ACK_COUNT (PROPID_MGMT_QUEUE_BASE + 15) | 
 
 
 
 
 | 362 | #define PROPID_MGMT_QUEUE_EOD_FIRST_NON_ACK (PROPID_MGMT_QUEUE_BASE + 16) | 
 
 
 
 
 | 363 | #define PROPID_MGMT_QUEUE_EOD_LAST_NON_ACK (PROPID_MGMT_QUEUE_BASE + 17) | 
 
 
 
 
 | 364 | #define PROPID_MGMT_QUEUE_EOD_NEXT_SEQ (PROPID_MGMT_QUEUE_BASE + 18) | 
 
 
 
 
 | 365 | #define PROPID_MGMT_QUEUE_EOD_NO_READ_COUNT (PROPID_MGMT_QUEUE_BASE + 19) | 
 
 
 
 
 | 366 | #define PROPID_MGMT_QUEUE_EOD_NO_ACK_COUNT (PROPID_MGMT_QUEUE_BASE + 20) | 
 
 
 
 
 | 367 | #define PROPID_MGMT_QUEUE_EOD_RESEND_TIME (PROPID_MGMT_QUEUE_BASE + 21) | 
 
 
 
 
 | 368 | #define PROPID_MGMT_QUEUE_EOD_RESEND_INTERVAL (PROPID_MGMT_QUEUE_BASE + 22) | 
 
 
 
 
 | 369 | #define PROPID_MGMT_QUEUE_EOD_RESEND_COUNT (PROPID_MGMT_QUEUE_BASE + 23) | 
 
 
 
 
 | 370 | #define PROPID_MGMT_QUEUE_EOD_SOURCE_INFO (PROPID_MGMT_QUEUE_BASE + 24) | 
 
 
 
 
 | 371 |  | 
 
 
 
 
 | 372 | #define PROPID_MGMT_QUEUE_USED_QUOTA PROPID_MGMT_QUEUE_BYTES_IN_QUEUE | 
 
 
 
 
 | 373 | #define PROPID_MGMT_QUEUE_JOURNAL_USED_QUOTA PROPID_MGMT_QUEUE_BYTES_IN_JOURNAL | 
 
 
 
 
 | 374 |  | 
 
 
 
 
 | 375 | #define MGMT_QUEUE_TYPE_PUBLIC L"PUBLIC" | 
 
 
 
 
 | 376 | #define MGMT_QUEUE_TYPE_PRIVATE L"PRIVATE" | 
 
 
 
 
 | 377 | #define MGMT_QUEUE_TYPE_MACHINE L"MACHINE" | 
 
 
 
 
 | 378 | #define MGMT_QUEUE_TYPE_CONNECTOR L"CONNECTOR" | 
 
 
 
 
 | 379 | #define MGMT_QUEUE_TYPE_MULTICAST L"MULTICAST" | 
 
 
 
 
 | 380 |  | 
 
 
 
 
 | 381 | #define MGMT_QUEUE_STATE_LOCAL L"LOCAL CONNECTION" | 
 
 
 
 
 | 382 | #define MGMT_QUEUE_STATE_NONACTIVE L"INACTIVE" | 
 
 
 
 
 | 383 | #define MGMT_QUEUE_STATE_WAITING L"WAITING" | 
 
 
 
 
 | 384 | #define MGMT_QUEUE_STATE_NEED_VALIDATE L"NEED VALIDATION" | 
 
 
 
 
 | 385 | #define MGMT_QUEUE_STATE_ONHOLD L"ONHOLD" | 
 
 
 
 
 | 386 | #define MGMT_QUEUE_STATE_CONNECTED L"CONNECTED" | 
 
 
 
 
 | 387 | #define MGMT_QUEUE_STATE_DISCONNECTING L"DISCONNECTING" | 
 
 
 
 
 | 388 | #define MGMT_QUEUE_STATE_DISCONNECTED L"DISCONNECTED" | 
 
 
 
 
 | 389 | #define MGMT_QUEUE_STATE_LOCKED L"LOCKED" | 
 
 
 
 
 | 390 |  | 
 
 
 
 
 | 391 | #define MGMT_QUEUE_LOCAL_LOCATION L"LOCAL" | 
 
 
 
 
 | 392 | #define MGMT_QUEUE_REMOTE_LOCATION L"REMOTE" | 
 
 
 
 
 | 393 |  | 
 
 
 
 
 | 394 | #define MGMT_QUEUE_UNKNOWN_TYPE L"UNKNOWN" | 
 
 
 
 
 | 395 |  | 
 
 
 
 
 | 396 | #define MGMT_QUEUE_CORRECT_TYPE L"YES" | 
 
 
 
 
 | 397 | #define MGMT_QUEUE_INCORRECT_TYPE L"NO" | 
 
 
 
 
 | 398 |  | 
 
 
 
 
 | 399 | #define MGMT_QUEUE_TRANSACTIONAL_TYPE L"YES" | 
 
 
 
 
 | 400 | #define MGMT_QUEUE_NOT_TRANSACTIONAL_TYPE L"NO" | 
 
 
 
 
 | 401 |  | 
 
 
 
 
 | 402 | #define MGMT_QUEUE_FOREIGN_TYPE L"YES" | 
 
 
 
 
 | 403 | #define MGMT_QUEUE_NOT_FOREIGN_TYPE L"NO" | 
 
 
 
 
 | 404 |  | 
 
 
 
 
 | 405 | #define MO_MACHINE_TOKEN L"MACHINE" | 
 
 
 
 
 | 406 | #define MO_QUEUE_TOKEN L"QUEUE" | 
 
 
 
 
 | 407 |  | 
 
 
 
 
 | 408 | #define MACHINE_ACTION_CONNECT L"CONNECT" | 
 
 
 
 
 | 409 | #define MACHINE_ACTION_DISCONNECT L"DISCONNECT" | 
 
 
 
 
 | 410 | #define MACHINE_ACTION_TIDY L"TIDY" | 
 
 
 
 
 | 411 |  | 
 
 
 
 
 | 412 | #define QUEUE_ACTION_PAUSE L"PAUSE" | 
 
 
 
 
 | 413 | #define QUEUE_ACTION_RESUME L"RESUME" | 
 
 
 
 
 | 414 | #define QUEUE_ACTION_EOD_RESEND L"EOD_RESEND" | 
 
 
 
 
 | 415 |  | 
 
 
 
 
 | 416 | #define LONG_LIVED 0xfffffffe | 
 
 
 
 
 | 417 |  | 
 
 
 
 
 | 418 | #define MQ_MAX_Q_NAME_LEN 124 | 
 
 
 
 
 | 419 | #define MQ_MAX_Q_LABEL_LEN 124 | 
 
 
 
 
 | 420 | #define MQ_MAX_MSG_LABEL_LEN 250 | 
 
 
 
 
 | 421 |  | 
 
 
 
 
 | 422 | #define MQ_OK ((HRESULT)0) | 
 
 
 
 
 | 423 |  | 
 
 
 
 
 | 424 | #define MQ_INFORMATION_PROPERTY ((HRESULT)0x400E0001) | 
 
 
 
 
 | 425 | #define MQ_INFORMATION_ILLEGAL_PROPERTY ((HRESULT)0x400E0002) | 
 
 
 
 
 | 426 | #define MQ_INFORMATION_PROPERTY_IGNORED ((HRESULT)0x400E0003) | 
 
 
 
 
 | 427 | #define MQ_INFORMATION_UNSUPPORTED_PROPERTY ((HRESULT)0x400E0004) | 
 
 
 
 
 | 428 | #define MQ_INFORMATION_DUPLICATE_PROPERTY ((HRESULT)0x400E0005) | 
 
 
 
 
 | 429 | #define MQ_INFORMATION_OPERATION_PENDING ((HRESULT)0x400E0006) | 
 
 
 
 
 | 430 | #define MQ_INFORMATION_FORMATNAME_BUFFER_TOO_SMALL ((HRESULT)0x400E0009) | 
 
 
 
 
 | 431 | #define MQ_INFORMATION_INTERNAL_USER_CERT_EXIST ((HRESULT)0x400E000A) | 
 
 
 
 
 | 432 | #define MQ_INFORMATION_OWNER_IGNORED ((HRESULT)0x400E000B) | 
 
 
 
 
 | 433 |  | 
 
 
 
 
 | 434 | #define MQ_ERROR ((HRESULT)0xC00E0001) | 
 
 
 
 
 | 435 | #define MQ_ERROR_PROPERTY ((HRESULT)0xC00E0002) | 
 
 
 
 
 | 436 | #define MQ_ERROR_QUEUE_NOT_FOUND ((HRESULT)0xC00E0003) | 
 
 
 
 
 | 437 | #define MQ_ERROR_QUEUE_NOT_ACTIVE ((HRESULT)0xC00E0004) | 
 
 
 
 
 | 438 | #define MQ_ERROR_QUEUE_EXISTS ((HRESULT)0xC00E0005) | 
 
 
 
 
 | 439 | #define MQ_ERROR_INVALID_PARAMETER ((HRESULT)0xC00E0006) | 
 
 
 
 
 | 440 | #define MQ_ERROR_INVALID_HANDLE ((HRESULT)0xC00E0007) | 
 
 
 
 
 | 441 | #define MQ_ERROR_OPERATION_CANCELLED ((HRESULT)0xC00E0008) | 
 
 
 
 
 | 442 | #define MQ_ERROR_SHARING_VIOLATION ((HRESULT)0xC00E0009) | 
 
 
 
 
 | 443 | #define MQ_ERROR_SERVICE_NOT_AVAILABLE ((HRESULT)0xC00E000B) | 
 
 
 
 
 | 444 | #define MQ_ERROR_MACHINE_NOT_FOUND ((HRESULT)0xC00E000D) | 
 
 
 
 
 | 445 | #define MQ_ERROR_ILLEGAL_SORT ((HRESULT)0xC00E0010) | 
 
 
 
 
 | 446 | #define MQ_ERROR_ILLEGAL_USER ((HRESULT)0xC00E0011) | 
 
 
 
 
 | 447 | #define MQ_ERROR_NO_DS ((HRESULT)0xC00E0013) | 
 
 
 
 
 | 448 | #define MQ_ERROR_ILLEGAL_QUEUE_PATHNAME ((HRESULT)0xC00E0014) | 
 
 
 
 
 | 449 | #define MQ_ERROR_ILLEGAL_PROPERTY_VALUE ((HRESULT)0xC00E0018) | 
 
 
 
 
 | 450 | #define MQ_ERROR_ILLEGAL_PROPERTY_VT ((HRESULT)0xC00E0019) | 
 
 
 
 
 | 451 | #define MQ_ERROR_BUFFER_OVERFLOW ((HRESULT)0xC00E001A) | 
 
 
 
 
 | 452 | #define MQ_ERROR_IO_TIMEOUT ((HRESULT)0xC00E001B) | 
 
 
 
 
 | 453 | #define MQ_ERROR_ILLEGAL_CURSOR_ACTION ((HRESULT)0xC00E001C) | 
 
 
 
 
 | 454 | #define MQ_ERROR_MESSAGE_ALREADY_RECEIVED ((HRESULT)0xC00E001D) | 
 
 
 
 
 | 455 | #define MQ_ERROR_ILLEGAL_FORMATNAME ((HRESULT)0xC00E001E) | 
 
 
 
 
 | 456 | #define MQ_ERROR_FORMATNAME_BUFFER_TOO_SMALL ((HRESULT)0xC00E001F) | 
 
 
 
 
 | 457 | #define MQ_ERROR_UNSUPPORTED_FORMATNAME_OPERATION ((HRESULT)0xC00E0020) | 
 
 
 
 
 | 458 | #define MQ_ERROR_ILLEGAL_SECURITY_DESCRIPTOR ((HRESULT)0xC00E0021) | 
 
 
 
 
 | 459 | #define MQ_ERROR_SENDERID_BUFFER_TOO_SMALL ((HRESULT)0xC00E0022) | 
 
 
 
 
 | 460 | #define MQ_ERROR_SECURITY_DESCRIPTOR_TOO_SMALL ((HRESULT)0xC00E0023) | 
 
 
 
 
 | 461 | #define MQ_ERROR_CANNOT_IMPERSONATE_CLIENT ((HRESULT)0xC00E0024) | 
 
 
 
 
 | 462 | #define MQ_ERROR_ACCESS_DENIED ((HRESULT)0xC00E0025) | 
 
 
 
 
 | 463 | #define MQ_ERROR_PRIVILEGE_NOT_HELD ((HRESULT)0xC00E0026) | 
 
 
 
 
 | 464 | #define MQ_ERROR_INSUFFICIENT_RESOURCES ((HRESULT)0xC00E0027) | 
 
 
 
 
 | 465 | #define MQ_ERROR_USER_BUFFER_TOO_SMALL ((HRESULT)0xC00E0028) | 
 
 
 
 
 | 466 | #define MQ_ERROR_MESSAGE_STORAGE_FAILED ((HRESULT)0xC00E002A) | 
 
 
 
 
 | 467 | #define MQ_ERROR_SENDER_CERT_BUFFER_TOO_SMALL ((HRESULT)0xC00E002B) | 
 
 
 
 
 | 468 | #define MQ_ERROR_INVALID_CERTIFICATE ((HRESULT)0xC00E002C) | 
 
 
 
 
 | 469 | #define MQ_ERROR_CORRUPTED_INTERNAL_CERTIFICATE ((HRESULT)0xC00E002D) | 
 
 
 
 
 | 470 | #define MQ_ERROR_INTERNAL_USER_CERT_EXIST ((HRESULT)0xC00E002E) | 
 
 
 
 
 | 471 | #define MQ_ERROR_NO_INTERNAL_USER_CERT ((HRESULT)0xC00E002F) | 
 
 
 
 
 | 472 | #define MQ_ERROR_CORRUPTED_SECURITY_DATA ((HRESULT)0xC00E0030) | 
 
 
 
 
 | 473 | #define MQ_ERROR_CORRUPTED_PERSONAL_CERT_STORE ((HRESULT)0xC00E0031) | 
 
 
 
 
 | 474 | #define MQ_ERROR_COMPUTER_DOES_NOT_SUPPORT_ENCRYPTION ((HRESULT)0xC00E0033) | 
 
 
 
 
 | 475 | #define MQ_ERROR_BAD_SECURITY_CONTEXT ((HRESULT)0xC00E0035) | 
 
 
 
 
 | 476 | #define MQ_ERROR_COULD_NOT_GET_USER_SID ((HRESULT)0xC00E0036) | 
 
 
 
 
 | 477 | #define MQ_ERROR_COULD_NOT_GET_ACCOUNT_INFO ((HRESULT)0xC00E0037) | 
 
 
 
 
 | 478 | #define MQ_ERROR_ILLEGAL_MQCOLUMNS ((HRESULT)0xC00E0038) | 
 
 
 
 
 | 479 | #define MQ_ERROR_ILLEGAL_PROPID ((HRESULT)0xC00E0039) | 
 
 
 
 
 | 480 | #define MQ_ERROR_ILLEGAL_RELATION ((HRESULT)0xC00E003A) | 
 
 
 
 
 | 481 | #define MQ_ERROR_ILLEGAL_PROPERTY_SIZE ((HRESULT)0xC00E003B) | 
 
 
 
 
 | 482 | #define MQ_ERROR_ILLEGAL_RESTRICTION_PROPID ((HRESULT)0xC00E003C) | 
 
 
 
 
 | 483 | #define MQ_ERROR_ILLEGAL_MQQUEUEPROPS ((HRESULT)0xC00E003D) | 
 
 
 
 
 | 484 | #define MQ_ERROR_PROPERTY_NOTALLOWED ((HRESULT)0xC00E003E) | 
 
 
 
 
 | 485 | #define MQ_ERROR_INSUFFICIENT_PROPERTIES ((HRESULT)0xC00E003F) | 
 
 
 
 
 | 486 | #define MQ_ERROR_MACHINE_EXISTS ((HRESULT)0xC00E0040) | 
 
 
 
 
 | 487 | #define MQ_ERROR_ILLEGAL_MQQMPROPS ((HRESULT)0xC00E0041) | 
 
 
 
 
 | 488 | #define MQ_ERROR_DS_IS_FULL ((HRESULT)0xC00E0042) | 
 
 
 
 
 | 489 | #define MQ_ERROR_DS_ERROR ((HRESULT)0xC00E0043) | 
 
 
 
 
 | 490 | #define MQ_ERROR_INVALID_OWNER ((HRESULT)0xC00E0044) | 
 
 
 
 
 | 491 | #define MQ_ERROR_UNSUPPORTED_ACCESS_MODE ((HRESULT)0xC00E0045) | 
 
 
 
 
 | 492 | #define MQ_ERROR_RESULT_BUFFER_TOO_SMALL ((HRESULT)0xC00E0046) | 
 
 
 
 
 | 493 | #define MQ_ERROR_DELETE_CN_IN_USE ((HRESULT)0xC00E0048) | 
 
 
 
 
 | 494 | #define MQ_ERROR_NO_RESPONSE_FROM_OBJECT_SERVER ((HRESULT)0xC00E0049) | 
 
 
 
 
 | 495 | #define MQ_ERROR_OBJECT_SERVER_NOT_AVAILABLE ((HRESULT)0xC00E004A) | 
 
 
 
 
 | 496 | #define MQ_ERROR_QUEUE_NOT_AVAILABLE ((HRESULT)0xC00E004B) | 
 
 
 
 
 | 497 | #define MQ_ERROR_DTC_CONNECT ((HRESULT)0xC00E004C) | 
 
 
 
 
 | 498 | #define MQ_ERROR_TRANSACTION_IMPORT ((HRESULT)0xC00E004E) | 
 
 
 
 
 | 499 | #define MQ_ERROR_TRANSACTION_USAGE ((HRESULT)0xC00E0050) | 
 
 
 
 
 | 500 | #define MQ_ERROR_TRANSACTION_SEQUENCE ((HRESULT)0xC00E0051) | 
 
 
 
 
 | 501 | #define MQ_ERROR_MISSING_CONNECTOR_TYPE ((HRESULT)0xC00E0055) | 
 
 
 
 
 | 502 | #define MQ_ERROR_STALE_HANDLE ((HRESULT)0xC00E0056) | 
 
 
 
 
 | 503 | #define MQ_ERROR_TRANSACTION_ENLIST ((HRESULT)0xC00E0058) | 
 
 
 
 
 | 504 | #define MQ_ERROR_QUEUE_DELETED ((HRESULT)0xC00E005A) | 
 
 
 
 
 | 505 | #define MQ_ERROR_ILLEGAL_CONTEXT ((HRESULT)0xC00E005B) | 
 
 
 
 
 | 506 | #define MQ_ERROR_ILLEGAL_SORT_PROPID ((HRESULT)0xC00E005C) | 
 
 
 
 
 | 507 | #define MQ_ERROR_LABEL_TOO_LONG ((HRESULT)0xC00E005D) | 
 
 
 
 
 | 508 | #define MQ_ERROR_LABEL_BUFFER_TOO_SMALL ((HRESULT)0xC00E005E) | 
 
 
 
 
 | 509 | #define MQ_ERROR_MQIS_SERVER_EMPTY ((HRESULT)0xC00E005F) | 
 
 
 
 
 | 510 | #define MQ_ERROR_MQIS_READONLY_MODE ((HRESULT)0xC00E0060) | 
 
 
 
 
 | 511 | #define MQ_ERROR_SYMM_KEY_BUFFER_TOO_SMALL ((HRESULT)0xC00E0061) | 
 
 
 
 
 | 512 | #define MQ_ERROR_SIGNATURE_BUFFER_TOO_SMALL ((HRESULT)0xC00E0062) | 
 
 
 
 
 | 513 | #define MQ_ERROR_PROV_NAME_BUFFER_TOO_SMALL ((HRESULT)0xC00E0063) | 
 
 
 
 
 | 514 | #define MQ_ERROR_ILLEGAL_OPERATION ((HRESULT)0xC00E0064) | 
 
 
 
 
 | 515 | #define MQ_ERROR_WRITE_NOT_ALLOWED ((HRESULT)0xC00E0065) | 
 
 
 
 
 | 516 | #define MQ_ERROR_WKS_CANT_SERVE_CLIENT ((HRESULT)0xC00E0066) | 
 
 
 
 
 | 517 | #define MQ_ERROR_DEPEND_WKS_LICENSE_OVERFLOW ((HRESULT)0xC00E0067) | 
 
 
 
 
 | 518 | #define MQ_CORRUPTED_QUEUE_WAS_DELETED ((HRESULT)0xC00E0068) | 
 
 
 
 
 | 519 | #define MQ_ERROR_REMOTE_MACHINE_NOT_AVAILABLE ((HRESULT)0xC00E0069) | 
 
 
 
 
 | 520 | #define MQ_ERROR_UNSUPPORTED_OPERATION ((HRESULT)0xC00E006A) | 
 
 
 
 
 | 521 | #define MQ_ERROR_ENCRYPTION_PROVIDER_NOT_SUPPORTED ((HRESULT)0xC00E006B) | 
 
 
 
 
 | 522 | #define MQ_ERROR_CANNOT_SET_CRYPTO_SEC_DESCR ((HRESULT)0xC00E006C) | 
 
 
 
 
 | 523 | #define MQ_ERROR_CERTIFICATE_NOT_PROVIDED ((HRESULT)0xC00E006D) | 
 
 
 
 
 | 524 | #define MQ_ERROR_Q_DNS_PROPERTY_NOT_SUPPORTED ((HRESULT)0xC00E006E) | 
 
 
 
 
 | 525 | #define MQ_ERROR_CANNOT_CREATE_CERT_STORE ((HRESULT)0xC00E006F) | 
 
 
 
 
 | 526 | #define MQ_ERROR_CANNOT_OPEN_CERT_STORE ((HRESULT)0xC00E0070) | 
 
 
 
 
 | 527 | #define MQ_ERROR_ILLEGAL_ENTERPRISE_OPERATION ((HRESULT)0xC00E0071) | 
 
 
 
 
 | 528 | #define MQ_ERROR_CANNOT_GRANT_ADD_GUID ((HRESULT)0xC00E0072) | 
 
 
 
 
 | 529 | #define MQ_ERROR_CANNOT_LOAD_MSMQOCM ((HRESULT)0xC00E0073) | 
 
 
 
 
 | 530 | #define MQ_ERROR_NO_ENTRY_POINT_MSMQOCM ((HRESULT)0xC00E0074) | 
 
 
 
 
 | 531 | #define MQ_ERROR_NO_MSMQ_SERVERS_ON_DC ((HRESULT)0xC00E0075) | 
 
 
 
 
 | 532 | #define MQ_ERROR_CANNOT_JOIN_DOMAIN ((HRESULT)0xC00E0076) | 
 
 
 
 
 | 533 | #define MQ_ERROR_CANNOT_CREATE_ON_GC ((HRESULT)0xC00E0077) | 
 
 
 
 
 | 534 | #define MQ_ERROR_GUID_NOT_MATCHING ((HRESULT)0xC00E0078) | 
 
 
 
 
 | 535 | #define MQ_ERROR_PUBLIC_KEY_NOT_FOUND ((HRESULT)0xC00E0079) | 
 
 
 
 
 | 536 | #define MQ_ERROR_PUBLIC_KEY_DOES_NOT_EXIST ((HRESULT)0xC00E007A) | 
 
 
 
 
 | 537 | #define MQ_ERROR_ILLEGAL_MQPRIVATEPROPS ((HRESULT)0xC00E007B) | 
 
 
 
 
 | 538 | #define MQ_ERROR_NO_GC_IN_DOMAIN ((HRESULT)0xC00E007C) | 
 
 
 
 
 | 539 | #define MQ_ERROR_NO_MSMQ_SERVERS_ON_GC ((HRESULT)0xC00E007D) | 
 
 
 
 
 | 540 | #define MQ_ERROR_CANNOT_GET_DN ((HRESULT)0xC00E007E) | 
 
 
 
 
 | 541 | #define MQ_ERROR_CANNOT_HASH_DATA_EX ((HRESULT)0xC00E007F) | 
 
 
 
 
 | 542 | #define MQ_ERROR_CANNOT_SIGN_DATA_EX ((HRESULT)0xC00E0080) | 
 
 
 
 
 | 543 | #define MQ_ERROR_CANNOT_CREATE_HASH_EX ((HRESULT)0xC00E0081) | 
 
 
 
 
 | 544 | #define MQ_ERROR_FAIL_VERIFY_SIGNATURE_EX ((HRESULT)0xC00E0082) | 
 
 
 
 
 | 545 | #define MQ_ERROR_CANNOT_DELETE_PSC_OBJECTS ((HRESULT)0xC00E0083) | 
 
 
 
 
 | 546 | #define MQ_ERROR_NO_MQUSER_OU ((HRESULT)0xC00E0084) | 
 
 
 
 
 | 547 | #define MQ_ERROR_CANNOT_LOAD_MQAD ((HRESULT)0xC00E0085) | 
 
 
 
 
 | 548 | #define MQ_ERROR_CANNOT_LOAD_MQDSSRV ((HRESULT)0xC00E0086) | 
 
 
 
 
 | 549 | #define MQ_ERROR_PROPERTIES_CONFLICT ((HRESULT)0xC00E0087) | 
 
 
 
 
 | 550 | #define MQ_ERROR_MESSAGE_NOT_FOUND ((HRESULT)0xC00E0088) | 
 
 
 
 
 | 551 | #define MQ_ERROR_CANT_RESOLVE_SITES ((HRESULT)0xC00E0089) | 
 
 
 
 
 | 552 | #define MQ_ERROR_NOT_SUPPORTED_BY_DEPENDENT_CLIENTS ((HRESULT)0xC00E008A) | 
 
 
 
 
 | 553 | #define MQ_ERROR_OPERATION_NOT_SUPPORTED_BY_REMOTE_COMPUTER ((HRESULT)0xC00E008B) | 
 
 
 
 
 | 554 | #define MQ_ERROR_NOT_A_CORRECT_OBJECT_CLASS ((HRESULT)0xC00E008C) | 
 
 
 
 
 | 555 | #define MQ_ERROR_MULTI_SORT_KEYS ((HRESULT)0xC00E008D) | 
 
 
 
 
 | 556 | #define MQ_ERROR_GC_NEEDED ((HRESULT)0xC00E008E) | 
 
 
 
 
 | 557 | #define MQ_ERROR_DS_BIND_ROOT_FOREST ((HRESULT)0xC00E008F) | 
 
 
 
 
 | 558 | #define MQ_ERROR_DS_LOCAL_USER ((HRESULT)0xC00E0090) | 
 
 
 
 
 | 559 | #define MQ_ERROR_Q_ADS_PROPERTY_NOT_SUPPORTED ((HRESULT)0xC00E0091) | 
 
 
 
 
 | 560 | #define MQ_ERROR_BAD_XML_FORMAT ((HRESULT)0xC00E0092) | 
 
 
 
 
 | 561 | #define MQ_ERROR_UNSUPPORTED_CLASS ((HRESULT)0xC00E0093) | 
 
 
 
 
 | 562 | #define MQ_ERROR_UNINITIALIZED_OBJECT ((HRESULT)0xC00E0094) | 
 
 
 
 
 | 563 | #define MQ_ERROR_CANNOT_CREATE_PSC_OBJECTS ((HRESULT)0xC00E0095) | 
 
 
 
 
 | 564 | #define MQ_ERROR_CANNOT_UPDATE_PSC_OBJECTS ((HRESULT)0xC00E0096) | 
 
 
 
 
 | 565 |  | 
 
 
 
 
 | 566 | #define MQCERT_REGISTER_ALWAYS 0x01 | 
 
 
 
 
 | 567 | #define MQCERT_REGISTER_IF_NOT_EXIST 0x02 | 
 
 
 
 
 | 568 |  | 
 
 
 
 
 | 569 | #define MQSEC_DELETE_MESSAGE 0x1 | 
 
 
 
 
 | 570 | #define MQSEC_PEEK_MESSAGE 0x2 | 
 
 
 
 
 | 571 | #define MQSEC_WRITE_MESSAGE 0x4 | 
 
 
 
 
 | 572 | #define MQSEC_DELETE_JOURNAL_MESSAGE 0x8 | 
 
 
 
 
 | 573 | #define MQSEC_SET_QUEUE_PROPERTIES 0x10 | 
 
 
 
 
 | 574 | #define MQSEC_GET_QUEUE_PROPERTIES 0x20 | 
 
 
 
 
 | 575 | #define MQSEC_DELETE_QUEUE DELETE | 
 
 
 
 
 | 576 | #define MQSEC_GET_QUEUE_PERMISSIONS READ_CONTROL | 
 
 
 
 
 | 577 | #define MQSEC_CHANGE_QUEUE_PERMISSIONS WRITE_DAC | 
 
 
 
 
 | 578 | #define MQSEC_TAKE_QUEUE_OWNERSHIP WRITE_OWNER | 
 
 
 
 
 | 579 |  | 
 
 
 
 
 | 580 | #define MQSEC_RECEIVE_MESSAGE (MQSEC_DELETE_MESSAGE | MQSEC_PEEK_MESSAGE) | 
 
 
 
 
 | 581 | #define MQSEC_RECEIVE_JOURNAL_MESSAGE (MQSEC_DELETE_JOURNAL_MESSAGE | MQSEC_PEEK_MESSAGE) | 
 
 
 
 
 | 582 | #define MQSEC_QUEUE_GENERIC_READ (MQSEC_GET_QUEUE_PROPERTIES | MQSEC_GET_QUEUE_PERMISSIONS | MQSEC_RECEIVE_MESSAGE | MQSEC_RECEIVE_JOURNAL_MESSAGE) | 
 
 
 
 
 | 583 | #define MQSEC_QUEUE_GENERIC_WRITE (MQSEC_GET_QUEUE_PROPERTIES | MQSEC_GET_QUEUE_PERMISSIONS | MQSEC_WRITE_MESSAGE) | 
 
 
 
 
 | 584 | #define MQSEC_QUEUE_GENERIC_EXECUTE 0 | 
 
 
 
 
 | 585 | #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) | 
 
 
 
 
 | 586 |  | 
 
 
 
 
 | 587 | #ifdef __cplusplus | 
 
 
 
 
 | 588 | extern "C" { | 
 
 
 
 
 | 589 | #endif | 
 
 
 
 
 | 590 |  | 
 
 
 
 
 | 591 | typedef VOID (WINAPI *PMQRECEIVECALLBACK)(HRESULT hrStatus,QUEUEHANDLE hSource,DWORD dwTimeout,DWORD dwAction,MQMSGPROPS *pMessageProps,LPOVERLAPPED lpOverlapped,HANDLE hCursor); | 
 
 
 
 
 | 592 |  | 
 
 
 
 
 | 593 | HRESULT WINAPI MQCreateQueue(PSECURITY_DESCRIPTOR pSecurityDescriptor,MQQUEUEPROPS *pQueueProps,LPWSTR lpwcsFormatName,LPDWORD lpdwFormatNameLength); | 
 
 
 
 
 | 594 | HRESULT WINAPI MQDeleteQueue(LPCWSTR lpwcsFormatName); | 
 
 
 
 
 | 595 | HRESULT WINAPI MQLocateBegin(LPCWSTR lpwcsContext,MQRESTRICTION *pRestriction,MQCOLUMNSET *pColumns,MQSORTSET *pSort,PHANDLE phEnum); | 
 
 
 
 
 | 596 | HRESULT WINAPI MQLocateNext(HANDLE hEnum,DWORD *pcProps,MQPROPVARIANT aPropVar[]); | 
 
 
 
 
 | 597 | HRESULT WINAPI MQLocateEnd(HANDLE hEnum); | 
 
 
 
 
 | 598 | HRESULT WINAPI MQOpenQueue(LPCWSTR lpwcsFormatName,DWORD dwAccess,DWORD dwShareMode,QUEUEHANDLE *phQueue); | 
 
 
 
 
 | 599 | HRESULT WINAPI MQSendMessage(QUEUEHANDLE hDestinationQueue,MQMSGPROPS *pMessageProps,ITransaction *pTransaction); | 
 
 
 
 
 | 600 | HRESULT WINAPI MQReceiveMessage(QUEUEHANDLE hSource,DWORD dwTimeout,DWORD dwAction,MQMSGPROPS *pMessageProps,LPOVERLAPPED lpOverlapped,PMQRECEIVECALLBACK fnReceiveCallback,HANDLE hCursor,ITransaction *pTransaction); | 
 
 
 
 
 | 601 | HRESULT WINAPI MQReceiveMessageByLookupId(QUEUEHANDLE hSource,ULONGLONG ullLookupId,DWORD dwLookupAction,MQMSGPROPS *pMessageProps,LPOVERLAPPED lpOverlapped,PMQRECEIVECALLBACK fnReceiveCallback,ITransaction *pTransaction); | 
 
 
 
 
 | 602 | HRESULT WINAPI MQCreateCursor(QUEUEHANDLE hQueue,PHANDLE phCursor); | 
 
 
 
 
 | 603 | HRESULT WINAPI MQCloseCursor(HANDLE hCursor); | 
 
 
 
 
 | 604 | HRESULT WINAPI MQCloseQueue(QUEUEHANDLE hQueue); | 
 
 
 
 
 | 605 | HRESULT WINAPI MQSetQueueProperties(LPCWSTR lpwcsFormatName,MQQUEUEPROPS *pQueueProps); | 
 
 
 
 
 | 606 | HRESULT WINAPI MQGetQueueProperties(LPCWSTR lpwcsFormatName,MQQUEUEPROPS *pQueueProps); | 
 
 
 
 
 | 607 | HRESULT WINAPI MQGetQueueSecurity(LPCWSTR lpwcsFormatName,SECURITY_INFORMATION RequestedInformation,PSECURITY_DESCRIPTOR pSecurityDescriptor,DWORD nLength,LPDWORD lpnLengthNeeded); | 
 
 
 
 
 | 608 | HRESULT WINAPI MQSetQueueSecurity(LPCWSTR lpwcsFormatName,SECURITY_INFORMATION SecurityInformation,PSECURITY_DESCRIPTOR pSecurityDescriptor); | 
 
 
 
 
 | 609 | HRESULT WINAPI MQPathNameToFormatName(LPCWSTR lpwcsPathName,LPWSTR lpwcsFormatName,LPDWORD lpdwFormatNameLength); | 
 
 
 
 
 | 610 | HRESULT WINAPI MQHandleToFormatName(QUEUEHANDLE hQueue,LPWSTR lpwcsFormatName,LPDWORD lpdwFormatNameLength); | 
 
 
 
 
 | 611 | HRESULT WINAPI MQInstanceToFormatName(GUID *pGuid,LPWSTR lpwcsFormatName,LPDWORD lpdwFormatNameLength); | 
 
 
 
 
 | 612 | HRESULT WINAPI MQADsPathToFormatName(LPCWSTR lpwcsADsPath,LPWSTR lpwcsFormatName,LPDWORD lpdwFormatNameLength); | 
 
 
 
 
 | 613 | VOID WINAPI MQFreeMemory(PVOID pvMemory); | 
 
 
 
 
 | 614 | HRESULT WINAPI MQGetMachineProperties(LPCWSTR lpwcsMachineName,const GUID *pguidMachineId,MQQMPROPS *pQMProps); | 
 
 
 
 
 | 615 | HRESULT WINAPI MQGetSecurityContext(PVOID lpCertBuffer,DWORD dwCertBufferLength,HANDLE *phSecurityContext); | 
 
 
 
 
 | 616 | HRESULT WINAPI MQGetSecurityContextEx(PVOID lpCertBuffer,DWORD dwCertBufferLength,HANDLE *phSecurityContext); | 
 
 
 
 
 | 617 | VOID WINAPI MQFreeSecurityContext(HANDLE hSecurityContext); | 
 
 
 
 
 | 618 | HRESULT WINAPI MQRegisterCertificate(DWORD dwFlags,PVOID lpCertBuffer,DWORD dwCertBufferLength); | 
 
 
 
 
 | 619 | HRESULT WINAPI MQBeginTransaction(ITransaction **ppTransaction); | 
 
 
 
 
 | 620 | HRESULT WINAPI MQGetOverlappedResult(LPOVERLAPPED lpOverlapped); | 
 
 
 
 
 | 621 | HRESULT WINAPI MQGetPrivateComputerInformation(LPCWSTR lpwcsComputerName,MQPRIVATEPROPS *pPrivateProps); | 
 
 
 
 
 | 622 | HRESULT WINAPI MQPurgeQueue(QUEUEHANDLE hQueue); | 
 
 
 
 
 | 623 | HRESULT WINAPI MQMgmtGetInfo(LPCWSTR pComputerName,LPCWSTR pObjectName,MQMGMTPROPS *pMgmtProps); | 
 
 
 
 
 | 624 | HRESULT WINAPI MQMgmtAction(LPCWSTR pComputerName,LPCWSTR pObjectName,LPCWSTR pAction); | 
 
 
 
 
 | 625 |  | 
 
 
 
 
 | 626 | #ifdef __cplusplus | 
 
 
 
 
 | 627 | } | 
 
 
 
 
 | 628 | #endif | 
 
 
 
 
 | 629 | #endif |