Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Permite que um aplicativo se registre para notificações de componentes de impressão hospedados no Print Spooler, como drivers de impressora, processadores de impressão e monitores de porta.
Sintaxe
HRESULT RegisterForPrintAsyncNotifications(
[in] PCWSTR pszName,
[in] PrintAsyncNotificationType *pNotificationType,
[in] PrintAsyncNotifyUserFilter eUserFilter,
[in] PrintAsyncNotifyConversationStyle eConversationStyle,
[in] IPrintAsyncNotifyCallback *pCallback,
[out] HANDLE *phNotify
);
Parâmetros
[in] pszName
Um ponteiro para o nome de um servidor de impressão ou fila de impressão.
[in] pNotificationType
Um ponteiro para o GUID do esquema de dados para o tipo de notificações que o aplicativo deve receber.
[in] eUserFilter
Um valor que especifica se as notificações serão enviadas para:
- Somente aplicativos que estão sendo executados como o mesmo usuário que o remetente de plug-in hospedado no Spooler de Impressão.
- Um conjunto mais amplo de aplicativos de escuta.
[in] eConversationStyle
Um valor que especifica se a comunicação é bidirecional ou unidirecional.
[in] pCallback
Um ponteiro para um objeto que o componente hospedado pelo Print Spooler usará para chamar de volta o aplicativo. Isso nunca deve ser NULL.
[out] phNotify
Um ponteiro para uma estrutura que representa o registro.
Retornar valor
| HRESULT | Severidade | Significado |
|---|---|---|
| S_OK | SUCCESS | A função foi concluída com êxito. |
| ALREADY_REGISTERED | ERROR | O objeto de registro já foi registrado. |
| LOCAL_ONLY_REGISTRATION | SUCCESS | O registro da notificação local foi bem-sucedido. O registro de notificações remotas não foi. |
| MAX_REGISTRATION_COUNT_EXCEEDED | ERROR | O número máximo de registros foi atingido. Não são permitidos mais registros. |
| REMOTE_ONLY_REGISTRATION | SUCCESS | O registro de notificações remotas foi bem-sucedido. O registro de notificações locais não foi. |
Os valores retornados são códigos de erro COM. Como essa função pode concluir a operação com êxito, ainda retorna um HRESULT diferente de S_OK você deve usar a macro SUCCEEDED ou FAILED para determinar o sucesso da chamada. Para obter o HRESULT específico retornado pela função, use a macro HRESULT_CODE.
O exemplo de código a seguir mostra como essas macros podem ser usadas para avaliar o valor retornado.
if (SUCCEEDED(hr)) {
// Call succeeded, check HRESULT value returned
switch (HRESULT_CODE(hr)){
case S_OK:
// Some action
break;
case LOCAL_ONLY_REGISTRATION:
// Some action
break;
case REMOTE_ONLY_REGISTRATION:
// Some action
break;
default:
// Default action
break;
}
} else {
// Call failed, check HRESULT value returned
switch (HRESULT_CODE(hr)){
case ALREADY_REGISTERED:
// Some action
break;
case MAX_REGISTRATION_COUNT_EXCEEDED:
// Some action
break;
default:
// Default action
break;
}
}
Para obter mais informações sobre códigos de erro do COM, confira Tratamento de erros.
Consulte PrintAsyncNotifyError para obter outros valores de retorno possíveis.
Comentários
Como resultado de uma chamada RegisterForPrintAsyncNotifications , o método IUnknown::AddRef é chamado para o objeto pCallback . Chamar UnRegisterForPrintAsyncNotifications liberará o objeto pCallback . A contagem de referência do objeto pCallback também será incrementada quando um canal for criado e decrementado quando o canal for fechado.
O parâmetro pSchema é um ponteiro GUID que o spooler aceita e usa para filtrar os clientes ouvintes. Qualquer cliente do mecanismo de notificação assíncrona do spooler pode definir seu próprio tipo de notificação. Embora o spooler não esteja ciente do tipo de notificação enviado, ele ainda filtra os clientes ouvintes com base no tipo de notificação. O esquema de notificação que o pSchema faz referência é o esquema usado pelo objeto de notificação que expõe IPrintAsyncNotifyDataObject. Os clientes do pipe de notificação do spooler podem definir seu próprio esquema de dados e podem enviar qualquer tipo de dados para frente e para trás e o GUID referenciado por pSchema é exclusivo para esse esquema de dados.
Requisitos
| Requisito | Valor |
|---|---|
| Cliente mínimo com suporte | Windows Vista [somente aplicativos da área de trabalho] |
| Servidor mínimo com suporte | Windows Server 2008 [somente aplicativos da área de trabalho] |
| Plataforma de Destino | Windows |
| Cabeçalho | prnasnot.h |
| Biblioteca | WinSpool.lib |
| DLL | Spoolss.dll |
Confira também
Client Impersonation (em inglês)