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
用于指示对话框在对话框启动时剪贴板是否发生更改,以便保持保持状态。 如果用户切换到另一个应用程序并复制或剪切某些内容,则默认情况下,对话框将执行取消操作,这将删除该对话框,因为它在向用户演示期间的选项不再 up-to-date,与剪贴板上真正内容相关的日期。
NOREFRESHDATAOBJECT
STAYONCLIPBOARDCHANGE 结合使用(否则不执行任何操作)。 如果在对话框启动时剪贴板发生更改,并且 指定 STAYONCLIPBOARDCHANGE,则 NOREFRESHDATAOBJECT 指示对话框不应刷新对话框的内容以反映剪贴板的新内容。 如果应用程序在 IDataObject 上使用粘贴特殊对话框(例如,作为右键单击拖放操作的一部分),则这非常有用。

hWndOwner

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

lpszCaption

指向要用作对话框标题的字符串的指针。 如果 NULL,则库将使用 粘贴特殊

lpfnHook

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

lCustData

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

hInstance

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

lpszTemplate

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

hResource

自定义模板句柄。

lpSrcDataObj

指向要粘贴的数据对象的 IDataObject 接口的指针(从剪贴板)。 此成员在输入上填充。 如果在调用 OleUIPasteSpecial 时,lpSrcDataObj为 NULL,则 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 都设置为零。 如果 fLink FALSE,并且如果 fLink TRUE,则从源中显示的对象的大小从 ObjectDescriptor 中检索。 此成员在输出中填充。

言论

注意

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

要求

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

另请参阅

OLEUIPASTEENTRY

OLEUIPASTEFLAG

OleUIPasteSpecial