summaryrefslogtreecommitdiffstats
path: root/chrome/service
diff options
context:
space:
mode:
authorsanjeevr@chromium.org <sanjeevr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-10 17:38:06 +0000
committersanjeevr@chromium.org <sanjeevr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-10 17:38:06 +0000
commitecdc9d4c11a997c23b2e8cbb588732ceea823047 (patch)
tree807f488f60df6249e1d1fa2b5af3e0661b166786 /chrome/service
parent15a3ebf01a2e6ea982c1d952abfa60e14e7e0357 (diff)
downloadchromium_src-ecdc9d4c11a997c23b2e8cbb588732ceea823047.zip
chromium_src-ecdc9d4c11a997c23b2e8cbb588732ceea823047.tar.gz
chromium_src-ecdc9d4c11a997c23b2e8cbb588732ceea823047.tar.bz2
Used GetProcAddress to load exported functions from prntvpt.dll instead of using DELAYLOAD.
BUG=62421 TEST=ui_tests on XP without the XPS Framework installed should run. Review URL: http://codereview.chromium.org/4637004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@65678 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/service')
-rw-r--r--chrome/service/cloud_print/print_system_win.cc48
1 files changed, 25 insertions, 23 deletions
diff --git a/chrome/service/cloud_print/print_system_win.cc b/chrome/service/cloud_print/print_system_win.cc
index ea5ede2..62a5b54 100644
--- a/chrome/service/cloud_print/print_system_win.cc
+++ b/chrome/service/cloud_print/print_system_win.cc
@@ -5,7 +5,6 @@
#include "chrome/service/cloud_print/print_system.h"
#include <objidl.h>
-#include <prntvpt.h>
#include <winspool.h>
#include "base/file_path.h"
@@ -24,8 +23,6 @@
#include "printing/native_metafile.h"
#include "printing/page_range.h"
-#pragma comment(lib, "prntvpt.lib")
-
using base::win::ScopedBstr;
using base::win::ScopedComPtr;
@@ -85,23 +82,25 @@ HRESULT PrintTicketToDevMode(const std::string& printer_name,
return hr;
HPTPROVIDER provider = NULL;
- hr = PTOpenProvider(UTF8ToWide(printer_name).c_str(), 1, &provider);
+ hr = printing::XPSModule::OpenProvider(UTF8ToWide(printer_name),
+ 1,
+ &provider);
if (SUCCEEDED(hr)) {
ULONG size = 0;
DEVMODE* dm = NULL;
- hr = PTConvertPrintTicketToDevMode(provider,
- pt_stream,
- kUserDefaultDevmode,
- kPTDocumentScope,
- &size,
- &dm,
- NULL);
+ hr = printing::XPSModule::ConvertPrintTicketToDevMode(provider,
+ pt_stream,
+ kUserDefaultDevmode,
+ kPTDocumentScope,
+ &size,
+ &dm,
+ NULL);
if (SUCCEEDED(hr)) {
dev_mode->Allocate(size);
memcpy(dev_mode->dm_, dm, size);
- PTReleaseMemory(dm);
+ printing::XPSModule::ReleaseMemory(dm);
}
- PTCloseProvider(provider);
+ printing::XPSModule::CloseProvider(provider);
}
return hr;
}
@@ -377,7 +376,7 @@ class PrintSystemWin : public PrintSystem {
return false;
}
- if (!printing::InitXPSModule()) {
+ if (!printing::XPSModule::Init()) {
// TODO(sanjeevr): Handle legacy proxy case (with no prntvpt.dll)
return false;
}
@@ -543,13 +542,15 @@ bool PrintSystemWin::IsValidPrinter(const std::string& printer_name) {
bool PrintSystemWin::ValidatePrintTicket(
const std::string& printer_name,
const std::string& print_ticket_data) {
- if (!printing::InitXPSModule()) {
+ if (!printing::XPSModule::Init()) {
// TODO(sanjeevr): Handle legacy proxy case (with no prntvpt.dll)
return false;
}
bool ret = false;
HPTPROVIDER provider = NULL;
- PTOpenProvider(UTF8ToWide(printer_name.c_str()).c_str(), 1, &provider);
+ printing::XPSModule::OpenProvider(UTF8ToWide(printer_name.c_str()),
+ 1,
+ &provider);
if (provider) {
ScopedComPtr<IStream> print_ticket_stream;
CreateStreamOnHGlobal(NULL, TRUE, print_ticket_stream.Receive());
@@ -564,13 +565,14 @@ bool PrintSystemWin::ValidatePrintTicket(
ScopedBstr error;
ScopedComPtr<IStream> result_ticket_stream;
CreateStreamOnHGlobal(NULL, TRUE, result_ticket_stream.Receive());
- ret = SUCCEEDED(PTMergeAndValidatePrintTicket(provider,
- print_ticket_stream.get(),
- NULL,
- kPTJobScope,
- result_ticket_stream.get(),
- error.Receive()));
- PTCloseProvider(provider);
+ ret = SUCCEEDED(printing::XPSModule::MergeAndValidatePrintTicket(
+ provider,
+ print_ticket_stream.get(),
+ NULL,
+ kPTJobScope,
+ result_ticket_stream.get(),
+ error.Receive()));
+ printing::XPSModule::CloseProvider(provider);
}
return ret;
}