master
 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
10#ifdef __cplusplus
11extern "C" {
12#endif
13
14typedef enum tagPrintAsyncNotifyConversationStyle {
15  kBiDirectional,
16  kUniDirectional 
17} PrintAsyncNotifyConversationStyle;
18
19typedef enum tagPrintAsyncNotifyError {
20  CHANNEL_CLOSED_BY_SERVER                  = 0x01,
21  CHANNEL_CLOSED_BY_ANOTHER_LISTENER        = 0x02,
22  CHANNEL_CLOSED_BY_SAME_LISTENER           = 0x03,
23  CHANNEL_RELEASED_BY_LISTENER              = 0x04,
24  UNIRECTIONAL_NOTIFICATION_LOST            = 0x05,
25  ASYNC_NOTIFICATION_FAILURE                = 0x06,
26  NO_LISTENERS                              = 0x07,
27  CHANNEL_ALREADY_CLOSED                    = 0x08,
28  CHANNEL_ALREADY_OPENED                    = 0x09,
29  CHANNEL_WAITING_FOR_CLIENT_NOTIFICATION   = 0x0a,
30  CHANNEL_NOT_OPENED                        = 0x0b,
31  ASYNC_CALL_ALREADY_PARKED                 = 0x0c,
32  NOT_REGISTERED                            = 0x0d,
33  ALREADY_UNREGISTERED                      = 0x0e,
34  ALREADY_REGISTERED                        = 0x0f,
35  CHANNEL_ACQUIRED                          = 0x10,
36  ASYNC_CALL_IN_PROGRESS                    = 0x11,
37  MAX_NOTIFICATION_SIZE_EXCEEDED            = 0x12,
38  INTERNAL_NOTIFICATION_QUEUE_IS_FULL       = 0x13,
39  INVALID_NOTIFICATION_TYPE                 = 0x14,
40  MAX_REGISTRATION_COUNT_EXCEEDED           = 0x15,
41  MAX_CHANNEL_COUNT_EXCEEDED                = 0x16,
42  LOCAL_ONLY_REGISTRATION                   = 0x17,
43  REMOTE_ONLY_REGISTRATION                  = 0x18 
44} PrintAsyncNotifyError;
45
46typedef enum tagPrintAsyncNotifyUserFilter {
47  kPerUser,
48  kAllUsers 
49} PrintAsyncNotifyUserFilter;
50
51HRESULT CreatePrintAsyncNotifyChannel(
52  LPCWSTR pName,
53  PrintAsyncNotificationType *pSchema,
54  PrintAsyncNotifyUserFilter filter,
55  PrintAsyncNotifyConversationStyle directionality,
56  IPrintAsyncNotifyCallback *pCallback,
57  IPrintAsyncNotifyChannel **ppChannel
58);
59
60HRESULT RegisterForPrintAsyncNotifications(
61  LPCWSTR pName,
62  PrintAsyncNotificationType *pSchema,
63  PrintAsyncNotifyUserFilter filter,
64  PrintAsyncNotifyConversationStyle directionality,
65  IPrintAsyncNotifyCallback *pCallback,
66  HANDLE *pRegistrationHandler
67);
68
69HRESULT UnRegisterForPrintAsyncNotifications(
70  HANDLE hRegistrationHandler
71);
72
73#ifdef __cplusplus
74}
75#endif
76
77#endif /* (_WIN32_WINNT >= 0x0600) */
78#endif /*_INC_PRNASNOT*/