CDocument クラスCDocument Class

ユーザーが定義するドキュメント クラスの基本機能が用意されています。Provides the basic functionality for user-defined document classes.

構文Syntax

class CDocument : public CCmdTarget

メンバーMembers

パブリック コンストラクターPublic Constructors

名前Name 説明Description
CDocument:: CDocumentCDocument::CDocument CDocument オブジェクトを構築します。Constructs a CDocument object.

パブリック メソッドPublic Methods

名前Name 説明Description
CDocument:: AddViewCDocument::AddView ビューをドキュメントに添付します。Attaches a view to the document.
CDocument:: BeginReadChunksCDocument::BeginReadChunks チャンク読み取りを初期化します。Initializes chunk reading.
CDocument:: CanCloseFrameCDocument::CanCloseFrame 高度なオーバーライド可能。このドキュメントを表示しているフレームウィンドウを閉じる前に呼び出されます。Advanced overridable; called before closing a frame window viewing this document.
CDocument:: ClearChunkListCDocument::ClearChunkList チャンクリストをクリアします。Clears the chunk list.
CDocument:: ClearPathNameCDocument::ClearPathName ドキュメントオブジェクトのパスをクリアします。Clears the path of the document object.
CDocument::D eleteContentsCDocument::DeleteContents ドキュメントのクリーンアップを実行するために呼び出されます。Called to perform cleanup of the document.
CDocument:: FindChunkCDocument::FindChunk 指定された GUID を持つチャンクを検索します。Looks for a chunk with specified GUID.
CDocument:: GetAdapterCDocument::GetAdapter インターフェイスを実装するオブジェクトへのポインターを返し IDocument ます。Returns a pointer to object implementing IDocument interface.
CDocument:: GetDocTemplateCDocument::GetDocTemplate ドキュメントの種類を記述するドキュメントテンプレートへのポインターを返します。Returns a pointer to the document template that describes the type of the document.
CDocument:: GetFileCDocument::GetFile 目的のオブジェクトへのポインターを返し CFile ます。Returns a pointer to the desired CFile object.
CDocument:: GetFirstViewPositionCDocument::GetFirstViewPosition ビューのリスト内の最初のの位置を返します。反復処理を開始するために使用されます。Returns the position of the first in the list of views; used to begin iteration.
CDocument:: GetNextViewCDocument::GetNextView ドキュメントに関連付けられているビューの一覧を反復処理します。Iterates through the list of views associated with the document.
CDocument:: GetPathNameCDocument::GetPathName ドキュメントのデータファイルのパスを返します。Returns the path of the document's data file.
CDocument:: GetThumbnailCDocument::GetThumbnail サムネイルを表示するためにサムネイルプロバイダーによって使用されるビットマップを作成するために呼び出されます。Called to create a bitmap to be used by thumbnail provider to display thumbnail.
CDocument:: GetTitleCDocument::GetTitle ドキュメントのタイトルを返します。Returns the document's title.
CDocument:: InitializeSearchContentCDocument::InitializeSearchContent 検索ハンドラーの検索コンテンツを初期化するために呼び出されます。Called to initialize search content for Search Handler.
CDocument:: IsModifiedCDocument::IsModified ドキュメントが最後に保存されてから変更されたかどうかを示します。Indicates whether the document has been modified since it was last saved.
CDocument:: IsSearchAndOrganizeHandlerCDocument::IsSearchAndOrganizeHandler オブジェクトのこのインスタンス CDocument が検索に対して作成されたかどうかを示し、ハンドラー & 整理します。Tells whether this instance of CDocument object was created for Search & Organize handler.
CDocument:: LoadDocumentFromStreamCDocument::LoadDocumentFromStream ストリームからドキュメントデータを読み込むために呼び出されます。Called to load document data from stream.
CDocument:: OnBeforeRichPreviewFontChangedCDocument::OnBeforeRichPreviewFontChanged リッチプレビューフォントが変更される前に呼び出されます。Called before Rich Preview font is changed.
CDocument:: Onのすべての ViewlistCDocument::OnChangedViewList ドキュメントに対してビューの追加または削除を行った後に呼び出されます。Called after a view is added to or removed from the document.
CDocument:: OnCloseDocumentCDocument::OnCloseDocument ドキュメントを閉じるために呼び出されます。Called to close the document.
CDocument:: OncreateプレビューフレームCDocument::OnCreatePreviewFrame リッチプレビュー用のプレビューフレームを作成する必要があるときにフレームワークによって呼び出されます。Called by the framework when it needs to create a preview frame for Rich Preview.
CDocument:: OnDocumentEventCDocument::OnDocumentEvent ドキュメントイベントへの応答としてフレームワークによって呼び出されます。Called by the framework in response to a document event.
CDocument:: OnDrawThumbnailCDocument::OnDrawThumbnail 派生クラスでこのメソッドをオーバーライドして、サムネイルの内容を描画します。Override this method in a derived class to draw content of thumbnail.
CDocument:: OnLoadDocumentFromStreamCDocument::OnLoadDocumentFromStream ストリームからドキュメントデータを読み込む必要があるときに、フレームワークによって呼び出されます。Called by the framework when it needs to load the document data from stream.
CDocument:: OnNewDocumentCDocument::OnNewDocument 新しいドキュメントを作成するために呼び出されます。Called to create a new document.
CDocument:: OnOpenDocumentCDocument::OnOpenDocument 既存のドキュメントを開くために呼び出されます。Called to open an existing document.
CDocument:: OnPreviewHandlerQueryFocusCDocument::OnPreviewHandlerQueryFocus GetFocus 関数の呼び出しから HWND を返すように、プレビューハンドラーに指示します。Directs the preview handler to return the HWND from calling the GetFocus Function.
CDocument:: OnPreviewHandlerTranslateAcceleratorCDocument::OnPreviewHandlerTranslateAccelerator プレビューハンドラーが、プレビューハンドラーが実行されているプロセスのメッセージポンプから渡されたキーストロークを処理するように指示します。Directs the preview handler to handle a keystroke passed up from the message pump of the process in which the preview handler is running.
CDocument:: OnRichPreviewBackColorChangedCDocument::OnRichPreviewBackColorChanged リッチプレビューの背景色が変更されたときに呼び出されます。Called when Rich Preview background color has changed.
CDocument:: OnRichPreviewFontChangedCDocument::OnRichPreviewFontChanged リッチプレビューフォントが変更されたときに呼び出されます。Called when Rich Preview font has changed.
CDocument:: OnRichPreviewSiteChangedCDocument::OnRichPreviewSiteChanged リッチプレビューサイトが変更されたときに呼び出されます。Called when Rich Preview site has changed.
CDocument:: OnRichPreviewTextColorChangedCDocument::OnRichPreviewTextColorChanged リッチプレビューテキストの色が変更されたときに呼び出されます。Called when Rich Preview text color has changed.
CDocument:: OnSaveDocumentCDocument::OnSaveDocument ドキュメントをディスクに保存するために呼び出されます。Called to save the document to disk.
CDocument:: OnUnloadHandlerCDocument::OnUnloadHandler プレビューハンドラーがアンロードされるときにフレームワークによって呼び出されます。Called by the framework when the preview handler is being unloaded.
CDocument::P reCloseFrameCDocument::PreCloseFrame フレームウィンドウが閉じる前に呼び出されます。Called before the frame window is closed.
CDocument:: ReadNextChunkValueCDocument::ReadNextChunkValue 次のチャンク値を読み取ります。Reads next chunk value.
CDocument:: ReleaseFileCDocument::ReleaseFile ファイルを解放して、他のアプリケーションで使用できるようにします。Releases a file to make it available for use by other applications.
CDocument:: Removの UnkCDocument::RemoveChunk 指定された GUID を持つチャンクを削除します。Removes a chunk with specified GUID.
CDocument:: RemoveViewCDocument::RemoveView ドキュメントからビューをデタッチします。Detaches a view from the document.
CDocument:: ReportSaveLoadExceptionCDocument::ReportSaveLoadException 高度なオーバーライド可能。例外が発生したために、開いているまたは保存操作を完了できないときに呼び出されます。Advanced overridable; called when an open or save operation cannot be completed because of an exception.
CDocument:: SaveModifiedCDocument::SaveModified 高度なオーバーライド可能。ドキュメントを保存する必要があるかどうかをユーザーに確認するために呼び出されます。Advanced overridable; called to ask the user whether the document should be saved.
CDocument:: SetChunkValueCDocument::SetChunkValue チャンク値を設定します。Sets a chunk value.
CDocument:: SetModifiedFlagCDocument::SetModifiedFlag ドキュメントが最後に保存されてから変更されたことを示すフラグを設定します。Sets a flag indicating that you have modified the document since it was last saved.
CDocument:: SetPathNameCDocument::SetPathName ドキュメントによって使用されるデータファイルのパスを設定します。Sets the path of the data file used by the document.
CDocument:: SetTitleCDocument::SetTitle ドキュメントのタイトルを設定します。Sets the document's title.
CDocument:: UpdateAllViewsCDocument::UpdateAllViews ドキュメントが変更されたことをすべてのビューに通知します。Notifies all views that document has been modified.

