Share via


사용자 지정 특성을 적용하여 관리되지 않는 COM Get/Set 속성에 태그 지정

관리되지 않는 COM 인터페이스는 Item 메서드를 통해 열거형에 액세스하는 열거 가능한 개체일 수 있습니다. .NET Framework에서 이 메서드는 .Item으로 지정됩니다. 이 메서드에 제대로 액세스하기 위한 유일한 방법은 IDL 파일의 특성을 통해 항목에 propget 태그를 지정하는 것이지만, 이렇게 하면 형식 라이브러리에 있는 해당 함수의 시그너처가 변경됩니다. 이 custom 특성을 사용하면 메서드를 가져올 때 메서드에 propget 태그를 지정할 수 있습니다. custom 특성의 구문은 다음과 같습니다.

GUID = 2941ff83-88d8-4f73-b6a9-bdf8712d000d // for propget

또한 다른 custom 특성을 사용하여 메서드를 가져올 때 메서드에 propput 태그를 지정할 수 있습니다. 이 custom 특성의 구문을 다음과 같습니다.

GUID = 29533527-3683-4364-abc0-db1add822fa2 // for propput

custom 특성은 메서드에만 적용할 수 있습니다. 또한 다음 규칙이 적용됩니다.

  • 특성은 한 번에 하나씩만 적용할 수 있습니다. 여러 특성을 적용하면 첫 번째 특성을 제외한 나머지는 모두 무시됩니다.

  • propget의 경우 custom 특성은 반환 값이 없는 모든 메서드 시그너처를 무시합니다.

  • propput의 경우 custom 특성은 입력 매개 변수가 없는 모든 메서드 시그너처를 무시하며(시그너처는 [in]이나 [out]으로 표시될 수 있지만 [out,retval]로 표시될 수는 없음) 반환 값이 있는 시그너처도 모두 무시합니다.

  • propgetpropput 모두에 대해 custom 특성은 id(-4) 또는 사용자 지정 dispid(-4)와 함께 사용된 경우 GetEnumerator 메서드를 무시합니다.

  • Tlbimp.exe를 사용하여 형식 라이브러리를 가져올 때는 디스패치 전용 인터페이스(dispinterfaces)에 custom 특성을 적용한 후 항상 /transform:dispret 스위치를 사용해야 합니다.

예제

IDL(Interface Definition language)로 작성된 다음 예제에서는 propget 특성의 사용법을 보여 줍니다.

[custom(2941ff83-88d8-4f73-b6a9-bdf8712d000d, ""), id(6)] 
HRESULT cget(int i, [out, retval] short *pVal);

다음 예제에서는 propput 특성의 사용법을 보여 줍니다.

[custom(29533527-3683-4364-abc0-db1add822fa2, ""), id(7)] 
HRESULT cset([in] int i);

참고 항목

참조

TypeLibConverter

ITypeLibConverter

Tlbimp.exe(형식 라이브러리 가져오기)

개념

사용자 지정 특성을 적용하여 IEnumerable 구현

사용자 지정 특성을 적용하여 기본 COM DISPID(디스패치 식별자) 덮어쓰기

형식 라이브러리를 어셈블리로 가져오기