預設值 (C++)
指示自訂或分配介面所定義的 coclass 代表預設的可程式化介面。
[ default(
interface1,
interface2
) ]
參數
顯示 interface1 所
以定義類別為基礎的預設介面將會作用於建立物件的指令碼環境的預設屬性。如果未不指定任何的預設介面,則會將 nonsource 介面的第一個項目作為預設值。
interface2(可省略)
預設的來源介面。 您也必須指定此介面與來源屬性。如果未不指定任何預設的來源介面,則會將第一個來源介面作為預設值。
備註
預設 C++ 屬性具有相同的功能,為 預設 MIDL 屬性。 預設 屬性也會搭配 案例屬性。
範例
下列程式碼說明如何預設 coclass 的定義上用來指定 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,資料成員 |
可重複 |
否 |
必要的屬性 |
coclass (用於類別或struct) |
無效的屬性 |
None |
如需詳細資訊,請參閱屬性內容。