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 <algorithm> | 7 #include <algorithm> |
8 | 8 |
9 #include "base/file_version_info.h" | 9 #include "base/file_version_info.h" |
10 #include "base/files/file_path.h" | 10 #include "base/files/file_path.h" |
(...skipping 392 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
403 HRESULT hr = StreamFromPrintTicket(print_ticket, pt_stream.Receive()); | 403 HRESULT hr = StreamFromPrintTicket(print_ticket, pt_stream.Receive()); |
404 if (FAILED(hr)) | 404 if (FAILED(hr)) |
405 return dev_mode.Pass(); | 405 return dev_mode.Pass(); |
406 | 406 |
407 HPTPROVIDER provider = NULL; | 407 HPTPROVIDER provider = NULL; |
408 hr = printing::XPSModule::OpenProvider(printer_name, 1, &provider); | 408 hr = printing::XPSModule::OpenProvider(printer_name, 1, &provider); |
409 if (SUCCEEDED(hr)) { | 409 if (SUCCEEDED(hr)) { |
410 ULONG size = 0; | 410 ULONG size = 0; |
411 DEVMODE* dm = NULL; | 411 DEVMODE* dm = NULL; |
412 // Use kPTJobScope, because kPTDocumentScope breaks duplex. | 412 // Use kPTJobScope, because kPTDocumentScope breaks duplex. |
413 hr = printing::XPSModule::ConvertPrintTicketToDevMode(provider, | 413 hr = printing::XPSModule::ConvertPrintTicketToDevMode( |
414 pt_stream, | 414 provider, pt_stream.get(), kUserDefaultDevmode, kPTJobScope, &size, &dm, |
415 kUserDefaultDevmode, | 415 NULL); |
416 kPTJobScope, | |
417 &size, | |
418 &dm, | |
419 NULL); | |
420 if (SUCCEEDED(hr)) { | 416 if (SUCCEEDED(hr)) { |
421 // Correct DEVMODE using DocumentProperties. See documentation for | 417 // Correct DEVMODE using DocumentProperties. See documentation for |
422 // PTConvertPrintTicketToDevMode. | 418 // PTConvertPrintTicketToDevMode. |
423 dev_mode = CreateDevMode(printer.Get(), dm); | 419 dev_mode = CreateDevMode(printer.Get(), dm); |
424 printing::XPSModule::ReleaseMemory(dm); | 420 printing::XPSModule::ReleaseMemory(dm); |
425 } | 421 } |
426 printing::XPSModule::CloseProvider(provider); | 422 printing::XPSModule::CloseProvider(provider); |
427 } | 423 } |
428 return dev_mode.Pass(); | 424 return dev_mode.Pass(); |
429 } | 425 } |
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
518 *canceled = (result == IDCANCEL); | 514 *canceled = (result == IDCANCEL); |
519 if (result != IDOK) | 515 if (result != IDOK) |
520 return scoped_ptr<DEVMODE, base::FreeDeleter>(); | 516 return scoped_ptr<DEVMODE, base::FreeDeleter>(); |
521 int size = out->dmSize; | 517 int size = out->dmSize; |
522 int extra_size = out->dmDriverExtra; | 518 int extra_size = out->dmDriverExtra; |
523 CHECK_GE(buffer_size, size + extra_size); | 519 CHECK_GE(buffer_size, size + extra_size); |
524 return out.Pass(); | 520 return out.Pass(); |
525 } | 521 } |
526 | 522 |
527 } // namespace printing | 523 } // namespace printing |
OLD | NEW |