OLEUIPASTESPECIALW 结构 (oledlg.h)

包含 OLE 用户界面库用于初始化“ 选择性粘贴 ”对话框的信息,以及用于在关闭对话框时库返回信息的空间。

语法

typedef struct tagOLEUIPASTESPECIALW {
  DWORD              cbStruct;
  DWORD              dwFlags;
  HWND               hWndOwner;
  LPCWSTR            lpszCaption;
  LPFNOLEUIHOOK      lpfnHook;
  LPARAM             lCustData;
  HINSTANCE          hInstance;
  LPCWSTR            lpszTemplate;
  HRSRC              hResource;
  LPDATAOBJECT       lpSrcDataObj;
  LPOLEUIPASTEENTRYW arrPasteEntries;
  int                cPasteEntries;
  UINT               *arrLinkTypes;
  int                cLinkTypes;
  UINT               cClsidExclude;
  LPCLSID            lpClsidExclude;
  int                nSelectedIndex;
  BOOL               fLink;
  HGLOBAL            hMetaPict;
  SIZEL              sizel;
} OLEUIPASTESPECIALW, *POLEUIPASTESPECIALW, *LPOLEUIPASTESPECIALW;

成员

cbStruct

结构大小(以字节为单位)。 必须在输入时填充此成员。

dwFlags

在输入时, dwFlags 指定初始化和创建标志。 退出时,它指定用户的选择。 它可能是以下标志的组合。

含义
PSF_SHOWHELP
对话框将显示“ 帮助” 按钮。
PSF_SELECTPASTE
对话框启动时将选中“ 粘贴 ”单选按钮。 如果未指定PSF_SELECTPASTE或PSF_SELECTPASTELINK,则这是默认值。 此外,它还指定对话框终止时按钮的状态。 IN/OUT 标志。
PSF_SELECTPASTELINK
将在对话框启动时选择 PasteLink 单选按钮。 此外, 指定对话框终止时按钮的状态。 IN/OUT 标志。
PSF_CHECKDISPLAYASICON
对话框终止时是否选中了“ 显示为图标 ”单选按钮。 OUT 标志。
PSF_DISABLEDISPLAYASICON
初始化时将禁用“显示为图标检查框。
HIDECHANGEICON
用于禁用对话框中的更改图标按钮,默认情况下,当用户粘贴 OLE 对象时,该按钮可供用户使用。 否则,请参阅 STAYONCLIPBOARDCHANGE
STAYONCLIPBOARDCHANGE
用于指示对话框在打开时剪贴板发生更改时保持运行状态。 如果用户切换到另一个应用程序并复制或剪切某些内容,则默认情况下,对话框将执行取消操作,这将删除该对话框,因为它正在向用户呈现的选项不再与剪贴板上的内容有关。
NOREFRESHDATAOBJECT
STAYONCLIPBOARDCHANGE (它不会) 执行任何操作。 如果在对话框打开时剪贴板发生更改,并且指定了 STAYONCLIPBOARDCHANGE ,则 NOREFRESHDATAOBJECT 指示对话框不应刷新对话框的内容以反映剪贴板的新内容。 如果应用程序在 IDataObject 上使用粘贴特殊对话框(例如,作为右键单击拖放操作的一部分),则这非常有用。

hWndOwner

拥有对话框的窗口。 此成员不应为 NULL

lpszCaption

指向要用作对话框标题的字符串的指针。 如果 为 NULL,则库使用 选择性粘贴

lpfnHook

指向用于处理用于对话框的消息的挂钩函数的指针。 挂钩函数必须返回零,才能将它未处理的消息传递回库中的对话框过程。 挂钩函数必须返回非零值,以防止库的对话框过程处理它已处理的消息。

lCustData

库传递给 lpfnHook 成员指向的挂钩函数的应用程序定义数据。 库在WM_INITDIALOG消息的 lParam 参数中传递指向 OLEUIPASTESPECIAL 结构的指针;此指针可用于检索 lCustData 成员。

hInstance

包含 由 lpTemplateName 成员指定的对话框模板的实例。

lpszTemplate

指向以 null 结尾的字符串的指针,该字符串指定要替换库的 “选择性粘贴 ”对话框模板的对话框模板的资源文件的名称。

hResource

自定义模板句柄。

lpSrcDataObj

指向要从剪贴板) 粘贴 (的数据对象的 IDataObject 接口的指针。 此成员在输入时填充。 如果在调用 OleUIPasteSpeciallpSrcDataObjNULL,则 OleUIPasteSpecial 将尝试从剪贴板检索指向 IDataObject 的指针。 如果 OleUIPasteSpecial 成功,则调用方负责释放在 lpSrcDataObj 中返回的 IDataObject

arrPasteEntries

指定可接受的格式的 OLEUIPASTEENTRY 数组。 此成员在输入时填充。

cPasteEntries

OLEUIPASTEENTRY 数组条目的数目。 此成员在输入时填充。

arrLinkTypes

可接受的链接类型列表。 在 arrPasteEntries 中使用 OLEUIPASTEFLAG 引用链接类型。 此成员在输入时填充。

cLinkTypes

链接类型数。 此成员在输入时填充。

cClsidExclude

lpClsidExclude 中的 CLSID 数。 此成员在输入时填充。

lpClsidExclude

指向要从粘贴操作的可用服务器对象列表中排除的 CLSID 数组的指针。 请注意,这不会影响 粘贴链接。 应用程序可以通过在此列表中列出自己的 CLSID 来阻止嵌入到自身中。 此字段在输入时填充。

nSelectedIndex

用户选择的 arrPasteEntries 的索引。 此成员在输出中填充。

fLink

用户选择了 “粘贴 ”还是“ 粘贴链接 ”。 此成员在输出中填充。

hMetaPict

包含用户选择的图标和图标标题的图元文件句柄。 此成员在输出中填充。

sizel

如果用户选择的显示方面与源中显示的方面匹配,则为源中显示的对象的大小。 如果用户选择其他方面,则 sizel.cxsizel.cy 都设置为零。 如果 fLinkFALSE ,则从 ObjectDescriptor 检索对象在源中显示的大小;如果 fLinkTRUE,则从 LinkSrcDescriptor 检索该对象的大小。 此成员在输出中填充。

注解

注意

oledlg.h 标头将 OLEUIPASTESPECIAL 定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非特定编码别名与非非特定编码的代码混合使用可能会导致不匹配,从而导致编译或运行时错误。 有关详细信息,请参阅 函数原型的约定

要求

要求
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
标头 oledlg.h

另请参阅

OLEUIPASTEENTRY

OLEUIPASTEFLAG

OleUIPasteSpecial