Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Permite que una aplicación se registre para recibir notificaciones de componentes de impresión hospedados en Spooler, como controladores de impresora, procesadores de impresión y monitores de puerto.
Sintaxis
HRESULT RegisterForPrintAsyncNotifications(
[in] PCWSTR pszName,
[in] PrintAsyncNotificationType *pNotificationType,
[in] PrintAsyncNotifyUserFilter eUserFilter,
[in] PrintAsyncNotifyConversationStyle eConversationStyle,
[in] IPrintAsyncNotifyCallback *pCallback,
[out] HANDLE *phNotify
);
Parámetros
[in] pszName
Puntero al nombre de un servidor de impresión o una cola de impresión.
[in] pNotificationType
Puntero al GUID del esquema de datos para el tipo de notificaciones que debe recibir la aplicación.
[in] eUserFilter
Valor que especifica si las notificaciones se enviarán a:
- Solo las aplicaciones que se ejecutan como el mismo usuario que el remitente del complemento hospedado en Spooler.
- Un conjunto más amplio de aplicaciones de escucha.
[in] eConversationStyle
Valor que especifica si la comunicación es bidireccional o unidireccional.
[in] pCallback
Puntero a un objeto que usará el componente hospedado en cola de impresión para volver a llamar a la aplicación. Esto nunca debe ser NULL.
[out] phNotify
Puntero a una estructura que representa el registro.
Valor devuelto
| HRESULT | severity | Significado |
|---|---|---|
| S_OK | CORRECTA | Si se devuelve este valor, significa que la función se completó correctamente. |
| ALREADY_REGISTERED | ERROR | El objeto de registro ya se ha registrado. |
| LOCAL_ONLY_REGISTRATION | CORRECTA | El registro de la notificación local se realizó correctamente. No se ha realizado el registro de las notificaciones remotas. |
| MAX_REGISTRATION_COUNT_EXCEEDED | ERROR | Se ha alcanzado el número máximo de registros. No se permiten más registros. |
| REMOTE_ONLY_REGISTRATION | CORRECTA | El registro de las notificaciones remotas se realizó correctamente. No se ha realizado el registro de las notificaciones locales. |
Los valores devueltos son códigos de error COM. Dado que esta función puede completar la operación correctamente pero devolver un HRESULT distinto de S_OK debe usar la macro SUCCEEDED o FAILED para determinar el éxito de la llamada. Para obtener el VALOR HRESULT específico devuelto por la función , use la macro HRESULT_CODE.
En el ejemplo de código siguiente se muestra cómo se pueden usar estas macros para evaluar el valor devuelto.
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 obtener más información sobre los códigos de error COM, vea Control de errores.
Consulte PrintAsyncNotifyError para ver otros valores devueltos posibles.
Comentarios
Como resultado de una llamada a RegisterForPrintAsyncNotifications , se llama al método IUnknown::AddRef para el objeto pCallback . Al llamar a UnRegisterForPrintAsyncNotifications , se liberará el objeto pCallback . El recuento de referencias del objeto pCallback también se incrementará cuando se crea un canal y se disminuye cuando se cierra el canal.
El parámetro pSchema es un puntero GUID que el administrador de cola acepta y usa para filtrar los clientes de escucha. Cualquier cliente del mecanismo de notificación asincrónica del colador puede definir su propio tipo de notificación. Aunque el administrador de colas no es consciente del tipo de notificación que se envía, sigue filtrando los clientes de escucha en función del tipo de notificación. El esquema de notificación al que hace referencia pSchema es el esquema que usa el objeto de notificación que expone IPrintAsyncNotifyDataObject. Los clientes de la canalización de notificación de cola pueden definir su propio esquema de datos y pueden enviar cualquier tipo de datos hacia atrás y hacia delante y el GUID al que hace referencia pSchema es único para ese esquema de datos.
Requisitos
| Requisito | Value |
|---|---|
| Cliente mínimo compatible | Windows Vista [solo aplicaciones de escritorio] |
| Servidor mínimo compatible | Windows Server 2008 [solo aplicaciones de escritorio] |
| Plataforma de destino | Windows |
| Encabezado | prnasnot.h |
| Library | WinSpool.lib |
| Archivo DLL | Spoolss.dll |
Consulte también
Funciones de la API del administrador de trabajos de impresión