home *** CD-ROM | disk | FTP | other *** search
Wrap
Java Source | 1998-03-05 | 12.3 KB | 246 lines
// Copyright (C) 1997 Microsoft Corporation All Rights Reserved // These classes provide direct, low-overhead access to commonly used // Windows api. These classes use the new J/Direct feature. // // Information on how to use J/Direct to write your own declarations // can be found in the Microsoft SDK for Java 2.0. package com.ms.win32; /** @security(checkClassLinking=on) */ public class Spoolss { /** @dll.import("WINSPOOL.DRV",auto) */ public native static boolean AbortPrinter (int hPrinter); /** @dll.import("WINSPOOL.DRV",auto) */ public native static boolean AddForm (int hPrinter, int Level, FORM_INFO_1 pForm); /** @dll.import("WINSPOOL.DRV",auto) */ public native static boolean AddJob (int hPrinter, int Level, Object pData, int cbBuf, int[] pcbNeeded); /** @dll.import("WINSPOOL.DRV", auto) */ public native static boolean AddMonitor (String pName, int Level, Object pMonitors); /** @dll.import("WINSPOOL.DRV", auto) */ public native static boolean AddPort (String pName, int hWnd, String pMonitorName); /** @dll.import("WINSPOOL.DRV", auto) */ public native static boolean AddPrintProcessor (String pName, String pEnvironment, String pPathName, String pPrintProcessorName); /** @dll.import("WINSPOOL.DRV", auto) */ public native static boolean AddPrintProvidor (String pName, int level, Object pProvidorInfo); /** @dll.import("WINSPOOL.DRV", auto) */ public native static boolean AddPrinterConnection (String pName); /** @dll.import("WINSPOOL.DRV", auto) */ public native static boolean AddPrinterDriver (String pName, int Level, Object pDriverInfo); /** @dll.import("WINSPOOL.DRV", auto) */ public native static int AddPrinter (String pName, int Level, Object pPrinter); /** @dll.import("WINSPOOL.DRV",auto) */ public native static boolean ClosePrinter (int hPrinter); /** @dll.import("WINSPOOL.DRV", auto) */ public native static boolean ConfigurePort (String pName, int hWnd, String pPortName); /** @dll.import("WINSPOOL.DRV", auto) */ public native static boolean DeleteForm (int hPrinter, String pFormName); /** @dll.import("WINSPOOL.DRV", auto) */ public native static boolean DeleteMonitor (String pName, String pEnvironment, String pMonitorName); /** @dll.import("WINSPOOL.DRV", auto) */ public native static boolean DeletePort (String pName, int hWnd, String pPortName); /** @dll.import("WINSPOOL.DRV", auto) */ public native static boolean DeletePrintProcessor (String pName, String pEnvironment, String pPrintProcessorName); /** @dll.import("WINSPOOL.DRV", auto) */ public native static boolean DeletePrintProvidor (String pName, String pEnvironment, String pPrintProvidorName); /** @dll.import("WINSPOOL.DRV",auto) */ public native static boolean DeletePrinter (int hPrinter); /** @dll.import("WINSPOOL.DRV", auto) */ public native static boolean DeletePrinterConnection (String pName); /** @dll.import("WINSPOOL.DRV", auto) */ public native static int DeletePrinterData (int hPrinter, String pValueName); /** @dll.import("WINSPOOL.DRV", auto) */ public native static boolean DeletePrinterDriver (String pName, String pEnvironment, String pDriverName); /** @dll.import("WINSPOOL.DRV",auto) */ public native static boolean EndDocPrinter (int hPrinter); /** @dll.import("WINSPOOL.DRV",auto) */ public native static boolean EndPagePrinter (int hPrinter); /** @dll.import("WINSPOOL.DRV",auto) */ public native static boolean EnumForms (int hPrinter, int Level, Object pForm, int cbBuf, int[] pcbNeeded, int[] pcReturned); /** @dll.import("WINSPOOL.DRV",auto) */ public native static boolean EnumJobs (int hPrinter, int FirstJob, int NoJobs, int Level, Object pJob, int cbBuf, int[] pcbNeeded, int[] pcReturned); /** @dll.import("WINSPOOL.DRV", auto) */ public native static boolean EnumMonitors (String pName, int Level, Object pMonitors, int cbBuf, int[] pcbNeeded, int[] pcReturned); /** @dll.import("WINSPOOL.DRV", auto) */ public native static boolean EnumPorts (String pName, int Level, Object pPorts, int cbBuf, int[] pcbNeeded, int[] pcReturned); /** @dll.import("WINSPOOL.DRV", auto) */ public native static boolean EnumPrintProcessorDatatypes (String pName, String pPrintProcessorName, int Level, Object pDatatypes, int cbBuf, int[] pcbNeeded, int[] pcReturned); /** @dll.import("WINSPOOL.DRV", auto) */ public native static boolean EnumPrintProcessors (String pName, String pEnvironment, int Level, Object pPrintProcessorInfo, int cbBuf, int[] pcbNeeded, int[] pcReturned); /** @dll.import("WINSPOOL.DRV", auto) */ public native static int EnumPrinterData (int hPrinter, int dwIndex, String pValueName, int cbValueName, int[] pcbValueName, int[] pType, Object pData, int cbData, int[] pcbData); /** @dll.import("WINSPOOL.DRV", auto) */ public native static boolean EnumPrinterDrivers (String pName, String pEnvironment, int Level, Object pDriverInfo, int cbBuf, int[] pcbNeeded, int[] pcReturned); /** @dll.import("WINSPOOL.DRV", auto) */ public native static boolean EnumPrinters (int Flags, String Name, int Level, Object pPrinterEnum, int cbBuf, int[] pcbNeeded, int[] pcReturned); /** @dll.import("WINSPOOL.DRV", auto, entrypoint="EnumPrinters") */ private native static boolean EnumPrinters_I (int Flags, String Name, int Level, int[] pPrinterEnum, int cbBuf, int[] pcbNeeded, int[] pcReturned); private static boolean EnumPrintersWorker (Class PrinterStructClass, int Flags, String Name, int Level, PRINTER_INFO[] pPrinterEnum, int cbBuf, int[] pcbNeeded, int[] pcReturned) { PRINTER_INFO pinfo; try { pinfo = (PRINTER_INFO)(PrinterStructClass.newInstance()); } catch (Exception ie) { throw new OutOfMemoryError(ie.toString()); } int numSlots = pinfo.numSlots(); if (pPrinterEnum != null) { cbBuf = pPrinterEnum.length * (numSlots * 4); for (int i = 0; i < pPrinterEnum.length; i++) { try { if (pPrinterEnum[i] == null) { pPrinterEnum[i] = (PRINTER_INFO) (PrinterStructClass.newInstance()); } } catch (Exception ie) { throw new OutOfMemoryError(ie.toString()); } } } int[] tempbuf = pPrinterEnum != null ? new int[numSlots * pPrinterEnum.length] : null; boolean rv = EnumPrinters_I(Flags, Name, Level, tempbuf, cbBuf, pcbNeeded, pcReturned); if (rv) { if (pPrinterEnum != null) { if (pcReturned[0] <= pPrinterEnum.length) { int idx = 0; for (int i = 0; i < pcReturned[0]; i++) { pPrinterEnum[i].copyFromNative(tempbuf, idx); idx += numSlots; } } } } return rv; } public static boolean EnumPrinters (int Flags, String Name, int Level, PRINTER_INFO_1[] pPrinterEnum, int cbBuf, int[] pcbNeeded, int[] pcReturned) { return EnumPrintersWorker(PRINTER_INFO_1.class, Flags, Name, Level, (PRINTER_INFO[])pPrinterEnum, cbBuf, pcbNeeded, pcReturned); } public static boolean EnumPrinters (int Flags, String Name, int Level, PRINTER_INFO_2[] pPrinterEnum, int cbBuf, int[] pcbNeeded, int[] pcReturned) { return EnumPrintersWorker(PRINTER_INFO_2.class, Flags, Name, Level, (PRINTER_INFO[])pPrinterEnum, cbBuf, pcbNeeded, pcReturned); } public static boolean EnumPrinters (int Flags, String Name, int Level, PRINTER_INFO_4[] pPrinterEnum, int cbBuf, int[] pcbNeeded, int[] pcReturned) { return EnumPrintersWorker(PRINTER_INFO_4.class, Flags, Name, Level, (PRINTER_INFO[])pPrinterEnum, cbBuf, pcbNeeded, pcReturned); } public static boolean EnumPrinters (int Flags, String Name, int Level, PRINTER_INFO_5[] pPrinterEnum, int cbBuf, int[] pcbNeeded, int[] pcReturned) { return EnumPrintersWorker(PRINTER_INFO_5.class, Flags, Name, Level, (PRINTER_INFO[])pPrinterEnum, cbBuf, pcbNeeded, pcReturned); } /** @dll.import("WINSPOOL.DRV",auto) */ public native static boolean FindClosePrinterChangeNotification (int hChange); /** @dll.import("WINSPOOL.DRV", auto) */ public native static boolean GetForm (int hPrinter, String pFormName, int Level, Object pForm, int cbBuf, int[] pcbNeeded); /** @dll.import("WINSPOOL.DRV",auto) */ public native static boolean GetJob (int hPrinter, int JobId, int Level, Object pJob, int cbBuf, int[] pcbNeeded); /** @dll.import("WINSPOOL.DRV", auto) */ public native static boolean GetPrintProcessorDirectory (String pName, String pEnvironment, int Level, Object pPrintProcessorInfo, int cbBuf, int[] pcbNeeded); /** @dll.import("WINSPOOL.DRV", auto) */ public native static int GetPrinterData (int hPrinter, String pValueName, int[] pType, Object pData, int nSize, int[] pcbNeeded); /** @dll.import("WINSPOOL.DRV", auto) */ public native static boolean GetPrinterDriverDirectory (String pName, String pEnvironment, int Level, Object pDriverDirectory, int cbBuf, int[] pcbNeeded); /** @dll.import("WINSPOOL.DRV", auto) */ public native static boolean GetPrinterDriver (int hPrinter, String pEnvironment, int Level, Object pDriverInfo, int cbBuf, int[] pcbNeeded); /** @dll.import("WINSPOOL.DRV",auto) */ public native static boolean GetPrinter (int hPrinter, int Level, Object pPrinter, int cbBuf, int[] pcbNeeded); /** @dll.import("WINSPOOL.DRV", auto) */ public native static boolean OpenPrinter (String pPrinterName, int[] phPrinter, PRINTER_DEFAULTS pDefault); /** @dll.import("WINSPOOL.DRV", auto) */ public native static int PrinterMessageBox (int hPrinter, int Error, int hWnd, String pText, String pCaption, int dwType); /** @dll.import("WINSPOOL.DRV",auto) */ public native static boolean ReadPrinter (int hPrinter, Object pBuf, int cbBuf, int[] pNoBytesRead); /** @dll.import("WINSPOOL.DRV",auto) */ public native static boolean ResetPrinter (int hPrinter, PRINTER_DEFAULTS pDefault); /** @dll.import("WINSPOOL.DRV",auto) */ public native static boolean ScheduleJob (int hPrinter, int JobId); /** @dll.import("WINSPOOL.DRV", auto) */ public native static boolean SetForm (int hPrinter, String pFormName, int Level, FORM_INFO_1 pForm); /** @dll.import("WINSPOOL.DRV",auto) */ public native static boolean SetJob (int hPrinter, int JobId, int Level, Object pJob, int Command); /** @dll.import("WINSPOOL.DRV",auto) */ public native static boolean SetPort (String pName, String pPortName, int dwLevel, Object pPortInfo); /** @dll.import("WINSPOOL.DRV", auto) */ public native static int SetPrinterData (int hPrinter, String pValueName, int Type, Object pData, int cbData); /** @dll.import("WINSPOOL.DRV",auto) */ public native static boolean SetPrinter (int hPrinter, int Level, Object pPrinter, int Command); /** @dll.import("WINSPOOL.DRV",auto) */ public native static int StartDocPrinter (int hPrinter, int Level, Object pDocInfo); /** @dll.import("WINSPOOL.DRV",auto) */ public native static boolean StartPagePrinter (int hPrinter); /** @dll.import("WINSPOOL.DRV",auto) */ public native static int WaitForPrinterChange (int hPrinter, int Flags); /** @dll.import("WINSPOOL.DRV",auto) */ public native static boolean WritePrinter (int hPrinter, Object pBuf, int cbBuf, int[] pcWritten); }