Получение списка частных очередей для компьютьера.
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;
}