OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "printing/backend/win_helper.h" | 5 #include "printing/backend/win_helper.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include <algorithm> | 9 #include <algorithm> |
10 #include <memory> | 10 #include <memory> |
(...skipping 398 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
409 if (FAILED(hr)) | 409 if (FAILED(hr)) |
410 return dev_mode; | 410 return dev_mode; |
411 | 411 |
412 HPTPROVIDER provider = NULL; | 412 HPTPROVIDER provider = NULL; |
413 hr = printing::XPSModule::OpenProvider(printer_name, 1, &provider); | 413 hr = printing::XPSModule::OpenProvider(printer_name, 1, &provider); |
414 if (SUCCEEDED(hr)) { | 414 if (SUCCEEDED(hr)) { |
415 ULONG size = 0; | 415 ULONG size = 0; |
416 DEVMODE* dm = NULL; | 416 DEVMODE* dm = NULL; |
417 // Use kPTJobScope, because kPTDocumentScope breaks duplex. | 417 // Use kPTJobScope, because kPTDocumentScope breaks duplex. |
418 hr = printing::XPSModule::ConvertPrintTicketToDevMode( | 418 hr = printing::XPSModule::ConvertPrintTicketToDevMode( |
419 provider, pt_stream.get(), kUserDefaultDevmode, kPTJobScope, &size, &dm, | 419 provider, pt_stream.Get(), kUserDefaultDevmode, kPTJobScope, &size, &dm, |
420 NULL); | 420 NULL); |
421 if (SUCCEEDED(hr)) { | 421 if (SUCCEEDED(hr)) { |
422 // Correct DEVMODE using DocumentProperties. See documentation for | 422 // Correct DEVMODE using DocumentProperties. See documentation for |
423 // PTConvertPrintTicketToDevMode. | 423 // PTConvertPrintTicketToDevMode. |
424 dev_mode = CreateDevMode(printer.Get(), dm); | 424 dev_mode = CreateDevMode(printer.Get(), dm); |
425 printing::XPSModule::ReleaseMemory(dm); | 425 printing::XPSModule::ReleaseMemory(dm); |
426 } | 426 } |
427 printing::XPSModule::CloseProvider(provider); | 427 printing::XPSModule::CloseProvider(provider); |
428 } | 428 } |
429 return dev_mode; | 429 return dev_mode; |
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
553 *canceled = (result == IDCANCEL); | 553 *canceled = (result == IDCANCEL); |
554 if (result != IDOK) | 554 if (result != IDOK) |
555 return std::unique_ptr<DEVMODE, base::FreeDeleter>(); | 555 return std::unique_ptr<DEVMODE, base::FreeDeleter>(); |
556 int size = out->dmSize; | 556 int size = out->dmSize; |
557 int extra_size = out->dmDriverExtra; | 557 int extra_size = out->dmDriverExtra; |
558 CHECK_GE(buffer_size, size + extra_size); | 558 CHECK_GE(buffer_size, size + extra_size); |
559 return out; | 559 return out; |
560 } | 560 } |
561 | 561 |
562 } // namespace printing | 562 } // namespace printing |
OLD | NEW |