prnasnot.h 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. /**
  2. * This file has no copyright assigned and is placed in the Public Domain.
  3. * This file is part of the mingw-w64 runtime package.
  4. * No warranty is given; refer to the file DISCLAIMER.PD within this package.
  5. */
  6. #ifndef _INC_PRNASNOT
  7. #define _INC_PRNASNOT
  8. #if (_WIN32_WINNT >= 0x0600)
  9. #ifdef __cplusplus
  10. extern "C" {
  11. #endif
  12. typedef enum tagPrintAsyncNotifyConversationStyle {
  13. kBiDirectional,
  14. kUniDirectional
  15. } PrintAsyncNotifyConversationStyle;
  16. typedef enum tagPrintAsyncNotifyError {
  17. CHANNEL_CLOSED_BY_SERVER = 0x01,
  18. CHANNEL_CLOSED_BY_ANOTHER_LISTENER = 0x02,
  19. CHANNEL_CLOSED_BY_SAME_LISTENER = 0x03,
  20. CHANNEL_RELEASED_BY_LISTENER = 0x04,
  21. UNIRECTIONAL_NOTIFICATION_LOST = 0x05,
  22. ASYNC_NOTIFICATION_FAILURE = 0x06,
  23. NO_LISTENERS = 0x07,
  24. CHANNEL_ALREADY_CLOSED = 0x08,
  25. CHANNEL_ALREADY_OPENED = 0x09,
  26. CHANNEL_WAITING_FOR_CLIENT_NOTIFICATION = 0x0a,
  27. CHANNEL_NOT_OPENED = 0x0b,
  28. ASYNC_CALL_ALREADY_PARKED = 0x0c,
  29. NOT_REGISTERED = 0x0d,
  30. ALREADY_UNREGISTERED = 0x0e,
  31. ALREADY_REGISTERED = 0x0f,
  32. CHANNEL_ACQUIRED = 0x10,
  33. ASYNC_CALL_IN_PROGRESS = 0x11,
  34. MAX_NOTIFICATION_SIZE_EXCEEDED = 0x12,
  35. INTERNAL_NOTIFICATION_QUEUE_IS_FULL = 0x13,
  36. INVALID_NOTIFICATION_TYPE = 0x14,
  37. MAX_REGISTRATION_COUNT_EXCEEDED = 0x15,
  38. MAX_CHANNEL_COUNT_EXCEEDED = 0x16,
  39. LOCAL_ONLY_REGISTRATION = 0x17,
  40. REMOTE_ONLY_REGISTRATION = 0x18
  41. } PrintAsyncNotifyError;
  42. typedef enum tagPrintAsyncNotifyUserFilter {
  43. kPerUser,
  44. kAllUsers
  45. } PrintAsyncNotifyUserFilter;
  46. HRESULT CreatePrintAsyncNotifyChannel(
  47. LPCWSTR pName,
  48. PrintAsyncNotificationType *pSchema,
  49. PrintAsyncNotifyUserFilter filter,
  50. PrintAsyncNotifyConversationStyle directionality,
  51. IPrintAsyncNotifyCallback *pCallback,
  52. IPrintAsyncNotifyChannel **ppChannel
  53. );
  54. HRESULT RegisterForPrintAsyncNotifications(
  55. LPCWSTR pName,
  56. PrintAsyncNotificationType *pSchema,
  57. PrintAsyncNotifyUserFilter filter,
  58. PrintAsyncNotifyConversationStyle directionality,
  59. IPrintAsyncNotifyCallback *pCallback,
  60. HANDLE *pRegistrationHandler
  61. );
  62. HRESULT UnRegisterForPrintAsyncNotifications(
  63. HANDLE hRegistrationHandler
  64. );
  65. #ifdef __cplusplus
  66. }
  67. #endif
  68. #endif /* (_WIN32_WINNT >= 0x0600) */
  69. #endif /*_INC_PRNASNOT*/