Функция OleCreatePropertyFrameIndirect (olectl.h)
Создает фрейм свойства, то есть диалоговое окно страницы свойств, на основе структуры (OCPFIPARAMS), содержащей параметры, вместо указания отдельных параметров, как при вызове OleCreatePropertyFrame.
Синтаксис
WINOLECTLAPI OleCreatePropertyFrameIndirect(
[in] LPOCPFIPARAMS lpParams
);
Параметры
[in] lpParams
Указатель на структуру, выделенную вызывающим объектом, содержащую параметры создания диалогового окна.
Возвращаемое значение
Эта функция поддерживает стандартные возвращаемые значения E_INVALIDARG, E_OUTOFMEMORY и E_UNEXPECTED, а также следующие:
Код возврата | Описание |
---|---|
|
Диалоговое окно было вызвано и успешно выполнено. |
|
Недопустимый адрес в lpParams . Например, он может иметь значение NULL. |
Комментарии
Помимо cbStructSize (размер структуры) и dispIDInitialProperty, все члены структуры OCPFIPARAMS имеют ту же семантику, что и параметры oleCreatePropertyFrame. Если параметр dispIDInitialProperty DISPID_UNKNOWN, поведение двух функций идентично.
Работая в сочетании с IPerPropertyBrowsing и IPropertyPage2, dispIDInitialProperty позволяет вызывающей объекту указать, какое одно свойство должно быть выделено, когда диалоговое окно становится видимым. Эта функция недоступна при использовании OleCreatePropertyFrame. Чтобы определить изначально отображаемую страницу и свойство, фрейм свойства выполнит следующие действия:
- Вызовите (*ppUnk)->QueryInterface(IID_IPerPropertyBrowsing, ...), чтобы получить указатель интерфейса на первый объект.
- Вызовите метод IPerPropertyBrowsing::MapPropertyToPage(dispIDInitialProperty, ...), чтобы определить, какая страница CLSID содержит свойство для выделения. Все объекты, для которых вызывается этот кадр, должны поддерживать набор свойств, отображаемых в кадре.
- При создании диалогового окна страница свойств с идентификатором CLSID, извлеченным на шаге 2, активируется с помощью IPropertyPage::Activate.
- Фрейм свойства запрашивает у активной страницы IPropertyPage2.
- В случае успешного выполнения кадр вызывает IPropertyPage2::EditProperty(dispIDInitialProperty), чтобы выделить правильное поле в этом диалоговом окне.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | olectl.h |
Библиотека | OleAut32.lib |
DLL | OleAut32.dll |