默认(C++)

指示在或调度接口中定义的自定义 coclass 表示默认可编程接口。

[ default(
   interface1,
   interface2
) ]

参数

  • "
    将可脚本环境创建对象的默认接口基于类定义与 默认 属性。

    如果默认接口未指定,非源接口的第一个匹配项使用作为默认值。

  • interface2(可选)
    默认源接口。 还必须指定与 属性的此接口。

    如果默认源接口未指定,则第一个源接口使用作为默认值。

备注

默认 C++ 特性具有与 默认 MIDL 属性相同。 默认 属性还可以使用与 用例 属性。

示例

下面的代码演示 默认 如何在定义使用指定 ICustomDispatch 的 coclass 为默认可编程接口:

// 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,数据成员

可重复

必需的特性

coclass (当应用于 或 struct)

无效的特性

有关更多信息,请参见 属性上下文

请参见

参考

coclass

其他资源

IDL特性

选件类特性

Attributes Samples