DVTARGETDEVICE 構造体 (objidl.h)

データを構成するターゲット デバイスに関する情報を指定します。 DVTARGETDEVICE には Windows ターゲット デバイスに関する十分な情報が含まれているため、CreateDC 関数を使用してデバイス コンテキスト (HDC) へのハンドルを作成できます。

構文

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 で終わる文字列として格納されます。 この値には、デバイス名がないことを示す 0 を指定できます。

tdPortNameOffset

構造体の先頭からポート名までのオフセット (バイト単位)。 tdData バッファーに NULL で終わる文字列として格納されます。 この値には、ポート名がないことを示す 0 を指定できます。

tdExtDevmodeOffset

DocumentProperties を呼び出して取得した構造体の先頭から DEVMODE 構造体までのオフセット (バイト単位)。

tdData[1]

ターゲット デバイスのデータを含むバイト配列。 tdData に空の文字列を含める必要はありません (オフセット値が 0 の名前の場合)。

解説

一部の OLE 1 クライアント アプリケーションでは、DVTARGETDEVICEDEVMODE 構造体に割り当てるバイト数が少なすぎるため、ターゲット デバイスが正しく構築されません。 通常、DEVMODEdmSize メンバーのバイト数のみを指定します。 割り当てるバイト数は、 dmSize + dmDriverExtra の合計である必要があります。 正しくないターゲット デバイスを使用して CreateDC 関数を呼び出すと、プリンター ドライバーは追加のバイトへのアクセスを試み、予期しない結果が発生する可能性があります。 クラッシュから保護し、追加のバイト数を使用できるようにするには、OLE 1 ターゲット デバイスから作成された OLE 2 ターゲット デバイスのサイズを埋め込みます。

要件

   
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリ |UWP アプリ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリ |UWP アプリ]
Header objidl.h

関連項目

FORMATETC

IEnumFORMATETC

IViewObject

OleConvertOLESTREAMToIStorage