message

[messageoptional-attribute-list] void function-name(
    [inoptional-parameter-attributesparam-name,. . .);

optional-attribute-list
Other attributes that apply to the function. Only the local, nocode, code, and optimize attributes may be used with the message attribute.

Example

[message] void DisplayString(
[in, string] char * p1);
 
[message] void VarDataArray(
                [in, size_is(iSize)] ARRAY_TYPE lpMyArray,
                [in] int iSize,
                [in] unsigned long ulChksum);
 

Remarks

The message attribute indicates that the remote procedure call is to be treated as a "message" from the client to the server. As such, the call is delivered asynchronously over the ncadg_mq message-queuing transport. You can indicate synchronous-mode messaging by specifying the ncadg_mq transport protocol without using the message attribute.

By specifying asynchronous-mode messaging, the message attribute allows the client to make the remote procedure call and return immediately, even when the server application is not responding. If the target server is not available, the call will be stored until the server becomes available.

In addition, asynchronous-mode messaging lets you control message-queue properties of the receive queue for the server. See RpcBindingSetOption for more information on selecting quality of service, call priority, and call lifetime for the server process.

The following restrictions also apply to the message attribute:

See Also

RPC Message Queuing, RpcBindingSetOption, RpcBindingInqOption, ncadg_mq