OCLIENT サンプル:ビジュアル編集コンテナー アプリケーションを示しています

OCLIENT サンプルは、ビジュアル編集コンテナー アプリケーションの一例です。 このサンプルは基本的には CONTAINER サンプルの拡張バージョンですが、厳密には CONTAINER の派生ではありません。

セキュリティに関するメモセキュリティに関するメモ

このサンプル コードは概念を示すためのものであり、その概念に関連するコードのみを示しています。特定の環境について必ずしもセキュリティ要件を満たしていませんので、そのまま使用しないでください。セキュリティおよびエラー処理コードを追加して、プロジェクトをより安全かつ堅牢にすることをお勧めします。これらのサンプル コードは、現状有姿のままで提供されるものであり、一切保証されていません。

サンプルとそのインストール手順を取得するには

Visual Studio のサンプルにアクセスするには

  • [ヘルプ] メニューの [サンプル] をクリックします。

    既定では、これらのサンプルは drive:\Program Files\Microsoft Visual Studio 10.0\Samples\ にインストールされています。

  • このサンプルの最新版および他のサンプルの一覧については、MSDN Web サイト上で Visual Studio サンプル 」を参照してください。

サンプルのビルドと実行

OCLIENT サンプルをビルドおよび実行するには

  1. ソリューション ファイル OCLIENT.sln を開きます。

  2. [ビルド] メニューの [ビルド] をクリックします。

  3. OCLIENT アプリケーションを開いて実行します。

OCLIENT で示す機能は以下のとおりです。

  • ほかのアプリケーションとの間のドラッグ アンド ドロップ

  • 同一アプリケーション ウィンドウ内で Ctrl キーを押しながらドラッグすることによるオブジェクトのクローン (複製) 作成

  • ドラッグ アンド ドロップ操作時のウィンドウの自動スクロール

  • ネイティブな形式のオブジェクトの貼り付け

  • リンク貼り付け

OCLIENT は、CONTAINER と同じく単純なオブジェクト描画プログラムです。 描画されるオブジェクトの種類は、リンクされた OLE アイテムか埋め込まれた OLE アイテムの 1 つだけです。

