attributo message
L'attributo [message] indica che la chiamata alla procedura remota deve essere considerata come un messaggio dal client al server.
[message, optional-attribute-list] void function-name(
[in, optional-parameter-attributes] param-name,. . .);
-
facoltativo-attributo-list
-
Altri attributi che si applicano alla funzione. Solo gli attributi [local],[nocode], [code]e [optimize] possono essere usati con l'attributo [message] .
-
nome funzione
-
Nome della funzione come definito nel file IDL.
-
attributi facoltativi dei parametri
-
Zero o più attributi MIDL che verranno applicati al parametro.
-
param-name
-
Nome del parametro definito nel file IDL.
Poiché i messaggi dal client, le chiamate di procedura remota con l'attributo [message] vengono recapitate al server in modo asincrono sul trasporto di accodamento messaggi ncadg_mq. È possibile indicare la messaggistica in modalità sincrona specificando il protocollo di trasporto ncadg_mq senza usare l'attributo [message] .
Specificando la messaggistica in modalità asincrona, l'attributo [message] consente al client di effettuare la chiamata alla procedura remota e restituire immediatamente, anche quando l'applicazione server non risponde. Se il server di destinazione non è disponibile, la chiamata verrà archiviata finché il server non sarà disponibile.
Inoltre, la messaggistica in modalità asincrona consente di controllare le proprietà della coda di messaggi della coda di ricezione per il server. Per altre informazioni sulla selezione della qualità del servizio, della priorità delle chiamate e della durata delle chiamate per il processo del server, vedere RpcBindingSetOption .
Le restrizioni seguenti si applicano anche all'attributo [message] :
- L'accodamento messaggi Microsoft deve essere implementato nei sistemi client e server e i sistemi devono essere visibili tra loro, come determinato dall'ambito dell'installazione della coda di messaggi.
- L'associazione deve usare endpoint noti e il protocollo di trasporto ncadg_mq .
- La funzione non può contenere parametri di output o un tipo restituito diverso da void. Si noti che la seconda restrizione rende l'attributo [message] non adatto per i metodi di interfaccia COM (oggetto), in questo momento. La versione successiva di MIDL consentirà alle funzioni [message] di restituire error_status_t o HRESULT.
- Qualsiasi interfaccia contenente almeno una chiamata [message] deve essere registrata chiamando RpcServerRegisterIf o RpcServerRegisterIfEx prima di chiamare RpcServerUseProtseqEpEx(ncadg_mq).. In caso contrario, le chiamate in attesa nella coda per il server verranno lette prima della registrazione dell'interfaccia e le chiamate avranno esito negativo.
[message] void DisplayString(
[in, string] char * p1);
[message] void VarDataArray(
[in, size_is(iSize)] ARRAY_TYPE lpMyArray,
[in] int iSize,
[in] unsigned long ulChksum);