次の方法で共有


PROPID_Q_PATHNAME (Compact 2013)

3/26/2014

Required (to create the queue). This property specifies the MSMQ path name of the queue, which includes the following:

  • The name of the computer where messages belonging to the queue are stored
  • An optional PRIVATE$ key word indicating if the queue is private
  • The name of the queue
  • Type Indicator
    VT_LPWSTR
  • PROPVARIANT Field
    pwszVal
  • Property Values
    MSMQ path name.

Remarks

The PROPID_Q_PATHNAME property is the only property required when creating a queue.

To specify the path name of the queue, specify PROPID_Q_PATHNAME in the MQQUEUEPROPS structure and call MQCreateQueue.

An MQ_ERROR_PROPERTY_NOTALLOWED error is returned if an attempt is made to set this property after the queue is created.

When specifying the name of the computer, use its NetBIOS or full DNS name.

The maximum length of the name of the queue is 124 Unicode characters; however, using names longer than 64 Unicode characters can slightly reduce performance.

The following example shows a MSMQ path name for a private queue.

myMachine\Private$\myPrivateQueue

As a shortcut, substitute a period "." for the local computer. Then, myPrivateQueue could be specified on the local computer, as shown:

.\Private$\myPrivateQueue

Private queues are only created on the local computer.

The application must ensure that all queue names on the local computer are unique.

If a queue name exists when MQCreateQueue is called, MSMQ returns an MQ_ERROR_QUEUE_EXISTS error to the application.

To retrieve the MSMQ path name of a queue, specify PROPID_Q_PATHNAMEin the MQQUEUEPROPS structure; then call MQGetQueueProperties and examine its returned value.

When specifying PROPID_Q_PATHNAME in the MQQUEUEPROPS structure, set its type indicator to VT_NULL. This tells MSMQ to allocate the memory needed for the path name.

When you finish using the queue, free the allocated memory with MQFreeMemory.

Examples

The following examples show how PROPID_Q_PATHNAME is specified in the MQQUEUEPROPS structure for setting and retrieving the path name of the queue. When retrieving the path name of the queue, the type indicator is set to VT_NULL.

To set the path name of a queue

LPWSTR wszPathName = L".\\private$\\TestQueue";
aPropID[i] = PROPID_Q_PATHNAME;             // Property identifier
aVariant[i].vt = VT_LPWSTR;                 // Type indicator
aVariant[i].pwszVal = wszPathName;          // Pathname of queue

To retrieve the path name of a queue

aPropID[i] = PROPID_Q_PATHNAME;             // Property identifier
aVariant[i].vt = VT_NULL;                   // Type indicator
i++;

Note

OS versions prior to 2.12 require the MSMQ add-on pack.

Requirements

Header

mq.h

See Also

Reference

MSMQ Properties
MQCreateQueue
MQFreeMemory
MQGetQueueProperties
MQQUEUEPROPS