プロテクト メソッドProtected Methods

名前Name 説明Description
CDocument:: OnFileSendMailCDocument::OnFileSendMail 添付されたドキュメントを使用してメールメッセージを送信します。Sends a mail message with the document attached.
CDocument:: OnUpdateFileSendMailCDocument::OnUpdateFileSendMail メールサポートが存在する場合は、[メールを送信] コマンドを有効にします。Enables the Send Mail command if mail support is present.

パブリック データ メンバーPublic Data Members

名前Name 説明Description
CDocument:: m_bGetThumbnailModeCDocument::m_bGetThumbnailMode オブジェクトが CDocument サムネイル用に dllhost によって作成されたことを指定します。Specifies that CDocument object was created by dllhost for thumbnails. チェックインする必要があり CView::OnDraw ます。Should be checked in CView::OnDraw.
CDocument:: m_bPreviewHandlerModeCDocument::m_bPreviewHandlerMode オブジェクトが CDocument の prevhost によって作成されたことを示し Rich Preview ます。Specifies that CDocument object was created by prevhost for Rich Preview. チェックインする必要があり CView::OnDraw ます。Should be checked in CView::OnDraw.
CDocument:: m_bSearchModeCDocument::m_bSearchMode オブジェクトが CDocument インデクサーまたはその他の検索アプリケーションによって作成されたことを指定します。Specifies that CDocument object was created by indexer or other search application.
CDocument:: m_clrRichPreviewBackColorCDocument::m_clrRichPreviewBackColor リッチプレビューウィンドウの背景色を指定します。Specifies background color of Rich Preview window. この色はホストによって設定されます。This color is set by host.
CDocument:: m_clrRichPreviewTextColorCDocument::m_clrRichPreviewTextColor リッチプレビューウィンドウの前景色を指定します。Specifies foreground color of Rich Preview window. この色はホストによって設定されます。This color is set by host.
CDocument:: m_lfRichPreviewFontCDocument::m_lfRichPreviewFont リッチプレビューウィンドウのテキストフォントを指定します。Specifies text font for Rich Preview window. このフォント情報はホストによって設定されます。This font information is set by host.

解説Remarks

ドキュメントは、通常、ファイルを開くコマンドを使用してユーザーが開くデータの単位を表し、[ファイル] [保存] コマンドを使用して保存します。A document represents the unit of data that the user typically opens with the File Open command and saves with the File Save command.

CDocument ドキュメントの作成、読み込み、保存などの標準的な操作をサポートします。CDocument supports standard operations such as creating a document, loading it, and saving it. フレームワークは、で定義されたインターフェイスを使用してドキュメントを操作し CDocument ます。The framework manipulates documents using the interface defined by CDocument.

アプリケーションでは、複数の種類のドキュメントをサポートできます。たとえば、アプリケーションでスプレッドシートとテキストドキュメントの両方がサポートされている場合があります。An application can support more than one type of document; for example, an application might support both spreadsheets and text documents. ドキュメントの種類ごとに、関連付けられたドキュメントテンプレートがあります。ドキュメントテンプレートでは、その種類のドキュメントに使用されるリソース (メニュー、アイコン、アクセラレータテーブルなど) を指定します。Each type of document has an associated document template; the document template specifies what resources (for example, menu, icon, or accelerator table) are used for that type of document. 各ドキュメントには、関連付けられたオブジェクトへのポインターが含まれてい CDocTemplate ます。Each document contains a pointer to its associated CDocTemplate object.

ユーザーは、関連付けられている CView オブジェクトを使用してドキュメントを操作します。Users interact with a document through the CView object(s) associated with it. ビューは、ドキュメントのイメージをフレームウィンドウに表示し、ユーザーの入力をドキュメントに対する操作として解釈します。A view renders an image of the document in a frame window and interprets user input as operations on the document. ドキュメントには、複数のビューを関連付けることができます。A document can have multiple views associated with it. ユーザーがドキュメント上のウィンドウを開くと、フレームワークによってビューが作成され、ドキュメントにアタッチされます。When the user opens a window on a document, the framework creates a view and attaches it to the document. ドキュメントテンプレートでは、各種類のドキュメントを表示するために使用されるビューとフレームウィンドウの種類を指定します。The document template specifies what type of view and frame window are used to display each type of document.

ドキュメントはフレームワークの標準のコマンドルーティングの一部であり、その結果、標準的なユーザーインターフェイスコンポーネント ([ファイル] [保存] メニュー項目など) からコマンドを受け取ることができます。Documents are part of the framework's standard command routing and consequently receive commands from standard user-interface components (such as the File Save menu item). ドキュメントは、アクティブなビューによって転送されたコマンドを受け取ります。A document receives commands forwarded by the active view. ドキュメントが特定のコマンドを処理しない場合は、そのコマンドを管理するドキュメントテンプレートにコマンドを転送します。If the document doesn't handle a given command, it forwards the command to the document template that manages it.

ドキュメントのデータが変更されると、それぞれのビューにその変更が反映される必要があります。When a document's data is modified, each of its views must reflect those modifications. CDocument には、このような変更をビューに通知するための UpdateAllViews メンバー関数が用意されているので、必要に応じてビュー自体を再描画できます。CDocument provides the UpdateAllViews member function for you to notify the views of such changes, so the views can repaint themselves as necessary. また、フレームワークは、変更されたファイルを閉じる前に保存するようにユーザーに求めます。The framework also prompts the user to save a modified file before closing it.

一般的なアプリケーションでドキュメントを実装するには、次の操作を行う必要があります。To implement documents in a typical application, you must do the following:

  • ドキュメントの種類ごとにからクラスを派生させ CDocument ます。Derive a class from CDocument for each type of document.

  • 各ドキュメントのデータを格納するためのメンバー変数を追加します。Add member variables to store each document's data.

  • ドキュメントのデータを読み取って変更するためのメンバー関数を実装します。Implement member functions for reading and modifying the document's data. ドキュメントのビューは、これらのメンバー関数の最も重要なユーザーです。The document's views are the most important users of these member functions.

  • ドキュメントクラスの CObject:: Serialize メンバー関数をオーバーライドして、ディスクとの間でドキュメントのデータを読み書きします。Override the CObject::Serialize member function in your document class to write and read the document's data to and from disk.

CDocument メールサポート (MAPI) が存在する場合は、メールを使用したドキュメントの送信をサポートします。CDocument supports sending your document via mail if mail support (MAPI) is present. MFC でmapiおよび mapi のサポート」を参照してください。See the articles MAPI and MAPI Support in MFC.

の詳細につい CDocument ては、「 シリアル化」、「 ドキュメント/ビューアーキテクチャのトピック」、および「 ドキュメント/ビューの作成」を参照してください。For more information on CDocument, see Serialization, Document/View Architecture Topics, and Document/View Creation.

継承階層Inheritance Hierarchy

CObjectCObject

CCmdTargetCCmdTarget

CDocument

要件Requirements

ヘッダー: afxwin.hHeader: afxwin.h

CDocument:: AddViewCDocument::AddView

この関数を呼び出して、ドキュメントにビューをアタッチします。Call this function to attach a view to the document.

void AddView(CView* pView);

パラメーターParameters

pViewpView
追加するビューをポイントします。Points to the view being added.

解説Remarks

この関数は、ドキュメントに関連付けられているビューの一覧に、指定されたビューを追加します。また、この関数は、ビューのドキュメントポインターをこのドキュメントに設定します。This function adds the specified view to the list of views associated with the document; the function also sets the view's document pointer to this document. フレームワークは、新しく作成されたビューオブジェクトをドキュメントにアタッチするときに、この関数を呼び出します。これは、File New、File Open、または New Window コマンドに応答して、またはスプリッターウィンドウが分割されたときに発生します。The framework calls this function when attaching a newly created view object to a document; this occurs in response to a File New, File Open, or New Window command or when a splitter window is split.

ビューを手動で作成してアタッチする場合にのみ、この関数を呼び出します。Call this function only if you are manually creating and attaching a view. 通常は、ドキュメントクラス、ビュークラス、およびフレームウィンドウクラスを関連付けるために、 CDocTemplate オブジェクトを定義して、フレームワークがドキュメントとビューを接続できるようにします。Typically you will let the framework connect documents and views by defining a CDocTemplate object to associate a document class, view class, and frame window class.

Example

// The following example toggles two views in an SDI (single document
// interface) frame window. A design decision must be made as to
// whether to leave the inactive view connected to the document,
// such that the inactive view continues to receive OnUpdate
// notifications from the document. It is usually desirable to
// keep the inactive view continuously in sync with the document, even
// though it is inactive. However, doing so incurs a performance cost,
// as well as the programming cost of implementing OnUpdate hints.
// It may be less expensive, in terms of performance and/or programming,
// to re-sync the inactive view with the document only with it is
// reactivated. This example illustrates this latter approach, by
// reconnecting the newly active view and disconnecting the newly
// inactive view, via calls to CDocument::AddView and RemoveView.

