ignorar atributo

O atributo [ignore] designa que um ponteiro contido em uma estrutura ou união e o objeto indicado pelo ponteiro não são transmitidos. O atributo [ignore] é restrito a membros ponteiros de estruturas ou uniões.

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

Parâmetros

pointer-member-type

Especifica o tipo do membro ponteiro da estrutura ou união.

pointer-name

Especifica o nome do membro do ponteiro que deve ser ignorado durante o marshaling.

Comentários

O valor de um membro de estrutura com o atributo [ignore] é indefinido no destino. Um parâmetro [in] não é definido no computador remoto. Um parâmetro [out] não é definido no computador local.

O atributo [ignore] permite impedir a transmissão de dados. Isso é útil em situações como uma lista vinculada duas vezes. O exemplo a seguir inclui uma lista vinculada dupla que apresenta o alias de dados:

/* 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);

O alias ocorre no exemplo anterior porque a mesma área de memória está disponível de dois ponteiros diferentes na função p e p-next-previous>>.

Observe que [ignorar] não pode ser usado como um atributo de tipo.

Exemplos

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;

Confira também

Atributos de matriz e Sized-Pointer

Matrizes

Matrizes e ponteiros

Em

out

Ptr

Ref

unique