英語で読む

次の方法で共有


ignore 属性

[ignore] 属性は、構造体または共用体に含まれるポインターと、ポインターによって示されるオブジェクトが送信されないことを指定します。 [ignore] 属性は、構造体または共用体のポインター メンバーに制限されます。

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

パラメーター

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>> の 2 つの異なるポインターから同じメモリ領域を使用できるため、エイリアシングが行われます。

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

配列

配列とポインター

インチ

Ptr

参考

unique