前のページ次のページ上に戻るホーム SophiaFramework UNIVERSE 5.3
SFBBase
IBase インターフェースのラッパークラスです。
#include <SFBBase.h.hpp>
class SFBBase;
SFMTYPEDEFWRAPPER(SFBBase)

継承図

SFBBase クラスの継承図

バージョン

BREW 2.0 BREW 2.1 BREW 3.1 BREW 4.0

参照

BREW API IBase

メンバ

プロテクト関数
static
SFBBaseSmp
FactoryByCreate( AEECLSID id , SFCErrorPtr exception = null )
指定したクラス ID のインターフェースのインスタンスを生成します。
static
SFBBaseSmp
FactoryByQuery( SFBQuerySmpConstRef query , AEECLSID id , SFCErrorPtr exception = null )
指定したクラス ID のインターフェースのインスタンスを指定した SFBQuery インスタンスを使用して生成します。

SFBBase::FactoryByCreate
指定したクラス ID のインターフェースのインスタンスを生成します。
[ protected, static ]
SFBBaseSmp FactoryByCreate(
    AEECLSID id                    // クラス ID
    SFCErrorPtr exception = null   // エラー値
);

解説

ISHELL_CreateInstance 関数でインスタンスを生成するインターフェースのラッパークラスのインスタンスを生成します。

使用例

SFBHash::NewInstance を実装するときに使用している例です。

// SFBHash::NewInstance 関数の実装
#include <SFBWrapper/SFBHash.h.hpp>
/*public static */SFBHashSmp SFBHash::NewInstance(AEECLSID id, SFCErrorPtr exception)
{
    // FactoryByCreate 関数を使用して NewInstance 関数を実装する
    // static_pointer_cast マクロでダウンキャストする
    return static_pointer_cast<SFBHash>(FactoryByCreate(id, exception));
}// SFBHash::NewInstance //

参照

SFBBase::FactoryByQuery


SFBBase::FactoryByQuery
指定したクラス ID のインターフェースのインスタンスを指定した SFBQuery インスタンスを使用して生成します。
[ protected, static ]
SFBBaseSmp FactoryByQuery(
    SFBQuerySmpConstRef query      // SFBQuery インスタンス
    AEECLSID id                    // クラス ID
    SFCErrorPtr exception = null   // エラー値
);

解説

IQI_QueryInterface 関数でインスタンスを生成するインターフェースのラッパークラスのインスタンスを生成します。

使用例

SFBBitmapDev::NewInstance 関数を実装するときに使用している例です。

// SFBBitmapDev::NewInstance 関数の実装
#include <SFBWrapper/SFBBitmapDev.h.hpp>
#include <SFBWrapper/SFBBitmap.h.hpp>
/*public static */SFBBitmapDevSmp SFBBitmapDev::NewInstance(SFBBitmapSmpConstRef bitmap, SFCErrorPtr exception)
{
    return static_pointer_cast<SFBBitmapDev>(FactoryByQuery(bitmap, AEEIID_BITMAPDEV, exception));
}// SFBBitmapDev::NewInstance //

/*public static */SFBBitmapDevSmp SFBBitmapDev::NewInstance(SFBBitmapSmpConstRef bitmap, AEECLSID id, SFCErrorPtr exception)
{
    return static_pointer_cast<SFBBitmapDev>(FactoryByQuery(bitmap, id, exception));
}// SFBBitmapDev::NewInstance //

参照

SFBBase::FactoryByCreate