C O leInsertDialog

COleInsertDialog

COleInsertDialog 类 用 于 OLE Insert Object 对 话 框 。 当 你 要 调 用 这 个 对 话 框 时 , 创 建 一 个 COleInsertDialog 类 对 象 。 在 构 造 了 一 个 COleInsertDialog 对 象 后 , 你就 可 以 使 用 m_io 结 构 来 初 始 化 对 话 框 控 件 中 的 控 件 的 值 或 状 态 。 m_io 结 构 的类 型 是 OLEUINSERTOBJECT 。 有 关 使 用 这 个 对 话 框 类 的 更 多 信 息 , 参 见DoModal 成 员 函 数 。

注 意 AppWizard 生 成 的 容 器 代 码 使 用 了 这 个 类 。

更 多 的 信 息 , 参 见 “ OLE 2.0 用 户 接 口 库 ” 中 的 OLEUINSERTOBJECT 结 构 。

#include <afxodlgs.h>

请 参 阅 COleDialog

CO leInsertDialog 类 成 员

Data Members

m_io 一 个 OLEUIINSERTOBJECT 类 型 的 结 构 , 用 来 控制 该 对 话 框 的 行 为

Construction

ColeInsertDialog 构 造 一 个 COleInsertDialog 对 象

Operations and Attributes

DoModal 显 示 该 OLE Insert Object 对 话 框

CreateItem 创 建 在 该 对 话 框 中 选 择 的 项

GetSelectionType 获 取 被 选 择 对 象 的 类 型

GetClassID 获 取 与 被 选 择 项 关 联 的 CLSID GetDrawAspect 确 定 是 否 将 该 项 绘 制 为 一 个 图 标

GetIconicMetafile 获 取 一 个 与 这 个 项 的 图 标 形 式 关 联 的 图 元 文 件 的

句 柄

GetPathName 获 取 在 该 对 话 框 中 选 择 的 文 件 的 全 路 径

成 员 函 数

CO leInsertDialog::COleInsertDialog

COleInsertDialog ( DWORD dwFlags = IOF_SELECTCREATENEW, CWnd* pParentWnd = NULL );

参 数

dwFlags

创 建 标 志 , 包 含 下 列 值 的 任 意 位 或 ( OR ) 组 合 :

  • IOF_SHOWHELP 指 定 当 对 话 框 被 调 用 时 , 显 示 Help 按 钮 。

  • IOF_SELECTCREATENEW 指 定 当 对 话 框 被 调 用 时 , Create New

    单选 按 钮 将 被 初 始 选 择 。 这 是 缺 省 的 , 并 且 不 能 与IOF_SELECTCREATEFROMFILE 一 起 使 用 。

  • IOF_SELECTCREATEFROMFILE 指 定 当 对 话 框 则 调 用 时 , Create

    From File 当 选 按 钮 被 初 始 选 择 。 不 能 与 IOF_SELECTCREATENEW 一 起 使 用 。

  • IOF_CHECKLINK 指 定 当 对 话 框 被 调 用 时 , Link 复 选 框 将 被

    初 始 核选。

  • IOF_DISABLELINK 指 定 当 对 话 框 被 调 用 时 , Link 复 选 框 将

    被 初 始核 选 。

  • IOF_CHECKDISPLAYASICON 指 定 当 对 话 框 被 调 用 时 , D isplay As

    Icon 复 选 框 将 被 初 始 核 选 , 当 前 图 标 将 被 显 示 , 而 且 Change Icon 按钮将 会 有 效 。

  • IOF_VERIFYSERVERSEXIST 指 定 该 对 话 框 将 通 过 确 保 在 对 话 框

    显示 之 前 在 注 册 数 据 库 中 指 定 的 服 务 器 已 经 存 在 来 使 由 它 添 加 到 列 表 框

中 的 类 有 效 。 设 置 这 个 标 志 将 将 明 显 削 弱 性 能 。

pParentWnd

