DOCUMENTPROPERTYHEADER 구조체(winddiui.h)

DOCUMENTPROPERTYHEADER 구조체는 프린터 인터페이스 DLL의 DrvDocumentPropertySheets 함수에 대한 입력 매개 변수로 사용됩니다.

구문

typedef struct _DOCUMENTPROPERTYHEADER {
  WORD     cbSize;
  WORD     Reserved;
  HANDLE   hPrinter;
  LPTSTR   pszPrinterName;
  PDEVMODE pdmIn;
  PDEVMODE pdmOut;
  DWORD    cbOut;
  DWORD    fMode;
} DOCUMENTPROPERTYHEADER, *PDOCUMENTPROPERTYHEADER;

멤버

cbSize

DOCUMENTPROPERTYHEADER 구조체의 크기(바이트)입니다.

Reserved

예약되어 있습니다. 0이어야 합니다.

hPrinter

프린터 핸들입니다.

pszPrinterName

프린터 이름을 나타내는 NULL로 끝나는 문자열에 대한 포인터입니다.

pdmIn

DrvDocumentPropertySheets 함수가 프린터 인터페이스 DLL의 내부 DEVMODEW 구조체에 복사해야 하는 입력 DEVMODEW 구조체에 대한 포인터입니다(해당하는 경우 속성 시트가 표시되기 전에). fMode에서 DM_IN_BUFFER 또는 DM_MODIFY 설정되지 않은 경우 이 포인터는 NULL입니다.

pdmOut

DrvDocumentPropertySheets 함수가 프린터 인터페이스 DLL의 내부 DEVMODEW 콘텐츠를 복사해야 하는 출력 DEVMODEW 구조체에 대한 포인터입니다(해당하는 경우 속성 시트가 표시된 후). fMode에서 DM_OUT_BUFFER 또는 DM_COPY 설정되지 않은 경우 이 포인터는 NULL입니다.

cbOut

pdmOut이 가리키는 버퍼의 크기(바이트)를 지정합니다. 자세한 내용은 아래 설명 부분을 참조하십시오.

fMode

다음 표에 나열된 하나 이상의 비트 플래그입니다. 플래그는 헤더 파일 Wingdi.h 및 Winddiui.h에 정의되어 있습니다.

플래그 정의
플래그가 설정되지 않았습니다(즉, fMode 는 0임). DrvDocumentPropertySheets 함수는 cbOut 멤버에 모든 퍼블릭 및 프라이빗 멤버를 포함하여 DEVMODEW 구조체의 크기를 바이트 단위로 반환해야 합니다.
DM_ADVANCED 설정된 경우 DrvDocumentPropertySheets 함수는 고급 문서 페이지만 만들어야 합니다. 설정하지 않으면 DrvDocumentPropertySheets 함수는 PageSetup 및 고급 문서 페이지를 모두 만들어야 합니다. (COMPROPSHEETUI 구조체의 pDlgPage 멤버에 대한 설명을 참조하세요.)
DM_IN_BUFFER 또는 DM_MODIFY 호출자가 pdmIn에서 DEVMODEW 구조 포인터를 제공했으며 DrvDocumentPropertySheets 함수는 제공된 DEVMODEW의 내용을 반영하도록 내부 DEVMODEW 구조를 업데이트해야 합니다.
DM_IN_PROMPT 또는 DM_PROMPT DrvDocumentPropertySheets 함수는 해당 속성 시트 페이지를 만들어야 합니다. DrvDocumentPropertySheets 함수의 pPSUIInfo 매개 변수가 NULL인 경우 이 플래그는 설정되지 않습니다.
DM_NOPERMISSION 프린터 인터페이스 DLL의 _CPSUICALLBACK 형식 콜백을 사용하면 사용자가 표시된 속성 시트 페이지의 속성을 수정할 수 없습니다.
DM_OUT_BUFFER 또는 DM_COPY 호출자가 pdmOut에서 DEVMODEW 구조 포인터를 제공했으며 DrvDocumentPropertySheets 함수는 내부 DEVMODEW 구조체의 내용을 제공된 DEVMODEW에 복사해야 합니다.
DM_PROMPT_NON_MODAL DrvDocumentPropertySheets 함수는 속성 시트 페이지를 만들고 모달이 아닌 UI를 시작해야 합니다. DrvDocumentPropertySheets 함수의 pPSUIInfo 매개 변수가 NULL인 경우 이 플래그는 설정되지 않습니다.
DM_USER_DEFAULT 사용되지 않습니다.
DM_OUT_DEFAULT 또는 DM_UPDATE 사용되지 않습니다.

설명

cbOut 멤버의 입력 값이 pdmOut 멤버가 가리키는 버퍼의 크기와 반드시 같은 것은 아닙니다. 예를 들어 DrvDocumentPropertySheets 함수의 pPSUInfo 매개 변수가 NULL이고 DOCUMENTPROPERTYHEADER 구조체의 fMode 멤버가 0이거나 동일한 구조체의 pdmOut 멤버가 NULL인 경우 드라이버는 cbOut 멤버에 프린터의 DEVMODEW 구조체(공용 및 프라이빗 구조체 멤버 포함)의 총 크기를 작성해야 합니다. 이러한 경우 드라이버는 cbOut 멤버를 "쓰기 전용" 멤버로 처리해야 합니다. 따라서 DrvDocumentPropertySheets 함수가 호출된 경우 드라이버는 pdmOut 멤버가 가리키는 버퍼의 크기로 cbOut 멤버를 사용하지 않아야 합니다. WDK(Windows 드라이버 키트)와 함께 제공되는 "플로터" 샘플은 cbOut 멤버를 올바르게 사용하는 방법을 보여 줍니다.

요구 사항

요구 사항
헤더 winddiui.h(Winddiui.h 포함)

추가 정보

COMPROPSHEETUI

DEVMODEW

DrvDocumentPropertySheets

MSPLOT 플로터 드라이버 샘플