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

📄 scemfdefs.h

📁 Source code for EMFexplorer 1.0
💻 H
字号:
/*
*	This file is part of the EMFexplorer projet.
*	Copyright (C) 2004 Smith Charles.
*
*	This library is free software; you can redistribute it and/or
*	modify it under the terms of the GNU Lesser General Public
*	License as published by the Free Software Foundation; either
*	version 2.1 of the License, or (at your option) any later version.
*
*   This library 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
*   Lesser General Public License for more details.
*
*   You should have received a copy of the GNU Lesser General Public
*   License along with this library; if not, write to the Free Software
*   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA.
*
*	Extension: for commercial use, apply the Equity Public License, which
*	adds to the normal terms of the GLPL a condition of donation to the author.
*   If you are interested in support for this source code,
*   contact Smith Charles <smith.charles@free.fr> for more information.
*/
#ifndef _SCEMFDEFS_H_
#define _SCEMFDEFS_H_

// Merged from wingdi
#define SCEMF_HEADER                      1
#define SCEMF_POLYBEZIER                  2
#define SCEMF_POLYGON                     3
#define SCEMF_POLYLINE                    4
#define SCEMF_POLYBEZIERTO                5
#define SCEMF_POLYLINETO                  6
#define SCEMF_POLYPOLYLINE                7
#define SCEMF_POLYPOLYGON                 8
#define SCEMF_SETWINDOWEXTEX              9
#define SCEMF_SETWINDOWORGEX              10
#define SCEMF_SETVIEWPORTEXTEX            11
#define SCEMF_SETVIEWPORTORGEX            12
#define SCEMF_SETBRUSHORGEX               13
#define SCEMF_EOF                         14
#define SCEMF_SETPIXELV                   15
#define SCEMF_SETMAPPERFLAGS              16
#define SCEMF_SETMAPMODE                  17
#define SCEMF_SETBKMODE                   18
#define SCEMF_SETPOLYFILLMODE             19
#define SCEMF_SETROP2                     20
#define SCEMF_SETSTRETCHBLTMODE           21
#define SCEMF_SETTEXTALIGN                22
#define SCEMF_SETCOLORADJUSTMENT          23
#define SCEMF_SETTEXTCOLOR                24
#define SCEMF_SETBKCOLOR                  25
#define SCEMF_OFFSETCLIPRGN               26
#define SCEMF_MOVETOEX                    27
#define SCEMF_SETMETARGN                  28
#define SCEMF_EXCLUDECLIPRECT             29
#define SCEMF_INTERSECTCLIPRECT           30
#define SCEMF_SCALEVIEWPORTEXTEX          31
#define SCEMF_SCALEWINDOWEXTEX            32
#define SCEMF_SAVEDC                      33
#define SCEMF_RESTOREDC                   34
#define SCEMF_SETWORLDTRANSFORM           35
#define SCEMF_MODIFYWORLDTRANSFORM        36
#define SCEMF_SELECTOBJECT                37
#define SCEMF_CREATEPEN                   38
#define SCEMF_CREATEBRUSHINDIRECT         39
#define SCEMF_DELETEOBJECT                40
#define SCEMF_ANGLEARC                    41
#define SCEMF_ELLIPSE                     42
#define SCEMF_RECTANGLE                   43
#define SCEMF_ROUNDRECT                   44
#define SCEMF_ARC                         45
#define SCEMF_CHORD                       46
#define SCEMF_PIE                         47
#define SCEMF_SELECTPALETTE               48
#define SCEMF_CREATEPALETTE               49
#define SCEMF_SETPALETTEENTRIES           50
#define SCEMF_RESIZEPALETTE               51
#define SCEMF_REALIZEPALETTE              52
#define SCEMF_EXTFLOODFILL                53
#define SCEMF_LINETO                      54
#define SCEMF_ARCTO                       55
#define SCEMF_POLYDRAW                    56
#define SCEMF_SETARCDIRECTION             57
#define SCEMF_SETMITERLIMIT               58
#define SCEMF_BEGINPATH                   59
#define SCEMF_ENDPATH                     60
#define SCEMF_CLOSEFIGURE                 61
#define SCEMF_FILLPATH                    62
#define SCEMF_STROKEANDFILLPATH           63
#define SCEMF_STROKEPATH                  64
#define SCEMF_FLATTENPATH                 65
#define SCEMF_WIDENPATH                   66
#define SCEMF_SELECTCLIPPATH              67
#define SCEMF_ABORTPATH                   68

