_automated
カテゴリ
構文
_automated: <declarations>
説明
automated メンバの可視性規則は public メンバとほぼ一致します。 automated メンバと public メンバの唯一の違いは、automated セクションで宣言されたメンバ関数とプロパティに対して生成される OLE オートメーション情報だけです。 この OLE オートメーション型情報によって、OLE オートメーション サーバーが作成できるようになります。
- メンバ関数の場合はパラメータと戻り値(ある場合)がすべてオートメーション可能な型である必要があります。 プロパティも同様に、プロパティと配列プロパティ パラメータがオートメーション可能な型である必要があります。 オートメーション可能な型は次のとおりです: Currency、および OleVariant、DelphiInterface、double、int、float、short、String、TDateTime、Variant、unsigned short。 __automated セクションでメンバ関数またはプロパティをオートメーション可能ではない型で宣言すると、コンパイル エラーが発生します。
- メンバ関数の宣言では __fastcall 呼び出し規約を使用する必要があります。
- メンバ関数には virtual が指定できます。
- メンバ関数にはパラメータ リストの閉じかっこの後に __dispid(<int 型定数式>) を追加することができます。
- プロパティの宣言にはアクセス指定子(__dispid、read、write)に限り含めることができます。 他の指定子(index、stored、default、nodefault)は使用できません。
- プロパティのアクセス指定子にはメンバ関数の識別子をリストする必要があります。 データ メンバ識別子は使用できません。
- プロパティのアクセス メンバ関数では __fastcall 呼び出し規約を使用する必要があります。
- プロパティのオーバーライド(プロパティの型を含まないプロパティ宣言)は使用できません。
例
class Test : public System::TObject
{
__automated:
int __fastcall getI(void) __dispid(4);
__property int I = {read=getI, dispid=3};
};