Метод IDataObject::GetData (objidl.h)
Вызывается потребителем данных для получения данных из исходного объекта данных. Метод GetData отрисовывает данные, описанные в указанной структуре FORMATETC , и передает их через указанную структуру STGMEDIUM . Затем вызывающий объект берет на себя ответственность за освобождение структуры STGMEDIUM .
Синтаксис
HRESULT GetData(
[in] FORMATETC *pformatetcIn,
[out] STGMEDIUM *pmedium
);
Параметры
[in] pformatetcIn
Указатель на структуру FORMATETC , которая определяет формат, среду и целевое устройство, используемое при передаче данных. С помощью логического оператора OR можно задать более одной среды передачи, разрешив методу выбирать лучшую среду передачи среди заданных.
[out] pmedium
Указатель на структуру STGMEDIUM , указывающий на носитель хранения, содержащий возвращаемые данные через элемент tymed, и ответственность за освобождение среды через значение ее элемента pUnkForRelease . Если pUnkForRelease имеет значение NULL, получатель среды отвечает за его освобождение; в противном случае pUnkForRelease указывает на IUnknown в соответствующем объекте, чтобы можно было вызвать его метод Release . Среда должна быть выделена и заполнена с помощью GetData.
Возвращаемое значение
Этот метод возвращает значение S_OK при успешном завершении. Ниже перечислены другие возможные значения.
Код возврата | Описание |
---|---|
|
Недопустимое значение для lindex ; В настоящее время поддерживается только -1. |
|
Недопустимое значение pformatetcIn . |
|
Недопустимое значение tymed . |
|
Недопустимое значение dwAspect . |
|
Объектное приложение не запущено. |
|
Произошла ошибка при выделении носителя. |
|
Произошла непредвиденная ошибка. |
|
Недопустимое значение dwDirection . |
|
Недостаточно доступной памяти для этой операции. |
Комментарии
Потребитель данных вызывает GetData для получения данных из объекта данных, передаваемых через среду хранения (определяемую структурой STGMEDIUM ).
Примечания к вызывающим абонентам
С помощью логического оператора OR можно указать несколько допустимых симированных сред. GetData должен выбрать из значений OR, которые лучше всего представляют данные, выполнить выделение и указать ответственность за освобождение среды.Данные, передаваемые через поток, простираются от нулевого положения указателя потока до позиции непосредственно перед текущим указателем потока (то есть положение указателя потока при выходе).
Примечания для разработчиков
GetData должен проверка все поля в структуре FORMATETC. Важно, чтобы GetData отрисовыл запрошенный аспект и, по возможности, использовал запрошенный носитель. Если объект данных не может соответствовать сведениям, указанным в FORMATETC, метод должен вернуть DV_E_FORMATETC. Если попытка выделить среду завершается сбоем, метод должен вернуть STG_E_MEDIUMFULL. Важно заполнить все поля в структуре STGMEDIUM .Хотя вызывающий объект может указать несколько носителей для возврата данных, GetData может предоставить только один носитель. Если начальная передача завершается сбоем с выбранным носителем, этот метод можно реализовать, чтобы попробовать один из других указанных носителей перед возвратом ошибки.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | objidl.h |