void CMainFrame::OnViewChange(UINT nCmdID)
// There is an ON_COMMAND_RANGE message map entry associated with
// OnViewChange:
// ON_COMMAND_RANGE(ID_VIEW_CHANGE1, ID_VIEW_CHANGE2, &OnViewChange)
{
   CView *pViewAdd;
   CView *pViewRemove;
   CDocument *pDoc = GetActiveDocument();

   // cvView1 and cvView2 are enum members defined in my CMainFrame class
   if ((nCmdID == ID_VIEW_CHANGE1) && (m_currentView == cvView1))
      return;
   if ((nCmdID == ID_VIEW_CHANGE2) && (m_currentView == cvView2))
      return;

   if (nCmdID == ID_VIEW_CHANGE2)
   {
      if (m_pView2 == NULL)
      {
         m_pView1 = GetActiveView();
         m_pView2 = new CMyView2;

         //Note that if OnSize has been overridden in CMyView2
         //and GetDocument() is used in this override it can
         //cause assertions and, if the assertions are ignored,
         //cause access violation.

         m_pView2->Create(NULL, NULL, AFX_WS_DEFAULT_VIEW, rectDefault, this,
                          AFX_IDW_PANE_FIRST + 1, NULL);
      }
      pViewAdd = m_pView2;
      pViewRemove = m_pView1;
      m_currentView = cvView2;
   }
   else
   {
      pViewAdd = m_pView1;
      pViewRemove = m_pView2;
      m_currentView = cvView1;
   }

   // Set the child i.d. of the active view to AFX_IDW_PANE_FIRST,
   // so that CFrameWnd::RecalcLayout will allocate to this
   // "first pane" that portion of   the frame window's client area
   // not allocated to control   bars.  Set the child i.d. of the
   // other view to anything other than AFX_IDW_PANE_FIRST; this
   // examples switches the child id's of the two views.

   int nSwitchChildID = pViewAdd->GetDlgCtrlID();
   pViewAdd->SetDlgCtrlID(AFX_IDW_PANE_FIRST);
   pViewRemove->SetDlgCtrlID(nSwitchChildID);

   // Show the newly active view and hide the inactive view.

   pViewAdd->ShowWindow(SW_SHOW);
   pViewRemove->ShowWindow(SW_HIDE);

   // Connect the newly active view to the document, and
   // disconnect the inactive view.
   pDoc->AddView(pViewAdd);
   pDoc->RemoveView(pViewRemove);

   SetActiveView(pViewAdd);
   RecalcLayout();
}

CDocument:: BeginReadChunksCDocument::BeginReadChunks

チャンク読み取りを初期化します。Initializes chunk reading.

virtual void BeginReadChunks ();

解説Remarks

CDocument:: CanCloseFrameCDocument::CanCloseFrame

ドキュメントを表示しているフレームウィンドウが閉じられる前に、フレームワークによって呼び出されます。Called by the framework before a frame window displaying the document is closed.

virtual BOOL CanCloseFrame(CFrameWnd* pFrame);

パラメーターParameters

pFramepFrame
ドキュメントにアタッチされているビューのフレームウィンドウを指します。Points to the frame window of a view attached to the document.

戻り値Return Value

フレームウィンドウを安全に閉じることができる場合は0以外の場合は。それ以外の場合は0です。Nonzero if it is safe to close the frame window; otherwise 0.

解説Remarks

既定の実装では、ドキュメントを表示している他のフレームウィンドウがあるかどうかを確認します。The default implementation checks if there are other frame windows displaying the document. 指定されたフレームウィンドウがドキュメントを表示する最後のウィンドウである場合は、ドキュメントが変更されている場合、この関数はドキュメントを保存するようにユーザーに求めます。If the specified frame window is the last one that displays the document, the function prompts the user to save the document if it has been modified. フレームウィンドウが閉じているときに特別な処理を実行する場合は、この関数をオーバーライドします。Override this function if you want to perform special processing when a frame window is closed. これは高度なオーバーライド可能です。This is an advanced overridable.

CDocument:: CDocumentCDocument::CDocument

CDocument オブジェクトを構築します。Constructs a CDocument object.

CDocument();

解説Remarks

ドキュメントの作成は、フレームワークによって処理されます。The framework handles document creation for you. OnNewDocumentメンバー関数をオーバーライドして、ドキュメントごとに初期化を実行します。これは、シングルドキュメントインターフェイス (SDI) アプリケーションでは特に重要です。Override the OnNewDocument member function to perform initialization on a per-document basis; this is particularly important in single document interface (SDI) applications.

CDocument:: ClearChunkListCDocument::ClearChunkList

チャンクリストをクリアします。Clears the chunk list.

virtual void ClearChunkList ();

解説Remarks

CDocument:: ClearPathNameCDocument::ClearPathName

ドキュメントオブジェクトのパスをクリアします。Clears the path of the document object.

virtual void ClearPathName();

解説Remarks

オブジェクトからパスをクリア CDocument すると、ドキュメントが次に保存されるときに、アプリケーションによってユーザーにメッセージが表示されます。Clearing the path from a CDocument object causes the application to prompt the user when the document is next saved. これにより、 保存 コマンドは、 名前を付けて保存 コマンドと同じように動作します。This makes a Save command behave like a Save As command.

CDocument::D eleteContentsCDocument::DeleteContents

オブジェクト自体を破棄せずにドキュメントのデータを削除するために、フレームワークによって呼び出され CDocument ます。Called by the framework to delete the document's data without destroying the CDocument object itself.

virtual void DeleteContents();

解説Remarks

ドキュメントが破棄される直前に呼び出されます。It is called just before the document is to be destroyed. また、ドキュメントが再利用される前に空であることを確認するためにも呼び出されます。It is also called to ensure that a document is empty before it is reused. これは、1つのドキュメントのみを使用する SDI アプリケーションでは特に重要です。ドキュメントは、ユーザーが別のドキュメントを作成または開いたときに再利用されます。This is particularly important for an SDI application, which uses only one document; the document is reused whenever the user creates or opens another document. この関数を呼び出して、すべてのドキュメントのデータを削除する "Clear All を編集" または同様のコマンドを実装します。Call this function to implement an "Edit Clear All" or similar command that deletes all of the document's data. この関数の既定の実装は、何も行いません。The default implementation of this function does nothing. ドキュメント内のデータを削除するには、この関数をオーバーライドします。Override this function to delete the data in your document.

Example

// This example is the handler for an Edit Clear All command.
void CExampleDoc::OnEditClearAll()
{
   DeleteContents();
   UpdateAllViews(NULL);
}

void CExampleDoc::DeleteContents()
{
   // Re-initialize document data here.
}

CDocument:: FindChunkCDocument::FindChunk

指定した GUID を持つチャンクを検索します。Looks for a chunk with a specified GUID.

virtual POSITION FindChunk(
    REFCLSID guid,
    DWORD pid);

パラメーターParameters

guidguid
検索するチャンクの GUID を指定します。Specifies the GUID of a chunk to find.

pidpid
検索するチャンクの PID を指定します。Specifies a PID of a chunk to find.

戻り値Return Value

成功した場合は、内部チャンクリスト内の位置。Position in the internal chunk list if successful. それ以外の場合は NULL。Otherwise NULL.

解説Remarks

CDocument:: GetAdapterCDocument::GetAdapter

インターフェイスを実装しているオブジェクトへのポインターを返し IDocument ます。Returns a pointer to an object implementing the IDocument interface.

virtual ATL::IDocument* GetAdapter();

戻り値Return Value

インターフェイスを実装するオブジェクトへのポインター IDocumentA pointer to an object implementing the IDocument interface.

解説Remarks

CDocument:: GetDocTemplateCDocument::GetDocTemplate

このドキュメントの種類のドキュメントテンプレートへのポインターを取得するには、この関数を呼び出します。Call this function to get a pointer to the document template for this document type.

CDocTemplate* GetDocTemplate() const;

戻り値Return Value

このドキュメントの種類のドキュメントテンプレートへのポインター。ドキュメントがドキュメントテンプレートで管理されていない場合は NULL。A pointer to the document template for this document type, or NULL if the document is not managed by a document template.

Example

// This example accesses the doc template object to construct
// a default document name such as SHEET.XLS, where "sheet"
// is the base document name and ".xls" is the file extension
// for the document type.
CString strDefaultDocName, strBaseName, strExt;
CDocTemplate *pDocTemplate = GetDocTemplate();
if (!pDocTemplate->GetDocString(strBaseName, CDocTemplate::docName) || !pDocTemplate->GetDocString(strExt, CDocTemplate::filterExt))
{
   AfxThrowUserException(); // These doc template strings will
                            // be available if you created the application using AppWizard
                            // and specified the file extension as an option for
                            // the document class produced by AppWizard.
}
strDefaultDocName = strBaseName + strExt;

CDocument:: GetFileCDocument::GetFile

オブジェクトへのポインターを取得するには、このメンバー関数を呼び出し CFile ます。Call this member function to get a pointer to a CFile object.

virtual CFile* GetFile(
    LPCTSTR lpszFileName,
    UINT nOpenFlags,
    CFileException* pError);

パラメーターParameters