#define SCEMF_GDICOMMENT                  70
#define SCEMF_FILLRGN                     71
#define SCEMF_FRAMERGN                    72
#define SCEMF_INVERTRGN                   73
#define SCEMF_PAINTRGN                    74
#define SCEMF_EXTSELECTCLIPRGN            75
#define SCEMF_BITBLT                      76
#define SCEMF_STRETCHBLT                  77
#define SCEMF_MASKBLT                     78
#define SCEMF_PLGBLT                      79
#define SCEMF_SETDIBITSTODEVICE           80
#define SCEMF_STRETCHDIBITS               81
#define SCEMF_EXTCREATEFONTINDIRECTW      82
#define SCEMF_EXTTEXTOUTA                 83
#define SCEMF_EXTTEXTOUTW                 84
#define SCEMF_POLYBEZIER16                85
#define SCEMF_POLYGON16                   86
#define SCEMF_POLYLINE16                  87
#define SCEMF_POLYBEZIERTO16              88
#define SCEMF_POLYLINETO16                89
#define SCEMF_POLYPOLYLINE16              90
#define SCEMF_POLYPOLYGON16               91
#define SCEMF_POLYDRAW16                  92
#define SCEMF_CREATEMONOBRUSH             93
#define SCEMF_CREATEDIBPATTERNBRUSHPT     94
#define SCEMF_EXTCREATEPEN                95
#define SCEMF_POLYTEXTOUTA                96
#define SCEMF_POLYTEXTOUTW                97
//WINVER >= 0x0400
#define SCEMF_SETICMMODE                  98
#define SCEMF_CREATECOLORSPACE            99
#define SCEMF_SETCOLORSPACE              100
#define SCEMF_DELETECOLORSPACE           101
#define SCEMF_GLSRECORD                  102
#define SCEMF_GLSBOUNDEDRECORD           103
#define SCEMF_PIXELFORMAT                104

//WINVER >= 0x0500
#if 1
	// they started out like this (Platform SDK, Windows2000)
#define SCEMF_DRAWESCAPE                 105
#define SCEMF_EXTESCAPE                  106
#define SCEMF_STARTDOC                   107
#define SCEMF_SMALLTEXTOUT               108
#define SCEMF_FORCEUFIMAPPING            109
#define SCEMF_NAMEDESCAPE                110
#define SCEMF_COLORCORRECTPALETTE        111
#define SCEMF_SETICMPROFILEA             112
#define SCEMF_SETICMPROFILEW             113
#define SCEMF_ALPHABLEND                 114
#define SCEMF_ALPHADIBBLEND              115
#define SCEMF_TRANSPARENTBLT             116
#define SCEMF_TRANSPARENTDIB             117
#define SCEMF_GRADIENTFILL               118
#define SCEMF_SETLINKEDUFIS              119
#define SCEMF_SETTEXTJUSTIFICATION       120
#define SCEMF_COLORMATCHTOTARGETW        121
#define SCEMF_CREATECOLORSPACEW          122

#else
	// they have changed their mind (Platform SDK, feb 2003)
#define SCEMF_RESERVED_105               105
#define SCEMF_RESERVED_106               106
#define SCEMF_RESERVED_107               107
#define SCEMF_RESERVED_108               108
#define SCEMF_RESERVED_109               109
#define SCEMF_RESERVED_110               110
#define SCEMF_COLORCORRECTPALETTE        111
#define SCEMF_SETICMPROFILEA             112
#define SCEMF_SETICMPROFILEW             113
#define SCEMF_ALPHABLEND                 114
#define SCEMF_SETLAYOUT                  115
#define SCEMF_TRANSPARENTBLT             116
#define SCEMF_RESERVED_117               117
#define SCEMF_GRADIENTFILL               118
#define SCEMF_RESERVED_119               119
#define SCEMF_RESERVED_120               120
#define SCEMF_COLORMATCHTOTARGETW        121
#define SCEMF_CREATECOLORSPACEW          122

#endif

//WINVER >= 0x???			upgrade codes here
//And modify this line
#define SC_MAXEMF_DISPATCH_CODE			 122

#pragma pack(1)
typedef struct tag_SCEMRSMALLTEXTOUTA
{
    EMR     emr;
	POINTL  ptlReference;
	DWORD	nChars;     
	DWORD	fOptions;     
    DWORD   iGraphicsMode;      // Current graphics mode
    FLOAT   exScale;            // X and Y scales from Page units to .01mm units
    FLOAT   eyScale;            //   if graphics mode is GM_COMPATIBLE (=1).
                                // followed by the string.
	char	Text[1];
} SCEMRSMALLTEXTOUTA, *PSCEMRSMALLTEXTOUTA;

