1 /* -*- Mode: IDL; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
2  *
3  * This Source Code Form is subject to the terms of the Mozilla Public
4  * License, v. 2.0. If a copy of the MPL was not distributed with this
5  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
6 
7 #ifndef nsPrintSettingsWin_h__
8 #define nsPrintSettingsWin_h__
9 
10 #include "nsPrintSettingsImpl.h"
11 #include "nsIPrintSettingsWin.h"
12 #include <windows.h>
13 
14 //*****************************************************************************
15 //***    nsPrintSettingsWin
16 //*****************************************************************************
17 class nsPrintSettingsWin : public nsPrintSettings, public nsIPrintSettingsWin {
18   virtual ~nsPrintSettingsWin();
19 
20  public:
21   NS_DECL_ISUPPORTS_INHERITED
22   NS_DECL_NSIPRINTSETTINGSWIN
23 
24   nsPrintSettingsWin();
25   nsPrintSettingsWin(const nsPrintSettingsWin& aPS);
26 
27   /**
28    * Makes a new copy
29    */
30   virtual nsresult _Clone(nsIPrintSettings** _retval);
31 
32   /**
33    * Assigns values
34    */
35   virtual nsresult _Assign(nsIPrintSettings* aPS);
36 
37   /**
38    * Assignment
39    */
40   nsPrintSettingsWin& operator=(const nsPrintSettingsWin& rhs);
41 
42   NS_IMETHOD GetEffectivePageSize(double* aWidth, double* aHeight) override;
43 
44  protected:
45   void CopyDevMode(DEVMODEW* aInDevMode, DEVMODEW*& aOutDevMode);
46 
47   nsString mDeviceName;
48   nsString mDriverName;
49   LPDEVMODEW mDevMode;
50   double mPrintableWidthInInches = 0l;
51   double mPrintableHeightInInches = 0l;
52 };
53 
54 #endif /* nsPrintSettingsWin_h__ */
55