lpszFileNamelpszFileName
目的のファイルへのパスを表す文字列。A string that is the path to the desired file. 相対パスまたは絶対パスを指定できます。The path may be relative or absolute.

pErrorpError
操作の完了ステータスを示す既存のファイル例外オブジェクトへのポインター。A pointer to an existing file-exception object that indicates the completion status of the operation.

NoペンフラグnOpenFlags
共有とアクセスモード。Sharing and access mode. ファイルを開くときに実行するアクションを指定します。Specifies the action to take when opening the file. ビットごとの OR (|) 演算子を使用 して、cfile コンストラクターに 一覧表示されているオプションを組み合わせることができます。You can combine options listed in the CFile constructor CFile::CFile by using the bitwise OR (|) operator. 1つのアクセス許可と1つの共有オプションが必要です。 modeCreate モードと modeNoInherit モードは省略可能です。One access permission and one share option are required; the modeCreate and modeNoInherit modes are optional.

戻り値Return Value

CFile オブジェクトを指すポインターです。A pointer to a CFile object.

CDocument:: GetFirstViewPositionCDocument::GetFirstViewPosition

この関数を呼び出して、ドキュメントに関連付けられているビューのリスト内の最初のビューの位置を取得します。Call this function to get the position of the first view in the list of views associated with the document.

virtual POSITION GetFirstViewPosition() const;

戻り値Return Value

GetNextViewメンバー関数を使用した反復処理に使用できる位置の値。A POSITION value that can be used for iteration with the GetNextView member function.

Example

//To get the first view in the list of views:
//To get the first view in the list of views:
// POSITION pos = GetFirstViewPosition();
// CView* pFirstView = GetNextView(pos);
//
// This example uses CDocument::GetFirstViewPosition
// and GetNextView to repaint each view.
// An easier way to accomplish the same result is to call
// UpdateAllViews(NULL);
void CExampleDoc::OnRepaintAllViews()
{
   POSITION pos = GetFirstViewPosition();
   while (pos != NULL)
   {
      CView *pView = GetNextView(pos);
      pView->UpdateWindow();
   }
}

CDocument:: GetNextViewCDocument::GetNextView

ドキュメントのすべてのビューを反復処理するには、この関数を呼び出します。Call this function to iterate through all of the document's views.

virtual CView* GetNextView(POSITION& rPosition) const;

パラメーターParameters

rPositionrPosition
GetNextViewまたはGetfirstviewpositionメンバー関数の前回の呼び出しによって返された位置の値への参照。A reference to a POSITION value returned by a previous call to the GetNextView or GetFirstViewPosition member functions. この値を NULL にすることはできません。This value must not be NULL.

戻り値Return Value

RPosition によって識別されるビューへのポインター。A pointer to the view identified by rPosition.

解説Remarks

関数は、 rPosition によって識別されるビューを返し、 rPosition をリスト内の次のビューの位置の値に設定します。The function returns the view identified by rPosition and then sets rPosition to the POSITION value of the next view in the list. 取得したビューが一覧の最後のビューである場合、 rPosition は NULL に設定されます。If the retrieved view is the last in the list, then rPosition is set to NULL.

Example

//To get the first view in the list of views:
//To get the first view in the list of views:
// POSITION pos = GetFirstViewPosition();
// CView* pFirstView = GetNextView(pos);
//
// This example uses CDocument::GetFirstViewPosition
// and GetNextView to repaint each view.
// An easier way to accomplish the same result is to call
// UpdateAllViews(NULL);
void CExampleDoc::OnRepaintAllViews()
{
   POSITION pos = GetFirstViewPosition();
   while (pos != NULL)
   {
      CView *pView = GetNextView(pos);
      pView->UpdateWindow();
   }
}

CDocument:: GetPathNameCDocument::GetPathName

ドキュメントのディスクファイルの完全修飾パスを取得します。Call this function to get the fully qualified path of the document's disk file.

const CString& GetPathName() const;

戻り値Return Value

ドキュメントの完全修飾パス。The document's fully qualified path. ドキュメントが保存されていない場合、またはドキュメントにディスクファイルが関連付けられていない場合、この文字列は空になります。This string is empty if the document has not been saved or does not have a disk file associated with it.

CDocument:: GetThumbnailCDocument::GetThumbnail

サムネイルを表示するためにサムネイルプロバイダーによって使用されるビットマップを作成します。Creates a bitmap to be used by the thumbnail provider to display the thumbnail.

virtual BOOL GetThumbnail(
    UINT cx,
    HBITMAP* phbmp,
    DWORD* pdwAlpha);

パラメーターParameters

シリーズcx
ビットマップの幅と高さを指定します。Specifies the width and height of the bitmap.

phbmpphbmp
関数が正常に返された場合に、ビットマップへのハンドルを格納します。Contains a handle to a bitmap, when the function returns successfully.

pdwAlphapdwAlpha
関数が正常に返されたときに、アルファチャネル値を指定する DWORD を格納します。Contains a DWORD specifying the alpha channel value, when the function returns successfully.

戻り値Return Value

サムネイルのビットマップが正常に作成された場合は TRUE を返します。それ以外の場合は FALSE。Returns TRUE if a bitmap for the thumbnail was created successfully; otherwise FALSE.

解説Remarks

CDocument:: GetTitleCDocument::GetTitle

ドキュメントのタイトルを取得するには、この関数を呼び出します。通常は、ドキュメントのファイル名から派生します。Call this function to get the document's title, which is usually derived from the document's filename.

const CString& GetTitle() const;

戻り値Return Value

ドキュメントのタイトル。The document's title.

CDocument:: InitializeSearchContentCDocument::InitializeSearchContent

検索ハンドラーの検索コンテンツを初期化するために呼び出されます。Called to initialize search content for the Search Handler.

virtual void InitializeSearchContent ();

解説Remarks

派生クラスでこのメソッドをオーバーライドして、検索コンテンツを初期化します。Override this method in a derived class to initialize search content. コンテンツは、";" で区切られた部分を含む文字列である必要があります。The content should be a string with parts delimited by ";". たとえば、"point;四角形ole 項目 "。For example, "point; rectangle; ole item".

CDocument:: IsModifiedCDocument::IsModified

ドキュメントが最後に保存されてから変更されたかどうかを確認するには、この関数を呼び出します。Call this function to determine whether the document has been modified since it was last saved.

virtual BOOL IsModified();

戻り値Return Value

ドキュメントが最後に保存されてから変更された場合は0以外の。それ以外の場合は0です。Nonzero if the document has been modified since it was last saved; otherwise 0.

CDocument:: IsSearchAndOrganizeHandlerCDocument::IsSearchAndOrganizeHandler

のこのインスタンス CDocument が検索 & 整理ハンドラーに対して作成されたかどうかを示します。Tells whether this instance of CDocument was created for the Search & Organize handler.

BOOL IsSearchAndOrganizeHandler() const;

戻り値Return Value

のこのインスタンス CDocument が検索 & 整理ハンドラーに対して作成された場合は TRUE を返します。Returns TRUE if this instance of CDocument was created for the Search & Organize handler.

解説Remarks

現在、この関数は、アウトプロセスサーバーに実装されている豊富なプレビューハンドラーに対してのみ TRUE を返します。Currently this function returns TRUE only for Rich Preview handlers implemented in an out of process server. アプリケーションレベルで適切なフラグ (m_bPreviewHandlerMode、m_bSearchMode、m_bGetThumbnailMode) を設定して、この関数が TRUE を返すようにすることができます。You can set the appropriate flags (m_bPreviewHandlerMode, m_bSearchMode, m_bGetThumbnailMode) at your application level to make this function return TRUE.

CDocument:: LoadDocumentFromStreamCDocument::LoadDocumentFromStream

ストリームからドキュメントデータを読み込むために呼び出されます。Called to load document data from a stream.

virtual HRESULT LoadDocumentFromStream(
    IStream* pStream,
    DWORD dwGrfMode);

パラメーターParameters

pStreampStream
ストリームへのポインター。A pointer to a stream. このストリームはシェルによって提供されます。This stream is supplied by the Shell.

dwGrfModedwGrfMode
ストリームへのアクセスモード。Access mode to the stream.

戻り値Return Value

読み込み操作が成功した場合は S_OK、それ以外の場合はエラーコードを返します。S_OK if the load operation succeeds, otherwise HRESULT with an error code.

解説Remarks

派生クラスでこのメソッドをオーバーライドすると、ストリームからデータを読み込む方法をカスタマイズできます。You can override this method in a derived class to customize how to load data from the stream.

CDocument:: m_bGetThumbnailModeCDocument::m_bGetThumbnailMode

CDocumentオブジェクトがサムネイル用に dllhost によって作成されたことを示します。Specifies that the CDocument object was created by dllhost for thumbnails. チェックインする必要があり CView::OnDraw ます。Should be checked in CView::OnDraw.

BOOL m_bGetThumbnailMode;

解説Remarks

TRUE ドキュメントがサムネイル用に dllhost によって作成されたことを示します。TRUE indicates that the document was created by dllhost for thumbnails.

CDocument:: m_bPreviewHandlerModeCDocument::m_bPreviewHandlerMode

CDocumentオブジェクトがリッチプレビュー用に prevhost によって作成されたことを示します。Specifies that the CDocument object was created by prevhost for Rich Preview. チェックインする必要があり CView::OnDraw ます。Should be checked in CView::OnDraw.

BOOL m_bPreviewHandlerMode;

解説Remarks

TRUE は、ドキュメントがリッチプレビュー用に prevhost によって作成されたことを示します。TRUE indicates that the document was created by prevhost for Rich Preview.

CDocument:: m_bSearchModeCDocument::m_bSearchMode

CDocumentオブジェクトがインデクサーまたは別の検索アプリケーションによって作成されたことを示します。Specifies that the CDocument object was created by indexer or by another search application.

BOOL m_bSearchMode;

解説Remarks

TRUE ドキュメントがインデクサーまたは別の検索アプリケーションによって作成されたことを示します。TRUE indicates that the document was created by indexer or by another search application.

CDocument:: m_clrRichPreviewBackColorCDocument::m_clrRichPreviewBackColor

リッチプレビューウィンドウの背景色を指定します。Specifies the background color of the Rich Preview window. この色はホストによって設定されます。This color is set by host.

COLORREF m_clrRichPreviewBackColor;

解説Remarks

CDocument:: m_clrRichPreviewTextColorCDocument::m_clrRichPreviewTextColor

リッチプレビューウィンドウの前景色を指定します。Specifies the foreground color of the Rich Preview window. この色はホストによって設定されます。This color is set by host.

COLORREF m_clrRichPreviewTextColor;

解説Remarks

CDocument:: m_lfRichPreviewFontCDocument::m_lfRichPreviewFont

リッチプレビューウィンドウのテキストフォントを指定します。Specifies the text font for the Rich Preview window. このフォント情報はホストによって設定されます。This font information is set by host.

CFont m_lfRichPreviewFont;

解説Remarks

CDocument:: OnBeforeRichPreviewFontChangedCDocument::OnBeforeRichPreviewFontChanged

リッチプレビューフォントが変更される前に呼び出されます。Called before the Rich Preview font is changed.

virtual void OnBeforeRichPreviewFontChanged();

解説Remarks

CDocument:: Onのすべての ViewlistCDocument::OnChangedViewList

ビューがドキュメントに追加された後、またはドキュメントから削除された後に、フレームワークによって呼び出されます。Called by the framework after a view is added to or removed from the document.

virtual void OnChangedViewList();

解説Remarks

この関数の既定の実装では、最後のビューが削除されているかどうかがチェックされ、存在する場合はドキュメントが削除されます。The default implementation of this function checks whether the last view is being removed and, if so, deletes the document. フレームワークがビューを追加または削除するときに特別な処理を実行する場合は、この関数をオーバーライドします。Override this function if you want to perform special processing when the framework adds or removes a view. たとえば、関連付けられているビューがない場合でもドキュメントを開いたままにする場合は、この関数をオーバーライドします。For example, if you want a document to remain open even when there are no views attached to it, override this function.

CDocument:: OnCloseDocumentCDocument::OnCloseDocument

ドキュメントが閉じられたときにフレームワークによって呼び出されます。通常は、File Close コマンドの一部として呼び出されます。Called by the framework when the document is closed, typically as part of the File Close command.

virtual void OnCloseDocument();

解説Remarks

この関数の既定の実装は、ドキュメントを表示するために使用されるすべてのフレームを破棄し、ビューを閉じて、ドキュメントの内容をクリーンアップしてから、 DeleteContents メンバー関数を呼び出してドキュメントのデータを削除します。The default implementation of this function destroys all of the frames used for viewing the document, closes the view, cleans up the document's contents, and then calls the DeleteContents member function to delete the document's data.

フレームワークがドキュメントを閉じるときに特別なクリーンアップ処理を実行する場合は、この関数をオーバーライドします。Override this function if you want to perform special cleanup processing when the framework closes a document. たとえば、ドキュメントがデータベース内のレコードを表している場合は、この関数をオーバーライドしてデータベースを閉じることができます。For example, if the document represents a record in a database, you may want to override this function to close the database. オーバーライドから、この関数の基本クラスバージョンを呼び出す必要があります。You should call the base class version of this function from your override.

CDocument:: OncreateプレビューフレームCDocument::OnCreatePreviewFrame

リッチプレビュー用のプレビューフレームを作成する必要があるときにフレームワークによって呼び出されます。Called by the framework when it needs to create a preview frame for Rich Preview.

virtual BOOL OnCreatePreviewFrame();

戻り値Return Value

フレームが正常に作成された場合は TRUE を返します。それ以外の場合は FALSE。Returns TRUE if the frame is created successfully; otherwise FALSE.

解説Remarks

CDocument:: OnDocumentEventCDocument::OnDocumentEvent

ドキュメントイベントへの応答としてフレームワークによって呼び出されます。Called by the framework in response to a document event.

virtual void OnDocumentEvent(DocumentEvent deEvent);

パラメーターParameters

deEventdeEvent
からイベントの種類を示す列挙データ型。[in] An enumerated data type that describes the type of event.

解説Remarks

ドキュメントイベントは、複数のクラスに影響を与える可能性があります。Document events may affect multiple classes. このメソッドは、 CDocument クラス以外のクラスに影響するドキュメントイベントの処理を行います。This method is responsible for handling document events that affect classes other than the CDocument Class. 現時点では、ドキュメントイベントに応答する必要がある唯一のクラスは、 CDataRecoveryHandler クラスです。Currently, the only class that must respond to document events is the CDataRecoveryHandler Class. クラスには CDocument 、に対する影響を処理する他の上書き可能なメソッドがあり CDocument ます。The CDocument class has other overrideable methods responsible for handling the effect on the CDocument.

次の表に、 Deevent に使用できる値と、その値が対応するイベントの一覧を示します。The following table lists the possible values for deEvent and the events that they correspond to.

Value 対応するイベントCorresponding Event
onAfterNewDocument 新しいドキュメントが作成されました。A new document was created.
onAfterOpenDocument 新しいドキュメントが開かれました。A new document was opened.
onAfterSaveDocument ドキュメントが保存されました。The document was saved.
onAfterCloseDocument ドキュメントが閉じられました。The document was closed.

CDocument:: OnDrawThumbnailCDocument::OnDrawThumbnail

派生クラスでこのメソッドをオーバーライドしてサムネイルを描画します。Override this method in a derived class to draw the thumbnail.

virtual void OnDrawThumbnail(
    CDC& dc,
    LPRECT lprcBounds);

パラメーターParameters

dcdc
デバイスコンテキストへの参照。A reference to a device context.

lprcBoundslprcBounds
サムネイルを描画する領域の外接する四角形を指定します。Specifies a bounding rectangle of the area where the thumbnail should be drawn.

解説Remarks

CDocument:: OnFileSendMailCDocument::OnFileSendMail

常駐メールホスト (存在する場合) を介してメッセージを添付ファイルとして送信します。Sends a message via the resident mail host (if any) with the document as an attachment.

void OnFileSendMail();

解説Remarks

OnFileSendMailOnsavedocumentを呼び出して、無題および変更されたドキュメントを一時ファイルにシリアル化 (保存) し、電子メールで送信します。OnFileSendMail calls OnSaveDocument to serialize (save) untitled and modified documents to a temporary file, which is then sent via electronic mail. ドキュメントが変更されていない場合、一時ファイルは必要ありません。元のが送信されます。If the document has not been modified, a temporary file is not needed; the original is sent. OnFileSendMail まだ読み込まれていない場合は MAPI32.DLL を読み込みます。OnFileSendMail loads MAPI32.DLL if it has not already been loaded.

COleDocument の特別な実装では、 OnFileSendMail 複合ファイルを正しく処理します。 A special implementation of OnFileSendMail for COleDocument handles compound files correctly.

CDocument メールサポート (MAPI) が存在する場合は、メールを使用したドキュメントの送信をサポートします。CDocument supports sending your document via mail if mail support (MAPI) is present. 記事「 MFC での mapi のトピックと mapi のサポート」を参照してください。See the articles MAPI Topics and MAPI Support in MFC.

CDocument:: OnLoadDocumentFromStreamCDocument::OnLoadDocumentFromStream

ストリームからドキュメントデータを読み込む必要がある場合に、フレームワークによって呼び出されます。Called by the framework when it needs to load the document data from a stream.

virtual HRESULT OnLoadDocumentFromStream(
    IStream* pStream,
    DWORD grfMode);

パラメーターParameters

pStreampStream
受信ストリームへのポインター。A pointer to an incoming stream.

grfModegrfMode
ストリームへのアクセスモード。Access mode to the stream.

戻り値Return Value

読み込みが成功した場合は S_OK します。それ以外の場合は、エラーコード。S_OK if the load is successful; otherwise an error code.

解説Remarks

CDocument:: OnNewDocumentCDocument::OnNewDocument

ファイルの New コマンドの一部としてフレームワークによって呼び出されます。Called by the framework as part of the File New command.

virtual BOOL OnNewDocument();

