Получение списка частных очередей для компьютьера.
BOOL CMQMsgDlg::LoadPrivateQueues
  (LPTSTR szCompName)
{
BOOL			bRet	= FALSE;
 	QUEUEPROPID		qPropId[1];
 	MQPROPVARIANT	mqPropVar[1];
 	MQMGMTPROPS		mqProps;
	LPWSTR			wszCompName;
	LPTSTR			szQueueName;
	DWORD			i;
	if( AnsiToUnicode( szCompName,&wszCompName ) )
	{
		qPropId[0] = PROPID_MGMT_MSMQ_PRIVATEQ;
		mqPropVar[0].vt = VT_NULL;
		mqProps.cProp = 1;
		mqProps.aPropID = qPropId;
		mqProps.aPropVar = mqPropVar;
		if( MQMgmtGetInfo( wszCompName,L»MACHINE»,&mqProps ) == MQ_OK )
		{
			for( i = 0; i < mqPropVar[0].calpwstr.cElems; i++ )
			{
				if( UnicodeToAnsi
( mqPropVar[0].calpwstr.pElems[i],&szQueueName ) )
				{
					hItem = m_ctrlTreeDomain.InsertItem
( szQueueName,hParentItem );
					if( hItem != NULL )
					m_ctrlTreeDomain.SetItemData
( hItem,ITEM_ID_PRIVATE );
					delete szQueueName;
				}
				MQFreeMemory( mqPropVar[0].calpwstr.pElems[i] );
			}
		}
		delete wszCompName;
	}
	return bRet;
}

Поделитесь материалом с коллегами и друзьями