ignorer l’attribut

L’attribut [ignore] désigne qu’un pointeur contenu dans une structure ou une union et l’objet indiqué par le pointeur ne sont pas transmis. L’attribut [ignore] est limité aux membres de pointeurs de structures ou d’unions.

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

Paramètres

pointeur-member-type

Spécifie le type du membre pointeur de la structure ou de l’union.

pointer-name

Spécifie le nom du membre de pointeur qui doit être ignoré pendant le marshaling.

Notes

La valeur d’un membre de structure avec l’attribut [ignore] n’est pas définie à la destination. Un paramètre [in] n’est pas défini sur l’ordinateur distant. Un paramètre [out] n’est pas défini sur l’ordinateur local.

L’attribut [ignore] vous permet d’empêcher la transmission de données. Cela est utile dans des situations telles qu’une liste doublement liée. L’exemple suivant inclut une liste doublement liée qui introduit l’alias de données :

/* 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’alias se produit dans l’exemple précédent, car la même zone de mémoire est disponible à partir de deux pointeurs différents dans la fonction p et p-next-previous>>.

Notez que [ignore] ne peut pas être utilisé comme attribut de type.

Exemples

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;

Voir aussi

Attributs de tableau et de Sized-Pointer

Tableaux

Tableaux et pointeurs

Dans

out

Ptr

Ref

Unique