s4-rap: add rap print helpers.
[samba.git] / librpc / idl / rap.idl
1 #include "idl_types.h"
2
3 /*
4         rap interface definition
5 */
6
7 [
8         pointer_default(unique),
9         helper("../librpc/ndr/ndr_rap.h")
10 ]
11 interface rap
12 {
13         const int RAP_WshareEnum                        = 0;
14         const int RAP_WshareGetInfo                     = 1;
15         const int RAP_WshareSetInfo                     = 2;
16         const int RAP_WshareAdd                         = 3;
17         const int RAP_WshareDel                         = 4;
18         const int RAP_NetShareCheck                     = 5;
19         const int RAP_WsessionEnum                      = 6;
20         const int RAP_WsessionGetInfo                   = 7;
21         const int RAP_WsessionDel                       = 8;
22         const int RAP_WconnectionEnum                   = 9;
23         const int RAP_WfileEnum                         = 10;
24         const int RAP_WfileGetInfo                      = 11;
25         const int RAP_WfileClose                        = 12;
26         const int RAP_WserverGetInfo                    = 13;
27         const int RAP_WserverSetInfo                    = 14;
28         const int RAP_WserverDiskEnum                   = 15;
29         const int RAP_WserverAdminCommand               = 16;
30         const int RAP_NetAuditOpen                      = 17;
31         const int RAP_WauditClear                       = 18;
32         const int RAP_NetErrorLogOpen                   = 19;
33         const int RAP_WerrorLogClear                    = 20;
34         const int RAP_NetCharDevEnum                    = 21;
35         const int RAP_NetCharDevGetInfo                 = 22;
36         const int RAP_WCharDevControl                   = 23;
37         const int RAP_NetCharDevQEnum                   = 24;
38         const int RAP_NetCharDevQGetInfo                = 25;
39         const int RAP_WCharDevQSetInfo                  = 26;
40         const int RAP_WCharDevQPurge                    = 27;
41         const int RAP_WCharDevQPurgeSelf                = 28;
42         const int RAP_WMessageNameEnum                  = 29;
43         const int RAP_WMessageNameGetInfo               = 30;
44         const int RAP_WMessageNameAdd                   = 31;
45         const int RAP_WMessageNameDel                   = 32;
46         const int RAP_WMessageNameFwd                   = 33;
47         const int RAP_WMessageNameUnFwd                 = 34;
48         const int RAP_WMessageBufferSend                = 35;
49         const int RAP_WMessageFileSend                  = 36;
50         const int RAP_WMessageLogFileSet                = 37;
51         const int RAP_WMessageLogFileGet                = 38;
52         const int RAP_WServiceEnum                      = 39;
53         const int RAP_WServiceInstall                   = 40;
54         const int RAP_WServiceControl                   = 41;
55         const int RAP_WAccessEnum                       = 42;
56         const int RAP_WAccessGetInfo                    = 43;
57         const int RAP_WAccessSetInfo                    = 44;
58         const int RAP_WAccessAdd                        = 45;
59         const int RAP_WAccessDel                        = 46;
60         const int RAP_WGroupEnum                        = 47;
61         const int RAP_WGroupAdd                         = 48;
62         const int RAP_WGroupDel                         = 49;
63         const int RAP_WGroupAddUser                     = 50;
64         const int RAP_WGroupDelUser                     = 51;
65         const int RAP_WGroupGetUsers                    = 52;
66         const int RAP_WUserEnum                         = 53;
67         const int RAP_WUserAdd                          = 54;
68         const int RAP_WUserDel                          = 55;
69         const int RAP_WUserGetInfo                      = 56;
70         const int RAP_WUserSetInfo                      = 57;
71         const int RAP_WUserPasswordSet                  = 58;
72         const int RAP_WUserGetGroups                    = 59;
73         const int RAP_WWkstaSetUID                      = 62;
74         const int RAP_WWkstaGetInfo                     = 63;
75         const int RAP_WWkstaSetInfo                     = 64;
76         const int RAP_WUseEnum                          = 65;
77         const int RAP_WUseAdd                           = 66;
78         const int RAP_WUseDel                           = 67;
79         const int RAP_WUseGetInfo                       = 68;
80         const int RAP_WPrintQEnum                       = 69;
81         const int RAP_WPrintQGetInfo                    = 70;
82         const int RAP_WPrintQSetInfo                    = 71;
83         const int RAP_WPrintQAdd                        = 72;
84         const int RAP_WPrintQDel                        = 73;
85         const int RAP_WPrintQPause                      = 74;
86         const int RAP_WPrintQContinue                   = 75;
87         const int RAP_WPrintJobEnum                     = 76;
88         const int RAP_WPrintJobGetInfo                  = 77;
89         const int RAP_WPrintJobSetInfo_OLD              = 78;
90         const int RAP_WPrintJobDel                      = 81;
91         const int RAP_WPrintJobPause                    = 82;
92         const int RAP_WPrintJobContinue                 = 83;
93         const int RAP_WPrintDestEnum                    = 84;
94         const int RAP_WPrintDestGetInfo                 = 85;
95         const int RAP_WPrintDestControl                 = 86;
96         const int RAP_WProfileSave                      = 87;
97         const int RAP_WProfileLoad                      = 88;
98         const int RAP_WStatisticsGet                    = 89;
99         const int RAP_WStatisticsClear                  = 90;
100         const int RAP_NetRemoteTOD                      = 91;
101         const int RAP_WNetBiosEnum                      = 92;
102         const int RAP_WNetBiosGetInfo                   = 93;
103         const int RAP_NetServerEnum                     = 94;
104         const int RAP_I_NetServerEnum                   = 95;
105         const int RAP_WServiceGetInfo                   = 96;
106         const int RAP_WPrintQPurge                      = 103;
107         const int RAP_NetServerEnum2                    = 104;
108         const int RAP_WAccessGetUserPerms               = 105;
109         const int RAP_WGroupGetInfo                     = 106;
110         const int RAP_WGroupSetInfo                     = 107;
111         const int RAP_WGroupSetUsers                    = 108;
112         const int RAP_WUserSetGroups                    = 109;
113         const int RAP_WUserModalsGet                    = 110;
114         const int RAP_WUserModalsSet                    = 111;
115         const int RAP_WFileEnum2                        = 112;
116         const int RAP_WUserAdd2                         = 113;
117         const int RAP_WUserSetInfo2                     = 114;
118         const int RAP_WUserPasswordSet2                 = 115;
119         const int RAP_I_NetServerEnum2                  = 116;
120         const int RAP_WConfigGet2                       = 117;
121         const int RAP_WConfigGetAll2                    = 118;
122         const int RAP_WGetDCName                        = 119;
123         const int RAP_NetHandleGetInfo                  = 120;
124         const int RAP_NetHandleSetInfo                  = 121;
125         const int RAP_WStatisticsGet2                   = 122;
126         const int RAP_WBuildGetInfo                     = 123;
127         const int RAP_WFileGetInfo2                     = 124;
128         const int RAP_WFileClose2                       = 125;
129         const int RAP_WNetServerReqChallenge            = 126;
130         const int RAP_WNetServerAuthenticate            = 127;
131         const int RAP_WNetServerPasswordSet             = 128;
132         const int RAP_WNetAccountDeltas                 = 129;
133         const int RAP_WNetAccountSync                   = 130;
134         const int RAP_WUserEnum2                        = 131;
135         const int RAP_WWkstaUserLogon                   = 132;
136         const int RAP_WWkstaUserLogoff                  = 133;
137         const int RAP_WLogonEnum                        = 134;
138         const int RAP_WErrorLogRead                     = 135;
139         const int RAP_NetPathType                       = 136;
140         const int RAP_NetPathCanonicalize               = 137;
141         const int RAP_NetPathCompare                    = 138;
142         const int RAP_NetNameValidate                   = 139;
143         const int RAP_NetNameCanonicalize               = 140;
144         const int RAP_NetNameCompare                    = 141;
145         const int RAP_WAuditRead                        = 142;
146         const int RAP_WPrintDestAdd                     = 143;
147         const int RAP_WPrintDestSetInfo                 = 144;
148         const int RAP_WPrintDestDel                     = 145;
149         const int RAP_WUserValidate2                    = 146;
150         const int RAP_WPrintJobSetInfo                  = 147;
151         const int RAP_TI_NetServerDiskEnum              = 148;
152         const int RAP_TI_NetServerDiskGetInfo           = 149;
153         const int RAP_TI_FTVerifyMirror                 = 150;
154         const int RAP_TI_FTAbortVerify                  = 151;
155         const int RAP_TI_FTGetInfo                      = 152;
156         const int RAP_TI_FTSetInfo                      = 153;
157         const int RAP_TI_FTLockDisk                     = 154;
158         const int RAP_TI_FTFixError                     = 155;
159         const int RAP_TI_FTAbortFix                     = 156;
160         const int RAP_TI_FTDiagnoseError                = 157;
161         const int RAP_TI_FTGetDriveStats                = 158;
162         const int RAP_TI_FTErrorGetInfo                 = 160;
163         const int RAP_NetAccessCheck                    = 163;
164         const int RAP_NetAlertRaise                     = 164;
165         const int RAP_NetAlertStart                     = 165;
166         const int RAP_NetAlertStop                      = 166;
167         const int RAP_NetAuditWrite                     = 167;
168         const int RAP_NetIRemoteAPI                     = 168;
169         const int RAP_NetServiceStatus                  = 169;
170         const int RAP_NetServerRegister                 = 170;
171         const int RAP_NetServerDeregister               = 171;
172         const int RAP_NetSessionEntryMake               = 172;
173         const int RAP_NetSessionEntryClear              = 173;
174         const int RAP_NetSessionEntryGetInfo            = 174;
175         const int RAP_NetSessionEntrySetInfo            = 175;
176         const int RAP_NetConnectionEntryMake            = 176;
177         const int RAP_NetConnectionEntryClear           = 177;
178         const int RAP_NetConnectionEntrySetInfo         = 178;
179         const int RAP_NetConnectionEntryGetInfo         = 179;
180         const int RAP_NetFileEntryMake                  = 180;
181         const int RAP_NetFileEntryClear                 = 181;
182         const int RAP_NetFileEntrySetInfo               = 182;
183         const int RAP_NetFileEntryGetInfo               = 183;
184         const int RAP_AltSrvMessageBufferSend           = 184;
185         const int RAP_AltSrvMessageFileSend             = 185;
186         const int RAP_wI_NetRplWkstaEnum                = 186;
187         const int RAP_wI_NetRplWkstaGetInfo             = 187;
188         const int RAP_wI_NetRplWkstaSetInfo             = 188;
189         const int RAP_wI_NetRplWkstaAdd                 = 189;
190         const int RAP_wI_NetRplWkstaDel                 = 190;
191         const int RAP_wI_NetRplProfileEnum              = 191;
192         const int RAP_wI_NetRplProfileGetInfo           = 192;
193         const int RAP_wI_NetRplProfileSetInfo           = 193;
194         const int RAP_wI_NetRplProfileAdd               = 194;
195         const int RAP_wI_NetRplProfileDel               = 195;
196         const int RAP_wI_NetRplProfileClone             = 196;
197         const int RAP_wI_NetRplBaseProfileEnum          = 197;
198         const int RAP_WIServerSetInfo                   = 201;
199         const int RAP_WPrintDriverEnum                  = 205;
200         const int RAP_WPrintQProcessorEnum              = 206;
201         const int RAP_WPrintPortEnum                    = 207;
202         const int RAP_WNetWriteUpdateLog                = 208;
203         const int RAP_WNetAccountUpdate                 = 209;
204         const int RAP_WNetAccountConfirmUpdate          = 210;
205         const int RAP_WConfigSet                        = 211;
206         const int RAP_WAccountsReplicate                = 212;
207         const int RAP_SamOEMChgPasswordUser2_P          = 214;
208         const int RAP_NetServerEnum3                    = 215;
209         const int RAP_WprintDriverGetInfo               = 250;
210         const int RAP_WprintDriverSetInfo               = 251;
211         const int RAP_WaliasAdd                         = 252;
212         const int RAP_WaliasDel                         = 253;
213         const int RAP_WaliasGetInfo                     = 254;
214         const int RAP_WaliasSetInfo                     = 255;
215         const int RAP_WaliasEnum                        = 256;
216         const int RAP_WuserGetLogonAsn                  = 257;
217         const int RAP_WuserSetLogonAsn                  = 258;
218         const int RAP_WuserGetAppSel                    = 259;
219         const int RAP_WuserSetAppSel                    = 260;
220         const int RAP_WappAdd                           = 261;
221         const int RAP_WappDel                           = 262;
222         const int RAP_WappGetInfo                       = 263;
223         const int RAP_WappSetInfo                       = 264;
224         const int RAP_WappEnum                          = 265;
225         const int RAP_WUserDCDBInit                     = 266;
226         const int RAP_WDASDAdd                          = 267;
227         const int RAP_WDASDDel                          = 268;
228         const int RAP_WDASDGetInfo                      = 269;
229         const int RAP_WDASDSetInfo                      = 270;
230         const int RAP_WDASDEnum                         = 271;
231         const int RAP_WDASDCheck                        = 272;
232         const int RAP_WDASDCtl                          = 273;
233         const int RAP_WuserRemoteLogonCheck             = 274;
234         const int RAP_WUserPasswordSet3                 = 275;
235         const int RAP_WCreateRIPLMachine                = 276;
236         const int RAP_WDeleteRIPLMachine                = 277;
237         const int RAP_WGetRIPLMachineInfo               = 278;
238         const int RAP_WSetRIPLMachineInfo               = 279;
239         const int RAP_WEnumRIPLMachine                  = 280;
240         const int RAP_I_ShareAdd                        = 281;
241         const int RAP_AliasEnum                         = 282;
242         const int RAP_WaccessApply                      = 283;
243         const int RAP_WPrt16Query                       = 284;
244         const int RAP_WPrt16Set                         = 285;
245         const int RAP_WUserDel100                       = 286;
246         const int RAP_WUserRemoteLogonCheck2            = 287;
247         const int RAP_WRemoteTODSet                     = 294;
248         const int RAP_WprintJobMoveAll                  = 295;
249         const int RAP_W16AppParmAdd                     = 296;
250         const int RAP_W16AppParmDel                     = 297;
251         const int RAP_W16AppParmGet                     = 298;
252         const int RAP_W16AppParmSet                     = 299;
253         const int RAP_W16RIPLMachineCreate              = 300;
254         const int RAP_W16RIPLMachineGetInfo             = 301;
255         const int RAP_W16RIPLMachineSetInfo             = 302;
256         const int RAP_W16RIPLMachineEnum                = 303;
257         const int RAP_W16RIPLMachineListParmEnum        = 304;
258         const int RAP_W16RIPLMachClassGetInfo           = 305;
259         const int RAP_W16RIPLMachClassEnum              = 306;
260         const int RAP_W16RIPLMachClassCreate            = 307;
261         const int RAP_W16RIPLMachClassSetInfo           = 308;
262         const int RAP_W16RIPLMachClassDelete            = 309;
263         const int RAP_W16RIPLMachClassLPEnum            = 310;
264         const int RAP_W16RIPLMachineDelete              = 311;
265         const int RAP_W16WSLevelGetInfo                 = 312;
266         const int RAP_WserverNameAdd                    = 313;
267         const int RAP_WserverNameDel                    = 314;
268         const int RAP_WserverNameEnum                   = 315;
269         const int RAP_I_WDASDEnum                       = 316;
270         const int RAP_WDASDEnumTerminate                = 317;
271         const int RAP_WDASDSetInfo2                     = 318;
272         const int MAX_API                               = 318;
273
274         /* sizes of fixed-length fields, including null terminator */
275         const int RAP_GROUPNAME_LEN     = 21;
276         const int RAP_USERNAME_LEN      = 21;
277         const int RAP_SHARENAME_LEN     = 13;
278         const int RAP_UPASSWD_LEN       = 16; /* user password */
279         const int RAP_SPASSWD_LEN       = 9; /* share password */
280         const int RAP_MACHNAME_LEN      = 16;
281         const int RAP_SRVCNAME_LEN      = 16;
282         const int RAP_SRVCCMNT_LEN      = 64;
283         const int RAP_DATATYPE_LEN      = 10;
284
285         typedef struct {
286                 uint8 group_name[21];
287                 char reserved1;
288                 [string,charset(DOS)] uint8 *comment;
289         } rap_group_info_1;
290
291         typedef struct {
292                 uint8 user_name[21];
293                 char reserved1;
294                 uint8 passwrd[16];
295                 uint32 pwage;
296                 uint16 priv;
297                 [string,charset(DOS)] uint8 *home_dir;
298                 [string,charset(DOS)] uint8 *comment;
299                 uint16 userflags;
300                 [string,charset(DOS)] uint8 *logon_script;
301         } rap_user_info_1;
302
303         typedef struct {
304                 uint8 service_name[16];
305                 uint16 status;
306                 uint32 installcode;
307                 uint16 process_num;
308                 [string,charset(DOS)] uint8 *comment;
309         } rap_service_info_2;
310
311         typedef struct {
312                 uint8 share_name[13];
313         } rap_share_info_0;
314
315         typedef struct {
316                 uint8 share_name[13];
317                 char reserved1;
318                 uint16 share_type;
319                 [string,charset(DOS)] uint8 *comment;
320         } rap_share_info_1;
321
322         typedef struct {
323                 uint8 share_name[13];
324                 char reserved1;
325                 uint16 share_type;
326                 [string,charset(DOS)] uint8 *comment;
327                 uint16 perms;
328                 uint16 maximum_users;
329                 uint16 active_users;
330                 [string,charset(DOS)] uint8 *path;
331                 uint8 password[9];
332                 char reserved2;
333         } rap_share_info_2;
334
335         typedef [nodiscriminant] union {
336                 [case(0)] rap_share_info_0 info0;
337                 [case(1)] rap_share_info_1 info1;
338                 [case(2)] rap_share_info_2 info2;
339         } rap_share_info;
340
341         [public] void rap_NetShareEnum(
342                 [in] uint16 level,
343                 [in] uint16 bufsize,
344                 [out] uint16 status,
345                 [out] uint16 convert,
346                 [out] uint16 count,
347                 [out] uint16 available,
348                 [out,switch_is(level)] rap_share_info *info
349         );
350
351         typedef struct {
352                 uint8 name[16];
353         } rap_server_info_0;
354
355         typedef struct {
356                 uint8 name[16];
357                 uint8 version_major;
358                 uint8 version_minor;
359                 uint32 servertype;
360                 [string,charset(DOS)] uint8 *comment;
361         } rap_server_info_1;
362
363         typedef [nodiscriminant] union {
364                 [case(0)] rap_server_info_0 info0;
365                 [case(1)] rap_server_info_1 info1;
366         } rap_server_info;
367
368         [public] void rap_NetServerEnum2(
369                 [in] uint16 level,
370                 [in] uint16 bufsize,
371                 [in] uint32 servertype,
372                 [in] [string,charset(DOS)] uint8 *domain,
373                 [out] uint16 status,
374                 [out] uint16 convert,
375                 [out] uint16 count,
376                 [out] uint16 available,
377                 [out,switch_is(level)] rap_server_info *info
378         );
379
380         [public] void rap_WserverGetInfo(
381                 [in] uint16 level,
382                 [in] uint16 bufsize,
383                 [out] uint16 status,
384                 [out] uint16 convert,
385                 [out] uint16 available,
386                 [out,switch_is(level)] rap_server_info info
387         );
388
389         typedef [public] enum {
390                 PRQ_ACTIVE      = 0x0000,
391                 PRQ_PAUSE       = 0x0001,
392                 PRQ_ERROR       = 0x0002,
393                 PRQ_PENDING     = 0x0003
394         } rap_PrintQStatusCode;
395
396         typedef struct {
397                 uint8 PrintQName[13];
398         } rap_PrintQueue0;
399
400         typedef struct {
401                 uint8 PrintQName[13];
402                 uint8 Pad1;
403                 uint16 Priority;
404                 uint16 StartTime;
405                 uint16 UntilTime;
406                 [relative_short] [string,charset(DOS)] uint8 *SeparatorPageFilename;
407                 uint16 SeparatorPageFilenameHigh;
408                 [relative_short] [string,charset(DOS)] uint8 *PrintProcessorDllName;
409                 uint16 PrintProcessorDllNameHigh;
410                 [relative_short] [string,charset(DOS)] uint8 *PrintDestinationsName;
411                 uint16 PrintDestinationsNameHigh;
412                 [relative_short] [string,charset(DOS)] uint8 *PrintParameterString;
413                 uint16 PrintParameterStringHigh;
414                 [relative_short] [string,charset(DOS)] uint8 *CommentString;
415                 uint16 CommentStringHigh;
416                 rap_PrintQStatusCode PrintQStatus;
417                 uint16 PrintJobCount;
418         } rap_PrintQueue1;
419
420         typedef struct {
421         } rap_PrintQueue2;
422
423         typedef struct {
424                 [relative_short] [string,charset(DOS)] uint8 *PrintQueueName;
425                 uint16 PrintQueueNameHigh;
426                 uint16 Priority;
427                 uint16 StartTime;
428                 uint16 UntilTime;
429                 uint16 Pad;
430                 [relative_short] [string,charset(DOS)] uint8 *SeparatorPageFilename;
431                 uint16 SeparatorPageFilenameHigh;
432                 [relative_short] [string,charset(DOS)] uint8 *PrintProcessorDllName;
433                 uint16 PrintProcessorDllNameHigh;
434                 [relative_short] [string,charset(DOS)] uint8 *PrintParameterString;
435                 uint16 PrintParameterStringHigh;
436                 [relative_short] [string,charset(DOS)] uint8 *CommentString;
437                 uint16 CommentStringHigh;
438                 rap_PrintQStatusCode PrintQStatus;
439                 uint16 PrintJobCount;
440                 [relative_short] [string,charset(DOS)] uint8 *Printers;
441                 uint16 PrintersHigh;
442                 [relative_short] [string,charset(DOS)] uint8 *DriverName;
443                 uint16 DriverNameHigh;
444                 [relative_short] [string,charset(DOS)] uint8 *PrintDriverData;
445                 uint16 PrintDriverDataHigh;
446         } rap_PrintQueue3;
447
448         typedef struct {
449         } rap_PrintQueue4;
450
451         typedef struct {
452                 [relative_short] [string,charset(DOS)] uint8 *PrintQueueName;
453                 uint16 PrintQueueNameHigh;
454         } rap_PrintQueue5;
455
456         typedef [nodiscriminant] union {
457                 [case(0)] rap_PrintQueue0 info0;
458                 [case(1)] rap_PrintQueue1 info1;
459                 [case(2)] rap_PrintQueue2 info2;
460                 [case(3)] rap_PrintQueue3 info3;
461                 [case(4)] rap_PrintQueue4 info4;
462                 [case(5)] rap_PrintQueue5 info5;
463         } rap_printq_info;
464
465         typedef [public] enum {
466                 PRJ_QS_QUEUED   = 0x0000,
467                 PRJ_QS_PAUSED   = 0x0001,
468                 PRJ_QS_SPOOLING = 0x0002,
469                 PRJ_QS_PRINTING = 0x0003,
470                 PRJ_QS_ERROR    = 0x0010
471         } rap_PrintJStatusCode;
472
473         typedef struct {
474                 uint16 JobID;
475         } rap_PrintJobInfo0;
476
477         typedef struct {
478                 uint16 JobID;
479                 uint8 UserName[21];
480                 uint8 Pad;
481                 uint8 NotifyName[16];
482                 uint8 DataType[10];
483                 [relative_short] [string,charset(DOS)] uint8 *PrintParameterString;
484                 uint16 PrintParameterStringHigh;
485                 uint16 JobPosition;
486                 rap_PrintJStatusCode JobStatus;
487                 [relative_short] [string,charset(DOS)] uint8 *JobStatusString;
488                 uint16 JobStatusStringHigh;
489                 uint32 TimeSubmitted;
490                 uint32 JobSize;
491                 [relative_short] [string,charset(DOS)] uint8 *JobCommentString;
492                 uint16 JobCommentStringHigh;
493         } rap_PrintJobInfo1;
494
495         typedef struct {
496                 uint16 JobID;
497                 uint16 Priority;
498                 [relative_short] [string,charset(DOS)] uint8 *UserName;
499                 uint16 UserNameHigh;
500                 uint16 JobPosition;
501                 rap_PrintJStatusCode JobStatus;
502                 uint32 TimeSubmitted;
503                 uint32 JobSize;
504                 [relative_short] [string,charset(DOS)] uint8 *JobCommentString;
505                 uint16 JobCommentStringHigh;
506                 [relative_short] [string,charset(DOS)] uint8 *DocumentName;
507                 uint16 DocumentNameHigh;
508         } rap_PrintJobInfo2;
509
510         typedef struct {
511                 uint16 JobID;
512                 uint16 Priority;
513                 [relative_short] [string,charset(DOS)] uint8 *UserName;
514                 uint16 UserNameHigh;
515                 uint16 JobPosition;
516                 rap_PrintJStatusCode JobStatus;
517                 uint32 TimeSubmitted;
518                 uint32 JobSize;
519                 [relative_short] [string,charset(DOS)] uint8 *JobCommentString;
520                 uint16 JobCommentStringHigh;
521                 [relative_short] [string,charset(DOS)] uint8 *DocumentName;
522                 uint16 DocumentNameHigh;
523                 [relative_short] [string,charset(DOS)] uint8 *NotifyName;
524                 uint16 NotifyNameHigh;
525                 [relative_short] [string,charset(DOS)] uint8 *DataType;
526                 uint16 DataTypeHigh;
527                 [relative_short] [string,charset(DOS)] uint8 *PrintParameterString;
528                 uint16 PrintParameterStringHigh;
529                 [relative_short] [string,charset(DOS)] uint8 *StatusString;
530                 uint16 StatusStringHigh;
531                 [relative_short] [string,charset(DOS)] uint8 *QueueName;
532                 uint16 QueueNameHigh;
533                 [relative_short] [string,charset(DOS)] uint8 *PrintProcessorName;
534                 uint16 PrintProcessorNameHigh;
535                 [relative_short] [string,charset(DOS)] uint8 *PrintProcessorParams;
536                 uint16 PrintProcessorParamsHigh;
537                 [relative_short] [string,charset(DOS)] uint8 *DriverName;
538                 uint16 DriverNameHigh;
539                 [relative_short] [string,charset(DOS)] uint8 *DriverDataOffset;
540                 uint16 DriverDataOffsetHigh;
541                 [relative_short] [string,charset(DOS)] uint8 *PrinterNameOffset;
542                 uint16 PrinterNameOffsetHigh;
543         } rap_PrintJobInfo3;
544
545         [public,noprint] void rap_NetPrintQEnum(
546                 [in] uint16 level,
547                 [in] uint16 bufsize,
548                 [out] uint16 status,
549                 [out] uint16 convert,
550                 [out] uint16 count,
551                 [out] uint16 available,
552                 [out,switch_is(level)] rap_printq_info *info
553         );
554
555         /* Parameter description strings for RAP calls   */
556         /* Names are defined name for RAP call with _REQ */
557         /* appended to end.                              */
558
559         const string RAP_WFileEnum2_REQ                 = "zzWrLehb8g8";
560         const string RAP_WFileGetInfo2_REQ              = "DWrLh";
561         const string RAP_WFileClose2_REQ                = "D";
562
563         const string RAP_NetGroupEnum_REQ               = "WrLeh";
564         const string RAP_NetGroupAdd_REQ                = "WsT";
565         const string RAP_NetGroupDel_REQ                = "z";
566         const string RAP_NetGroupAddUser_REQ            = "zz";
567         const string RAP_NetGroupDelUser_REQ            = "zz";
568         const string RAP_NetGroupGetUsers_REQ           = "zWrLeh";
569         const string RAP_NetGroupSetUsers_REQ           = "zWsTW";
570
571         const string RAP_NetUserAdd2_REQ                = "WsTWW";
572         const string RAP_NetUserEnum_REQ                = "WrLeh";
573         const string RAP_NetUserEnum2_REQ               = "WrLDieh";
574         const string RAP_NetUserGetGroups_REQ           = "zWrLeh";
575         const string RAP_NetUserSetGroups_REQ           = "zWsTW";
576         const string RAP_NetUserPasswordSet_REQ         = "zb16b16w";
577         const string RAP_NetUserPasswordSet2_REQ        = "zb16b16WW";
578         const string RAP_SAMOEMChgPasswordUser2_REQ     = "B516B16";
579         const string RAP_NetUserValidate2_REQ           = "Wb62WWrLhWW";
580
581         const string RAP_NetServerEnum2_REQ             = "WrLehDz";
582         const string RAP_WserverGetInfo_REQ             = "WrLh";
583         const string RAP_NetWkstatGetInfo               = "WrLh";
584
585         const string RAP_WShareAdd_REQ                  = "WsT";
586         const string RAP_WShareEnum_REQ                 = "WrLeh";
587         const string RAP_WShareDel_REQ                  = "zW";
588         const string RAP_WWkstaGetInfo_REQ              = "WrLh";
589
590         const string RAP_NetPrintQEnum_REQ              = "WrLeh";
591         const string RAP_NetPrintQGetInfo_REQ           = "zWrLh";
592
593         const string RAP_NetServerAdminCommand_REQ      = "zhrLeh";
594         const string RAP_NetServiceEnum_REQ             = "WrLeh";
595         const string RAP_NetServiceControl_REQ          = "zWWrL";
596         const string RAP_NetServiceInstall_REQ          = "zF88sg88T";
597         const string RAP_NetServiceGetInfo_REQ          = "zWrLh";
598         const string RAP_NetSessionEnum_REQ             = "WrLeh";
599         const string RAP_NetSessionGetInfo_REQ          = "zWrLh";
600         const string RAP_NetSessionDel_REQ              = "zW";
601
602         const string RAP_NetConnectionEnum_REQ          = "zWrLeh";
603
604         const string RAP_NetWkstaUserLogoff_REQ         = "zzWb38WrLh";
605
606         /* Description strings for returned data in RAP calls */
607         /* I use all caps here in part to avoid accidental    */
608         /* name collisions */
609
610         const string RAP_FILE_INFO_L2                   = "D";
611         const string RAP_FILE_INFO_L3                   = "DWWzz";
612         const string  RAP_GROUP_INFO_L0                 = "B21";
613         const string RAP_GROUP_INFO_L1                  = "B21Bz";
614         const string RAP_GROUP_USERS_INFO_0             = "B21";
615         const string RAP_GROUP_USERS_INFO_1             = "B21BN";
616
617         const string RAP_USER_INFO_L0                   = "B21";
618         const string RAP_USER_INFO_L1                   = "B21BB16DWzzWz";
619
620         const string RAP_SERVER_INFO_L0                 = "B16";
621         const string RAP_SERVER_INFO_L1                 = "B16BBDz";
622         const string RAP_SERVER_INFO_L2                 = "B16BBDzDDDWWzWWWWWWWB21BzWWWWWWWWWWWWWWWWWWWWWWz";
623         const string RAP_SERVER_INFO_L3                 = "B16BBDzDDDWWzWWWWWWWB21BzWWWWWWWWWWWWWWWWWWWWWWzDWz";
624         const string RAP_SERVICE_INFO_L0                = "B16";
625         const string RAP_SERVICE_INFO_L2                = "B16WDWB64";
626         const string RAP_SHARE_INFO_L0                  = "B13";
627         const string RAP_SHARE_INFO_L1                  = "B13BWz";
628         const string RAP_SHARE_INFO_L2                  = "B13BWzWWWzB9B";
629
630         const string RAP_PRINTQ_INFO_L2                 = "B13BWWWzzzzzWN";
631         const string RAP_SMB_PRINT_JOB_L1               = "WB21BB16B10zWWzDDz";
632
633         const string RAP_SESSION_INFO_L2                = "zzWWWDDDz";
634         const string RAP_CONNECTION_INFO_L1             = "WWWWDzz";
635
636         const string RAP_USER_LOGOFF_INFO_L1            = "WDW";
637
638         const string RAP_WKSTA_INFO_L1                  = "WDzzzzBBDWDWWWWWWWWWWWWWWWWWWWzzWzzW";
639         const string RAP_WKSTA_INFO_L10                 = "zzzBBzz";
640 };