QueueDll.cpp in QueueDll.rar


by Windows Message Queue System Programming. This example is a DLL files, the sp...Original Link
    Sponsored links

			

#define _WIN32_WINNT 0x0500
#include <windows.h>
#include <mq.h>
#include <wchar.h>

#include "QueueDll.h"

//#define MYDEBUG

static CRITICAL_SECTION m_cs ;

class CLock
{
public:
	CLock(CRITICAL_SECTION& cs)
	{
		m_pcs = &cs;
		Lock();
	}
	~CLock()
	{
		Unlock();
	}
	
	void Unlock()
	{
		LeaveCriticalSection(m_pcs);
	}

	void Lock()
	{
		EnterCriticalSection(m_pcs);
	}


protected:
	CRITICAL_SECTION*	m_pcs;

};

#define MAX_PROPS  5
#define MAX_FORMAT 256
#define MAX_BUFFER 512

char  ErrorStr[256];

WCHAR g_szComputerName[MAX_BUFFER];
WCHAR g_szQueueLabel[MAX_BUFFER] ;
WCHAR g_szQueueName[MAX_BUFFER];
WCHAR g_szQueuePath[MAX_BUFFER * 2];
WCHAR g_szMessageBody[MAX_BUFFER];

HANDLE		  hQueue ;
BOOL          IsQueueCreate;
MQQUEUEPROPS  g_queueProps;
PROPVARIANT   g_rgQueuePropVar[MAX_PROPS];
QUEUEPROPID   g_rgQueuePropID[MAX_PROPS];
HRESULT       g_rgQueueResults[MAX_PROPS];
WCHAR         g_szFormat[MAX_FORMAT];
MQMSGPROPS    g_msgProps;
PROPVARIANT   g_rgMsgPropVar[MAX_PROPS];
MSGPROPID     g_rgMsgPropID[MAX_PROPS];
HRESULT       g_rgMsgResults[MAX_PROPS];

void HandleError(LPCWSTR strTitle, HRESULT hr);
void GetQueueNameFromUser();
void GetMsgFromUser();
void InitQueueProps();
void InitSendMessageProps();
void InitRecvMessageProps();

void InitQueue();
void UnInitQueue();

BOOL ZGCreateQueue( char *QueuePath );
BOOL ZGGetQueue( char *QueuePath );
long ZGSendQueue( char *QueuePath,char *Messages ,DWORD dLen ) ;
long ZGRecvQueue( char *QueuePath,char *Messages ,DWORD dLen , DWORD dwTimeout ) ;
BOOL ZGDeleteQueue(char *QueuePath );
void ZGCloseQueue( char *QueuePath);
void ZGGetQueueErrorStr( char *sErrorStr );

FUNCTION_TABLE    Function_Table;

int IsFirst = 1 ;
void InitQueue()
{
	InitializeCriticalSection(&m_cs);
	IsFirst = 0 ;
}

void UnInitQueue()
{
	if ( IsFirst == 0 )
		DeleteCriticalSection(&m_cs);
}

BOOL APIENTRY DllMain( HANDLE hModule, 
                       DWORD  ul_reason_for_call, 
              			

			...
			...
			... to be continued.

  This is a preview. To get the complete source file, 
  please click here to download the whole source code package.

			
			


Project Files

    Sponsored links
NameSizeDate
 QueueDll.def369.00 B11-01-01 09:08
 QueueDll.dsw539.00 B10-01-01 23:21
 QueueDll.h4.06 kB29-04-04 10:19
 QueueDll.dsp4.20 kB21-07-04 14:48
 QueueDll.cpp15.62 kB21-07-04 14:52
 QueueDllBak.cpp15.89 kB09-03-04 14:51
...

Related Items

    Sponsored links