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


Структура DVTARGETDEVICE (objidl.h)

Указывает сведения о целевом устройстве, для которого составляются данные. DVTARGETDEVICE содержит достаточно сведений о целевом устройстве Windows, поэтому дескриптор контекста устройства (HDC) можно создать с помощью функции CreateDC .

Синтаксис

typedef struct tagDVTARGETDEVICE {
  DWORD tdSize;
  WORD  tdDriverNameOffset;
  WORD  tdDeviceNameOffset;
  WORD  tdPortNameOffset;
  WORD  tdExtDevmodeOffset;
  BYTE  tdData[1];
} DVTARGETDEVICE;

Члены

tdSize

Размер структуры DVTARGETDEVICE в байтах. Начальный размер включается, что упрощает копирование структуры.

tdDriverNameOffset

Смещение (в байтах) от начала структуры до имени драйвера устройства, которое хранится в буфере tdData в виде строки, завершаемой значением NULL.

tdDeviceNameOffset

Смещение в байтах от начала структуры до имени устройства, которое хранится в буфере tdData в виде строки, завершающейся null. Это значение может быть равно нулю, чтобы указать отсутствие имени устройства.

tdPortNameOffset

Смещение в байтах от начала структуры до имени порта, которое хранится в буфере tdData в виде строки, заканчивающейся null. Это значение может быть равно нулю, чтобы указать отсутствие имени порта.

tdExtDevmodeOffset

Смещение (в байтах) от начала структуры к структуре DEVMODE , полученной путем вызова DocumentProperties.

tdData[1]

Массив байтов, содержащий данные для целевого устройства. Нет необходимости включать пустые строки в tdData (для имен, где значение смещения равно нулю).

Комментарии

Некоторые клиентские приложения OLE 1 неправильно создают целевые устройства, выделяя слишком мало байтов в структуре DEVMODE для DVTARGETDEVICE. Обычно они предоставляют только количество байтов в члене dmSizeDEVMODE. Количество выделенных байтов должно быть суммой dmSize + dmDriverExtra. При вызове функции CreateDC с неправильным целевым устройством драйвер принтера пытается получить доступ к дополнительным байтам, и могут возникнуть непредсказуемые результаты. Чтобы защититься от сбоя и предоставить доступ к дополнительным байтам, OLE заполняет размер целевых устройств OLE 2, созданных из целевых устройств OLE 1.

Требования

   
Минимальная версия клиента Windows 2000 Профессиональная [классические приложения | Приложения UWP]
Минимальная версия сервера Windows 2000 Server [классические приложения | Приложения UWP]
Верхняя часть objidl.h

См. также раздел

FORMATETC

IEnumFORMATETC

IViewObject

OleConvertOLESTREAMToiStorage