다음을 통해 공유


async_uuid 특성

[async_uuid] 인터페이스 특성은 MIDL 컴파일러에 COM 인터페이스의 동기 및 비동기 버전을 모두 정의하도록 지시합니다.

[ 
    object, 
    uuid(string-uuid1), 
    async_uuid(string-uuid2)[ [, interface-attribute-list] 
]
interface interface-name : base-interface
{
    interface-definition
}

매개 변수

string-uuid1

인터페이스의 동기 버전을 식별하는 Uuidgen 유틸리티에서 생성된 UUID 문자열입니다.

string-uuid2

인터페이스의 비동기 버전을 식별하는 Uuidgen 유틸리티에서 생성된 UUID 문자열입니다.

interface-attribute-list

인터페이스 전체에 적용되는 기타 특성입니다. COM 인터페이스에서는 [version] 특성을 사용할 수 없습니다.

interface-name

인터페이스의 이름입니다.

base-interface

이 인터페이스가 파생되는 인터페이스입니다. 기본 인터페이스는 IUnknown 또는 IUnknown에서 직접 또는 간접적으로 파생되는 비동기 인터페이스여야 합니다.

interface-definition

인터페이스의 정의를 형성하는 IDL 문을 지정합니다.

설명

이 특성을 사용하려면 Windows 2000 이상 버전의 Windows가 필요합니다.

COM 인터페이스(즉, [object] 특성이 있는 인터페이스)에 [async_uuid] 특성을 적용하면 MIDL 컴파일러는 기존의 동기 버전 외에도 인터페이스의 비동기 정의를 생성합니다. 비동기 인터페이스는 동기 인터페이스와 이름이 같지만 "비동기" 접두사를 사용합니다. IID(인터페이스 식별자)는 [async_uuid] 특성에 대한 매개 변수로 지정된 UUID입니다.

비동기 인터페이스의 경우 MIDL은 각 메서드를 별도의 beginfinish 메서드로 분할합니다. begin 메서드는 "Begin_" 접두사를 가진 동기 메서드 이름을 가지며 동기 메서드의 모든 [in] 매개 변수를 포함합니다. finish 메서드는 "Finish_" 접두사를 가진 동기 메서드의 이름을 가지며 동기 메서드의 모든 [out] 매개 변수를 포함합니다. 동기 메서드에 [in, out] 매개 변수가 있는 경우 시작마침 비동기 메서드 모두에 포함됩니다.

비동기 인터페이스 메서드에 [call_as] 특성이 있는 경우 MIDL은 beginfinish 메서드에 대한 선언을 생성합니다. 두 메서드를 모두 구현해야 합니다.

각 비동기 인터페이스는 동기 인터페이스의 한정자이므로 별도의 상속 그래프가 없습니다. 즉, IUnknown 이외의 비동기 인터페이스에서 동기 인터페이스를 정의할 수 없습니다. 또한 동기 인터페이스는 비동기 인터페이스에서 상속할 수 없습니다. 둘 중 하나를 시도하면 MIDL 컴파일러에서 오류 메시지를 실행합니다.

[
    object, 
    uuid(0c733a30-2a1c-11ce-ade5-00aa0044773d),
    async_uuid(1c733a30-2a1c-11ce-ade5-00aa0044773d),
    pointer_default(unique)
]
interface IMyInterface : IUnknown
{
    /* Interface definition goes here*/
}

참고 항목

COM 인터페이스 정의

IDL(인터페이스 정의) 파일

call_as

iid_is

in

로컬

object

out

버전