Expand Minimize


The PrivLevel property of the MSMQMessage object specifies privacy level of the message.

Data type:


Run-time access:


Property PrivLevel As Long

Property Value

PrivLevel can be set to one of the following values:


(Not supported for applications compiled with the header and library files for MSMQ 3.0.) Privacy is enforced, and 40-bit end-to-end encryption of the message body is used.


(Introduced in MSMQ 2.0.) Privacy is enforced, and 40-bit end-to-end encryption of the message body is used.


(Introduced in MSMQ 2.0.) Privacy is enforced, and 128-bit end-to-end encryption of the message body is used.


The default. The message is a non-private (clear) message.


The MSMQMessage.PrivLevel is used to request encryption by Message Queuing. For information on how Message Queuing encrypts messages, see Message Encryption.

The sending application can request encryption by setting the PrivLevel property to MQMSG_PRIV_LEVEL_BODY, MQMSG_PRIV_LEVEL_BODY_BASE, or MQMSG_PRIV_LEVEL_BODY_ENHANCED. When one of these settings is used, the body of the message is encrypted with the algorithm specified by MSMQMessage.EncryptAlgorithm.

MSMQ 2.0 applications can use MQMSG_PRIV_LEVEL_BODY or MQMSG_PRIV_LEVEL_BODY_BASE to request 40-bit encryption, or they can use MQMSG_PRIV_LEVEL_BODY_ENHANCED to request 128-bit encryption. When requesting encryption, MSMQ 3.0 applications can use only MQMSG_PRIV_LEVEL_BODY_BASE (40-bit encryption) or MQMSG_PRIV_LEVEL_BODY_ENHANCED (128-bit encryption).

It is recommended that you use 128-bit encryption, which provides strong encoding. Attackers can decrypt data encoded with 40-bit encryption relatively easily.

Messages can also be encrypted by applications. In this case the PrivLevel property must be set as follows.

  • If your application is encrypting the message body with a 40-bit key, ignore the PrivLevel property when sending messages.

  • If your application is encrypting the message body with a 128-bit key, set PrivLevel to MQMSG_PRIV_LEVEL_BODY_ENHANCED and include it with the message.

For information on application encryption, see Application-Encrypted Messages.

Equivalent API Function Property

With API function calls, the equivalent property is PROPID_M_PRIV_LEVEL.

Example Code

The following examples are included in Using Message Queuing.

For an example of See

Requesting encryption when sending messages

Visual Basic Code Example: Requesting Encryption

Setting the privacy level of a queue to enforce encryption when creating a queue

Visual Basic Code Example: Enforcing Encryption


Windows NT/2000/XP: Included in Windows NT 4.0 SP3 and later.

Windows 95/98/Me: Included in Windows 95 and later.

Header: Declared in Mqoai.h.

Library: Use Mqoa.lib.

See Also

© 2015 Microsoft