|
|
/*++
Copyright (C) 1996-2001 Microsoft Corporation
Module Name:
Abstract:
History:
--*/
#ifndef __MSMQCOMN_H__
#define __MSMQCOMN_H__
/**************************************************************************
MSMQ Function Typedefs ***************************************************************************/
typedef HRESULT (APIENTRY *PMQCreateQueue)( PSECURITY_DESCRIPTOR, MQQUEUEPROPS*, LPWSTR, DWORD* );
typedef HRESULT (APIENTRY *PMQOpenQueue)( LPWSTR, DWORD, DWORD, QUEUEHANDLE* );
typedef HRESULT (APIENTRY *PMQDeleteQueue)( LPWSTR );
typedef HRESULT (APIENTRY *PMQFreeMemory)( PVOID );
typedef HRESULT (APIENTRY *PMQSendMessage)( QUEUEHANDLE, MQMSGPROPS*, ITransaction* );
typedef HRESULT (APIENTRY *PMQReceiveMessage)( QUEUEHANDLE, DWORD, DWORD, MQMSGPROPS*, LPOVERLAPPED, PMQRECEIVECALLBACK, HANDLE, ITransaction* );
typedef HRESULT (APIENTRY *PMQCloseQueue)( QUEUEHANDLE );
typedef HRESULT (APIENTRY *PMQPathNameToFormatName)( LPCWSTR, LPWSTR, DWORD* );
typedef HRESULT (APIENTRY *PMQCreateCursor)( QUEUEHANDLE hQueue, PHANDLE phCursor );
typedef HRESULT (APIENTRY *PMQCloseCursor)( HANDLE hCursor );
typedef HRESULT (APIENTRY *PMQGetSecurityContext)( PVOID lpCertBuffer, DWORD dwCertBufferLength, HANDLE* hSecurityContext );
typedef void (APIENTRY *PMQFreeSecurityContext)( HANDLE hSecurityContext );
typedef HRESULT (APIENTRY *PMQRegisterCertificate)( DWORD dwFlags, PVOID lpCertBuffer, DWORD dwCertBufferLen );
typedef HRESULT (APIENTRY *PMQMgmtGetInfo)( LPCWSTR pMachineName, LPCWSTR pObjectName, MQMGMTPROPS* pMgmtProps );
typedef HRESULT (APIENTRY *PMQGetQueueProperties)( LPCWSTR lpwcsFormatName, MQQUEUEPROPS* pQueueProps );
typedef HRESULT (APIENTRY *PMQGetPrivateComputerInformation)( LPCWSTR, MQPRIVATEPROPS*);
/************************************************************************
CMsmqApi *************************************************************************/
#define FUNCPTR(FUNC) P ## FUNC m_fp ## FUNC;
class CMsmqApi { HMODULE m_hModule; public:
CMsmqApi() { ZeroMemory( this, sizeof(CMsmqApi) ); } ~CMsmqApi();
HRESULT Initialize();
FUNCPTR(MQGetQueueProperties) FUNCPTR(MQCreateQueue) FUNCPTR(MQOpenQueue) FUNCPTR(MQDeleteQueue) FUNCPTR(MQFreeMemory) FUNCPTR(MQSendMessage) FUNCPTR(MQReceiveMessage) FUNCPTR(MQCloseQueue) FUNCPTR(MQPathNameToFormatName) FUNCPTR(MQCreateCursor) FUNCPTR(MQCloseCursor) FUNCPTR(MQGetSecurityContext) FUNCPTR(MQFreeSecurityContext) FUNCPTR(MQRegisterCertificate) FUNCPTR(MQGetPrivateComputerInformation) FUNCPTR(MQMgmtGetInfo) };
/**************************************************************************
Common MSMQ Util Functions ***************************************************************************/
#include <wstring.h>
HRESULT MqClassToWmiRes( DWORD dwClass ); HRESULT MqResToWmiRes( HRESULT hr, HRESULT hrDefault = S_OK ); HRESULT IsMsmqOnline( CMsmqApi& rApi ); HRESULT IsMsmqWorkgroup( CMsmqApi& rApi ); HRESULT EnsureMsmqService( CMsmqApi& rApi ); HRESULT NormalizeQueueName( CMsmqApi&,LPCWSTR wszEndpoint,WString& rwsFormat);
#endif // __MSMQQCOMN_H__
|