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 クライアント アプリケーションでは、DVTARGETDEVICE の DEVMODE 構造体に割り当てるバイト数が少なすぎるため、ターゲット デバイスが正しく構築されません。 通常、DEVMODE の dmSize メンバーのバイト数のみを指定します。 割り当てるバイト数は、 dmSize + dmDriverExtra の合計である必要があります。 正しくないターゲット デバイスを使用して CreateDC 関数を呼び出すと、プリンター ドライバーは追加のバイトへのアクセスを試み、予期しない結果が発生する可能性があります。 クラッシュから保護し、追加のバイト数を使用できるようにするには、OLE 1 ターゲット デバイスから作成された OLE 2 ターゲット デバイスのサイズを埋め込みます。
要件
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリ |UWP アプリ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリ |UWP アプリ] |
Header | objidl.h |