From 0d2dd7eb9b8ef8f9a373f51e13f218cac4d9db62 Mon Sep 17 00:00:00 2001 From: =?utf8?q?G=C3=BCnther=20Deschner?= Date: Tue, 23 Aug 2016 12:28:53 +0200 Subject: [PATCH] spoolss: add IDL for spoolss_LogJobInfoForBranchOffice. Guenther Signed-off-by: Guenther Deschner Reviewed-by: Jeremy Allison --- librpc/idl/spoolss.idl | 97 +++++++++++++++++++++ source3/rpc_server/spoolss/srv_spoolss_nt.c | 33 +++++++ 2 files changed, 130 insertions(+) diff --git a/librpc/idl/spoolss.idl b/librpc/idl/spoolss.idl index ae10917ce795..c9d9b3684604 100644 --- a/librpc/idl/spoolss.idl +++ b/librpc/idl/spoolss.idl @@ -3413,4 +3413,101 @@ cpp_quote("#define spoolss_security_descriptor security_descriptor") [out,ref] uint32 *pcProperties, [out,ref,size_is(,*pcProperties)] RPC_PrintNamedProperty **ppProperties ); + + /******************/ + /* Function: 0x72 */ + [todo] WERROR spoolss_72( + ); + + /******************/ + /* Function: 0x73 */ + [todo] WERROR spoolss_73( + ); + + /******************/ + /* Function: 0x71 */ + typedef enum { + kInvalidJobState = 0, + kLogJobPrinted = 1, + kLogJobRendered = 2, + kLogJobError = 3, + kLogJobPipelineError = 4, + kLogOfflineFileFull = 5 + } EBranchOfficeJobEventType; + + typedef struct { + DWORD Status; + [string,charset(UTF16)] uint16 *pDocumentName; + [string,charset(UTF16)] uint16 *pUserName; + [string,charset(UTF16)] uint16 *pMachineName; + [string,charset(UTF16)] uint16 *pPrinterName; + [string,charset(UTF16)] uint16 *pPortName; + hyper Size; + DWORD TotalPages; + } spoolss_BranchOfficeJobDataPrinted; + + typedef struct { + hyper Size; + DWORD ICMMethod; + short Color; + short PrintQuality; + short YResolution; + short Copies; + short TTOption; + } spoolss_BranchOfficeJobDataRendered; + + typedef struct { + WERROR LastError; + [string,charset(UTF16)] uint16 *pDocumentName; + [string,charset(UTF16)] uint16 *pUserName; + [string,charset(UTF16)] uint16 *pPrinterName; + [string,charset(UTF16)] uint16 *pDataType; + hyper TotalSize; + hyper PrintedSize; + DWORD TotalPages; + DWORD PrintedPages; + [string,charset(UTF16)] uint16 *pMachineName; + [string,charset(UTF16)] uint16 *pJobError; + [string,charset(UTF16)] uint16 *pErrorDescription; + } spoolss_BranchOfficeJobDataError; + + typedef struct { + [string,charset(UTF16)] uint16 *pDocumentName; + [string,charset(UTF16)] uint16 *pPrinterName; + [string,charset(UTF16)] uint16 *pExtraErrorInfo; + } spoolss_BranchOfficeJobDataPipelineFailed; + + typedef struct { + [string,charset(UTF16)] uint16 *pMachineName; + } spoolss_BranchOfficeLogOfflineFileFull; + + typedef [ms_union,switch_type(EBranchOfficeJobEventType)] union { + [case(kLogJobPrinted)] + spoolss_BranchOfficeJobDataPrinted LogJobPrinted; + [case(kLogJobRendered)] + spoolss_BranchOfficeJobDataRendered LogJobRendered; + [case(kLogJobError)] + spoolss_BranchOfficeJobDataError LogJobError; + [case(kLogJobPipelineError)] + spoolss_BranchOfficeJobDataPipelineFailed LogPipelineFailed; + [case(kLogOfflineFileFull)] + spoolss_BranchOfficeLogOfflineFileFull LogOfflineFileFull; + } spoolss_BranchOfficeJobInfo; + + typedef struct { + EBranchOfficeJobEventType eEventType; + DWORD JobId; + [switch_is(eEventType)] spoolss_BranchOfficeJobInfo JobInfo; + } spoolss_BranchOfficeJobData; + + typedef struct { + DWORD cJobDataEntries; + [size_is(cJobDataEntries)] spoolss_BranchOfficeJobData JobData[]; + } spoolss_BranchOfficeJobDataContainer; + + WERROR spoolss_LogJobInfoForBranchOffice( + [in,ref] policy_handle *hPrinter, + [in,ref] spoolss_BranchOfficeJobDataContainer *pBranchOfficeJobDataContainer + ); + } diff --git a/source3/rpc_server/spoolss/srv_spoolss_nt.c b/source3/rpc_server/spoolss/srv_spoolss_nt.c index 7413d9d4ccc2..5a8328c24bc4 100644 --- a/source3/rpc_server/spoolss/srv_spoolss_nt.c +++ b/source3/rpc_server/spoolss/srv_spoolss_nt.c @@ -11303,3 +11303,36 @@ WERROR _spoolss_RpcEnumJobNamedProperties(struct pipes_struct *p, p->fault_state = DCERPC_FAULT_OP_RNG_ERROR; return WERR_NOT_SUPPORTED; } + +/**************************************************************** + _spoolss_72 +****************************************************************/ + +WERROR _spoolss_72(struct pipes_struct *p, + struct spoolss_72 *r) +{ + p->fault_state = DCERPC_FAULT_OP_RNG_ERROR; + return WERR_NOT_SUPPORTED; +} + +/**************************************************************** + _spoolss_73 +****************************************************************/ + +WERROR _spoolss_73(struct pipes_struct *p, + struct spoolss_73 *r) +{ + p->fault_state = DCERPC_FAULT_OP_RNG_ERROR; + return WERR_NOT_SUPPORTED; +} + +/**************************************************************** + _spoolss_RpcLogJobInfoForBranchOffice +****************************************************************/ + +WERROR _spoolss_LogJobInfoForBranchOffice(struct pipes_struct *p, + struct spoolss_LogJobInfoForBranchOffice *r) +{ + p->fault_state = DCERPC_FAULT_OP_RNG_ERROR; + return WERR_NOT_SUPPORTED; +} -- 2.34.1