戻り値Return Value

ドキュメントが正常に初期化された場合は0以外の。それ以外の場合は0です。Nonzero if the document was successfully initialized; otherwise 0.

解説Remarks

この関数の既定の実装は、 DeleteContents メンバー関数を呼び出して、ドキュメントが空であることを確認してから、新しいドキュメントをクリーンとしてマークします。The default implementation of this function calls the DeleteContents member function to ensure that the document is empty and then marks the new document as clean. 新しいドキュメントのデータ構造を初期化するには、この関数をオーバーライドします。Override this function to initialize the data structure for a new document. オーバーライドから、この関数の基本クラスバージョンを呼び出す必要があります。You should call the base class version of this function from your override.

ユーザーが SDI アプリケーションで [ファイル] [新規作成] コマンドを選択した場合、フレームワークはこの関数を使用して、新しいドキュメントを作成するのではなく、既存のドキュメントを再初期化します。If the user chooses the File New command in an SDI application, the framework uses this function to reinitialize the existing document, rather than creating a new one. ユーザーがマルチドキュメントインターフェイス (MDI) アプリケーションで [ファイル] [新規] を選択した場合、フレームワークは毎回新しいドキュメントを作成し、この関数を呼び出して初期化します。If the user chooses File New in a multiple document interface (MDI) application, the framework creates a new document each time and then calls this function to initialize it. SDI アプリケーションで有効になるように、File New コマンドのコンストラクターではなく、この関数に初期化コードを配置する必要があります。You must place your initialization code in this function instead of in the constructor for the File New command to be effective in SDI applications.

が2回呼び出される場合があることに注意 OnNewDocument してください。Note that there are cases where OnNewDocument is called twice. このエラーは、ドキュメントが ActiveX ドキュメントサーバーとして埋め込まれている場合に発生します。This occurs when the document is embedded as an ActiveX Document Server. 関数は、(派生クラスによって公開された) メソッドによって最初に呼び出され、 CreateInstance COleObjectFactory InitNew メソッド (派生クラスによって公開される) によって2回目に呼び出され COleServerDoc ます。The function is first called by the CreateInstance method (exposed by the COleObjectFactory-derived class) and a second time by the InitNew method (exposed by the COleServerDoc-derived class).

Example

次の例は、ドキュメントオブジェクトを初期化する別の方法を示しています。The following examples illustrate alternative methods of initializing a document object.

// Method 1: In an MDI application, the simplest place to do
// initialization is in the document constructor.  The framework
// always creates a new document object for File New or File Open.
CExampleDoc::CExampleDoc()
{
   // Do initialization of MDI document here.
}
// Method 2: In an SDI or MDI application, do all initialization
// in an override of OnNewDocument, if you are certain that
// the initialization is effectively saved upon File Save
// and fully restored upon File Open, via serialization.
BOOL CMyDoc::OnNewDocument()
{
   if (!CDocument::OnNewDocument())
   {
      return FALSE;
   }

   // Do initialization of new document here.

   return TRUE;
}
// Method 3: If the initialization of your document is not
// effectively saved and restored by serialization (during File Save
// and File Open), then implement the initialization in single
// function (named InitMyDocument in this example).  Call the
// shared initialization function from overrides of both
// OnNewDocument and OnOpenDocument.
BOOL CExampleDoc::OnNewDocument()
{
   if (!CDocument::OnNewDocument())
   {
      return FALSE;
   }

   InitMyDocument(); // call your shared initialization function

   // If your new document object requires additional initialization
   // not necessary when the document is deserialized via File Open,
   // then perform that additional initialization here.

   return TRUE;
}

CDocument:: OnOpenDocumentCDocument::OnOpenDocument

File Open コマンドの一部としてフレームワークによって呼び出されます。Called by the framework as part of the File Open command.

virtual BOOL OnOpenDocument(LPCTSTR lpszPathName);

パラメーターParameters

lpszPathNamelpszPathName
開くドキュメントのパスを指します。Points to the path of the document to be opened.

戻り値Return Value

ドキュメントが正常に読み込まれた場合は0以外の。それ以外の場合は0です。Nonzero if the document was successfully loaded; otherwise 0.

解説Remarks

この関数の既定の実装は、指定されたファイルを開き、 DeleteContents メンバー関数を呼び出してドキュメントが空であることを確認し、 CObject:: Serialize を呼び出してファイルの内容を読み取り、ドキュメントをクリーンとしてマークします。The default implementation of this function opens the specified file, calls the DeleteContents member function to ensure that the document is empty, calls CObject::Serialize to read the file's contents, and then marks the document as clean. アーカイブ機構またはファイル機構以外のものを使用する場合は、この関数をオーバーライドします。Override this function if you want to use something other than the archive mechanism or the file mechanism. たとえば、ドキュメントが個別のファイルではなくデータベースのレコードを表すアプリケーションを作成できます。For example, you might write an application where documents represent records in a database rather than separate files.

ユーザーが SDI アプリケーションで [ファイルを開く] コマンドを選択した場合、フレームワークは、 CDocument 新しいオブジェクトを作成するのではなく、この関数を使用して既存のオブジェクトを再初期化します。If the user chooses the File Open command in an SDI application, the framework uses this function to reinitialize the existing CDocument object, rather than creating a new one. ユーザーが MDI アプリケーションで [ファイルを開く] を選択した場合、フレームワークは毎回新しいオブジェクトを構築して CDocument から、この関数を呼び出して初期化します。If the user chooses File Open in an MDI application, the framework constructs a new CDocument object each time and then calls this function to initialize it. SDI アプリケーションでは、File Open コマンドを有効にするコンストラクターではなく、この関数に初期化コードを配置する必要があります。You must place your initialization code in this function instead of in the constructor for the File Open command to be effective in SDI applications.

Example

次の例は、ドキュメントオブジェクトを初期化する別の方法を示しています。The following examples illustrate alternative methods of initializing a document object.

// Method 1: In an MDI application, the simplest place to do
// initialization is in the document constructor.  The framework
// always creates a new document object for File New or File Open.
CExampleDoc::CExampleDoc()
{
   // Do initialization of MDI document here.
}
// Method 2: In an SDI or MDI application, do all initialization
// in an override of OnNewDocument, if you are certain that
// the initialization is effectively saved upon File Save
// and fully restored upon File Open, via serialization.
BOOL CMyDoc::OnNewDocument()
{
   if (!CDocument::OnNewDocument())
   {
      return FALSE;
   }

   // Do initialization of new document here.

   return TRUE;
}
// Method 3: If the initialization of your document is not
// effectively saved and restored by serialization (during File Save
// and File Open), then implement the initialization in single
// function (named InitMyDocument in this example).  Call the
// shared initialization function from overrides of both
// OnNewDocument and OnOpenDocument.
BOOL CExampleDoc::OnNewDocument()
{
   if (!CDocument::OnNewDocument())
   {
      return FALSE;
   }

   InitMyDocument(); // call your shared initialization function

   // If your new document object requires additional initialization
   // not necessary when the document is deserialized via File Open,
   // then perform that additional initialization here.

   return TRUE;
}
// Additional example of OnOpenDocument()
BOOL CExampleDoc::OnOpenDocument(LPCTSTR lpszPathName)
{
   if (!CDocument::OnOpenDocument(lpszPathName))
   {
      return FALSE;
   }

   InitMyDocument(); // call your shared initialization function

   return TRUE;
}

CDocument:: OnPreviewHandlerQueryFocusCDocument::OnPreviewHandlerQueryFocus

は、関数の呼び出しから取得した HWND を返すようにプレビューハンドラーに指示し GetFocus ます。Directs the preview handler to return the HWND retrieved from calling the GetFocus function.

virtual HRESULT OnPreviewHandlerQueryFocus(HWND* phwnd);

パラメーターParameters

phwndphwnd
入出力このメソッドから制御が戻るときに、 GetFocus プレビューハンドラーのフォアグラウンドスレッドから関数を呼び出したときに返された HWND へのポインターを格納します。[out] When this method returns, contains a pointer to the HWND returned from calling the GetFocus function from the preview handler's foreground thread.

戻り値Return Value

成功した場合は S_OK を返します。それ以外の場合は、エラー値。Returns S_OK if successful; or an error value otherwise.

解説Remarks

CDocument:: OnPreviewHandlerTranslateAcceleratorCDocument::OnPreviewHandlerTranslateAccelerator

プレビューハンドラーが、プレビューハンドラーが実行されているプロセスのメッセージポンプから渡されたキーストロークを処理するように指示します。Directs the preview handler to handle a keystroke passed up from the message pump of the process in which the preview handler is running.

virtual HRESULT OnPreviewHandlerTranslateAccelerator(MSG* pmsg);

パラメーターParameters

pmsgpmsg
からウィンドウメッセージへのポインター。[in] A pointer to a window message.

戻り値Return Value

