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 データ メンバー |
複数回の適用 |
X |
必要な属性 |
( クラス または struct に適用される場合) コクラス |
無効な属性 |
なし |
詳細については属性コンテキスト を参照してください。