/******************************Module*Header*******************************\ * Module Name: CPrinter.cpp * * This file contains the code to support the functionality test harness * for GDI+. This includes menu options and calling the appropriate * functions for execution. * * Created: 05-May-2000 - Jeff Vezina [t-jfvez] * * Copyright (c) 2000 Microsoft Corporation * \**************************************************************************/ #include "CPrinter.h" CPrinter::CPrinter(BOOL bRegression) { m_hDC=NULL; strcpy(m_szName,"Printer"); m_bRegression=bRegression; } CPrinter::~CPrinter() { } BOOL CPrinter::Init() { return COutput::Init(); } Graphics *CPrinter::PreDraw(int &nOffsetX,int &nOffsetY) { Graphics *g=NULL; PRINTDLGA pd = { sizeof(PRINTDLG), NULL, // hwndOwner NULL, // hDevMode NULL, // hDevNames NULL, // hDC PD_RETURNDC, 1, 1, 1, 1, 1, GetModuleHandleA(NULL), NULL, NULL, // print hook NULL, // setup hook NULL, // print template name NULL, // setup template name NULL, // hPrintTemplate NULL // hSetupTemplate }; if (!PrintDlgA(&pd)) { MessageBoxA(NULL, "No printer selected.", NULL, MB_OK); return NULL; } DOCINFOA docinfo; docinfo.cbSize = sizeof(DOCINFO); docinfo.lpszDocName = "GDI+ Print Test"; docinfo.lpszOutput = NULL; // put name here to output to file docinfo.lpszDatatype = NULL; // data type 'emf' or 'raw' docinfo.fwType = 0; m_hDC = pd.hDC; INT printJobID = StartDocA(m_hDC, &docinfo); StartPage(m_hDC); SetStretchBltMode(m_hDC, HALFTONE); SetBrushOrgEx(m_hDC, 0, 0, NULL); g = Graphics::FromHDC(m_hDC); return g; } void CPrinter::PostDraw(RECT rTestArea) { EndPage(m_hDC); EndDoc(m_hDC); DeleteDC(m_hDC); MessageBoxA(NULL, "Print Functionality Test Complete.", NULL, MB_OK); }