EXTPUSH 구조체(compstui.h)

EXTPUSH 구조체는 속성 시트 페이지 옵션에 추가할 수 있는 확장된 푸시 단추를 지정하기 위해 CPSUI 애플리케이션(프린터 인터페이스 DLL 포함)에서 사용됩니다. 단추를 누르면 새 대화 상자가 표시될 수 있습니다.

구문

typedef struct _EXTPUSH {
  WORD      cbSize;
  WORD      Flags;
  LPTSTR    pTitle;
  union {
    DLGPROC DlgProc;
    FARPROC pfnCallBack;
  } DUMMYUNIONNAME;
  ULONG_PTR IconID;
  union {
    WORD   DlgTemplateID;
    HANDLE hDlgTemplate;
  } DUMMYUNIONNAME2;
  ULONG_PTR dwReserved[3];
} EXTPUSH, *PEXTPUSH;

멤버

cbSize

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

Flags

비트 플래그는 다음 중 하나일 수 있습니다.

플래그 설명
EPF_ICONID_AS_HICON 설정하면 IconID 멤버에 아이콘 핸들이 포함됩니다. 설정하지 않으면 IconID 멤버에 아이콘 리소스 식별자가 포함됩니다.
EPF_INCLUDE_SETUP_TITLE 설정된 경우 CPSUI는 pTitle이 가리키는 문자열에 "설정"을 추가합니다.
EPF_NO_DOT_DOT_DOT 설정된 경우 CPSUI는 "..."를 추가하지 않습니다. pTitle이 가리키는 문자열에 대한 입니다.
EPF_OVERLAY_NO_ICON 설정된 경우 CPSUI는 IDI_CPSUI_NO 아이콘을 IconID 멤버로 식별된 아이콘에 오버레이합니다.
EPF_OVERLAY_STOP_ICON 설정된 경우 CPSUI는 IDI_CPSUI_STOP 아이콘을 IconID 멤버로 식별된 아이콘에 오버레이합니다.
EPF_OVERLAY_WARNING_ICON 설정된 경우 CPSUI는 IDI_CPSUI_WARNING 아이콘을 IconID 멤버로 식별된 아이콘에 오버레이합니다.
EPF_PUSH_TYPE_DLGPROC 설정된 경우 DlgProcDlgTemplateID/hDlgTemplate 멤버가 유효합니다. 설정하지 않으면 pfnCallBack 멤버가 유효합니다.
EPF_USE_HDLGTEMPLATE 설정된 경우 hDlgTemplate 에는 템플릿 핸들이 포함됩니다. 설정하지 않으면 DlgTemplateID 에 템플릿 리소스 식별자가 포함됩니다.

pTitle

누름 단추 제목을 나타내는 문자열 식별자입니다. NULL로 끝나는 문자열에 대한 32비트 포인터이거나 HIWORD가 0으로 설정된 16비트 문자열 리소스 식별자일 수 있습니다.

DUMMYUNIONNAME

DUMMYUNIONNAME 공용 구조체를 정의합니다.

DUMMYUNIONNAME.DlgProc

푸시 단추의 대화 상자에 대한 메시지를 처리하는 대화 상자 프로시저에 대한 DLGPROC 형식 포인터입니다. DialogProc 사용에 대한 자세한 내용은 아래의 설명 섹션을 참조하세요.

이 포인터가 제공되면 플래그에서 EPF_PUSH_TYPE_DLGPROC 설정해야 합니다.

DUMMYUNIONNAME.pfnCallBack

CPSUICB_REASON_PUSHBUTTON 이유를 처리하기 위한 _CPSUICALLBACK 형식 콜백 함수에 대한 포인터입니다. 자세한 내용은 아래 설명 부분을 참조하십시오.

이 포인터가 제공되면 플래그에서 EPF_PUSH_TYPE_DLGPROC 지워야 합니다.

IconID

다음 아이콘 식별자 중 하나입니다.

  • 아이콘 리소스 식별자입니다. 애플리케이션에서 정의하거나 CPSUI에서 제공하는 IDI_CPSUI 접두사 아이콘 리소스 식별자 중 하나일 수 있습니다.

  • 아이콘 핸들입니다. 핸들이 지정된 경우 flags 멤버에서 EPF_ICONID_AS_HICON 설정해야 합니다.

  • CPSUI는 누름 단추 옆에 아이콘을 표시합니다. 이 값이 0이면 아이콘이 표시되지 않습니다.

DUMMYUNIONNAME2

DUMMYUNIONNAME2 공용 구조체를 정의합니다.

DUMMYUNIONNAME2.DlgTemplateID

대화 상자의 리소스 ID를 지정합니다.

DlgTemplateID = 0이면 일반 UI는 다음 매개 변수를 사용하여 DlgProc를 호출합니다.

DlgProc(hDlg, WM_USER, NULL, (LPARAM)pCPSUICBParam);

DUMMYUNIONNAME2.hDlgTemplate

팝업 대화 상자에 사용할 DLGTEMPLATE 에 대한 핸들입니다.

dwReserved[3]

예약된 는 0으로 초기화되어야 합니다.

설명

확장된 푸시 단추는 OPTITEM 구조와 연결할 수 있는 CPSUI 정의 푸시 단추 유형입니다. OPTITEM 구조체에는 하나의 확장된 푸시 단추 또는 하나의 확장된 검사 상자가 연결되어 있을 수 있습니다.

EXTPUSH 구조를 사용하여 푸시 단추를 만들 때 필요에 따라 사용자가 단추를 클릭할 때 열리는 추가 대화 상자를 만들 수 있습니다. 이 대화 상자를 만들려면 DlgProc 멤버의 대화 상자 프로시저에 대한 포인터를 지정하고 DlgTemplateID 또는 hDlgTemplate 멤버에 대화 상자 템플릿 사양을 포함해야 합니다.

EPF_USE_HDLGTEMPLATE 플래그에 설정된 경우 CPSUI는 DialogBoxIndirectParam을 호출하고 DlgProchDlgTemplate 멤버의 콘텐츠를 전달하여 대화 상자를 만듭니다.

플래그에 EPF_USE_HDLGTEMPLATE 설정되지 않은 경우 CPSUI는 DialogBoxParam을 호출하고 DlgProcDlgTemplateID 멤버의 내용을 전달하여 대화 상자를 만듭니다.

대화 상자 프로시저가 uMsg 값 WM_INITDIALOG 호출되면 lParam 값은 REASON 멤버가 CPSUICB_REASON_EXTPUSH 설정된 CPSUICBPARAM 구조체의 주소입니다. uMsglParam 매개 변수에 대한 자세한 내용은 DialogProc을 참조하세요.

사용자가 단추를 클릭할 때 대화 상자를 표시하는 데 CPSUI가 필요하지 않은 경우 pfnCallBack 멤버에서 _CPSUICALLBACK 형식의 콜백 함수의 주소를 지정할 수 있습니다. 사용자가 단추를 클릭하면 CPSUI는 콜백 함수를 호출합니다. 함께 제공되는 CPSUICBPARAM 구조체의 Reason 멤버는 CPSUICB_REASON_EXTPUSH 설정됩니다.

요구 사항

요구 사항
헤더 compstui.h(Compstui.h 포함)

추가 정보

EXTCHKBOX