指 向 该 对 话 框 所 属 的 父 或 宿 主 窗 口 对 象( CWnd 类 型 )。如 果 它 是 NULL , 则 对 话 框 对 象 的 父 窗 口 被 设 置 为 应 用 程 序 主 窗 口 。

说 明

此 成 员 函 数 只 用 来 构 造 一 个 COleInsertDialog 对 象 。 要 显 示 这 个 对 话 框 , 调 用

DoModal 函 数 。

请 参 阅 COleInsertDialog::DoModal

CO leInsertDialog::CreateItem

BOOL CreateItem( COleClientItem* pItem );

返 回 值

如 果 创 建 了 项 则 返 回 非 零 值 ; 否 则 返 回 0 。

参 数

pItem

指 向 将 要 被 创 建 的 项 。

说 明

只 有 在 DoModal 返 回 ID O K 时 , 此 成 员 函 数 用 来 创 建 一 个 COleClientItem 类型的 对 象 。 在 你 调 用 这 个 函 数 之 前 , 你 必 须 分 配 COleClientItem 对 象 。

请 参 阅 COleClientItem::CreateLinkFromFile, COleClientItem::CreateFromFile,

COleClientItem::CreateNewItem, COleClientItem::SetDrawAspect, COleInsertDialog::GetSelectionType, COleInsertDialog::DoModal

CO leInsertDialog::DoModal

virtual int DoModal( );

int DoModal( DWORD dwFlags );

返 回 值

返 回 对 话 框 的 完 成 状 态 。 可 以 是 下 列 值 之 一 :

  • IDOK 如 果 对 话 框 被 成 功 显 示 。

  • IDCANCEL 如 果 用 户 取 消 了 对 话 框 。

  • IDABORT 如 果 发 生 了 一 个 错 误 。 如 果 返 回 的 是 IDABORT ,

    调 用COleDialog:: GetLastError 成 员 函 数 来 获 取 更 多 有 关 所 发 生 的 错 误 的 类 型 的信 息 。 可 能 发 生 的 错 误 的 列 表 , 参 见 “ OLE 2.01 用 户 接 口 库 ” 中 的OleUIInsertObject。

参 数

dwFlags

是 下 列 值 之 一 :

  • COleInsertDialog::DocObjectOnly 将 只 插 入 DocObjects 。

  • COleInsertDialog::ControlsOnly 将 只 插 入 ActiveX 控 件 。

如 果 是 零 , 则 DoModal 将 既 不 插 入 一 个 DocObjects , 也 不 插 入 一 个 ActiveX 控件 ; 它 的 返 回 值 与 上 面 所 列 的 第 一 种 原 形 的 返 回 值 一 样 。

说 明

此 函 数 用 来 显 示 该 OLE Insert Object 对 话 框 。

如 果 你 想 通 过 设 置 m_io 结 构 的 成 员 来 初 始 化 不 同 的 对 话 框 控 件 , 你 应 该 在 第一 DoModal 之 前 , 但 在 对 话 框 对 象 被 构 造 之 后 进 行 。

如 果 DoModal 返 回 的 是 ID O K , 则 你 可 以 调 用 其 它 的 成 员 函 数 来 获 取 用 户 输 入到 此 对 话 框 中 的 设 置 或 信 息 。

请 参 阅 COleDialog::GetLastError, CDialog::DoModal, COleInsertDialog::GetSelectionType,

COleInsertDialog::GetClassID, COleInsertDialog::GetDrawAspect, COleInsertDialog::GetIconicMetafile, COleInsertDialog::GetPathName, COleInsertDialog::m_io

CO leInsertDialog::GetClassID const CLSID& GetClassID( ) const; 返 回 值

返 回 与 被 选 择 项 相 关 的 CLSID 。

说 明

只 有 在 DoModal 返 回 ID O K 时 , 并 且 该 选 择 的 类 型 是COleInsertDialog::createNewItem 时 , 才 调 用 此 成 员 函 数 来 获 取 与 所 选 项 关 联 的CLSID 。

更 多 的 信 息 , 参 见 “ OLE 2 程 序 员 参 考 , 卷 1 ” 中 的 CLSID Key 。

