⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 winstdforms.cpp

📁 虚拟打印机
💻 CPP
字号:
/* * * winstdforms.cpp * * I GOT THIS DATA FROM ANOTHER GNU PROJECT:  * dvispool.cpp: MiKTeX Print Utility * AUTHOR: Christian Schenk <cs@miktex.org> * FOUND AT: http://cvs.ktug.or.kr/viewcvs/miktex-ktug/src/dvispool/dvispool.cpp?rev=HEAD&content-type=text/vnd.viewcvs-markup * Copyright (C) 2002-2003 Christian Schenk <cs@miktex.org>   This file is part of MiKTeX Print Utility.   MiKTeX Print Utility is free software; you can redistribute it   and/or modify it under the terms of the GNU General Public License   as published by the Free Software Foundation; either version 2, or   (at your option) any later version.      MiKTeX Print Utility is distributed in the hope that it will be   useful, but WITHOUT ANY WARRANTY; without even the implied warranty   of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the   GNU General Public License for more details.      You should have received a copy of the GNU General Public License   along with MiKTeX Print Utility; if not, write to the Free Software   Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,   USA.  * */#include "winstdforms.h"#include "..\lib\mathutils.h"#include "..\lib\utils.h"//********************************************************************************************//**  MODULE PRIVATE  TYPEDEFS AND FOREWARD DECLARATIONS  ************************************//********************************************************************************************//********************************************************************************************//**  MODULE PRIVATE  DATA  ******************************************************************//********************************************************************************************//#define mm2pt(mm) static_cast<int>((mm) * (1.0 / 25.4) * 72.0)//#define in2pt(inch) static_cast<int>((inch) * 72.0)//#define MM2PT(a, b) #a "mm," #b "mm", mm2pt(a), mm2pt(b)//#define IN2PT(a, b) #a "in," #b "in", in2pt(a), in2pt(b)#define MM2PT(a, b) L#a L"mm," L#b L"mm", RoundToLong( (a) * 1000.0 ), RoundToLong( (b) * 1000.0 )#define IN2PT(a, b) L#a L"in," L#b L"in", RoundToLong( (a) * MICROMETERS_PER_INCH ), RoundToLong( (b) * MICROMETERS_PER_INCH )static const PAPERSIZEINFO g_aPaperSizes[] = {  DMPAPER_LETTER,	L"Letter",	IN2PT(8.5, 11),  DMPAPER_LETTERSMALL,	L"Letter Small",	IN2PT(8.5, 11),  DMPAPER_TABLOID,	L"Tabloid",	IN2PT(11, 17),  DMPAPER_LEDGER,	L"Ledger",	IN2PT(17, 11),  DMPAPER_LEGAL,	L"Legal",	IN2PT(8.5, 14),  DMPAPER_STATEMENT,	L"Statement",	IN2PT(5.5, 8.5),  DMPAPER_EXECUTIVE,	L"Executive",	IN2PT(7.25, 10.5),  DMPAPER_A3,		L"A3",		MM2PT(297, 420),  DMPAPER_A4,		L"A4",		MM2PT(210, 297),  DMPAPER_A4SMALL,	L"A4 Small",	MM2PT(210, 297),  DMPAPER_A5,		L"A5",		MM2PT(148, 210),  DMPAPER_B4,		L"B4",		MM2PT(250, 354), // <fixme/>  DMPAPER_B5,		L"B5",		MM2PT(182, 257),  DMPAPER_FOLIO,	L"Folio",	IN2PT(8.5, 13),  DMPAPER_QUARTO,	L"Quarto",	MM2PT(215, 275), // <fixme/>  DMPAPER_10X14,	L"10x14",	IN2PT(10, 14),  DMPAPER_11X17,	L"11x17",	IN2PT(11, 17),  DMPAPER_NOTE,		L"Note",		IN2PT(8.5, 11),  DMPAPER_ENV_9,	L"Envelope #9",	IN2PT(3.875, 8.875),  DMPAPER_ENV_10,	L"Envelope #10",	IN2PT(4.125, 9.5),  DMPAPER_ENV_11,	L"Envelope #11",	IN2PT(4.5, 10.375),  DMPAPER_ENV_12,	L"Envelope #12",	IN2PT(4.75, 11),  DMPAPER_ENV_14,	L"Envelope #14",	IN2PT(5, 11.5),  DMPAPER_CSHEET,	L"C",		IN2PT(17, 22),  DMPAPER_DSHEET,	L"D",		IN2PT(22, 34),  DMPAPER_ESHEET,	L"E",		IN2PT(34, 44),  DMPAPER_ENV_DL,	L"Envelope DL",	MM2PT(110, 220),  DMPAPER_ENV_C5,	L"Envelope C5",	MM2PT(162, 229),  DMPAPER_ENV_C3,	L"Envelope C3 ",	MM2PT(324, 458),  DMPAPER_ENV_C4,	L"Envelope C4 ",	MM2PT(229, 324),  DMPAPER_ENV_C6,	L"Envelope C6 ",	MM2PT(114, 162),  DMPAPER_ENV_C65,	L"Envelope C65",	MM2PT(114, 229),  DMPAPER_ENV_B4,	L"Envelope B4 ",	MM2PT(250, 353),  DMPAPER_ENV_B5,	L"Envelope B5 ",	MM2PT(176, 250),  DMPAPER_ENV_B6,	L"Envelope B6 ",	MM2PT(176, 125),  DMPAPER_ENV_ITALY,	L"Italy Envelope",	MM2PT(110, 230),  DMPAPER_ENV_MONARCH,	L"Envelope Monarch",	IN2PT(3.875, 7.5),  DMPAPER_ENV_PERSONAL,	L"6 3/4 Envelope",	IN2PT(3.625, 6.5),  DMPAPER_FANFOLD_US,	L"US Std Fanfold",	IN2PT(14.875, 11),  DMPAPER_FANFOLD_STD_GERMAN,	L"German Std Fanfold",	IN2PT(8.5, 12),  DMPAPER_FANFOLD_LGL_GERMAN,	L"German Legal Fanfold",	IN2PT(8.5, 13),#if(WINVER >= 0x0400)  DMPAPER_ISO_B4,	L"B4 (ISO)",	MM2PT(250, 353),  DMPAPER_JAPANESE_POSTCARD,	L"Japanese Postcard",	MM2PT(100, 148),  DMPAPER_9X11,		L"9x11",		IN2PT(9, 11),  DMPAPER_10X11,	L"10x11",	IN2PT(10, 11),  DMPAPER_15X11,	L"15x11",	IN2PT(15, 11),  DMPAPER_ENV_INVITE,	L"Envelope Invite",	MM2PT(220, 220),  DMPAPER_LETTER_EXTRA,	L"Letter Extra",	IN2PT(9.5, 12),  DMPAPER_LEGAL_EXTRA,	L"Legal Extra",	IN2PT(9.5, 15),  DMPAPER_TABLOID_EXTRA,	L"Tabloid Extra",	IN2PT(11.69, 18),  DMPAPER_A4_EXTRA,	L"A4 Extra",	IN2PT(9.27, 12.69),  DMPAPER_LETTER_TRANSVERSE,	L"Letter Transverse",	IN2PT(8.5, 11),  DMPAPER_A4_TRANSVERSE,	L"A4 Transverse",	MM2PT(210, 297),  DMPAPER_LETTER_EXTRA_TRANSVERSE,	L"Letter Extra Transverse",	IN2PT(9.5, 12),  DMPAPER_A_PLUS,	L"SuperA/SuperA/A4",	MM2PT(227, 356),  DMPAPER_B_PLUS,	L"SuperB/SuperB/A3",	MM2PT(305, 487),  DMPAPER_LETTER_PLUS,	L"Letter Plus",	IN2PT(8.5, 12.69),  DMPAPER_A4_PLUS,	L"A4 Plus",	MM2PT(210, 330),  DMPAPER_A5_TRANSVERSE,	L"A5 Transverse",	MM2PT(148, 210),  DMPAPER_B5_TRANSVERSE,	L"B5 (JIS) Transverse",	MM2PT(182, 257),  DMPAPER_A3_EXTRA,	L"A3 Extra",	MM2PT(322, 445),  DMPAPER_A5_EXTRA,	L"A5 Extra",	MM2PT(174, 235),  DMPAPER_B5_EXTRA,	L"B5 (ISO) Extra",	MM2PT(201, 276),  DMPAPER_A2,	L"A2",	MM2PT(420, 594),  DMPAPER_A3_TRANSVERSE,	L"A3 Transverse",	MM2PT(297, 420),  DMPAPER_A3_EXTRA_TRANSVERSE,	L"A3 Extra Transverse",	MM2PT(322, 445),#endif /* WINVER >= 0x0400 */#if(WINVER >= 0x0500)  DMPAPER_DBL_JAPANESE_POSTCARD,	L"Japanese Double Postcard",	MM2PT(200, 148),  DMPAPER_A6,	L"A6",	MM2PT(105, 148),  //#define DMPAPER_JENV_KAKU2          71  /* Japanese Envelope Kaku #2       */  //#define DMPAPER_JENV_KAKU3          72  /* Japanese Envelope Kaku #3       */  //#define DMPAPER_JENV_CHOU3          73  /* Japanese Envelope Chou #3       */  //#define DMPAPER_JENV_CHOU4          74  /* Japanese Envelope Chou #4       */  DMPAPER_LETTER_ROTATED,	L"Letter Rotated",	IN2PT(11, 8.5),  DMPAPER_A3_ROTATED,	L"A3 Rotated",	MM2PT(420, 297),  DMPAPER_A4_ROTATED,	L"A4 Rotated",	MM2PT(297, 210),  DMPAPER_A5_ROTATED,	L"A5 Rotated",	MM2PT(210, 148),  DMPAPER_B4_JIS_ROTATED,	L"B4 (JIS) Rotated",	MM2PT(364, 257),  DMPAPER_B5_JIS_ROTATED,	L"B5 (JIS) Rotated",	MM2PT(257, 182),  DMPAPER_JAPANESE_POSTCARD_ROTATED,	L"Japanese Postcard Rotated",	MM2PT(148, 100),  DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED,	L"Double Japanese Postcard Rotated",	MM2PT(148, 200),  DMPAPER_A6_ROTATED,	L"A6 Rotated",	MM2PT(148, 105),  //#define DMPAPER_JENV_KAKU2_ROTATED  84  /* Japanese Envelope Kaku #2 Rotated */  //#define DMPAPER_JENV_KAKU3_ROTATED  85  /* Japanese Envelope Kaku #3 Rotated */  //#define DMPAPER_JENV_CHOU3_ROTATED  86  /* Japanese Envelope Chou #3 Rotated */  //#define DMPAPER_JENV_CHOU4_ROTATED  87  /* Japanese Envelope Chou #4 Rotated */  DMPAPER_B6_JIS,	L"B6 (JIS)",	MM2PT(128, 182),  DMPAPER_B6_JIS_ROTATED,	L"B6 (JIS) Rotated",	MM2PT(182, 128),  DMPAPER_12X11,	L"12x11",	IN2PT(12, 11),  //#define DMPAPER_JENV_YOU4           91  /* Japanese Envelope You #4        */  //#define DMPAPER_JENV_YOU4_ROTATED   92  /* Japanese Envelope You #4 Rotated*/  DMPAPER_P16K,	L"PRC 16K",	MM2PT(146, 215),  DMPAPER_P32K,	L"PRC 32K",	MM2PT(97, 151),  DMPAPER_P32KBIG,	L"PRC 32K(Big)",	MM2PT(97, 151),  DMPAPER_PENV_1,	L"PRC Envelope #1",	MM2PT(102, 165),  DMPAPER_PENV_2,	L"PRC Envelope #2",	MM2PT(102, 176),  DMPAPER_PENV_3,	L"PRC Envelope #3",	MM2PT(125, 176),  DMPAPER_PENV_4,	L"PRC Envelope #4",	MM2PT(110, 208),  DMPAPER_PENV_5,	L"PRC Envelope #5",	MM2PT(110, 220),  DMPAPER_PENV_6,	L"PRC Envelope #6",	MM2PT(120, 230),  DMPAPER_PENV_7,	L"PRC Envelope #7",	MM2PT(160, 230),  DMPAPER_PENV_8,	L"PRC Envelope #8",	MM2PT(120, 309),  DMPAPER_PENV_9,	L"PRC Envelope #9",	MM2PT(229, 324),  DMPAPER_PENV_10,	L"PRC Envelope #10",	MM2PT(324, 458),  DMPAPER_P16K_ROTATED,	L"PRC 16K Rotated",	MM2PT(215, 146),  DMPAPER_P32K_ROTATED,	L"PRC 32K Rotated",	MM2PT(151, 97),  DMPAPER_P32KBIG_ROTATED,	L"PRC 32K(Big) Rotated",	MM2PT(151, 97),  DMPAPER_PENV_1_ROTATED,	L"PRC Envelope #1 Rotated",	MM2PT(165, 102),  DMPAPER_PENV_2_ROTATED,	L"PRC Envelope #2 Rotated",	MM2PT(176, 102),  DMPAPER_PENV_3_ROTATED,	L"PRC Envelope #3 Rotated",	MM2PT(176, 125),  DMPAPER_PENV_4_ROTATED,	L"PRC Envelope #4 Rotated",	MM2PT(208, 110),  DMPAPER_PENV_5_ROTATED,	L"PRC Envelope #5 Rotated",	MM2PT(220, 110),  DMPAPER_PENV_6_ROTATED,	L"PRC Envelope #6 Rotated",	MM2PT(230, 120),  DMPAPER_PENV_7_ROTATED,	L"PRC Envelope #7 Rotated",	MM2PT(230, 160),  DMPAPER_PENV_8_ROTATED,	L"PRC Envelope #8 Rotated",	MM2PT(309, 120),  DMPAPER_PENV_9_ROTATED,	L"PRC Envelope #9 Rotated",	MM2PT(324, 229),  DMPAPER_PENV_10_ROTATED,	L"PRC Envelope #10 Rotated",	MM2PT(458, 324),#endif /* WINVER >= 0x0500 */};//********************************************************************************************//**  MODULE PUBLIC ROUTINES  ****************************************************************//********************************************************************************************const PAPERSIZEINFO* LookupPaperSize(IN DWORD dmPaperSize) {	for(unsigned int k = 0; k < ARRCOUNT(g_aPaperSizes); ++k) {		if (g_aPaperSizes[k].dmPaperSize == dmPaperSize) {			return &g_aPaperSizes[k];		}	}	return NULL;}unsigned int GetPaperSizeCount(void) {	unsigned int n = ARRCOUNT(g_aPaperSizes);	return n;}const PAPERSIZEINFO* GetPaperSizeAtIndex(IN unsigned int kForm) {	ASSERT(kForm < ARRCOUNT(g_aPaperSizes));	const PAPERSIZEINFO* ppsiRetValue = &g_aPaperSizes[kForm];	return ppsiRetValue;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -