Прочитать на английском

Поделиться через


игнорировать атрибут

Атрибут [ignore] указывает, что указатель, содержащийся в структуре или объединении, и объект, указанный указателем, не передается. Атрибут [ignore] ограничен элементами структур или объединений указателя.

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

Параметры

тип pointer-member

Указывает тип элемента указателя структуры или объединения.

указатель-имя

Указывает имя элемента указателя, который должен быть проигнорирован во время маршалинга.

Remarks

Значение элемента структуры с атрибутом [ignore] не определено в назначении. Параметр [in] не определен на удаленном компьютере. Параметр [out] не определен на локальном компьютере.

Атрибут [ignore] позволяет предотвратить передачу данных. Это полезно в таких ситуациях, как двойной список. В следующем примере содержится список с двойным связыванием, в который вводится псевдоним данных:

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

Псевдонимы происходят в предыдущем примере, так как та же область памяти доступна из двух разных указателей в функции p и p-next-previous>>.

Обратите внимание, что [ignore] нельзя использовать в качестве атрибута типа.

Примеры

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;

См. также раздел

Атрибуты массива и Sized-Pointer

Массивы

Массивы и указатели

В

out

ptr

Ref

Уникальный