⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 queue.h

📁 C++语言开发的受机短信相关的源程序
💻 H
字号:
/*////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Queue.h: interface for the CQueue class.																	    //	
// Authour :		Airlink 																					//		
// E-Mail:			Airlink@sohu.com																			//			
// CreateTime:		2002-12-08																					//	
// Decalaration:	This class is based on MSMG 2.0, The writing message mode is MQMSG_DELIVERY_EXPRESS.		//
//					so, the message stays in memory until it  be Readed out.									//
//					You must Initialize Com Libarary before use this class.										//
// Example:			 																							//
//																												//
//	TestApp::InitInstance()																						//
//	{																											//				
//		::CoInitialize(NULL);																					//
//	}																											//
//	TestApp::ExitInstance()																						//
//	{																											//				
//		CoUninitialize();																						//
//	}																											//
//	void ReadWrite()																							//			
//	{																											//	
//		CQueue  queue;																							//	
//		if(!queue.InitInstance("DIRECT=os:Airlink\\Private$\\TestWrite",										//
//							   "DIRECT=OS:Airlink\\Private$\\TestRead"))	{									//
//			return;																								//
//		}																										//	
//																												//
//		_bstr_t lable;																							//
//		_variant_t body;																						//
//		queue.ReadQueue(lable, body, priority, 100));															//	
//		queue.WriteQueue(lable, body, priority);																//
//	}																											//
//																												//	
////////////////////////////////////////////////////////////////////////////////////////////////////////////////*/

#if !defined(AFX_COMQUEUE_H__E3F9FE80_E269_4EFA_B3F0_B92272B36CD6__INCLUDED_)
#define AFX_COMQUEUE_H__E3F9FE80_E269_4EFA_B3F0_B92272B36CD6__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#import "C:\WINNT\system32\mqoa.dll" no_namespace

class AFX_EXT_CLASS CQueue
{
public:
	CQueue();
	virtual ~CQueue();

	//用途:初始化队列
	//in:	strWrtieQueuePath  -- 写操作队列的路径
	//in:	strReadQueuePath   -- 读操作队列的路径
	//in:	nWRMode -- 读写模式。1 -- 只读队列, 2 -- 只写队列, 3 -- 读写队列(Default)
	BOOL InitInstance(CString strWrtieQueuePath/*Write-in*/, CString strReadQueuePath/*Read-out*/, int nWRMode = 3);

	//用途:读队列
	//in :	lTimeout   -- 读操作延时。0 - 阻塞方式, x - 超时(ms)
	//out:	bstrLable  -- 读出标签
	//out:	varBody    -- 读出正文
	//out:	lPriority  -- 读出优先级
	BOOL ReadQueue(CString &strLable, _variant_t &varBody, long &lPriority, long lTimeout);

	//用途:写队列
	//in:	bstrLable  -- 写入标签
	//in:	varBody    -- 写入正文
	//in:	lPriority  -- 写入优先级	
	BOOL WriteQueue(const CString  &strLable, const _variant_t &varBody, const long &lPriority);

	//用途:读队列
	//in :	lTimeout   -- 读操作延时。0 - 阻塞方式, x - 超时(ms)
	//out:	strLable  -- 读出标签
	//out:	strBody    -- 读出正文
	//out:	lPriority  -- 读出优先级
	BOOL ReadQueue(CString &strLable, CString &strBody, long &lPriority, long lTimeOut);

	//用途:写队列
	//in:	strLable  -- 写入标签
	//in:	strBody    -- 写入正文
	//in:	lPriority  -- 写入优先级	
	BOOL WriteQueue(const CString &strLable, const CString &strBody, const long &lPriority);

	//用途:读队列
	//in :	lTimeout   -- 读操作延时。0 - 阻塞方式, x - 超时(ms)
	//out:	strLable   -- 读出标签
	//out:	strBody    -- 读出正文
	//out:	lPriority  -- 读出优先级
	//out:	otmSenTime -- 读出发送时间
	BOOL ReadQueue(CString &strLable, CString &strBody, long &lPriority, COleDateTime &otmSenTime, long lTimeOut);

	//用途:读队列
	//in :	lTimeout   -- 读操作延时。0 - 阻塞方式, x - 超时(ms)
	//out:	strLable   -- 读出标签
	//out:	strBody    -- 读出正文
	//out:	lPriority  -- 读出优先级
	//out:	otmSenTime -- 读出发送时间
	BOOL ReadQueue(CString &strLable, _variant_t &varBody, long &lPriority, COleDateTime &otmSenTime, long lTimeOut);

	//用途:创建队列
	//in :	strFormatName   -- 队列格式名字。eg: "Direct=OS:Airlink\\Private$\\Test"
	//BOOL CreateQueue(CString strFormatName);

	//用途:删除队列
	//in :	strFormatName   -- 队列格式名字。eg: "Direct=OS:Airlink\\Private$\\Test"
	//BOOL DeleteQueue(CString strFormatName);
private:
	IMSMQQueuePtr m_QueueRead;//读队列对象指针
	IMSMQQueuePtr m_QueueWrite;//写队列对象指针
	IMSMQQueueInfoPtr m_QueueReadInfo;
	IMSMQQueueInfoPtr m_QueueWriteInfo;
};
#endif // !defined(AFX_COMQUEUE_H__E3F9FE80_E269_4EFA_B3F0_B92272B36CD6__INCLUDED_)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -