※インターフェース定義
・下記の場合、インターフェースを定義する
・・バイナリレベル(EXE、DLL)で実装を分ける場合
ドライバやスキン、マシンやVSTプラグインなど。
・インターフェースはCOM互換ではない。オートメーションインターフェースを外部に公開するときは別途ラッパクラスを用意する。
・リソースの解放が必要なインターフェースは必ずiDisposableインターフェースを継承する。iDisposableインターフェースは下記のとおり。
namespace model {・iDisposable::Release()でオブジェクトを破棄させるため、実装クラスではデストラクタをprivate定義し直接deleteさせないようにする。
/// 破棄可能インターフェース
interface iDisposable
{
void Release();///< オブジェクト破棄
};
}
・iDisposable::Release()を呼ぶタイミングはスマートポインタクラスに任せる
・プロパティメソッドはdeclspec(property(get=..,put=..))を定義する