| Index: chrome/service/cloud_print/print_system_win.cc
|
| ===================================================================
|
| --- chrome/service/cloud_print/print_system_win.cc (revision 121842)
|
| +++ chrome/service/cloud_print/print_system_win.cc (working copy)
|
| @@ -406,10 +406,10 @@
|
|
|
| HDC dc = CreateDC(L"WINSPOOL", UTF8ToWide(printer_name).c_str(),
|
| NULL, pt_dev_mode.dm_);
|
| - if (!dc)
|
| + if (!dc) {
|
| + NOTREACHED();
|
| return false;
|
| -
|
| - printer_dc_.Set(dc);
|
| + }
|
| hr = E_FAIL;
|
| DOCINFO di = {0};
|
| di.cbSize = sizeof(DOCINFO);
|
| @@ -419,7 +419,8 @@
|
| if (job_id_ <= 0)
|
| return false;
|
|
|
| - saved_dc_ = SaveDC(printer_dc_.get());
|
| + printer_dc_.Set(dc);
|
| + saved_dc_ = SaveDC(printer_dc_.Get());
|
| print_data_file_path_ = print_data_file_path;
|
| delegate_ = delegate;
|
| RenderNextPDFPages();
|
| @@ -439,18 +440,18 @@
|
| }
|
|
|
| void PreparePageDCForPrinting(HDC, double scale_factor) {
|
| - SetGraphicsMode(printer_dc_.get(), GM_ADVANCED);
|
| + SetGraphicsMode(printer_dc_.Get(), GM_ADVANCED);
|
| // Setup the matrix to translate and scale to the right place. Take in
|
| // account the scale factor.
|
| // Note that the printing output is relative to printable area of
|
| // the page. That is 0,0 is offset by PHYSICALOFFSETX/Y from the page.
|
| - int offset_x = ::GetDeviceCaps(printer_dc_.get(), PHYSICALOFFSETX);
|
| - int offset_y = ::GetDeviceCaps(printer_dc_.get(), PHYSICALOFFSETY);
|
| + int offset_x = ::GetDeviceCaps(printer_dc_.Get(), PHYSICALOFFSETX);
|
| + int offset_y = ::GetDeviceCaps(printer_dc_.Get(), PHYSICALOFFSETY);
|
| XFORM xform = {0};
|
| xform.eDx = static_cast<float>(-offset_x);
|
| xform.eDy = static_cast<float>(-offset_y);
|
| xform.eM11 = xform.eM22 = 1.0 / scale_factor;
|
| - SetWorldTransform(printer_dc_.get(), &xform);
|
| + SetWorldTransform(printer_dc_.Get(), &xform);
|
| }
|
|
|
| // ServiceUtilityProcessHost::Client implementation.
|
| @@ -458,8 +459,8 @@
|
| const printing::Emf& metafile,
|
| int highest_rendered_page_number,
|
| double scale_factor) OVERRIDE {
|
| - PreparePageDCForPrinting(printer_dc_.get(), scale_factor);
|
| - metafile.SafePlayback(printer_dc_.get());
|
| + PreparePageDCForPrinting(printer_dc_.Get(), scale_factor);
|
| + metafile.SafePlayback(printer_dc_.Get());
|
| bool done_printing = (highest_rendered_page_number !=
|
| last_page_printed_ + kPageCountPerBatch);
|
| last_page_printed_ = highest_rendered_page_number;
|
| @@ -513,8 +514,8 @@
|
| // If there is no delegate, then there is nothing pending to process.
|
| if (!delegate_)
|
| return;
|
| - RestoreDC(printer_dc_.get(), saved_dc_);
|
| - EndDoc(printer_dc_.get());
|
| + RestoreDC(printer_dc_.Get(), saved_dc_);
|
| + EndDoc(printer_dc_.Get());
|
| if (-1 == last_page_printed_) {
|
| delegate_->OnJobSpoolFailed();
|
| } else {
|
| @@ -531,9 +532,9 @@
|
| std::vector<printing::PageRange> page_ranges;
|
| page_ranges.push_back(range);
|
|
|
| - int printer_dpi = ::GetDeviceCaps(printer_dc_.get(), LOGPIXELSX);
|
| - int dc_width = GetDeviceCaps(printer_dc_.get(), PHYSICALWIDTH);
|
| - int dc_height = GetDeviceCaps(printer_dc_.get(), PHYSICALHEIGHT);
|
| + int printer_dpi = ::GetDeviceCaps(printer_dc_.Get(), LOGPIXELSX);
|
| + int dc_width = GetDeviceCaps(printer_dc_.Get(), PHYSICALWIDTH);
|
| + int dc_height = GetDeviceCaps(printer_dc_.Get(), PHYSICALHEIGHT);
|
| gfx::Rect render_area(0, 0, dc_width, dc_height);
|
| g_service_process->io_thread()->message_loop_proxy()->PostTask(
|
| FROM_HERE,
|
|
|