C O lePasteSpecialDialog

COlePasteSpecialDialog 类 用 于 OLE Paste Special 对 话 框 。 当 应 用 程 序 想 要 调 用这 个 对 话 框 时 , 可 创 建 一 个 COlePasteSpecialDialog 对 象 。 当 构 造 了COlePasteSpecialDialog 对 象 之 后 , 应 用 程 序 可 用 m_ps 结 构 来 初 始 化 对 话 框 各个 控 件 的 值 或 状 态 。 m_ps 结 构 是 OLEUIPASTESPECIAL 类 型 。

如 果 要 获 取 有 关 OLE 专 用 对 话 框 的 信 息 , 请 参 阅 “ Visual C++ 程 序 员 指 南 ” 一书 中 的 文 章 “ OLE 中 的 对 话 框 ” 。

#include <afxodlgs.h>

请 参 阅 COleDialog

CO lePasteSpecialDialog 类 成 员

Data Members

m_ps 一 个 控 件 对 话 框 功 能 的 OLEUIPASTESPECIAL 类型 的 结 构

Construction

ColePasteSpecialDialog 构 造 一 个 COlePasteSpecialDialog 对 象

Operations and Attributes

DoModal 显 示 OLE Paste Special 对 话 框

AddFormat 将 定 制 格 式 增 加 到 应 用 程 序 可 以 粘 贴 的 格 式 表 中

AddStandardFormats 将 CF_BITMAP , CF_DIB , CF_METAFILEPICT

和 CF_LINKSOURCE 增 加 到 应 用 程 序 的 可 粘 贴 格式 表 中

CreateItem 用 指 定 格 式 在 容 器 文 档 中 创 建 项

GetSelectionType 获 取 所 选 择 项 的 类 型

GetDrawAspect 判 定 是 否 将 项 绘 制 成 一 个 图 标 GetIconicMetafile 获 取 与 此 项 的 图 标 格 式 相 关 联 的 源 文 件 的 句 柄GetPasteIndex 获 取 用 户 选 择 的 可 用 粘 贴 项 的 索 引

成 员 函 数

CO lePasteSpecialDialog::AddFormat

void AddFormat( const FORMATETC& fm t , LPTSTR lpstrForma t, LP T STR lpstrResult , DWORD flags ) ;

void AddFormat( UINT c f, DWORD tymed , UINT nFormatID , BOOL bEnableIcon , BOOL b L ink );

参 数

fm t

对 要 添 加 的 数 据 类 型 的 引 用 。

lpstrFormat

向 用 户 描 述 格 式 的 字 符 串 。

lpstrResult

如 果 对 话 框 中 选 择 了 此 格 式 , 则 该 参 数 为 描 述 结 构 的 字 符 串 。

flags

指 定 此 格 式 可 用 的 不 同 链 接 和 嵌 入 项 。 此 标 志 是 一 个 或 多 个 不 同 的

OLEUIPASTE F- LAG 枚 举 值 的 位 或 组 合 。

cf

要 添 加 的 剪 贴 板 格 式 。

tymed

格 式 中 可 用 的 媒 介 类 型 。 它 是 一 个 或 多 个 TYMED 枚 举 值 的 位 或 组 合 。

n rormatID

标 识 格 式 的 字 符 串 的 ID 。 这 个 格 式 字 符 串 是 两 个 “ \n ” 字 符 间 隔 的 独 立字 符 串 。 第 一 个 字 符 串 与 lpstrFormat 参 数 中 传 递 的 字 符 串 相 同 ; 第 二 个字 符 串 与 lpstrResult 参 数 相 同 。

bEnableIcon

  • 个 标 志 , 用 于 确 定 当 在 列 表 框 中 选 择 此 格 式 时 ,

    Display As Icon 复 选 框是 否 活 动 。

bLink

  • 个 标 志 , 用 于 确 定 当 在 列 表 框 中 选 择 此 格 式 时 , Paste

    Link 单 选 按 钮 是否 活 动 。

说 明

这 个 函 数 将 几 种 新 格 式 增 加 到 应 用 程 序 可 在 Paste Special 操 作 中 支 持 的 格 式 表中 。 该 函 数 可 用 于 增 加 标 准 格 式 如 CF_TEXT 或 CF_TIFF , 也 可 用 于 增 加 应 用程 序 已 向 OLE 系 统 注 册 的 定 制 格 式 。 有 关 向 应 用 程 序 中 粘 贴 数 据 对 象 的 详 细信 息 , 参 考 “ Visual C++ 程 序 员 指 南 ” 一 书 中 的 文 章 “ 数 据 对 象 和 数 据 源 : 操作 ” 。

