vc操作微软消息队列的方法
来源:优易学  2011-9-23 12:24:59   【优易学:中国教育考试门户网】   资料下载   IT书店

  定义
  IMSMQQueuePtr qDest; // Represents Destination Queue
  IMSMQQueueInfoPtr qInfo; //Represents an open instance of the destination queue
  IMSMQQueueInfoPtr qRead;
  IMSMQMessagePtr qMsg; //Represents the message
  初始化
  qDest = NULL;
  CoInitialize(NULL);
  try{
  qInfo.CreateInstance("MSMQ.MSMQQueueInfo");
  qRead.CreateInstance("MSMQ.MSMQQueueInfo");
  qMsg.CreateInstance("MSMQ.MSMQMessage");
  lpszSystemInfo = tchBuffer;
  GetComputerName(lpszSystemInfo,&cchBuff); // Getting the ComputerName
  m_ServerName=lpszSystemInfo;
  UpdateData(FALSE);
  }
  catch (_com_error)
  {
  MessageBox("Failed in CreateInstance of MSMQQueueInfo","MSMQ QueueInfo",1);
  PostQuitMessage(1);
  ReleaseAll();
  }
  创建消息队列
  try
  {
  // m_ServerName = .\Private$\aaa 创建专有队列
  // m_ServerName = .\aaa 公用队列
  //
  // qInfo->PathName = m_ServerName.AllocSysString(); // Setting the Queue Path
  CString fname;
  fname="DIRECT=OS:";
  fname+=m_ServerName;
  qInfo->PathName = m_ServerName.AllocSysString();
  qInfo->FormatName = fname.AllocSysString();
  qInfo->Label= m_msgLabel.AllocSysString(); // Setting the Queue Label
  ht = qInfo->Create();
  qInfo->Journal=1; // Enabling the Journal Option
  qInfo->Update();
  qInfo->Refresh();
  }
  catch (_com_error e)
  {
  CString str;
  str.Format("%s",e.ErrorMessage());
  MessageBox("Creating a Queue Failed","Create Queue",1);
  //ReleaseAll();
  }

[1] [2] 下一页

责任编辑:小草

文章搜索:
 相关文章
热点资讯
资讯快报
热门课程培训