キーストロークメッセージをプレビューハンドラーで処理できる場合、ハンドラーはそれを処理して S_OK を返します。If the keystroke message can be processed by the preview handler, the handler processes it and returns S_OK. プレビューハンドラーがキーストロークメッセージを処理できない場合は、を介してホストに提供し IPreviewHandlerFrame::TranslateAccelerator ます。If the preview handler cannot process the keystroke message, it offers it to the host via IPreviewHandlerFrame::TranslateAccelerator. ホストがメッセージを処理する場合、このメソッドは S_OK を返します。If the host processes the message, this method returns S_OK. ホストがメッセージを処理しない場合、このメソッドは S_FALSE を返します。If the host does not process the message, this method returns S_FALSE.

解説Remarks

CDocument:: OnRichPreviewBackColorChangedCDocument::OnRichPreviewBackColorChanged

リッチプレビューの背景色が変更されたときに呼び出されます。Called when the Rich Preview background color has changed.

virtual void OnRichPreviewBackColorChanged();

解説Remarks

CDocument:: OnRichPreviewFontChangedCDocument::OnRichPreviewFontChanged

リッチプレビューフォントが変更されたときに呼び出されます。Called when the Rich Preview font has changed.

virtual void OnRichPreviewFontChanged();

解説Remarks

CDocument:: OnRichPreviewSiteChangedCDocument::OnRichPreviewSiteChanged

リッチプレビューサイトが変更されたときに呼び出されます。Called when the Rich Preview site has changed.

virtual void OnRichPreviewSiteChanged();

解説Remarks

CDocument:: OnRichPreviewTextColorChangedCDocument::OnRichPreviewTextColorChanged

リッチプレビューテキストの色が変更されたときに呼び出されます。Called when the Rich Preview text color has changed.

virtual void OnRichPreviewTextColorChanged();

解説Remarks

CDocument:: OnSaveDocumentCDocument::OnSaveDocument

[ファイル名を付けて保存] コマンドまたは [ファイル名を付けて保存] コマンドの一部としてフレームワークによって呼び出されます。Called by the framework as part of the File Save or File Save As command.

virtual BOOL OnSaveDocument(LPCTSTR lpszPathName);

パラメーターParameters

lpszPathNamelpszPathName
ファイルの保存先の絶対パスを指します。Points to the fully qualified path to which the file should be saved.

戻り値Return Value

ドキュメントが正常に保存された場合は0以外の。それ以外の場合は0です。Nonzero if the document was successfully saved; otherwise 0.

解説Remarks

この関数の既定の実装では、指定されたファイルを開き、 CObject:: Serialize を呼び出してドキュメントのデータをファイルに書き込んだ後、ドキュメントをクリーンとしてマークします。The default implementation of this function opens the specified file, calls CObject::Serialize to write the document's data to the file, and then marks the document as clean. フレームワークがドキュメントを保存するときに特別な処理を実行する場合は、この関数をオーバーライドします。Override this function if you want to perform special processing when the framework saves a document. たとえば、ドキュメントが個別のファイルではなくデータベースのレコードを表すアプリケーションを作成できます。For example, you might write an application where documents represent records in a database rather than separate files.

CDocument:: OnUnloadHandlerCDocument::OnUnloadHandler

プレビューハンドラーがアンロードされるときにフレームワークによって呼び出されます。Called by the framework when the preview handler is unloaded.

virtual void OnUnloadHandler();

解説Remarks

CDocument:: OnUpdateFileSendMailCDocument::OnUpdateFileSendMail

メールサポート (MAPI) が存在する場合は、ID_FILE_SEND_MAIL コマンドを有効にします。Enables the ID_FILE_SEND_MAIL command if mail support (MAPI) is present.

void OnUpdateFileSendMail(CCmdUI* pCmdUI);

パラメーターParameters

pCmdUIpCmdUI
ID_FILE_SEND_MAIL コマンドに関連付けられている CCmdUI オブジェクトへのポインター。A pointer to the CCmdUI object associated with the ID_FILE_SEND_MAIL command.

解説Remarks

それ以外の場合、この関数はメニュー項目の上または下にある区切り記号を含めて、メニューから ID_FILE_SEND_MAIL コマンドを削除します。Otherwise the function removes the ID_FILE_SEND_MAIL command from the menu, including separators above or below the menu item as appropriate. MAPI32.DLL がパスに存在し、WIN.INI ファイルの [Mail] セクションに MAPI = 1 が指定されている場合は、MAPI が有効になります。MAPI is enabled if MAPI32.DLL is present in the path and, in the [Mail] section of the WIN.INI file, MAPI=1. ほとんどのアプリケーションは、[ファイル] メニューにこのコマンドを配置します。Most applications put this command on the File menu.

CDocument メールサポート (MAPI) が存在する場合は、メールを使用したドキュメントの送信をサポートします。CDocument supports sending your document via mail if mail support (MAPI) is present. 記事「 MFC での mapi のトピックと mapi のサポート」を参照してください。See the articles MAPI Topics and MAPI Support in MFC.

CDocument::P reCloseFrameCDocument::PreCloseFrame

このメンバー関数は、フレームウィンドウが破棄される前にフレームワークによって呼び出されます。This member function is called by the framework before the frame window is destroyed.

virtual void PreCloseFrame(CFrameWnd* pFrame);

パラメーターParameters

pFramepFrame
関連付けられたオブジェクトを保持する CFrameWnd へのポインター CDocumentPointer to the CFrameWnd that holds the associated CDocument object.

解説Remarks

カスタムクリーンアップを提供するようにオーバーライドできますが、基本クラスも必ず呼び出してください。It can be overridden to provide custom cleanup, but be sure to call the base class as well.

の既定値 PreCloseFrame では、では何も実行されません CDocumentThe default of PreCloseFrame does nothing in CDocument. CDocument派生クラスのCOleDocumentCRichEditDocは、このメンバー関数を使用します。The CDocument-derived classes COleDocument and CRichEditDoc use this member function.

CDocument:: ReadNextChunkValueCDocument::ReadNextChunkValue

次のチャンク値を読み取ります。Reads the next chunk value.

virtual BOOL ReadNextChunkValue(IFilterChunkValue** ppValue);

パラメーターParameters

ppValueppValue
入出力関数から制御が戻ったときに、 Ppvalue に読み取られた値が含まれます。[out] When the function returns, ppValue contains the value that was read.

戻り値Return Value

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。Nonzero if successful; otherwise 0.

解説Remarks

CDocument:: ReleaseFileCDocument::ReleaseFile

このメンバー関数は、ファイルを解放して他のアプリケーションで使用できるようにするために、フレームワークによって呼び出されます。This member function is called by the framework to release a file, making it available for use by other applications.

virtual void ReleaseFile(
    CFile* pFile,
    BOOL bAbort);

パラメーターParameters

pFilepFile
解放される CFile オブジェクトへのポインター。A pointer to the CFile object to be released.

bAbortbAbort
またはのいずれかを使用してファイルを解放するかどうかを指定し CFile::Close CFile::Abort ます。Specifies whether the file is to be released by using either CFile::Close or CFile::Abort. ファイルが CFile:: Closeを使用して解放される場合は FALSE。ファイルが CFile:: Abortを使用して解放される場合は TRUE。FALSE if the file is to be released using CFile::Close; TRUE if the file is to be released using CFile::Abort.

解説Remarks

Babort が TRUE の場合、はを ReleaseFile 呼び出し、 CFile::Abort ファイルが解放されます。If bAbort is TRUE, ReleaseFile calls CFile::Abort, and the file is released. CFile::Abort は例外をスローしません。CFile::Abort will not throw an exception.

Babort が FALSE の場合、はを ReleaseFile 呼び出し、 CFile::Close ファイルは解放されます。If bAbort is FALSE, ReleaseFile calls CFile::Close and the file is released.

このメンバー関数をオーバーライドして、ファイルが解放される前にユーザーがアクションを要求するようにします。Override this member function to require an action by the user before the file is released.

CDocument:: Removの UnkCDocument::RemoveChunk

指定した GUID を持つチャンクを削除します。Removes a chunk with the specified GUID.

virtual void RemoveChunk(
    REFCLSID guid,
    DWORD pid);

パラメーターParameters

GUIDGuid
削除するチャンクの GUID を指定します。Specifies the GUID of a chunk to be removed.

PidPid
削除するチャンクの PID を指定します。Specifies the PID of a chunk to be removed.

解説Remarks

CDocument:: RemoveViewCDocument::RemoveView

この関数を呼び出して、ドキュメントからビューをデタッチします。Call this function to detach a view from a document.

void RemoveView(CView* pView);

パラメーターParameters

pViewpView
削除するビューを指します。Points to the view being removed.

解説Remarks

この関数は、ドキュメントに関連付けられているビューの一覧から、指定されたビューを削除します。また、ビューのドキュメントポインターを NULL に設定します。This function removes the specified view from the list of views associated with the document; it also sets the view's document pointer to NULL. この関数は、フレームウィンドウが閉じられたとき、または分割ウィンドウのペインが閉じられたときにフレームワークによって呼び出されます。This function is called by the framework when a frame window is closed or a pane of a splitter window is closed.

