ignore 属性

[ignore] 属性指定不传输结构或联合中包含的指针以及由指针指示的对象。 [ignore] 属性限制为结构或联合的指针成员。

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

parameters

pointer-member-type

指定结构或联合的指针成员的类型。

pointer-name

指定要在封送处理期间忽略的指针成员的名称。

备注

具有 [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属性

阵 列

数组和指针

in

out

Ptr

裁判

unique