SophiaFramework UNIVERSE 5.3 |
BREW 2.0 | BREW 2.1 | BREW 3.1 | BREW 4.0 |
---|---|---|---|
○ | ○ | ○ | ○ |
プロテクト関数 | |
---|---|
static SFBBaseSmp |
FactoryByCreate(
AEECLSID id
, SFCErrorPtr exception = null
) 指定したクラス ID のインターフェースのインスタンスを生成します。
|
static SFBBaseSmp |
FactoryByQuery(
SFBQuerySmpConstRef query
, AEECLSID id
, SFCErrorPtr exception = null
) 指定したクラス ID のインターフェースのインスタンスを指定した SFBQuery インスタンスを使用して生成します。
|
[ 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 //
[ 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 //
Copyright(c) 2002 - 2024 Sophia Cradle Incorporated All Rights Reserved. |