CDocTemplate::MatchDocType
更新 : 2007 年 11 月
ドキュメントの型とテンプレート間で、一致の信頼度を調べます。
virtual Confidence MatchDocType(
LPCTSTR lpszPathName,
CDocument*& rpDocMatch
);
パラメータ
lpszPathName
調べる型を持つファイルのパス名。rpDocMatch
lpszPathName で指定されるファイルが既に開いている場合は、一致するドキュメントに割り当てられたドキュメントへのポインタ。
戻り値
次に定義される Confidence 列挙値を返します。
enum Confidence
{
noAttempt,
maybeAttemptForeign,
maybeAttemptNative,
yesAttemptForeign,
yesAttemptNative,
yesAlreadyOpen
};
解説
ファイルを開くのに使うドキュメント テンプレートの型を調べます。たとえば、アプリケーションが複数の型のファイルをサポートするときは、各テンプレートに対して順番に MatchDocType を呼び出すことにより、指定されたファイルに対応するドキュメント テンプレートで利用できるものを調べます。その後関数が返す信頼度値によってテンプレートを選択します。
lpszPathName で指定されたファイルが既に開かれているときは、この関数は CDocTemplate::yesAlreadyOpen を返し、ファイルの CDocument オブジェクトを rpDocMatch のオブジェクトにコピーします。
ファイルが開かれていなくて、lpszPathName で指定されている拡張子が CDocTemplate::filterExt で指定された拡張子と一致するときは、CDocTemplate::yesAttemptNative を返し、rpDocMatch に NULL を設定します。CDocTemplate::filterExt の詳細については、「CDocTemplate::GetDocString」を参照してください。
上記のどちらにも当てはまらないときは、CDocTemplate::yesAttemptForeign を返します。
既定の実装では、CDocTemplate::maybeAttemptForeign または CDocTemplate::maybeAttemptNative は返しません。これらの 2 つの Confidence 列挙値も使うと、この関数をオーバーライドすることで、アプリケーションに適切な型一致ロジックを実装できます。
必要条件
ヘッダー : afxwin.h