要 获 取 更 多 的 信 息 , 请 参 见 “ OLE 2.01 用 户 接 口 库 ” 中 的 OLEUIPASTEFLAG

枚 举 类 型 。

请 参 阅 CO lePasteSpecialDialog::AddStandardFormats

CO lePasteSpecialDialog::AddStandardFormats

void AddStandardFormats( BOOL bEnableLink = TRUE );

参 数

bEnableLink

一 个 标 志 , 用 于 确 定 是 否 将 CF_LINKSOURCE 增 加 到 应 用 程 序 可 粘 贴 的格 式 表 中 。

说 明

此 函 数 用 于 将 一 系 列 剪 贴 板 格 式 增 加 到 应 用 程 序 在 Paste Special 操 作 中 可 支 持的 格 式 表 中 :

  • CF_BITMAP

  • CF_DIB

  • CF_METAFILEPICT

  • “ 嵌 入 对 象 ( Embedded Object ) ”

  • ( 可 选 ) “ 链 接 源 ( Link Source )” 这 些 格 式 是 用 来 支 持

    嵌 入 和 链 接 的 。

请 参 阅 COlePasteSpecialDialog::AddFormat

CO lePasteSpecialDialog::COlePasteSpecialDialog

COlePasteSpecialDialog( DWORD dwFlags = PSF_SELECTPASTE, COleDataObject* pDataObject = NULL, CWnd* pParentWnd = NULL );

参 数

dwFlags

创 建 标 志 , 包 含 下 列 标 志 中 的 任 意 多 个 , 各 值 之 间 用 位 或 O R 操 作 符 组

  • PSF_SELECTPASTE 表 明 当 调 用 对 话 框 时 , Paste 单 选 按 钮 被

    初 始 选中 。 该 标 志 不 能 和 PSF_SELECTPASTELINK 一 起 使 用 。 它 是 缺 省 值 。

  • PSF_SELECTPASTELINK 表 明 当 调 用 对 话 框 时 , Paste Link 单 选

    按钮 被 初 始 选 中 。 该 标 志 不 能 与 PSF_SELECTPASTE 一 起 使 用 。

  • PSF_CHECKDISPLAYASICON 表 明 当 调 用 对 话 框 时 ,Display As Icon

复 选 框 被 初 始 选 中 。

  • PSF_SHOWHELP 表 明 当 调 用 对 话 框 时 , 将 显 示 Help 按 钮 。

pDataObject

指 向 剪 贴 板 上 的 COleDat a Object 对 象 。

pParentWnd

指 向 对 话 框 对 象 所 属 的 父 或 属 主 窗 口 对 象 ( CWnd 类 型 ) 。 如 果 该 参 数

说 明

此 函 数 只 创 建 COlePasteSpecialDialog 对 象 。 要 显 示 此 对 话 框 , 需 调 用 DoModal

函 数 。

要 获 取 更 多 的 信 息 , 请 参 见 “ OLE 2.01 用 户 接 口 库 ” 中 的 OLEUIPASTEFLAG

枚 举 类 型 。

请 参 阅 COleDataObject , COlePasteSpecialDialog::DoModal

CO lePasteSpecialDialog::CreateItem

BOOL CreateItem( COleClientItem* pNewItem );

返 回 值

如 果 创 建 成 功 则 返 回 非 零 值 ; 否 则 返 回 0 。

参 数

pNewItem

指 向 一 个 COleClientItem 实 例 。 该 参 数 不 能 是 NULL 。

说 明

此 函 数 创 建 在 Paste Special 对 话 框 中 所 选 择 的 新 项 。 该 函 数 只 应 在 DoModal 返回 IDOK 之 后 被 调 用 。

请 参 阅 COleClientItem , ColePasteSpecialDialog::Do M oda l,

COlePasteSpecialDialog::GetSelectionType, COlePasteSpecialDialog:: COlePasteSpecialDialog

CO lePasteSpecialDialog::DoModal

virtual int DoModal();

返 回 值

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

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

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

  • IDABORT 如 果 返 回 的 是 IDABORT , 则 要 调 用

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

说 明

此 函 数 用 来 显 示 OLE Paste Special 对 话 框 。

如 果 你 想 通 过 设 置 m_ps 结 构 的 成 员 函 数 来 初 始 化 不 同 的 对 话 框 控 件 , 则 你 必须 在 调 用 DoModal 之 前 , 但 在 构 造 了 对 话 框 对 象 之 后 进 行 。

