Метод IPropertyPage::SetObjects (ocidl.h)
Предоставляет страницу свойств с массивом указателей на объекты, связанные с этой страницей свойств.
Когда страница свойств получает вызов метода IPropertyPage::Apply, она должна отправлять изменения значений в эти объекты с помощью соответствующих интерфейсов. Страница свойств должна запрашивать эти интерфейсы. Этот метод может завершиться ошибкой, если объекты не поддерживают интерфейсы, ожидаемые страницей свойств.
Синтаксис
HRESULT SetObjects(
[in] ULONG cObjects,
[in] IUnknown **ppUnk
);
Параметры
[in] cObjects
Количество указателей в массиве, на который указывает ppUnk. Если этот параметр равен 0, страница свойств должна освободить все указатели, ранее переданные этому методу.
[in] ppUnk
Указатель на массив указателей интерфейса IUnknown , где каждый указатель идентифицирует уникальный объект, затронутый листом свойств, в котором отображаются эти (и, возможно, другие) страницы свойств. Страница свойств должна кэшировать эти указатели, вызывающие AddRef для каждого указателя в это время. Этот массив указателей совпадает с массивом указателей, переданным в OleCreatePropertyFrame или OleCreatePropertyFrameIndirect для вызова страницы свойств.
Возвращаемое значение
Этот метод может возвращать стандартные возвращаемые значения E_FAIL, E_INVALIDARG, E_OUTOFMEMORY и E_UNEXPECTED, а также следующие значения.
Код возврата | Описание |
---|---|
|
Страница свойств успешно сохранила необходимые указатели. |
|
Один из объектов в ppUnk не поддерживал интерфейс, ожидаемый этой страницей свойств, поэтому эта страница свойств не может взаимодействовать с ней. |
|
Недопустимый адрес в ppUnk . Например, он может иметь значение NULL. |
Комментарии
Страница свойств требуется для сохранения указателей, возвращаемых этим методом или другими пользователями, запрашиваемыми через них. Если эти конкретные указатели IUnknown удерживаются, страница свойств должна вызывать AddRef через каждый при их кэшировании, пока не будет вызван SetObjects с cObjects , равным 0. В это время страница свойств должна вызывать Release через каждый указатель, освобождая все объекты, которые она удерживает.
Вызывающий объект должен предоставить страницу свойств с этими объектами перед вызовом IPropertyPage::Activate и должен вызвать SetObjects с нулевым параметром при деактивации страницы или при полном освобождении объекта. Каждый вызов SetObjects с параметром ppUnk, отличным от NULL, должен сопоставляться с последующим вызовом SetObjects с 0 в параметре cObjects.
Примечания для разработчиков
E_NOTIMPL не является допустимым возвращаемым значением.Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | ocidl.h |