| 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 |