OleUIPasteSpecialA 函数 (oledlg.h)

调用标准的 “选择性粘贴 ”对话框,允许用户选择要粘贴或粘贴链接的剪贴板对象的格式。

语法

UINT OleUIPasteSpecialA(
  [in] LPOLEUIPASTESPECIALA unnamedParam1
);

参数

[in] unnamedParam1

指向 OLEUIPASTESPECIAL 结构的指针。

返回值

标准成功/错误定义

返回代码 说明
OLEUI_FALSE
未知故障 (未使用的) 。
OLEUI_OK
用户按下了“确定”按钮。
OLEUI_SUCCESS
无错误,与OLEUI_OK相同。
OLEUI_CANCEL
用户按下了“取消”按钮。
 

标准字段验证错误

返回代码 说明
OLEUI_ERR_STANDARDMIN
所有对话框的常见错误位于OLEUI_ERR_STANDARDMIN OLEUI_ERR_STANDARDMAX范围内。 此值允许应用程序测试标准消息,以便向用户显示错误消息。
OLEUI_ERR_STRUCTURENULL
指向传递到函数的 OLEUIXXX 结构的指针为 NULL
OLEUI_ERR_STRUCTUREINVALID
对 OLEUIXXX 结构的读取或写入访问权限不足。
OLEUI_ERR_CBSTRUCTINCORRECT
cbstruct 值不正确。
OLEUI_ERR_HWNDOWNERINVALID
hWndOwner 值无效。
OLEUI_ERR_LPSZCAPTIONINVALID
lpszCaption 值无效。
OLEUI_ERR_LPFNHOOKINVALID
lpfnHook 值无效。
OLEUI_ERR_HINSTANCEINVALID
hInstance 值无效。
OLEUI_ERR_LPSZTEMPLATEINVALID
lpszTemplate 值无效。
OLEUI_ERR_HRESOURCEINVALID
hResource 值无效。
 

初始化错误

返回代码 说明
OLEUI_ERR_FINDTEMPLATEFAILURE
找不到对话框模板。
OLEUI_ERR_LOADTEMPLATEFAILURE
无法加载对话框模板。
OLEUI_ERR_DIALOGFAILURE
对话框初始化失败。
OLEUI_ERR_LOCALMEMALLOC
LocalAlloc 或标准 IMalloc 分配器的调用失败。
OLEUI_ERR_GLOBALMEMALLOC
GlobalAlloc 或标准 IMalloc 分配器的调用失败。
OLEUI_ERR_LOADSTRING
无法调用 LoadString 从库中获取本地化的资源。
OLEUI_ERR_OLEMEMALLOC
对标准 IMalloc 分配器的调用失败。
 

特定于函数的错误

返回代码 说明
OLEUI_ERR_STANDARDMAX
所有对话框的常见错误位于OLEUI_ERR_STANDARDMIN OLEUI_ERR_STANDARDMAX范围内。 此值允许应用程序测试标准消息,以便向用户显示错误消息。
OLEUI_IOERR_SRCDATAOBJECTINVALID
OLEUIPASTESPECIALlpSrcDataObject 成员无效。
OLEUI_IOERR_ARRPASTEENTRIESINVALID
OLEUIPASTESPECIALarrPasteEntries 成员无效。
OLEUI_IOERR_ARRLINKTYPESINVALID
OLEUIPASTESPECIALarrLinkTypes 成员无效。
OLEUI_PSERR_CLIPBOARDCHANGED
显示对话框时剪贴板内容发生更改。
OLEUI_PSERR_GETCLIPBOAARDFAILED

lpSrcDataObj 成员不正确。

注解

选择性粘贴 ”对话框的设计假定如果你愿意允许用户链接到某个对象,则你也愿意允许用户嵌入该对象。 因此,如果设置了任何与 OLEUIPASTEFLAG 枚举关联的OLEUIPASTE_LINKTYPE标志,则还必须设置OLEUIPASTE_PASTE标志,以便数据格式显示在“ 选择性粘贴 ”对话框中。

在 Oledlg32.dll 中实现的标准“选择性粘贴”对话框的“源”字段中显示的文本是以 null 结尾的字符串,其偏移量(以字节为单位)在 OBJECTDESCRIPTOR 结构的 dwSrcofCopy 成员中指定,用于粘贴对象。 如果 OBJECTDESCRIPTOR 结构不可用于此对象,则对话框将显示可能与CF_LINKSOURCEDESCRIPTOR关联的任何文本。 如果两个结构都不可用,则对话框将查找CF_FILENAME。 如果找不到CF_FILENAME,对话框将显示字符串“未知源”。

若要释放从“插入对象”或“选择性粘贴”对话框返回的 HMETAFILEPICT,请删除句柄上附加的图元文件,如下所示。

 
void FreeHmetafilepict(HMETAFILEPICT hmfp) 
{ 
    if (hmfp != NULL) 
        { 
        LPMETAFILEPICT pmfp = GlobalLock(hmfp); 
 
        DeleteMetaFile(pmfp->hMF); 
        GlobalUnlock(hmfp); 
        GlobalFree(hmfp); 
        } 
    else
        {
        // Handle null pointers here.
        exit(0);
        }
}  // FreeHmetafilepict 

注意

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

要求

要求
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 oledlg.h
Library OleDlg.lib
DLL OleDlg.dll

另请参阅

OLEUIPASTEFLAG