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: サーバーの実装」を参照してください。

継承階層

CObject

CCmdTarget

COleObjectFactory

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参照ページで説明されているように、regFileTypeIdregFileTypeName、およびfileNewNameインデックスによって識別される部分文字列です。

regFileTypeId部分文字列が空の場合、または他の理由でGetDocStringの呼び出しが失敗した場合、この関数は失敗し、ファイル情報はレジストリに入力されません。

引数 rglpszRegister および rglpszOverwrite の情報は、 AfxOleRegisterServerClass の呼び出しによってレジストリに書き込まれます。 2 つの引数が NULL の場合に登録される既定の情報は、ほとんどのアプリケーションに適しています。 これらの引数の情報の構造については、 AfxOleRegisterServerClassを参照してください。

詳細については、「 Implementing the IDispatch Interface」を参照してください。

関連項目

MFC サンプル HIERSVR
COleObjectFactory クラス
階層図
COleServerDoc クラス
COleServerItem クラス