Condividi tramite


ignorare l'attributo

L'attributo [ignore] designa che un puntatore contenuto in una struttura o un'unione e l'oggetto indicato dal puntatore non viene trasmesso. L'attributo [ignora] è limitato ai membri puntatori di strutture o unioni.

[ignore] pointer-member-type pointer-name;

Parametri

puntatore-membro-tipo

Specifica il tipo del membro puntatore della struttura o dell'unione.

puntatore-nome

Specifica il nome del membro del puntatore da ignorare durante il marshalling.

Commenti

Il valore di un membro della struttura con l'attributo [ignore] non è definito nella destinazione. Un parametro [in] non è definito nel computer remoto. Un parametro [out] non è definito nel computer locale.

L'attributo [ignore] consente di impedire la trasmissione dei dati. Questo è utile in situazioni come un elenco a doppio collegamento. L'esempio seguente include un elenco collegato doppio che introduce l'aliasing dei dati:

/* IDL file */ 
typedef struct _DBL_LINK_NODE_TYPE 
{ 
    long value; 
    struct _DBL_LINK_NODE_TYPE * next; 
    struct _DBL_LINK_NODE_TYPE * previous; 
} DBL_LINK_NODE_TYPE; 
 
HRESULT remote_op([in] DBL_LINK_NODE_TYPE * list_head); 
 
/* application */ 
DBL_LINK_NODE_TYPE * p, * q 
 
p = (DBL_LINK_NODE_TYPE *) midl_user_allocate(
        sizeof(DBL_LINK_NODE_TYPE)); 
q = (DBL_LINK_NODE_TYPE *) midl_user_allocate(
        sizeof(DBL_LINK_NODE_TYPE)); 
 
p->next = q;  
q->previous = p; 
p->previous = q->next = NULL; 
.. 
remote_op(p);

L'aliasing si verifica nell'esempio precedente perché la stessa area di memoria è disponibile da due puntatori diversi nella funzione p ep-next-previous>>.

Si noti che [ignora] non può essere usato come attributo di tipo.

Esempi

typedef struct _DBL_LINK_NODE_TYPE 
{ 
    long value; 
    struct _DBL_LINK_NODE_TYPE * next; 
    [ignore] struct _DBL_LINK_NODE_TYPE * previous; 
} DBL_LINK_NODE_TYPE;

Vedere anche

Attributi di matrice e Sized-Pointer

Matrici

Matrici e puntatori

Pollici

Cambio

Ptr

Ref

Unico