default (C++)
Указывает, что пользовательская или диспетчерский интерфейс, определенные в компонентном классе представляют по умолчанию интерфейса программирования.
[ default(
interface1,
interface2
) ]
Параметры
interface1
По умолчанию интерфейс, который будет сделан доступным в средах создания скриптов, которые создают объект на основе указанного в классе значение по умолчанию атрибут.Если интерфейс по умолчанию не указан, то первое вхождение интерфейса nonsource используется в качестве значения по умолчанию.
interface2(необязательно)
По умолчанию интерфейс источника. Необходимо также определить этот интерфейс с источник атрибут.Если интерфейс по умолчанию источника не указан, то первый интерфейс источника используется в качестве значения по умолчанию.
Заметки
значение по умолчанию Атрибут C++ имеет ту же функциональность, что и значение по умолчанию атрибут MIDL. значение по умолчанию атрибут также используется с case атрибут.
Пример
В следующем примере кода демонстрируется значение по умолчанию используется в определении определяемого компонентного класса ICustomDispatch по умолчанию в качестве интерфейса программирования:
// 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);
}
источник атрибут также содержит пример использования значение по умолчанию.
Требования
Контекст атрибута
Применение |
класс" structэлемент данных |
Repeatable |
Нет |
Обязательные атрибуты |
CoClass (при применении к класс OR struct) |
Недопустимые атрибуты |
None |
Дополнительные сведения см. в разделе Контексты атрибута.