ビューを手動でデタッチする場合にのみ、この関数を呼び出します。Call this function only if you are manually detaching a view. 通常は、ドキュメントクラス、ビュークラス、およびフレームウィンドウクラスを関連付けるために、 CDocTemplate オブジェクトを定義して、フレームワークにドキュメントとビューをデタッチさせます。Typically you will let the framework detach documents and views by defining a CDocTemplate object to associate a document class, view class, and frame window class.

サンプル実装については、「 Addview 」の例を参照してください。See the example at AddView for a sample implementation.

CDocument:: ReportSaveLoadExceptionCDocument::ReportSaveLoadException

ドキュメントの保存または読み込み中に例外がスローされた場合 (通常は CFileException または cアーカイブ例外) に呼び出されます。Called if an exception is thrown (typically a CFileException or CArchiveException) while saving or loading the document.

virtual void ReportSaveLoadException(
    LPCTSTR lpszPathName,
    CException* e,
    BOOL bSaving,
    UINT nIDPDefault);

パラメーターParameters

lpszPathNamelpszPathName
保存または読み込み中のドキュメントの名前を指します。Points to name of document that was being saved or loaded.

ee
スローされた例外を指します。Points to the exception that was thrown. NULL の場合もあります。May be NULL.

bSavingbSaving
実行中の操作を示すフラグです。ドキュメントが保存されていた場合は0以外、ドキュメントが読み込まれていた場合は0。Flag indicating what operation was in progress; nonzero if the document was being saved, 0 if the document was being loaded.

nIDPDefaultnIDPDefault
関数がより具体的なものを指定していない場合に表示されるエラーメッセージの識別子。Identifier of the error message to be displayed if the function does not specify a more specific one.

解説Remarks

既定の実装では、例外オブジェクトが調べられ、その原因を具体的に説明するエラーメッセージが検索されます。The default implementation examines the exception object and looks for an error message that specifically describes the cause. 特定のメッセージが見つからない場合、または e が NULL の場合は、 nIDPDefault パラメーターで指定された一般的なメッセージが使用されます。If a specific message is not found or if e is NULL, the general message specified by the nIDPDefault parameter is used. 次に、この関数は、エラーメッセージを含むメッセージボックスを表示します。The function then displays a message box containing the error message. カスタマイズされた追加のエラーメッセージを提供する場合は、この関数をオーバーライドします。Override this function if you want to provide additional, customized failure messages. これは高度なオーバーライド可能です。This is an advanced overridable.

CDocument:: SaveModifiedCDocument::SaveModified

変更されたドキュメントを閉じる前に、フレームワークによって呼び出されます。Called by the framework before a modified document is to be closed.

virtual BOOL SaveModified();

戻り値Return Value

続行してドキュメントを閉じることが安全な場合は0以外の。ドキュメントを閉じない場合は0。Nonzero if it is safe to continue and close the document; 0 if the document should not be closed.

解説Remarks

この関数の既定の実装では、ドキュメントが作成されている場合に、変更を保存するかどうかをユーザーに確認するメッセージボックスが表示されます。The default implementation of this function displays a message box asking the user whether to save the changes to the document, if any have been made. プログラムで別のプロンプト手順が必要な場合は、この関数をオーバーライドします。Override this function if your program requires a different prompting procedure. これは高度なオーバーライド可能です。This is an advanced overridable.

CDocument:: SetChunkValueCDocument::SetChunkValue

チャンク値を設定します。Sets a chunk value.

virtual BOOL SetChunkValue (IFilterChunkValue* pValue);

パラメーターParameters

pValuepValue
設定するチャンク値を指定します。Specifies a chunk value to set.

戻り値Return Value

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。Nonzero if successful; otherwise 0.

解説Remarks

CDocument:: SetModifiedFlagCDocument::SetModifiedFlag

ドキュメントに変更を加えた後に、この関数を呼び出します。Call this function after you have made any modifications to the document.

virtual void SetModifiedFlag(BOOL bModified = TRUE);

パラメーターParameters

bModifiedbModified
ドキュメントが変更されたかどうかを示すフラグです。Flag indicating whether the document has been modified.

解説Remarks

この関数を一貫して呼び出すことにより、ユーザーがドキュメントを閉じる前に変更を保存するように求めるメッセージが表示されます。By calling this function consistently, you ensure that the framework prompts the user to save changes before closing a document. 通常は、 Bmodified パラメーターに対して既定値の TRUE を使用する必要があります。Typically you should use the default value of TRUE for the bModified parameter. ドキュメントをクリーン (未変更) としてマークするには、この関数を FALSE の値で呼び出します。To mark a document as clean (unmodified), call this function with a value of FALSE.

CDocument:: SetPathNameCDocument::SetPathName

ドキュメントのディスクファイルの完全修飾パスを指定するには、この関数を呼び出します。Call this function to specify the fully qualified path of the document's disk file.

virtual void SetPathName(
    LPCTSTR lpszPathName,
    BOOL bAddToMRU = TRUE);

パラメーターParameters

lpszPathNamelpszPathName
ドキュメントのパスとして使用される文字列を指します。Points to the string to be used as the path for the document.

bAddToMRUbAddToMRU
ファイル名が最近使用した (MRU) ファイルリストに追加されているかどうかを判断します。Determines whether the filename is added to the most recently used (MRU) file list. TRUE の場合、ファイル名が追加されます。FALSE の場合、追加されません。If TRUE, the filename is added; if FALSE, it is not added.

解説Remarks

Baddtomru の値によっては、アプリケーションによって管理される MRU リストにパスが追加されるか、追加されません。Depending on the value of bAddToMRU the path is added, or not added, to the MRU list maintained by the application. 一部のドキュメントは、ディスクファイルに関連付けられていないことに注意してください。Note that some documents are not associated with a disk file. フレームワークによって使用されるファイルを開いたり保存したりするための既定の実装をオーバーライドする場合にのみ、この関数を呼び出します。Call this function only if you are overriding the default implementation for opening and saving files used by the framework.

CDocument:: SetTitleCDocument::SetTitle

ドキュメントのタイトル (フレームウィンドウのタイトルバーに表示される文字列) を指定するには、この関数を呼び出します。Call this function to specify the document's title (the string displayed in the title bar of a frame window).

virtual void SetTitle(LPCTSTR lpszTitle);

パラメーターParameters

lpszTitlelpszTitle
ドキュメントのタイトルとして使用される文字列を指します。Points to the string to be used as the document's title.

解説Remarks

この関数を呼び出すと、ドキュメントを表示するすべてのフレームウィンドウのタイトルが更新されます。Calling this function updates the titles of all frame windows that display the document.

CDocument:: UpdateAllViewsCDocument::UpdateAllViews

ドキュメントが変更された後に、この関数を呼び出します。Call this function after the document has been modified.

void UpdateAllViews(
    CView* pSender,
    LPARAM lHint = 0L,
    CObject* pHint = NULL);

パラメーターParameters

pSenderpSender
ドキュメントを変更したビューを指します。すべてのビューを更新する場合は NULL です。Points to the view that modified the document, or NULL if all views are to be updated.

lHintlHint
変更に関する情報を格納します。Contains information about the modification.

pHintpHint
変更に関する情報を格納しているオブジェクトを指します。Points to an object storing information about the modification.

解説Remarks

SetModifiedFlagメンバー関数を呼び出した後に、この関数を呼び出す必要があります。You should call this function after you call the SetModifiedFlag member function. この関数は、ドキュメントにアタッチされている各ビューを通知します。ただし、 Psender によって指定されたビューは、ドキュメントが変更されていることを前提としています。This function informs each view attached to the document, except for the view specified by pSender, that the document has been modified. 通常、ビューを使用してユーザーがドキュメントを変更した後、この関数をビュークラスから呼び出します。You typically call this function from your view class after the user has changed the document through a view.

この関数は、送信ビュー、 Phintlhint を除く各ドキュメントのビューに対して、 CView:: OnUpdateメンバー関数を呼び出します。This function calls the CView::OnUpdate member function for each of the document's views except the sending view, passing pHint and lHint. これらのパラメーターを使用して、ドキュメントに加えられた変更に関する情報をビューに渡します。Use these parameters to pass information to the views about the modifications made to the document. Lhint を使用して情報をエンコードしたり、 CObjectから派生したクラスを定義して変更に関する情報を格納したり、 phint を使用してそのクラスのオブジェクトを渡したりすることができます。You can encode information using lHint and/or you can define a CObject-derived class to store information about the modifications and pass an object of that class using pHint. CView::OnUpdate CView派生クラスのメンバー関数をオーバーライドして、渡された情報に基づいてビューの表示の更新を最適化します。Override the CView::OnUpdate member function in your CView-derived class to optimize the updating of the view's display based on the information passed.

Example

void CExampleDoc::OnUpdateAllViews()
{
   UpdateAllViews(NULL);
}

関連項目See also

MFC のサンプル MDIDOCVWMFC Sample MDIDOCVW
MFC のサンプル SNAPVWMFC Sample SNAPVW
MFC サンプル NPPMFC Sample NPP
CCmdTarget クラスCCmdTarget Class
階層図Hierarchy Chart
CCmdTarget クラスCCmdTarget Class
CView クラスCView Class
CDocTemplate クラスCDocTemplate Class