Estrutura EXTPUSH (compstui.h)

A estrutura EXTPUSH é usada por aplicativos CPSUI (incluindo DLLs de interface da impressora) para especificar um botão de push estendido, que pode ser adicionado a uma opção de página de folha de propriedades. Quando o botão é pressionado, uma nova caixa de diálogo pode ser exibida.

Sintaxe

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;

Membros

cbSize

Tamanho, em bytes, da estrutura EXTPUSH .

Flags

Sinalizadores de bits, que podem ser um dos seguintes:

Sinalizador Descrição
EPF_ICONID_AS_HICON Se definido, o membro IconID contém um identificador de ícone. Se não estiver definido, o membro IconID conterá um identificador de recurso de ícone.
EPF_INCLUDE_SETUP_TITLE Se definido, CPSUI acrescenta "Instalação" à cadeia de caracteres apontada por pTitle.
EPF_NO_DOT_DOT_DOT Se definido, CPSUI não acrescenta "..." para a cadeia de caracteres apontada por pTitle.
EPF_OVERLAY_NO_ICON Se definido, o CPSUI sobrepõe seu ícone de IDI_CPSUI_NO no ícone identificado pelo membro IconID .
EPF_OVERLAY_STOP_ICON Se definido, o CPSUI sobrepõe o ícone IDI_CPSUI_STOP no ícone identificado pelo membro IconID .
EPF_OVERLAY_WARNING_ICON Se definido, o CPSUI sobrepõe seu ícone de IDI_CPSUI_WARNING no ícone identificado pelo membro IconID .
EPF_PUSH_TYPE_DLGPROC Se definido, os membros DlgProc e DlgTemplateID/hDlgTemplate serão válidos. Se não estiver definido, o membro pfnCallBack será válido.
EPF_USE_HDLGTEMPLATE Se definido, hDlgTemplate contém um identificador de modelo. Se não estiver definido, DlgTemplateID conterá um identificador de recurso de modelo.

pTitle

Identificador de cadeia de caracteres, representando o título do botão de push. Isso pode ser um ponteiro de 32 bits para uma cadeia de caracteres terminada em NULL ou pode ser um identificador de recurso de cadeia de caracteres de 16 bits com HIWORD definido como zero.

DUMMYUNIONNAME

Define a união DUMMYUNIONNAME .

DUMMYUNIONNAME.DlgProc

Ponteiro do tipo DLGPROC para um procedimento de caixa de diálogo para processar mensagens para a caixa de diálogo do botão de push. Para obter mais informações sobre como usar DialogProc, consulte a seção Comentários abaixo.

Se esse ponteiro for fornecido, EPF_PUSH_TYPE_DLGPROC deverá ser definido em Sinalizadores.

DUMMYUNIONNAME.pfnCallBack

Ponteiro para uma função de retorno de chamada do tipo _CPSUICALLBACK para lidar com o motivo CPSUICB_REASON_PUSHBUTTON. Para obter mais informações, consulte a seção Comentários a seguir.

Se esse ponteiro for fornecido, EPF_PUSH_TYPE_DLGPROC deverá ser limpo em Sinalizadores.

IconID

Um dos seguintes identificadores de ícone:

  • Um identificador de recurso de ícone. Isso pode ser definido pelo aplicativo ou pode ser um dos identificadores de recurso de ícone fornecidos pelo CPSUI IDI_CPSUI prefixado.

  • Um identificador de ícone. Se um identificador for especificado, EPF_ICONID_AS_HICON deverá ser definido no membro Flags .

  • CPSUI exibe o ícone ao lado do botão de push. Se esse valor for zero, um ícone não será exibido.

DUMMYUNIONNAME2

Define a união DUMMYUNIONNAME2 .

DUMMYUNIONNAME2.DlgTemplateID

Especifica a ID do recurso para a caixa de diálogo.

Se DlgTemplateID = 0, a interface do usuário comum chamará DlgProc com o seguinte parâmetro:

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

DUMMYUNIONNAME2.hDlgTemplate

Manipule para o DLGTEMPLATE que será usado para uma caixa de diálogo pop-up.

dwReserved[3]

Reservado, deve ser inicializado como zero.

Comentários

Um botão de push estendido é um tipo definido por CPSUI de botão de push que pode ser associado a uma estrutura OPTITEM . Uma estrutura OPTITEM pode ter um botão de push estendido ou uma caixa de marcar estendida associada a ela.

Ao usar a estrutura EXTPUSH para criar um botão de push, você pode, opcionalmente, criar uma caixa de diálogo adicional que é aberta quando o usuário clica no botão. Para criar essa caixa de diálogo, você deve especificar um ponteiro para um procedimento de caixa de diálogo no membro DlgProc e incluir uma especificação de modelo de caixa de diálogo no membro DlgTemplateID ou hDlgTemplate .

Se EPF_USE_HDLGTEMPLATE estiver definido em Sinalizadores, o CPSUI criará a caixa de diálogo chamando DialogBoxIndirectParam, passando o conteúdo dos membros DlgProc e hDlgTemplate .

Se EPF_USE_HDLGTEMPLATE não estiver definido em Sinalizadores, o CPSUI criará a caixa de diálogo chamando DialogBoxParam, passando o conteúdo dos membros DlgProc e DlgTemplateID .

Quando o procedimento da caixa de diálogo é chamado com um valor uMsg de WM_INITDIALOG, o valor lParam é o endereço de uma estrutura CPSUICBPARAM , com o membro Reason definido como CPSUICB_REASON_EXTPUSH. Para obter mais informações sobre os parâmetros uMsg e lParam , consulte DialogProc.

Se você não precisar de CPSUI para exibir uma caixa de diálogo quando o usuário clicar no botão, você poderá especificar o endereço de uma função de retorno de chamada tipo _CPSUICALLBACK no membro pfnCallBack . Quando um usuário clica no botão , o CPSUI chama a função de retorno de chamada. O membro Reason da estrutura CPSUICBPARAM que acompanha será definido como CPSUICB_REASON_EXTPUSH.

Requisitos

Requisito Valor
Cabeçalho compstui.h (inclua Compstui.h)

Confira também

EXTCHKBOX