defaultvtable 属性
[defaultvtable] 属性は、インターフェイスを既定の Vtable インターフェイスとして定義します。
[
coclass-attribute-list,
defaultvtable
]
coclass coclass-name
{
coclass-interface-list
}
-
coclass-attribute-list
-
coclass-name
-
クラスの名前。
-
coclass-interface-list
-
クラスのインターフェイスの一覧。
既定の Vtable インターフェイスをディスパッチインターフェイスにすることはできません。デュアルまたは Vtable またはインターフェイスである必要があります。 インターフェイスがデュアル インターフェイスの場合、シンクは Vtable を介してイベントを受信すると想定できます。
クラスには、例に示すように、既定のソース インターフェイスと既定の Vtable ソース インターフェイスの両方を指定できます。 この場合、アドバイス シンクでは、ディスパッチ イベントを受信するために IID_IDISPATCH を使用し、インターフェイス識別子を使用して Vtable イベントを受信する必要があります。
IMPLTYPEFLAG_FDEFAULTVTABLEの存在。
[
dual,
uuid(12345678-1234-1234-1234-123456789ABC),
restricted
]
interface IForm: IDispatch
{
[propget] HRESULT Backcolor([out, retval] long *Value);
[propput] HRESULT Backcolor([in] long Value);
[propget] HRESULT Name([out, retval] BSTR *Value);
[propput] HRESULT Name([in] BSTR Value);}
[
dual,
uuid(1e196b20-1f3c-1069-996b-00dd010fe676),
restricted
]
interface IFormEvents: IDispatch
{
HRESULT Click();
HRESULT Resize();}
[
uuid(1e123456-1f3c-1069-996b-123456789ABC)
]
coclass Form
{
[default] interface IForm;
[default, defaultvtable, source] interface IFormEvents;
}
}