Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Het volgende IDL-voorbeeldbestand definieert een typische pijpstructuur en een asynchrone RPC-functie met pijpen.
Voorbeeld
//file: Xasyncpipe.idl:
//
interface IMyAsyncPipe
{
//define the pipe type
typedef pipe int aysnc_intpipe ;
//then use it as a parameter
int MyAsyncPipe(
handle_t hBinding,
[in] a,
[in] ASYNC_INTPIPE *inpipe,
[out] ASYNC_INTPIPE *outpipe,
[out] int *b) ;
};
//other function declarations
//other interface definitions
//end Xasyncpipe.idl
//file:Xasyncpipe.acf:
//file: Xasyncpipe.acf:
interface IMyAsyncPipe
{
[async] MyAsyncPipe () ;
} ;
//
//end Xasyncpipe.acf
In het volgende codefragment ziet u een typische definitie van een pijpstructuur. Het bevat aanwijzers voor het pushen en ophalen van procedures, een buffer voor het opslaan van de pipegegevens en een statusvariabele om de procedures te coƶrdineren:
//
typedef struct ASYNC_MYPIPE
{
RPC_STATUS (__RPC_FAR * pull) (
char __RPC_FAR * state,
small __RPC_FAR * buf,
unsigned long esize,
unsigned long __RPC_FAR * ecount );
RPC_STATUS (__RPC_FAR * push) (
char __RPC_FAR * state,
small __RPC_FAR * buf,
unsigned long ecount );
void *Reserved;
char __RPC_FAR * state;
}ASYNC_INTPIPE;