< prev index next >

src/java.desktop/windows/native/libawt/windows/WPrinterJob.cpp

Print this page




 171     CATCH_BAD_ALLOC_RET(NULL);
 172 }
 173 
 174 JNIEXPORT jobjectArray JNICALL
 175 Java_sun_print_PrintServiceLookupProvider_getAllPrinterNames(JNIEnv *env,
 176                                                              jobject peer)
 177 {
 178     return getPrinterNames(env, PRINTER_ENUM_LOCAL | PRINTER_ENUM_CONNECTIONS);
 179 }
 180 
 181 JNIEXPORT jobjectArray JNICALL
 182 Java_sun_print_PrintServiceLookupProvider_getRemotePrintersNames(JNIEnv *env,
 183                                                                  jobject peer)
 184 {
 185     return getPrinterNames(env, PRINTER_ENUM_CONNECTIONS);
 186 }
 187 
 188 
 189 JNIEXPORT jlong JNICALL
 190 Java_sun_print_PrintServiceLookupProvider_notifyFirstPrinterChange(JNIEnv *env,
 191                                                                 jobject peer,
 192                                                                 jstring printer) {
 193     HANDLE hPrinter;
 194 
 195     LPTSTR printerName = NULL;
 196     if (printer != NULL) {
 197         printerName = (LPTSTR)JNU_GetStringPlatformChars(env,
 198                                                          printer,
 199                                                          NULL);
 200         JNU_ReleaseStringPlatformChars(env, printer, printerName);
 201     }
 202 
 203     // printerName - "Win NT/2K/XP: If NULL, it indicates the local printer
 204     // server" - MSDN.   Win9x : OpenPrinter returns 0.
 205     BOOL ret = OpenPrinter(printerName, &hPrinter, NULL);
 206     if (!ret) {
 207       return (jlong)-1;
 208     }
 209 
 210     // PRINTER_CHANGE_PRINTER = PRINTER_CHANGE_ADD_PRINTER |
 211     //                          PRINTER_CHANGE_SET_PRINTER |
 212     //                          PRINTER_CHANGE_DELETE_PRINTER |
 213     //                          PRINTER_CHANGE_FAILED_CONNECTION_PRINTER
 214     HANDLE chgObj = FindFirstPrinterChangeNotification(hPrinter,
 215                                                        PRINTER_CHANGE_PRINTER,
 216                                                        0,
 217                                                        NULL);
 218     return (chgObj == INVALID_HANDLE_VALUE) ? (jlong)-1 : (jlong)chgObj;
 219 }
 220 
 221 
 222 
 223 JNIEXPORT void JNICALL
 224 Java_sun_print_PrintServiceLookupProvider_notifyClosePrinterChange(JNIEnv *env,




 171     CATCH_BAD_ALLOC_RET(NULL);
 172 }
 173 
 174 JNIEXPORT jobjectArray JNICALL
 175 Java_sun_print_PrintServiceLookupProvider_getAllPrinterNames(JNIEnv *env,
 176                                                              jobject peer)
 177 {
 178     return getPrinterNames(env, PRINTER_ENUM_LOCAL | PRINTER_ENUM_CONNECTIONS);
 179 }
 180 
 181 JNIEXPORT jobjectArray JNICALL
 182 Java_sun_print_PrintServiceLookupProvider_getRemotePrintersNames(JNIEnv *env,
 183                                                                  jobject peer)
 184 {
 185     return getPrinterNames(env, PRINTER_ENUM_CONNECTIONS);
 186 }
 187 
 188 
 189 JNIEXPORT jlong JNICALL
 190 Java_sun_print_PrintServiceLookupProvider_notifyFirstPrinterChange(JNIEnv *env,
 191                                                                 jobject peer) {

 192     HANDLE hPrinter;
 193     LPTSTR printerName = NULL; // NULL indicates the local printer server










 194     BOOL ret = OpenPrinter(printerName, &hPrinter, NULL);
 195     if (!ret) {
 196       return (jlong)-1;
 197     }
 198 
 199     // PRINTER_CHANGE_PRINTER = PRINTER_CHANGE_ADD_PRINTER |
 200     //                          PRINTER_CHANGE_SET_PRINTER |
 201     //                          PRINTER_CHANGE_DELETE_PRINTER |
 202     //                          PRINTER_CHANGE_FAILED_CONNECTION_PRINTER
 203     HANDLE chgObj = FindFirstPrinterChangeNotification(hPrinter,
 204                                                        PRINTER_CHANGE_PRINTER,
 205                                                        0,
 206                                                        NULL);
 207     return (chgObj == INVALID_HANDLE_VALUE) ? (jlong)-1 : (jlong)chgObj;
 208 }
 209 
 210 
 211 
 212 JNIEXPORT void JNICALL
 213 Java_sun_print_PrintServiceLookupProvider_notifyClosePrinterChange(JNIEnv *env,


< prev index next >