Поделиться через


Функция 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
Недопустимый элемент LPSrcDataObject OLEUIPASTESPECIAL.
OLEUI_IOERR_ARRPASTEENTRIESINVALID
Элемент arrPasteEntries OLEUIPASTESPECIAL является недопустимым.
OLEUI_IOERR_ARRLINKTYPESINVALID
Недопустимый элемент arrLinkTypesOLEUIPASTESPECIAL.
OLEUI_PSERR_CLIPBOARDCHANGED
Содержимое буфера обмена изменилось во время отображения диалогового окна.
OLEUI_PSERR_GETCLIPBOAARDFAILED

Элемент lpSrcDataObj неверный.

Замечания

В диалоговом окне Вставка специального предполагается, что если вы хотите разрешить пользователю связаться с объектом, вы также готовы разрешить пользователю внедрить этот объект. По этой причине, если задано любое из флагов OLEUIPASTE_LINKTYPE, связанных с перечислением OLEUIPASTEF LAG, то флаг OLEUIPASTE_PASTE также должен быть установлен, чтобы форматы данных отображались в диалоговом окне Вставка специальных.

Текст, отображаемый в поле исходного стандартного диалогового окна вставки специального, реализованного в Oledlg32.dll, представляет собой строку, завершающую значение NULL, смещение в байтах, указанное в dwSrcofCopy член структуры OBJECTDESCRIPTOR для вставленного объекта. Если объект 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);
    }
}

Заметка

Заголовок oledlg.h определяет OLEUIPASTESPECIAL как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows 2000 Профессиональный [только классические приложения]
минимальный поддерживаемый сервер Windows 2000 Server [только классические приложения]
целевая платформа Виндоус
заголовка oledlg.h
библиотеки OleDlg.lib
DLL OleDlg.dll

См. также

OLEUIPASTEFLAG