다음을 통해 공유


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 구조에서 너무 적은 바이트를 할당하여 대상 디바이스를 잘못 구성합니다. 일반적으로 DEVMODEdmSize 멤버에 있는 바이트 수만 제공합니다. 할당할 바이트 수는 dmSize + dmDriverExtra의 합계여야 합니다. 잘못된 대상 디바이스를 사용하여 CreateDC 함수를 호출하면 프린터 드라이버가 추가 바이트에 액세스하려고 시도하며 예측할 수 없는 결과가 발생할 수 있습니다. 크래시로부터 보호하고 추가 바이트를 사용할 수 있도록 OLE는 OLE 1 대상 디바이스에서 만든 OLE 2 대상 디바이스의 크기를 패딩합니다.

요구 사항

   
지원되는 최소 클라이언트 Windows 2000 Professional [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows 2000 Server [데스크톱 앱 | UWP 앱]
머리글 objidl.h

추가 정보

Formatetc

IEnumFORMATETC

IViewObject

OleConvertOLESTREAMToIStorage