Home | History | Annotate | Download | only in include
      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
     11 extern "C" {
     12 #endif
     13 
     14 typedef enum tagPrintAsyncNotifyConversationStyle {
     15   kBiDirectional,
     16   kUniDirectional
     17 } PrintAsyncNotifyConversationStyle;
     18 
     19 typedef 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 
     46 typedef enum tagPrintAsyncNotifyUserFilter {
     47   kPerUser,
     48   kAllUsers
     49 } PrintAsyncNotifyUserFilter;
     50 
     51 HRESULT CreatePrintAsyncNotifyChannel(
     52   LPCWSTR pName,
     53   PrintAsyncNotificationType *pSchema,
     54   PrintAsyncNotifyUserFilter filter,
     55   PrintAsyncNotifyConversationStyle directionality,
     56   IPrintAsyncNotifyCallback *pCallback,
     57   IPrintAsyncNotifyChannel **ppChannel
     58 );
     59 
     60 HRESULT RegisterForPrintAsyncNotifications(
     61   LPCWSTR pName,
     62   PrintAsyncNotificationType *pSchema,
     63   PrintAsyncNotifyUserFilter filter,
     64   PrintAsyncNotifyConversationStyle directionality,
     65   IPrintAsyncNotifyCallback *pCallback,
     66   HANDLE *pRegistrationHandler
     67 );
     68 
     69 HRESULT UnRegisterForPrintAsyncNotifications(
     70   HANDLE hRegistrationHandler
     71 );
     72 
     73 #ifdef __cplusplus
     74 }
     75 #endif
     76 
     77 #endif /* (_WIN32_WINNT >= 0x0600) */
     78 #endif /*_INC_PRNASNOT*/
     79