특성 무시
[ignore] 특성은 구조체 또는 공용 구조체에 포함된 포인터와 포인터로 표시된 개체가 전송되지 않도록 지정합니다. [무시] 특성은 구조체 또는 공용 구조체의 포인터 멤버로 제한됩니다.
[ignore] pointer-member-type pointer-name;
-
pointer-member-type
-
구조체 또는 공용 구조체의 포인터 멤버 형식을 지정합니다.
-
pointer-name
-
마샬링하는 동안 무시될 포인터 멤버의 이름을 지정합니다.
[ignore] 특성이 있는 구조체 멤버의 값은 대상에서 정의되지 않습니다. [in] 매개 변수는 원격 컴퓨터에서 정의되지 않습니다. [out] 매개 변수는 로컬 컴퓨터에서 정의되지 않습니다.
[무시] 특성을 사용하면 데이터 전송을 방지할 수 있습니다. 이는 이중 연결 목록과 같은 상황에서 유용합니다. 다음 예제에는 데이터 별칭을 도입하는 이중 연결 목록이 포함되어 있습니다.
/* 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>> 함수의 서로 다른 두 포인터에서 동일한 메모리 영역을 사용할 수 있기 때문에 별 칭 지정이 발생합니다.
[무시]는 형식 특성으로 사용할 수 없습니다.
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;