OCLIENT 描画に新しいオブジェクトを追加するには

  1. 編集 メニューの [オブジェクトの作成と貼り付け をクリックします。

    (オブジェクトの挿入 ダイアログ ボックスが表示されます。

  2. 追加する OLE アイテムの種類を選択します。

    新しいオブジェクトが OCLIENT のウィンドウに表示され、OCLIENT のメニューとツール バーが、サーバー アプリケーションが指定したポップアップ メニューとツール バー ボタンに更新されます。

  3. オートメーション サーバーの実行中に、OLE アイテムをクリップボードにコピーします。

  4. On the Edit menu in OCLIENT, click Paste to embed the OLE item, or click PasteLink to link the OLE item.

新しく追加された OLE アイテムは、常に OCLIENT の描画の左上隅に配置されます。 新しい OLE アイテムが、古いアイテムの一部または全体に重なる場合があります。 マウスを使用して一度に選択できる OLE アイテムは 1 つだけです。 選択されたリンク アイテムは点線の四角形で表示されます。また、埋め込みアイテムは実線の四角形で表示されます。 OLE アイテムはドラッグして移動できます。サイズ変更ハンドルを使用すると、選択した OLE アイテムのサイズを変更できます。

OLE アイテムを削除するには、それをマウスのクリックで選択するには、キーを押します DELETE または使用 消去コマンドに、 メニューを編集します。

To edit the contents of an OLE item, double-click it or select it with the mouse and then click Edit <type> Object on the Edit menu. 埋め込み先編集アイテムの編集を終了するには、OCLIENT のウィンドウで、アイテムの四角形の外側をクリックします。 完全にサーバー アプリケーションで開かれたアイテムの編集を終了するには、サーバーの ファイルの更新] コマンドを使用します。

Keywords

このサンプルでは、次のキーワードを使用します。

AfxGetMainWnd; AfxMessageBox; AfxOleInit; AfxThrowArchiveException; AfxThrowFileException; AfxThrowMemoryException; CArchive::Close;CArchive::IsStoring; CCmdTarget::BeginWaitCursor; CCmdTarget::EndWaitCursor; CCmdUI::Enable; CCmdUI::SetCheck; CControlBar::EnableDocking; CDC::DPtoLP; CDC::DrawFocusRect; CDC::GetDeviceCaps; CDC::HIMETRICtoDP; CDC::LPtoDP; CDC::RealizePalette; CDC::SelectPalette; CDocTemplate::SetContainerInfo; CDocument::SetModifiedFlag; CDocument::UpdateAllViews; CFrameWnd::DockControlBar; CFrameWnd::EnableDocking; CFrameWnd::LoadFrame; CFrameWnd::OnCreateClient; CGdiObject::UnrealizeObject; CMDIChildWnd::Create; CMenu::GetSubMenu; CMenu::LoadMenu; CMenu::TrackPopupMenu; CObject::AssertValid; CObject::Dump; CObject::IsKindOf; CObject::Serialize; COleClientItem::Close; COleClientItem::CreateCloneFrom; COleClientItem::Deactivate; COleClientItem::Delete; COleClientItem::DoDragDrop; COleClientItem::DoVerb; COleClientItem::Draw; COleClientItem::GetActiveView; COleClientItem::GetClipboardData; COleClientItem::GetDocument; COleClientItem::GetDrawAspect; COleClientItem::GetInPlaceWindow; COleClientItem::GetItemState; COleClientItem::GetType; COleClientItem::IsInPlaceActive; COleClientItem::OnActivate; COleClientItem::OnChange; COleClientItem::OnChangeItemPosition; COleClientItem::OnDeactivateUI; COleClientItem::OnGetClipboardData; COleClientItem::OnGetItemPosition; COleClientItem::SetDrawAspect; COleClientItem::SetItemRects; COleClientItem::UpdateLink; COleDataObject::Attach; COleDataObject::AttachClipboard; COleDataObject::IsDataAvailable; COleDataSource::CacheGlobalData; COleDocument::EnableCompoundFile; COleDocument::GetNextItem; COleDocument::GetStartPosition; COleDocument::HasBlankItems; COleDocument::OnShowViews; COleInsertDialog::CreateItem; COleInsertDialog::DoModal; COleInsertDialog::GetSelectionType; COlePasteSpecialDialog::AddFormat; COlePasteSpecialDialog::AddStandardFormats; COlePasteSpecialDialog::CreateItem; COlePasteSpecialDialog::DoModal; COlePasteSpecialDialog::GetSelectionType; COleTemplateServer::ConnectTemplate; COleTemplateServer::UpdateRegistry; COleUpdateDialog::DoModal; CPalette::CreateHalftonePalette; CRect::InflateRect; CRect::IntersectRect; CRect::IsRectEmpty; CRect::OffsetRect; CRect::Size; CRect::TopLeft; CRectTracker::Draw; CRectTracker::HitTest; CRectTracker::SetCursor; CRectTracker::Track; CScrollView::GetDeviceScrollPosition; CScrollView::SetScrollSizes; CStatusBar::Create; CStatusBar::SetIndicators; CToolBar::Create; CToolBar::LoadBitmap; CToolBar::SetButtons; CView::DoPreparePrinting; CView::GetDocument; CView::IsSelected; CView::OnDragEnter; CView::OnDragLeave; CView::OnDragOver; CView::OnDraw; CView::OnDrop; CView::OnInitialUpdate; CView::OnPrepareDC; CView::OnPreparePrinting; CView::OnScrollBy; CView::OnUpdate; CWinApp::AddDocTemplate; CWinApp::EnableShellOpen; CWinApp::InitInstance; CWinApp::LoadStdProfileSettings; CWinApp::RegisterShellFileTypes; CWinApp::RunEmbedded; CWnd::ClientToScreen; CWnd::GetClientRect; CWnd::GetDC; CWnd::GetParentFrame; CWnd::InvalidateRect; CWnd::OnChar; CWnd::OnCreate; CWnd::OnDestroy; CWnd::OnLButtonDblClk; CWnd::OnLButtonDown; CWnd::OnPaletteChanged; CWnd::OnQueryNewPalette; CWnd::OnRButtonDown; CWnd::OnSetCursor; CWnd::OnSetFocus; CWnd::OnSize; CWnd::ReleaseDC; CWnd::SetFocus; CWnd::ShowWindow; CWnd::UpdateWindow; CreateHatchBrush; DeleteItem; DragAcceptFiles; FORMATETC; FillRect; GetDeviceCaps; GetKeyState; GetSysColor; GlobalFree; GlobalLock; GlobalUnlock; LPtoDP; MessageBeep; MulDiv; RGB; RectVisible; RegisterClipboardFormat; ReleaseStgMedium; STGMEDIUM; SelectPalette; SetBkColor; SetBrushOrg; SetMapMode; SetRect; SetTextColor; SetViewportExt; SetWindowExt; abs; afxMemDF; max; memset; min

注意

このサンプルを含む一部のサンプルには、Visual C++ のウィザード、ライブラリ、およびコンパイラの変更が反映されていませんが、必要なタスクを実行する方法は示されています。

参照

その他の技術情報

MFC サンプル