![]() ![]() ![]()
|
BREW C++ ライブラリ & GUI フレームワーク & XML ミドルウェア : SophiaFramework UNIVERSE 5.0 |

| 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 - 2008 Sophia Cradle Incorporated All Rights Reserved. |
![]() ![]() ![]()
|