COleTemplateServer クラス
OLE のビジュアル編集サーバー、オートメーション サーバー、およびリンク コンテナー (埋め込みアイテムへのリンクをサポートするアプリケーションのことです) で使います。
構文
class COleTemplateServer : public COleObjectFactory
メンバー
パブリック コンストラクター
名前 | 説明 |
---|---|
COleTemplateServer::COleTemplateServer | COleTemplateServer オブジェクトを構築します。 |
パブリック メソッド
名前 | 説明 |
---|---|
COleTemplateServer::ConnectTemplate | ドキュメント テンプレートを基になる COleObjectFactory オブジェクトに接続します。 |
COleTemplateServer::Unregister | 関連付けられているドキュメント テンプレートの登録を解除します。 |
COleTemplateServer::UpdateRegistry | OLE システム レジストリにドキュメントの種類を登録します。 |
解説
このクラスは、 COleObjectFactory クラスから派生します。通常は、独自のクラスを派生するのではなく、 COleTemplateServer
を直接使用できます。 COleTemplateServer
は、 CDocTemplate オブジェクトを使用してサーバー ドキュメントを管理します。 COleTemplateServer
完全なサーバー (スタンドアロン アプリケーションとして実行できるサーバー) を実装する場合に使用します。 フル サーバーは通常、複数のドキュメント インターフェイス (MDI) アプリケーションですが、単一ドキュメント インターフェイス (SDI) アプリケーションがサポートされています。 アプリケーションがサポートするサーバー ドキュメントの種類ごとに 1 つの COleTemplateServer
オブジェクトが必要です。つまり、サーバー アプリケーションでワークシートとグラフの両方がサポートされている場合は、2 つの COleTemplateServer
オブジェクトが必要です。
COleTemplateServer
は、COleObjectFactory
によって定義されたOnCreateInstance
メンバー関数をオーバーライドします。 このメンバー関数は、適切な型の C++ オブジェクトを作成するためにフレームワークによって呼び出されます。
サーバーの詳細については、「 Servers: サーバーの実装」を参照してください。
継承階層
COleTemplateServer
要件
ヘッダー : afxdisp.h
COleTemplateServer::COleTemplateServer
COleTemplateServer
オブジェクトを構築します。
COleTemplateServer();
解説
COleTemplateServer
クラスの使用方法の簡単な説明については、COleLinkingDoc クラスの概要を参照してください。
COleTemplateServer::ConnectTemplate
pDocTemplate が指すドキュメント テンプレートを基になる COleObjectFactory オブジェクトに接続します。
void ConnectTemplate(
REFCLSID clsid,
CDocTemplate* pDocTemplate,
BOOL bMultiInstance);
パラメーター
clsid
テンプレートが要求する OLE クラス ID への参照。
pDocTemplate
ドキュメント テンプレートへのポインター。
bMultiInstance
アプリケーションの 1 つのインスタンスが複数のインスタンス化をサポートできるかどうかを示します。 TRUE の場合、オブジェクトを作成する要求ごとに、アプリケーションの複数のインスタンスが起動されます。
解説
詳細については、Windows SDK CLSID キー を参照してください。
COleTemplateServer::Unregister
関連付けられているドキュメント テンプレートの登録を解除します。
BOOL Unregister();
戻り値
成功した場合は TRUE、それ以外の場合は FALSE。
解説
EnterRemarks
COleTemplateServer::UpdateRegistry
ドキュメント テンプレート文字列からファイルの種類の情報を読み込み、その情報を OLE システム レジストリに配置します。
void UpdateRegistry(
OLE_APPTYPE nAppType = OAT_INPLACE_SERVER,
LPCTSTR* rglpszRegister = NULL,
LPCTSTR* rglpszOverwrite = NULL,
BOOL bRegister = TRUE);
パラメーター
nAppType
AFXDISP.H で定義されているOLE_APPTYPE列挙体の値。 次のいずれかの値を指定できます。
OAT_INPLACE_SERVER Server には、完全なサーバー ユーザー インターフェイスがあります。
OAT_SERVER Server では埋め込みのみがサポートされます。
OAT_CONTAINER Container では、埋め込みオブジェクトへのリンクがサポートされています。
OAT_DISPATCH_OBJECT オブジェクトは
IDispatch
対応です。OAT_DOC_OBJECT_SERVER Server では、埋め込みとドキュメント オブジェクト コンポーネント モデルの両方がサポートされています。
rglpszRegister
エントリが存在しない場合にのみレジストリに書き込まれるエントリの一覧。
rglpszOverwrite
前のエントリが存在するかどうかに関係なく、レジストリに書き込まれるエントリの一覧。
bRegister
クラスを登録するかどうかを決定します。 bRegister が TRUE の場合、クラスはシステム レジストリに登録されます。 それ以外の場合は、クラスの登録を解除します。
解説
登録情報は、 CDocTemplate::GetDocString の呼び出しによって読み込まれます。 取得される部分文字列は、GetDocString
参照ページで説明されているように、regFileTypeId
、regFileTypeName
、およびfileNewName
インデックスによって識別される部分文字列です。
regFileTypeId
部分文字列が空の場合、または他の理由でGetDocString
の呼び出しが失敗した場合、この関数は失敗し、ファイル情報はレジストリに入力されません。
引数 rglpszRegister および rglpszOverwrite の情報は、 AfxOleRegisterServerClass の呼び出しによってレジストリに書き込まれます。 2 つの引数が NULL の場合に登録される既定の情報は、ほとんどのアプリケーションに適しています。 これらの引数の情報の構造については、 AfxOleRegisterServerClass
を参照してください。
詳細については、「 Implementing the IDispatch Interface」を参照してください。
関連項目
MFC サンプル HIERSVR
COleObjectFactory クラス
階層図
COleServerDoc クラス
COleServerItem クラス