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


Функция OleUIInsertObjectW (oledlg.h)

Вызывает диалоговое окно "Стандартный" вставки объекта, позволяющее пользователю выбрать источник объекта и имя класса, а также параметр отображения объекта как самого или значка.

Синтаксис

UINT OleUIInsertObjectW(
  [in] LPOLEUIINSERTOBJECTW unnamedParam1
);

Параметры

[in] unnamedParam1

Указатель на OLEUIINSERTOBJECT структуру для этого диалогового окна.

Возвращаемое значение

Стандартные определения успешности и ошибок

Возвращаемый код Описание
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_LPSZFILEINVALID
Значение lpszFile недопустимо или у пользователя недостаточно разрешений на доступ к записи. Этот элемент lpszFile указывает на имя файла, связанного с ним или вставленного.
OLEUI_IOERR_PPVOBJINVALID
Недопустимое значение ppvOjb. Этот элемент указывает на расположение, в котором возвращается указатель для объекта.
OLEUI_IOERR_LPIOLECLIENTSITEINVALID
Недопустимое значение lpIOleClientS ite. Этот член указывает на клиентский сайт объекта.
OLEUI_IOERR_LPISTORAGEINVALID
Недопустимое значение lpIStorage. Этот член указывает на хранилище, которое будет использоваться для объекта.
OLEUI_IOERR_SCODEHASERROR
член lpIO содержит дополнительные сведения об ошибке.
OLEUI_IOERR_LPCLSIDEXCLUDEINVALID
Недопустимое значение lpClsidExclude. Этот элемент содержит список CLSID, которые следует исключить.
OLEUI_IOERR_CCHFILEINVALID
Недопустимое значение cchFile или lpszFile. Элемент cchFile указывает размер буфера lpszFile. Элемент lpszFile указывает на имя файла, связанного с ним или вставленного.

Замечания

OleUIInsertObject позволяет пользователю выбрать тип объекта, который нужно вставить из списка, содержащего приложения объектов, зарегистрированные в системе пользователя. Чтобы заполнить это поле списка, OleUIInsertObject проходит по реестру, добавив каждый сервер объектов, который он находит, что соответствует следующим критериям:

  • Запись реестра не включает раздел NotInsertable.
  • Запись реестра содержит ключ стиля OLE 1.0\\StdFileEditing\\Server.
  • Запись реестра включает раздел insertable.
  • CLSID объекта не включен в список объектов, которые следует исключить (lpClsidExclude члена OLEUIINSERTOBJECT).
По умолчанию oleUIInsertObject не проверяет серверы объектов, однако если флаг IOF_VERIFYSERVEREXIST включен в элемент dwFlags структуры OLEUIINSERTOBJECT, OleUIInsertObject проверяет, существует ли сервер. Если он не существует, объект сервера не добавляется в список доступных объектов. Проверка сервера — это обширная операция, и это значительный фактор производительности.

Чтобы освободить вставить объект или вставить специальные, удалите вложенный метафайл в дескриптор следующим образом:

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 определяет OLEUIINSERTOBJECT как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.

Требования

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

См. также

OLEUIINSERTOBJECT

OpenFile