/**
* This file has no copyright assigned and is placed in the Public Domain.
* This file is part of the mingw-w64 runtime package.
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
*/
#ifndef _INC_PRNASNOT
#define _INC_PRNASNOT
#if (_WIN32_WINNT >= 0x0600)
#ifdef __cplusplus
extern "C" {
#endif
typedef enum tagPrintAsyncNotifyConversationStyle {
kBiDirectional,
kUniDirectional
} PrintAsyncNotifyConversationStyle;
typedef enum tagPrintAsyncNotifyError {
CHANNEL_CLOSED_BY_SERVER = 0x01,
CHANNEL_CLOSED_BY_ANOTHER_LISTENER = 0x02,
CHANNEL_CLOSED_BY_SAME_LISTENER = 0x03,
CHANNEL_RELEASED_BY_LISTENER = 0x04,
UNIRECTIONAL_NOTIFICATION_LOST = 0x05,
ASYNC_NOTIFICATION_FAILURE = 0x06,
NO_LISTENERS = 0x07,
CHANNEL_ALREADY_CLOSED = 0x08,
CHANNEL_ALREADY_OPENED = 0x09,
CHANNEL_WAITING_FOR_CLIENT_NOTIFICATION = 0x0a,
CHANNEL_NOT_OPENED = 0x0b,
ASYNC_CALL_ALREADY_PARKED = 0x0c,
NOT_REGISTERED = 0x0d,
ALREADY_UNREGISTERED = 0x0e,
ALREADY_REGISTERED = 0x0f,
CHANNEL_ACQUIRED = 0x10,
ASYNC_CALL_IN_PROGRESS = 0x11,
MAX_NOTIFICATION_SIZE_EXCEEDED = 0x12,
INTERNAL_NOTIFICATION_QUEUE_IS_FULL = 0x13,
INVALID_NOTIFICATION_TYPE = 0x14,
MAX_REGISTRATION_COUNT_EXCEEDED = 0x15,
MAX_CHANNEL_COUNT_EXCEEDED = 0x16,
LOCAL_ONLY_REGISTRATION = 0x17,
REMOTE_ONLY_REGISTRATION = 0x18
} PrintAsyncNotifyError;
typedef enum tagPrintAsyncNotifyUserFilter {
kPerUser,
kAllUsers
} PrintAsyncNotifyUserFilter;
HRESULT CreatePrintAsyncNotifyChannel(
LPCWSTR pName,
PrintAsyncNotificationType *pSchema,
PrintAsyncNotifyUserFilter filter,
PrintAsyncNotifyConversationStyle directionality,
IPrintAsyncNotifyCallback *pCallback,
IPrintAsyncNotifyChannel **ppChannel
);
HRESULT RegisterForPrintAsyncNotifications(
LPCWSTR pName,
PrintAsyncNotificationType *pSchema,
PrintAsyncNotifyUserFilter filter,
PrintAsyncNotifyConversationStyle directionality,
IPrintAsyncNotifyCallback *pCallback,
HANDLE *pRegistrationHandler
);
HRESULT UnRegisterForPrintAsyncNotifications(
HANDLE hRegistrationHandler
);
#ifdef __cplusplus
}
#endif
#endif /* (_WIN32_WINNT >= 0x0600) */
#endif /*_INC_PRNASNOT*/