The priority level of a queue specifies a single base priority for all messages sent to a public queue. By default, the priority level of a queue is 0.
 To retrieve PROPID_Q_BASEPRIORITY
To retrieve PROPID_Q_BASEPRIORITY// Define number of properties to be retrieved.
#define NumberOfProperties 1
// Define property counter.
DWORD PropIdCount = 0;
// Define the MQQUEUPROPS structure.
MQQUEUEPROPS QueueProps;
PROPVARIANT aQueuePropVar[NumberOfProperties];
QUEUEPROPID aQueuePropId[NumberOfProperties];
HRESULT aQueueStatus[NumberOfProperties];
// Define results.
HRESULT hr;
// Define format name buffer
DWORD dwFormatNameBufferLength = 256;
WCHAR szFormatNameBuffer[256];
aQueuePropId[PropIdCount] = PROPID_Q_BASEPRIORITY; //Property ID
aQueuePropVar[PropIdCount].vt = VT_UI2;            //Type indicator
PropIdCount++;
QueueProps.cProp = PropIdCount;           // Number of properties
QueueProps.aPropID = aQueuePropId;        // Ids of properties
QueueProps.aPropVar = aQueuePropVar;      // Values of properties
QueueProps.aStatus = aQueueStatus;        // Error reports
hr = MQPathNameToFormatName(L"machinename\\queuename",
                              szFormatNameBuffer,
                                  &dwFormatNameBufferLength);
if (FAILED(hr))
   {
   fprintf(stderr, "Failed in MQPathNameToFormatName, error = 0x%x\n",hr);
   return -1;
   }hr = MQGetQueueProperties(szFormatNameBuffer, &QueueProps);
if (FAILED(hr))
   {
   fprintf(stderr, "Failed in MQGetQueueProperties, error = 0x%x\n",hr);
   return -1;
   }
 printf("PROPID_Q_BASEPRIORITY is set to ");
printf("%d.\n", aQueuePropVar[0].iVal);
The following example retrieves the PROPID_Q_BASEPRIORITY property for a known queue and then prints the returned value to the screen.
#include <windows.h>
#include <stdio.h>
#include <mq.h>                       // MSMQ header file
int main(int arg, char *argv[])
{
  ///////////////////////////
  //  Define structures.
  ////////////////////////////
  // Define number of properties to be retrieved.
  #define NumberOfProperties 1
  // Define property counter.
  DWORD PropIdCount = 0;
  // Define the MQQUEUPROPS structure.
  MQQUEUEPROPS QueueProps;
  PROPVARIANT aQueuePropVar[NumberOfProperties];
  QUEUEPROPID aQueuePropId[NumberOfProperties];
  HRESULT aQueueStatus[NumberOfProperties];
  
  // Define results.
  HRESULT hr;
  
  // Define format name buffer.
  DWORD dwFormatNameBufferLength = 256;
  WCHAR szFormatNameBuffer[256];
  
  
  ///////////////////////////////////
  // Specify PROPID_Q_BASEPRIORITY.
  ///////////////////////////////////
  
  aQueuePropId[PropIdCount] = PROPID_Q_BASEPRIORITY; // Property ID
  aQueuePropVar[PropIdCount].vt = VT_I2;            // Type indicator
  PropIdCount++;
  
  
  ///////////////////////////////////////////////////////
  // Add additional queue properties here. When adding 
  // properties, increment NumberOfProperties to 
  // reflect total number of properties.
  ///////////////////////////////////////////////////////
  
  
  ////////////////////////////////
  // Set the MQQUEUEPROPS structure.
  /////////////////////////////////
  
  QueueProps.cProp = PropIdCount;           // Number of properties
  QueueProps.aPropID = aQueuePropId;        // Ids of properties
  QueueProps.aPropVar = aQueuePropVar;      // Values of properties
  QueueProps.aStatus = aQueueStatus;        // Error reports
  
  
  ////////////////////////////
  //Get format name of queue.
  ////////////////////////////
 
  hr = MQPathNameToFormatName(L"computername\\queuename",
                              szFormatNameBuffer,
                                  &dwFormatNameBufferLength);
  if (FAILED(hr))
  {
    fprintf(stderr, "Failed in MQPathNameToFormatName, error = 0x%x\n",hr);
  return -1;
  }
 
 
  ////////////////////////////
  // Get queue property.
  ////////////////////////////
  
  hr = MQGetQueueProperties(szFormatNameBuffer, &QueueProps);
  if (FAILED(hr))
  {
    fprintf(stderr, "Failed in MQGetQueueProperties, error = 0x%x\n",hr);
    return -1;
  }
  
  
  //////////////////////////////////////////////
  // Review returned value. This example prints 
  // out the priority level of the queue.
  //////////////////////////////////////////////
  
  printf("PROPID_Q_BASEPRIORITY is set to ");
  printf("%d.\n", aQueuePropVar[0].iVal);
  
  return 0;
 
}