📄 mq.h
字号:
#define MQ_ERROR_DELETE_CN_IN_USE 0xC00E0048L
//
// MessageId: MQ_ERROR_NO_RESPONSE_FROM_OBJECT_SERVER
//
// MessageText:
//
// No response from object owner.
//
#define MQ_ERROR_NO_RESPONSE_FROM_OBJECT_SERVER 0xC00E0049L
//
// MessageId: MQ_ERROR_OBJECT_SERVER_NOT_AVAILABLE
//
// MessageText:
//
// Object owner is not reachable.
//
#define MQ_ERROR_OBJECT_SERVER_NOT_AVAILABLE 0xC00E004AL
//
// MessageId: MQ_ERROR_QUEUE_NOT_AVAILABLE
//
// MessageText:
//
// Error while reading from a queue residing on a remote computer
//
#define MQ_ERROR_QUEUE_NOT_AVAILABLE 0xC00E004BL
//
// MessageId: MQ_ERROR_DTC_CONNECT
//
// MessageText:
//
// Cannot connect to MS DTC
//
#define MQ_ERROR_DTC_CONNECT 0xC00E004CL
//
// MessageId: MQ_ERROR_TRANSACTION_IMPORT
//
// MessageText:
//
// Cannot import the transaction
//
#define MQ_ERROR_TRANSACTION_IMPORT 0xC00E004EL
//
// MessageId: MQ_ERROR_TRANSACTION_USAGE
//
// MessageText:
//
// Wrong transaction usage
//
#define MQ_ERROR_TRANSACTION_USAGE 0xC00E0050L
//
// MessageId: MQ_ERROR_TRANSACTION_SEQUENCE
//
// MessageText:
//
// Wrong transaction operations sequence
//
#define MQ_ERROR_TRANSACTION_SEQUENCE 0xC00E0051L
//
// MessageId: MQ_ERROR_MISSING_CONNECTOR_TYPE
//
// MessageText:
//
// Connector Type is mandatory when sending Acknowledgment or secure message
//
#define MQ_ERROR_MISSING_CONNECTOR_TYPE 0xC00E0055L
//
// MessageId: MQ_ERROR_STALE_HANDLE
//
// MessageText:
//
// The Queue manager service has been restarted. The queue handle
// is stale, and should be closed.
//
#define MQ_ERROR_STALE_HANDLE 0xC00E0056L
//
// MessageId: MQ_ERROR_TRANSACTION_ENLIST
//
// MessageText:
//
// Cannot enlist the transaction
//
#define MQ_ERROR_TRANSACTION_ENLIST 0xC00E0058L
//
// MessageId: MQ_ERROR_QUEUE_DELETED
//
// MessageText:
//
// The queue was deleted. Messages can not be received anymore using this
// queue handle. The handle should be closed
//
#define MQ_ERROR_QUEUE_DELETED 0xC00E005AL
//
// MessageId: MQ_ERROR_ILLEGAL_CONTEXT
//
// MessageText:
//
// Invalid context parameter (MQLocateBegin).
//
#define MQ_ERROR_ILLEGAL_CONTEXT 0xC00E005BL
//
// MessageId: MQ_ERROR_ILLEGAL_SORT_PROPID
//
// MessageText:
//
// Invalid propid value in MQSORTSET
//
#define MQ_ERROR_ILLEGAL_SORT_PROPID 0xC00E005CL
//
// MessageId: MQ_ERROR_LABEL_TOO_LONG
//
// MessageText:
//
// The passed label is too long. It should be less or equal to MQ_MAX_MSG_LABEL_LEN
//
#define MQ_ERROR_LABEL_TOO_LONG 0xC00E005DL
//
// MessageId: MQ_ERROR_LABEL_BUFFER_TOO_SMALL
//
// MessageText:
//
// The label buffer supplied to the API was too small
//
#define MQ_ERROR_LABEL_BUFFER_TOO_SMALL 0xC00E005EL
//
// MessageId: MQ_ERROR_MQIS_SERVER_EMPTY
//
// MessageText:
//
// The list of MQIS servers (in registry) is empty.
//
#define MQ_ERROR_MQIS_SERVER_EMPTY 0xC00E005FL
//
// MessageId: MQ_ERROR_MQIS_READONLY_MODE
//
// MessageText:
//
// MQIS database is in read-only mode.
//
#define MQ_ERROR_MQIS_READONLY_MODE 0xC00E0060L
//
// MessageId: MQ_ERROR_SYMM_KEY_BUFFER_TOO_SMALL
//
// MessageText:
//
// The passed buffer for the Symmetric key property is too small.
//
#define MQ_ERROR_SYMM_KEY_BUFFER_TOO_SMALL 0xC00E0061L
//
// MessageId: MQ_ERROR_SIGNATURE_BUFFER_TOO_SMALL
//
// MessageText:
//
// The passed buffer for the Signature property is too small.
//
#define MQ_ERROR_SIGNATURE_BUFFER_TOO_SMALL 0xC00E0062L
//
// MessageId: MQ_ERROR_PROV_NAME_BUFFER_TOO_SMALL
//
// MessageText:
//
// The passed buffer for the Provider name property is too small.
//
#define MQ_ERROR_PROV_NAME_BUFFER_TOO_SMALL 0xC00E0063L
//
// MessageId: MQ_ERROR_ILLEGAL_OPERATION
//
// MessageText:
//
// The operation is illegal on foreign message queuing system
//
#define MQ_ERROR_ILLEGAL_OPERATION 0xC00E0064L
//
// MessageId: MQ_ERROR_WRITE_NOT_ALLOWED
//
// MessageText:
//
// Another MQIS server is being installed, write operations to the
// database are not allowed at this stage.
//
#define MQ_ERROR_WRITE_NOT_ALLOWED 0xC00E0065L
//
// MessageId: MQ_ERROR_WKS_CANT_SERVE_CLIENT
//
// MessageText:
//
// MSMQ independent clients cannot serve MSMQ dependent clients.
//
#define MQ_ERROR_WKS_CANT_SERVE_CLIENT 0xC00E0066L
//
//
// MessageId: MQ_ERROR_DEPEND_WKS_LICENSE_OVERFLOW
//
// MessageText:
//
// The number of dependent clients served by this MSMQ server reached
// its upper limit.
//
#define MQ_ERROR_DEPEND_WKS_LICENSE_OVERFLOW 0xC00E0067L
//
//
// MessageId: MQ_CORRUPTED_QUEUE_WAS_DELETED
//
// MessageText:
//
// Ini file for queue %1 in LQS was deleted because it was corrupted.
//
#define MQ_CORRUPTED_QUEUE_WAS_DELETED 0xC00E0068L
//
//
// MessageId: MQ_ERROR_REMOTE_MACHINE_NOT_AVAILABLE
//
// MessageText:
//
// The remote machine is not available.
//
#define MQ_ERROR_REMOTE_MACHINE_NOT_AVAILABLE 0xC00E0069L
//
// Informational
//
//
// MessageId: MQ_INFORMATION_PROPERTY
//
// MessageText:
//
// One or more of the passed properties resulted in warning but the
// function completed.
//
#define MQ_INFORMATION_PROPERTY 0x400E0001L
//
// MessageId: MQ_INFORMATION_ILLEGAL_PROPERTY
//
// MessageText:
//
// Invalid property id.
//
#define MQ_INFORMATION_ILLEGAL_PROPERTY 0x400E0002L
//
// MessageId: MQ_INFORMATION_PROPERTY_IGNORED
//
// MessageText:
//
// The specified property is ignored in this operation
// (e.g., PROPID_M_SENDERID in SendMessage().
//
#define MQ_INFORMATION_PROPERTY_IGNORED 0x400E0003L
//
// MessageId: MQ_INFORMATION_UNSUPPORTED_PROPERTY
//
// MessageText:
//
// The specified property is not supported and is ignored in this operation
//
#define MQ_INFORMATION_UNSUPPORTED_PROPERTY 0x400E0004L
//
// MessageId: MQ_INFORMATION_DUPLICATE_PROPERTY
//
// MessageText:
//
// The specified property already appeared in the propid array, and is
// ignored in this operation
//
#define MQ_INFORMATION_DUPLICATE_PROPERTY 0x400E0005L
//
// MessageId: MQ_INFORMATION_OPERATION_PENDING
//
// MessageText:
//
// Asynchronous operation is currently pending.
//
#define MQ_INFORMATION_OPERATION_PENDING 0x400E0006L
//
// MessageId: MQ_INFORMATION_FORMATNAME_BUFFER_TOO_SMALL
//
// MessageText:
//
// The format name buffer supplied to MQCreateQueue was too small
// to fit the format name. Queue was created successfully
//
#define MQ_INFORMATION_FORMATNAME_BUFFER_TOO_SMALL 0x400E0009L
//********************************************************************
// SECURITY FLAGS
//********************************************************************
#define MQSEC_DELETE_MESSAGE 0x1
#define MQSEC_PEEK_MESSAGE 0x2
#define MQSEC_WRITE_MESSAGE 0x4
#define MQSEC_DELETE_JOURNAL_MESSAGE 0x8
#define MQSEC_SET_QUEUE_PROPERTIES 0x10
#define MQSEC_GET_QUEUE_PROPERTIES 0x20
#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 0
#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)
#ifdef __cplusplus
extern "C"
{
#endif
//********************************************************************
// RECEIVE CALLBACK
//********************************************************************
typedef
VOID
(APIENTRY *PMQRECEIVECALLBACK)(
HRESULT hrStatus,
QUEUEHANDLE hSource,
DWORD dwTimeout,
DWORD dwAction,
MQMSGPROPS* pMessageProps,
LPOVERLAPPED lpOverlapped,
HANDLE hCursor
);
//********************************************************************
// MSMQ API
//********************************************************************
HRESULT
APIENTRY
MQCreateQueue(
IN PSECURITY_DESCRIPTOR pSecurityDescriptor,
IN OUT MQQUEUEPROPS* pQueueProps,
OUT LPWSTR lpwcsFormatName,
IN OUT LPDWORD lpdwFormatNameLength
);
HRESULT
APIENTRY
MQDeleteQueue(
IN LPCWSTR lpwcsFormatName
);
HRESULT
APIENTRY
MQLocateBegin(
IN LPCWSTR lpwcsContext,
IN MQRESTRICTION* pRestriction,
IN MQCOLUMNSET* pColumns,
IN MQSORTSET* pSort,
OUT PHANDLE phEnum
);
HRESULT
APIENTRY
MQLocateNext(
IN HANDLE hEnum,
IN OUT DWORD* pcProps,
OUT MQPROPVARIANT aPropVar[]
);
HRESULT
APIENTRY
MQLocateEnd(
IN HANDLE hEnum
);
HRESULT
APIENTRY
MQOpenQueue(
IN LPCWSTR lpwcsFormatName,
IN DWORD dwAccess,
IN DWORD dwShareMode,
OUT QUEUEHANDLE* phQueue
);
HRESULT
APIENTRY
MQSendMessage(
IN QUEUEHANDLE hDestinationQueue,
IN MQMSGPROPS* pMessageProps,
IN ITransaction *pTransaction
);
HRESULT
APIENTRY
MQReceiveMessage(
IN QUEUEHANDLE hSource,
IN DWORD dwTimeout,
IN DWORD dwAction,
IN OUT MQMSGPROPS* pMessageProps,
IN OUT LPOVERLAPPED lpOverlapped,
IN PMQRECEIVECALLBACK fnReceiveCallback,
IN HANDLE hCursor,
IN ITransaction* pTransaction
);
HRESULT
APIENTRY
MQCreateCursor(
IN QUEUEHANDLE hQueue,
OUT PHANDLE phCursor
);
HRESULT
APIENTRY
MQCloseCursor(
IN HANDLE hCursor
);
HRESULT
APIENTRY
MQCloseQueue(
IN HANDLE hQueue
);
HRESULT
APIENTRY
MQSetQueueProperties(
IN LPCWSTR lpwcsFormatName,
IN MQQUEUEPROPS* pQueueProps
);
HRESULT
APIENTRY
MQGetQueueProperties(
IN LPCWSTR lpwcsFormatName,
OUT MQQUEUEPROPS* pQueueProps
);
HRESULT
APIENTRY
MQGetQueueSecurity(
IN LPCWSTR lpwcsFormatName,
IN SECURITY_INFORMATION RequestedInformation,
OUT PSECURITY_DESCRIPTOR pSecurityDescriptor,
IN DWORD nLength,
OUT LPDWORD lpnLengthNeeded
);
HRESULT
APIENTRY
MQSetQueueSecurity(
IN LPCWSTR lpwcsFormatName,
IN SECURITY_INFORMATION SecurityInformation,
IN PSECURITY_DESCRIPTOR pSecurityDescriptor
);
HRESULT
APIENTRY
MQPathNameToFormatName(
IN LPCWSTR lpwcsPathName,
OUT LPWSTR lpwcsFormatName,
IN OUT LPDWORD lpdwFormatNameLength
);
HRESULT
APIENTRY
MQHandleToFormatName(
IN QUEUEHANDLE hQueue,
OUT LPWSTR lpwcsFormatName,
IN OUT LPDWORD lpdwFormatNameLength
);
HRESULT
APIENTRY
MQInstanceToFormatName(
IN GUID* pGuid,
OUT LPWSTR lpwcsFormatName,
IN OUT LPDWORD lpdwFormatNameLength
);
void
APIENTRY
MQFreeMemory(
IN PVOID pvMemory
);
HRESULT
APIENTRY
MQGetMachineProperties(
IN LPCWSTR lpwcsMachineName,
IN const GUID* pguidMachineId,
IN OUT MQQMPROPS* pQMProps
);
HRESULT
APIENTRY
MQGetSecurityContext(
IN PVOID lpCertBuffer,
IN DWORD dwCertBufferLength,
OUT HANDLE* hSecurityContext
);
void
APIENTRY
MQFreeSecurityContext(
IN HANDLE hSecurityContext
);
HRESULT
APIENTRY
MQBeginTransaction(
OUT ITransaction **ppTransaction
);
#ifdef __cplusplus
}
#endif
#endif // __MQ_H__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -