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 ) |
잘못된 특성 | None |
자세한 내용은 특성 컨텍스트를 참조하세요.