请 参 阅 COleInsertDialog::DoModal, COleInsertDialog::GetSelectionType

CO leInsertDialog::GetDrawAspect DVASPECT GetDrawAspect( ) const; 返 回 值

返 回 显 示 对 象 所 需 要 的 方 法 。

  • DVASPECT_CONTENT 如 果 D isplay As Icon 复 选 框 没 有 被 核 选 则

    返 回 此值 。

  • DVASPECT_ICON 如果 Display As Icon 复 选 框 被 核 选 则 返 回 此 值

说 明

此 成 员 函 数 用 来 确 定 用 户 是 否 选 择 了 将 所 选 的 项 显 示 为 图 标 。 如 果 DoModal 返回 的 是 ID O K 则 调 用 此 函 数 。

有 关 绘 制 方 面 的 更 多 信 息 , 参 见“ OLE 2 程 序 员 参 考 ,卷 1 ” 中 的 FORMATETC

数 据 结 构 。

请 参 阅 COleInsertDialog::DoModal, COleInsertDialog::COleInsertDialog

CO leInsertDialog::GetIconicMetafile HGLOBAL GetIconicMetafile( ) const; 返 回 值

当 通 过 选 择 O K 关 闭 对 话 框 时 , 如 果 Display As Icon 复 选 框 被 核 选 , 则 返 回 包含 所 选 项 的 图 标 的 图 元 文 件 的 句 柄 ; 否 则 , 返 回 NULL 。

说 明

此 成 员 函 数 用 来 获 取 包 含 所 选 项 的 图 标 的 图 元 文 件 的 句 柄 。

请 参 阅 COleInsertDialog::DoModal, COleInsertDialog::GetDrawAspect

CO leInsertDialog::GetPathName

CString GetPathName( ) const;

返 回 在 对 话 框 中 选 择 的 文 件 的 全 路 径 。 如 果 选 择 的 类 型 是 createNewItem , 则 在发 行 模 式 下 函 数 返 回 一 个 没 有 意 义 的 CString, 在 调 试 模 式 下 则 给 出 一 个 断 言 。

说 明

只 有 在 DoModal 返 回 IDOK 并 且 选 择 的 类 型 不 是

COleInsertDialog:: CreateNewItem 时 , 此 成 员 函 数 用 来 获 取 所 选 文 件 的 全 路 径 。

请 参 阅 COleInsertDialog::GetSelectionType, COleInsertDialog::DoModal

CO leInsertDialog::GetSelectionType

UINT GetSelectionType( ) const;

返 回 所 做 选 择 的 类 型 。

说 明

当 通 过 选 择 O K 关 闭 Insert Object 对 话 框 时 , 调 用 此 成 员 函 数 来 获 取 所 做 选 择的 类 型 。

返 回 类 型 的 值 由 在 COleInsertDialog 类 中 定 义 的 Selection 枚 举 类 型 来 指 定 。

enum Selection

{

createNewItem, insertFromFile, linkToFile

};

有 关 这 些 值 的 简 短 描 述 如 下 所 示 :

  • COleInsertDialog::createNewItem Create New 单 选 按 钮 被 选 择 。

  • COleInsertDialog::insertFromFile Create From File 单 选 按 钮 被 选

    择 , 并 且

Link 复 选 框 没 有 被 核 选 。

  • COleInsertDialog::linkToFile Create From File 单 选 按 钮 被 选 择

    , 并 且 Link

复 选 框 被 核 选 。

请 参 阅 COleInsertDialog::DoModal, COleInsertDialog::COleInsertDialog

数 据 成 员

CO leInsertDialog::m_io

说 明

此 数 据 成 员 是 OLEUIINSERTOBJECT 类 型 的 结 构 , 用 来 控 制 Insert Object 对 话框 的 行 为 。 这 个 结 构 的 成 员 可 以 被 直 接 修 改 或 通 过 成 员 函 数 来 修 改 。

请 参 阅 COleInsertDialog::COleInsertDialog, COleInsertDialog::DoModal