nonextensible 属性
[nonextensible] 属性は、IDispatch 実装にインターフェイスの説明に記載されているプロパティとメソッドのみが含まれており、実行時に追加のメンバーで拡張できないことを指定します。 (既定では、オートメーションでは、インターフェイスが実行時にメンバーを追加できるものとします。つまり、拡張可能であると想定しています)。
[
uuid(uuid-number),
nonextensible
[, optional-attribute-list]
]
interface | dispinterface interface-name
{
interface-definition
}
-
uuid-number
-
インターフェイスの汎用一意の識別番号を指定 します。
-
optional-attribute-list
-
0 個以上の MIDL インターフェイス属性のリストを指定します。
-
interface-name
-
インターフェイスまたはディスパッチインターフェイスの名前を指定します。
-
interface-definition
-
インターフェイスまたはディスパッチインターフェイスの定義を形成する IDL ステートメントを指定します。
[nonextensible] 属性は、インターフェイスまたはディスパッチインターフェイスに適用できます。 ただし、インターフェイスには [dual] 属性と [oleautomation] 属性も必要です。
TYPEFLAG_FNONEXTENSIBLE
library Hello
{
[
uuid(12345678-1234-1234-1234-123456789ABC),
helpstring("A helpful description."),
oleautomation,
dual,
nonextensible
]
interface IHello : IDispatch
{
// Interface definition statements.
}
}