From d271ea2febd26adcde7a206164c0885252b0e114 Mon Sep 17 00:00:00 2001 From: Detlef Riekenberg Date: Mon, 8 Aug 2005 12:13:58 +0000 Subject: [PATCH] - Access rights for Printserver, Printers and Printjobs added. - Defines for bidirectional communication added. --- include/winspool.h | 79 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) diff --git a/include/winspool.h b/include/winspool.h index 6099a56be54..884da168084 100644 --- a/include/winspool.h +++ b/include/winspool.h @@ -248,6 +248,30 @@ extern "C" { #define PRINTER_ERROR_JAM 0x00000002 #define PRINTER_ERROR_OUTOFTONER 0x00000004 +/* Access Rights for Printserver, Printers and Printjobs */ +#define SERVER_ACCESS_ADMINISTER 0x00000001 +#define SERVER_ACCESS_ENUMERATE 0x00000002 +#define SERVER_READ (STANDARD_RIGHTS_READ | SERVER_ACCESS_ENUMERATE) +#define SERVER_WRITE (STANDARD_RIGHTS_WRITE | \ + SERVER_ACCESS_ADMINISTER | SERVER_ACCESS_ENUMERATE) +#define SERVER_EXECUTE (STANDARD_RIGHTS_EXECUTE | SERVER_ACCESS_ENUMERATE) +#define SERVER_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | \ + SERVER_ACCESS_ADMINISTER | SERVER_ACCESS_ENUMERATE) + +#define PRINTER_ACCESS_ADMINISTER 0x00000004 +#define PRINTER_ACCESS_USE 0x00000008 +#define PRINTER_READ (STANDARD_RIGHTS_READ | PRINTER_ACCESS_USE) +#define PRINTER_WRITE (STANDARD_RIGHTS_WRITE | PRINTER_ACCESS_USE) +#define PRINTER_EXECUTE (STANDARD_RIGHTS_EXECUTE | PRINTER_ACCESS_USE) +#define PRINTER_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | \ + PRINTER_ACCESS_ADMINISTER | PRINTER_ACCESS_USE) + +#define JOB_ACCESS_ADMINISTER 0x00000010 +#define JOB_READ (STANDARD_RIGHTS_READ | JOB_ACCESS_ADMINISTER) +#define JOB_WRITE (STANDARD_RIGHTS_WRITE | JOB_ACCESS_ADMINISTER) +#define JOB_EXECUTE (STANDARD_RIGHTS_EXECUTE | JOB_ACCESS_ADMINISTER) +#define JOB_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | JOB_ACCESS_ADMINISTER) + /* TYPES */ typedef struct _PRINTER_DEFAULTSA { LPSTR pDatatype; @@ -792,6 +816,61 @@ typedef struct _PRINTER_ENUM_VALUESW { DECL_WINELIB_TYPE_AW(PRINTER_ENUM_VALUES) DECL_WINELIB_TYPE_AW(PPRINTER_ENUM_VALUES) +typedef enum { + BIDI_NULL = 0, + BIDI_INT, + BIDI_FLOAT, + BIDI_BOOL, + BIDI_STRING, + BIDI_TEXT, + BIDI_ENUM, + BIDI_BLOB +} BIDI_TYPE; + +typedef struct _BINARY_CONTAINER { + DWORD cbBuf; + LPBYTE pData; +} BINARY_CONTAINER, *PBINARY_CONTAINER; + +typedef struct _BIDI_DATA { + DWORD dwBidiType; + union + { + BOOL bData; + INT iData; + LPWSTR sData; + FLOAT fData; + BINARY_CONTAINER biData; + } u; +} BIDI_DATA, *LPBIDI_DATA, *PBIDI_DATA; + +typedef struct _BIDI_REQUEST_DATA { + DWORD dwReqNumber; + LPWSTR pSchema; + BIDI_DATA data; +} BIDI_REQUEST_DATA, *LPBIDI_REQUEST_DATA, *PBIDI_REQUEST_DATA; + +typedef struct _BIDI_REQUEST_CONTAINER { + DWORD Version; + DWORD Flags; + DWORD Count; + BIDI_REQUEST_DATA aData[1]; +} BIDI_REQUEST_CONTAINER, *LPBIDI_REQUEST_CONTAINER, *PBIDI_REQUEST_CONTAINER; + +typedef struct _BIDI_RESPONSE_DATA { + DWORD dwResult; + DWORD dwReqNumber; + LPWSTR pSchema; + BIDI_DATA data; +} BIDI_RESPONSE_DATA, *LPBIDI_RESPONSE_DATA, *PBIDI_RESPONSE_DATA; + +typedef struct _BIDI_RESPONSE_CONTAINER { + DWORD Version; + DWORD Flags; + DWORD Count; + BIDI_RESPONSE_DATA aData[1]; +} BIDI_RESPONSE_CONTAINER, *LPBIDI_RESPONSE_CONTAINER, *PBIDI_RESPONSE_CONTAINER; + /* DECLARATIONS */ INT WINAPI DeviceCapabilitiesA(LPCSTR pDevice,LPCSTR pPort,WORD fwCapability, LPSTR pOutput, LPDEVMODEA pDevMode);