如 果 DoModal 返回 IDOK , 则 你 可 以 调 用 其 它 成 员 函 数 来 获 取 各 个 设 置 或 由 用户 在 对 话 框 中 输 入 的 信 息 。

请 参 阅 COleDataObjec t, COleDialog::GetLastError, CDialog::DoModal, COlePasteSpecialDialog:: COlePasteSpecialDialog , COlePasteSpecialDialog::GetDrawAspect, COlePasteSpecialDialog::GetIconicMetafile ,

COlePasteSpecialDialog::GetPasteIndex ,

COlePasteSpecialDialog::GetSelectionType CO lePasteSpecialDialog::GetDrawAspect DVASPECT GetDrawAspect() const;

返 回 值

返 回 用 来 显 示 对 象 的 方 法 。

  • DVASPECT_CONTENT 如 果 当 对 话 框 消失 时 , Display As Icon 复 选

    框 未被选 择 , 则 返 回 此 值 。

  • DVASPECT_ICON 如 果 当 对 话 框 消 失 时 , Display As Icon 复 选

    框 被 选 择 , 则 返 回 此 值 。

说 明

此 函 数 用 来 确 定 用 户 是 否 选 择 了 将 所 选 项 显 示 为 一 个 图 标 。 仅 在 DoModal 返 回

ID O K 后 才 调 用 这 个 函 数 。

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

请 参 阅 COlePasteSpecialDialog::DoModal

CO lePasteSpecialDialog::GetIconicMetafile

HGLOBAL GetIconicMetafile() const;

返 回 值

如 果 在 选 择 O K 取 消 对 话 框 时 , D isplay As Icon 复 选 框 被 选 择 , 则 返 回 值 为 包含 所 选 项 的 图 标 特 征 的 源 文 件 句 柄 ; 否 则 返 回 值 为 NULL 。

说 明

此 函 数 获 取 与 用 户 所 选 项 相 关 联 的 源 文 件 。

请 参 阅 COlePasteSpecialDialog::GetDrawAspect ,

CO lePasteSpecialDialog::GetPasteIndex

int GetPasteIndex() const;

返 回 值

返 回 值 为 用 户 所 选 项 在 OLEUIPASTEENTRY 结 构 数 组 中 的 索 引 。 在 执 行 粘 贴操 作 时 , 将 使 用 对 应 于 所 选 索 引 的 格 式 。

说 明

此 函 数 获 取 与 用 户 所 选 项 相 关 的 索 引 值 。

如 果 要 获 取 更 多 的 信 息 , 请 参 见 “ OLE 2.01 用 户 接 口 库 ” 中 的

OLEUIPASTEENTRY 结 构 。

CO lePasteSpecialDialog::GetSelectionType

UINT GetSelectionType() const;

返 回 值

返 回 所 作 的 选 择 的 类 型 。

说 明

此 函 数 用 来 决 定 用 户 所 作 的 选 择 的 类 型 。

返 回 类 型 的 值 由 Selection 枚 举 类 型 指 定 , 该 枚 举 类 型 是 在

COlePasteSpecialDialog 类 中 声 明 的 。

enum Selection

{

pasteLink, pasteNormal, pasteOther, pasteStatic,

};

有 关 这 些 值 的 简 短 说 明 如 下 所 示 :

  • COlePasteSpecialDialog::pasteLink Paste Link 单 选 按 钮 被 选 择 ,

    所 选 的 格式 是 一 个 标 准 的 OLE 格 式 。

  • COlePasteSpecialDialog::pasteNormal Paste 单 选 按 钮 被 选 择 , 所

    选 的 格 式是 一 个 标 准 的 OLE 格 式 。

  • COlePasteSpecialDialog::pasteOther 被 选 择 的 格 式 不 是 一 个 标

    准 的 格 式 。

  • COlePasteSpecialDialog::pasteStatic 被 选 择 的 格 式 是 一 个 图 元

    文 件 。

请 参 阅 COlePasteSpecialDialog::DoModal

数 据 成 员

CO lePasteSpecialDialog::m_ps

说 明

此 数 据 成 员 是 一 个 OLEUIPASTESPECIAL 类 型 的 结 构 , 用 于 控 制 P as te Special

对 话 框 的 行 为 。 该 结 构 的 成 员 可 以 被 直 接 修 改 , 也 可 以 通 过 成 员 函 数 修 改 。

请 参 阅 COlePasteSpecialDialog:: COlePasteSpecialDialog, COlePasteSpecialDialog::DoModal