typedef struct tag_SCEMRSMALLTEXTOUTA2
{
    EMR     emr;
	POINTL  ptlReference;
	DWORD	nChars;     
	DWORD	fOptions;     
    DWORD   iGraphicsMode;      // Current graphics mode
    FLOAT   exScale;            // X and Y scales from Page units to .01mm units
    FLOAT   eyScale;            //   if graphics mode is GM_COMPATIBLE.
                                // followed by a bounding box and the string.
	RECTL	rclBoundsSC;
	char	Text[1];
} SCEMRSMALLTEXTOUTA2, *PSCEMRSMALLTEXTOUTA2;

typedef struct tag_SCEMFCOMMENT_WMF
{
	DWORD ident;			// This contains GDICOMMENT_IDENTIFIER. 
	DWORD iComment;			// This contains GDICOMMENT_WINDOWS_METAFILE. 
	DWORD nVersion;			// This contains the version number of the 
							// Windows-format metafile. 
	DWORD nChecksum;		// This is the additive DWORD checksum for 
							// the enhanced metafile.  The checksum 
							// for the enhanced metafile data including 
							// this comment record must be zero. 
							// Otherwise, the enhanced metafile has been 
							//  modified and the Windows-format 
							// metafile is no longer valid. 
	DWORD fFlags;			// This must be zero. 
	DWORD cbWinMetaFile;
} SCEMFCOMMENT_WMF, *PSCEMFCOMMENT_WMF;

typedef struct tag_SCEMFCOMMENT_BEGINGROUP
{
	DWORD   ident;			// This contains GDICOMMENT_IDENTIFIER. 
	DWORD   iComment;		// This contains GDICOMMENT_BEGINGROUP. 
	RECTL   rclOutput;		// This is the bounding rectangle for the 
							// object in logical coordinates. 
	DWORD   nDescription;	// This is the number of characters in the 
							// optional Unicode description string that 
							// follows. This is zero if there is no 
							// description string.
} SCEMFCOMMENT_BEGINGROUP, *PSCEMFCOMMENT_BEGINGROUP;

typedef struct tag_SCEMFCOMMENT_ENDGROUP
{
	DWORD   ident;			// This contains GDICOMMENT_IDENTIFIER. 
	DWORD   iComment;		// This contains GDICOMMENT_ENDGROUP.
} SCEMFCOMMENT_ENDGROUP, *PSCEMFCOMMENT_ENDGROUP;


typedef struct tag_SCEMFCOMMENT_MULTIFORMATS
{
	DWORD   ident;          // This contains GDICOMMENT_IDENTIFIER. 
	DWORD   iComment;       // This contains GDICOMMENT_MULTIFORMATS. 
	RECTL   rclOutput;      // This is the bounding rectangle for the 
							// picture in logical coordinates. 
	DWORD   nFormats;       // This contains the number of formats in 
							// the comment. 
	EMRFORMAT aemrformat[1];// This is an array of EMRFORMAT structures 
							// in the order of preference.  The data 
							// for each format follows the last 
							// EMRFORMAT structure. 
} SCEMFCOMMENT_MULTIFORMATS, *PSCEMFCOMMENT_MULTIFORMATS;

typedef struct tag_SCEMRALPHADIBBLEND
{
    EMR     emr;
    RECTL   rclBounds;          // Inclusive bounds in device units
    LONG    xDest;
    LONG    yDest;
    LONG    cxDest;
    LONG    cyDest;
    DWORD   dwRop;
    LONG    xSrc;
    LONG    ySrc;
    XFORM   xformSrc;           // Source DC transform
    COLORREF crBkColorSrc;      // Source DC BkColor in RGB
    DWORD   iUsageSrc;          // Source bitmap info color table usage
                                // (DIB_RGB_COLORS)
    DWORD   offBmiSrc;          // Offset to the source BITMAPINFO structure
    DWORD   cbBmiSrc;           // Size of the source BITMAPINFO structure
    DWORD   offBitsSrc;         // Offset to the source bitmap bits
    DWORD   cbBitsSrc;          // Size of the source bitmap bits
    LONG    cxSrc;
    LONG    cySrc;
} SCEMRALPHADIBBLEND, *PSCEMRALPHASIBBLEND;

#pragma pack()

#endif //_SCEMFDEFS_H_
//  ------------------------------------------------------------

⌨️ 快捷键说明

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