default(C++)

coclass 내에 정의된 custom 또는 dispinterface가 기본 프로그래밍 인터페이스를 나타낸다는 것을 의미합니다.

구문

[ default(interface1, interface2) ]

매개 변수

interface1
특성으로 정의된 default 클래스를 기반으로 개체를 만드는 스크립팅 환경에서 사용할 수 있는 기본 인터페이스입니다.

지정된 기본 인터페이스가 없는 경우 처음에 발생하는 비 소스 인터페이스가 기본값으로 사용됩니다.

interface2
(선택 사항) 기본 소스 인터페이스입니다. 이 인터페이스는 source 특성을 사용하여 지정해야 합니다.

지정된 기본 소스 인터페이스가 없는 경우 첫 번째 소스 인터페이스가 기본값으로 사용됩니다.

설명

default C++ 특성에는 기본 MIDL 특성과 동일한 기능이 있습니다. default 이 특성은 사례 특성에도 사용됩니다.

예시

다음 코드에서는 coclass의 정의에서 기본 프로그래밍 인터페이스로 지정 ICustomDispatch 하는 방법을 default 보여 있습니다.

// cpp_attr_ref_default.cpp
// compile with: /LD
#include "windows.h"
[module(name="MyLibrary")];

[object, uuid("9E66A290-4365-11D2-A997-00C04FA37DDB")]
__interface ICustom {
   HRESULT Custom([in] long l, [out, retval] long *pLong);
};

[dual, uuid("9E66A291-4365-11D2-A997-00C04FA37DDB")]
__interface IDual {
   HRESULT Dual([in] long l, [out, retval] long *pLong);
};

[object, uuid("9E66A293-4365-11D2-A997-00C04FA37DDB")]
__interface ICustomDispatch : public IDispatch {
   HRESULT Dispatch([in] long l, [out, retval] long *pLong);
};

[   coclass, default(ICustomDispatch), source(IDual), uuid("9E66A294-4365-11D2-A997-00C04FA37DDB")
]
class CClass : public ICustom, public IDual, public ICustomDispatch {
   HRESULT Custom(long l, long *pLong) { return(S_OK); }
   HRESULT Dual(long l, long *pLong) { return(S_OK); }
   HRESULT Dispatch(long l, long *pLong) { return(S_OK); }
};

int main() {
#if 0 // Can't instantiate without implementations of IUnknown/IDispatch
   CClass *pClass = new CClass;

   long llong;

   pClass->custom(1, &llong);
   pClass->dual(1, &llong);
   pClass->dispinterface(1, &llong);
   pClass->dispatch(1, &llong);

   delete pClass;
#endif
   return(0);
}

원본 특성에는 사용 방법의 예도 있습니다default.

요구 사항

특성 컨텍스트
적용 대상: class, struct데이터 멤버
반복 가능 아니요
필수 특성 coclass (적용되는 class 경우 또는 struct)
잘못된 특성 없음

자세한 내용은 특성 컨텍스트를 참조하세요.

참고 항목

IDL 특성
클래스 특성
coclass