#include "idl_types.h" /* spoolss interface definitions */ [ uuid(12345678-1234-abcd-ef00-0123456789ab), version(1.0), pointer_default(unique) ] interface spoolss { /******************/ /* Function: 0x00 */ typedef struct { nstring devicename; uint16 specversion; uint16 driverversion; uint16 size; uint16 driverextra; uint32 fields; uint16 orientation; uint16 papersize; uint16 paperlength; uint16 paperwidth; uint16 scale; uint16 copies; uint16 defaultsource; uint16 printquality; uint16 color; uint16 duplex; uint16 yresolution; uint16 ttoption; uint16 collate; nstring formname; uint16 logpixels; uint32 bitsperpel; uint32 pelswidth; uint32 pelsheight; uint32 displayflags; uint32 displayfrequency; uint32 icmmethod; uint32 icmintent; uint32 mediatype; uint32 dithertype; uint32 reserved1; uint32 reserved2; uint32 panningwidth; uint32 panningheight; uint8 private[driverextra]; } spoolss_DeviceMode; typedef struct { uint32 flags; [relative] nstring *name; [relative] nstring *description; [relative] nstring *comment; } spoolss_PrinterInfo1; typedef struct { [relative] nstring *servername; [relative] nstring *printername; [relative] nstring *sharename; [relative] nstring *portname; [relative] nstring *drivername; [relative] nstring *comment; [relative] nstring *location; [relative] spoolss_DeviceMode *devmode; [relative] nstring *sepfile; [relative] nstring *printprocessor; [relative] nstring *datatype; [relative] nstring *parameters; [relative] security_descriptor *secdesc; uint32 attributes; uint32 priority; uint32 defaultpriority; uint32 starttime; uint32 untiltime; uint32 status; uint32 cjobs; uint32 averageppm; } spoolss_PrinterInfo2; typedef struct { uint32 flags; security_descriptor secdesc; } spoolss_PrinterInfo3; typedef struct { [relative] nstring *printername; [relative] nstring *servername; uint32 attributes; } spoolss_PrinterInfo4; typedef struct { [relative] nstring *printername; [relative] nstring *portname; uint32 attributes; uint32 device_not_selected_timeout; uint32 transmission_retry_timeout; } spoolss_PrinterInfo5; typedef struct { uint32 unknown; } spoolss_PrinterInfo6; typedef struct { [relative] nstring *guid; /* text form of printer guid */ uint32 action; } spoolss_PrinterInfo7; typedef [nodiscriminant,public] union { [case(1)] spoolss_PrinterInfo1 info1; [case(2)] spoolss_PrinterInfo2 info2; [case(3)] spoolss_PrinterInfo3 info3; [case(4)] spoolss_PrinterInfo4 info4; [case(5)] spoolss_PrinterInfo5 info5; [case(6)] spoolss_PrinterInfo6 info6; [case(7)] spoolss_PrinterInfo7 info7; } spoolss_PrinterInfo; WERROR spoolss_EnumPrinters( [in] uint32 flags, [in] unistr *server, [in] uint32 level, [in,out] DATA_BLOB *buffer, [in,out,ref] uint32 *buf_size, [out] uint32 count ); /******************/ /* Function: 0x01 */ WERROR spoolss_OpenPrinter( [in] unistr *server, [in] unistr *printer, [in] DATA_BLOB *buffer, [in] uint32 access_mask, [out,ref] policy_handle *handle ); /******************/ /* Function: 0x02 */ WERROR spoolss_02( ); /******************/ /* Function: 0x03 */ WERROR spoolss_03( ); /******************/ /* Function: 0x04 */ WERROR spoolss_EnumJobs( [in,ref] policy_handle *handle, [in] uint32 firstjob, [in] uint32 numjobs, [in] uint32 level, [in,out] DATA_BLOB *buffer, [in,out,ref] uint32 *buf_size, [out] uint32 numjobs ); /******************/ /* Function: 0x05 */ WERROR spoolss_05( ); /******************/ /* Function: 0x06 */ WERROR spoolss_06( ); /******************/ /* Function: 0x07 */ WERROR spoolss_07( ); /******************/ /* Function: 0x08 */ WERROR spoolss_GetPrinter( [in,ref] policy_handle *handle, [in] uint32 level, [in] DATA_BLOB *buffer, [out,subcontext(4),switch_is(level)] spoolss_PrinterInfo *info, [in,out,ref] uint32 *buf_size ); /******************/ /* Function: 0x09 */ WERROR spoolss_09( ); /******************/ /* Function: 0x0a */ WERROR spoolss_0a( ); /******************/ /* Function: 0x0b */ WERROR spoolss_0b( ); /******************/ /* Function: 0x0c */ WERROR spoolss_0c( ); /******************/ /* Function: 0x0d */ WERROR spoolss_0d( ); /******************/ /* Function: 0x0e */ WERROR spoolss_0e( ); /******************/ /* Function: 0x0f */ WERROR spoolss_0f( ); /******************/ /* Function: 0x10 */ WERROR spoolss_10( ); /******************/ /* Function: 0x11 */ WERROR spoolss_11( ); /******************/ /* Function: 0x12 */ WERROR spoolss_StartPagePrinter( [in,ref] policy_handle *handle ); /******************/ /* Function: 0x13 */ WERROR spoolss_13( ); /******************/ /* Function: 0x14 */ WERROR spoolss_EndPagePrinter( [in,ref] policy_handle *handle ); /******************/ /* Function: 0x15 */ WERROR spoolss_15( ); /******************/ /* Function: 0x16 */ WERROR spoolss_16( ); /******************/ /* Function: 0x17 */ WERROR spoolss_EndDocPrinter( ); /******************/ /* Function: 0x18 */ WERROR spoolss_18( ); /******************/ /* Function: 0x19 */ WERROR spoolss_19( ); /******************/ /* Function: 0x1a */ WERROR spoolss_1a( ); /******************/ /* Function: 0x1b */ WERROR spoolss_1b( ); /******************/ /* Function: 0x1c */ WERROR spoolss_1c( ); /******************/ /* Function: 0x1d */ WERROR spoolss_ClosePrinter( [in,out,ref] policy_handle *handle ); /******************/ /* Function: 0x1e */ WERROR spoolss_1e( ); /******************/ /* Function: 0x1f */ WERROR spoolss_1f( ); /******************/ /* Function: 0x20 */ WERROR spoolss_GetForm( [in,ref] policy_handle *handle, [in] unistr formname, [in] uint32 level, [out,subcontext(4),switch_is(level)] spoolss_PrinterInfo *info, [in,out,ref] uint32 *buf_size ); /******************/ /* Function: 0x21 */ WERROR spoolss_21( ); /******************/ /* Function: 0x22 */ WERROR spoolss_EnumForms( [in,ref] policy_handle *handle, [in] uint32 level, [in] DATA_BLOB *buffer, [out,subcontext(4),switch_is(level)] spoolss_PrinterInfo *info, [in,out,ref] uint32 *buf_size ); /******************/ /* Function: 0x23 */ WERROR spoolss_23( ); /******************/ /* Function: 0x24 */ WERROR spoolss_24( ); /******************/ /* Function: 0x25 */ WERROR spoolss_25( ); /******************/ /* Function: 0x26 */ WERROR spoolss_26( ); /******************/ /* Function: 0x27 */ WERROR spoolss_27( ); /******************/ /* Function: 0x28 */ WERROR spoolss_28( ); /******************/ /* Function: 0x29 */ WERROR spoolss_29( ); /******************/ /* Function: 0x2a */ WERROR spoolss_2a( ); /******************/ /* Function: 0x2b */ WERROR spoolss_2b( ); /******************/ /* Function: 0x2c */ WERROR spoolss_2c( ); /******************/ /* Function: 0x2d */ WERROR spoolss_2d( ); /******************/ /* Function: 0x2e */ WERROR spoolss_2e( ); /******************/ /* Function: 0x2f */ WERROR spoolss_2f( ); /******************/ /* Function: 0x30 */ WERROR spoolss_30( ); /******************/ /* Function: 0x31 */ WERROR spoolss_31( ); /******************/ /* Function: 0x32 */ WERROR spoolss_32( ); /******************/ /* Function: 0x33 */ WERROR spoolss_33( ); /******************/ /* Function: 0x34 */ WERROR spoolss_34( ); /******************/ /* Function: 0x35 */ WERROR spoolss_35( ); /******************/ /* Function: 0x36 */ WERROR spoolss_36( ); /******************/ /* Function: 0x37 */ WERROR spoolss_37( ); /******************/ /* Function: 0x38 */ WERROR spoolss_38( ); /******************/ /* Function: 0x39 */ WERROR spoolss_39( ); /******************/ /* Function: 0x3a */ WERROR spoolss_3a( ); /******************/ /* Function: 0x3b */ WERROR spoolss_3b( ); /******************/ /* Function: 0x3c */ WERROR spoolss_3c( ); /******************/ /* Function: 0x3d */ WERROR spoolss_3d( ); /******************/ /* Function: 0x3e */ WERROR spoolss_3e( ); /******************/ /* Function: 0x3f */ WERROR spoolss_3f( ); /******************/ /* Function: 0x40 */ WERROR spoolss_40( ); /******************/ /* Function: 0x41 */ WERROR spoolss_41( ); /******************/ /* Function: 0x42 */ WERROR spoolss_42( ); /******************/ /* Function: 0x43 */ WERROR spoolss_43( ); /******************/ /* Function: 0x44 */ WERROR spoolss_44( ); typedef struct { uint32 foo; } spoolss_Devmode; typedef struct { uint32 size; spoolss_Devmode *devmode; } spoolss_DevmodeContainer; typedef struct { uint32 size; unistr *client; unistr *user; uint32 build; uint32 major; uint32 minor; uint32 processor; } spoolss_UserLevel1; typedef union { [case(1)] spoolss_UserLevel1 *level1; } spoolss_UserLevel; /******************/ /* Function: 0x45 */ WERROR spoolss_OpenPrinterEx( [in] unistr *printername, [in] unistr *datatype, [in] spoolss_DevmodeContainer devmode_ctr, [in] uint32 access_required, [in] uint32 level, [in,switch_is(level)] spoolss_UserLevel userlevel, [out,ref] policy_handle *handle ); /******************/ /* Function: 0x46 */ WERROR spoolss_46( ); /******************/ /* Function: 0x47 */ WERROR spoolss_47( ); /******************/ /* Function: 0x48 */ WERROR spoolss_EnumPrinterData( [in,ref] policy_handle *handle, [in] uint32 enum_index, [in] uint32 value_offered, [out] lstring value, [out] uint32 value_needed, [out] uint32 printerdata_type, [out] DATA_BLOB data, [in,out,ref] uint32 *data_size ); /******************/ /* Function: 0x49 */ WERROR spoolss_49( ); /******************/ /* Function: 0x4a */ WERROR spoolss_4a( ); /******************/ /* Function: 0x4b */ WERROR spoolss_4b( ); /******************/ /* Function: 0x4c */ WERROR spoolss_4c( ); /******************/ /* Function: 0x4d */ WERROR spoolss_4d( ); /******************/ /* Function: 0x4e */ WERROR spoolss_4e( ); /******************/ /* Function: 0x4f */ WERROR spoolss_4f( ); /******************/ /* Function: 0x50 */ WERROR spoolss_50( ); /******************/ /* Function: 0x51 */ WERROR spoolss_51( ); /******************/ /* Function: 0x52 */ WERROR spoolss_52( ); /******************/ /* Function: 0x53 */ WERROR spoolss_53( ); /******************/ /* Function: 0x54 */ WERROR spoolss_54( ); /******************/ /* Function: 0x55 */ WERROR spoolss_55( ); /******************/ /* Function: 0x56 */ WERROR spoolss_56( ); /******************/ /* Function: 0x57 */ WERROR spoolss_57( ); /******************/ /* Function: 0x58 */ WERROR spoolss_58( ); /******************/ /* Function: 0x59 */ WERROR spoolss_59( ); /******************/ /* Function: 0x5a */ WERROR spoolss_5a( ); /******************/ /* Function: 0x5b */ WERROR spoolss_5b( ); /******************/ /* Function: 0x5c */ WERROR spoolss_5c( ); /******************/ /* Function: 0x5d */ WERROR spoolss_5d( ); /******************/ /* Function: 0x5e */ WERROR spoolss_5e( ); /******************/ /* Function: 0x5f */ WERROR spoolss_5f( ); }