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 >>中的兩個不同的指標可以使用相同的記憶體區域。
請注意 ,[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;