Headers diff for gdi32.dll between 6.1.7601.23418-Windows_7.0 and 6.3.9600.17415-Windows_8.1 versions



 d2d1.h (6.1.7601.23418-Windows_7.0)   d2d1.h (6.3.9600.17415-Windows_8.1) 
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved. // Copyright (c) Microsoft Corporation. All rights reserved.
// //
// This file is automatically generated. Please do not edit it directly. // This file is automatically generated. Please do not edit it directly.
// //
// File name: D2D1.h // File name: D2D1.h
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
#ifdef _MSC_VER
#pragma once #pragma once
#endif // #ifdef _MSC_VER
#ifndef _D2D1_H_ #ifndef _D2D1_H_
#define _D2D1_H_ #define _D2D1_H_
#ifndef COM_NO_WINDOWS_H #ifndef COM_NO_WINDOWS_H
#include <windows.h> #include <windows.h>
#endif // #ifndef COM_NO_WINDOWS_H #endif // #ifndef COM_NO_WINDOWS_H
#include <unknwn.h> #include <unknwn.h>
#include <dcommon.h> #include <dcommon.h>
#include <D2DErr.h> #include <D2DErr.h>
#include <D2DBaseTypes.h> #include <D2DBaseTypes.h>
#include <dxgiformat.h> #include <dxgiformat.h>
#ifndef D2D_NO_INCLUDE_D3D10 #pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
#include <d3d10_1.h> #include <d3d10_1.h>
#endif // #ifndef D2D_NO_INCLUDE_D3D10 #else
#include <d3dcommon.h>
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#ifndef D2D_USE_C_DEFINITIONS #ifndef D2D_USE_C_DEFINITIONS
// //
// We use the 'C' definitions if C++ is not defined // We use the 'C' definitions if C++ is not defined
// //
#ifndef __cplusplus #ifndef __cplusplus
#define D2D_USE_C_DEFINITIONS #define D2D_USE_C_DEFINITIONS
#endif #endif
#endif // #ifndef D2D_USE_C_DEFINITIONS #endif // #ifndef D2D_USE_C_DEFINITIONS
#ifndef D2D1_DECLARE_INTERFACE #include <winapifamily.h>
#define D2D1_DECLARE_INTERFACE(X) DECLSPEC_UUID(X) DECLSPEC_NOVTABLE
#endif
// //
// Forward declarations here // Forward declarations here
// //
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
typedef interface IDWriteTextFormat IDWriteTextFormat; typedef interface IDWriteTextFormat IDWriteTextFormat;
typedef interface IDWriteTextLayout IDWriteTextLayout; typedef interface IDWriteTextLayout IDWriteTextLayout;
typedef interface IDWriteRenderingParams IDWriteRenderingParams; typedef interface IDWriteRenderingParams IDWriteRenderingParams;
typedef interface IDXGISurface IDXGISurface; typedef interface IDXGISurface IDXGISurface;
typedef interface IWICBitmap IWICBitmap; typedef interface IWICBitmap IWICBitmap;
typedef interface IWICBitmapSource IWICBitmapSource; typedef interface IWICBitmapSource IWICBitmapSource;
typedef struct DWRITE_GLYPH_RUN DWRITE_GLYPH_RUN; typedef struct DWRITE_GLYPH_RUN DWRITE_GLYPH_RUN;
#ifndef D2D_USE_C_DEFINITIONS #ifndef D2D_USE_C_DEFINITIONS
skipping to change at line 81 skipping to change at line 87
typedef interface ID2D1Brush ID2D1Brush; typedef interface ID2D1Brush ID2D1Brush;
#endif #endif
#define D2D1_INVALID_TAG ULONGLONG_MAX #define D2D1_INVALID_TAG ULONGLONG_MAX
#define D2D1_DEFAULT_FLATTENING_TOLERANCE (0.25f) #define D2D1_DEFAULT_FLATTENING_TOLERANCE (0.25f)
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
// Enum: // Enum:
// D2D1_ALPHA_MODE // D2D1_INTERPOLATION_MODE_DEFINITION
// //
// Synopsis: // Synopsis:
// Qualifies how alpha is to be treated in a bitmap or render target contai // This defines the superset of interpolation mode supported by D2D APIs
ning // and built-in effects
// alpha.
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
typedef enum D2D1_ALPHA_MODE enum
{ {
D2D1_INTERPOLATION_MODE_DEFINITION_NEAREST_NEIGHBOR = 0,
D2D1_INTERPOLATION_MODE_DEFINITION_LINEAR = 1,
D2D1_INTERPOLATION_MODE_DEFINITION_CUBIC = 2,
D2D1_INTERPOLATION_MODE_DEFINITION_MULTI_SAMPLE_LINEAR = 3,
D2D1_INTERPOLATION_MODE_DEFINITION_ANISOTROPIC = 4,
D2D1_INTERPOLATION_MODE_DEFINITION_HIGH_QUALITY_CUBIC = 5,
D2D1_INTERPOLATION_MODE_DEFINITION_FANT = 6,
D2D1_INTERPOLATION_MODE_DEFINITION_MIPMAP_LINEAR = 7
// };
// Alpha mode should be determined implicitly. Some target surfaces do n
ot supply
// or imply this information in which case alpha must be specified.
//
D2D1_ALPHA_MODE_UNKNOWN = 0,
//
// Treat the alpha as premultipled.
//
D2D1_ALPHA_MODE_PREMULTIPLIED = 1,
//
// Opacity is in the 'A' component only.
//
D2D1_ALPHA_MODE_STRAIGHT = 2,
//
// Ignore any alpha channel information.
//
D2D1_ALPHA_MODE_IGNORE = 3,
D2D1_ALPHA_MODE_FORCE_DWORD = 0xffffffff
} D2D1_ALPHA_MODE;
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
// Enum: // Enum:
// D2D1_GAMMA // D2D1_GAMMA
// //
// Synopsis: // Synopsis:
// This determines what gamma is used for interpolation/blending. // This determines what gamma is used for interpolation/blending.
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
skipping to change at line 176 skipping to change at line 168
D2D1_OPACITY_MASK_CONTENT_FORCE_DWORD = 0xffffffff D2D1_OPACITY_MASK_CONTENT_FORCE_DWORD = 0xffffffff
} D2D1_OPACITY_MASK_CONTENT; } D2D1_OPACITY_MASK_CONTENT;
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
// Enum: // Enum:
// D2D1_EXTEND_MODE // D2D1_EXTEND_MODE
// //
// Synopsis: // Synopsis:
// Enum which descibes how to sample from a source outside it's base tile. // Enum which describes how to sample from a source outside its base tile.
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
typedef enum D2D1_EXTEND_MODE typedef enum D2D1_EXTEND_MODE
{ {
// //
// Extend the edges of the source out by clamping sample points outside the source // Extend the edges of the source out by clamping sample points outside the source
// to the edges. // to the edges.
// //
D2D1_EXTEND_MODE_CLAMP = 0, D2D1_EXTEND_MODE_CLAMP = 0,
skipping to change at line 209 skipping to change at line 201
D2D1_EXTEND_MODE_FORCE_DWORD = 0xffffffff D2D1_EXTEND_MODE_FORCE_DWORD = 0xffffffff
} D2D1_EXTEND_MODE; } D2D1_EXTEND_MODE;
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
// Enum: // Enum:
// D2D1_ANTIALIAS_MODE // D2D1_ANTIALIAS_MODE
// //
// Synopsis: // Synopsis:
// Enum which descibes the manner in which we render edges of non-text prim itives. // Enum which describes the manner in which we render edges of non-text pri mitives.
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
typedef enum D2D1_ANTIALIAS_MODE typedef enum D2D1_ANTIALIAS_MODE
{ {
// //
// The edges of each primitive are antialiased sequentially. // The edges of each primitive are antialiased sequentially.
// //
D2D1_ANTIALIAS_MODE_PER_PRIMITIVE = 0, D2D1_ANTIALIAS_MODE_PER_PRIMITIVE = 0,
skipping to change at line 273 skipping to change at line 265
// D2D1_BITMAP_INTERPOLATION_MODE // D2D1_BITMAP_INTERPOLATION_MODE
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
typedef enum D2D1_BITMAP_INTERPOLATION_MODE typedef enum D2D1_BITMAP_INTERPOLATION_MODE
{ {
// //
// Nearest Neighbor filtering. Also known as nearest pixel or nearest po int // Nearest Neighbor filtering. Also known as nearest pixel or nearest po int
// sampling. // sampling.
// //
D2D1_BITMAP_INTERPOLATION_MODE_NEAREST_NEIGHBOR = 0, D2D1_BITMAP_INTERPOLATION_MODE_NEAREST_NEIGHBOR = D2D1_INTERPOLATION_MOD E_DEFINITION_NEAREST_NEIGHBOR,
// //
// Linear filtering. // Linear filtering.
// //
D2D1_BITMAP_INTERPOLATION_MODE_LINEAR = 1, D2D1_BITMAP_INTERPOLATION_MODE_LINEAR = D2D1_INTERPOLATION_MODE_DEFINITI ON_LINEAR,
D2D1_BITMAP_INTERPOLATION_MODE_FORCE_DWORD = 0xffffffff D2D1_BITMAP_INTERPOLATION_MODE_FORCE_DWORD = 0xffffffff
} D2D1_BITMAP_INTERPOLATION_MODE; } D2D1_BITMAP_INTERPOLATION_MODE;
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
// Flag: // Flag:
// D2D1_DRAW_TEXT_OPTIONS // D2D1_DRAW_TEXT_OPTIONS
// //
// Synopsis: // Synopsis:
skipping to change at line 305 skipping to change at line 297
// //
// Do not snap the baseline of the text vertically. // Do not snap the baseline of the text vertically.
// //
D2D1_DRAW_TEXT_OPTIONS_NO_SNAP = 0x00000001, D2D1_DRAW_TEXT_OPTIONS_NO_SNAP = 0x00000001,
// //
// Clip the text to the content bounds. // Clip the text to the content bounds.
// //
D2D1_DRAW_TEXT_OPTIONS_CLIP = 0x00000002, D2D1_DRAW_TEXT_OPTIONS_CLIP = 0x00000002,
//
// Render color versions of glyphs if defined by the font.
//
D2D1_DRAW_TEXT_OPTIONS_ENABLE_COLOR_FONT = 0x00000004,
D2D1_DRAW_TEXT_OPTIONS_NONE = 0x00000000, D2D1_DRAW_TEXT_OPTIONS_NONE = 0x00000000,
D2D1_DRAW_TEXT_OPTIONS_FORCE_DWORD = 0xffffffff D2D1_DRAW_TEXT_OPTIONS_FORCE_DWORD = 0xffffffff
} D2D1_DRAW_TEXT_OPTIONS; } D2D1_DRAW_TEXT_OPTIONS;
DEFINE_ENUM_FLAG_OPERATORS(D2D1_DRAW_TEXT_OPTIONS); DEFINE_ENUM_FLAG_OPERATORS(D2D1_DRAW_TEXT_OPTIONS);
//+-----------------------------------------------------------------------------
//
// Struct:
// D2D1_PIXEL_FORMAT
//
//------------------------------------------------------------------------------
typedef struct D2D1_PIXEL_FORMAT
{
DXGI_FORMAT format;
D2D1_ALPHA_MODE alphaMode;
} D2D1_PIXEL_FORMAT;
typedef D2D_POINT_2U D2D1_POINT_2U; typedef D2D_POINT_2U D2D1_POINT_2U;
typedef D2D_POINT_2F D2D1_POINT_2F; typedef D2D_POINT_2F D2D1_POINT_2F;
typedef D2D_RECT_F D2D1_RECT_F; typedef D2D_RECT_F D2D1_RECT_F;
typedef D2D_RECT_U D2D1_RECT_U; typedef D2D_RECT_U D2D1_RECT_U;
typedef D2D_SIZE_F D2D1_SIZE_F; typedef D2D_SIZE_F D2D1_SIZE_F;
typedef D2D_SIZE_U D2D1_SIZE_U; typedef D2D_SIZE_U D2D1_SIZE_U;
typedef D2D_COLOR_F D2D1_COLOR_F; typedef D2D_COLOR_F D2D1_COLOR_F;
typedef D2D_MATRIX_3X2_F D2D1_MATRIX_3X2_F; typedef D2D_MATRIX_3X2_F D2D1_MATRIX_3X2_F;
typedef UINT64 D2D1_TAG; typedef UINT64 D2D1_TAG;
skipping to change at line 441 skipping to change at line 425
D2D1_ARC_SIZE_FORCE_DWORD = 0xffffffff D2D1_ARC_SIZE_FORCE_DWORD = 0xffffffff
} D2D1_ARC_SIZE; } D2D1_ARC_SIZE;
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
// Enum: // Enum:
// D2D1_CAP_STYLE // D2D1_CAP_STYLE
// //
// Synopsis: // Synopsis:
// Enum which descibes the drawing of the ends of a line. // Enum which describes the drawing of the ends of a line.
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
typedef enum D2D1_CAP_STYLE typedef enum D2D1_CAP_STYLE
{ {
// //
// Flat line cap. // Flat line cap.
// //
D2D1_CAP_STYLE_FLAT = 0, D2D1_CAP_STYLE_FLAT = 0,
skipping to change at line 494 skipping to change at line 478
D2D1_DASH_STYLE_FORCE_DWORD = 0xffffffff D2D1_DASH_STYLE_FORCE_DWORD = 0xffffffff
} D2D1_DASH_STYLE; } D2D1_DASH_STYLE;
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
// Enum: // Enum:
// D2D1_LINE_JOIN // D2D1_LINE_JOIN
// //
// Synopsis: // Synopsis:
// Enum which descibes the drawing of the corners on the line. // Enum which describes the drawing of the corners on the line.
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
typedef enum D2D1_LINE_JOIN typedef enum D2D1_LINE_JOIN
{ {
// //
// Miter join. // Miter join.
// //
D2D1_LINE_JOIN_MITER = 0, D2D1_LINE_JOIN_MITER = 0,
skipping to change at line 640 skipping to change at line 624
D2D1_FIGURE_BEGIN_FORCE_DWORD = 0xffffffff D2D1_FIGURE_BEGIN_FORCE_DWORD = 0xffffffff
} D2D1_FIGURE_BEGIN; } D2D1_FIGURE_BEGIN;
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
// Enum: // Enum:
// D2D1_FIGURE_END // D2D1_FIGURE_END
// //
// Synopsis: // Synopsis:
// Indicates whether the figure ir open or closed on its end point. // Indicates whether the figure is open or closed on its end point.
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
typedef enum D2D1_FIGURE_END typedef enum D2D1_FIGURE_END
{ {
D2D1_FIGURE_END_OPEN = 0, D2D1_FIGURE_END_OPEN = 0,
D2D1_FIGURE_END_CLOSED = 1, D2D1_FIGURE_END_CLOSED = 1,
D2D1_FIGURE_END_FORCE_DWORD = 0xffffffff D2D1_FIGURE_END_FORCE_DWORD = 0xffffffff
} D2D1_FIGURE_END; } D2D1_FIGURE_END;
skipping to change at line 863 skipping to change at line 847
// //
// The rectangular clip that will be applied to the layer. The clip is affec ted by // The rectangular clip that will be applied to the layer. The clip is affec ted by
// the world transform. Content outside of the content bounds will not rende r. // the world transform. Content outside of the content bounds will not rende r.
// //
D2D1_RECT_F contentBounds; D2D1_RECT_F contentBounds;
// //
// A general mask that can be optionally applied to the content. Content not inside // A general mask that can be optionally applied to the content. Content not inside
// the fill of the mask will not be rendered. // the fill of the mask will not be rendered.
// //
__field_ecount_opt(1) ID2D1Geometry *geometricMask; _Field_size_opt_(1) ID2D1Geometry *geometricMask;
// //
// Specifies whether the mask should be aliased or antialiased. // Specifies whether the mask should be aliased or antialiased.
// //
D2D1_ANTIALIAS_MODE maskAntialiasMode; D2D1_ANTIALIAS_MODE maskAntialiasMode;
// //
// An additional transform that may be applied to the mask in addition to th e // An additional transform that may be applied to the mask in addition to th e
// current world transform. // current world transform.
// //
skipping to change at line 887 skipping to change at line 871
// The opacity with which all of the content in the layer will be blended ba ck to // The opacity with which all of the content in the layer will be blended ba ck to
// the target when the layer is popped. // the target when the layer is popped.
// //
FLOAT opacity; FLOAT opacity;
// //
// An additional brush that can be applied to the layer. Only the opacity ch annel // An additional brush that can be applied to the layer. Only the opacity ch annel
// is sampled from this brush and multiplied both with the layer content and the // is sampled from this brush and multiplied both with the layer content and the
// over-all layer opacity. // over-all layer opacity.
// //
__field_ecount_opt(1) ID2D1Brush *opacityBrush; _Field_size_opt_(1) ID2D1Brush *opacityBrush;
// //
// Specifies if ClearType will be rendered into the layer. // Specifies if ClearType will be rendered into the layer.
// //
D2D1_LAYER_OPTIONS layerOptions; D2D1_LAYER_OPTIONS layerOptions;
} D2D1_LAYER_PARAMETERS; } D2D1_LAYER_PARAMETERS;
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
skipping to change at line 956 skipping to change at line 940
{ {
// //
// The caller does not require a particular underlying D3D device level. // The caller does not require a particular underlying D3D device level.
// //
D2D1_FEATURE_LEVEL_DEFAULT = 0, D2D1_FEATURE_LEVEL_DEFAULT = 0,
// //
// The D3D device level is DX9 compatible. // The D3D device level is DX9 compatible.
// //
D2D1_FEATURE_LEVEL_9 = D3D10_FEATURE_LEVEL_9_1, D2D1_FEATURE_LEVEL_9 = D3D_FEATURE_LEVEL_9_1,
// //
// The D3D device level is DX10 compatible. // The D3D device level is DX10 compatible.
// //
D2D1_FEATURE_LEVEL_10 = D3D10_FEATURE_LEVEL_10_0, D2D1_FEATURE_LEVEL_10 = D3D_FEATURE_LEVEL_10_0,
D2D1_FEATURE_LEVEL_FORCE_DWORD = 0xffffffff D2D1_FEATURE_LEVEL_FORCE_DWORD = 0xffffffff
} D2D1_FEATURE_LEVEL; } D2D1_FEATURE_LEVEL;
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
// Flag: // Flag:
// D2D1_RENDER_TARGET_USAGE // D2D1_RENDER_TARGET_USAGE
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
skipping to change at line 983 skipping to change at line 967
{ {
D2D1_RENDER_TARGET_USAGE_NONE = 0x00000000, D2D1_RENDER_TARGET_USAGE_NONE = 0x00000000,
// //
// Rendering will occur locally, if a terminal-services session is estab lished, the // Rendering will occur locally, if a terminal-services session is estab lished, the
// bitmap updates will be sent to the terminal services client. // bitmap updates will be sent to the terminal services client.
// //
D2D1_RENDER_TARGET_USAGE_FORCE_BITMAP_REMOTING = 0x00000001, D2D1_RENDER_TARGET_USAGE_FORCE_BITMAP_REMOTING = 0x00000001,
// //
// The render target will allow a call to GetDC on the IGdiInteropRender Target // The render target will allow a call to GetDC on the ID2D1GdiInteropRe nderTarget
// interface. Rendering will also occur locally. // interface. Rendering will also occur locally.
// //
D2D1_RENDER_TARGET_USAGE_GDI_COMPATIBLE = 0x00000002, D2D1_RENDER_TARGET_USAGE_GDI_COMPATIBLE = 0x00000002,
D2D1_RENDER_TARGET_USAGE_FORCE_DWORD = 0xffffffff D2D1_RENDER_TARGET_USAGE_FORCE_DWORD = 0xffffffff
} D2D1_RENDER_TARGET_USAGE; } D2D1_RENDER_TARGET_USAGE;
DEFINE_ENUM_FLAG_OPERATORS(D2D1_RENDER_TARGET_USAGE); DEFINE_ENUM_FLAG_OPERATORS(D2D1_RENDER_TARGET_USAGE);
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
skipping to change at line 1064 skipping to change at line 1048
// Flag: // Flag:
// D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS // D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
typedef enum D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS typedef enum D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS
{ {
D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS_NONE = 0x00000000, D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS_NONE = 0x00000000,
// //
// The compatible render target will allow a call to GetDC on the // The compatible render target will allow a call to GetDC on the
// IGdiInteropRenderTarget interface. This can be specified even if the parent // ID2D1GdiInteropRenderTarget interface. This can be specified even if the parent
// render target is not GDI compatible. // render target is not GDI compatible.
// //
D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS_GDI_COMPATIBLE = 0x00000001, D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS_GDI_COMPATIBLE = 0x00000001,
D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS_FORCE_DWORD = 0xffffffff D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS_FORCE_DWORD = 0xffffffff
} D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS; } D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS;
DEFINE_ENUM_FLAG_OPERATORS(D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS); DEFINE_ENUM_FLAG_OPERATORS(D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS);
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
skipping to change at line 1122 skipping to change at line 1106
D2D1_DC_INITIALIZE_MODE_FORCE_DWORD = 0xffffffff D2D1_DC_INITIALIZE_MODE_FORCE_DWORD = 0xffffffff
} D2D1_DC_INITIALIZE_MODE; } D2D1_DC_INITIALIZE_MODE;
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
// Enum: // Enum:
// D2D1_DEBUG_LEVEL // D2D1_DEBUG_LEVEL
// //
// Synopsis: // Synopsis:
// Indicates the debug level to be outputed by the debug layer. // Indicates the debug level to be output by the debug layer.
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
typedef enum D2D1_DEBUG_LEVEL typedef enum D2D1_DEBUG_LEVEL
{ {
D2D1_DEBUG_LEVEL_NONE = 0, D2D1_DEBUG_LEVEL_NONE = 0,
D2D1_DEBUG_LEVEL_ERROR = 1, D2D1_DEBUG_LEVEL_ERROR = 1,
D2D1_DEBUG_LEVEL_WARNING = 2, D2D1_DEBUG_LEVEL_WARNING = 2,
D2D1_DEBUG_LEVEL_INFORMATION = 3, D2D1_DEBUG_LEVEL_INFORMATION = 3,
D2D1_DEBUG_LEVEL_FORCE_DWORD = 0xffffffff D2D1_DEBUG_LEVEL_FORCE_DWORD = 0xffffffff
skipping to change at line 1184 skipping to change at line 1168
{ {
// //
// Requests a certain level of debugging information from the debug layer. T his // Requests a certain level of debugging information from the debug layer. T his
// parameter is ignored if the debug layer DLL is not present. // parameter is ignored if the debug layer DLL is not present.
// //
D2D1_DEBUG_LEVEL debugLevel; D2D1_DEBUG_LEVEL debugLevel;
} D2D1_FACTORY_OPTIONS; } D2D1_FACTORY_OPTIONS;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
#ifndef D2D_USE_C_DEFINITIONS #ifndef D2D_USE_C_DEFINITIONS
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
// Interface: // Interface:
// ID2D1Resource // ID2D1Resource
// //
// Synopsis: // Synopsis:
// The root interface for all resources in D2D. // The root interface for all resources in D2D.
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
interface D2D1_DECLARE_INTERFACE("2cd90691-12e2-11dc-9fed-001143a055f9") ID2D1Re source : public IUnknown interface DX_DECLARE_INTERFACE("2cd90691-12e2-11dc-9fed-001143a055f9") ID2D1Reso urce : public IUnknown
{ {
// //
// Retrieve the factory associated with this resource. // Retrieve the factory associated with this resource.
// //
STDMETHOD_(void, GetFactory)( STDMETHOD_(void, GetFactory)(
__deref_out ID2D1Factory **factory _Outptr_ ID2D1Factory **factory
) CONST PURE; ) CONST PURE;
}; // interface ID2D1Resource }; // interface ID2D1Resource
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
// Interface: // Interface:
// ID2D1Image
//
//------------------------------------------------------------------------------
interface DX_DECLARE_INTERFACE("65019f75-8da2-497c-b32c-dfa34e48ede6") ID2D1Imag
e : public ID2D1Resource
{
}; // interface ID2D1Image
//+-----------------------------------------------------------------------------
//
// Interface:
// ID2D1Bitmap // ID2D1Bitmap
// //
// Synopsis: // Synopsis:
// Root bitmap resource, linearly scaled on a draw call. // Root bitmap resource, linearly scaled on a draw call.
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
interface D2D1_DECLARE_INTERFACE("a2296057-ea42-4099-983b-539fb6505426") ID2D1Bi tmap : public ID2D1Resource interface DX_DECLARE_INTERFACE("a2296057-ea42-4099-983b-539fb6505426") ID2D1Bitm ap : public ID2D1Image
{ {
// //
// Returns the size of the bitmap in resolution independent units. // Returns the size of the bitmap in resolution independent units.
// //
STDMETHOD_(D2D1_SIZE_F, GetSize)( STDMETHOD_(D2D1_SIZE_F, GetSize)(
) CONST PURE; ) CONST PURE;
// //
// Returns the size of the bitmap in resolution dependent units, (pixels). // Returns the size of the bitmap in resolution dependent units, (pixels).
skipping to change at line 1240 skipping to change at line 1240
// //
// Retrieve the format of the bitmap. // Retrieve the format of the bitmap.
// //
STDMETHOD_(D2D1_PIXEL_FORMAT, GetPixelFormat)( STDMETHOD_(D2D1_PIXEL_FORMAT, GetPixelFormat)(
) CONST PURE; ) CONST PURE;
// //
// Return the DPI of the bitmap. // Return the DPI of the bitmap.
// //
STDMETHOD_(void, GetDpi)( STDMETHOD_(void, GetDpi)(
__out FLOAT *dpiX, _Out_ FLOAT *dpiX,
__out FLOAT *dpiY _Out_ FLOAT *dpiY
) CONST PURE; ) CONST PURE;
STDMETHOD(CopyFromBitmap)( STDMETHOD(CopyFromBitmap)(
__in_opt CONST D2D1_POINT_2U *destPoint, _In_opt_ CONST D2D1_POINT_2U *destPoint,
__in ID2D1Bitmap *bitmap, _In_ ID2D1Bitmap *bitmap,
__in_opt CONST D2D1_RECT_U *srcRect _In_opt_ CONST D2D1_RECT_U *srcRect
) PURE; ) PURE;
STDMETHOD(CopyFromRenderTarget)( STDMETHOD(CopyFromRenderTarget)(
__in_opt CONST D2D1_POINT_2U *destPoint, _In_opt_ CONST D2D1_POINT_2U *destPoint,
__in ID2D1RenderTarget *renderTarget, _In_ ID2D1RenderTarget *renderTarget,
__in_opt CONST D2D1_RECT_U *srcRect _In_opt_ CONST D2D1_RECT_U *srcRect
) PURE; ) PURE;
STDMETHOD(CopyFromMemory)( STDMETHOD(CopyFromMemory)(
__in_opt CONST D2D1_RECT_U *dstRect, _In_opt_ CONST D2D1_RECT_U *dstRect,
__in CONST void *srcData, _In_ CONST void *srcData,
UINT32 pitch UINT32 pitch
) PURE; ) PURE;
}; // interface ID2D1Bitmap }; // interface ID2D1Bitmap
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
// Interface: // Interface:
// ID2D1GradientStopCollection // ID2D1GradientStopCollection
// //
// Synopsis: // Synopsis:
// Represents an collection of gradient stops that can then be the source r esource // Represents an collection of gradient stops that can then be the source r esource
// for either a linear or radial gradient brush. // for either a linear or radial gradient brush.
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
interface D2D1_DECLARE_INTERFACE("2cd906a7-12e2-11dc-9fed-001143a055f9") ID2D1Gr adientStopCollection : public ID2D1Resource interface DX_DECLARE_INTERFACE("2cd906a7-12e2-11dc-9fed-001143a055f9") ID2D1Grad ientStopCollection : public ID2D1Resource
{ {
// //
// Returns the number of stops in the gradient. // Returns the number of stops in the gradient.
// //
STDMETHOD_(UINT32, GetGradientStopCount)( STDMETHOD_(UINT32, GetGradientStopCount)(
) CONST PURE; ) CONST PURE;
// //
// Copies the gradient stops from the collection into the caller's interface // Copies the gradient stops from the collection into the caller's interface
. . The
// returned colors have straight alpha.
// //
STDMETHOD_(void, GetGradientStops)( STDMETHOD_(void, GetGradientStops)(
__out_ecount(gradientStopsCount) D2D1_GRADIENT_STOP *gradientStops, _Out_writes_to_(gradientStopsCount, _Inexpressible_("Retrieved through G
UINT gradientStopsCount etGradientStopCount()") ) D2D1_GRADIENT_STOP *gradientStops,
UINT32 gradientStopsCount
) CONST PURE; ) CONST PURE;
// //
// Returns whether the interpolation occurs with 1.0 or 2.2 gamma. // Returns whether the interpolation occurs with 1.0 or 2.2 gamma.
// //
STDMETHOD_(D2D1_GAMMA, GetColorInterpolationGamma)( STDMETHOD_(D2D1_GAMMA, GetColorInterpolationGamma)(
) CONST PURE; ) CONST PURE;
STDMETHOD_(D2D1_EXTEND_MODE, GetExtendMode)( STDMETHOD_(D2D1_EXTEND_MODE, GetExtendMode)(
) CONST PURE; ) CONST PURE;
skipping to change at line 1309 skipping to change at line 1310
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
// Interface: // Interface:
// ID2D1Brush // ID2D1Brush
// //
// Synopsis: // Synopsis:
// The root brush interface. All brushes can be used to fill or pen a geome try. // The root brush interface. All brushes can be used to fill or pen a geome try.
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
interface D2D1_DECLARE_INTERFACE("2cd906a8-12e2-11dc-9fed-001143a055f9") ID2D1Br ush : public ID2D1Resource interface DX_DECLARE_INTERFACE("2cd906a8-12e2-11dc-9fed-001143a055f9") ID2D1Brus h : public ID2D1Resource
{ {
// //
// Sets the opacity for when the brush is drawn over the entire fill of the brush. // Sets the opacity for when the brush is drawn over the entire fill of the brush.
// //
STDMETHOD_(void, SetOpacity)( STDMETHOD_(void, SetOpacity)(
FLOAT opacity FLOAT opacity
) PURE; ) PURE;
// //
// Sets the transform that applies to everything drawn by the brush. // Sets the transform that applies to everything drawn by the brush.
// //
STDMETHOD_(void, SetTransform)( STDMETHOD_(void, SetTransform)(
__in CONST D2D1_MATRIX_3X2_F *transform _In_ CONST D2D1_MATRIX_3X2_F *transform
) PURE; ) PURE;
STDMETHOD_(FLOAT, GetOpacity)( STDMETHOD_(FLOAT, GetOpacity)(
) CONST PURE; ) CONST PURE;
STDMETHOD_(void, GetTransform)( STDMETHOD_(void, GetTransform)(
__out D2D1_MATRIX_3X2_F *transform _Out_ D2D1_MATRIX_3X2_F *transform
) CONST PURE; ) CONST PURE;
COM_DECLSPEC_NOTHROW
void void
SetTransform( SetTransform(
CONST D2D1_MATRIX_3X2_F &transform CONST D2D1_MATRIX_3X2_F &transform
) )
{ {
SetTransform(&transform); SetTransform(&transform);
} }
}; // interface ID2D1Brush }; // interface ID2D1Brush
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
// Interface: // Interface:
// ID2D1BitmapBrush // ID2D1BitmapBrush
// //
// Synopsis: // Synopsis:
// A bitmap brush allows a bitmap to be used to fill a geometry. // A bitmap brush allows a bitmap to be used to fill a geometry.
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
interface D2D1_DECLARE_INTERFACE("2cd906aa-12e2-11dc-9fed-001143a055f9") ID2D1Bi tmapBrush : public ID2D1Brush interface DX_DECLARE_INTERFACE("2cd906aa-12e2-11dc-9fed-001143a055f9") ID2D1Bitm apBrush : public ID2D1Brush
{ {
// //
// Sets how the bitmap is to be treated outside of its natural extent on the X // Sets how the bitmap is to be treated outside of its natural extent on the X
// axis. // axis.
// //
STDMETHOD_(void, SetExtendModeX)( STDMETHOD_(void, SetExtendModeX)(
D2D1_EXTEND_MODE extendModeX D2D1_EXTEND_MODE extendModeX
) PURE; ) PURE;
skipping to change at line 1381 skipping to change at line 1383
// Sets the interpolation mode used when this brush is used. // Sets the interpolation mode used when this brush is used.
// //
STDMETHOD_(void, SetInterpolationMode)( STDMETHOD_(void, SetInterpolationMode)(
D2D1_BITMAP_INTERPOLATION_MODE interpolationMode D2D1_BITMAP_INTERPOLATION_MODE interpolationMode
) PURE; ) PURE;
// //
// Sets the bitmap associated as the source of this brush. // Sets the bitmap associated as the source of this brush.
// //
STDMETHOD_(void, SetBitmap)( STDMETHOD_(void, SetBitmap)(
__in ID2D1Bitmap *bitmap _In_opt_ ID2D1Bitmap *bitmap
) PURE; ) PURE;
STDMETHOD_(D2D1_EXTEND_MODE, GetExtendModeX)( STDMETHOD_(D2D1_EXTEND_MODE, GetExtendModeX)(
) CONST PURE; ) CONST PURE;
STDMETHOD_(D2D1_EXTEND_MODE, GetExtendModeY)( STDMETHOD_(D2D1_EXTEND_MODE, GetExtendModeY)(
) CONST PURE; ) CONST PURE;
STDMETHOD_(D2D1_BITMAP_INTERPOLATION_MODE, GetInterpolationMode)( STDMETHOD_(D2D1_BITMAP_INTERPOLATION_MODE, GetInterpolationMode)(
) CONST PURE; ) CONST PURE;
STDMETHOD_(void, GetBitmap)( STDMETHOD_(void, GetBitmap)(
__deref_out ID2D1Bitmap **bitmap _Outptr_ ID2D1Bitmap **bitmap
) CONST PURE; ) CONST PURE;
}; // interface ID2D1BitmapBrush }; // interface ID2D1BitmapBrush
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
// Interface: // Interface:
// ID2D1SolidColorBrush // ID2D1SolidColorBrush
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
interface D2D1_DECLARE_INTERFACE("2cd906a9-12e2-11dc-9fed-001143a055f9") ID2D1So lidColorBrush : public ID2D1Brush interface DX_DECLARE_INTERFACE("2cd906a9-12e2-11dc-9fed-001143a055f9") ID2D1Soli dColorBrush : public ID2D1Brush
{ {
STDMETHOD_(void, SetColor)( STDMETHOD_(void, SetColor)(
__in CONST D2D1_COLOR_F *color _In_ CONST D2D1_COLOR_F *color
) PURE; ) PURE;
STDMETHOD_(D2D1_COLOR_F, GetColor)( STDMETHOD_(D2D1_COLOR_F, GetColor)(
) CONST PURE; ) CONST PURE;
COM_DECLSPEC_NOTHROW
void void
SetColor( SetColor(
CONST D2D1_COLOR_F &color CONST D2D1_COLOR_F &color
) )
{ {
SetColor(&color); SetColor(&color);
} }
}; // interface ID2D1SolidColorBrush }; // interface ID2D1SolidColorBrush
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
// Interface: // Interface:
// ID2D1LinearGradientBrush // ID2D1LinearGradientBrush
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
interface D2D1_DECLARE_INTERFACE("2cd906ab-12e2-11dc-9fed-001143a055f9") ID2D1Li nearGradientBrush : public ID2D1Brush interface DX_DECLARE_INTERFACE("2cd906ab-12e2-11dc-9fed-001143a055f9") ID2D1Line arGradientBrush : public ID2D1Brush
{ {
STDMETHOD_(void, SetStartPoint)( STDMETHOD_(void, SetStartPoint)(
D2D1_POINT_2F startPoint D2D1_POINT_2F startPoint
) PURE; ) PURE;
// //
// Sets the end point of the gradient in local coordinate space. This is not // Sets the end point of the gradient in local coordinate space. This is not
// influenced by the geometry being filled. // influenced by the geometry being filled.
// //
skipping to change at line 1451 skipping to change at line 1454
D2D1_POINT_2F endPoint D2D1_POINT_2F endPoint
) PURE; ) PURE;
STDMETHOD_(D2D1_POINT_2F, GetStartPoint)( STDMETHOD_(D2D1_POINT_2F, GetStartPoint)(
) CONST PURE; ) CONST PURE;
STDMETHOD_(D2D1_POINT_2F, GetEndPoint)( STDMETHOD_(D2D1_POINT_2F, GetEndPoint)(
) CONST PURE; ) CONST PURE;
STDMETHOD_(void, GetGradientStopCollection)( STDMETHOD_(void, GetGradientStopCollection)(
__deref_out ID2D1GradientStopCollection **gradientStopCollection _Outptr_ ID2D1GradientStopCollection **gradientStopCollection
) CONST PURE; ) CONST PURE;
}; // interface ID2D1LinearGradientBrush }; // interface ID2D1LinearGradientBrush
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
// Interface: // Interface:
// ID2D1RadialGradientBrush // ID2D1RadialGradientBrush
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
interface D2D1_DECLARE_INTERFACE("2cd906ac-12e2-11dc-9fed-001143a055f9") ID2D1Ra dialGradientBrush : public ID2D1Brush interface DX_DECLARE_INTERFACE("2cd906ac-12e2-11dc-9fed-001143a055f9") ID2D1Radi alGradientBrush : public ID2D1Brush
{ {
// //
// Sets the center of the radial gradient. This will be in local coordinates and // Sets the center of the radial gradient. This will be in local coordinates and
// will not depend on the geometry being filled. // will not depend on the geometry being filled.
// //
STDMETHOD_(void, SetCenter)( STDMETHOD_(void, SetCenter)(
D2D1_POINT_2F center D2D1_POINT_2F center
) PURE; ) PURE;
skipping to change at line 1500 skipping to change at line 1503
STDMETHOD_(D2D1_POINT_2F, GetGradientOriginOffset)( STDMETHOD_(D2D1_POINT_2F, GetGradientOriginOffset)(
) CONST PURE; ) CONST PURE;
STDMETHOD_(FLOAT, GetRadiusX)( STDMETHOD_(FLOAT, GetRadiusX)(
) CONST PURE; ) CONST PURE;
STDMETHOD_(FLOAT, GetRadiusY)( STDMETHOD_(FLOAT, GetRadiusY)(
) CONST PURE; ) CONST PURE;
STDMETHOD_(void, GetGradientStopCollection)( STDMETHOD_(void, GetGradientStopCollection)(
__deref_out ID2D1GradientStopCollection **gradientStopCollection _Outptr_ ID2D1GradientStopCollection **gradientStopCollection
) CONST PURE; ) CONST PURE;
}; // interface ID2D1RadialGradientBrush }; // interface ID2D1RadialGradientBrush
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
// Interface: // Interface:
// ID2D1StrokeStyle // ID2D1StrokeStyle
// //
// Synopsis: // Synopsis:
// Resource interface that holds pen style properties. // Resource interface that holds pen style properties.
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
interface D2D1_DECLARE_INTERFACE("2cd9069d-12e2-11dc-9fed-001143a055f9") ID2D1St rokeStyle : public ID2D1Resource interface DX_DECLARE_INTERFACE("2cd9069d-12e2-11dc-9fed-001143a055f9") ID2D1Stro keStyle : public ID2D1Resource
{ {
STDMETHOD_(D2D1_CAP_STYLE, GetStartCap)( STDMETHOD_(D2D1_CAP_STYLE, GetStartCap)(
) CONST PURE; ) CONST PURE;
STDMETHOD_(D2D1_CAP_STYLE, GetEndCap)( STDMETHOD_(D2D1_CAP_STYLE, GetEndCap)(
) CONST PURE; ) CONST PURE;
STDMETHOD_(D2D1_CAP_STYLE, GetDashCap)( STDMETHOD_(D2D1_CAP_STYLE, GetDashCap)(
) CONST PURE; ) CONST PURE;
skipping to change at line 1545 skipping to change at line 1548
) CONST PURE; ) CONST PURE;
STDMETHOD_(UINT32, GetDashesCount)( STDMETHOD_(UINT32, GetDashesCount)(
) CONST PURE; ) CONST PURE;
// //
// Returns the dashes from the object into a user allocated array. The user must // Returns the dashes from the object into a user allocated array. The user must
// call GetDashesCount to retrieve the required size. // call GetDashesCount to retrieve the required size.
// //
STDMETHOD_(void, GetDashes)( STDMETHOD_(void, GetDashes)(
__out_ecount(dashesCount) FLOAT *dashes, _Out_writes_(dashesCount) FLOAT *dashes,
UINT dashesCount UINT32 dashesCount
) CONST PURE; ) CONST PURE;
}; // interface ID2D1StrokeStyle }; // interface ID2D1StrokeStyle
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
// Interface: // Interface:
// ID2D1Geometry // ID2D1Geometry
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
interface D2D1_DECLARE_INTERFACE("2cd906a1-12e2-11dc-9fed-001143a055f9") ID2D1Ge ometry : public ID2D1Resource interface DX_DECLARE_INTERFACE("2cd906a1-12e2-11dc-9fed-001143a055f9") ID2D1Geom etry : public ID2D1Resource
{ {
// //
// Retrieve the bounds of the geometry, with an optional applied transform. // Retrieve the bounds of the geometry, with an optional applied transform.
// //
STDMETHOD(GetBounds)( STDMETHOD(GetBounds)(
__in_opt CONST D2D1_MATRIX_3X2_F *worldTransform, _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
__out D2D1_RECT_F *bounds _Out_ D2D1_RECT_F *bounds
) CONST PURE; ) CONST PURE;
// //
// Get the bounds of the corresponding geometry after it has been widened or have // Get the bounds of the corresponding geometry after it has been widened or have
// an optional pen style applied. // an optional pen style applied.
// //
STDMETHOD(GetWidenedBounds)( STDMETHOD(GetWidenedBounds)(
FLOAT strokeWidth, FLOAT strokeWidth,
__in_opt ID2D1StrokeStyle *strokeStyle, _In_opt_ ID2D1StrokeStyle *strokeStyle,
__in_opt CONST D2D1_MATRIX_3X2_F *worldTransform, _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
FLOAT flatteningTolerance, FLOAT flatteningTolerance,
__out D2D1_RECT_F *bounds _Out_ D2D1_RECT_F *bounds
) CONST PURE; ) CONST PURE;
// //
// Checks to see whether the corresponding penned and widened geometry conta ins the // Checks to see whether the corresponding penned and widened geometry conta ins the
// given point. // given point.
// //
STDMETHOD(StrokeContainsPoint)( STDMETHOD(StrokeContainsPoint)(
D2D1_POINT_2F point, D2D1_POINT_2F point,
FLOAT strokeWidth, FLOAT strokeWidth,
__in_opt ID2D1StrokeStyle *strokeStyle, _In_opt_ ID2D1StrokeStyle *strokeStyle,
__in_opt CONST D2D1_MATRIX_3X2_F *worldTransform, _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
FLOAT flatteningTolerance, FLOAT flatteningTolerance,
__out BOOL *contains _Out_ BOOL *contains
) CONST PURE; ) CONST PURE;
// //
// Test whether the given fill of this geometry would contain this point. // Test whether the given fill of this geometry would contain this point.
// //
STDMETHOD(FillContainsPoint)( STDMETHOD(FillContainsPoint)(
D2D1_POINT_2F point, D2D1_POINT_2F point,
__in_opt CONST D2D1_MATRIX_3X2_F *worldTransform, _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
FLOAT flatteningTolerance, FLOAT flatteningTolerance,
__out BOOL *contains _Out_ BOOL *contains
) CONST PURE; ) CONST PURE;
// //
// Compare how one geometry intersects or contains another geometry. // Compare how one geometry intersects or contains another geometry.
// //
STDMETHOD(CompareWithGeometry)( STDMETHOD(CompareWithGeometry)(
__in ID2D1Geometry *inputGeometry, _In_ ID2D1Geometry *inputGeometry,
__in_opt CONST D2D1_MATRIX_3X2_F *inputGeometryTransform, _In_opt_ CONST D2D1_MATRIX_3X2_F *inputGeometryTransform,
FLOAT flatteningTolerance, FLOAT flatteningTolerance,
__out D2D1_GEOMETRY_RELATION *relation _Out_ D2D1_GEOMETRY_RELATION *relation
) CONST PURE; ) CONST PURE;
// //
// Converts a geometry to a simplified geometry that has arcs and quadratic beziers // Converts a geometry to a simplified geometry that has arcs and quadratic beziers
// removed. // removed.
// //
STDMETHOD(Simplify)( STDMETHOD(Simplify)(
D2D1_GEOMETRY_SIMPLIFICATION_OPTION simplificationOption, D2D1_GEOMETRY_SIMPLIFICATION_OPTION simplificationOption,
__in_opt CONST D2D1_MATRIX_3X2_F *worldTransform, _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
FLOAT flatteningTolerance, FLOAT flatteningTolerance,
__in ID2D1SimplifiedGeometrySink *geometrySink _In_ ID2D1SimplifiedGeometrySink *geometrySink
) CONST PURE; ) CONST PURE;
// //
// Tessellates a geometry into triangles. // Tessellates a geometry into triangles.
// //
STDMETHOD(Tessellate)( STDMETHOD(Tessellate)(
__in_opt CONST D2D1_MATRIX_3X2_F *worldTransform, _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
FLOAT flatteningTolerance, FLOAT flatteningTolerance,
__in ID2D1TessellationSink *tessellationSink _In_ ID2D1TessellationSink *tessellationSink
) CONST PURE; ) CONST PURE;
// //
// Performs a combine operation between the two geometries to produce a resu lting // Performs a combine operation between the two geometries to produce a resu lting
// geometry. // geometry.
// //
STDMETHOD(CombineWithGeometry)( STDMETHOD(CombineWithGeometry)(
__in ID2D1Geometry *inputGeometry, _In_ ID2D1Geometry *inputGeometry,
D2D1_COMBINE_MODE combineMode, D2D1_COMBINE_MODE combineMode,
__in_opt CONST D2D1_MATRIX_3X2_F *inputGeometryTransform, _In_opt_ CONST D2D1_MATRIX_3X2_F *inputGeometryTransform,
FLOAT flatteningTolerance, FLOAT flatteningTolerance,
__in ID2D1SimplifiedGeometrySink *geometrySink _In_ ID2D1SimplifiedGeometrySink *geometrySink
) CONST PURE; ) CONST PURE;
// //
// Computes the outline of the geometry. The result is written back into a // Computes the outline of the geometry. The result is written back into a
// simplified geometry sink. // simplified geometry sink.
// //
STDMETHOD(Outline)( STDMETHOD(Outline)(
__in_opt CONST D2D1_MATRIX_3X2_F *worldTransform, _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
FLOAT flatteningTolerance, FLOAT flatteningTolerance,
__in ID2D1SimplifiedGeometrySink *geometrySink _In_ ID2D1SimplifiedGeometrySink *geometrySink
) CONST PURE; ) CONST PURE;
// //
// Computes the area of the geometry. // Computes the area of the geometry.
// //
STDMETHOD(ComputeArea)( STDMETHOD(ComputeArea)(
__in_opt CONST D2D1_MATRIX_3X2_F *worldTransform, _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
FLOAT flatteningTolerance, FLOAT flatteningTolerance,
__out FLOAT *area _Out_ FLOAT *area
) CONST PURE; ) CONST PURE;
// //
// Computes the length of the geometry. // Computes the length of the geometry.
// //
STDMETHOD(ComputeLength)( STDMETHOD(ComputeLength)(
__in_opt CONST D2D1_MATRIX_3X2_F *worldTransform, _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
FLOAT flatteningTolerance, FLOAT flatteningTolerance,
__out FLOAT *length _Out_ FLOAT *length
) CONST PURE; ) CONST PURE;
// //
// Computes the point and tangent a given distance along the path. // Computes the point and tangent a given distance along the path.
// //
STDMETHOD(ComputePointAtLength)( STDMETHOD(ComputePointAtLength)(
FLOAT length, FLOAT length,
__in_opt CONST D2D1_MATRIX_3X2_F *worldTransform, _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
FLOAT flatteningTolerance, FLOAT flatteningTolerance,
__out_opt D2D1_POINT_2F *point, _Out_opt_ D2D1_POINT_2F *point,
__out_opt D2D1_POINT_2F *unitTangentVector _Out_opt_ D2D1_POINT_2F *unitTangentVector
) CONST PURE; ) CONST PURE;
// //
// Get the geometry and widen it as well as apply an optional pen style. // Get the geometry and widen it as well as apply an optional pen style.
// //
STDMETHOD(Widen)( STDMETHOD(Widen)(
FLOAT strokeWidth, FLOAT strokeWidth,
__in_opt ID2D1StrokeStyle *strokeStyle, _In_opt_ ID2D1StrokeStyle *strokeStyle,
__in_opt CONST D2D1_MATRIX_3X2_F *worldTransform, _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
FLOAT flatteningTolerance, FLOAT flatteningTolerance,
__in ID2D1SimplifiedGeometrySink *geometrySink _In_ ID2D1SimplifiedGeometrySink *geometrySink
) CONST PURE; ) CONST PURE;
// //
// Retrieve the bounds of the geometry, with an optional applied transform. // Retrieve the bounds of the geometry, with an optional applied transform.
// //
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
GetBounds( GetBounds(
CONST D2D1_MATRIX_3X2_F &worldTransform, CONST D2D1_MATRIX_3X2_F &worldTransform,
__out D2D1_RECT_F *bounds _Out_ D2D1_RECT_F *bounds
) CONST ) CONST
{ {
return GetBounds(&worldTransform, bounds); return GetBounds(&worldTransform, bounds);
} }
// //
// Get the bounds of the corresponding geometry after it has been widened or have // Get the bounds of the corresponding geometry after it has been widened or have
// an optional pen style applied. // an optional pen style applied.
// //
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
GetWidenedBounds( GetWidenedBounds(
FLOAT strokeWidth, FLOAT strokeWidth,
__in_opt ID2D1StrokeStyle *strokeStyle, _In_opt_ ID2D1StrokeStyle *strokeStyle,
CONST D2D1_MATRIX_3X2_F &worldTransform, CONST D2D1_MATRIX_3X2_F &worldTransform,
FLOAT flatteningTolerance, FLOAT flatteningTolerance,
__out D2D1_RECT_F *bounds _Out_ D2D1_RECT_F *bounds
) CONST ) CONST
{ {
return GetWidenedBounds(strokeWidth, strokeStyle, &worldTransform, flatt eningTolerance, bounds); return GetWidenedBounds(strokeWidth, strokeStyle, &worldTransform, flatt eningTolerance, bounds);
} }
// //
// Get the bounds of the corresponding geometry after it has been widened or have // Get the bounds of the corresponding geometry after it has been widened or have
// an optional pen style applied. // an optional pen style applied.
// //
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
GetWidenedBounds( GetWidenedBounds(
FLOAT strokeWidth, FLOAT strokeWidth,
__in_opt ID2D1StrokeStyle *strokeStyle, _In_opt_ ID2D1StrokeStyle *strokeStyle,
__in_opt CONST D2D1_MATRIX_3X2_F *worldTransform, _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
__out D2D1_RECT_F *bounds _Out_ D2D1_RECT_F *bounds
) CONST ) CONST
{ {
return GetWidenedBounds(strokeWidth, strokeStyle, worldTransform, D2D1_D EFAULT_FLATTENING_TOLERANCE, bounds); return GetWidenedBounds(strokeWidth, strokeStyle, worldTransform, D2D1_D EFAULT_FLATTENING_TOLERANCE, bounds);
} }
// //
// Get the bounds of the corresponding geometry after it has been widened or have // Get the bounds of the corresponding geometry after it has been widened or have
// an optional pen style applied. // an optional pen style applied.
// //
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
GetWidenedBounds( GetWidenedBounds(
FLOAT strokeWidth, FLOAT strokeWidth,
__in_opt ID2D1StrokeStyle *strokeStyle, _In_opt_ ID2D1StrokeStyle *strokeStyle,
CONST D2D1_MATRIX_3X2_F &worldTransform, CONST D2D1_MATRIX_3X2_F &worldTransform,
__out D2D1_RECT_F *bounds _Out_ D2D1_RECT_F *bounds
) CONST ) CONST
{ {
return GetWidenedBounds(strokeWidth, strokeStyle, &worldTransform, D2D1_ DEFAULT_FLATTENING_TOLERANCE, bounds); return GetWidenedBounds(strokeWidth, strokeStyle, &worldTransform, D2D1_ DEFAULT_FLATTENING_TOLERANCE, bounds);
} }
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
StrokeContainsPoint( StrokeContainsPoint(
D2D1_POINT_2F point, D2D1_POINT_2F point,
FLOAT strokeWidth, FLOAT strokeWidth,
__in_opt ID2D1StrokeStyle *strokeStyle, _In_opt_ ID2D1StrokeStyle *strokeStyle,
CONST D2D1_MATRIX_3X2_F &worldTransform, CONST D2D1_MATRIX_3X2_F &worldTransform,
FLOAT flatteningTolerance, FLOAT flatteningTolerance,
__out BOOL *contains _Out_ BOOL *contains
) CONST ) CONST
{ {
return StrokeContainsPoint(point, strokeWidth, strokeStyle, &worldTransf orm, flatteningTolerance, contains); return StrokeContainsPoint(point, strokeWidth, strokeStyle, &worldTransf orm, flatteningTolerance, contains);
} }
// //
// Checks to see whether the corresponding penned and widened geometry conta ins the // Checks to see whether the corresponding penned and widened geometry conta ins the
// given point. // given point.
// //
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
StrokeContainsPoint( StrokeContainsPoint(
D2D1_POINT_2F point, D2D1_POINT_2F point,
FLOAT strokeWidth, FLOAT strokeWidth,
__in_opt ID2D1StrokeStyle *strokeStyle, _In_opt_ ID2D1StrokeStyle *strokeStyle,
__in_opt CONST D2D1_MATRIX_3X2_F *worldTransform, _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
__out BOOL *contains _Out_ BOOL *contains
) CONST ) CONST
{ {
return StrokeContainsPoint(point, strokeWidth, strokeStyle, worldTransfo rm, D2D1_DEFAULT_FLATTENING_TOLERANCE, contains); return StrokeContainsPoint(point, strokeWidth, strokeStyle, worldTransfo rm, D2D1_DEFAULT_FLATTENING_TOLERANCE, contains);
} }
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
StrokeContainsPoint( StrokeContainsPoint(
D2D1_POINT_2F point, D2D1_POINT_2F point,
FLOAT strokeWidth, FLOAT strokeWidth,
__in_opt ID2D1StrokeStyle *strokeStyle, _In_opt_ ID2D1StrokeStyle *strokeStyle,
CONST D2D1_MATRIX_3X2_F &worldTransform, CONST D2D1_MATRIX_3X2_F &worldTransform,
__out BOOL *contains _Out_ BOOL *contains
) CONST ) CONST
{ {
return StrokeContainsPoint(point, strokeWidth, strokeStyle, &worldTransf orm, D2D1_DEFAULT_FLATTENING_TOLERANCE, contains); return StrokeContainsPoint(point, strokeWidth, strokeStyle, &worldTransf orm, D2D1_DEFAULT_FLATTENING_TOLERANCE, contains);
} }
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
FillContainsPoint( FillContainsPoint(
D2D1_POINT_2F point, D2D1_POINT_2F point,
CONST D2D1_MATRIX_3X2_F &worldTransform, CONST D2D1_MATRIX_3X2_F &worldTransform,
FLOAT flatteningTolerance, FLOAT flatteningTolerance,
__out BOOL *contains _Out_ BOOL *contains
) CONST ) CONST
{ {
return FillContainsPoint(point, &worldTransform, flatteningTolerance, co ntains); return FillContainsPoint(point, &worldTransform, flatteningTolerance, co ntains);
} }
// //
// Test whether the given fill of this geometry would contain this point. // Test whether the given fill of this geometry would contain this point.
// //
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
FillContainsPoint( FillContainsPoint(
D2D1_POINT_2F point, D2D1_POINT_2F point,
__in_opt CONST D2D1_MATRIX_3X2_F *worldTransform, _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
__out BOOL *contains _Out_ BOOL *contains
) CONST ) CONST
{ {
return FillContainsPoint(point, worldTransform, D2D1_DEFAULT_FLATTENING_ TOLERANCE, contains); return FillContainsPoint(point, worldTransform, D2D1_DEFAULT_FLATTENING_ TOLERANCE, contains);
} }
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
FillContainsPoint( FillContainsPoint(
D2D1_POINT_2F point, D2D1_POINT_2F point,
CONST D2D1_MATRIX_3X2_F &worldTransform, CONST D2D1_MATRIX_3X2_F &worldTransform,
__out BOOL *contains _Out_ BOOL *contains
) CONST ) CONST
{ {
return FillContainsPoint(point, &worldTransform, D2D1_DEFAULT_FLATTENING _TOLERANCE, contains); return FillContainsPoint(point, &worldTransform, D2D1_DEFAULT_FLATTENING _TOLERANCE, contains);
} }
// //
// Compare how one geometry intersects or contains another geometry. // Compare how one geometry intersects or contains another geometry.
// //
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
CompareWithGeometry( CompareWithGeometry(
__in ID2D1Geometry *inputGeometry, _In_ ID2D1Geometry *inputGeometry,
CONST D2D1_MATRIX_3X2_F &inputGeometryTransform, CONST D2D1_MATRIX_3X2_F &inputGeometryTransform,
FLOAT flatteningTolerance, FLOAT flatteningTolerance,
__out D2D1_GEOMETRY_RELATION *relation _Out_ D2D1_GEOMETRY_RELATION *relation
) CONST ) CONST
{ {
return CompareWithGeometry(inputGeometry, &inputGeometryTransform, flatt eningTolerance, relation); return CompareWithGeometry(inputGeometry, &inputGeometryTransform, flatt eningTolerance, relation);
} }
// //
// Compare how one geometry intersects or contains another geometry. // Compare how one geometry intersects or contains another geometry.
// //
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
CompareWithGeometry( CompareWithGeometry(
__in ID2D1Geometry *inputGeometry, _In_ ID2D1Geometry *inputGeometry,
__in_opt CONST D2D1_MATRIX_3X2_F *inputGeometryTransform, _In_opt_ CONST D2D1_MATRIX_3X2_F *inputGeometryTransform,
__out D2D1_GEOMETRY_RELATION *relation _Out_ D2D1_GEOMETRY_RELATION *relation
) CONST ) CONST
{ {
return CompareWithGeometry(inputGeometry, inputGeometryTransform, D2D1_D EFAULT_FLATTENING_TOLERANCE, relation); return CompareWithGeometry(inputGeometry, inputGeometryTransform, D2D1_D EFAULT_FLATTENING_TOLERANCE, relation);
} }
// //
// Compare how one geometry intersects or contains another geometry. // Compare how one geometry intersects or contains another geometry.
// //
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
CompareWithGeometry( CompareWithGeometry(
__in ID2D1Geometry *inputGeometry, _In_ ID2D1Geometry *inputGeometry,
CONST D2D1_MATRIX_3X2_F &inputGeometryTransform, CONST D2D1_MATRIX_3X2_F &inputGeometryTransform,
__out D2D1_GEOMETRY_RELATION *relation _Out_ D2D1_GEOMETRY_RELATION *relation
) CONST ) CONST
{ {
return CompareWithGeometry(inputGeometry, &inputGeometryTransform, D2D1_ DEFAULT_FLATTENING_TOLERANCE, relation); return CompareWithGeometry(inputGeometry, &inputGeometryTransform, D2D1_ DEFAULT_FLATTENING_TOLERANCE, relation);
} }
// //
// Converts a geometry to a simplified geometry that has arcs and quadratic beziers // Converts a geometry to a simplified geometry that has arcs and quadratic beziers
// removed. // removed.
// //
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
Simplify( Simplify(
D2D1_GEOMETRY_SIMPLIFICATION_OPTION simplificationOption, D2D1_GEOMETRY_SIMPLIFICATION_OPTION simplificationOption,
CONST D2D1_MATRIX_3X2_F &worldTransform, CONST D2D1_MATRIX_3X2_F &worldTransform,
FLOAT flatteningTolerance, FLOAT flatteningTolerance,
__in ID2D1SimplifiedGeometrySink *geometrySink _In_ ID2D1SimplifiedGeometrySink *geometrySink
) CONST ) CONST
{ {
return Simplify(simplificationOption, &worldTransform, flatteningToleran ce, geometrySink); return Simplify(simplificationOption, &worldTransform, flatteningToleran ce, geometrySink);
} }
// //
// Converts a geometry to a simplified geometry that has arcs and quadratic beziers // Converts a geometry to a simplified geometry that has arcs and quadratic beziers
// removed. // removed.
// //
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
Simplify( Simplify(
D2D1_GEOMETRY_SIMPLIFICATION_OPTION simplificationOption, D2D1_GEOMETRY_SIMPLIFICATION_OPTION simplificationOption,
__in_opt CONST D2D1_MATRIX_3X2_F *worldTransform, _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
__in ID2D1SimplifiedGeometrySink *geometrySink _In_ ID2D1SimplifiedGeometrySink *geometrySink
) CONST ) CONST
{ {
return Simplify(simplificationOption, worldTransform, D2D1_DEFAULT_FLATT ENING_TOLERANCE, geometrySink); return Simplify(simplificationOption, worldTransform, D2D1_DEFAULT_FLATT ENING_TOLERANCE, geometrySink);
} }
// //
// Converts a geometry to a simplified geometry that has arcs and quadratic beziers // Converts a geometry to a simplified geometry that has arcs and quadratic beziers
// removed. // removed.
// //
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
Simplify( Simplify(
D2D1_GEOMETRY_SIMPLIFICATION_OPTION simplificationOption, D2D1_GEOMETRY_SIMPLIFICATION_OPTION simplificationOption,
CONST D2D1_MATRIX_3X2_F &worldTransform, CONST D2D1_MATRIX_3X2_F &worldTransform,
__in ID2D1SimplifiedGeometrySink *geometrySink _In_ ID2D1SimplifiedGeometrySink *geometrySink
) CONST ) CONST
{ {
return Simplify(simplificationOption, &worldTransform, D2D1_DEFAULT_FLAT TENING_TOLERANCE, geometrySink); return Simplify(simplificationOption, &worldTransform, D2D1_DEFAULT_FLAT TENING_TOLERANCE, geometrySink);
} }
// //
// Tessellates a geometry into triangles. // Tessellates a geometry into triangles.
// //
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
Tessellate( Tessellate(
CONST D2D1_MATRIX_3X2_F &worldTransform, CONST D2D1_MATRIX_3X2_F &worldTransform,
FLOAT flatteningTolerance, FLOAT flatteningTolerance,
__in ID2D1TessellationSink *tessellationSink _In_ ID2D1TessellationSink *tessellationSink
) CONST ) CONST
{ {
return Tessellate(&worldTransform, flatteningTolerance, tessellationSink ); return Tessellate(&worldTransform, flatteningTolerance, tessellationSink );
} }
// //
// Tessellates a geometry into triangles. // Tessellates a geometry into triangles.
// //
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
Tessellate( Tessellate(
__in_opt CONST D2D1_MATRIX_3X2_F *worldTransform, _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
__in ID2D1TessellationSink *tessellationSink _In_ ID2D1TessellationSink *tessellationSink
) CONST ) CONST
{ {
return Tessellate(worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, tes sellationSink); return Tessellate(worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, tes sellationSink);
} }
// //
// Tessellates a geometry into triangles. // Tessellates a geometry into triangles.
// //
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
Tessellate( Tessellate(
CONST D2D1_MATRIX_3X2_F &worldTransform, CONST D2D1_MATRIX_3X2_F &worldTransform,
__in ID2D1TessellationSink *tessellationSink _In_ ID2D1TessellationSink *tessellationSink
) CONST ) CONST
{ {
return Tessellate(&worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, te ssellationSink); return Tessellate(&worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, te ssellationSink);
} }
// //
// Performs a combine operation between the two geometries to produce a resu lting // Performs a combine operation between the two geometries to produce a resu lting
// geometry. // geometry.
// //
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
CombineWithGeometry( CombineWithGeometry(
__in ID2D1Geometry *inputGeometry, _In_ ID2D1Geometry *inputGeometry,
D2D1_COMBINE_MODE combineMode, D2D1_COMBINE_MODE combineMode,
CONST D2D1_MATRIX_3X2_F &inputGeometryTransform, CONST D2D1_MATRIX_3X2_F &inputGeometryTransform,
FLOAT flatteningTolerance, FLOAT flatteningTolerance,
__in ID2D1SimplifiedGeometrySink *geometrySink _In_ ID2D1SimplifiedGeometrySink *geometrySink
) CONST ) CONST
{ {
return CombineWithGeometry(inputGeometry, combineMode, &inputGeometryTra nsform, flatteningTolerance, geometrySink); return CombineWithGeometry(inputGeometry, combineMode, &inputGeometryTra nsform, flatteningTolerance, geometrySink);
} }
// //
// Performs a combine operation between the two geometries to produce a resu lting // Performs a combine operation between the two geometries to produce a resu lting
// geometry. // geometry.
// //
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
CombineWithGeometry( CombineWithGeometry(
__in ID2D1Geometry *inputGeometry, _In_ ID2D1Geometry *inputGeometry,
D2D1_COMBINE_MODE combineMode, D2D1_COMBINE_MODE combineMode,
__in_opt CONST D2D1_MATRIX_3X2_F *inputGeometryTransform, _In_opt_ CONST D2D1_MATRIX_3X2_F *inputGeometryTransform,
__in ID2D1SimplifiedGeometrySink *geometrySink _In_ ID2D1SimplifiedGeometrySink *geometrySink
) CONST ) CONST
{ {
return CombineWithGeometry(inputGeometry, combineMode, inputGeometryTran sform, D2D1_DEFAULT_FLATTENING_TOLERANCE, geometrySink); return CombineWithGeometry(inputGeometry, combineMode, inputGeometryTran sform, D2D1_DEFAULT_FLATTENING_TOLERANCE, geometrySink);
} }
// //
// Performs a combine operation between the two geometries to produce a resu lting // Performs a combine operation between the two geometries to produce a resu lting
// geometry. // geometry.
// //
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
CombineWithGeometry( CombineWithGeometry(
__in ID2D1Geometry *inputGeometry, _In_ ID2D1Geometry *inputGeometry,
D2D1_COMBINE_MODE combineMode, D2D1_COMBINE_MODE combineMode,
CONST D2D1_MATRIX_3X2_F &inputGeometryTransform, CONST D2D1_MATRIX_3X2_F &inputGeometryTransform,
__in ID2D1SimplifiedGeometrySink *geometrySink _In_ ID2D1SimplifiedGeometrySink *geometrySink
) CONST ) CONST
{ {
return CombineWithGeometry(inputGeometry, combineMode, &inputGeometryTra nsform, D2D1_DEFAULT_FLATTENING_TOLERANCE, geometrySink); return CombineWithGeometry(inputGeometry, combineMode, &inputGeometryTra nsform, D2D1_DEFAULT_FLATTENING_TOLERANCE, geometrySink);
} }
// //
// Computes the outline of the geometry. The result is written back into a // Computes the outline of the geometry. The result is written back into a
// simplified geometry sink. // simplified geometry sink.
// //
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
Outline( Outline(
CONST D2D1_MATRIX_3X2_F &worldTransform, CONST D2D1_MATRIX_3X2_F &worldTransform,
FLOAT flatteningTolerance, FLOAT flatteningTolerance,
__in ID2D1SimplifiedGeometrySink *geometrySink _In_ ID2D1SimplifiedGeometrySink *geometrySink
) CONST ) CONST
{ {
return Outline(&worldTransform, flatteningTolerance, geometrySink); return Outline(&worldTransform, flatteningTolerance, geometrySink);
} }
// //
// Computes the outline of the geometry. The result is written back into a // Computes the outline of the geometry. The result is written back into a
// simplified geometry sink. // simplified geometry sink.
// //
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
Outline( Outline(
__in_opt CONST D2D1_MATRIX_3X2_F *worldTransform, _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
__in ID2D1SimplifiedGeometrySink *geometrySink _In_ ID2D1SimplifiedGeometrySink *geometrySink
) CONST ) CONST
{ {
return Outline(worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, geomet rySink); return Outline(worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, geomet rySink);
} }
// //
// Computes the outline of the geometry. The result is written back into a // Computes the outline of the geometry. The result is written back into a
// simplified geometry sink. // simplified geometry sink.
// //
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
Outline( Outline(
CONST D2D1_MATRIX_3X2_F &worldTransform, CONST D2D1_MATRIX_3X2_F &worldTransform,
__in ID2D1SimplifiedGeometrySink *geometrySink _In_ ID2D1SimplifiedGeometrySink *geometrySink
) CONST ) CONST
{ {
return Outline(&worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, geome trySink); return Outline(&worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, geome trySink);
} }
// //
// Computes the area of the geometry. // Computes the area of the geometry.
// //
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
ComputeArea( ComputeArea(
CONST D2D1_MATRIX_3X2_F &worldTransform, CONST D2D1_MATRIX_3X2_F &worldTransform,
FLOAT flatteningTolerance, FLOAT flatteningTolerance,
__out FLOAT *area _Out_ FLOAT *area
) CONST ) CONST
{ {
return ComputeArea(&worldTransform, flatteningTolerance, area); return ComputeArea(&worldTransform, flatteningTolerance, area);
} }
// //
// Computes the area of the geometry. // Computes the area of the geometry.
// //
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
ComputeArea( ComputeArea(
__in_opt CONST D2D1_MATRIX_3X2_F *worldTransform, _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
__out FLOAT *area _Out_ FLOAT *area
) CONST ) CONST
{ {
return ComputeArea(worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, ar ea); return ComputeArea(worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, ar ea);
} }
// //
// Computes the area of the geometry. // Computes the area of the geometry.
// //
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
ComputeArea( ComputeArea(
CONST D2D1_MATRIX_3X2_F &worldTransform, CONST D2D1_MATRIX_3X2_F &worldTransform,
__out FLOAT *area _Out_ FLOAT *area
) CONST ) CONST
{ {
return ComputeArea(&worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, a rea); return ComputeArea(&worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, a rea);
} }
// //
// Computes the length of the geometry. // Computes the length of the geometry.
// //
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
ComputeLength( ComputeLength(
CONST D2D1_MATRIX_3X2_F &worldTransform, CONST D2D1_MATRIX_3X2_F &worldTransform,
FLOAT flatteningTolerance, FLOAT flatteningTolerance,
__out FLOAT *length _Out_ FLOAT *length
) CONST ) CONST
{ {
return ComputeLength(&worldTransform, flatteningTolerance, length); return ComputeLength(&worldTransform, flatteningTolerance, length);
} }
// //
// Computes the length of the geometry. // Computes the length of the geometry.
// //
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
ComputeLength( ComputeLength(
__in_opt CONST D2D1_MATRIX_3X2_F *worldTransform, _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
__out FLOAT *length _Out_ FLOAT *length
) CONST ) CONST
{ {
return ComputeLength(worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, length); return ComputeLength(worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, length);
} }
// //
// Computes the length of the geometry. // Computes the length of the geometry.
// //
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
ComputeLength( ComputeLength(
CONST D2D1_MATRIX_3X2_F &worldTransform, CONST D2D1_MATRIX_3X2_F &worldTransform,
__out FLOAT *length _Out_ FLOAT *length
) CONST ) CONST
{ {
return ComputeLength(&worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, length); return ComputeLength(&worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, length);
} }
// //
// Computes the point and tangent a given distance along the path. // Computes the point and tangent a given distance along the path.
// //
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
ComputePointAtLength( ComputePointAtLength(
FLOAT length, FLOAT length,
CONST D2D1_MATRIX_3X2_F &worldTransform, CONST D2D1_MATRIX_3X2_F &worldTransform,
FLOAT flatteningTolerance, FLOAT flatteningTolerance,
__out_opt D2D1_POINT_2F *point, _Out_opt_ D2D1_POINT_2F *point,
__out_opt D2D1_POINT_2F *unitTangentVector _Out_opt_ D2D1_POINT_2F *unitTangentVector
) CONST ) CONST
{ {
return ComputePointAtLength(length, &worldTransform, flatteningTolerance , point, unitTangentVector); return ComputePointAtLength(length, &worldTransform, flatteningTolerance , point, unitTangentVector);
} }
// //
// Computes the point and tangent a given distance along the path. // Computes the point and tangent a given distance along the path.
// //
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
ComputePointAtLength( ComputePointAtLength(
FLOAT length, FLOAT length,
__in_opt CONST D2D1_MATRIX_3X2_F *worldTransform, _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
__out_opt D2D1_POINT_2F *point, _Out_opt_ D2D1_POINT_2F *point,
__out_opt D2D1_POINT_2F *unitTangentVector _Out_opt_ D2D1_POINT_2F *unitTangentVector
) CONST ) CONST
{ {
return ComputePointAtLength(length, worldTransform, D2D1_DEFAULT_FLATTEN ING_TOLERANCE, point, unitTangentVector); return ComputePointAtLength(length, worldTransform, D2D1_DEFAULT_FLATTEN ING_TOLERANCE, point, unitTangentVector);
} }
// //
// Computes the point and tangent a given distance along the path. // Computes the point and tangent a given distance along the path.
// //
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
ComputePointAtLength( ComputePointAtLength(
FLOAT length, FLOAT length,
CONST D2D1_MATRIX_3X2_F &worldTransform, CONST D2D1_MATRIX_3X2_F &worldTransform,
__out_opt D2D1_POINT_2F *point, _Out_opt_ D2D1_POINT_2F *point,
__out_opt D2D1_POINT_2F *unitTangentVector _Out_opt_ D2D1_POINT_2F *unitTangentVector
) CONST ) CONST
{ {
return ComputePointAtLength(length, &worldTransform, D2D1_DEFAULT_FLATTE NING_TOLERANCE, point, unitTangentVector); return ComputePointAtLength(length, &worldTransform, D2D1_DEFAULT_FLATTE NING_TOLERANCE, point, unitTangentVector);
} }
// //
// Get the geometry and widen it as well as apply an optional pen style. // Get the geometry and widen it as well as apply an optional pen style.
// //
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
Widen( Widen(
FLOAT strokeWidth, FLOAT strokeWidth,
__in_opt ID2D1StrokeStyle *strokeStyle, _In_opt_ ID2D1StrokeStyle *strokeStyle,
CONST D2D1_MATRIX_3X2_F &worldTransform, CONST D2D1_MATRIX_3X2_F &worldTransform,
FLOAT flatteningTolerance, FLOAT flatteningTolerance,
__in ID2D1SimplifiedGeometrySink *geometrySink _In_ ID2D1SimplifiedGeometrySink *geometrySink
) CONST ) CONST
{ {
return Widen(strokeWidth, strokeStyle, &worldTransform, flatteningTolera nce, geometrySink); return Widen(strokeWidth, strokeStyle, &worldTransform, flatteningTolera nce, geometrySink);
} }
// //
// Get the geometry and widen it as well as apply an optional pen style. // Get the geometry and widen it as well as apply an optional pen style.
// //
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
Widen( Widen(
FLOAT strokeWidth, FLOAT strokeWidth,
__in_opt ID2D1StrokeStyle *strokeStyle, _In_opt_ ID2D1StrokeStyle *strokeStyle,
__in_opt CONST D2D1_MATRIX_3X2_F *worldTransform, _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
__in ID2D1SimplifiedGeometrySink *geometrySink _In_ ID2D1SimplifiedGeometrySink *geometrySink
) CONST ) CONST
{ {
return Widen(strokeWidth, strokeStyle, worldTransform, D2D1_DEFAULT_FLAT TENING_TOLERANCE, geometrySink); return Widen(strokeWidth, strokeStyle, worldTransform, D2D1_DEFAULT_FLAT TENING_TOLERANCE, geometrySink);
} }
// //
// Get the geometry and widen it as well as apply an optional pen style. // Get the geometry and widen it as well as apply an optional pen style.
// //
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
Widen( Widen(
FLOAT strokeWidth, FLOAT strokeWidth,
__in_opt ID2D1StrokeStyle *strokeStyle, _In_opt_ ID2D1StrokeStyle *strokeStyle,
CONST D2D1_MATRIX_3X2_F &worldTransform, CONST D2D1_MATRIX_3X2_F &worldTransform,
__in ID2D1SimplifiedGeometrySink *geometrySink _In_ ID2D1SimplifiedGeometrySink *geometrySink
) CONST ) CONST
{ {
return Widen(strokeWidth, strokeStyle, &worldTransform, D2D1_DEFAULT_FLA TTENING_TOLERANCE, geometrySink); return Widen(strokeWidth, strokeStyle, &worldTransform, D2D1_DEFAULT_FLA TTENING_TOLERANCE, geometrySink);
} }
}; // interface ID2D1Geometry }; // interface ID2D1Geometry
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
// Interface: // Interface:
// ID2D1RectangleGeometry // ID2D1RectangleGeometry
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
interface D2D1_DECLARE_INTERFACE("2cd906a2-12e2-11dc-9fed-001143a055f9") ID2D1Re ctangleGeometry : public ID2D1Geometry interface DX_DECLARE_INTERFACE("2cd906a2-12e2-11dc-9fed-001143a055f9") ID2D1Rect angleGeometry : public ID2D1Geometry
{ {
STDMETHOD_(void, GetRect)( STDMETHOD_(void, GetRect)(
__out D2D1_RECT_F *rect _Out_ D2D1_RECT_F *rect
) CONST PURE; ) CONST PURE;
}; // interface ID2D1RectangleGeometry }; // interface ID2D1RectangleGeometry
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
// Interface: // Interface:
// ID2D1RoundedRectangleGeometry // ID2D1RoundedRectangleGeometry
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
interface D2D1_DECLARE_INTERFACE("2cd906a3-12e2-11dc-9fed-001143a055f9") ID2D1Ro undedRectangleGeometry : public ID2D1Geometry interface DX_DECLARE_INTERFACE("2cd906a3-12e2-11dc-9fed-001143a055f9") ID2D1Roun dedRectangleGeometry : public ID2D1Geometry
{ {
STDMETHOD_(void, GetRoundedRect)( STDMETHOD_(void, GetRoundedRect)(
__out D2D1_ROUNDED_RECT *roundedRect _Out_ D2D1_ROUNDED_RECT *roundedRect
) CONST PURE; ) CONST PURE;
}; // interface ID2D1RoundedRectangleGeometry }; // interface ID2D1RoundedRectangleGeometry
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
// Interface: // Interface:
// ID2D1EllipseGeometry // ID2D1EllipseGeometry
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
interface D2D1_DECLARE_INTERFACE("2cd906a4-12e2-11dc-9fed-001143a055f9") ID2D1El lipseGeometry : public ID2D1Geometry interface DX_DECLARE_INTERFACE("2cd906a4-12e2-11dc-9fed-001143a055f9") ID2D1Elli pseGeometry : public ID2D1Geometry
{ {
STDMETHOD_(void, GetEllipse)( STDMETHOD_(void, GetEllipse)(
__out D2D1_ELLIPSE *ellipse _Out_ D2D1_ELLIPSE *ellipse
) CONST PURE; ) CONST PURE;
}; // interface ID2D1EllipseGeometry }; // interface ID2D1EllipseGeometry
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
// Interface: // Interface:
// ID2D1GeometryGroup // ID2D1GeometryGroup
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
interface D2D1_DECLARE_INTERFACE("2cd906a6-12e2-11dc-9fed-001143a055f9") ID2D1Ge ometryGroup : public ID2D1Geometry interface DX_DECLARE_INTERFACE("2cd906a6-12e2-11dc-9fed-001143a055f9") ID2D1Geom etryGroup : public ID2D1Geometry
{ {
STDMETHOD_(D2D1_FILL_MODE, GetFillMode)( STDMETHOD_(D2D1_FILL_MODE, GetFillMode)(
) CONST PURE; ) CONST PURE;
STDMETHOD_(UINT32, GetSourceGeometryCount)( STDMETHOD_(UINT32, GetSourceGeometryCount)(
) CONST PURE; ) CONST PURE;
STDMETHOD_(void, GetSourceGeometries)( STDMETHOD_(void, GetSourceGeometries)(
__out_ecount(geometriesCount) ID2D1Geometry **geometries, _Out_writes_(geometriesCount) ID2D1Geometry **geometries,
UINT geometriesCount UINT32 geometriesCount
) CONST PURE; ) CONST PURE;
}; // interface ID2D1GeometryGroup }; // interface ID2D1GeometryGroup
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
// Interface: // Interface:
// ID2D1TransformedGeometry // ID2D1TransformedGeometry
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
interface D2D1_DECLARE_INTERFACE("2cd906bb-12e2-11dc-9fed-001143a055f9") ID2D1Tr ansformedGeometry : public ID2D1Geometry interface DX_DECLARE_INTERFACE("2cd906bb-12e2-11dc-9fed-001143a055f9") ID2D1Tran sformedGeometry : public ID2D1Geometry
{ {
STDMETHOD_(void, GetSourceGeometry)( STDMETHOD_(void, GetSourceGeometry)(
__deref_out ID2D1Geometry **sourceGeometry _Outptr_ ID2D1Geometry **sourceGeometry
) CONST PURE; ) CONST PURE;
STDMETHOD_(void, GetTransform)( STDMETHOD_(void, GetTransform)(
__out D2D1_MATRIX_3X2_F *transform _Out_ D2D1_MATRIX_3X2_F *transform
) CONST PURE; ) CONST PURE;
}; // interface ID2D1TransformedGeometry }; // interface ID2D1TransformedGeometry
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
// Interface: // Interface:
// ID2D1SimplifiedGeometrySink // ID2D1SimplifiedGeometrySink
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
interface D2D1_DECLARE_INTERFACE("2cd9069e-12e2-11dc-9fed-001143a055f9") ID2D1Si mplifiedGeometrySink : public IUnknown interface DX_DECLARE_INTERFACE("2cd9069e-12e2-11dc-9fed-001143a055f9") ID2D1Simp lifiedGeometrySink : public IUnknown
{ {
STDMETHOD_(void, SetFillMode)( STDMETHOD_(void, SetFillMode)(
D2D1_FILL_MODE fillMode D2D1_FILL_MODE fillMode
) PURE; ) PURE;
STDMETHOD_(void, SetSegmentFlags)( STDMETHOD_(void, SetSegmentFlags)(
D2D1_PATH_SEGMENT vertexFlags D2D1_PATH_SEGMENT vertexFlags
) PURE; ) PURE;
STDMETHOD_(void, BeginFigure)( STDMETHOD_(void, BeginFigure)(
D2D1_POINT_2F startPoint, D2D1_POINT_2F startPoint,
D2D1_FIGURE_BEGIN figureBegin D2D1_FIGURE_BEGIN figureBegin
) PURE; ) PURE;
STDMETHOD_(void, AddLines)( STDMETHOD_(void, AddLines)(
__in_ecount(pointsCount) CONST D2D1_POINT_2F *points, _In_reads_(pointsCount) CONST D2D1_POINT_2F *points,
UINT pointsCount UINT32 pointsCount
) PURE; ) PURE;
STDMETHOD_(void, AddBeziers)( STDMETHOD_(void, AddBeziers)(
__in_ecount(beziersCount) CONST D2D1_BEZIER_SEGMENT *beziers, _In_reads_(beziersCount) CONST D2D1_BEZIER_SEGMENT *beziers,
UINT beziersCount UINT32 beziersCount
) PURE; ) PURE;
STDMETHOD_(void, EndFigure)( STDMETHOD_(void, EndFigure)(
D2D1_FIGURE_END figureEnd D2D1_FIGURE_END figureEnd
) PURE; ) PURE;
STDMETHOD(Close)( STDMETHOD(Close)(
) PURE; ) PURE;
}; // interface ID2D1SimplifiedGeometrySink }; // interface ID2D1SimplifiedGeometrySink
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
// Interface: // Interface:
// ID2D1GeometrySink // ID2D1GeometrySink
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
interface D2D1_DECLARE_INTERFACE("2cd9069f-12e2-11dc-9fed-001143a055f9") ID2D1Ge ometrySink : public ID2D1SimplifiedGeometrySink interface DX_DECLARE_INTERFACE("2cd9069f-12e2-11dc-9fed-001143a055f9") ID2D1Geom etrySink : public ID2D1SimplifiedGeometrySink
{ {
STDMETHOD_(void, AddLine)( STDMETHOD_(void, AddLine)(
D2D1_POINT_2F point D2D1_POINT_2F point
) PURE; ) PURE;
STDMETHOD_(void, AddBezier)( STDMETHOD_(void, AddBezier)(
__in CONST D2D1_BEZIER_SEGMENT *bezier _In_ CONST D2D1_BEZIER_SEGMENT *bezier
) PURE; ) PURE;
STDMETHOD_(void, AddQuadraticBezier)( STDMETHOD_(void, AddQuadraticBezier)(
__in CONST D2D1_QUADRATIC_BEZIER_SEGMENT *bezier _In_ CONST D2D1_QUADRATIC_BEZIER_SEGMENT *bezier
) PURE; ) PURE;
STDMETHOD_(void, AddQuadraticBeziers)( STDMETHOD_(void, AddQuadraticBeziers)(
__in_ecount(beziersCount) CONST D2D1_QUADRATIC_BEZIER_SEGMENT *beziers, _In_reads_(beziersCount) CONST D2D1_QUADRATIC_BEZIER_SEGMENT *beziers,
UINT beziersCount UINT32 beziersCount
) PURE; ) PURE;
STDMETHOD_(void, AddArc)( STDMETHOD_(void, AddArc)(
__in CONST D2D1_ARC_SEGMENT *arc _In_ CONST D2D1_ARC_SEGMENT *arc
) PURE; ) PURE;
COM_DECLSPEC_NOTHROW
void void
AddBezier( AddBezier(
CONST D2D1_BEZIER_SEGMENT &bezier CONST D2D1_BEZIER_SEGMENT &bezier
) )
{ {
AddBezier(&bezier); AddBezier(&bezier);
} }
COM_DECLSPEC_NOTHROW
void void
AddQuadraticBezier( AddQuadraticBezier(
CONST D2D1_QUADRATIC_BEZIER_SEGMENT &bezier CONST D2D1_QUADRATIC_BEZIER_SEGMENT &bezier
) )
{ {
AddQuadraticBezier(&bezier); AddQuadraticBezier(&bezier);
} }
COM_DECLSPEC_NOTHROW
void void
AddArc( AddArc(
CONST D2D1_ARC_SEGMENT &arc CONST D2D1_ARC_SEGMENT &arc
) )
{ {
AddArc(&arc); AddArc(&arc);
} }
}; // interface ID2D1GeometrySink }; // interface ID2D1GeometrySink
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
// Interface: // Interface:
// ID2D1TessellationSink // ID2D1TessellationSink
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
interface D2D1_DECLARE_INTERFACE("2cd906c1-12e2-11dc-9fed-001143a055f9") ID2D1Te ssellationSink : public IUnknown interface DX_DECLARE_INTERFACE("2cd906c1-12e2-11dc-9fed-001143a055f9") ID2D1Tess ellationSink : public IUnknown
{ {
STDMETHOD_(void, AddTriangles)( STDMETHOD_(void, AddTriangles)(
__in_ecount(trianglesCount) CONST D2D1_TRIANGLE *triangles, _In_reads_(trianglesCount) CONST D2D1_TRIANGLE *triangles,
UINT trianglesCount UINT32 trianglesCount
) PURE; ) PURE;
STDMETHOD(Close)( STDMETHOD(Close)(
) PURE; ) PURE;
}; // interface ID2D1TessellationSink }; // interface ID2D1TessellationSink
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
// Interface: // Interface:
// ID2D1PathGeometry // ID2D1PathGeometry
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
interface D2D1_DECLARE_INTERFACE("2cd906a5-12e2-11dc-9fed-001143a055f9") ID2D1Pa thGeometry : public ID2D1Geometry interface DX_DECLARE_INTERFACE("2cd906a5-12e2-11dc-9fed-001143a055f9") ID2D1Path Geometry : public ID2D1Geometry
{ {
// //
// Opens a geometry sink that will be used to create this path geometry. // Opens a geometry sink that will be used to create this path geometry.
// //
STDMETHOD(Open)( STDMETHOD(Open)(
__deref_out ID2D1GeometrySink **geometrySink _Outptr_ ID2D1GeometrySink **geometrySink
) PURE; ) PURE;
// //
// Retrieve the contents of this geometry. The caller passes an implementati on of a // Retrieve the contents of this geometry. The caller passes an implementati on of a
// ID2D1GeometrySink interface to receive the data. // ID2D1GeometrySink interface to receive the data.
// //
STDMETHOD(Stream)( STDMETHOD(Stream)(
__in ID2D1GeometrySink *geometrySink _In_ ID2D1GeometrySink *geometrySink
) CONST PURE; ) CONST PURE;
STDMETHOD(GetSegmentCount)( STDMETHOD(GetSegmentCount)(
__out UINT32 *count _Out_ UINT32 *count
) CONST PURE; ) CONST PURE;
STDMETHOD(GetFigureCount)( STDMETHOD(GetFigureCount)(
__out UINT32 *count _Out_ UINT32 *count
) CONST PURE; ) CONST PURE;
}; // interface ID2D1PathGeometry }; // interface ID2D1PathGeometry
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
// Interface: // Interface:
// ID2D1Mesh // ID2D1Mesh
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
interface D2D1_DECLARE_INTERFACE("2cd906c2-12e2-11dc-9fed-001143a055f9") ID2D1Me sh : public ID2D1Resource interface DX_DECLARE_INTERFACE("2cd906c2-12e2-11dc-9fed-001143a055f9") ID2D1Mesh : public ID2D1Resource
{ {
// //
// Opens the mesh for population. // Opens the mesh for population.
// //
STDMETHOD(Open)( STDMETHOD(Open)(
__deref_out ID2D1TessellationSink **tessellationSink _Outptr_ ID2D1TessellationSink **tessellationSink
) PURE; ) PURE;
}; // interface ID2D1Mesh }; // interface ID2D1Mesh
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
// Interface: // Interface:
// ID2D1Layer // ID2D1Layer
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
interface D2D1_DECLARE_INTERFACE("2cd9069b-12e2-11dc-9fed-001143a055f9") ID2D1La yer : public ID2D1Resource interface DX_DECLARE_INTERFACE("2cd9069b-12e2-11dc-9fed-001143a055f9") ID2D1Laye r : public ID2D1Resource
{ {
STDMETHOD_(D2D1_SIZE_F, GetSize)( STDMETHOD_(D2D1_SIZE_F, GetSize)(
) CONST PURE; ) CONST PURE;
}; // interface ID2D1Layer }; // interface ID2D1Layer
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
// Interface: // Interface:
// ID2D1DrawingStateBlock // ID2D1DrawingStateBlock
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
interface D2D1_DECLARE_INTERFACE("28506e39-ebf6-46a1-bb47-fd85565ab957") ID2D1Dr awingStateBlock : public ID2D1Resource interface DX_DECLARE_INTERFACE("28506e39-ebf6-46a1-bb47-fd85565ab957") ID2D1Draw ingStateBlock : public ID2D1Resource
{ {
// //
// Retrieves the state currently contained within this state block resource. // Retrieves the state currently contained within this state block resource.
// //
STDMETHOD_(void, GetDescription)( STDMETHOD_(void, GetDescription)(
__out D2D1_DRAWING_STATE_DESCRIPTION *stateDescription _Out_ D2D1_DRAWING_STATE_DESCRIPTION *stateDescription
) CONST PURE; ) CONST PURE;
// //
// Sets the state description of this state block resource. // Sets the state description of this state block resource.
// //
STDMETHOD_(void, SetDescription)( STDMETHOD_(void, SetDescription)(
__in CONST D2D1_DRAWING_STATE_DESCRIPTION *stateDescription _In_ CONST D2D1_DRAWING_STATE_DESCRIPTION *stateDescription
) PURE; ) PURE;
// //
// Sets the text rendering parameters of this state block resource. // Sets the text rendering parameters of this state block resource.
// //
STDMETHOD_(void, SetTextRenderingParams)( STDMETHOD_(void, SetTextRenderingParams)(
__in_opt IDWriteRenderingParams *textRenderingParams = NULL _In_opt_ IDWriteRenderingParams *textRenderingParams = NULL
) PURE; ) PURE;
// //
// Retrieves the text rendering parameters contained within this state block // Retrieves the text rendering parameters contained within this state block
// resource. If a NULL text rendering parameter was specified, NULL will be // resource. If a NULL text rendering parameter was specified, NULL will be
// returned. // returned.
// //
STDMETHOD_(void, GetTextRenderingParams)( STDMETHOD_(void, GetTextRenderingParams)(
__deref_out_opt IDWriteRenderingParams **textRenderingParams _Outptr_result_maybenull_ IDWriteRenderingParams **textRenderingParams
) CONST PURE; ) CONST PURE;
COM_DECLSPEC_NOTHROW
void void
SetDescription( SetDescription(
CONST D2D1_DRAWING_STATE_DESCRIPTION &stateDescription CONST D2D1_DRAWING_STATE_DESCRIPTION &stateDescription
) )
{ {
SetDescription(&stateDescription); SetDescription(&stateDescription);
} }
}; // interface ID2D1DrawingStateBlock }; // interface ID2D1DrawingStateBlock
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
// Interface: // Interface:
// ID2D1RenderTarget // ID2D1RenderTarget
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
interface D2D1_DECLARE_INTERFACE("2cd90694-12e2-11dc-9fed-001143a055f9") ID2D1Re nderTarget : public ID2D1Resource interface DX_DECLARE_INTERFACE("2cd90694-12e2-11dc-9fed-001143a055f9") ID2D1Rend erTarget : public ID2D1Resource
{ {
// //
// Create a D2D bitmap by copying from memory, or create uninitialized. // Create a D2D bitmap by copying from memory, or create uninitialized.
// //
STDMETHOD(CreateBitmap)( STDMETHOD(CreateBitmap)(
D2D1_SIZE_U size, D2D1_SIZE_U size,
__in_opt CONST void *srcData, _In_opt_ CONST void *srcData,
UINT32 pitch, UINT32 pitch,
__in CONST D2D1_BITMAP_PROPERTIES *bitmapProperties, _In_ CONST D2D1_BITMAP_PROPERTIES *bitmapProperties,
__deref_out ID2D1Bitmap **bitmap _Outptr_ ID2D1Bitmap **bitmap
) PURE; ) PURE;
// //
// Create a D2D bitmap by copying a WIC bitmap. // Create a D2D bitmap by copying a WIC bitmap.
// //
STDMETHOD(CreateBitmapFromWicBitmap)( STDMETHOD(CreateBitmapFromWicBitmap)(
__in IWICBitmapSource *wicBitmapSource, _In_ IWICBitmapSource *wicBitmapSource,
__in_opt CONST D2D1_BITMAP_PROPERTIES *bitmapProperties, _In_opt_ CONST D2D1_BITMAP_PROPERTIES *bitmapProperties,
__deref_out ID2D1Bitmap **bitmap _Outptr_ ID2D1Bitmap **bitmap
) PURE; ) PURE;
// //
// Create a D2D bitmap by sharing bits from another resource. The bitmap mus t be // Create a D2D bitmap by sharing bits from another resource. The bitmap mus t be
// compatible with the render target for the call to succeed. // compatible with the render target for the call to succeed.
// For example, an IWICBitmap can be shared with a software target, or a DXG I // For example, an IWICBitmap can be shared with a software target, or a DXG I
// surface can be shared with a DXGI render target. // surface can be shared with a DXGI render target.
// //
STDMETHOD(CreateSharedBitmap)( STDMETHOD(CreateSharedBitmap)(
__in REFIID riid, _In_ REFIID riid,
__inout void *data, _Inout_ void *data,
__in_opt CONST D2D1_BITMAP_PROPERTIES *bitmapProperties, _In_opt_ CONST D2D1_BITMAP_PROPERTIES *bitmapProperties,
__deref_out ID2D1Bitmap **bitmap _Outptr_ ID2D1Bitmap **bitmap
) PURE; ) PURE;
// //
// Creates a bitmap brush. The bitmap is scaled, rotated, skewed or tiled to fill // Creates a bitmap brush. The bitmap is scaled, rotated, skewed or tiled to fill
// or pen a geometry. // or pen a geometry.
// //
STDMETHOD(CreateBitmapBrush)( STDMETHOD(CreateBitmapBrush)(
__in ID2D1Bitmap *bitmap, _In_opt_ ID2D1Bitmap *bitmap,
__in_opt CONST D2D1_BITMAP_BRUSH_PROPERTIES *bitmapBrushProperties, _In_opt_ CONST D2D1_BITMAP_BRUSH_PROPERTIES *bitmapBrushProperties,
__in_opt CONST D2D1_BRUSH_PROPERTIES *brushProperties, _In_opt_ CONST D2D1_BRUSH_PROPERTIES *brushProperties,
__deref_out ID2D1BitmapBrush **bitmapBrush _Outptr_ ID2D1BitmapBrush **bitmapBrush
) PURE; ) PURE;
STDMETHOD(CreateSolidColorBrush)( STDMETHOD(CreateSolidColorBrush)(
__in CONST D2D1_COLOR_F *color, _In_ CONST D2D1_COLOR_F *color,
__in_opt CONST D2D1_BRUSH_PROPERTIES *brushProperties, _In_opt_ CONST D2D1_BRUSH_PROPERTIES *brushProperties,
__deref_out ID2D1SolidColorBrush **solidColorBrush _Outptr_ ID2D1SolidColorBrush **solidColorBrush
) PURE; ) PURE;
// //
// A gradient stop collection represents a set of stops in an ideal unit len gth. // A gradient stop collection represents a set of stops in an ideal unit len gth.
// This is the source resource for a linear gradient and radial gradient bru sh. // This is the source resource for a linear gradient and radial gradient bru sh.
// //
STDMETHOD(CreateGradientStopCollection)( STDMETHOD(CreateGradientStopCollection)(
__in_ecount(gradientStopsCount) CONST D2D1_GRADIENT_STOP *gradientStops, _In_reads_(gradientStopsCount) CONST D2D1_GRADIENT_STOP *gradientStops,
__range(>=,1) UINT gradientStopsCount, _In_range_(>=,1) UINT32 gradientStopsCount,
// //
// Specifies which space the color interpolation occurs in. // Specifies which space the color interpolation occurs in.
// //
D2D1_GAMMA colorInterpolationGamma, D2D1_GAMMA colorInterpolationGamma,
// //
// Specifies how the gradient will be extended outside of the unit lengt h. // Specifies how the gradient will be extended outside of the unit lengt h.
// //
D2D1_EXTEND_MODE extendMode, D2D1_EXTEND_MODE extendMode,
__deref_out ID2D1GradientStopCollection **gradientStopCollection _Outptr_ ID2D1GradientStopCollection **gradientStopCollection
) PURE; ) PURE;
STDMETHOD(CreateLinearGradientBrush)( STDMETHOD(CreateLinearGradientBrush)(
__in CONST D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES *linearGradientBrushPro _In_ CONST D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES *linearGradientBrushPro
perties, perties,
__in_opt CONST D2D1_BRUSH_PROPERTIES *brushProperties, _In_opt_ CONST D2D1_BRUSH_PROPERTIES *brushProperties,
__in ID2D1GradientStopCollection *gradientStopCollection, _In_ ID2D1GradientStopCollection *gradientStopCollection,
__deref_out ID2D1LinearGradientBrush **linearGradientBrush _Outptr_ ID2D1LinearGradientBrush **linearGradientBrush
) PURE; ) PURE;
STDMETHOD(CreateRadialGradientBrush)( STDMETHOD(CreateRadialGradientBrush)(
__in CONST D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES *radialGradientBrushPro _In_ CONST D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES *radialGradientBrushPro
perties, perties,
__in_opt CONST D2D1_BRUSH_PROPERTIES *brushProperties, _In_opt_ CONST D2D1_BRUSH_PROPERTIES *brushProperties,
__in ID2D1GradientStopCollection *gradientStopCollection, _In_ ID2D1GradientStopCollection *gradientStopCollection,
__deref_out ID2D1RadialGradientBrush **radialGradientBrush _Outptr_ ID2D1RadialGradientBrush **radialGradientBrush
) PURE; ) PURE;
// //
// Creates a bitmap render target whose bitmap can be used as a source for // Creates a bitmap render target whose bitmap can be used as a source for
// rendering in the API. // rendering in the API.
// //
STDMETHOD(CreateCompatibleRenderTarget)( STDMETHOD(CreateCompatibleRenderTarget)(
// //
// The requested size of the target in DIPs. If the pixel size is not sp ecified, // The requested size of the target in DIPs. If the pixel size is not sp ecified,
// the DPI is inherited from the parent target. However, the render targ et will // the DPI is inherited from the parent target. However, the render targ et will
// never contain a fractional number of pixels. // never contain a fractional number of pixels.
// //
__in_opt CONST D2D1_SIZE_F *desiredSize, _In_opt_ CONST D2D1_SIZE_F *desiredSize,
// //
// The requested size of the render target in pixels. If the DIP size is also // The requested size of the render target in pixels. If the DIP size is also
// specified, the DPI is calculated from these two values. If the desire d size is // specified, the DPI is calculated from these two values. If the desire d size is
// not specified, the DPI is inherited from the parent render target. If neither // not specified, the DPI is inherited from the parent render target. If neither
// value is specified, the compatible render target will be the same siz e and have // value is specified, the compatible render target will be the same siz e and have
// the same DPI as the parent target. // the same DPI as the parent target.
// //
__in_opt CONST D2D1_SIZE_U *desiredPixelSize, _In_opt_ CONST D2D1_SIZE_U *desiredPixelSize,
// //
// The desired pixel format. The format must be compatible with the pare nt render // The desired pixel format. The format must be compatible with the pare nt render
// target type. If the format is not specified, it will be inherited fro m the // target type. If the format is not specified, it will be inherited fro m the
// parent render target. // parent render target.
// //
__in_opt CONST D2D1_PIXEL_FORMAT *desiredFormat, _In_opt_ CONST D2D1_PIXEL_FORMAT *desiredFormat,
// //
// Allows the caller to retrieve a GDI compatible render target. // Allows the caller to retrieve a GDI compatible render target.
// //
D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS options, D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS options,
// //
// The returned bitmap render target. // The returned bitmap render target.
// //
__deref_out ID2D1BitmapRenderTarget **bitmapRenderTarget _Outptr_ ID2D1BitmapRenderTarget **bitmapRenderTarget
) PURE; ) PURE;
// //
// Creates a layer resource that can be used on any target and which will re size // Creates a layer resource that can be used on any target and which will re size
// under the covers if necessary. // under the covers if necessary.
// //
STDMETHOD(CreateLayer)( STDMETHOD(CreateLayer)(
// //
// The resolution independent minimum size hint for the layer resource. Specify // The resolution independent minimum size hint for the layer resource. Specify
// this to prevent unwanted reallocation of the layer backing store. The size is in // this to prevent unwanted reallocation of the layer backing store. The size is in
// DIPs, but, it is unaffected by the current world transform. If the si ze is // DIPs, but, it is unaffected by the current world transform. If the si ze is
// unspecified, the returned resource is a placeholder and the backing s tore will // unspecified, the returned resource is a placeholder and the backing s tore will
// be allocated to be the minimum size that can hold the content when th e layer is // be allocated to be the minimum size that can hold the content when th e layer is
// pushed. // pushed.
// //
__in_opt CONST D2D1_SIZE_F *size, _In_opt_ CONST D2D1_SIZE_F *size,
__deref_out ID2D1Layer **layer _Outptr_ ID2D1Layer **layer
) PURE; ) PURE;
// //
// Create a D2D mesh. // Create a D2D mesh.
// //
STDMETHOD(CreateMesh)( STDMETHOD(CreateMesh)(
__deref_out ID2D1Mesh **mesh _Outptr_ ID2D1Mesh **mesh
) PURE; ) PURE;
STDMETHOD_(void, DrawLine)( STDMETHOD_(void, DrawLine)(
D2D1_POINT_2F point0, D2D1_POINT_2F point0,
D2D1_POINT_2F point1, D2D1_POINT_2F point1,
__in ID2D1Brush *brush, _In_ ID2D1Brush *brush,
FLOAT strokeWidth = 1.0f, FLOAT strokeWidth = 1.0f,
__in_opt ID2D1StrokeStyle *strokeStyle = NULL _In_opt_ ID2D1StrokeStyle *strokeStyle = NULL
) PURE; ) PURE;
STDMETHOD_(void, DrawRectangle)( STDMETHOD_(void, DrawRectangle)(
__in CONST D2D1_RECT_F *rect, _In_ CONST D2D1_RECT_F *rect,
__in ID2D1Brush *brush, _In_ ID2D1Brush *brush,
FLOAT strokeWidth = 1.0f, FLOAT strokeWidth = 1.0f,
__in_opt ID2D1StrokeStyle *strokeStyle = NULL _In_opt_ ID2D1StrokeStyle *strokeStyle = NULL
) PURE; ) PURE;
STDMETHOD_(void, FillRectangle)( STDMETHOD_(void, FillRectangle)(
__in CONST D2D1_RECT_F *rect, _In_ CONST D2D1_RECT_F *rect,
__in ID2D1Brush *brush _In_ ID2D1Brush *brush
) PURE; ) PURE;
STDMETHOD_(void, DrawRoundedRectangle)( STDMETHOD_(void, DrawRoundedRectangle)(
__in CONST D2D1_ROUNDED_RECT *roundedRect, _In_ CONST D2D1_ROUNDED_RECT *roundedRect,
__in ID2D1Brush *brush, _In_ ID2D1Brush *brush,
FLOAT strokeWidth = 1.0f, FLOAT strokeWidth = 1.0f,
__in_opt ID2D1StrokeStyle *strokeStyle = NULL _In_opt_ ID2D1StrokeStyle *strokeStyle = NULL
) PURE; ) PURE;
STDMETHOD_(void, FillRoundedRectangle)( STDMETHOD_(void, FillRoundedRectangle)(
__in CONST D2D1_ROUNDED_RECT *roundedRect, _In_ CONST D2D1_ROUNDED_RECT *roundedRect,
__in ID2D1Brush *brush _In_ ID2D1Brush *brush
) PURE; ) PURE;
STDMETHOD_(void, DrawEllipse)( STDMETHOD_(void, DrawEllipse)(
__in CONST D2D1_ELLIPSE *ellipse, _In_ CONST D2D1_ELLIPSE *ellipse,
__in ID2D1Brush *brush, _In_ ID2D1Brush *brush,
FLOAT strokeWidth = 1.0f, FLOAT strokeWidth = 1.0f,
__in_opt ID2D1StrokeStyle *strokeStyle = NULL _In_opt_ ID2D1StrokeStyle *strokeStyle = NULL
) PURE; ) PURE;
STDMETHOD_(void, FillEllipse)( STDMETHOD_(void, FillEllipse)(
__in CONST D2D1_ELLIPSE *ellipse, _In_ CONST D2D1_ELLIPSE *ellipse,
__in ID2D1Brush *brush _In_ ID2D1Brush *brush
) PURE; ) PURE;
STDMETHOD_(void, DrawGeometry)( STDMETHOD_(void, DrawGeometry)(
__in ID2D1Geometry *geometry, _In_ ID2D1Geometry *geometry,
__in ID2D1Brush *brush, _In_ ID2D1Brush *brush,
FLOAT strokeWidth = 1.0f, FLOAT strokeWidth = 1.0f,
__in_opt ID2D1StrokeStyle *strokeStyle = NULL _In_opt_ ID2D1StrokeStyle *strokeStyle = NULL
) PURE; ) PURE;
STDMETHOD_(void, FillGeometry)( STDMETHOD_(void, FillGeometry)(
__in ID2D1Geometry *geometry, _In_ ID2D1Geometry *geometry,
__in ID2D1Brush *brush, _In_ ID2D1Brush *brush,
// //
// An optionally specified opacity brush. Only the alpha channel of the // An optionally specified opacity brush. Only the alpha channel of the
// corresponding brush will be sampled and will be applied to the entire fill of // corresponding brush will be sampled and will be applied to the entire fill of
// the geometry. If this brush is specified, the fill brush must be a bi tmap brush // the geometry. If this brush is specified, the fill brush must be a bi tmap brush
// with an extend mode of D2D1_EXTEND_MODE_CLAMP. // with an extend mode of D2D1_EXTEND_MODE_CLAMP.
// //
__in_opt ID2D1Brush *opacityBrush = NULL _In_opt_ ID2D1Brush *opacityBrush = NULL
) PURE; ) PURE;
// //
// Fill a mesh. Since meshes can only render aliased content, the render tar get // Fill a mesh. Since meshes can only render aliased content, the render tar get
// antialiasing mode must be set to aliased. // antialiasing mode must be set to aliased.
// //
STDMETHOD_(void, FillMesh)( STDMETHOD_(void, FillMesh)(
__in ID2D1Mesh *mesh, _In_ ID2D1Mesh *mesh,
__in ID2D1Brush *brush _In_ ID2D1Brush *brush
) PURE; ) PURE;
// //
// Fill using the opacity channel of the supplied bitmap as a mask. The alph // Fill using the alpha channel of the supplied opacity mask bitmap. The bru
a sh
// channel of the bitmap is used to represent the coverage of the geometry a // opacity will be modulated by the mask. The render target antialiasing mod
t each e must
// pixel, and this is filled appropriately with the brush. The render target // be set to aliased.
// antialiasing mode must be set to aliased.
// //
STDMETHOD_(void, FillOpacityMask)( STDMETHOD_(void, FillOpacityMask)(
__in ID2D1Bitmap *opacityMask, _In_ ID2D1Bitmap *opacityMask,
__in ID2D1Brush *brush, _In_ ID2D1Brush *brush,
D2D1_OPACITY_MASK_CONTENT content, D2D1_OPACITY_MASK_CONTENT content,
__in_opt CONST D2D1_RECT_F *destinationRectangle = NULL, _In_opt_ CONST D2D1_RECT_F *destinationRectangle = NULL,
__in_opt CONST D2D1_RECT_F *sourceRectangle = NULL _In_opt_ CONST D2D1_RECT_F *sourceRectangle = NULL
) PURE; ) PURE;
STDMETHOD_(void, DrawBitmap)( STDMETHOD_(void, DrawBitmap)(
__in ID2D1Bitmap *bitmap, _In_ ID2D1Bitmap *bitmap,
__in_opt CONST D2D1_RECT_F *destinationRectangle = NULL, _In_opt_ CONST D2D1_RECT_F *destinationRectangle = NULL,
FLOAT opacity = 1.0f, FLOAT opacity = 1.0f,
D2D1_BITMAP_INTERPOLATION_MODE interpolationMode = D2D1_BITMAP_INTERPOLA TION_MODE_LINEAR, D2D1_BITMAP_INTERPOLATION_MODE interpolationMode = D2D1_BITMAP_INTERPOLA TION_MODE_LINEAR,
__in_opt CONST D2D1_RECT_F *sourceRectangle = NULL _In_opt_ CONST D2D1_RECT_F *sourceRectangle = NULL
) PURE; ) PURE;
// //
// Draws the text within the given layout rectangle and by default also snap s and // Draws the text within the given layout rectangle and by default also snap s and
// clips it to the content bounds. // clips it to the content bounds.
// //
STDMETHOD_(void, DrawText)( STDMETHOD_(void, DrawText)(
__in_ecount(stringLength) CONST WCHAR *string, _In_reads_(stringLength) CONST WCHAR *string,
UINT stringLength, UINT32 stringLength,
__in IDWriteTextFormat *textFormat, _In_ IDWriteTextFormat *textFormat,
__in CONST D2D1_RECT_F *layoutRect, _In_ CONST D2D1_RECT_F *layoutRect,
__in ID2D1Brush *defaultForegroundBrush, _In_ ID2D1Brush *defaultForegroundBrush,
D2D1_DRAW_TEXT_OPTIONS options = D2D1_DRAW_TEXT_OPTIONS_NONE, D2D1_DRAW_TEXT_OPTIONS options = D2D1_DRAW_TEXT_OPTIONS_NONE,
DWRITE_MEASURING_MODE measuringMode = DWRITE_MEASURING_MODE_NATURAL DWRITE_MEASURING_MODE measuringMode = DWRITE_MEASURING_MODE_NATURAL
) PURE; ) PURE;
// //
// Draw a snapped text layout object. Since the layout is not subsequently c hanged, // Draw a snapped text layout object. Since the layout is not subsequently c hanged,
// this can be more effecient than DrawText when drawing the same layout // this can be more efficient than DrawText when drawing the same layout
// repeatedly. // repeatedly.
// //
STDMETHOD_(void, DrawTextLayout)( STDMETHOD_(void, DrawTextLayout)(
D2D1_POINT_2F origin, D2D1_POINT_2F origin,
__in IDWriteTextLayout *textLayout, _In_ IDWriteTextLayout *textLayout,
__in ID2D1Brush *defaultForegroundBrush, _In_ ID2D1Brush *defaultForegroundBrush,
// //
// The specified text options. NOTE: By default the text is clipped to t he layout // The specified text options. NOTE: By default the text is clipped to t he layout
// bounds. This is derived from the origin and the layout bounds of the // bounds. This is derived from the origin and the layout bounds of the
// corresponding IDWriteTextLayout object. // corresponding IDWriteTextLayout object.
// //
D2D1_DRAW_TEXT_OPTIONS options = D2D1_DRAW_TEXT_OPTIONS_NONE D2D1_DRAW_TEXT_OPTIONS options = D2D1_DRAW_TEXT_OPTIONS_NONE
) PURE; ) PURE;
STDMETHOD_(void, DrawGlyphRun)( STDMETHOD_(void, DrawGlyphRun)(
D2D1_POINT_2F baselineOrigin, D2D1_POINT_2F baselineOrigin,
__in CONST DWRITE_GLYPH_RUN *glyphRun, _In_ CONST DWRITE_GLYPH_RUN *glyphRun,
__in ID2D1Brush *foregroundBrush, _In_ ID2D1Brush *foregroundBrush,
DWRITE_MEASURING_MODE measuringMode = DWRITE_MEASURING_MODE_NATURAL DWRITE_MEASURING_MODE measuringMode = DWRITE_MEASURING_MODE_NATURAL
) PURE; ) PURE;
STDMETHOD_(void, SetTransform)( STDMETHOD_(void, SetTransform)(
__in CONST D2D1_MATRIX_3X2_F *transform _In_ CONST D2D1_MATRIX_3X2_F *transform
) PURE; ) PURE;
STDMETHOD_(void, GetTransform)( STDMETHOD_(void, GetTransform)(
__out D2D1_MATRIX_3X2_F *transform _Out_ D2D1_MATRIX_3X2_F *transform
) CONST PURE; ) CONST PURE;
STDMETHOD_(void, SetAntialiasMode)( STDMETHOD_(void, SetAntialiasMode)(
D2D1_ANTIALIAS_MODE antialiasMode D2D1_ANTIALIAS_MODE antialiasMode
) PURE; ) PURE;
STDMETHOD_(D2D1_ANTIALIAS_MODE, GetAntialiasMode)( STDMETHOD_(D2D1_ANTIALIAS_MODE, GetAntialiasMode)(
) CONST PURE; ) CONST PURE;
STDMETHOD_(void, SetTextAntialiasMode)( STDMETHOD_(void, SetTextAntialiasMode)(
D2D1_TEXT_ANTIALIAS_MODE textAntialiasMode D2D1_TEXT_ANTIALIAS_MODE textAntialiasMode
) PURE; ) PURE;
STDMETHOD_(D2D1_TEXT_ANTIALIAS_MODE, GetTextAntialiasMode)( STDMETHOD_(D2D1_TEXT_ANTIALIAS_MODE, GetTextAntialiasMode)(
) CONST PURE; ) CONST PURE;
STDMETHOD_(void, SetTextRenderingParams)( STDMETHOD_(void, SetTextRenderingParams)(
__in_opt IDWriteRenderingParams *textRenderingParams = NULL _In_opt_ IDWriteRenderingParams *textRenderingParams = NULL
) PURE; ) PURE;
// //
// Retrieve the text render parameters. NOTE: If NULL is specified to // Retrieve the text render parameters. NOTE: If NULL is specified to
// SetTextRenderingParameters, NULL will be returned. // SetTextRenderingParameters, NULL will be returned.
// //
STDMETHOD_(void, GetTextRenderingParams)( STDMETHOD_(void, GetTextRenderingParams)(
__deref_out_opt IDWriteRenderingParams **textRenderingParams _Outptr_result_maybenull_ IDWriteRenderingParams **textRenderingParams
) CONST PURE; ) CONST PURE;
// //
// Set a tag to correspond to the succeeding primitives. If an error occurs // Set a tag to correspond to the succeeding primitives. If an error occurs
// rendering a primtive, the tags can be returned from the Flush or EndDraw call. // rendering a primitive, the tags can be returned from the Flush or EndDraw call.
// //
STDMETHOD_(void, SetTags)( STDMETHOD_(void, SetTags)(
D2D1_TAG tag1, D2D1_TAG tag1,
D2D1_TAG tag2 D2D1_TAG tag2
) PURE; ) PURE;
// //
// Retrieves the currently set tags. This does not retrieve the tags corresp onding // Retrieves the currently set tags. This does not retrieve the tags corresp onding
// to any primitive that is in error. // to any primitive that is in error.
// //
STDMETHOD_(void, GetTags)( STDMETHOD_(void, GetTags)(
__out_opt D2D1_TAG *tag1 = NULL, _Out_opt_ D2D1_TAG *tag1 = NULL,
__out_opt D2D1_TAG *tag2 = NULL _Out_opt_ D2D1_TAG *tag2 = NULL
) CONST PURE; ) CONST PURE;
// //
// Start a layer of drawing calls. The way in which the layer must be resolv ed is // Start a layer of drawing calls. The way in which the layer must be resolv ed is
// specified first as well as the logical resource that stores the layer // specified first as well as the logical resource that stores the layer
// parameters. The supplied layer resource might grow if the specified conte nt // parameters. The supplied layer resource might grow if the specified conte nt
// cannot fit inside it. The layer will grow monitonically on each axis. // cannot fit inside it. The layer will grow monotonically on each axis. If
a NULL
// ID2D1Layer is provided, then a layer resource will be allocated automatic
ally.
// //
STDMETHOD_(void, PushLayer)( STDMETHOD_(void, PushLayer)(
__in CONST D2D1_LAYER_PARAMETERS *layerParameters, _In_ CONST D2D1_LAYER_PARAMETERS *layerParameters,
__in ID2D1Layer *layer _In_opt_ ID2D1Layer *layer
) PURE; ) PURE;
// //
// Ends a layer that was defined with particular layer resources. // Ends a layer that was defined with particular layer resources.
// //
STDMETHOD_(void, PopLayer)( STDMETHOD_(void, PopLayer)(
) PURE; ) PURE;
STDMETHOD(Flush)( STDMETHOD(Flush)(
__out_opt D2D1_TAG *tag1 = NULL, _Out_opt_ D2D1_TAG *tag1 = NULL,
__out_opt D2D1_TAG *tag2 = NULL _Out_opt_ D2D1_TAG *tag2 = NULL
) PURE; ) PURE;
// //
// Gets the current drawing state and saves it into the supplied // Gets the current drawing state and saves it into the supplied
// IDrawingStatckBlock. // IDrawingStatckBlock.
// //
STDMETHOD_(void, SaveDrawingState)( STDMETHOD_(void, SaveDrawingState)(
__inout ID2D1DrawingStateBlock *drawingStateBlock _Inout_ ID2D1DrawingStateBlock *drawingStateBlock
) CONST PURE; ) CONST PURE;
// //
// Copies the state stored in the block interface. // Copies the state stored in the block interface.
// //
STDMETHOD_(void, RestoreDrawingState)( STDMETHOD_(void, RestoreDrawingState)(
__in ID2D1DrawingStateBlock *drawingStateBlock _In_ ID2D1DrawingStateBlock *drawingStateBlock
) PURE; ) PURE;
// //
// Pushes a clip. The clip can be antialiased. The clip must be axis aligned . If // Pushes a clip. The clip can be antialiased. The clip must be axis aligned . If
// the current world transform is not axis preserving, then the bounding box of the // the current world transform is not axis preserving, then the bounding box of the
// transformed clip rect will be used. The clip will remain in effect until a // transformed clip rect will be used. The clip will remain in effect until a
// PopAxisAligned clip call is made. // PopAxisAligned clip call is made.
// //
STDMETHOD_(void, PushAxisAlignedClip)( STDMETHOD_(void, PushAxisAlignedClip)(
__in CONST D2D1_RECT_F *clipRect, _In_ CONST D2D1_RECT_F *clipRect,
D2D1_ANTIALIAS_MODE antialiasMode D2D1_ANTIALIAS_MODE antialiasMode
) PURE; ) PURE;
STDMETHOD_(void, PopAxisAlignedClip)( STDMETHOD_(void, PopAxisAlignedClip)(
) PURE; ) PURE;
STDMETHOD_(void, Clear)( STDMETHOD_(void, Clear)(
__in_opt CONST D2D1_COLOR_F *clearColor = NULL _In_opt_ CONST D2D1_COLOR_F *clearColor = NULL
) PURE; ) PURE;
// //
// Start drawing on this render target. Draw calls can only be issued betwee n a // Start drawing on this render target. Draw calls can only be issued betwee n a
// BeginDraw and EndDraw call. // BeginDraw and EndDraw call.
// //
STDMETHOD_(void, BeginDraw)( STDMETHOD_(void, BeginDraw)(
) PURE; ) PURE;
// //
// Ends drawing on the render target, error results can be retrieved at this time, // Ends drawing on the render target, error results can be retrieved at this time,
// or when calling flush. // or when calling flush.
// //
STDMETHOD(EndDraw)( STDMETHOD(EndDraw)(
__out_opt D2D1_TAG *tag1 = NULL, _Out_opt_ D2D1_TAG *tag1 = NULL,
__out_opt D2D1_TAG *tag2 = NULL _Out_opt_ D2D1_TAG *tag2 = NULL
) PURE; ) PURE;
STDMETHOD_(D2D1_PIXEL_FORMAT, GetPixelFormat)( STDMETHOD_(D2D1_PIXEL_FORMAT, GetPixelFormat)(
) CONST PURE; ) CONST PURE;
// //
// Sets the DPI on the render target. This results in the render target bein g // Sets the DPI on the render target. This results in the render target bein g
// interpretted to a different scale. Neither DPI can be negative. If zero i s // interpreted to a different scale. Neither DPI can be negative. If zero is
// specified for both, the system DPI is chosen. If one is zero and the othe r // specified for both, the system DPI is chosen. If one is zero and the othe r
// unspecified, the DPI is not changed. // unspecified, the DPI is not changed.
// //
STDMETHOD_(void, SetDpi)( STDMETHOD_(void, SetDpi)(
FLOAT dpiX, FLOAT dpiX,
FLOAT dpiY FLOAT dpiY
) PURE; ) PURE;
// //
// Return the current DPI from the target. // Return the current DPI from the target.
// //
STDMETHOD_(void, GetDpi)( STDMETHOD_(void, GetDpi)(
__out FLOAT *dpiX, _Out_ FLOAT *dpiX,
__out FLOAT *dpiY _Out_ FLOAT *dpiY
) CONST PURE; ) CONST PURE;
// //
// Returns the size of the render target in DIPs. // Returns the size of the render target in DIPs.
// //
STDMETHOD_(D2D1_SIZE_F, GetSize)( STDMETHOD_(D2D1_SIZE_F, GetSize)(
) CONST PURE; ) CONST PURE;
// //
// Returns the size of the render target in pixels. // Returns the size of the render target in pixels.
skipping to change at line 2962 skipping to change at line 3006
STDMETHOD_(UINT32, GetMaximumBitmapSize)( STDMETHOD_(UINT32, GetMaximumBitmapSize)(
) CONST PURE; ) CONST PURE;
// //
// Returns true if the given properties are supported by this render target. The // Returns true if the given properties are supported by this render target. The
// DPI is ignored. NOTE: If the render target type is software, then neither // DPI is ignored. NOTE: If the render target type is software, then neither
// D2D1_FEATURE_LEVEL_9 nor D2D1_FEATURE_LEVEL_10 will be considered to be // D2D1_FEATURE_LEVEL_9 nor D2D1_FEATURE_LEVEL_10 will be considered to be
// supported. // supported.
// //
STDMETHOD_(BOOL, IsSupported)( STDMETHOD_(BOOL, IsSupported)(
__in CONST D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties _In_ CONST D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties
) CONST PURE; ) CONST PURE;
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
CreateBitmap( CreateBitmap(
D2D1_SIZE_U size, D2D1_SIZE_U size,
__in_opt CONST void *srcData, _In_opt_ CONST void *srcData,
UINT32 pitch, UINT32 pitch,
CONST D2D1_BITMAP_PROPERTIES &bitmapProperties, CONST D2D1_BITMAP_PROPERTIES &bitmapProperties,
__deref_out ID2D1Bitmap **bitmap _Outptr_ ID2D1Bitmap **bitmap
) )
{ {
return CreateBitmap(size, srcData, pitch, &bitmapProperties, bitmap); return CreateBitmap(size, srcData, pitch, &bitmapProperties, bitmap);
} }
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
CreateBitmap( CreateBitmap(
D2D1_SIZE_U size, D2D1_SIZE_U size,
CONST D2D1_BITMAP_PROPERTIES &bitmapProperties, CONST D2D1_BITMAP_PROPERTIES &bitmapProperties,
__deref_out ID2D1Bitmap **bitmap _Outptr_ ID2D1Bitmap **bitmap
) )
{ {
return CreateBitmap(size, NULL, 0, &bitmapProperties, bitmap); return CreateBitmap(size, NULL, 0, &bitmapProperties, bitmap);
} }
// //
// Create a D2D bitmap by copying a WIC bitmap. // Create a D2D bitmap by copying a WIC bitmap.
// //
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
CreateBitmapFromWicBitmap( CreateBitmapFromWicBitmap(
__in IWICBitmapSource *wicBitmapSource, _In_ IWICBitmapSource *wicBitmapSource,
CONST D2D1_BITMAP_PROPERTIES &bitmapProperties, CONST D2D1_BITMAP_PROPERTIES &bitmapProperties,
__deref_out ID2D1Bitmap **bitmap _Outptr_ ID2D1Bitmap **bitmap
) )
{ {
return CreateBitmapFromWicBitmap(wicBitmapSource, &bitmapProperties, bit map); return CreateBitmapFromWicBitmap(wicBitmapSource, &bitmapProperties, bit map);
} }
// //
// Create a D2D bitmap by copying a WIC bitmap. // Create a D2D bitmap by copying a WIC bitmap.
// //
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
CreateBitmapFromWicBitmap( CreateBitmapFromWicBitmap(
__in IWICBitmapSource *wicBitmapSource, _In_ IWICBitmapSource *wicBitmapSource,
__deref_out ID2D1Bitmap **bitmap _Outptr_ ID2D1Bitmap **bitmap
) )
{ {
return CreateBitmapFromWicBitmap(wicBitmapSource, NULL, bitmap); return CreateBitmapFromWicBitmap(wicBitmapSource, NULL, bitmap);
} }
// //
// Creates a bitmap brush. The bitmap is scaled, rotated, skewed or tiled to fill // Creates a bitmap brush. The bitmap is scaled, rotated, skewed or tiled to fill
// or pen a geometry. // or pen a geometry.
// //
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
CreateBitmapBrush( CreateBitmapBrush(
__in ID2D1Bitmap *bitmap, _In_opt_ ID2D1Bitmap *bitmap,
__deref_out ID2D1BitmapBrush **bitmapBrush _Outptr_ ID2D1BitmapBrush **bitmapBrush
) )
{ {
return CreateBitmapBrush(bitmap, NULL, NULL, bitmapBrush); return CreateBitmapBrush(bitmap, NULL, NULL, bitmapBrush);
} }
// //
// Creates a bitmap brush. The bitmap is scaled, rotated, skewed or tiled to fill // Creates a bitmap brush. The bitmap is scaled, rotated, skewed or tiled to fill
// or pen a geometry. // or pen a geometry.
// //
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
CreateBitmapBrush( CreateBitmapBrush(
__in ID2D1Bitmap *bitmap, _In_opt_ ID2D1Bitmap *bitmap,
CONST D2D1_BITMAP_BRUSH_PROPERTIES &bitmapBrushProperties, CONST D2D1_BITMAP_BRUSH_PROPERTIES &bitmapBrushProperties,
__deref_out ID2D1BitmapBrush **bitmapBrush _Outptr_ ID2D1BitmapBrush **bitmapBrush
) )
{ {
return CreateBitmapBrush(bitmap, &bitmapBrushProperties, NULL, bitmapBru sh); return CreateBitmapBrush(bitmap, &bitmapBrushProperties, NULL, bitmapBru sh);
} }
// //
// Creates a bitmap brush. The bitmap is scaled, rotated, skewed or tiled to fill // Creates a bitmap brush. The bitmap is scaled, rotated, skewed or tiled to fill
// or pen a geometry. // or pen a geometry.
// //
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
CreateBitmapBrush( CreateBitmapBrush(
__in ID2D1Bitmap *bitmap, _In_opt_ ID2D1Bitmap *bitmap,
CONST D2D1_BITMAP_BRUSH_PROPERTIES &bitmapBrushProperties, CONST D2D1_BITMAP_BRUSH_PROPERTIES &bitmapBrushProperties,
CONST D2D1_BRUSH_PROPERTIES &brushProperties, CONST D2D1_BRUSH_PROPERTIES &brushProperties,
__deref_out ID2D1BitmapBrush **bitmapBrush _Outptr_ ID2D1BitmapBrush **bitmapBrush
) )
{ {
return CreateBitmapBrush(bitmap, &bitmapBrushProperties, &brushPropertie s, bitmapBrush); return CreateBitmapBrush(bitmap, &bitmapBrushProperties, &brushPropertie s, bitmapBrush);
} }
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
CreateSolidColorBrush( CreateSolidColorBrush(
CONST D2D1_COLOR_F &color, CONST D2D1_COLOR_F &color,
__deref_out ID2D1SolidColorBrush **solidColorBrush _Outptr_ ID2D1SolidColorBrush **solidColorBrush
) )
{ {
return CreateSolidColorBrush(&color, NULL, solidColorBrush); return CreateSolidColorBrush(&color, NULL, solidColorBrush);
} }
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
CreateSolidColorBrush( CreateSolidColorBrush(
CONST D2D1_COLOR_F &color, CONST D2D1_COLOR_F &color,
CONST D2D1_BRUSH_PROPERTIES &brushProperties, CONST D2D1_BRUSH_PROPERTIES &brushProperties,
__deref_out ID2D1SolidColorBrush **solidColorBrush _Outptr_ ID2D1SolidColorBrush **solidColorBrush
) )
{ {
return CreateSolidColorBrush(&color, &brushProperties, solidColorBrush); return CreateSolidColorBrush(&color, &brushProperties, solidColorBrush);
} }
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
CreateGradientStopCollection( CreateGradientStopCollection(
__in_ecount(gradientStopsCount) CONST D2D1_GRADIENT_STOP *gradientStops, _In_reads_(gradientStopsCount) CONST D2D1_GRADIENT_STOP *gradientStops,
UINT gradientStopsCount, UINT32 gradientStopsCount,
__deref_out ID2D1GradientStopCollection **gradientStopCollection _Outptr_ ID2D1GradientStopCollection **gradientStopCollection
) )
{ {
return CreateGradientStopCollection(gradientStops, gradientStopsCount, D 2D1_GAMMA_2_2, D2D1_EXTEND_MODE_CLAMP, gradientStopCollection); return CreateGradientStopCollection(gradientStops, gradientStopsCount, D 2D1_GAMMA_2_2, D2D1_EXTEND_MODE_CLAMP, gradientStopCollection);
} }
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
CreateLinearGradientBrush( CreateLinearGradientBrush(
CONST D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES &linearGradientBrushProperti es, CONST D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES &linearGradientBrushProperti es,
__in ID2D1GradientStopCollection *gradientStopCollection, _In_ ID2D1GradientStopCollection *gradientStopCollection,
__deref_out ID2D1LinearGradientBrush **linearGradientBrush _Outptr_ ID2D1LinearGradientBrush **linearGradientBrush
) )
{ {
return CreateLinearGradientBrush(&linearGradientBrushProperties, NULL, g radientStopCollection, linearGradientBrush); return CreateLinearGradientBrush(&linearGradientBrushProperties, NULL, g radientStopCollection, linearGradientBrush);
} }
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
CreateLinearGradientBrush( CreateLinearGradientBrush(
CONST D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES &linearGradientBrushProperti es, CONST D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES &linearGradientBrushProperti es,
CONST D2D1_BRUSH_PROPERTIES &brushProperties, CONST D2D1_BRUSH_PROPERTIES &brushProperties,
__in ID2D1GradientStopCollection *gradientStopCollection, _In_ ID2D1GradientStopCollection *gradientStopCollection,
__deref_out ID2D1LinearGradientBrush **linearGradientBrush _Outptr_ ID2D1LinearGradientBrush **linearGradientBrush
) )
{ {
return CreateLinearGradientBrush(&linearGradientBrushProperties, &brushP roperties, gradientStopCollection, linearGradientBrush); return CreateLinearGradientBrush(&linearGradientBrushProperties, &brushP roperties, gradientStopCollection, linearGradientBrush);
} }
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
CreateRadialGradientBrush( CreateRadialGradientBrush(
CONST D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES &radialGradientBrushProperti es, CONST D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES &radialGradientBrushProperti es,
__in ID2D1GradientStopCollection *gradientStopCollection, _In_ ID2D1GradientStopCollection *gradientStopCollection,
__deref_out ID2D1RadialGradientBrush **radialGradientBrush _Outptr_ ID2D1RadialGradientBrush **radialGradientBrush
) )
{ {
return CreateRadialGradientBrush(&radialGradientBrushProperties, NULL, g radientStopCollection, radialGradientBrush); return CreateRadialGradientBrush(&radialGradientBrushProperties, NULL, g radientStopCollection, radialGradientBrush);
} }
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
CreateRadialGradientBrush( CreateRadialGradientBrush(
CONST D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES &radialGradientBrushProperti es, CONST D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES &radialGradientBrushProperti es,
CONST D2D1_BRUSH_PROPERTIES &brushProperties, CONST D2D1_BRUSH_PROPERTIES &brushProperties,
__in ID2D1GradientStopCollection *gradientStopCollection, _In_ ID2D1GradientStopCollection *gradientStopCollection,
__deref_out ID2D1RadialGradientBrush **radialGradientBrush _Outptr_ ID2D1RadialGradientBrush **radialGradientBrush
) )
{ {
return CreateRadialGradientBrush(&radialGradientBrushProperties, &brushP roperties, gradientStopCollection, radialGradientBrush); return CreateRadialGradientBrush(&radialGradientBrushProperties, &brushP roperties, gradientStopCollection, radialGradientBrush);
} }
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
CreateCompatibleRenderTarget( CreateCompatibleRenderTarget(
__deref_out ID2D1BitmapRenderTarget **bitmapRenderTarget _Outptr_ ID2D1BitmapRenderTarget **bitmapRenderTarget
) )
{ {
return CreateCompatibleRenderTarget(NULL, NULL, NULL, D2D1_COMPATIBLE_RE NDER_TARGET_OPTIONS_NONE, bitmapRenderTarget); return CreateCompatibleRenderTarget(NULL, NULL, NULL, D2D1_COMPATIBLE_RE NDER_TARGET_OPTIONS_NONE, bitmapRenderTarget);
} }
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
CreateCompatibleRenderTarget( CreateCompatibleRenderTarget(
D2D1_SIZE_F desiredSize, D2D1_SIZE_F desiredSize,
__deref_out ID2D1BitmapRenderTarget **bitmapRenderTarget _Outptr_ ID2D1BitmapRenderTarget **bitmapRenderTarget
) )
{ {
return CreateCompatibleRenderTarget(&desiredSize, NULL, NULL, D2D1_COMPA TIBLE_RENDER_TARGET_OPTIONS_NONE, bitmapRenderTarget); return CreateCompatibleRenderTarget(&desiredSize, NULL, NULL, D2D1_COMPA TIBLE_RENDER_TARGET_OPTIONS_NONE, bitmapRenderTarget);
} }
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
CreateCompatibleRenderTarget( CreateCompatibleRenderTarget(
D2D1_SIZE_F desiredSize, D2D1_SIZE_F desiredSize,
D2D1_SIZE_U desiredPixelSize, D2D1_SIZE_U desiredPixelSize,
__deref_out ID2D1BitmapRenderTarget **bitmapRenderTarget _Outptr_ ID2D1BitmapRenderTarget **bitmapRenderTarget
) )
{ {
return CreateCompatibleRenderTarget(&desiredSize, &desiredPixelSize, NUL L, D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS_NONE, bitmapRenderTarget); return CreateCompatibleRenderTarget(&desiredSize, &desiredPixelSize, NUL L, D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS_NONE, bitmapRenderTarget);
} }
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
CreateCompatibleRenderTarget( CreateCompatibleRenderTarget(
D2D1_SIZE_F desiredSize, D2D1_SIZE_F desiredSize,
D2D1_SIZE_U desiredPixelSize, D2D1_SIZE_U desiredPixelSize,
D2D1_PIXEL_FORMAT desiredFormat, D2D1_PIXEL_FORMAT desiredFormat,
__deref_out ID2D1BitmapRenderTarget **bitmapRenderTarget _Outptr_ ID2D1BitmapRenderTarget **bitmapRenderTarget
) )
{ {
return CreateCompatibleRenderTarget(&desiredSize, &desiredPixelSize, &de siredFormat, D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS_NONE, bitmapRenderTarget); return CreateCompatibleRenderTarget(&desiredSize, &desiredPixelSize, &de siredFormat, D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS_NONE, bitmapRenderTarget);
} }
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
CreateCompatibleRenderTarget( CreateCompatibleRenderTarget(
D2D1_SIZE_F desiredSize, D2D1_SIZE_F desiredSize,
D2D1_SIZE_U desiredPixelSize, D2D1_SIZE_U desiredPixelSize,
D2D1_PIXEL_FORMAT desiredFormat, D2D1_PIXEL_FORMAT desiredFormat,
D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS options, D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS options,
__deref_out ID2D1BitmapRenderTarget **bitmapRenderTarget _Outptr_ ID2D1BitmapRenderTarget **bitmapRenderTarget
) )
{ {
return CreateCompatibleRenderTarget(&desiredSize, &desiredPixelSize, &de siredFormat, options, bitmapRenderTarget); return CreateCompatibleRenderTarget(&desiredSize, &desiredPixelSize, &de siredFormat, options, bitmapRenderTarget);
} }
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
CreateLayer( CreateLayer(
D2D1_SIZE_F size, D2D1_SIZE_F size,
__deref_out ID2D1Layer **layer _Outptr_ ID2D1Layer **layer
) )
{ {
return CreateLayer(&size, layer); return CreateLayer(&size, layer);
} }
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
CreateLayer( CreateLayer(
__deref_out ID2D1Layer **layer _Outptr_ ID2D1Layer **layer
) )
{ {
return CreateLayer(NULL, layer); return CreateLayer(NULL, layer);
} }
COM_DECLSPEC_NOTHROW
void void
DrawRectangle( DrawRectangle(
CONST D2D1_RECT_F &rect, CONST D2D1_RECT_F &rect,
__in ID2D1Brush *brush, _In_ ID2D1Brush *brush,
FLOAT strokeWidth = 1.0f, FLOAT strokeWidth = 1.0f,
__in_opt ID2D1StrokeStyle *strokeStyle = NULL _In_opt_ ID2D1StrokeStyle *strokeStyle = NULL
) )
{ {
DrawRectangle(&rect, brush, strokeWidth, strokeStyle); DrawRectangle(&rect, brush, strokeWidth, strokeStyle);
} }
COM_DECLSPEC_NOTHROW
void void
FillRectangle( FillRectangle(
CONST D2D1_RECT_F &rect, CONST D2D1_RECT_F &rect,
__in ID2D1Brush *brush _In_ ID2D1Brush *brush
) )
{ {
FillRectangle(&rect, brush); FillRectangle(&rect, brush);
} }
COM_DECLSPEC_NOTHROW
void void
DrawRoundedRectangle( DrawRoundedRectangle(
CONST D2D1_ROUNDED_RECT &roundedRect, CONST D2D1_ROUNDED_RECT &roundedRect,
__in ID2D1Brush *brush, _In_ ID2D1Brush *brush,
FLOAT strokeWidth = 1.0f, FLOAT strokeWidth = 1.0f,
__in_opt ID2D1StrokeStyle *strokeStyle = NULL _In_opt_ ID2D1StrokeStyle *strokeStyle = NULL
) )
{ {
DrawRoundedRectangle(&roundedRect, brush, strokeWidth, strokeStyle); DrawRoundedRectangle(&roundedRect, brush, strokeWidth, strokeStyle);
} }
COM_DECLSPEC_NOTHROW
void void
FillRoundedRectangle( FillRoundedRectangle(
CONST D2D1_ROUNDED_RECT &roundedRect, CONST D2D1_ROUNDED_RECT &roundedRect,
__in ID2D1Brush *brush _In_ ID2D1Brush *brush
) )
{ {
FillRoundedRectangle(&roundedRect, brush); FillRoundedRectangle(&roundedRect, brush);
} }
COM_DECLSPEC_NOTHROW
void void
DrawEllipse( DrawEllipse(
CONST D2D1_ELLIPSE &ellipse, CONST D2D1_ELLIPSE &ellipse,
__in ID2D1Brush *brush, _In_ ID2D1Brush *brush,
FLOAT strokeWidth = 1.0f, FLOAT strokeWidth = 1.0f,
__in_opt ID2D1StrokeStyle *strokeStyle = NULL _In_opt_ ID2D1StrokeStyle *strokeStyle = NULL
) )
{ {
DrawEllipse(&ellipse, brush, strokeWidth, strokeStyle); DrawEllipse(&ellipse, brush, strokeWidth, strokeStyle);
} }
COM_DECLSPEC_NOTHROW
void void
FillEllipse( FillEllipse(
CONST D2D1_ELLIPSE &ellipse, CONST D2D1_ELLIPSE &ellipse,
__in ID2D1Brush *brush _In_ ID2D1Brush *brush
) )
{ {
FillEllipse(&ellipse, brush); FillEllipse(&ellipse, brush);
} }
COM_DECLSPEC_NOTHROW
void void
FillOpacityMask( FillOpacityMask(
__in ID2D1Bitmap *opacityMask, _In_ ID2D1Bitmap *opacityMask,
__in ID2D1Brush *brush, _In_ ID2D1Brush *brush,
D2D1_OPACITY_MASK_CONTENT content, D2D1_OPACITY_MASK_CONTENT content,
CONST D2D1_RECT_F &destinationRectangle, CONST D2D1_RECT_F &destinationRectangle,
CONST D2D1_RECT_F &sourceRectangle CONST D2D1_RECT_F &sourceRectangle
) )
{ {
FillOpacityMask(opacityMask, brush, content, &destinationRectangle, &sou rceRectangle); FillOpacityMask(opacityMask, brush, content, &destinationRectangle, &sou rceRectangle);
} }
COM_DECLSPEC_NOTHROW
void void
DrawBitmap( DrawBitmap(
__in ID2D1Bitmap *bitmap, _In_ ID2D1Bitmap *bitmap,
CONST D2D1_RECT_F &destinationRectangle, CONST D2D1_RECT_F &destinationRectangle,
FLOAT opacity = 1.0f, FLOAT opacity = 1.0f,
D2D1_BITMAP_INTERPOLATION_MODE interpolationMode = D2D1_BITMAP_INTERPOLA TION_MODE_LINEAR, D2D1_BITMAP_INTERPOLATION_MODE interpolationMode = D2D1_BITMAP_INTERPOLA TION_MODE_LINEAR,
__in_opt CONST D2D1_RECT_F *sourceRectangle = NULL _In_opt_ CONST D2D1_RECT_F *sourceRectangle = NULL
) )
{ {
DrawBitmap(bitmap, &destinationRectangle, opacity, interpolationMode, so urceRectangle); DrawBitmap(bitmap, &destinationRectangle, opacity, interpolationMode, so urceRectangle);
} }
COM_DECLSPEC_NOTHROW
void void
DrawBitmap( DrawBitmap(
__in ID2D1Bitmap *bitmap, _In_ ID2D1Bitmap *bitmap,
CONST D2D1_RECT_F &destinationRectangle, CONST D2D1_RECT_F &destinationRectangle,
FLOAT opacity, FLOAT opacity,
D2D1_BITMAP_INTERPOLATION_MODE interpolationMode, D2D1_BITMAP_INTERPOLATION_MODE interpolationMode,
CONST D2D1_RECT_F &sourceRectangle CONST D2D1_RECT_F &sourceRectangle
) )
{ {
DrawBitmap(bitmap, &destinationRectangle, opacity, interpolationMode, &s ourceRectangle); DrawBitmap(bitmap, &destinationRectangle, opacity, interpolationMode, &s ourceRectangle);
} }
COM_DECLSPEC_NOTHROW
void void
SetTransform( SetTransform(
CONST D2D1_MATRIX_3X2_F &transform CONST D2D1_MATRIX_3X2_F &transform
) )
{ {
SetTransform(&transform); SetTransform(&transform);
} }
COM_DECLSPEC_NOTHROW
void void
PushLayer( PushLayer(
CONST D2D1_LAYER_PARAMETERS &layerParameters, CONST D2D1_LAYER_PARAMETERS &layerParameters,
__in ID2D1Layer *layer _In_opt_ ID2D1Layer *layer
) )
{ {
PushLayer(&layerParameters, layer); PushLayer(&layerParameters, layer);
} }
COM_DECLSPEC_NOTHROW
void void
PushAxisAlignedClip( PushAxisAlignedClip(
CONST D2D1_RECT_F &clipRect, CONST D2D1_RECT_F &clipRect,
D2D1_ANTIALIAS_MODE antialiasMode D2D1_ANTIALIAS_MODE antialiasMode
) )
{ {
return PushAxisAlignedClip(&clipRect, antialiasMode); return PushAxisAlignedClip(&clipRect, antialiasMode);
} }
COM_DECLSPEC_NOTHROW
void void
Clear( Clear(
CONST D2D1_COLOR_F &clearColor CONST D2D1_COLOR_F &clearColor
) )
{ {
return Clear(&clearColor); return Clear(&clearColor);
} }
// //
// Draws the text within the given layout rectangle and by default also snap s and // Draws the text within the given layout rectangle and by default also snap s and
// clips it. // clips it.
// //
COM_DECLSPEC_NOTHROW
void void
DrawText( DrawText(
__in_ecount(stringLength) CONST WCHAR *string, _In_reads_(stringLength) CONST WCHAR *string,
UINT stringLength, UINT32 stringLength,
__in IDWriteTextFormat *textFormat, _In_ IDWriteTextFormat *textFormat,
CONST D2D1_RECT_F &layoutRect, CONST D2D1_RECT_F &layoutRect,
__in ID2D1Brush *defaultForegroundBrush, _In_ ID2D1Brush *defaultForegroundBrush,
D2D1_DRAW_TEXT_OPTIONS options = D2D1_DRAW_TEXT_OPTIONS_NONE, D2D1_DRAW_TEXT_OPTIONS options = D2D1_DRAW_TEXT_OPTIONS_NONE,
DWRITE_MEASURING_MODE measuringMode = DWRITE_MEASURING_MODE_NATURAL DWRITE_MEASURING_MODE measuringMode = DWRITE_MEASURING_MODE_NATURAL
) )
{ {
return DrawText(string, stringLength, textFormat, &layoutRect, defaultFo regroundBrush, options, measuringMode); return DrawText(string, stringLength, textFormat, &layoutRect, defaultFo regroundBrush, options, measuringMode);
} }
COM_DECLSPEC_NOTHROW
BOOL BOOL
IsSupported( IsSupported(
CONST D2D1_RENDER_TARGET_PROPERTIES &renderTargetProperties CONST D2D1_RENDER_TARGET_PROPERTIES &renderTargetProperties
) CONST ) CONST
{ {
return IsSupported(&renderTargetProperties); return IsSupported(&renderTargetProperties);
} }
}; // interface ID2D1RenderTarget }; // interface ID2D1RenderTarget
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
// Interface: // Interface:
// ID2D1BitmapRenderTarget // ID2D1BitmapRenderTarget
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
interface D2D1_DECLARE_INTERFACE("2cd90695-12e2-11dc-9fed-001143a055f9") ID2D1Bi tmapRenderTarget : public ID2D1RenderTarget interface DX_DECLARE_INTERFACE("2cd90695-12e2-11dc-9fed-001143a055f9") ID2D1Bitm apRenderTarget : public ID2D1RenderTarget
{ {
STDMETHOD(GetBitmap)( STDMETHOD(GetBitmap)(
__deref_out ID2D1Bitmap **bitmap _Outptr_ ID2D1Bitmap **bitmap
) PURE; ) PURE;
}; // interface ID2D1BitmapRenderTarget }; // interface ID2D1BitmapRenderTarget
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
// Interface: // Interface:
// ID2D1HwndRenderTarget // ID2D1HwndRenderTarget
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
interface D2D1_DECLARE_INTERFACE("2cd90698-12e2-11dc-9fed-001143a055f9") ID2D1Hw ndRenderTarget : public ID2D1RenderTarget interface DX_DECLARE_INTERFACE("2cd90698-12e2-11dc-9fed-001143a055f9") ID2D1Hwnd RenderTarget : public ID2D1RenderTarget
{ {
STDMETHOD_(D2D1_WINDOW_STATE, CheckWindowState)( STDMETHOD_(D2D1_WINDOW_STATE, CheckWindowState)(
) PURE; ) PURE;
// //
// Resize the buffer underlying the render target. This operation might fail if // Resize the buffer underlying the render target. This operation might fail if
// there is insufficent video memory or system memory, or if the render targ et is // there is insufficient video memory or system memory, or if the render tar get is
// resized beyond the maximum bitmap size. If the method fails, the render t arget // resized beyond the maximum bitmap size. If the method fails, the render t arget
// will be placed in a zombie state and D2DERR_RECREATE_TARGET will be retur ned // will be placed in a zombie state and D2DERR_RECREATE_TARGET will be retur ned
// from it when EndDraw is called. In addition an appropriate failure result will // from it when EndDraw is called. In addition an appropriate failure result will
// be returned from Resize. // be returned from Resize.
// //
STDMETHOD(Resize)( STDMETHOD(Resize)(
__in CONST D2D1_SIZE_U *pixelSize _In_ CONST D2D1_SIZE_U *pixelSize
) PURE; ) PURE;
STDMETHOD_(HWND, GetHwnd)( STDMETHOD_(HWND, GetHwnd)(
) CONST PURE; ) CONST PURE;
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
Resize( Resize(
CONST D2D1_SIZE_U &pixelSize CONST D2D1_SIZE_U &pixelSize
) )
{ {
return Resize(&pixelSize); return Resize(&pixelSize);
} }
}; // interface ID2D1HwndRenderTarget }; // interface ID2D1HwndRenderTarget
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
// Interface: // Interface:
// ID2D1GdiInteropRenderTarget // ID2D1GdiInteropRenderTarget
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
interface D2D1_DECLARE_INTERFACE("e0db51c3-6f77-4bae-b3d5-e47509b35838") ID2D1Gd iInteropRenderTarget : public IUnknown interface DX_DECLARE_INTERFACE("e0db51c3-6f77-4bae-b3d5-e47509b35838") ID2D1GdiI nteropRenderTarget : public IUnknown
{ {
STDMETHOD(GetDC)( STDMETHOD(GetDC)(
D2D1_DC_INITIALIZE_MODE mode, D2D1_DC_INITIALIZE_MODE mode,
__out HDC *hdc _Out_ HDC *hdc
) PURE; ) PURE;
STDMETHOD(ReleaseDC)( STDMETHOD(ReleaseDC)(
__in_opt CONST RECT *update _In_opt_ CONST RECT *update
) PURE; ) PURE;
}; // interface ID2D1GdiInteropRenderTarget }; // interface ID2D1GdiInteropRenderTarget
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
// Interface: // Interface:
// ID2D1DCRenderTarget // ID2D1DCRenderTarget
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
interface D2D1_DECLARE_INTERFACE("1c51bc64-de61-46fd-9899-63a5d8f03950") ID2D1DC RenderTarget : public ID2D1RenderTarget interface DX_DECLARE_INTERFACE("1c51bc64-de61-46fd-9899-63a5d8f03950") ID2D1DCRe nderTarget : public ID2D1RenderTarget
{ {
STDMETHOD(BindDC)( STDMETHOD(BindDC)(
__in CONST HDC hDC, _In_ CONST HDC hDC,
__in CONST RECT *pSubRect _In_ CONST RECT *pSubRect
) PURE; ) PURE;
}; // interface ID2D1DCRenderTarget }; // interface ID2D1DCRenderTarget
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
// Interface: // Interface:
// ID2D1Factory // ID2D1Factory
// //
// Synopsis: // Synopsis:
// The root factory interface for all of D2D's objects. // The root factory interface for all of D2D's objects.
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
interface D2D1_DECLARE_INTERFACE("06152247-6f50-465a-9245-118bfd3b6007") ID2D1Fa ctory : public IUnknown interface DX_DECLARE_INTERFACE("06152247-6f50-465a-9245-118bfd3b6007") ID2D1Fact ory : public IUnknown
{ {
// //
// Cause the factory to refresh any system metrics that it might have been s napped // Cause the factory to refresh any system metrics that it might have been s napped
// on factory creation. // on factory creation.
// //
STDMETHOD(ReloadSystemMetrics)( STDMETHOD(ReloadSystemMetrics)(
) PURE; ) PURE;
// //
// Retrieves the current desktop DPI. To refresh this, call ReloadSystemMetr ics. // Retrieves the current desktop DPI. To refresh this, call ReloadSystemMetr ics.
// //
STDMETHOD_(void, GetDesktopDpi)( STDMETHOD_(void, GetDesktopDpi)(
__out FLOAT *dpiX, _Out_ FLOAT *dpiX,
__out FLOAT *dpiY _Out_ FLOAT *dpiY
) PURE; ) PURE;
STDMETHOD(CreateRectangleGeometry)( STDMETHOD(CreateRectangleGeometry)(
__in CONST D2D1_RECT_F *rectangle, _In_ CONST D2D1_RECT_F *rectangle,
__deref_out ID2D1RectangleGeometry **rectangleGeometry _Outptr_ ID2D1RectangleGeometry **rectangleGeometry
) PURE; ) PURE;
STDMETHOD(CreateRoundedRectangleGeometry)( STDMETHOD(CreateRoundedRectangleGeometry)(
__in CONST D2D1_ROUNDED_RECT *roundedRectangle, _In_ CONST D2D1_ROUNDED_RECT *roundedRectangle,
__deref_out ID2D1RoundedRectangleGeometry **roundedRectangleGeometry _Outptr_ ID2D1RoundedRectangleGeometry **roundedRectangleGeometry
) PURE; ) PURE;
STDMETHOD(CreateEllipseGeometry)( STDMETHOD(CreateEllipseGeometry)(
__in CONST D2D1_ELLIPSE *ellipse, _In_ CONST D2D1_ELLIPSE *ellipse,
__deref_out ID2D1EllipseGeometry **ellipseGeometry _Outptr_ ID2D1EllipseGeometry **ellipseGeometry
) PURE; ) PURE;
// //
// Create a geometry which holds other geometries. // Create a geometry which holds other geometries.
// //
STDMETHOD(CreateGeometryGroup)( STDMETHOD(CreateGeometryGroup)(
D2D1_FILL_MODE fillMode, D2D1_FILL_MODE fillMode,
__in_ecount(geometriesCount) ID2D1Geometry **geometries, _In_reads_(geometriesCount) ID2D1Geometry **geometries,
UINT geometriesCount, UINT32 geometriesCount,
__deref_out ID2D1GeometryGroup **geometryGroup _Outptr_ ID2D1GeometryGroup **geometryGroup
) PURE; ) PURE;
STDMETHOD(CreateTransformedGeometry)( STDMETHOD(CreateTransformedGeometry)(
__in ID2D1Geometry *sourceGeometry, _In_ ID2D1Geometry *sourceGeometry,
__in CONST D2D1_MATRIX_3X2_F *transform, _In_ CONST D2D1_MATRIX_3X2_F *transform,
__deref_out ID2D1TransformedGeometry **transformedGeometry _Outptr_ ID2D1TransformedGeometry **transformedGeometry
) PURE; ) PURE;
// //
// Returns an initially empty path geometry interface. A geometry sink is cr eated // Returns an initially empty path geometry interface. A geometry sink is cr eated
// off the interface to populate it. // off the interface to populate it.
// //
STDMETHOD(CreatePathGeometry)( STDMETHOD(CreatePathGeometry)(
__deref_out ID2D1PathGeometry **pathGeometry _Outptr_ ID2D1PathGeometry **pathGeometry
) PURE; ) PURE;
// //
// Allows a non-default stroke style to be specified for a given geometry at draw // Allows a non-default stroke style to be specified for a given geometry at draw
// time. // time.
// //
STDMETHOD(CreateStrokeStyle)( STDMETHOD(CreateStrokeStyle)(
__in CONST D2D1_STROKE_STYLE_PROPERTIES *strokeStyleProperties, _In_ CONST D2D1_STROKE_STYLE_PROPERTIES *strokeStyleProperties,
__in_ecount_opt(dashesCount) CONST FLOAT *dashes, _In_reads_opt_(dashesCount) CONST FLOAT *dashes,
UINT dashesCount, UINT32 dashesCount,
__deref_out ID2D1StrokeStyle **strokeStyle _Outptr_ ID2D1StrokeStyle **strokeStyle
) PURE; ) PURE;
// //
// Creates a new drawing state block, this can be used in subsequent // Creates a new drawing state block, this can be used in subsequent
// SaveDrawingState and RestoreDrawingState operations on the render target. // SaveDrawingState and RestoreDrawingState operations on the render target.
// //
STDMETHOD(CreateDrawingStateBlock)( STDMETHOD(CreateDrawingStateBlock)(
__in_opt CONST D2D1_DRAWING_STATE_DESCRIPTION *drawingStateDescription, _In_opt_ CONST D2D1_DRAWING_STATE_DESCRIPTION *drawingStateDescription,
__in_opt IDWriteRenderingParams *textRenderingParams, _In_opt_ IDWriteRenderingParams *textRenderingParams,
__deref_out ID2D1DrawingStateBlock **drawingStateBlock _Outptr_ ID2D1DrawingStateBlock **drawingStateBlock
) PURE; ) PURE;
// //
// Creates a render target which is a source of bitmaps. // Creates a render target which is a source of bitmaps.
// //
STDMETHOD(CreateWicBitmapRenderTarget)( STDMETHOD(CreateWicBitmapRenderTarget)(
__in IWICBitmap *target, _In_ IWICBitmap *target,
__in CONST D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties, _In_ CONST D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties,
__deref_out ID2D1RenderTarget **renderTarget _Outptr_ ID2D1RenderTarget **renderTarget
) PURE; ) PURE;
// //
// Creates a render target that appears on the display. // Creates a render target that appears on the display.
// //
STDMETHOD(CreateHwndRenderTarget)( STDMETHOD(CreateHwndRenderTarget)(
__in CONST D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties, _In_ CONST D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties,
__in CONST D2D1_HWND_RENDER_TARGET_PROPERTIES *hwndRenderTargetPropertie _In_ CONST D2D1_HWND_RENDER_TARGET_PROPERTIES *hwndRenderTargetPropertie
s, s,
__deref_out ID2D1HwndRenderTarget **hwndRenderTarget _Outptr_ ID2D1HwndRenderTarget **hwndRenderTarget
) PURE; ) PURE;
// //
// Creates a render target that draws to a DXGI Surface. The device that own s the // Creates a render target that draws to a DXGI Surface. The device that own s the
// surface is used for rendering. // surface is used for rendering.
// //
STDMETHOD(CreateDxgiSurfaceRenderTarget)( STDMETHOD(CreateDxgiSurfaceRenderTarget)(
__in IDXGISurface *dxgiSurface, _In_ IDXGISurface *dxgiSurface,
__in CONST D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties, _In_ CONST D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties,
__deref_out ID2D1RenderTarget **renderTarget _Outptr_ ID2D1RenderTarget **renderTarget
) PURE; ) PURE;
// //
// Creates a render target that draws to a GDI device context. // Creates a render target that draws to a GDI device context.
// //
STDMETHOD(CreateDCRenderTarget)( STDMETHOD(CreateDCRenderTarget)(
__in CONST D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties, _In_ CONST D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties,
__deref_out ID2D1DCRenderTarget **dcRenderTarget _Outptr_ ID2D1DCRenderTarget **dcRenderTarget
) PURE; ) PURE;
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
CreateRectangleGeometry( CreateRectangleGeometry(
CONST D2D1_RECT_F &rectangle, CONST D2D1_RECT_F &rectangle,
__deref_out ID2D1RectangleGeometry **rectangleGeometry _Outptr_ ID2D1RectangleGeometry **rectangleGeometry
) )
{ {
return CreateRectangleGeometry(&rectangle, rectangleGeometry); return CreateRectangleGeometry(&rectangle, rectangleGeometry);
} }
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
CreateRoundedRectangleGeometry( CreateRoundedRectangleGeometry(
CONST D2D1_ROUNDED_RECT &roundedRectangle, CONST D2D1_ROUNDED_RECT &roundedRectangle,
__deref_out ID2D1RoundedRectangleGeometry **roundedRectangleGeometry _Outptr_ ID2D1RoundedRectangleGeometry **roundedRectangleGeometry
) )
{ {
return CreateRoundedRectangleGeometry(&roundedRectangle, roundedRectangl eGeometry); return CreateRoundedRectangleGeometry(&roundedRectangle, roundedRectangl eGeometry);
} }
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
CreateEllipseGeometry( CreateEllipseGeometry(
CONST D2D1_ELLIPSE &ellipse, CONST D2D1_ELLIPSE &ellipse,
__deref_out ID2D1EllipseGeometry **ellipseGeometry _Outptr_ ID2D1EllipseGeometry **ellipseGeometry
) )
{ {
return CreateEllipseGeometry(&ellipse, ellipseGeometry); return CreateEllipseGeometry(&ellipse, ellipseGeometry);
} }
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
CreateTransformedGeometry( CreateTransformedGeometry(
__in ID2D1Geometry *sourceGeometry, _In_ ID2D1Geometry *sourceGeometry,
CONST D2D1_MATRIX_3X2_F &transform, CONST D2D1_MATRIX_3X2_F &transform,
__deref_out ID2D1TransformedGeometry **transformedGeometry _Outptr_ ID2D1TransformedGeometry **transformedGeometry
) )
{ {
return CreateTransformedGeometry(sourceGeometry, &transform, transformed Geometry); return CreateTransformedGeometry(sourceGeometry, &transform, transformed Geometry);
} }
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
CreateStrokeStyle( CreateStrokeStyle(
CONST D2D1_STROKE_STYLE_PROPERTIES &strokeStyleProperties, CONST D2D1_STROKE_STYLE_PROPERTIES &strokeStyleProperties,
__in_ecount(dashesCount) CONST FLOAT *dashes, _In_reads_opt_(dashesCount) CONST FLOAT *dashes,
UINT dashesCount, UINT32 dashesCount,
__deref_out ID2D1StrokeStyle **strokeStyle _Outptr_ ID2D1StrokeStyle **strokeStyle
) )
{ {
return CreateStrokeStyle(&strokeStyleProperties, dashes, dashesCount, st rokeStyle); return CreateStrokeStyle(&strokeStyleProperties, dashes, dashesCount, st rokeStyle);
} }
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
CreateDrawingStateBlock( CreateDrawingStateBlock(
CONST D2D1_DRAWING_STATE_DESCRIPTION &drawingStateDescription, CONST D2D1_DRAWING_STATE_DESCRIPTION &drawingStateDescription,
__deref_out ID2D1DrawingStateBlock **drawingStateBlock _Outptr_ ID2D1DrawingStateBlock **drawingStateBlock
) )
{ {
return CreateDrawingStateBlock(&drawingStateDescription, NULL, drawingSt ateBlock); return CreateDrawingStateBlock(&drawingStateDescription, NULL, drawingSt ateBlock);
} }
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
CreateDrawingStateBlock( CreateDrawingStateBlock(
__deref_out ID2D1DrawingStateBlock **drawingStateBlock _Outptr_ ID2D1DrawingStateBlock **drawingStateBlock
) )
{ {
return CreateDrawingStateBlock(NULL, NULL, drawingStateBlock); return CreateDrawingStateBlock(NULL, NULL, drawingStateBlock);
} }
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
CreateWicBitmapRenderTarget( CreateWicBitmapRenderTarget(
__in IWICBitmap *target, _In_ IWICBitmap *target,
CONST D2D1_RENDER_TARGET_PROPERTIES &renderTargetProperties, CONST D2D1_RENDER_TARGET_PROPERTIES &renderTargetProperties,
__deref_out ID2D1RenderTarget **renderTarget _Outptr_ ID2D1RenderTarget **renderTarget
) )
{ {
return CreateWicBitmapRenderTarget(target, &renderTargetProperties, rend erTarget); return CreateWicBitmapRenderTarget(target, &renderTargetProperties, rend erTarget);
} }
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
CreateHwndRenderTarget( CreateHwndRenderTarget(
CONST D2D1_RENDER_TARGET_PROPERTIES &renderTargetProperties, CONST D2D1_RENDER_TARGET_PROPERTIES &renderTargetProperties,
CONST D2D1_HWND_RENDER_TARGET_PROPERTIES &hwndRenderTargetProperties, CONST D2D1_HWND_RENDER_TARGET_PROPERTIES &hwndRenderTargetProperties,
__deref_out ID2D1HwndRenderTarget **hwndRenderTarget _Outptr_ ID2D1HwndRenderTarget **hwndRenderTarget
) )
{ {
return CreateHwndRenderTarget(&renderTargetProperties, &hwndRenderTarget Properties, hwndRenderTarget); return CreateHwndRenderTarget(&renderTargetProperties, &hwndRenderTarget Properties, hwndRenderTarget);
} }
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
CreateDxgiSurfaceRenderTarget( CreateDxgiSurfaceRenderTarget(
__in IDXGISurface *dxgiSurface, _In_ IDXGISurface *dxgiSurface,
CONST D2D1_RENDER_TARGET_PROPERTIES &renderTargetProperties, CONST D2D1_RENDER_TARGET_PROPERTIES &renderTargetProperties,
__deref_out ID2D1RenderTarget **renderTarget _Outptr_ ID2D1RenderTarget **renderTarget
) )
{ {
return CreateDxgiSurfaceRenderTarget(dxgiSurface, &renderTargetPropertie s, renderTarget); return CreateDxgiSurfaceRenderTarget(dxgiSurface, &renderTargetPropertie s, renderTarget);
} }
}; // interface ID2D1Factory }; // interface ID2D1Factory
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
#endif #endif
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
EXTERN_C CONST IID IID_ID2D1Resource; EXTERN_C CONST IID IID_ID2D1Resource;
EXTERN_C CONST IID IID_ID2D1Image;
EXTERN_C CONST IID IID_ID2D1Bitmap; EXTERN_C CONST IID IID_ID2D1Bitmap;
EXTERN_C CONST IID IID_ID2D1GradientStopCollection; EXTERN_C CONST IID IID_ID2D1GradientStopCollection;
EXTERN_C CONST IID IID_ID2D1Brush; EXTERN_C CONST IID IID_ID2D1Brush;
EXTERN_C CONST IID IID_ID2D1BitmapBrush; EXTERN_C CONST IID IID_ID2D1BitmapBrush;
EXTERN_C CONST IID IID_ID2D1SolidColorBrush; EXTERN_C CONST IID IID_ID2D1SolidColorBrush;
EXTERN_C CONST IID IID_ID2D1LinearGradientBrush; EXTERN_C CONST IID IID_ID2D1LinearGradientBrush;
EXTERN_C CONST IID IID_ID2D1RadialGradientBrush; EXTERN_C CONST IID IID_ID2D1RadialGradientBrush;
EXTERN_C CONST IID IID_ID2D1StrokeStyle; EXTERN_C CONST IID IID_ID2D1StrokeStyle;
EXTERN_C CONST IID IID_ID2D1Geometry; EXTERN_C CONST IID IID_ID2D1Geometry;
EXTERN_C CONST IID IID_ID2D1RectangleGeometry; EXTERN_C CONST IID IID_ID2D1RectangleGeometry;
skipping to change at line 3679 skipping to change at line 3789
EXTERN_C CONST IID IID_ID2D1SimplifiedGeometrySink; EXTERN_C CONST IID IID_ID2D1SimplifiedGeometrySink;
EXTERN_C CONST IID IID_ID2D1GeometrySink; EXTERN_C CONST IID IID_ID2D1GeometrySink;
EXTERN_C CONST IID IID_ID2D1TessellationSink; EXTERN_C CONST IID IID_ID2D1TessellationSink;
EXTERN_C CONST IID IID_ID2D1PathGeometry; EXTERN_C CONST IID IID_ID2D1PathGeometry;
EXTERN_C CONST IID IID_ID2D1Mesh; EXTERN_C CONST IID IID_ID2D1Mesh;
EXTERN_C CONST IID IID_ID2D1Layer; EXTERN_C CONST IID IID_ID2D1Layer;
EXTERN_C CONST IID IID_ID2D1DrawingStateBlock; EXTERN_C CONST IID IID_ID2D1DrawingStateBlock;
EXTERN_C CONST IID IID_ID2D1RenderTarget; EXTERN_C CONST IID IID_ID2D1RenderTarget;
EXTERN_C CONST IID IID_ID2D1BitmapRenderTarget; EXTERN_C CONST IID IID_ID2D1BitmapRenderTarget;
EXTERN_C CONST IID IID_ID2D1HwndRenderTarget; EXTERN_C CONST IID IID_ID2D1HwndRenderTarget;
EXTERN_C CONST IID IID_ID2D1GdiInteropRenderTarget;
EXTERN_C CONST IID IID_ID2D1DCRenderTarget; EXTERN_C CONST IID IID_ID2D1DCRenderTarget;
EXTERN_C CONST IID IID_ID2D1Factory; EXTERN_C CONST IID IID_ID2D1Factory;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
EXTERN_C CONST IID IID_ID2D1GdiInteropRenderTarget;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#ifdef D2D_USE_C_DEFINITIONS #ifdef D2D_USE_C_DEFINITIONS
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
typedef interface ID2D1Resource ID2D1Resource; typedef interface ID2D1Resource ID2D1Resource;
typedef struct ID2D1ResourceVtbl typedef struct ID2D1ResourceVtbl
{ {
IUnknownVtbl Base; IUnknownVtbl Base;
STDMETHOD_(void, GetFactory)( STDMETHOD_(void, GetFactory)(
ID2D1Resource *This, ID2D1Resource *This,
__deref_out ID2D1Factory **factory _Outptr_ ID2D1Factory **factory
) PURE; ) PURE;
} ID2D1ResourceVtbl; } ID2D1ResourceVtbl;
interface ID2D1Resource interface ID2D1Resource
{ {
CONST struct ID2D1ResourceVtbl *lpVtbl; CONST struct ID2D1ResourceVtbl *lpVtbl;
}; };
#define ID2D1Resource_QueryInterface(This, riid, ppv) \ #define ID2D1Resource_QueryInterface(This, riid, ppv) \
((This)->lpVtbl->Base.QueryInterface((IUnknown *)This, riid, ppv)) ((This)->lpVtbl->Base.QueryInterface((IUnknown *)This, riid, ppv))
#define ID2D1Resource_AddRef(This) \ #define ID2D1Resource_AddRef(This) \
((This)->lpVtbl->Base.AddRef((IUnknown *)This)) ((This)->lpVtbl->Base.AddRef((IUnknown *)This))
#define ID2D1Resource_Release(This) \ #define ID2D1Resource_Release(This) \
((This)->lpVtbl->Base.Release((IUnknown *)This)) ((This)->lpVtbl->Base.Release((IUnknown *)This))
#define ID2D1Resource_GetFactory(This, factory) \ #define ID2D1Resource_GetFactory(This, factory) \
((This)->lpVtbl->GetFactory(This, factory)) ((This)->lpVtbl->GetFactory(This, factory))
typedef interface ID2D1Image ID2D1Image;
typedef struct ID2D1ImageVtbl
{
ID2D1ResourceVtbl Base;
} ID2D1ImageVtbl;
interface ID2D1Image
{
CONST struct ID2D1ImageVtbl *lpVtbl;
};
#define ID2D1Image_QueryInterface(This, riid, ppv) \
((This)->lpVtbl->Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
#define ID2D1Image_AddRef(This) \
((This)->lpVtbl->Base.Base.AddRef((IUnknown *)This))
#define ID2D1Image_Release(This) \
((This)->lpVtbl->Base.Base.Release((IUnknown *)This))
#define ID2D1Image_GetFactory(This, factory) \
((This)->lpVtbl->Base.GetFactory((ID2D1Resource *)This, factory))
typedef interface ID2D1Bitmap ID2D1Bitmap; typedef interface ID2D1Bitmap ID2D1Bitmap;
typedef struct ID2D1BitmapVtbl typedef struct ID2D1BitmapVtbl
{ {
ID2D1ResourceVtbl Base; ID2D1ImageVtbl Base;
STDMETHOD_(D2D1_SIZE_F, GetSize)( STDMETHOD_(D2D1_SIZE_F, GetSize)(
ID2D1Bitmap *This ID2D1Bitmap *This
) PURE; ) PURE;
STDMETHOD_(D2D1_SIZE_U, GetPixelSize)( STDMETHOD_(D2D1_SIZE_U, GetPixelSize)(
ID2D1Bitmap *This ID2D1Bitmap *This
) PURE; ) PURE;
STDMETHOD_(D2D1_PIXEL_FORMAT, GetPixelFormat)( STDMETHOD_(D2D1_PIXEL_FORMAT, GetPixelFormat)(
ID2D1Bitmap *This ID2D1Bitmap *This
) PURE; ) PURE;
STDMETHOD_(void, GetDpi)( STDMETHOD_(void, GetDpi)(
ID2D1Bitmap *This, ID2D1Bitmap *This,
__out FLOAT *dpiX, _Out_ FLOAT *dpiX,
__out FLOAT *dpiY _Out_ FLOAT *dpiY
) PURE; ) PURE;
STDMETHOD(CopyFromBitmap)( STDMETHOD(CopyFromBitmap)(
ID2D1Bitmap *This, ID2D1Bitmap *This,
__in_opt CONST D2D1_POINT_2U *destPoint, _In_opt_ CONST D2D1_POINT_2U *destPoint,
__in ID2D1Bitmap *bitmap, _In_ ID2D1Bitmap *bitmap,
__in_opt CONST D2D1_RECT_U *srcRect _In_opt_ CONST D2D1_RECT_U *srcRect
) PURE; ) PURE;
STDMETHOD(CopyFromRenderTarget)( STDMETHOD(CopyFromRenderTarget)(
ID2D1Bitmap *This, ID2D1Bitmap *This,
__in_opt CONST D2D1_POINT_2U *destPoint, _In_opt_ CONST D2D1_POINT_2U *destPoint,
__in ID2D1RenderTarget *renderTarget, _In_ ID2D1RenderTarget *renderTarget,
__in_opt CONST D2D1_RECT_U *srcRect _In_opt_ CONST D2D1_RECT_U *srcRect
) PURE; ) PURE;
STDMETHOD(CopyFromMemory)( STDMETHOD(CopyFromMemory)(
ID2D1Bitmap *This, ID2D1Bitmap *This,
__in_opt CONST D2D1_RECT_U *dstRect, _In_opt_ CONST D2D1_RECT_U *dstRect,
__in CONST void *srcData, _In_ CONST void *srcData,
UINT32 pitch UINT32 pitch
) PURE; ) PURE;
} ID2D1BitmapVtbl; } ID2D1BitmapVtbl;
interface ID2D1Bitmap interface ID2D1Bitmap
{ {
CONST struct ID2D1BitmapVtbl *lpVtbl; CONST struct ID2D1BitmapVtbl *lpVtbl;
}; };
#define ID2D1Bitmap_QueryInterface(This, riid, ppv) \ #define ID2D1Bitmap_QueryInterface(This, riid, ppv) \
((This)->lpVtbl->Base.Base.QueryInterface((IUnknown *)This, riid, ppv)) ((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
#define ID2D1Bitmap_AddRef(This) \ #define ID2D1Bitmap_AddRef(This) \
((This)->lpVtbl->Base.Base.AddRef((IUnknown *)This)) ((This)->lpVtbl->Base.Base.Base.AddRef((IUnknown *)This))
#define ID2D1Bitmap_Release(This) \ #define ID2D1Bitmap_Release(This) \
((This)->lpVtbl->Base.Base.Release((IUnknown *)This)) ((This)->lpVtbl->Base.Base.Base.Release((IUnknown *)This))
#define ID2D1Bitmap_GetFactory(This, factory) \ #define ID2D1Bitmap_GetFactory(This, factory) \
((This)->lpVtbl->Base.GetFactory((ID2D1Resource *)This, factory)) ((This)->lpVtbl->Base.Base.GetFactory((ID2D1Resource *)This, factory))
#define ID2D1Bitmap_GetSize(This) \ #define ID2D1Bitmap_GetSize(This) \
((This)->lpVtbl->GetSize(This)) ((This)->lpVtbl->GetSize(This))
#define ID2D1Bitmap_GetPixelSize(This) \ #define ID2D1Bitmap_GetPixelSize(This) \
((This)->lpVtbl->GetPixelSize(This)) ((This)->lpVtbl->GetPixelSize(This))
#define ID2D1Bitmap_GetPixelFormat(This) \ #define ID2D1Bitmap_GetPixelFormat(This) \
((This)->lpVtbl->GetPixelFormat(This)) ((This)->lpVtbl->GetPixelFormat(This))
skipping to change at line 3813 skipping to change at line 3962
{ {
ID2D1ResourceVtbl Base; ID2D1ResourceVtbl Base;
STDMETHOD_(UINT32, GetGradientStopCount)( STDMETHOD_(UINT32, GetGradientStopCount)(
ID2D1GradientStopCollection *This ID2D1GradientStopCollection *This
) PURE; ) PURE;
STDMETHOD_(void, GetGradientStops)( STDMETHOD_(void, GetGradientStops)(
ID2D1GradientStopCollection *This, ID2D1GradientStopCollection *This,
__out_ecount(gradientStopsCount) D2D1_GRADIENT_STOP *gradientStops, _Out_writes_to_(gradientStopsCount, _Inexpressible_("Retrieved through G
UINT gradientStopsCount etGradientStopCount()") ) D2D1_GRADIENT_STOP *gradientStops,
UINT32 gradientStopsCount
) PURE; ) PURE;
STDMETHOD_(D2D1_GAMMA, GetColorInterpolationGamma)( STDMETHOD_(D2D1_GAMMA, GetColorInterpolationGamma)(
ID2D1GradientStopCollection *This ID2D1GradientStopCollection *This
) PURE; ) PURE;
STDMETHOD_(D2D1_EXTEND_MODE, GetExtendMode)( STDMETHOD_(D2D1_EXTEND_MODE, GetExtendMode)(
ID2D1GradientStopCollection *This ID2D1GradientStopCollection *This
) PURE; ) PURE;
} ID2D1GradientStopCollectionVtbl; } ID2D1GradientStopCollectionVtbl;
skipping to change at line 3869 skipping to change at line 4018
ID2D1ResourceVtbl Base; ID2D1ResourceVtbl Base;
STDMETHOD_(void, SetOpacity)( STDMETHOD_(void, SetOpacity)(
ID2D1Brush *This, ID2D1Brush *This,
FLOAT opacity FLOAT opacity
) PURE; ) PURE;
STDMETHOD_(void, SetTransform)( STDMETHOD_(void, SetTransform)(
ID2D1Brush *This, ID2D1Brush *This,
__in CONST D2D1_MATRIX_3X2_F *transform _In_ CONST D2D1_MATRIX_3X2_F *transform
) PURE; ) PURE;
STDMETHOD_(FLOAT, GetOpacity)( STDMETHOD_(FLOAT, GetOpacity)(
ID2D1Brush *This ID2D1Brush *This
) PURE; ) PURE;
STDMETHOD_(void, GetTransform)( STDMETHOD_(void, GetTransform)(
ID2D1Brush *This, ID2D1Brush *This,
__out D2D1_MATRIX_3X2_F *transform _Out_ D2D1_MATRIX_3X2_F *transform
) PURE; ) PURE;
} ID2D1BrushVtbl; } ID2D1BrushVtbl;
interface ID2D1Brush interface ID2D1Brush
{ {
CONST struct ID2D1BrushVtbl *lpVtbl; CONST struct ID2D1BrushVtbl *lpVtbl;
}; };
#define ID2D1Brush_QueryInterface(This, riid, ppv) \ #define ID2D1Brush_QueryInterface(This, riid, ppv) \
((This)->lpVtbl->Base.Base.QueryInterface((IUnknown *)This, riid, ppv)) ((This)->lpVtbl->Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
skipping to change at line 3935 skipping to change at line 4084
D2D1_EXTEND_MODE extendModeY D2D1_EXTEND_MODE extendModeY
) PURE; ) PURE;
STDMETHOD_(void, SetInterpolationMode)( STDMETHOD_(void, SetInterpolationMode)(
ID2D1BitmapBrush *This, ID2D1BitmapBrush *This,
D2D1_BITMAP_INTERPOLATION_MODE interpolationMode D2D1_BITMAP_INTERPOLATION_MODE interpolationMode
) PURE; ) PURE;
STDMETHOD_(void, SetBitmap)( STDMETHOD_(void, SetBitmap)(
ID2D1BitmapBrush *This, ID2D1BitmapBrush *This,
__in ID2D1Bitmap *bitmap _In_opt_ ID2D1Bitmap *bitmap
) PURE; ) PURE;
STDMETHOD_(D2D1_EXTEND_MODE, GetExtendModeX)( STDMETHOD_(D2D1_EXTEND_MODE, GetExtendModeX)(
ID2D1BitmapBrush *This ID2D1BitmapBrush *This
) PURE; ) PURE;
STDMETHOD_(D2D1_EXTEND_MODE, GetExtendModeY)( STDMETHOD_(D2D1_EXTEND_MODE, GetExtendModeY)(
ID2D1BitmapBrush *This ID2D1BitmapBrush *This
) PURE; ) PURE;
STDMETHOD_(D2D1_BITMAP_INTERPOLATION_MODE, GetInterpolationMode)( STDMETHOD_(D2D1_BITMAP_INTERPOLATION_MODE, GetInterpolationMode)(
ID2D1BitmapBrush *This ID2D1BitmapBrush *This
) PURE; ) PURE;
STDMETHOD_(void, GetBitmap)( STDMETHOD_(void, GetBitmap)(
ID2D1BitmapBrush *This, ID2D1BitmapBrush *This,
__deref_out ID2D1Bitmap **bitmap _Outptr_ ID2D1Bitmap **bitmap
) PURE; ) PURE;
} ID2D1BitmapBrushVtbl; } ID2D1BitmapBrushVtbl;
interface ID2D1BitmapBrush interface ID2D1BitmapBrush
{ {
CONST struct ID2D1BitmapBrushVtbl *lpVtbl; CONST struct ID2D1BitmapBrushVtbl *lpVtbl;
}; };
#define ID2D1BitmapBrush_QueryInterface(This, riid, ppv) \ #define ID2D1BitmapBrush_QueryInterface(This, riid, ppv) \
((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv)) ((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
skipping to change at line 4018 skipping to change at line 4167
typedef interface ID2D1SolidColorBrush ID2D1SolidColorBrush; typedef interface ID2D1SolidColorBrush ID2D1SolidColorBrush;
typedef struct ID2D1SolidColorBrushVtbl typedef struct ID2D1SolidColorBrushVtbl
{ {
ID2D1BrushVtbl Base; ID2D1BrushVtbl Base;
STDMETHOD_(void, SetColor)( STDMETHOD_(void, SetColor)(
ID2D1SolidColorBrush *This, ID2D1SolidColorBrush *This,
__in CONST D2D1_COLOR_F *color _In_ CONST D2D1_COLOR_F *color
) PURE; ) PURE;
STDMETHOD_(D2D1_COLOR_F, GetColor)( STDMETHOD_(D2D1_COLOR_F, GetColor)(
ID2D1SolidColorBrush *This ID2D1SolidColorBrush *This
) PURE; ) PURE;
} ID2D1SolidColorBrushVtbl; } ID2D1SolidColorBrushVtbl;
interface ID2D1SolidColorBrush interface ID2D1SolidColorBrush
{ {
CONST struct ID2D1SolidColorBrushVtbl *lpVtbl; CONST struct ID2D1SolidColorBrushVtbl *lpVtbl;
skipping to change at line 4088 skipping to change at line 4237
STDMETHOD_(D2D1_POINT_2F, GetStartPoint)( STDMETHOD_(D2D1_POINT_2F, GetStartPoint)(
ID2D1LinearGradientBrush *This ID2D1LinearGradientBrush *This
) PURE; ) PURE;
STDMETHOD_(D2D1_POINT_2F, GetEndPoint)( STDMETHOD_(D2D1_POINT_2F, GetEndPoint)(
ID2D1LinearGradientBrush *This ID2D1LinearGradientBrush *This
) PURE; ) PURE;
STDMETHOD_(void, GetGradientStopCollection)( STDMETHOD_(void, GetGradientStopCollection)(
ID2D1LinearGradientBrush *This, ID2D1LinearGradientBrush *This,
__deref_out ID2D1GradientStopCollection **gradientStopCollection _Outptr_ ID2D1GradientStopCollection **gradientStopCollection
) PURE; ) PURE;
} ID2D1LinearGradientBrushVtbl; } ID2D1LinearGradientBrushVtbl;
interface ID2D1LinearGradientBrush interface ID2D1LinearGradientBrush
{ {
CONST struct ID2D1LinearGradientBrushVtbl *lpVtbl; CONST struct ID2D1LinearGradientBrushVtbl *lpVtbl;
}; };
#define ID2D1LinearGradientBrush_QueryInterface(This, riid, ppv) \ #define ID2D1LinearGradientBrush_QueryInterface(This, riid, ppv) \
((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv)) ((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
skipping to change at line 4181 skipping to change at line 4330
STDMETHOD_(FLOAT, GetRadiusX)( STDMETHOD_(FLOAT, GetRadiusX)(
ID2D1RadialGradientBrush *This ID2D1RadialGradientBrush *This
) PURE; ) PURE;
STDMETHOD_(FLOAT, GetRadiusY)( STDMETHOD_(FLOAT, GetRadiusY)(
ID2D1RadialGradientBrush *This ID2D1RadialGradientBrush *This
) PURE; ) PURE;
STDMETHOD_(void, GetGradientStopCollection)( STDMETHOD_(void, GetGradientStopCollection)(
ID2D1RadialGradientBrush *This, ID2D1RadialGradientBrush *This,
__deref_out ID2D1GradientStopCollection **gradientStopCollection _Outptr_ ID2D1GradientStopCollection **gradientStopCollection
) PURE; ) PURE;
} ID2D1RadialGradientBrushVtbl; } ID2D1RadialGradientBrushVtbl;
interface ID2D1RadialGradientBrush interface ID2D1RadialGradientBrush
{ {
CONST struct ID2D1RadialGradientBrushVtbl *lpVtbl; CONST struct ID2D1RadialGradientBrushVtbl *lpVtbl;
}; };
#define ID2D1RadialGradientBrush_QueryInterface(This, riid, ppv) \ #define ID2D1RadialGradientBrush_QueryInterface(This, riid, ppv) \
((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv)) ((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
skipping to change at line 4282 skipping to change at line 4431
STDMETHOD_(D2D1_DASH_STYLE, GetDashStyle)( STDMETHOD_(D2D1_DASH_STYLE, GetDashStyle)(
ID2D1StrokeStyle *This ID2D1StrokeStyle *This
) PURE; ) PURE;
STDMETHOD_(UINT32, GetDashesCount)( STDMETHOD_(UINT32, GetDashesCount)(
ID2D1StrokeStyle *This ID2D1StrokeStyle *This
) PURE; ) PURE;
STDMETHOD_(void, GetDashes)( STDMETHOD_(void, GetDashes)(
ID2D1StrokeStyle *This, ID2D1StrokeStyle *This,
__out_ecount(dashesCount) FLOAT *dashes, _Out_writes_(dashesCount) FLOAT *dashes,
UINT dashesCount UINT32 dashesCount
) PURE; ) PURE;
} ID2D1StrokeStyleVtbl; } ID2D1StrokeStyleVtbl;
interface ID2D1StrokeStyle interface ID2D1StrokeStyle
{ {
CONST struct ID2D1StrokeStyleVtbl *lpVtbl; CONST struct ID2D1StrokeStyleVtbl *lpVtbl;
}; };
#define ID2D1StrokeStyle_QueryInterface(This, riid, ppv) \ #define ID2D1StrokeStyle_QueryInterface(This, riid, ppv) \
((This)->lpVtbl->Base.Base.QueryInterface((IUnknown *)This, riid, ppv)) ((This)->lpVtbl->Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
skipping to change at line 4340 skipping to change at line 4489
typedef interface ID2D1Geometry ID2D1Geometry; typedef interface ID2D1Geometry ID2D1Geometry;
typedef struct ID2D1GeometryVtbl typedef struct ID2D1GeometryVtbl
{ {
ID2D1ResourceVtbl Base; ID2D1ResourceVtbl Base;
STDMETHOD(GetBounds)( STDMETHOD(GetBounds)(
ID2D1Geometry *This, ID2D1Geometry *This,
__in_opt CONST D2D1_MATRIX_3X2_F *worldTransform, _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
__out D2D1_RECT_F *bounds _Out_ D2D1_RECT_F *bounds
) PURE; ) PURE;
STDMETHOD(GetWidenedBounds)( STDMETHOD(GetWidenedBounds)(
ID2D1Geometry *This, ID2D1Geometry *This,
FLOAT strokeWidth, FLOAT strokeWidth,
__in_opt ID2D1StrokeStyle *strokeStyle, _In_opt_ ID2D1StrokeStyle *strokeStyle,
__in_opt CONST D2D1_MATRIX_3X2_F *worldTransform, _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
FLOAT flatteningTolerance, FLOAT flatteningTolerance,
__out D2D1_RECT_F *bounds _Out_ D2D1_RECT_F *bounds
) PURE; ) PURE;
STDMETHOD(StrokeContainsPoint)( STDMETHOD(StrokeContainsPoint)(
ID2D1Geometry *This, ID2D1Geometry *This,
D2D1_POINT_2F point, D2D1_POINT_2F point,
FLOAT strokeWidth, FLOAT strokeWidth,
__in_opt ID2D1StrokeStyle *strokeStyle, _In_opt_ ID2D1StrokeStyle *strokeStyle,
__in_opt CONST D2D1_MATRIX_3X2_F *worldTransform, _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
FLOAT flatteningTolerance, FLOAT flatteningTolerance,
__out BOOL *contains _Out_ BOOL *contains
) PURE; ) PURE;
STDMETHOD(FillContainsPoint)( STDMETHOD(FillContainsPoint)(
ID2D1Geometry *This, ID2D1Geometry *This,
D2D1_POINT_2F point, D2D1_POINT_2F point,
__in_opt CONST D2D1_MATRIX_3X2_F *worldTransform, _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
FLOAT flatteningTolerance, FLOAT flatteningTolerance,
__out BOOL *contains _Out_ BOOL *contains
) PURE; ) PURE;
STDMETHOD(CompareWithGeometry)( STDMETHOD(CompareWithGeometry)(
ID2D1Geometry *This, ID2D1Geometry *This,
__in ID2D1Geometry *inputGeometry, _In_ ID2D1Geometry *inputGeometry,
__in_opt CONST D2D1_MATRIX_3X2_F *inputGeometryTransform, _In_opt_ CONST D2D1_MATRIX_3X2_F *inputGeometryTransform,
FLOAT flatteningTolerance, FLOAT flatteningTolerance,
__out D2D1_GEOMETRY_RELATION *relation _Out_ D2D1_GEOMETRY_RELATION *relation
) PURE; ) PURE;
STDMETHOD(Simplify)( STDMETHOD(Simplify)(
ID2D1Geometry *This, ID2D1Geometry *This,
D2D1_GEOMETRY_SIMPLIFICATION_OPTION simplificationOption, D2D1_GEOMETRY_SIMPLIFICATION_OPTION simplificationOption,
__in_opt CONST D2D1_MATRIX_3X2_F *worldTransform, _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
FLOAT flatteningTolerance, FLOAT flatteningTolerance,
__in ID2D1SimplifiedGeometrySink *geometrySink _In_ ID2D1SimplifiedGeometrySink *geometrySink
) PURE; ) PURE;
STDMETHOD(Tessellate)( STDMETHOD(Tessellate)(
ID2D1Geometry *This, ID2D1Geometry *This,
__in_opt CONST D2D1_MATRIX_3X2_F *worldTransform, _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
FLOAT flatteningTolerance, FLOAT flatteningTolerance,
__in ID2D1TessellationSink *tessellationSink _In_ ID2D1TessellationSink *tessellationSink
) PURE; ) PURE;
STDMETHOD(CombineWithGeometry)( STDMETHOD(CombineWithGeometry)(
ID2D1Geometry *This, ID2D1Geometry *This,
__in ID2D1Geometry *inputGeometry, _In_ ID2D1Geometry *inputGeometry,
D2D1_COMBINE_MODE combineMode, D2D1_COMBINE_MODE combineMode,
__in_opt CONST D2D1_MATRIX_3X2_F *inputGeometryTransform, _In_opt_ CONST D2D1_MATRIX_3X2_F *inputGeometryTransform,
FLOAT flatteningTolerance, FLOAT flatteningTolerance,
__in ID2D1SimplifiedGeometrySink *geometrySink _In_ ID2D1SimplifiedGeometrySink *geometrySink
) PURE; ) PURE;
STDMETHOD(Outline)( STDMETHOD(Outline)(
ID2D1Geometry *This, ID2D1Geometry *This,
__in_opt CONST D2D1_MATRIX_3X2_F *worldTransform, _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
FLOAT flatteningTolerance, FLOAT flatteningTolerance,
__in ID2D1SimplifiedGeometrySink *geometrySink _In_ ID2D1SimplifiedGeometrySink *geometrySink
) PURE; ) PURE;
STDMETHOD(ComputeArea)( STDMETHOD(ComputeArea)(
ID2D1Geometry *This, ID2D1Geometry *This,
__in_opt CONST D2D1_MATRIX_3X2_F *worldTransform, _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
FLOAT flatteningTolerance, FLOAT flatteningTolerance,
__out FLOAT *area _Out_ FLOAT *area
) PURE; ) PURE;
STDMETHOD(ComputeLength)( STDMETHOD(ComputeLength)(
ID2D1Geometry *This, ID2D1Geometry *This,
__in_opt CONST D2D1_MATRIX_3X2_F *worldTransform, _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
FLOAT flatteningTolerance, FLOAT flatteningTolerance,
__out FLOAT *length _Out_ FLOAT *length
) PURE; ) PURE;
STDMETHOD(ComputePointAtLength)( STDMETHOD(ComputePointAtLength)(
ID2D1Geometry *This, ID2D1Geometry *This,
FLOAT length, FLOAT length,
__in_opt CONST D2D1_MATRIX_3X2_F *worldTransform, _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
FLOAT flatteningTolerance, FLOAT flatteningTolerance,
__out_opt D2D1_POINT_2F *point, _Out_opt_ D2D1_POINT_2F *point,
__out_opt D2D1_POINT_2F *unitTangentVector _Out_opt_ D2D1_POINT_2F *unitTangentVector
) PURE; ) PURE;
STDMETHOD(Widen)( STDMETHOD(Widen)(
ID2D1Geometry *This, ID2D1Geometry *This,
FLOAT strokeWidth, FLOAT strokeWidth,
__in_opt ID2D1StrokeStyle *strokeStyle, _In_opt_ ID2D1StrokeStyle *strokeStyle,
__in_opt CONST D2D1_MATRIX_3X2_F *worldTransform, _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
FLOAT flatteningTolerance, FLOAT flatteningTolerance,
__in ID2D1SimplifiedGeometrySink *geometrySink _In_ ID2D1SimplifiedGeometrySink *geometrySink
) PURE; ) PURE;
} ID2D1GeometryVtbl; } ID2D1GeometryVtbl;
interface ID2D1Geometry interface ID2D1Geometry
{ {
CONST struct ID2D1GeometryVtbl *lpVtbl; CONST struct ID2D1GeometryVtbl *lpVtbl;
}; };
#define ID2D1Geometry_QueryInterface(This, riid, ppv) \ #define ID2D1Geometry_QueryInterface(This, riid, ppv) \
((This)->lpVtbl->Base.Base.QueryInterface((IUnknown *)This, riid, ppv)) ((This)->lpVtbl->Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
skipping to change at line 4508 skipping to change at line 4657
typedef interface ID2D1RectangleGeometry ID2D1RectangleGeometry; typedef interface ID2D1RectangleGeometry ID2D1RectangleGeometry;
typedef struct ID2D1RectangleGeometryVtbl typedef struct ID2D1RectangleGeometryVtbl
{ {
ID2D1GeometryVtbl Base; ID2D1GeometryVtbl Base;
STDMETHOD_(void, GetRect)( STDMETHOD_(void, GetRect)(
ID2D1RectangleGeometry *This, ID2D1RectangleGeometry *This,
__out D2D1_RECT_F *rect _Out_ D2D1_RECT_F *rect
) PURE; ) PURE;
} ID2D1RectangleGeometryVtbl; } ID2D1RectangleGeometryVtbl;
interface ID2D1RectangleGeometry interface ID2D1RectangleGeometry
{ {
CONST struct ID2D1RectangleGeometryVtbl *lpVtbl; CONST struct ID2D1RectangleGeometryVtbl *lpVtbl;
}; };
#define ID2D1RectangleGeometry_QueryInterface(This, riid, ppv) \ #define ID2D1RectangleGeometry_QueryInterface(This, riid, ppv) \
((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv)) ((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
skipping to change at line 4580 skipping to change at line 4729
typedef interface ID2D1RoundedRectangleGeometry ID2D1RoundedRectangleGeometry; typedef interface ID2D1RoundedRectangleGeometry ID2D1RoundedRectangleGeometry;
typedef struct ID2D1RoundedRectangleGeometryVtbl typedef struct ID2D1RoundedRectangleGeometryVtbl
{ {
ID2D1GeometryVtbl Base; ID2D1GeometryVtbl Base;
STDMETHOD_(void, GetRoundedRect)( STDMETHOD_(void, GetRoundedRect)(
ID2D1RoundedRectangleGeometry *This, ID2D1RoundedRectangleGeometry *This,
__out D2D1_ROUNDED_RECT *roundedRect _Out_ D2D1_ROUNDED_RECT *roundedRect
) PURE; ) PURE;
} ID2D1RoundedRectangleGeometryVtbl; } ID2D1RoundedRectangleGeometryVtbl;
interface ID2D1RoundedRectangleGeometry interface ID2D1RoundedRectangleGeometry
{ {
CONST struct ID2D1RoundedRectangleGeometryVtbl *lpVtbl; CONST struct ID2D1RoundedRectangleGeometryVtbl *lpVtbl;
}; };
#define ID2D1RoundedRectangleGeometry_QueryInterface(This, riid, ppv) \ #define ID2D1RoundedRectangleGeometry_QueryInterface(This, riid, ppv) \
((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv)) ((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
skipping to change at line 4652 skipping to change at line 4801
typedef interface ID2D1EllipseGeometry ID2D1EllipseGeometry; typedef interface ID2D1EllipseGeometry ID2D1EllipseGeometry;
typedef struct ID2D1EllipseGeometryVtbl typedef struct ID2D1EllipseGeometryVtbl
{ {
ID2D1GeometryVtbl Base; ID2D1GeometryVtbl Base;
STDMETHOD_(void, GetEllipse)( STDMETHOD_(void, GetEllipse)(
ID2D1EllipseGeometry *This, ID2D1EllipseGeometry *This,
__out D2D1_ELLIPSE *ellipse _Out_ D2D1_ELLIPSE *ellipse
) PURE; ) PURE;
} ID2D1EllipseGeometryVtbl; } ID2D1EllipseGeometryVtbl;
interface ID2D1EllipseGeometry interface ID2D1EllipseGeometry
{ {
CONST struct ID2D1EllipseGeometryVtbl *lpVtbl; CONST struct ID2D1EllipseGeometryVtbl *lpVtbl;
}; };
#define ID2D1EllipseGeometry_QueryInterface(This, riid, ppv) \ #define ID2D1EllipseGeometry_QueryInterface(This, riid, ppv) \
((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv)) ((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
skipping to change at line 4732 skipping to change at line 4881
STDMETHOD_(D2D1_FILL_MODE, GetFillMode)( STDMETHOD_(D2D1_FILL_MODE, GetFillMode)(
ID2D1GeometryGroup *This ID2D1GeometryGroup *This
) PURE; ) PURE;
STDMETHOD_(UINT32, GetSourceGeometryCount)( STDMETHOD_(UINT32, GetSourceGeometryCount)(
ID2D1GeometryGroup *This ID2D1GeometryGroup *This
) PURE; ) PURE;
STDMETHOD_(void, GetSourceGeometries)( STDMETHOD_(void, GetSourceGeometries)(
ID2D1GeometryGroup *This, ID2D1GeometryGroup *This,
__out_ecount(geometriesCount) ID2D1Geometry **geometries, _Out_writes_(geometriesCount) ID2D1Geometry **geometries,
UINT geometriesCount UINT32 geometriesCount
) PURE; ) PURE;
} ID2D1GeometryGroupVtbl; } ID2D1GeometryGroupVtbl;
interface ID2D1GeometryGroup interface ID2D1GeometryGroup
{ {
CONST struct ID2D1GeometryGroupVtbl *lpVtbl; CONST struct ID2D1GeometryGroupVtbl *lpVtbl;
}; };
#define ID2D1GeometryGroup_QueryInterface(This, riid, ppv) \ #define ID2D1GeometryGroup_QueryInterface(This, riid, ppv) \
((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv)) ((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
skipping to change at line 4811 skipping to change at line 4960
typedef interface ID2D1TransformedGeometry ID2D1TransformedGeometry; typedef interface ID2D1TransformedGeometry ID2D1TransformedGeometry;
typedef struct ID2D1TransformedGeometryVtbl typedef struct ID2D1TransformedGeometryVtbl
{ {
ID2D1GeometryVtbl Base; ID2D1GeometryVtbl Base;
STDMETHOD_(void, GetSourceGeometry)( STDMETHOD_(void, GetSourceGeometry)(
ID2D1TransformedGeometry *This, ID2D1TransformedGeometry *This,
__deref_out ID2D1Geometry **sourceGeometry _Outptr_ ID2D1Geometry **sourceGeometry
) PURE; ) PURE;
STDMETHOD_(void, GetTransform)( STDMETHOD_(void, GetTransform)(
ID2D1TransformedGeometry *This, ID2D1TransformedGeometry *This,
__out D2D1_MATRIX_3X2_F *transform _Out_ D2D1_MATRIX_3X2_F *transform
) PURE; ) PURE;
} ID2D1TransformedGeometryVtbl; } ID2D1TransformedGeometryVtbl;
interface ID2D1TransformedGeometry interface ID2D1TransformedGeometry
{ {
CONST struct ID2D1TransformedGeometryVtbl *lpVtbl; CONST struct ID2D1TransformedGeometryVtbl *lpVtbl;
}; };
#define ID2D1TransformedGeometry_QueryInterface(This, riid, ppv) \ #define ID2D1TransformedGeometry_QueryInterface(This, riid, ppv) \
((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv)) ((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
skipping to change at line 4907 skipping to change at line 5056
) PURE; ) PURE;
STDMETHOD_(void, BeginFigure)( STDMETHOD_(void, BeginFigure)(
ID2D1SimplifiedGeometrySink *This, ID2D1SimplifiedGeometrySink *This,
D2D1_POINT_2F startPoint, D2D1_POINT_2F startPoint,
D2D1_FIGURE_BEGIN figureBegin D2D1_FIGURE_BEGIN figureBegin
) PURE; ) PURE;
STDMETHOD_(void, AddLines)( STDMETHOD_(void, AddLines)(
ID2D1SimplifiedGeometrySink *This, ID2D1SimplifiedGeometrySink *This,
__in_ecount(pointsCount) CONST D2D1_POINT_2F *points, _In_reads_(pointsCount) CONST D2D1_POINT_2F *points,
UINT pointsCount UINT32 pointsCount
) PURE; ) PURE;
STDMETHOD_(void, AddBeziers)( STDMETHOD_(void, AddBeziers)(
ID2D1SimplifiedGeometrySink *This, ID2D1SimplifiedGeometrySink *This,
__in_ecount(beziersCount) CONST D2D1_BEZIER_SEGMENT *beziers, _In_reads_(beziersCount) CONST D2D1_BEZIER_SEGMENT *beziers,
UINT beziersCount UINT32 beziersCount
) PURE; ) PURE;
STDMETHOD_(void, EndFigure)( STDMETHOD_(void, EndFigure)(
ID2D1SimplifiedGeometrySink *This, ID2D1SimplifiedGeometrySink *This,
D2D1_FIGURE_END figureEnd D2D1_FIGURE_END figureEnd
) PURE; ) PURE;
STDMETHOD(Close)( STDMETHOD(Close)(
ID2D1SimplifiedGeometrySink *This ID2D1SimplifiedGeometrySink *This
) PURE; ) PURE;
skipping to change at line 4976 skipping to change at line 5125
ID2D1SimplifiedGeometrySinkVtbl Base; ID2D1SimplifiedGeometrySinkVtbl Base;
STDMETHOD_(void, AddLine)( STDMETHOD_(void, AddLine)(
ID2D1GeometrySink *This, ID2D1GeometrySink *This,
D2D1_POINT_2F point D2D1_POINT_2F point
) PURE; ) PURE;
STDMETHOD_(void, AddBezier)( STDMETHOD_(void, AddBezier)(
ID2D1GeometrySink *This, ID2D1GeometrySink *This,
__in CONST D2D1_BEZIER_SEGMENT *bezier _In_ CONST D2D1_BEZIER_SEGMENT *bezier
) PURE; ) PURE;
STDMETHOD_(void, AddQuadraticBezier)( STDMETHOD_(void, AddQuadraticBezier)(
ID2D1GeometrySink *This, ID2D1GeometrySink *This,
__in CONST D2D1_QUADRATIC_BEZIER_SEGMENT *bezier _In_ CONST D2D1_QUADRATIC_BEZIER_SEGMENT *bezier
) PURE; ) PURE;
STDMETHOD_(void, AddQuadraticBeziers)( STDMETHOD_(void, AddQuadraticBeziers)(
ID2D1GeometrySink *This, ID2D1GeometrySink *This,
__in_ecount(beziersCount) CONST D2D1_QUADRATIC_BEZIER_SEGMENT *beziers, _In_reads_(beziersCount) CONST D2D1_QUADRATIC_BEZIER_SEGMENT *beziers,
UINT beziersCount UINT32 beziersCount
) PURE; ) PURE;
STDMETHOD_(void, AddArc)( STDMETHOD_(void, AddArc)(
ID2D1GeometrySink *This, ID2D1GeometrySink *This,
__in CONST D2D1_ARC_SEGMENT *arc _In_ CONST D2D1_ARC_SEGMENT *arc
) PURE; ) PURE;
} ID2D1GeometrySinkVtbl; } ID2D1GeometrySinkVtbl;
interface ID2D1GeometrySink interface ID2D1GeometrySink
{ {
CONST struct ID2D1GeometrySinkVtbl *lpVtbl; CONST struct ID2D1GeometrySinkVtbl *lpVtbl;
}; };
#define ID2D1GeometrySink_QueryInterface(This, riid, ppv) \ #define ID2D1GeometrySink_QueryInterface(This, riid, ppv) \
((This)->lpVtbl->Base.Base.QueryInterface((IUnknown *)This, riid, ppv)) ((This)->lpVtbl->Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
skipping to change at line 5055 skipping to change at line 5204
typedef interface ID2D1TessellationSink ID2D1TessellationSink; typedef interface ID2D1TessellationSink ID2D1TessellationSink;
typedef struct ID2D1TessellationSinkVtbl typedef struct ID2D1TessellationSinkVtbl
{ {
IUnknownVtbl Base; IUnknownVtbl Base;
STDMETHOD_(void, AddTriangles)( STDMETHOD_(void, AddTriangles)(
ID2D1TessellationSink *This, ID2D1TessellationSink *This,
__in_ecount(trianglesCount) CONST D2D1_TRIANGLE *triangles, _In_reads_(trianglesCount) CONST D2D1_TRIANGLE *triangles,
UINT trianglesCount UINT32 trianglesCount
) PURE; ) PURE;
STDMETHOD(Close)( STDMETHOD(Close)(
ID2D1TessellationSink *This ID2D1TessellationSink *This
) PURE; ) PURE;
} ID2D1TessellationSinkVtbl; } ID2D1TessellationSinkVtbl;
interface ID2D1TessellationSink interface ID2D1TessellationSink
{ {
CONST struct ID2D1TessellationSinkVtbl *lpVtbl; CONST struct ID2D1TessellationSinkVtbl *lpVtbl;
skipping to change at line 5093 skipping to change at line 5242
typedef interface ID2D1PathGeometry ID2D1PathGeometry; typedef interface ID2D1PathGeometry ID2D1PathGeometry;
typedef struct ID2D1PathGeometryVtbl typedef struct ID2D1PathGeometryVtbl
{ {
ID2D1GeometryVtbl Base; ID2D1GeometryVtbl Base;
STDMETHOD(Open)( STDMETHOD(Open)(
ID2D1PathGeometry *This, ID2D1PathGeometry *This,
__deref_out ID2D1GeometrySink **geometrySink _Outptr_ ID2D1GeometrySink **geometrySink
) PURE; ) PURE;
STDMETHOD(Stream)( STDMETHOD(Stream)(
ID2D1PathGeometry *This, ID2D1PathGeometry *This,
__in ID2D1GeometrySink *geometrySink _In_ ID2D1GeometrySink *geometrySink
) PURE; ) PURE;
STDMETHOD(GetSegmentCount)( STDMETHOD(GetSegmentCount)(
ID2D1PathGeometry *This, ID2D1PathGeometry *This,
__out UINT32 *count _Out_ UINT32 *count
) PURE; ) PURE;
STDMETHOD(GetFigureCount)( STDMETHOD(GetFigureCount)(
ID2D1PathGeometry *This, ID2D1PathGeometry *This,
__out UINT32 *count _Out_ UINT32 *count
) PURE; ) PURE;
} ID2D1PathGeometryVtbl; } ID2D1PathGeometryVtbl;
interface ID2D1PathGeometry interface ID2D1PathGeometry
{ {
CONST struct ID2D1PathGeometryVtbl *lpVtbl; CONST struct ID2D1PathGeometryVtbl *lpVtbl;
}; };
#define ID2D1PathGeometry_QueryInterface(This, riid, ppv) \ #define ID2D1PathGeometry_QueryInterface(This, riid, ppv) \
((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv)) ((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
skipping to change at line 5189 skipping to change at line 5338
typedef interface ID2D1Mesh ID2D1Mesh; typedef interface ID2D1Mesh ID2D1Mesh;
typedef struct ID2D1MeshVtbl typedef struct ID2D1MeshVtbl
{ {
ID2D1ResourceVtbl Base; ID2D1ResourceVtbl Base;
STDMETHOD(Open)( STDMETHOD(Open)(
ID2D1Mesh *This, ID2D1Mesh *This,
__deref_out ID2D1TessellationSink **tessellationSink _Outptr_ ID2D1TessellationSink **tessellationSink
) PURE; ) PURE;
} ID2D1MeshVtbl; } ID2D1MeshVtbl;
interface ID2D1Mesh interface ID2D1Mesh
{ {
CONST struct ID2D1MeshVtbl *lpVtbl; CONST struct ID2D1MeshVtbl *lpVtbl;
}; };
#define ID2D1Mesh_QueryInterface(This, riid, ppv) \ #define ID2D1Mesh_QueryInterface(This, riid, ppv) \
((This)->lpVtbl->Base.Base.QueryInterface((IUnknown *)This, riid, ppv)) ((This)->lpVtbl->Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
skipping to change at line 5254 skipping to change at line 5403
typedef interface ID2D1DrawingStateBlock ID2D1DrawingStateBlock; typedef interface ID2D1DrawingStateBlock ID2D1DrawingStateBlock;
typedef struct ID2D1DrawingStateBlockVtbl typedef struct ID2D1DrawingStateBlockVtbl
{ {
ID2D1ResourceVtbl Base; ID2D1ResourceVtbl Base;
STDMETHOD_(void, GetDescription)( STDMETHOD_(void, GetDescription)(
ID2D1DrawingStateBlock *This, ID2D1DrawingStateBlock *This,
__out D2D1_DRAWING_STATE_DESCRIPTION *stateDescription _Out_ D2D1_DRAWING_STATE_DESCRIPTION *stateDescription
) PURE; ) PURE;
STDMETHOD_(void, SetDescription)( STDMETHOD_(void, SetDescription)(
ID2D1DrawingStateBlock *This, ID2D1DrawingStateBlock *This,
__in CONST D2D1_DRAWING_STATE_DESCRIPTION *stateDescription _In_ CONST D2D1_DRAWING_STATE_DESCRIPTION *stateDescription
) PURE; ) PURE;
STDMETHOD_(void, SetTextRenderingParams)( STDMETHOD_(void, SetTextRenderingParams)(
ID2D1DrawingStateBlock *This, ID2D1DrawingStateBlock *This,
__in_opt IDWriteRenderingParams *textRenderingParams _In_opt_ IDWriteRenderingParams *textRenderingParams
) PURE; ) PURE;
STDMETHOD_(void, GetTextRenderingParams)( STDMETHOD_(void, GetTextRenderingParams)(
ID2D1DrawingStateBlock *This, ID2D1DrawingStateBlock *This,
__deref_out_opt IDWriteRenderingParams **textRenderingParams _Outptr_result_maybenull_ IDWriteRenderingParams **textRenderingParams
) PURE; ) PURE;
} ID2D1DrawingStateBlockVtbl; } ID2D1DrawingStateBlockVtbl;
interface ID2D1DrawingStateBlock interface ID2D1DrawingStateBlock
{ {
CONST struct ID2D1DrawingStateBlockVtbl *lpVtbl; CONST struct ID2D1DrawingStateBlockVtbl *lpVtbl;
}; };
#define ID2D1DrawingStateBlock_QueryInterface(This, riid, ppv) \ #define ID2D1DrawingStateBlock_QueryInterface(This, riid, ppv) \
((This)->lpVtbl->Base.Base.QueryInterface((IUnknown *)This, riid, ppv)) ((This)->lpVtbl->Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
skipping to change at line 5312 skipping to change at line 5461
typedef interface ID2D1RenderTarget ID2D1RenderTarget; typedef interface ID2D1RenderTarget ID2D1RenderTarget;
typedef struct ID2D1RenderTargetVtbl typedef struct ID2D1RenderTargetVtbl
{ {
ID2D1ResourceVtbl Base; ID2D1ResourceVtbl Base;
STDMETHOD(CreateBitmap)( STDMETHOD(CreateBitmap)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
D2D1_SIZE_U size, D2D1_SIZE_U size,
__in_opt CONST void *srcData, _In_opt_ CONST void *srcData,
UINT32 pitch, UINT32 pitch,
__in CONST D2D1_BITMAP_PROPERTIES *bitmapProperties, _In_ CONST D2D1_BITMAP_PROPERTIES *bitmapProperties,
__deref_out ID2D1Bitmap **bitmap _Outptr_ ID2D1Bitmap **bitmap
) PURE; ) PURE;
STDMETHOD(CreateBitmapFromWicBitmap)( STDMETHOD(CreateBitmapFromWicBitmap)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
__in IWICBitmapSource *wicBitmapSource, _In_ IWICBitmapSource *wicBitmapSource,
__in_opt CONST D2D1_BITMAP_PROPERTIES *bitmapProperties, _In_opt_ CONST D2D1_BITMAP_PROPERTIES *bitmapProperties,
__deref_out ID2D1Bitmap **bitmap _Outptr_ ID2D1Bitmap **bitmap
) PURE; ) PURE;
STDMETHOD(CreateSharedBitmap)( STDMETHOD(CreateSharedBitmap)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
__in REFIID riid, _In_ REFIID riid,
__inout void *data, _Inout_ void *data,
__in_opt CONST D2D1_BITMAP_PROPERTIES *bitmapProperties, _In_opt_ CONST D2D1_BITMAP_PROPERTIES *bitmapProperties,
__deref_out ID2D1Bitmap **bitmap _Outptr_ ID2D1Bitmap **bitmap
) PURE; ) PURE;
STDMETHOD(CreateBitmapBrush)( STDMETHOD(CreateBitmapBrush)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
__in ID2D1Bitmap *bitmap, _In_opt_ ID2D1Bitmap *bitmap,
__in_opt CONST D2D1_BITMAP_BRUSH_PROPERTIES *bitmapBrushProperties, _In_opt_ CONST D2D1_BITMAP_BRUSH_PROPERTIES *bitmapBrushProperties,
__in_opt CONST D2D1_BRUSH_PROPERTIES *brushProperties, _In_opt_ CONST D2D1_BRUSH_PROPERTIES *brushProperties,
__deref_out ID2D1BitmapBrush **bitmapBrush _Outptr_ ID2D1BitmapBrush **bitmapBrush
) PURE; ) PURE;
STDMETHOD(CreateSolidColorBrush)( STDMETHOD(CreateSolidColorBrush)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
__in CONST D2D1_COLOR_F *color, _In_ CONST D2D1_COLOR_F *color,
__in_opt CONST D2D1_BRUSH_PROPERTIES *brushProperties, _In_opt_ CONST D2D1_BRUSH_PROPERTIES *brushProperties,
__deref_out ID2D1SolidColorBrush **solidColorBrush _Outptr_ ID2D1SolidColorBrush **solidColorBrush
) PURE; ) PURE;
STDMETHOD(CreateGradientStopCollection)( STDMETHOD(CreateGradientStopCollection)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
__in_ecount(gradientStopsCount) CONST D2D1_GRADIENT_STOP *gradientStops, _In_reads_(gradientStopsCount) CONST D2D1_GRADIENT_STOP *gradientStops,
__range(>=,1) UINT gradientStopsCount, _In_range_(>=,1) UINT32 gradientStopsCount,
D2D1_GAMMA colorInterpolationGamma, D2D1_GAMMA colorInterpolationGamma,
D2D1_EXTEND_MODE extendMode, D2D1_EXTEND_MODE extendMode,
__deref_out ID2D1GradientStopCollection **gradientStopCollection _Outptr_ ID2D1GradientStopCollection **gradientStopCollection
) PURE; ) PURE;
STDMETHOD(CreateLinearGradientBrush)( STDMETHOD(CreateLinearGradientBrush)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
__in CONST D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES *linearGradientBrushPro _In_ CONST D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES *linearGradientBrushPro
perties, perties,
__in_opt CONST D2D1_BRUSH_PROPERTIES *brushProperties, _In_opt_ CONST D2D1_BRUSH_PROPERTIES *brushProperties,
__in ID2D1GradientStopCollection *gradientStopCollection, _In_ ID2D1GradientStopCollection *gradientStopCollection,
__deref_out ID2D1LinearGradientBrush **linearGradientBrush _Outptr_ ID2D1LinearGradientBrush **linearGradientBrush
) PURE; ) PURE;
STDMETHOD(CreateRadialGradientBrush)( STDMETHOD(CreateRadialGradientBrush)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
__in CONST D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES *radialGradientBrushPro _In_ CONST D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES *radialGradientBrushPro
perties, perties,
__in_opt CONST D2D1_BRUSH_PROPERTIES *brushProperties, _In_opt_ CONST D2D1_BRUSH_PROPERTIES *brushProperties,
__in ID2D1GradientStopCollection *gradientStopCollection, _In_ ID2D1GradientStopCollection *gradientStopCollection,
__deref_out ID2D1RadialGradientBrush **radialGradientBrush _Outptr_ ID2D1RadialGradientBrush **radialGradientBrush
) PURE; ) PURE;
STDMETHOD(CreateCompatibleRenderTarget)( STDMETHOD(CreateCompatibleRenderTarget)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
__in_opt CONST D2D1_SIZE_F *desiredSize, _In_opt_ CONST D2D1_SIZE_F *desiredSize,
__in_opt CONST D2D1_SIZE_U *desiredPixelSize, _In_opt_ CONST D2D1_SIZE_U *desiredPixelSize,
__in_opt CONST D2D1_PIXEL_FORMAT *desiredFormat, _In_opt_ CONST D2D1_PIXEL_FORMAT *desiredFormat,
D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS options, D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS options,
__deref_out ID2D1BitmapRenderTarget **bitmapRenderTarget _Outptr_ ID2D1BitmapRenderTarget **bitmapRenderTarget
) PURE; ) PURE;
STDMETHOD(CreateLayer)( STDMETHOD(CreateLayer)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
__in_opt CONST D2D1_SIZE_F *size, _In_opt_ CONST D2D1_SIZE_F *size,
__deref_out ID2D1Layer **layer _Outptr_ ID2D1Layer **layer
) PURE; ) PURE;
STDMETHOD(CreateMesh)( STDMETHOD(CreateMesh)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
__deref_out ID2D1Mesh **mesh _Outptr_ ID2D1Mesh **mesh
) PURE; ) PURE;
STDMETHOD_(void, DrawLine)( STDMETHOD_(void, DrawLine)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
D2D1_POINT_2F point0, D2D1_POINT_2F point0,
D2D1_POINT_2F point1, D2D1_POINT_2F point1,
__in ID2D1Brush *brush, _In_ ID2D1Brush *brush,
FLOAT strokeWidth, FLOAT strokeWidth,
__in_opt ID2D1StrokeStyle *strokeStyle _In_opt_ ID2D1StrokeStyle *strokeStyle
) PURE; ) PURE;
STDMETHOD_(void, DrawRectangle)( STDMETHOD_(void, DrawRectangle)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
__in CONST D2D1_RECT_F *rect, _In_ CONST D2D1_RECT_F *rect,
__in ID2D1Brush *brush, _In_ ID2D1Brush *brush,
FLOAT strokeWidth, FLOAT strokeWidth,
__in_opt ID2D1StrokeStyle *strokeStyle _In_opt_ ID2D1StrokeStyle *strokeStyle
) PURE; ) PURE;
STDMETHOD_(void, FillRectangle)( STDMETHOD_(void, FillRectangle)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
__in CONST D2D1_RECT_F *rect, _In_ CONST D2D1_RECT_F *rect,
__in ID2D1Brush *brush _In_ ID2D1Brush *brush
) PURE; ) PURE;
STDMETHOD_(void, DrawRoundedRectangle)( STDMETHOD_(void, DrawRoundedRectangle)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
__in CONST D2D1_ROUNDED_RECT *roundedRect, _In_ CONST D2D1_ROUNDED_RECT *roundedRect,
__in ID2D1Brush *brush, _In_ ID2D1Brush *brush,
FLOAT strokeWidth, FLOAT strokeWidth,
__in_opt ID2D1StrokeStyle *strokeStyle _In_opt_ ID2D1StrokeStyle *strokeStyle
) PURE; ) PURE;
STDMETHOD_(void, FillRoundedRectangle)( STDMETHOD_(void, FillRoundedRectangle)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
__in CONST D2D1_ROUNDED_RECT *roundedRect, _In_ CONST D2D1_ROUNDED_RECT *roundedRect,
__in ID2D1Brush *brush _In_ ID2D1Brush *brush
) PURE; ) PURE;
STDMETHOD_(void, DrawEllipse)( STDMETHOD_(void, DrawEllipse)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
__in CONST D2D1_ELLIPSE *ellipse, _In_ CONST D2D1_ELLIPSE *ellipse,
__in ID2D1Brush *brush, _In_ ID2D1Brush *brush,
FLOAT strokeWidth, FLOAT strokeWidth,
__in_opt ID2D1StrokeStyle *strokeStyle _In_opt_ ID2D1StrokeStyle *strokeStyle
) PURE; ) PURE;
STDMETHOD_(void, FillEllipse)( STDMETHOD_(void, FillEllipse)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
__in CONST D2D1_ELLIPSE *ellipse, _In_ CONST D2D1_ELLIPSE *ellipse,
__in ID2D1Brush *brush _In_ ID2D1Brush *brush
) PURE; ) PURE;
STDMETHOD_(void, DrawGeometry)( STDMETHOD_(void, DrawGeometry)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
__in ID2D1Geometry *geometry, _In_ ID2D1Geometry *geometry,
__in ID2D1Brush *brush, _In_ ID2D1Brush *brush,
FLOAT strokeWidth, FLOAT strokeWidth,
__in_opt ID2D1StrokeStyle *strokeStyle _In_opt_ ID2D1StrokeStyle *strokeStyle
) PURE; ) PURE;
STDMETHOD_(void, FillGeometry)( STDMETHOD_(void, FillGeometry)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
__in ID2D1Geometry *geometry, _In_ ID2D1Geometry *geometry,
__in ID2D1Brush *brush, _In_ ID2D1Brush *brush,
__in_opt ID2D1Brush *opacityBrush _In_opt_ ID2D1Brush *opacityBrush
) PURE; ) PURE;
STDMETHOD_(void, FillMesh)( STDMETHOD_(void, FillMesh)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
__in ID2D1Mesh *mesh, _In_ ID2D1Mesh *mesh,
__in ID2D1Brush *brush _In_ ID2D1Brush *brush
) PURE; ) PURE;
STDMETHOD_(void, FillOpacityMask)( STDMETHOD_(void, FillOpacityMask)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
__in ID2D1Bitmap *opacityMask, _In_ ID2D1Bitmap *opacityMask,
__in ID2D1Brush *brush, _In_ ID2D1Brush *brush,
D2D1_OPACITY_MASK_CONTENT content, D2D1_OPACITY_MASK_CONTENT content,
__in_opt CONST D2D1_RECT_F *destinationRectangle, _In_opt_ CONST D2D1_RECT_F *destinationRectangle,
__in_opt CONST D2D1_RECT_F *sourceRectangle _In_opt_ CONST D2D1_RECT_F *sourceRectangle
) PURE; ) PURE;
STDMETHOD_(void, DrawBitmap)( STDMETHOD_(void, DrawBitmap)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
__in ID2D1Bitmap *bitmap, _In_ ID2D1Bitmap *bitmap,
__in_opt CONST D2D1_RECT_F *destinationRectangle, _In_opt_ CONST D2D1_RECT_F *destinationRectangle,
FLOAT opacity, FLOAT opacity,
D2D1_BITMAP_INTERPOLATION_MODE interpolationMode, D2D1_BITMAP_INTERPOLATION_MODE interpolationMode,
__in_opt CONST D2D1_RECT_F *sourceRectangle _In_opt_ CONST D2D1_RECT_F *sourceRectangle
) PURE; ) PURE;
STDMETHOD_(void, DrawText)( STDMETHOD_(void, DrawText)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
__in_ecount(stringLength) CONST WCHAR *string, _In_reads_(stringLength) CONST WCHAR *string,
UINT stringLength, UINT32 stringLength,
__in IDWriteTextFormat *textFormat, _In_ IDWriteTextFormat *textFormat,
__in CONST D2D1_RECT_F *layoutRect, _In_ CONST D2D1_RECT_F *layoutRect,
__in ID2D1Brush *defaultForegroundBrush, _In_ ID2D1Brush *defaultForegroundBrush,
D2D1_DRAW_TEXT_OPTIONS options, D2D1_DRAW_TEXT_OPTIONS options,
DWRITE_MEASURING_MODE measuringMode DWRITE_MEASURING_MODE measuringMode
) PURE; ) PURE;
STDMETHOD_(void, DrawTextLayout)( STDMETHOD_(void, DrawTextLayout)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
D2D1_POINT_2F origin, D2D1_POINT_2F origin,
__in IDWriteTextLayout *textLayout, _In_ IDWriteTextLayout *textLayout,
__in ID2D1Brush *defaultForegroundBrush, _In_ ID2D1Brush *defaultForegroundBrush,
D2D1_DRAW_TEXT_OPTIONS options D2D1_DRAW_TEXT_OPTIONS options
) PURE; ) PURE;
STDMETHOD_(void, DrawGlyphRun)( STDMETHOD_(void, DrawGlyphRun)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
D2D1_POINT_2F baselineOrigin, D2D1_POINT_2F baselineOrigin,
__in CONST DWRITE_GLYPH_RUN *glyphRun, _In_ CONST DWRITE_GLYPH_RUN *glyphRun,
__in ID2D1Brush *foregroundBrush, _In_ ID2D1Brush *foregroundBrush,
DWRITE_MEASURING_MODE measuringMode DWRITE_MEASURING_MODE measuringMode
) PURE; ) PURE;
STDMETHOD_(void, SetTransform)( STDMETHOD_(void, SetTransform)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
__in CONST D2D1_MATRIX_3X2_F *transform _In_ CONST D2D1_MATRIX_3X2_F *transform
) PURE; ) PURE;
STDMETHOD_(void, GetTransform)( STDMETHOD_(void, GetTransform)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
__out D2D1_MATRIX_3X2_F *transform _Out_ D2D1_MATRIX_3X2_F *transform
) PURE; ) PURE;
STDMETHOD_(void, SetAntialiasMode)( STDMETHOD_(void, SetAntialiasMode)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
D2D1_ANTIALIAS_MODE antialiasMode D2D1_ANTIALIAS_MODE antialiasMode
) PURE; ) PURE;
STDMETHOD_(D2D1_ANTIALIAS_MODE, GetAntialiasMode)( STDMETHOD_(D2D1_ANTIALIAS_MODE, GetAntialiasMode)(
ID2D1RenderTarget *This ID2D1RenderTarget *This
) PURE; ) PURE;
skipping to change at line 5540 skipping to change at line 5689
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
D2D1_TEXT_ANTIALIAS_MODE textAntialiasMode D2D1_TEXT_ANTIALIAS_MODE textAntialiasMode
) PURE; ) PURE;
STDMETHOD_(D2D1_TEXT_ANTIALIAS_MODE, GetTextAntialiasMode)( STDMETHOD_(D2D1_TEXT_ANTIALIAS_MODE, GetTextAntialiasMode)(
ID2D1RenderTarget *This ID2D1RenderTarget *This
) PURE; ) PURE;
STDMETHOD_(void, SetTextRenderingParams)( STDMETHOD_(void, SetTextRenderingParams)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
__in_opt IDWriteRenderingParams *textRenderingParams _In_opt_ IDWriteRenderingParams *textRenderingParams
) PURE; ) PURE;
STDMETHOD_(void, GetTextRenderingParams)( STDMETHOD_(void, GetTextRenderingParams)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
__deref_out_opt IDWriteRenderingParams **textRenderingParams _Outptr_result_maybenull_ IDWriteRenderingParams **textRenderingParams
) PURE; ) PURE;
STDMETHOD_(void, SetTags)( STDMETHOD_(void, SetTags)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
D2D1_TAG tag1, D2D1_TAG tag1,
D2D1_TAG tag2 D2D1_TAG tag2
) PURE; ) PURE;
STDMETHOD_(void, GetTags)( STDMETHOD_(void, GetTags)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
__out_opt D2D1_TAG *tag1, _Out_opt_ D2D1_TAG *tag1,
__out_opt D2D1_TAG *tag2 _Out_opt_ D2D1_TAG *tag2
) PURE; ) PURE;
STDMETHOD_(void, PushLayer)( STDMETHOD_(void, PushLayer)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
__in CONST D2D1_LAYER_PARAMETERS *layerParameters, _In_ CONST D2D1_LAYER_PARAMETERS *layerParameters,
__in ID2D1Layer *layer _In_opt_ ID2D1Layer *layer
) PURE; ) PURE;
STDMETHOD_(void, PopLayer)( STDMETHOD_(void, PopLayer)(
ID2D1RenderTarget *This ID2D1RenderTarget *This
) PURE; ) PURE;
STDMETHOD(Flush)( STDMETHOD(Flush)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
__out_opt D2D1_TAG *tag1, _Out_opt_ D2D1_TAG *tag1,
__out_opt D2D1_TAG *tag2 _Out_opt_ D2D1_TAG *tag2
) PURE; ) PURE;
STDMETHOD_(void, SaveDrawingState)( STDMETHOD_(void, SaveDrawingState)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
__inout ID2D1DrawingStateBlock *drawingStateBlock _Inout_ ID2D1DrawingStateBlock *drawingStateBlock
) PURE; ) PURE;
STDMETHOD_(void, RestoreDrawingState)( STDMETHOD_(void, RestoreDrawingState)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
__in ID2D1DrawingStateBlock *drawingStateBlock _In_ ID2D1DrawingStateBlock *drawingStateBlock
) PURE; ) PURE;
STDMETHOD_(void, PushAxisAlignedClip)( STDMETHOD_(void, PushAxisAlignedClip)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
__in CONST D2D1_RECT_F *clipRect, _In_ CONST D2D1_RECT_F *clipRect,
D2D1_ANTIALIAS_MODE antialiasMode D2D1_ANTIALIAS_MODE antialiasMode
) PURE; ) PURE;
STDMETHOD_(void, PopAxisAlignedClip)( STDMETHOD_(void, PopAxisAlignedClip)(
ID2D1RenderTarget *This ID2D1RenderTarget *This
) PURE; ) PURE;
STDMETHOD_(void, Clear)( STDMETHOD_(void, Clear)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
__in_opt CONST D2D1_COLOR_F *clearColor _In_opt_ CONST D2D1_COLOR_F *clearColor
) PURE; ) PURE;
STDMETHOD_(void, BeginDraw)( STDMETHOD_(void, BeginDraw)(
ID2D1RenderTarget *This ID2D1RenderTarget *This
) PURE; ) PURE;
STDMETHOD(EndDraw)( STDMETHOD(EndDraw)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
__out_opt D2D1_TAG *tag1, _Out_opt_ D2D1_TAG *tag1,
__out_opt D2D1_TAG *tag2 _Out_opt_ D2D1_TAG *tag2
) PURE; ) PURE;
STDMETHOD_(D2D1_PIXEL_FORMAT, GetPixelFormat)( STDMETHOD_(D2D1_PIXEL_FORMAT, GetPixelFormat)(
ID2D1RenderTarget *This ID2D1RenderTarget *This
) PURE; ) PURE;
STDMETHOD_(void, SetDpi)( STDMETHOD_(void, SetDpi)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
FLOAT dpiX, FLOAT dpiX,
FLOAT dpiY FLOAT dpiY
) PURE; ) PURE;
STDMETHOD_(void, GetDpi)( STDMETHOD_(void, GetDpi)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
__out FLOAT *dpiX, _Out_ FLOAT *dpiX,
__out FLOAT *dpiY _Out_ FLOAT *dpiY
) PURE; ) PURE;
STDMETHOD_(D2D1_SIZE_F, GetSize)( STDMETHOD_(D2D1_SIZE_F, GetSize)(
ID2D1RenderTarget *This ID2D1RenderTarget *This
) PURE; ) PURE;
STDMETHOD_(D2D1_SIZE_U, GetPixelSize)( STDMETHOD_(D2D1_SIZE_U, GetPixelSize)(
ID2D1RenderTarget *This ID2D1RenderTarget *This
) PURE; ) PURE;
STDMETHOD_(UINT32, GetMaximumBitmapSize)( STDMETHOD_(UINT32, GetMaximumBitmapSize)(
ID2D1RenderTarget *This ID2D1RenderTarget *This
) PURE; ) PURE;
STDMETHOD_(BOOL, IsSupported)( STDMETHOD_(BOOL, IsSupported)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
__in CONST D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties _In_ CONST D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties
) PURE; ) PURE;
} ID2D1RenderTargetVtbl; } ID2D1RenderTargetVtbl;
interface ID2D1RenderTarget interface ID2D1RenderTarget
{ {
CONST struct ID2D1RenderTargetVtbl *lpVtbl; CONST struct ID2D1RenderTargetVtbl *lpVtbl;
}; };
#define ID2D1RenderTarget_QueryInterface(This, riid, ppv) \ #define ID2D1RenderTarget_QueryInterface(This, riid, ppv) \
((This)->lpVtbl->Base.Base.QueryInterface((IUnknown *)This, riid, ppv)) ((This)->lpVtbl->Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
skipping to change at line 5830 skipping to change at line 5979
typedef interface ID2D1BitmapRenderTarget ID2D1BitmapRenderTarget; typedef interface ID2D1BitmapRenderTarget ID2D1BitmapRenderTarget;
typedef struct ID2D1BitmapRenderTargetVtbl typedef struct ID2D1BitmapRenderTargetVtbl
{ {
ID2D1RenderTargetVtbl Base; ID2D1RenderTargetVtbl Base;
STDMETHOD(GetBitmap)( STDMETHOD(GetBitmap)(
ID2D1BitmapRenderTarget *This, ID2D1BitmapRenderTarget *This,
__deref_out ID2D1Bitmap **bitmap _Outptr_ ID2D1Bitmap **bitmap
) PURE; ) PURE;
} ID2D1BitmapRenderTargetVtbl; } ID2D1BitmapRenderTargetVtbl;
interface ID2D1BitmapRenderTarget interface ID2D1BitmapRenderTarget
{ {
CONST struct ID2D1BitmapRenderTargetVtbl *lpVtbl; CONST struct ID2D1BitmapRenderTargetVtbl *lpVtbl;
}; };
#define ID2D1BitmapRenderTarget_QueryInterface(This, riid, ppv) \ #define ID2D1BitmapRenderTarget_QueryInterface(This, riid, ppv) \
((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv)) ((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
skipping to change at line 6026 skipping to change at line 6175
{ {
ID2D1RenderTargetVtbl Base; ID2D1RenderTargetVtbl Base;
STDMETHOD_(D2D1_WINDOW_STATE, CheckWindowState)( STDMETHOD_(D2D1_WINDOW_STATE, CheckWindowState)(
ID2D1HwndRenderTarget *This ID2D1HwndRenderTarget *This
) PURE; ) PURE;
STDMETHOD(Resize)( STDMETHOD(Resize)(
ID2D1HwndRenderTarget *This, ID2D1HwndRenderTarget *This,
__in CONST D2D1_SIZE_U *pixelSize _In_ CONST D2D1_SIZE_U *pixelSize
) PURE; ) PURE;
STDMETHOD_(HWND, GetHwnd)( STDMETHOD_(HWND, GetHwnd)(
ID2D1HwndRenderTarget *This ID2D1HwndRenderTarget *This
) PURE; ) PURE;
} ID2D1HwndRenderTargetVtbl; } ID2D1HwndRenderTargetVtbl;
interface ID2D1HwndRenderTarget interface ID2D1HwndRenderTarget
{ {
CONST struct ID2D1HwndRenderTargetVtbl *lpVtbl; CONST struct ID2D1HwndRenderTargetVtbl *lpVtbl;
skipping to change at line 6219 skipping to change at line 6368
#define ID2D1HwndRenderTarget_CheckWindowState(This) \ #define ID2D1HwndRenderTarget_CheckWindowState(This) \
((This)->lpVtbl->CheckWindowState(This)) ((This)->lpVtbl->CheckWindowState(This))
#define ID2D1HwndRenderTarget_Resize(This, pixelSize) \ #define ID2D1HwndRenderTarget_Resize(This, pixelSize) \
((This)->lpVtbl->Resize(This, pixelSize)) ((This)->lpVtbl->Resize(This, pixelSize))
#define ID2D1HwndRenderTarget_GetHwnd(This) \ #define ID2D1HwndRenderTarget_GetHwnd(This) \
((This)->lpVtbl->GetHwnd(This)) ((This)->lpVtbl->GetHwnd(This))
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef interface ID2D1GdiInteropRenderTarget ID2D1GdiInteropRenderTarget; typedef interface ID2D1GdiInteropRenderTarget ID2D1GdiInteropRenderTarget;
typedef struct ID2D1GdiInteropRenderTargetVtbl typedef struct ID2D1GdiInteropRenderTargetVtbl
{ {
IUnknownVtbl Base; IUnknownVtbl Base;
STDMETHOD(GetDC)( STDMETHOD(GetDC)(
ID2D1GdiInteropRenderTarget *This, ID2D1GdiInteropRenderTarget *This,
D2D1_DC_INITIALIZE_MODE mode, D2D1_DC_INITIALIZE_MODE mode,
__out HDC *hdc _Out_ HDC *hdc
) PURE; ) PURE;
STDMETHOD(ReleaseDC)( STDMETHOD(ReleaseDC)(
ID2D1GdiInteropRenderTarget *This, ID2D1GdiInteropRenderTarget *This,
__in_opt CONST RECT *update _In_opt_ CONST RECT *update
) PURE; ) PURE;
} ID2D1GdiInteropRenderTargetVtbl; } ID2D1GdiInteropRenderTargetVtbl;
interface ID2D1GdiInteropRenderTarget interface ID2D1GdiInteropRenderTarget
{ {
CONST struct ID2D1GdiInteropRenderTargetVtbl *lpVtbl; CONST struct ID2D1GdiInteropRenderTargetVtbl *lpVtbl;
}; };
#define ID2D1GdiInteropRenderTarget_QueryInterface(This, riid, ppv) \ #define ID2D1GdiInteropRenderTarget_QueryInterface(This, riid, ppv) \
((This)->lpVtbl->Base.QueryInterface((IUnknown *)This, riid, ppv)) ((This)->lpVtbl->Base.QueryInterface((IUnknown *)This, riid, ppv))
skipping to change at line 6258 skipping to change at line 6413
#define ID2D1GdiInteropRenderTarget_Release(This) \ #define ID2D1GdiInteropRenderTarget_Release(This) \
((This)->lpVtbl->Base.Release((IUnknown *)This)) ((This)->lpVtbl->Base.Release((IUnknown *)This))
#define ID2D1GdiInteropRenderTarget_GetDC(This, mode, hdc) \ #define ID2D1GdiInteropRenderTarget_GetDC(This, mode, hdc) \
((This)->lpVtbl->GetDC(This, mode, hdc)) ((This)->lpVtbl->GetDC(This, mode, hdc))
#define ID2D1GdiInteropRenderTarget_ReleaseDC(This, update) \ #define ID2D1GdiInteropRenderTarget_ReleaseDC(This, update) \
((This)->lpVtbl->ReleaseDC(This, update)) ((This)->lpVtbl->ReleaseDC(This, update))
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
typedef interface ID2D1DCRenderTarget ID2D1DCRenderTarget; typedef interface ID2D1DCRenderTarget ID2D1DCRenderTarget;
typedef struct ID2D1DCRenderTargetVtbl typedef struct ID2D1DCRenderTargetVtbl
{ {
ID2D1RenderTargetVtbl Base; ID2D1RenderTargetVtbl Base;
STDMETHOD(BindDC)( STDMETHOD(BindDC)(
ID2D1DCRenderTarget *This, ID2D1DCRenderTarget *This,
__in CONST HDC hDC, _In_ CONST HDC hDC,
__in CONST RECT *pSubRect _In_ CONST RECT *pSubRect
) PURE; ) PURE;
} ID2D1DCRenderTargetVtbl; } ID2D1DCRenderTargetVtbl;
interface ID2D1DCRenderTarget interface ID2D1DCRenderTarget
{ {
CONST struct ID2D1DCRenderTargetVtbl *lpVtbl; CONST struct ID2D1DCRenderTargetVtbl *lpVtbl;
}; };
#define ID2D1DCRenderTarget_QueryInterface(This, riid, ppv) \ #define ID2D1DCRenderTarget_QueryInterface(This, riid, ppv) \
((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv)) ((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
skipping to change at line 6464 skipping to change at line 6625
{ {
IUnknownVtbl Base; IUnknownVtbl Base;
STDMETHOD(ReloadSystemMetrics)( STDMETHOD(ReloadSystemMetrics)(
ID2D1Factory *This ID2D1Factory *This
) PURE; ) PURE;
STDMETHOD_(void, GetDesktopDpi)( STDMETHOD_(void, GetDesktopDpi)(
ID2D1Factory *This, ID2D1Factory *This,
__out FLOAT *dpiX, _Out_ FLOAT *dpiX,
__out FLOAT *dpiY _Out_ FLOAT *dpiY
) PURE; ) PURE;
STDMETHOD(CreateRectangleGeometry)( STDMETHOD(CreateRectangleGeometry)(
ID2D1Factory *This, ID2D1Factory *This,
__in CONST D2D1_RECT_F *rectangle, _In_ CONST D2D1_RECT_F *rectangle,
__deref_out ID2D1RectangleGeometry **rectangleGeometry _Outptr_ ID2D1RectangleGeometry **rectangleGeometry
) PURE; ) PURE;
STDMETHOD(CreateRoundedRectangleGeometry)( STDMETHOD(CreateRoundedRectangleGeometry)(
ID2D1Factory *This, ID2D1Factory *This,
__in CONST D2D1_ROUNDED_RECT *roundedRectangle, _In_ CONST D2D1_ROUNDED_RECT *roundedRectangle,
__deref_out ID2D1RoundedRectangleGeometry **roundedRectangleGeometry _Outptr_ ID2D1RoundedRectangleGeometry **roundedRectangleGeometry
) PURE; ) PURE;
STDMETHOD(CreateEllipseGeometry)( STDMETHOD(CreateEllipseGeometry)(
ID2D1Factory *This, ID2D1Factory *This,
__in CONST D2D1_ELLIPSE *ellipse, _In_ CONST D2D1_ELLIPSE *ellipse,
__deref_out ID2D1EllipseGeometry **ellipseGeometry _Outptr_ ID2D1EllipseGeometry **ellipseGeometry
) PURE; ) PURE;
STDMETHOD(CreateGeometryGroup)( STDMETHOD(CreateGeometryGroup)(
ID2D1Factory *This, ID2D1Factory *This,
D2D1_FILL_MODE fillMode, D2D1_FILL_MODE fillMode,
__in_ecount(geometriesCount) ID2D1Geometry **geometries, _In_reads_(geometriesCount) ID2D1Geometry **geometries,
UINT geometriesCount, UINT32 geometriesCount,
__deref_out ID2D1GeometryGroup **geometryGroup _Outptr_ ID2D1GeometryGroup **geometryGroup
) PURE; ) PURE;
STDMETHOD(CreateTransformedGeometry)( STDMETHOD(CreateTransformedGeometry)(
ID2D1Factory *This, ID2D1Factory *This,
__in ID2D1Geometry *sourceGeometry, _In_ ID2D1Geometry *sourceGeometry,
__in CONST D2D1_MATRIX_3X2_F *transform, _In_ CONST D2D1_MATRIX_3X2_F *transform,
__deref_out ID2D1TransformedGeometry **transformedGeometry _Outptr_ ID2D1TransformedGeometry **transformedGeometry
) PURE; ) PURE;
STDMETHOD(CreatePathGeometry)( STDMETHOD(CreatePathGeometry)(
ID2D1Factory *This, ID2D1Factory *This,
__deref_out ID2D1PathGeometry **pathGeometry _Outptr_ ID2D1PathGeometry **pathGeometry
) PURE; ) PURE;
STDMETHOD(CreateStrokeStyle)( STDMETHOD(CreateStrokeStyle)(
ID2D1Factory *This, ID2D1Factory *This,
__in CONST D2D1_STROKE_STYLE_PROPERTIES *strokeStyleProperties, _In_ CONST D2D1_STROKE_STYLE_PROPERTIES *strokeStyleProperties,
__in_ecount_opt(dashesCount) CONST FLOAT *dashes, _In_reads_opt_(dashesCount) CONST FLOAT *dashes,
UINT dashesCount, UINT32 dashesCount,
__deref_out ID2D1StrokeStyle **strokeStyle _Outptr_ ID2D1StrokeStyle **strokeStyle
) PURE; ) PURE;
STDMETHOD(CreateDrawingStateBlock)( STDMETHOD(CreateDrawingStateBlock)(
ID2D1Factory *This, ID2D1Factory *This,
__in_opt CONST D2D1_DRAWING_STATE_DESCRIPTION *drawingStateDescription, _In_opt_ CONST D2D1_DRAWING_STATE_DESCRIPTION *drawingStateDescription,
__in_opt IDWriteRenderingParams *textRenderingParams, _In_opt_ IDWriteRenderingParams *textRenderingParams,
__deref_out ID2D1DrawingStateBlock **drawingStateBlock _Outptr_ ID2D1DrawingStateBlock **drawingStateBlock
) PURE; ) PURE;
STDMETHOD(CreateWicBitmapRenderTarget)( STDMETHOD(CreateWicBitmapRenderTarget)(
ID2D1Factory *This, ID2D1Factory *This,
__in IWICBitmap *target, _In_ IWICBitmap *target,
__in CONST D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties, _In_ CONST D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties,
__deref_out ID2D1RenderTarget **renderTarget _Outptr_ ID2D1RenderTarget **renderTarget
) PURE; ) PURE;
STDMETHOD(CreateHwndRenderTarget)( STDMETHOD(CreateHwndRenderTarget)(
ID2D1Factory *This, ID2D1Factory *This,
__in CONST D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties, _In_ CONST D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties,
__in CONST D2D1_HWND_RENDER_TARGET_PROPERTIES *hwndRenderTargetPropertie _In_ CONST D2D1_HWND_RENDER_TARGET_PROPERTIES *hwndRenderTargetPropertie
s, s,
__deref_out ID2D1HwndRenderTarget **hwndRenderTarget _Outptr_ ID2D1HwndRenderTarget **hwndRenderTarget
) PURE; ) PURE;
STDMETHOD(CreateDxgiSurfaceRenderTarget)( STDMETHOD(CreateDxgiSurfaceRenderTarget)(
ID2D1Factory *This, ID2D1Factory *This,
__in IDXGISurface *dxgiSurface, _In_ IDXGISurface *dxgiSurface,
__in CONST D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties, _In_ CONST D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties,
__deref_out ID2D1RenderTarget **renderTarget _Outptr_ ID2D1RenderTarget **renderTarget
) PURE; ) PURE;
STDMETHOD(CreateDCRenderTarget)( STDMETHOD(CreateDCRenderTarget)(
ID2D1Factory *This, ID2D1Factory *This,
__in CONST D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties, _In_ CONST D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties,
__deref_out ID2D1DCRenderTarget **dcRenderTarget _Outptr_ ID2D1DCRenderTarget **dcRenderTarget
) PURE; ) PURE;
} ID2D1FactoryVtbl; } ID2D1FactoryVtbl;
interface ID2D1Factory interface ID2D1Factory
{ {
CONST struct ID2D1FactoryVtbl *lpVtbl; CONST struct ID2D1FactoryVtbl *lpVtbl;
}; };
#define ID2D1Factory_QueryInterface(This, riid, ppv) \ #define ID2D1Factory_QueryInterface(This, riid, ppv) \
((This)->lpVtbl->Base.QueryInterface((IUnknown *)This, riid, ppv)) ((This)->lpVtbl->Base.QueryInterface((IUnknown *)This, riid, ppv))
skipping to change at line 6605 skipping to change at line 6766
#define ID2D1Factory_CreateHwndRenderTarget(This, renderTargetProperties, hwndRe nderTargetProperties, hwndRenderTarget) \ #define ID2D1Factory_CreateHwndRenderTarget(This, renderTargetProperties, hwndRe nderTargetProperties, hwndRenderTarget) \
((This)->lpVtbl->CreateHwndRenderTarget(This, renderTargetProperties, hwndRe nderTargetProperties, hwndRenderTarget)) ((This)->lpVtbl->CreateHwndRenderTarget(This, renderTargetProperties, hwndRe nderTargetProperties, hwndRenderTarget))
#define ID2D1Factory_CreateDxgiSurfaceRenderTarget(This, dxgiSurface, renderTarg etProperties, renderTarget) \ #define ID2D1Factory_CreateDxgiSurfaceRenderTarget(This, dxgiSurface, renderTarg etProperties, renderTarget) \
((This)->lpVtbl->CreateDxgiSurfaceRenderTarget(This, dxgiSurface, renderTarg etProperties, renderTarget)) ((This)->lpVtbl->CreateDxgiSurfaceRenderTarget(This, dxgiSurface, renderTarg etProperties, renderTarget))
#define ID2D1Factory_CreateDCRenderTarget(This, renderTargetProperties, dcRender Target) \ #define ID2D1Factory_CreateDCRenderTarget(This, renderTargetProperties, dcRender Target) \
((This)->lpVtbl->CreateDCRenderTarget(This, renderTargetProperties, dcRender Target)) ((This)->lpVtbl->CreateDCRenderTarget(This, renderTargetProperties, dcRender Target))
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
#endif #endif
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
#ifdef __cplusplus #ifdef __cplusplus
extern "C" extern "C"
{ {
#endif #endif
// //
// This export cannot be in a namespace because compiler name mangling isn't consistent // This export cannot be in a namespace because compiler name mangling isn't consistent
// also, this must be 'C' callable. // also, this must be 'C' callable.
// //
HRESULT WINAPI HRESULT WINAPI
D2D1CreateFactory( D2D1CreateFactory(
__in D2D1_FACTORY_TYPE factoryType, _In_ D2D1_FACTORY_TYPE factoryType,
__in REFIID riid, _In_ REFIID riid,
__in_opt CONST D2D1_FACTORY_OPTIONS *pFactoryOptions, _In_opt_ CONST D2D1_FACTORY_OPTIONS *pFactoryOptions,
__out void **ppIFactory _Out_ void **ppIFactory
); );
void WINAPI void WINAPI
D2D1MakeRotateMatrix( D2D1MakeRotateMatrix(
__in FLOAT angle, _In_ FLOAT angle,
__in D2D1_POINT_2F center, _In_ D2D1_POINT_2F center,
__out D2D1_MATRIX_3X2_F *matrix _Out_ D2D1_MATRIX_3X2_F *matrix
); );
void WINAPI void WINAPI
D2D1MakeSkewMatrix( D2D1MakeSkewMatrix(
__in FLOAT angleX, _In_ FLOAT angleX,
__in FLOAT angleY, _In_ FLOAT angleY,
__in D2D1_POINT_2F center, _In_ D2D1_POINT_2F center,
__out D2D1_MATRIX_3X2_F *matrix _Out_ D2D1_MATRIX_3X2_F *matrix
); );
BOOL WINAPI BOOL WINAPI
D2D1IsMatrixInvertible( D2D1IsMatrixInvertible(
__in CONST D2D1_MATRIX_3X2_F *matrix _In_ CONST D2D1_MATRIX_3X2_F *matrix
); );
BOOL WINAPI BOOL WINAPI
D2D1InvertMatrix( D2D1InvertMatrix(
__inout D2D1_MATRIX_3X2_F *matrix _Inout_ D2D1_MATRIX_3X2_F *matrix
); );
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
#ifndef D2D1FORCEINLINE #ifndef D2D1FORCEINLINE
#define D2D1FORCEINLINE FORCEINLINE #define D2D1FORCEINLINE FORCEINLINE
#endif // #ifndef D2D1FORCEINLINE #endif // #ifndef D2D1FORCEINLINE
#include <d2d1helper.h> #include <d2d1helper.h>
#ifndef D2D_USE_C_DEFINITIONS #ifndef D2D_USE_C_DEFINITIONS
COM_DECLSPEC_NOTHROW
inline inline
HRESULT HRESULT
D2D1CreateFactory( D2D1CreateFactory(
__in D2D1_FACTORY_TYPE factoryType, _In_ D2D1_FACTORY_TYPE factoryType,
__in REFIID riid, _In_ REFIID riid,
__out void **factory _Out_ void **factory
) )
{ {
return return
D2D1CreateFactory( D2D1CreateFactory(
factoryType, factoryType,
riid, riid,
NULL, NULL,
factory); factory);
} }
template<class Factory> template<class Factory>
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
D2D1CreateFactory( D2D1CreateFactory(
__in D2D1_FACTORY_TYPE factoryType, _In_ D2D1_FACTORY_TYPE factoryType,
__out Factory **factory _Out_ Factory **factory
) )
{ {
return return
D2D1CreateFactory( D2D1CreateFactory(
factoryType, factoryType,
__uuidof(Factory), __uuidof(Factory),
reinterpret_cast<void **>(factory)); reinterpret_cast<void **>(factory));
} }
template<class Factory> template<class Factory>
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
D2D1CreateFactory( D2D1CreateFactory(
__in D2D1_FACTORY_TYPE factoryType, _In_ D2D1_FACTORY_TYPE factoryType,
__in CONST D2D1_FACTORY_OPTIONS &factoryOptions, _In_ CONST D2D1_FACTORY_OPTIONS &factoryOptions,
__out Factory **ppFactory _Out_ Factory **ppFactory
) )
{ {
return return
D2D1CreateFactory( D2D1CreateFactory(
factoryType, factoryType,
__uuidof(Factory), __uuidof(Factory),
&factoryOptions, &factoryOptions,
reinterpret_cast<void **>(ppFactory)); reinterpret_cast<void **>(ppFactory));
} }
#endif // #ifndef D2D_USE_C_DEFINITIONS #endif // #ifndef D2D_USE_C_DEFINITIONS
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
#endif // #ifndef _D2D1_H_ #endif // #ifndef _D2D1_H_
 End of changes. 550 change blocks. 
699 lines changed or deleted 876 lines changed or added


 ddraw.h (6.1.7601.23418-Windows_7.0)   ddraw.h (6.3.9600.17415-Windows_8.1) 
skipping to change at line 12 skipping to change at line 12
* *
* Copyright (C) Microsoft Corporation. All Rights Reserved. * Copyright (C) Microsoft Corporation. All Rights Reserved.
* *
* File: ddraw.h * File: ddraw.h
* Content: DirectDraw include file * Content: DirectDraw include file
* *
***************************************************************************/ ***************************************************************************/
#ifndef __DDRAW_INCLUDED__ #ifndef __DDRAW_INCLUDED__
#define __DDRAW_INCLUDED__ #define __DDRAW_INCLUDED__
#include <winapifamily.h>
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
//Disable the nameless union warning when building internally //Disable the nameless union warning when building internally
#undef ENABLE_NAMELESS_UNION_PRAGMA #undef ENABLE_NAMELESS_UNION_PRAGMA
#ifdef DIRECTX_REDIST #ifdef DIRECTX_REDIST
#define ENABLE_NAMELESS_UNION_PRAGMA #define ENABLE_NAMELESS_UNION_PRAGMA
#endif #endif
#ifdef ENABLE_NAMELESS_UNION_PRAGMA #ifdef ENABLE_NAMELESS_UNION_PRAGMA
#if _MSC_VER >= 1200
#pragma warning(push)
#endif
#pragma warning(disable:4201) #pragma warning(disable:4201)
#endif #endif
/* /*
* If you wish an application built against the newest version of DirectDraw * If you wish an application built against the newest version of DirectDraw
* to run against an older DirectDraw run time then define DIRECTDRAW_VERSION * to run against an older DirectDraw run time then define DIRECTDRAW_VERSION
* to be the earlies version of DirectDraw you wish to run against. For, * to be the earlies version of DirectDraw you wish to run against. For,
* example if you wish an application to run against a DX 3 runtime define * example if you wish an application to run against a DX 3 runtime define
* DIRECTDRAW_VERSION to be 0x0300. * DIRECTDRAW_VERSION to be 0x0300.
*/ */
skipping to change at line 144 skipping to change at line 154
typedef struct _DDSURFACEDESC2 FAR *LPDDSURFACEDESC2; typedef struct _DDSURFACEDESC2 FAR *LPDDSURFACEDESC2;
typedef struct _DDCOLORCONTROL FAR *LPDDCOLORCONTROL; typedef struct _DDCOLORCONTROL FAR *LPDDCOLORCONTROL;
/* /*
* API's * API's
*/ */
#if (defined (WIN32) || defined( _WIN32 ) ) && !defined( _NO_COM ) #if (defined (WIN32) || defined( _WIN32 ) ) && !defined( _NO_COM )
//#if defined( _WIN32 ) && !defined( _NO_ENUM ) //#if defined( _WIN32 ) && !defined( _NO_ENUM )
typedef BOOL (FAR PASCAL * LPDDENUMCALLBACKA)(GUID FAR *, LPSTR, LPSTR, LPVO ID); typedef BOOL (FAR PASCAL * LPDDENUMCALLBACKA)(GUID FAR *, LPSTR, LPSTR, LPVO ID);
typedef BOOL (FAR PASCAL * LPDDENUMCALLBACKW)(GUID FAR *, LPWSTR, LPWSTR, LP VOID); typedef BOOL (FAR PASCAL * LPDDENUMCALLBACKW)(GUID FAR *, LPWSTR, LPWSTR, LP VOID);
extern HRESULT WINAPI DirectDrawEnumerateW( LPDDENUMCALLBACKW lpCallback, LP extern _Check_return_ HRESULT WINAPI DirectDrawEnumerateW( LPDDENUMCALLBACKW
VOID lpContext ); lpCallback, LPVOID lpContext );
extern HRESULT WINAPI DirectDrawEnumerateA( LPDDENUMCALLBACKA lpCallback, LP extern _Check_return_ HRESULT WINAPI DirectDrawEnumerateA( LPDDENUMCALLBACKA
VOID lpContext ); lpCallback, LPVOID lpContext );
/* /*
* Protect against old SDKs * Protect against old SDKs
*/ */
#if !defined(HMONITOR_DECLARED) && (WINVER < 0x0500) #if !defined(HMONITOR_DECLARED) && (WINVER < 0x0500)
#define HMONITOR_DECLARED #define HMONITOR_DECLARED
DECLARE_HANDLE(HMONITOR); DECLARE_HANDLE(HMONITOR);
#endif #endif
typedef BOOL (FAR PASCAL * LPDDENUMCALLBACKEXA)(GUID FAR *, LPSTR, LPSTR, LP VOID, HMONITOR); typedef BOOL (FAR PASCAL * LPDDENUMCALLBACKEXA)(GUID FAR *, LPSTR, LPSTR, LP VOID, HMONITOR);
typedef BOOL (FAR PASCAL * LPDDENUMCALLBACKEXW)(GUID FAR *, LPWSTR, LPWSTR, LPVOID, HMONITOR); typedef BOOL (FAR PASCAL * LPDDENUMCALLBACKEXW)(GUID FAR *, LPWSTR, LPWSTR, LPVOID, HMONITOR);
extern HRESULT WINAPI DirectDrawEnumerateExW( LPDDENUMCALLBACKEXW lpCallback , LPVOID lpContext, DWORD dwFlags); extern HRESULT WINAPI DirectDrawEnumerateExW( LPDDENUMCALLBACKEXW lpCallback , LPVOID lpContext, DWORD dwFlags);
skipping to change at line 173 skipping to change at line 183
typedef LPDDENUMCALLBACKEXW LPDDENUMCALLBACKEX; typedef LPDDENUMCALLBACKEXW LPDDENUMCALLBACKEX;
typedef LPDIRECTDRAWENUMERATEEXW LPDIRECTDRAWENUMERATEEX; typedef LPDIRECTDRAWENUMERATEEXW LPDIRECTDRAWENUMERATEEX;
#define DirectDrawEnumerateEx DirectDrawEnumerateExW #define DirectDrawEnumerateEx DirectDrawEnumerateExW
#else #else
typedef LPDDENUMCALLBACKA LPDDENUMCALLBACK; typedef LPDDENUMCALLBACKA LPDDENUMCALLBACK;
#define DirectDrawEnumerate DirectDrawEnumerateA #define DirectDrawEnumerate DirectDrawEnumerateA
typedef LPDDENUMCALLBACKEXA LPDDENUMCALLBACKEX; typedef LPDDENUMCALLBACKEXA LPDDENUMCALLBACKEX;
typedef LPDIRECTDRAWENUMERATEEXA LPDIRECTDRAWENUMERATEEX; typedef LPDIRECTDRAWENUMERATEEXA LPDIRECTDRAWENUMERATEEX;
#define DirectDrawEnumerateEx DirectDrawEnumerateExA #define DirectDrawEnumerateEx DirectDrawEnumerateExA
#endif #endif
extern HRESULT WINAPI DirectDrawCreate( GUID FAR *lpGUID, LPDIRECTDRAW FAR * lplpDD, IUnknown FAR *pUnkOuter ); extern _Check_return_ HRESULT WINAPI DirectDrawCreate( GUID FAR *lpGUID, LPD IRECTDRAW FAR *lplpDD, IUnknown FAR *pUnkOuter );
extern HRESULT WINAPI DirectDrawCreateEx( GUID FAR * lpGuid, LPVOID *lplpDD , REFIID iid,IUnknown FAR *pUnkOuter ); extern HRESULT WINAPI DirectDrawCreateEx( GUID FAR * lpGuid, LPVOID *lplpDD , REFIID iid,IUnknown FAR *pUnkOuter );
extern HRESULT WINAPI DirectDrawCreateClipper( DWORD dwFlags, LPDIRECTDRAWCL IPPER FAR *lplpDDClipper, IUnknown FAR *pUnkOuter ); extern _Check_return_ HRESULT WINAPI DirectDrawCreateClipper( DWORD dwFlags, LPDIRECTDRAWCLIPPER FAR *lplpDDClipper, IUnknown FAR *pUnkOuter );
#endif #endif
/* /*
* Flags for DirectDrawEnumerateEx * Flags for DirectDrawEnumerateEx
* DirectDrawEnumerateEx supercedes DirectDrawEnumerate. You must use GetProcAdd ress to * DirectDrawEnumerateEx supercedes DirectDrawEnumerate. You must use GetProcAdd ress to
* obtain a function pointer (of type LPDIRECTDRAWENUMERATEEX) to DirectDrawEnum erateEx. * obtain a function pointer (of type LPDIRECTDRAWENUMERATEEX) to DirectDrawEnum erateEx.
* By default, only the primary display device is enumerated. * By default, only the primary display device is enumerated.
* DirectDrawEnumerate is equivalent to DirectDrawEnumerate(,,DDENUM_NONDISPLAYD EVICES) * DirectDrawEnumerate is equivalent to DirectDrawEnumerate(,,DDENUM_NONDISPLAYD EVICES)
*/ */
/* /*
skipping to change at line 212 skipping to change at line 222
#define REGSTR_KEY_DDHW_DESCRIPTION "Description" #define REGSTR_KEY_DDHW_DESCRIPTION "Description"
#define REGSTR_KEY_DDHW_DRIVERNAME "DriverName" #define REGSTR_KEY_DDHW_DRIVERNAME "DriverName"
#define REGSTR_PATH_DDHW "Hardware\\DirectDrawDrivers" #define REGSTR_PATH_DDHW "Hardware\\DirectDrawDrivers"
#define DDCREATE_HARDWAREONLY 0x00000001l #define DDCREATE_HARDWAREONLY 0x00000001l
#define DDCREATE_EMULATIONONLY 0x00000002l #define DDCREATE_EMULATIONONLY 0x00000002l
#if defined(WINNT) || !defined(WIN32) #if defined(WINNT) || !defined(WIN32)
#ifndef _HRESULT_DEFINED #ifndef _HRESULT_DEFINED
#define _HRESULT_DEFINED #define _HRESULT_DEFINED
typedef __success(return >= 0) long HRESULT; typedef _Return_type_success_(return >= 0) long HRESULT;
#endif // !_HRESULT_DEFINED #endif // !_HRESULT_DEFINED
#endif #endif
//#ifndef WINNT //#ifndef WINNT
typedef HRESULT (FAR PASCAL * LPDDENUMMODESCALLBACK)(LPDDSURFACEDESC, LPVOID); typedef HRESULT (FAR PASCAL * LPDDENUMMODESCALLBACK)(LPDDSURFACEDESC, LPVOID);
typedef HRESULT (FAR PASCAL * LPDDENUMMODESCALLBACK2)(LPDDSURFACEDESC2, LPVOID); typedef HRESULT (FAR PASCAL * LPDDENUMMODESCALLBACK2)(LPDDSURFACEDESC2, LPVOID);
typedef HRESULT (FAR PASCAL * LPDDENUMSURFACESCALLBACK)(LPDIRECTDRAWSURFACE, LPD DSURFACEDESC, LPVOID); typedef HRESULT (FAR PASCAL * LPDDENUMSURFACESCALLBACK)(LPDIRECTDRAWSURFACE, LPD DSURFACEDESC, LPVOID);
typedef HRESULT (FAR PASCAL * LPDDENUMSURFACESCALLBACK2)(LPDIRECTDRAWSURFACE4, L PDDSURFACEDESC2, LPVOID); typedef HRESULT (FAR PASCAL * LPDDENUMSURFACESCALLBACK2)(LPDIRECTDRAWSURFACE4, L PDDSURFACEDESC2, LPVOID);
typedef HRESULT (FAR PASCAL * LPDDENUMSURFACESCALLBACK7)(LPDIRECTDRAWSURFACE7, L PDDSURFACEDESC2, LPVOID); typedef HRESULT (FAR PASCAL * LPDDENUMSURFACESCALLBACK7)(LPDIRECTDRAWSURFACE7, L PDDSURFACEDESC2, LPVOID);
//#endif //#endif
skipping to change at line 5764 skipping to change at line 5774
*/ */
#define DDERR_NOTINITIALIZED CO_E_NOTINITIALIZED #define DDERR_NOTINITIALIZED CO_E_NOTINITIALIZED
/* Alpha bit depth constants */ /* Alpha bit depth constants */
#ifdef __cplusplus #ifdef __cplusplus
}; };
#endif #endif
#ifdef ENABLE_NAMELESS_UNION_PRAGMA #ifdef ENABLE_NAMELESS_UNION_PRAGMA
#if _MSC_VER >= 1200
#pragma warning(pop)
#else
#pragma warning(default:4201) #pragma warning(default:4201)
#endif #endif
#endif
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#endif //__DDRAW_INCLUDED__ #endif //__DDRAW_INCLUDED__
 End of changes. 8 change blocks. 
7 lines changed or deleted 21 lines changed or added


 gdiplusgraphics.h (6.1.7601.23418-Windows_7.0)   gdiplusgraphics.h (6.3.9600.17415-Windows_8.1) 
skipping to change at line 17 skipping to change at line 17
* GdiplusGraphics.h * GdiplusGraphics.h
* *
* Abstract: * Abstract:
* *
* GDI+ Graphics Object * GDI+ Graphics Object
* *
\**************************************************************************/ \**************************************************************************/
#ifndef _GDIPLUSGRAPHICS_H #ifndef _GDIPLUSGRAPHICS_H
#define _GDIPLUSGRAPHICS_H #define _GDIPLUSGRAPHICS_H
#include <winapifamily.h>
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
class Graphics : public GdiplusBase class Graphics : public GdiplusBase
{ {
public: public:
friend class Region; friend class Region;
friend class GraphicsPath; friend class GraphicsPath;
friend class Image; friend class Image;
friend class Bitmap; friend class Bitmap;
friend class Metafile; friend class Metafile;
friend class Font; friend class Font;
skipping to change at line 2543 skipping to change at line 2547
nativeGraphics = g->nativeGraphics; nativeGraphics = g->nativeGraphics;
if(pen) if(pen)
nativePen = pen->nativePen; nativePen = pen->nativePen;
SetStatus(DllExports::GdipIsOutlineVisiblePathPointI(nativePath, SetStatus(DllExports::GdipIsOutlineVisiblePathPointI(nativePath,
x, y, nativePen, native Graphics, x, y, nativePen, native Graphics,
&booln)); &booln));
return booln; return booln;
} }
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#endif #endif
 End of changes. 2 change blocks. 
0 lines changed or deleted 7 lines changed or added


 multimon.h (6.1.7601.23418-Windows_7.0)   multimon.h (6.3.9600.17415-Windows_8.1) 
skipping to change at line 17 skipping to change at line 17
// GetSystemMetrics() for new metrics, and the new multimonitor APIs // GetSystemMetrics() for new metrics, and the new multimonitor APIs
// will act like only one display is present on a Win32 OS without // will act like only one display is present on a Win32 OS without
// multimonitor APIs. // multimonitor APIs.
// //
// Exactly one source must include this with COMPILE_MULTIMON_STUBS defined. // Exactly one source must include this with COMPILE_MULTIMON_STUBS defined.
// //
// Copyright (c) Microsoft Corporation. All rights reserved. // Copyright (c) Microsoft Corporation. All rights reserved.
// //
//============================================================================= //=============================================================================
#include <winapifamily.h>
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { // Assume C declarations for C++ extern "C" { // Assume C declarations for C++
#endif // __cplusplus #endif // __cplusplus
// //
// If we are building with Win95/NT4 headers, we need to declare // If we are building with Win95/NT4 headers, we need to declare
// the multimonitor-related metrics and APIs ourselves. // the multimonitor-related metrics and APIs ourselves.
// //
#ifndef SM_CMONITORS #ifndef SM_CMONITORS
skipping to change at line 322 skipping to change at line 327
GetWindowPlacement(hWnd, &wp) : GetWindowPlacement(hWnd, &wp) :
GetWindowRect(hWnd, &wp.rcNormalPosition)) { GetWindowRect(hWnd, &wp.rcNormalPosition)) {
return xMonitorFromRect(&wp.rcNormalPosition, dwFlags); return xMonitorFromRect(&wp.rcNormalPosition, dwFlags);
} }
return NULL; return NULL;
} }
BOOL WINAPI BOOL WINAPI
xGetMonitorInfo(HMONITOR hMonitor, __inout LPMONITORINFO lpMonitorInfo) xGetMonitorInfo(HMONITOR hMonitor, _Inout_ LPMONITORINFO lpMonitorInfo)
{ {
RECT rcWork; RECT rcWork;
if (InitMultipleMonitorStubs()) if (InitMultipleMonitorStubs())
{ {
BOOL f = g_pfnGetMonitorInfo(hMonitor, lpMonitorInfo); BOOL f = g_pfnGetMonitorInfo(hMonitor, lpMonitorInfo);
#ifdef UNICODE #ifdef UNICODE
if (f && !g_fMultimonPlatformNT && (lpMonitorInfo->cbSize >= sizeof(MONI TORINFOEX))) if (f && !g_fMultimonPlatformNT && (lpMonitorInfo->cbSize >= sizeof(MONI TORINFOEX)))
{ {
MultiByteToWideChar(CP_ACP, 0, MultiByteToWideChar(CP_ACP, 0,
skipping to change at line 439 skipping to change at line 444
xPRIMARY_MONITOR, xPRIMARY_MONITOR,
hdcOptionalForPainting, hdcOptionalForPainting,
&rcLimit, &rcLimit,
dwData); dwData);
} }
BOOL WINAPI BOOL WINAPI
xEnumDisplayDevices( xEnumDisplayDevices(
PVOID Unused, PVOID Unused,
DWORD iDevNum, DWORD iDevNum,
__inout PDISPLAY_DEVICE lpDisplayDevice, _Inout_ PDISPLAY_DEVICE lpDisplayDevice,
DWORD dwFlags) DWORD dwFlags)
{ {
if (InitMultipleMonitorStubs()) if (InitMultipleMonitorStubs())
return g_pfnEnumDisplayDevices(Unused, iDevNum, lpDisplayDevice, dwFlags ); return g_pfnEnumDisplayDevices(Unused, iDevNum, lpDisplayDevice, dwFlags );
if (Unused != NULL) if (Unused != NULL)
return FALSE; return FALSE;
if (iDevNum != 0) if (iDevNum != 0)
return FALSE; return FALSE;
skipping to change at line 501 skipping to change at line 506
#define MonitorFromWindow xMonitorFromWindow #define MonitorFromWindow xMonitorFromWindow
#define MonitorFromRect xMonitorFromRect #define MonitorFromRect xMonitorFromRect
#define MonitorFromPoint xMonitorFromPoint #define MonitorFromPoint xMonitorFromPoint
#define GetMonitorInfo xGetMonitorInfo #define GetMonitorInfo xGetMonitorInfo
#define EnumDisplayMonitors xEnumDisplayMonitors #define EnumDisplayMonitors xEnumDisplayMonitors
#define EnumDisplayDevices xEnumDisplayDevices #define EnumDisplayDevices xEnumDisplayDevices
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif // __cplusplus #endif // __cplusplus
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
 End of changes. 4 change blocks. 
2 lines changed or deleted 7 lines changed or added


 wingdi.h (6.1.7601.23418-Windows_7.0)   wingdi.h (6.3.9600.17415-Windows_8.1) 
#include <winapifamily.h>
/************************************************************************** /**************************************************************************
* * * *
* wingdi.h -- GDI procedure declarations, constant definitions and macros * * wingdi.h -- GDI procedure declarations, constant definitions and macros *
* * * *
* Copyright (c) Microsoft Corp. All rights reserved. * * Copyright (c) Microsoft Corp. All rights reserved. *
* * * *
**************************************************************************/ **************************************************************************/
#ifndef _WINGDI_ #ifndef _WINGDI_
#define _WINGDI_ #define _WINGDI_
skipping to change at line 280 skipping to change at line 282
#define META_SETLAYOUT 0x0149 #define META_SETLAYOUT 0x0149
#endif /* WINVER >= 0x0500 */ #endif /* WINVER >= 0x0500 */
#define META_DELETEOBJECT 0x01f0 #define META_DELETEOBJECT 0x01f0
#define META_CREATEPALETTE 0x00f7 #define META_CREATEPALETTE 0x00f7
#define META_CREATEPATTERNBRUSH 0x01F9 #define META_CREATEPATTERNBRUSH 0x01F9
#define META_CREATEPENINDIRECT 0x02FA #define META_CREATEPENINDIRECT 0x02FA
#define META_CREATEFONTINDIRECT 0x02FB #define META_CREATEFONTINDIRECT 0x02FB
#define META_CREATEBRUSHINDIRECT 0x02FC #define META_CREATEBRUSHINDIRECT 0x02FC
#define META_CREATEREGION 0x06FF #define META_CREATEREGION 0x06FF
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
#if(WINVER >= 0x0400) #if(WINVER >= 0x0400)
typedef struct _DRAWPATRECT { typedef struct _DRAWPATRECT {
POINT ptPosition; POINT ptPosition;
POINT ptSize; POINT ptSize;
WORD wStyle; WORD wStyle;
WORD wPattern; WORD wPattern;
} DRAWPATRECT, *PDRAWPATRECT; } DRAWPATRECT, *PDRAWPATRECT;
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#endif /* NOMETAFILE */ #endif /* NOMETAFILE */
/* GDI Escapes */ /* GDI Escapes */
#define NEWFRAME 1 #define NEWFRAME 1
#define ABORTDOC 2 #define ABORTDOC 2
#define NEXTBAND 3 #define NEXTBAND 3
#define SETCOLORTABLE 4 #define SETCOLORTABLE 4
#define GETCOLORTABLE 5 #define GETCOLORTABLE 5
#define FLUSHOUTPUT 6 #define FLUSHOUTPUT 6
#define DRAFTMODE 7 #define DRAFTMODE 7
skipping to change at line 401 skipping to change at line 409
#define SPCLPASSTHROUGH2 4568 /* new escape for NT5 pscript driver */ #define SPCLPASSTHROUGH2 4568 /* new escape for NT5 pscript driver */
/* /*
* Parameters for POSTSCRIPT_IDENTIFY escape * Parameters for POSTSCRIPT_IDENTIFY escape
*/ */
#define PSIDENT_GDICENTRIC 0 #define PSIDENT_GDICENTRIC 0
#define PSIDENT_PSCENTRIC 1 #define PSIDENT_PSCENTRIC 1
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
/* /*
* Header structure for the input buffer to POSTSCRIPT_INJECTION escape * Header structure for the input buffer to POSTSCRIPT_INJECTION escape
*/ */
typedef struct _PSINJECTDATA { typedef struct _PSINJECTDATA {
DWORD DataBytes; /* number of raw data bytes (NOT including this head er) */ DWORD DataBytes; /* number of raw data bytes (NOT including this head er) */
WORD InjectionPoint; /* injection point */ WORD InjectionPoint; /* injection point */
WORD PageNumber; /* page number to apply the injection */ WORD PageNumber; /* page number to apply the injection */
/* Followed by raw data to be injected */ /* Followed by raw data to be injected */
} PSINJECTDATA, *PPSINJECTDATA; } PSINJECTDATA, *PPSINJECTDATA;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
/* /*
* Constants for PSINJECTDATA.InjectionPoint field * Constants for PSINJECTDATA.InjectionPoint field
*/ */
#define PSINJECT_BEGINSTREAM 1 #define PSINJECT_BEGINSTREAM 1
#define PSINJECT_PSADOBE 2 #define PSINJECT_PSADOBE 2
#define PSINJECT_PAGESATEND 3 #define PSINJECT_PAGESATEND 3
#define PSINJECT_PAGES 4 #define PSINJECT_PAGES 4
#define PSINJECT_DOCNEEDEDRES 5 #define PSINJECT_DOCNEEDEDRES 5
skipping to change at line 483 skipping to change at line 497
#if (_WIN32_WINNT >= _WIN32_WINNT_WINXP) #if (_WIN32_WINNT >= _WIN32_WINNT_WINXP)
// //
// The range of selectors between FEATURESETTING_PRIVATE_BEGIN and // The range of selectors between FEATURESETTING_PRIVATE_BEGIN and
// FEATURESETTING_PRIVATE_END is reserved by Microsoft for private use // FEATURESETTING_PRIVATE_END is reserved by Microsoft for private use
// //
#define FEATURESETTING_PRIVATE_BEGIN 0x1000 #define FEATURESETTING_PRIVATE_BEGIN 0x1000
#define FEATURESETTING_PRIVATE_END 0x1FFF #define FEATURESETTING_PRIVATE_END 0x1FFF
#endif // (_WIN32_WINNT >= _WIN32_WINNT_WINXP) #endif // (_WIN32_WINNT >= _WIN32_WINNT_WINXP)
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
/* /*
* Information about output options * Information about output options
*/ */
typedef struct _PSFEATURE_OUTPUT { typedef struct _PSFEATURE_OUTPUT {
BOOL bPageIndependent; BOOL bPageIndependent;
BOOL bSetPageDevice; BOOL bSetPageDevice;
} PSFEATURE_OUTPUT, *PPSFEATURE_OUTPUT; } PSFEATURE_OUTPUT, *PPSFEATURE_OUTPUT;
skipping to change at line 508 skipping to change at line 525
typedef struct _PSFEATURE_CUSTPAPER { typedef struct _PSFEATURE_CUSTPAPER {
LONG lOrientation; LONG lOrientation;
LONG lWidth; LONG lWidth;
LONG lHeight; LONG lHeight;
LONG lWidthOffset; LONG lWidthOffset;
LONG lHeightOffset; LONG lHeightOffset;
} PSFEATURE_CUSTPAPER, *PPSFEATURE_CUSTPAPER; } PSFEATURE_CUSTPAPER, *PPSFEATURE_CUSTPAPER;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
/* Value returned for FEATURESETTING_PROTOCOL */ /* Value returned for FEATURESETTING_PROTOCOL */
#define PSPROTOCOL_ASCII 0 #define PSPROTOCOL_ASCII 0
#define PSPROTOCOL_BCP 1 #define PSPROTOCOL_BCP 1
#define PSPROTOCOL_TBCP 2 #define PSPROTOCOL_TBCP 2
#define PSPROTOCOL_BINARY 3 #define PSPROTOCOL_BINARY 3
/* Flag returned from QUERYDIBSUPPORT */ /* Flag returned from QUERYDIBSUPPORT */
#define QDI_SETDIBITS 1 #define QDI_SETDIBITS 1
#define QDI_GETDIBITS 2 #define QDI_GETDIBITS 2
#define QDI_DIBTOSCREEN 4 #define QDI_DIBTOSCREEN 4
skipping to change at line 557 skipping to change at line 577
/* xform stuff */ /* xform stuff */
#define MWT_IDENTITY 1 #define MWT_IDENTITY 1
#define MWT_LEFTMULTIPLY 2 #define MWT_LEFTMULTIPLY 2
#define MWT_RIGHTMULTIPLY 3 #define MWT_RIGHTMULTIPLY 3
#define MWT_MIN MWT_IDENTITY #define MWT_MIN MWT_IDENTITY
#define MWT_MAX MWT_RIGHTMULTIPLY #define MWT_MAX MWT_RIGHTMULTIPLY
#define _XFORM_ #define _XFORM_
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
typedef struct tagXFORM typedef struct tagXFORM
{ {
FLOAT eM11; FLOAT eM11;
FLOAT eM12; FLOAT eM12;
FLOAT eM21; FLOAT eM21;
FLOAT eM22; FLOAT eM22;
FLOAT eDx; FLOAT eDx;
FLOAT eDy; FLOAT eDy;
} XFORM, *PXFORM, FAR *LPXFORM; } XFORM, *PXFORM, FAR *LPXFORM;
skipping to change at line 579 skipping to change at line 603
{ {
LONG bmType; LONG bmType;
LONG bmWidth; LONG bmWidth;
LONG bmHeight; LONG bmHeight;
LONG bmWidthBytes; LONG bmWidthBytes;
WORD bmPlanes; WORD bmPlanes;
WORD bmBitsPixel; WORD bmBitsPixel;
LPVOID bmBits; LPVOID bmBits;
} BITMAP, *PBITMAP, NEAR *NPBITMAP, FAR *LPBITMAP; } BITMAP, *PBITMAP, NEAR *NPBITMAP, FAR *LPBITMAP;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
#include <pshpack1.h> #include <pshpack1.h>
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
typedef struct tagRGBTRIPLE { typedef struct tagRGBTRIPLE {
BYTE rgbtBlue; BYTE rgbtBlue;
BYTE rgbtGreen; BYTE rgbtGreen;
BYTE rgbtRed; BYTE rgbtRed;
} RGBTRIPLE, *PRGBTRIPLE, NEAR *NPRGBTRIPLE, FAR *LPRGBTRIPLE; } RGBTRIPLE, *PRGBTRIPLE, NEAR *NPRGBTRIPLE, FAR *LPRGBTRIPLE;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
#include <poppack.h> #include <poppack.h>
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
typedef struct tagRGBQUAD { typedef struct tagRGBQUAD {
BYTE rgbBlue; BYTE rgbBlue;
BYTE rgbGreen; BYTE rgbGreen;
BYTE rgbRed; BYTE rgbRed;
BYTE rgbReserved; BYTE rgbReserved;
} RGBQUAD; } RGBQUAD;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef RGBQUAD FAR* LPRGBQUAD; typedef RGBQUAD FAR* LPRGBQUAD;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#if(WINVER >= 0x0400) #if(WINVER >= 0x0400)
/* Image Color Matching color definitions */ /* Image Color Matching color definitions */
#define CS_ENABLE 0x00000001L #define CS_ENABLE 0x00000001L
#define CS_DISABLE 0x00000002L #define CS_DISABLE 0x00000002L
#define CS_DELETE_TRANSFORM 0x00000003L #define CS_DELETE_TRANSFORM 0x00000003L
/* Logcolorspace signature */ /* Logcolorspace signature */
#define LCS_SIGNATURE 'PSOC' #define LCS_SIGNATURE 'PSOC'
/* Logcolorspace lcsType values */ /* Logcolorspace lcsType values */
#define LCS_sRGB 'sRGB' #define LCS_sRGB 'sRGB'
#define LCS_WINDOWS_COLOR_SPACE 'Win ' // Windows default color space #define LCS_WINDOWS_COLOR_SPACE 'Win ' // Windows default color space
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
typedef LONG LCSCSTYPE; typedef LONG LCSCSTYPE;
#define LCS_CALIBRATED_RGB 0x00000000L #define LCS_CALIBRATED_RGB 0x00000000L
typedef LONG LCSGAMUTMATCH; typedef LONG LCSGAMUTMATCH;
#define LCS_GM_BUSINESS 0x00000001L #define LCS_GM_BUSINESS 0x00000001L
#define LCS_GM_GRAPHICS 0x00000002L #define LCS_GM_GRAPHICS 0x00000002L
#define LCS_GM_IMAGES 0x00000004L #define LCS_GM_IMAGES 0x00000004L
#define LCS_GM_ABS_COLORIMETRIC 0x00000008L #define LCS_GM_ABS_COLORIMETRIC 0x00000008L
/* ICM Defines for results from CheckColorInGamut() */ /* ICM Defines for results from CheckColorInGamut() */
#define CM_OUT_OF_GAMUT 255 #define CM_OUT_OF_GAMUT 255
#define CM_IN_GAMUT 0 #define CM_IN_GAMUT 0
/* UpdateICMRegKey Constants */ /* UpdateICMRegKey Constants */
skipping to change at line 654 skipping to change at line 707
/* ICM Color Definitions */ /* ICM Color Definitions */
// The following two structures are used for defining RGB's in terms of CIEXYZ. // The following two structures are used for defining RGB's in terms of CIEXYZ.
typedef struct tagCIEXYZ typedef struct tagCIEXYZ
{ {
FXPT2DOT30 ciexyzX; FXPT2DOT30 ciexyzX;
FXPT2DOT30 ciexyzY; FXPT2DOT30 ciexyzY;
FXPT2DOT30 ciexyzZ; FXPT2DOT30 ciexyzZ;
} CIEXYZ; } CIEXYZ;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef CIEXYZ FAR *LPCIEXYZ; typedef CIEXYZ FAR *LPCIEXYZ;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
typedef struct tagICEXYZTRIPLE typedef struct tagICEXYZTRIPLE
{ {
CIEXYZ ciexyzRed; CIEXYZ ciexyzRed;
CIEXYZ ciexyzGreen; CIEXYZ ciexyzGreen;
CIEXYZ ciexyzBlue; CIEXYZ ciexyzBlue;
} CIEXYZTRIPLE; } CIEXYZTRIPLE;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef CIEXYZTRIPLE FAR *LPCIEXYZTRIPLE; typedef CIEXYZTRIPLE FAR *LPCIEXYZTRIPLE;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
// The next structures the logical color space. Unlike pens and brushes, // The next structures the logical color space. Unlike pens and brushes,
// but like palettes, there is only one way to create a LogColorSpace. // but like palettes, there is only one way to create a LogColorSpace.
// A pointer to it must be passed, its elements can't be pushed as // A pointer to it must be passed, its elements can't be pushed as
// arguments. // arguments.
typedef struct tagLOGCOLORSPACEA { typedef struct tagLOGCOLORSPACEA {
DWORD lcsSignature; DWORD lcsSignature;
DWORD lcsVersion; DWORD lcsVersion;
DWORD lcsSize; DWORD lcsSize;
LCSCSTYPE lcsCSType; LCSCSTYPE lcsCSType;
skipping to change at line 701 skipping to change at line 780
WCHAR lcsFilename[MAX_PATH]; WCHAR lcsFilename[MAX_PATH];
} LOGCOLORSPACEW, *LPLOGCOLORSPACEW; } LOGCOLORSPACEW, *LPLOGCOLORSPACEW;
#ifdef UNICODE #ifdef UNICODE
typedef LOGCOLORSPACEW LOGCOLORSPACE; typedef LOGCOLORSPACEW LOGCOLORSPACE;
typedef LPLOGCOLORSPACEW LPLOGCOLORSPACE; typedef LPLOGCOLORSPACEW LPLOGCOLORSPACE;
#else #else
typedef LOGCOLORSPACEA LOGCOLORSPACE; typedef LOGCOLORSPACEA LOGCOLORSPACE;
typedef LPLOGCOLORSPACEA LPLOGCOLORSPACE; typedef LPLOGCOLORSPACEA LPLOGCOLORSPACE;
#endif // UNICODE #endif // UNICODE
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
/* structures for defining DIBs */ /* structures for defining DIBs */
typedef struct tagBITMAPCOREHEADER { typedef struct tagBITMAPCOREHEADER {
DWORD bcSize; /* used to get to color table */ DWORD bcSize; /* used to get to color table */
WORD bcWidth; WORD bcWidth;
WORD bcHeight; WORD bcHeight;
WORD bcPlanes; WORD bcPlanes;
WORD bcBitCount; WORD bcBitCount;
} BITMAPCOREHEADER, FAR *LPBITMAPCOREHEADER, *PBITMAPCOREHEADER; } BITMAPCOREHEADER, FAR *LPBITMAPCOREHEADER, *PBITMAPCOREHEADER;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
typedef struct tagBITMAPINFOHEADER{ typedef struct tagBITMAPINFOHEADER{
DWORD biSize; DWORD biSize;
LONG biWidth; LONG biWidth;
LONG biHeight; LONG biHeight;
WORD biPlanes; WORD biPlanes;
WORD biBitCount; WORD biBitCount;
DWORD biCompression; DWORD biCompression;
DWORD biSizeImage; DWORD biSizeImage;
LONG biXPelsPerMeter; LONG biXPelsPerMeter;
LONG biYPelsPerMeter; LONG biYPelsPerMeter;
DWORD biClrUsed; DWORD biClrUsed;
DWORD biClrImportant; DWORD biClrImportant;
} BITMAPINFOHEADER, FAR *LPBITMAPINFOHEADER, *PBITMAPINFOHEADER; } BITMAPINFOHEADER, FAR *LPBITMAPINFOHEADER, *PBITMAPINFOHEADER;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
#if(WINVER >= 0x0400) #if(WINVER >= 0x0400)
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef struct { typedef struct {
DWORD bV4Size; DWORD bV4Size;
LONG bV4Width; LONG bV4Width;
LONG bV4Height; LONG bV4Height;
WORD bV4Planes; WORD bV4Planes;
WORD bV4BitCount; WORD bV4BitCount;
DWORD bV4V4Compression; DWORD bV4V4Compression;
DWORD bV4SizeImage; DWORD bV4SizeImage;
LONG bV4XPelsPerMeter; LONG bV4XPelsPerMeter;
LONG bV4YPelsPerMeter; LONG bV4YPelsPerMeter;
skipping to change at line 749 skipping to change at line 847
DWORD bV4RedMask; DWORD bV4RedMask;
DWORD bV4GreenMask; DWORD bV4GreenMask;
DWORD bV4BlueMask; DWORD bV4BlueMask;
DWORD bV4AlphaMask; DWORD bV4AlphaMask;
DWORD bV4CSType; DWORD bV4CSType;
CIEXYZTRIPLE bV4Endpoints; CIEXYZTRIPLE bV4Endpoints;
DWORD bV4GammaRed; DWORD bV4GammaRed;
DWORD bV4GammaGreen; DWORD bV4GammaGreen;
DWORD bV4GammaBlue; DWORD bV4GammaBlue;
} BITMAPV4HEADER, FAR *LPBITMAPV4HEADER, *PBITMAPV4HEADER; } BITMAPV4HEADER, FAR *LPBITMAPV4HEADER, *PBITMAPV4HEADER;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
#if (WINVER >= 0x0500) #if (WINVER >= 0x0500)
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef struct { typedef struct {
DWORD bV5Size; DWORD bV5Size;
LONG bV5Width; LONG bV5Width;
LONG bV5Height; LONG bV5Height;
WORD bV5Planes; WORD bV5Planes;
WORD bV5BitCount; WORD bV5BitCount;
DWORD bV5Compression; DWORD bV5Compression;
DWORD bV5SizeImage; DWORD bV5SizeImage;
LONG bV5XPelsPerMeter; LONG bV5XPelsPerMeter;
LONG bV5YPelsPerMeter; LONG bV5YPelsPerMeter;
skipping to change at line 779 skipping to change at line 883
CIEXYZTRIPLE bV5Endpoints; CIEXYZTRIPLE bV5Endpoints;
DWORD bV5GammaRed; DWORD bV5GammaRed;
DWORD bV5GammaGreen; DWORD bV5GammaGreen;
DWORD bV5GammaBlue; DWORD bV5GammaBlue;
DWORD bV5Intent; DWORD bV5Intent;
DWORD bV5ProfileData; DWORD bV5ProfileData;
DWORD bV5ProfileSize; DWORD bV5ProfileSize;
DWORD bV5Reserved; DWORD bV5Reserved;
} BITMAPV5HEADER, FAR *LPBITMAPV5HEADER, *PBITMAPV5HEADER; } BITMAPV5HEADER, FAR *LPBITMAPV5HEADER, *PBITMAPV5HEADER;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
// Values for bV5CSType // Values for bV5CSType
#define PROFILE_LINKED 'LINK' #define PROFILE_LINKED 'LINK'
#define PROFILE_EMBEDDED 'MBED' #define PROFILE_EMBEDDED 'MBED'
#endif #endif
/* constants for the biCompression field */ /* constants for the biCompression field */
#define BI_RGB 0L #define BI_RGB 0L
#define BI_RLE8 1L #define BI_RLE8 1L
#define BI_RLE4 2L #define BI_RLE4 2L
#define BI_BITFIELDS 3L #define BI_BITFIELDS 3L
#define BI_JPEG 4L #define BI_JPEG 4L
#define BI_PNG 5L #define BI_PNG 5L
#if (_WIN32_WINNT >= _WIN32_WINNT_NT4) #if (_WIN32_WINNT >= _WIN32_WINNT_NT4)
#endif #endif
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
typedef struct tagBITMAPINFO { typedef struct tagBITMAPINFO {
BITMAPINFOHEADER bmiHeader; BITMAPINFOHEADER bmiHeader;
RGBQUAD bmiColors[1]; RGBQUAD bmiColors[1];
} BITMAPINFO, FAR *LPBITMAPINFO, *PBITMAPINFO; } BITMAPINFO, FAR *LPBITMAPINFO, *PBITMAPINFO;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef struct tagBITMAPCOREINFO { typedef struct tagBITMAPCOREINFO {
BITMAPCOREHEADER bmciHeader; BITMAPCOREHEADER bmciHeader;
RGBTRIPLE bmciColors[1]; RGBTRIPLE bmciColors[1];
} BITMAPCOREINFO, FAR *LPBITMAPCOREINFO, *PBITMAPCOREINFO; } BITMAPCOREINFO, FAR *LPBITMAPCOREINFO, *PBITMAPCOREINFO;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#include <pshpack2.h> #include <pshpack2.h>
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef struct tagBITMAPFILEHEADER { typedef struct tagBITMAPFILEHEADER {
WORD bfType; WORD bfType;
DWORD bfSize; DWORD bfSize;
WORD bfReserved1; WORD bfReserved1;
WORD bfReserved2; WORD bfReserved2;
DWORD bfOffBits; DWORD bfOffBits;
} BITMAPFILEHEADER, FAR *LPBITMAPFILEHEADER, *PBITMAPFILEHEADER; } BITMAPFILEHEADER, FAR *LPBITMAPFILEHEADER, *PBITMAPFILEHEADER;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#include <poppack.h> #include <poppack.h>
#define MAKEPOINTS(l) (*((POINTS FAR *)&(l))) #define MAKEPOINTS(l) (*((POINTS FAR *)&(l)))
#if(WINVER >= 0x0400) #if(WINVER >= 0x0400)
#ifndef NOFONTSIG #ifndef NOFONTSIG
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef struct tagFONTSIGNATURE typedef struct tagFONTSIGNATURE
{ {
DWORD fsUsb[4]; DWORD fsUsb[4];
DWORD fsCsb[2]; DWORD fsCsb[2];
} FONTSIGNATURE, *PFONTSIGNATURE,FAR *LPFONTSIGNATURE; } FONTSIGNATURE, *PFONTSIGNATURE,FAR *LPFONTSIGNATURE;
typedef struct tagCHARSETINFO typedef struct tagCHARSETINFO
{ {
UINT ciCharset; UINT ciCharset;
UINT ciACP; UINT ciACP;
FONTSIGNATURE fs; FONTSIGNATURE fs;
} CHARSETINFO, *PCHARSETINFO, NEAR *NPCHARSETINFO, FAR *LPCHARSETINFO; } CHARSETINFO, *PCHARSETINFO, NEAR *NPCHARSETINFO, FAR *LPCHARSETINFO;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#define TCI_SRCCHARSET 1 #define TCI_SRCCHARSET 1
#define TCI_SRCCODEPAGE 2 #define TCI_SRCCODEPAGE 2
#define TCI_SRCFONTSIG 3 #define TCI_SRCFONTSIG 3
#if (_WIN32_WINNT >= _WIN32_WINNT_WINXP) #if (_WIN32_WINNT >= _WIN32_WINNT_WINXP)
#define TCI_SRCLOCALE 0x1000 #define TCI_SRCLOCALE 0x1000
#endif // (_WIN32_WINNT >= _WIN32_WINNT_WINXP) #endif // (_WIN32_WINNT >= _WIN32_WINNT_WINXP)
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
typedef struct tagLOCALESIGNATURE typedef struct tagLOCALESIGNATURE
{ {
DWORD lsUsb[4]; DWORD lsUsb[4];
DWORD lsCsbDefault[2]; DWORD lsCsbDefault[2];
DWORD lsCsbSupported[2]; DWORD lsCsbSupported[2];
} LOCALESIGNATURE, *PLOCALESIGNATURE,FAR *LPLOCALESIGNATURE; } LOCALESIGNATURE, *PLOCALESIGNATURE,FAR *LPLOCALESIGNATURE;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
#endif #endif
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
#ifndef NOMETAFILE #ifndef NOMETAFILE
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
/* Clipboard Metafile Picture Structure */ /* Clipboard Metafile Picture Structure */
typedef struct tagHANDLETABLE typedef struct tagHANDLETABLE
{ {
HGDIOBJ objectHandle[1]; HGDIOBJ objectHandle[1];
} HANDLETABLE, *PHANDLETABLE, FAR *LPHANDLETABLE; } HANDLETABLE, *PHANDLETABLE, FAR *LPHANDLETABLE;
typedef struct tagMETARECORD typedef struct tagMETARECORD
{ {
DWORD rdSize; DWORD rdSize;
WORD rdFunction; WORD rdFunction;
WORD rdParm[1]; WORD rdParm[1];
skipping to change at line 862 skipping to change at line 1006
{ {
HGDIOBJ objectHandle[1]; HGDIOBJ objectHandle[1];
} HANDLETABLE, *PHANDLETABLE, FAR *LPHANDLETABLE; } HANDLETABLE, *PHANDLETABLE, FAR *LPHANDLETABLE;
typedef struct tagMETARECORD typedef struct tagMETARECORD
{ {
DWORD rdSize; DWORD rdSize;
WORD rdFunction; WORD rdFunction;
WORD rdParm[1]; WORD rdParm[1];
} METARECORD; } METARECORD;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef struct tagMETARECORD UNALIGNED *PMETARECORD; typedef struct tagMETARECORD UNALIGNED *PMETARECORD;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
typedef struct tagMETARECORD UNALIGNED FAR *LPMETARECORD; typedef struct tagMETARECORD UNALIGNED FAR *LPMETARECORD;
typedef struct tagMETAFILEPICT typedef struct tagMETAFILEPICT
{ {
LONG mm; LONG mm;
LONG xExt; LONG xExt;
LONG yExt; LONG yExt;
HMETAFILE hMF; HMETAFILE hMF;
} METAFILEPICT, FAR *LPMETAFILEPICT; } METAFILEPICT, FAR *LPMETAFILEPICT;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
#include <pshpack2.h> #include <pshpack2.h>
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef struct tagMETAHEADER typedef struct tagMETAHEADER
{ {
WORD mtType; WORD mtType;
WORD mtHeaderSize; WORD mtHeaderSize;
WORD mtVersion; WORD mtVersion;
DWORD mtSize; DWORD mtSize;
WORD mtNoObjects; WORD mtNoObjects;
DWORD mtMaxRecord; DWORD mtMaxRecord;
WORD mtNoParameters; WORD mtNoParameters;
} METAHEADER; } METAHEADER;
typedef struct tagMETAHEADER UNALIGNED *PMETAHEADER; typedef struct tagMETAHEADER UNALIGNED *PMETAHEADER;
typedef struct tagMETAHEADER UNALIGNED FAR *LPMETAHEADER; typedef struct tagMETAHEADER UNALIGNED FAR *LPMETAHEADER;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#include <poppack.h> #include <poppack.h>
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
/* Enhanced Metafile structures */ /* Enhanced Metafile structures */
typedef struct tagENHMETARECORD typedef struct tagENHMETARECORD
{ {
DWORD iType; // Record type EMR_XXX DWORD iType; // Record type EMR_XXX
DWORD nSize; // Record size in bytes DWORD nSize; // Record size in bytes
DWORD dParm[1]; // Parameters DWORD dParm[1]; // Parameters
} ENHMETARECORD, *PENHMETARECORD, *LPENHMETARECORD; } ENHMETARECORD, *PENHMETARECORD, *LPENHMETARECORD;
typedef struct tagENHMETAHEADER typedef struct tagENHMETAHEADER
{ {
skipping to change at line 932 skipping to change at line 1103
// This is 0 if no pixel format is set // This is 0 if no pixel format is set
DWORD bOpenGL; // TRUE if OpenGL commands are present in DWORD bOpenGL; // TRUE if OpenGL commands are present in
// the metafile, otherwise FALSE // the metafile, otherwise FALSE
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
#if(WINVER >= 0x0500) #if(WINVER >= 0x0500)
SIZEL szlMicrometers; // Size of the reference device in micrometers SIZEL szlMicrometers; // Size of the reference device in micrometers
#endif /* WINVER >= 0x0500 */ #endif /* WINVER >= 0x0500 */
} ENHMETAHEADER, *PENHMETAHEADER, *LPENHMETAHEADER; } ENHMETAHEADER, *PENHMETAHEADER, *LPENHMETAHEADER;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
#endif /* NOMETAFILE */ #endif /* NOMETAFILE */
#ifndef NOTEXTMETRIC #ifndef NOTEXTMETRIC
/* tmPitchAndFamily flags */ /* tmPitchAndFamily flags */
#define TMPF_FIXED_PITCH 0x01 #define TMPF_FIXED_PITCH 0x01
#define TMPF_VECTOR 0x02 #define TMPF_VECTOR 0x02
#define TMPF_DEVICE 0x08 #define TMPF_DEVICE 0x08
#define TMPF_TRUETYPE 0x04 #define TMPF_TRUETYPE 0x04
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
// //
// BCHAR definition for APPs // BCHAR definition for APPs
// //
#ifdef UNICODE #ifdef UNICODE
typedef WCHAR BCHAR; typedef WCHAR BCHAR;
#else #else
typedef BYTE BCHAR; typedef BYTE BCHAR;
#endif #endif
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#ifndef _TEXTMETRIC_DEFINED #ifndef _TEXTMETRIC_DEFINED
#define _TEXTMETRIC_DEFINED #define _TEXTMETRIC_DEFINED
#include <pshpack4.h> #include <pshpack4.h>
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
typedef struct tagTEXTMETRICA typedef struct tagTEXTMETRICA
{ {
LONG tmHeight; LONG tmHeight;
LONG tmAscent; LONG tmAscent;
LONG tmDescent; LONG tmDescent;
LONG tmInternalLeading; LONG tmInternalLeading;
LONG tmExternalLeading; LONG tmExternalLeading;
LONG tmAveCharWidth; LONG tmAveCharWidth;
LONG tmMaxCharWidth; LONG tmMaxCharWidth;
LONG tmWeight; LONG tmWeight;
skipping to change at line 1011 skipping to change at line 1195
typedef TEXTMETRICW TEXTMETRIC; typedef TEXTMETRICW TEXTMETRIC;
typedef PTEXTMETRICW PTEXTMETRIC; typedef PTEXTMETRICW PTEXTMETRIC;
typedef NPTEXTMETRICW NPTEXTMETRIC; typedef NPTEXTMETRICW NPTEXTMETRIC;
typedef LPTEXTMETRICW LPTEXTMETRIC; typedef LPTEXTMETRICW LPTEXTMETRIC;
#else #else
typedef TEXTMETRICA TEXTMETRIC; typedef TEXTMETRICA TEXTMETRIC;
typedef PTEXTMETRICA PTEXTMETRIC; typedef PTEXTMETRICA PTEXTMETRIC;
typedef NPTEXTMETRICA NPTEXTMETRIC; typedef NPTEXTMETRICA NPTEXTMETRIC;
typedef LPTEXTMETRICA LPTEXTMETRIC; typedef LPTEXTMETRICA LPTEXTMETRIC;
#endif // UNICODE #endif // UNICODE
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
#include <poppack.h> #include <poppack.h>
#endif // !_TEXTMETRIC_DEFINED #endif // !_TEXTMETRIC_DEFINED
/* ntmFlags field flags */ /* ntmFlags field flags */
#define NTM_REGULAR 0x00000040L #define NTM_REGULAR 0x00000040L
#define NTM_BOLD 0x00000020L #define NTM_BOLD 0x00000020L
#define NTM_ITALIC 0x00000001L #define NTM_ITALIC 0x00000001L
/* new in NT 5.0 */ /* new in NT 5.0 */
#define NTM_NONNEGATIVE_AC 0x00010000 #define NTM_NONNEGATIVE_AC 0x00010000
#define NTM_PS_OPENTYPE 0x00020000 #define NTM_PS_OPENTYPE 0x00020000
#define NTM_TT_OPENTYPE 0x00040000 #define NTM_TT_OPENTYPE 0x00040000
#define NTM_MULTIPLEMASTER 0x00080000 #define NTM_MULTIPLEMASTER 0x00080000
#define NTM_TYPE1 0x00100000 #define NTM_TYPE1 0x00100000
#define NTM_DSIG 0x00200000 #define NTM_DSIG 0x00200000
#include <pshpack4.h> #include <pshpack4.h>
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef struct tagNEWTEXTMETRICA typedef struct tagNEWTEXTMETRICA
{ {
LONG tmHeight; LONG tmHeight;
LONG tmAscent; LONG tmAscent;
LONG tmDescent; LONG tmDescent;
LONG tmInternalLeading; LONG tmInternalLeading;
LONG tmExternalLeading; LONG tmExternalLeading;
LONG tmAveCharWidth; LONG tmAveCharWidth;
LONG tmMaxCharWidth; LONG tmMaxCharWidth;
LONG tmWeight; LONG tmWeight;
skipping to change at line 1094 skipping to change at line 1286
typedef NEWTEXTMETRICW NEWTEXTMETRIC; typedef NEWTEXTMETRICW NEWTEXTMETRIC;
typedef PNEWTEXTMETRICW PNEWTEXTMETRIC; typedef PNEWTEXTMETRICW PNEWTEXTMETRIC;
typedef NPNEWTEXTMETRICW NPNEWTEXTMETRIC; typedef NPNEWTEXTMETRICW NPNEWTEXTMETRIC;
typedef LPNEWTEXTMETRICW LPNEWTEXTMETRIC; typedef LPNEWTEXTMETRICW LPNEWTEXTMETRIC;
#else #else
typedef NEWTEXTMETRICA NEWTEXTMETRIC; typedef NEWTEXTMETRICA NEWTEXTMETRIC;
typedef PNEWTEXTMETRICA PNEWTEXTMETRIC; typedef PNEWTEXTMETRICA PNEWTEXTMETRIC;
typedef NPNEWTEXTMETRICA NPNEWTEXTMETRIC; typedef NPNEWTEXTMETRICA NPNEWTEXTMETRIC;
typedef LPNEWTEXTMETRICA LPNEWTEXTMETRIC; typedef LPNEWTEXTMETRICA LPNEWTEXTMETRIC;
#endif // UNICODE #endif // UNICODE
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#include <poppack.h> #include <poppack.h>
#if(WINVER >= 0x0400) #if(WINVER >= 0x0400)
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef struct tagNEWTEXTMETRICEXA typedef struct tagNEWTEXTMETRICEXA
{ {
NEWTEXTMETRICA ntmTm; NEWTEXTMETRICA ntmTm;
FONTSIGNATURE ntmFontSig; FONTSIGNATURE ntmFontSig;
}NEWTEXTMETRICEXA; }NEWTEXTMETRICEXA;
typedef struct tagNEWTEXTMETRICEXW typedef struct tagNEWTEXTMETRICEXW
{ {
NEWTEXTMETRICW ntmTm; NEWTEXTMETRICW ntmTm;
FONTSIGNATURE ntmFontSig; FONTSIGNATURE ntmFontSig;
}NEWTEXTMETRICEXW; }NEWTEXTMETRICEXW;
#ifdef UNICODE #ifdef UNICODE
typedef NEWTEXTMETRICEXW NEWTEXTMETRICEX; typedef NEWTEXTMETRICEXW NEWTEXTMETRICEX;
#else #else
typedef NEWTEXTMETRICEXA NEWTEXTMETRICEX; typedef NEWTEXTMETRICEXA NEWTEXTMETRICEX;
#endif // UNICODE #endif // UNICODE
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
#endif /* NOTEXTMETRIC */ #endif /* NOTEXTMETRIC */
/* GDI Logical Objects: */ /* GDI Logical Objects: */
/* Pel Array */ /* Pel Array */
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef struct tagPELARRAY typedef struct tagPELARRAY
{ {
LONG paXCount; LONG paXCount;
LONG paYCount; LONG paYCount;
LONG paXExt; LONG paXExt;
LONG paYExt; LONG paYExt;
BYTE paRGBs; BYTE paRGBs;
} PELARRAY, *PPELARRAY, NEAR *NPPELARRAY, FAR *LPPELARRAY; } PELARRAY, *PPELARRAY, NEAR *NPPELARRAY, FAR *LPPELARRAY;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
/* Logical Brush (or Pattern) */ /* Logical Brush (or Pattern) */
typedef struct tagLOGBRUSH typedef struct tagLOGBRUSH
{ {
UINT lbStyle; UINT lbStyle;
COLORREF lbColor; COLORREF lbColor;
ULONG_PTR lbHatch; ULONG_PTR lbHatch;
} LOGBRUSH, *PLOGBRUSH, NEAR *NPLOGBRUSH, FAR *LPLOGBRUSH; } LOGBRUSH, *PLOGBRUSH, NEAR *NPLOGBRUSH, FAR *LPLOGBRUSH;
typedef struct tagLOGBRUSH32 typedef struct tagLOGBRUSH32
{ {
UINT lbStyle; UINT lbStyle;
COLORREF lbColor; COLORREF lbColor;
ULONG lbHatch; ULONG lbHatch;
} LOGBRUSH32, *PLOGBRUSH32, NEAR *NPLOGBRUSH32, FAR *LPLOGBRUSH32; } LOGBRUSH32, *PLOGBRUSH32, NEAR *NPLOGBRUSH32, FAR *LPLOGBRUSH32;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef LOGBRUSH PATTERN; typedef LOGBRUSH PATTERN;
typedef PATTERN *PPATTERN; typedef PATTERN *PPATTERN;
typedef PATTERN NEAR *NPPATTERN; typedef PATTERN NEAR *NPPATTERN;
typedef PATTERN FAR *LPPATTERN; typedef PATTERN FAR *LPPATTERN;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
/* Logical Pen */ /* Logical Pen */
typedef struct tagLOGPEN typedef struct tagLOGPEN
{ {
UINT lopnStyle; UINT lopnStyle;
POINT lopnWidth; POINT lopnWidth;
COLORREF lopnColor; COLORREF lopnColor;
} LOGPEN, *PLOGPEN, NEAR *NPLOGPEN, FAR *LPLOGPEN; } LOGPEN, *PLOGPEN, NEAR *NPLOGPEN, FAR *LPLOGPEN;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef struct tagEXTLOGPEN { typedef struct tagEXTLOGPEN {
DWORD elpPenStyle; DWORD elpPenStyle;
DWORD elpWidth; DWORD elpWidth;
UINT elpBrushStyle; UINT elpBrushStyle;
COLORREF elpColor; COLORREF elpColor;
ULONG_PTR elpHatch; ULONG_PTR elpHatch;
DWORD elpNumEntries; DWORD elpNumEntries;
DWORD elpStyleEntry[1]; DWORD elpStyleEntry[1];
} EXTLOGPEN, *PEXTLOGPEN, NEAR *NPEXTLOGPEN, FAR *LPEXTLOGPEN; } EXTLOGPEN, *PEXTLOGPEN, NEAR *NPEXTLOGPEN, FAR *LPEXTLOGPEN;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
typedef struct tagEXTLOGPEN32 { typedef struct tagEXTLOGPEN32 {
DWORD elpPenStyle; DWORD elpPenStyle;
DWORD elpWidth; DWORD elpWidth;
UINT elpBrushStyle; UINT elpBrushStyle;
COLORREF elpColor; COLORREF elpColor;
ULONG elpHatch; ULONG elpHatch;
DWORD elpNumEntries; DWORD elpNumEntries;
DWORD elpStyleEntry[1]; DWORD elpStyleEntry[1];
} EXTLOGPEN32, *PEXTLOGPEN32, NEAR *NPEXTLOGPEN32, FAR *LPEXTLOGPEN32; } EXTLOGPEN32, *PEXTLOGPEN32, NEAR *NPEXTLOGPEN32, FAR *LPEXTLOGPEN32;
skipping to change at line 1191 skipping to change at line 1427
BYTE peFlags; BYTE peFlags;
} PALETTEENTRY, *PPALETTEENTRY, FAR *LPPALETTEENTRY; } PALETTEENTRY, *PPALETTEENTRY, FAR *LPPALETTEENTRY;
#endif // !_PALETTEENTRY_DEFINED #endif // !_PALETTEENTRY_DEFINED
#ifndef _LOGPALETTE_DEFINED #ifndef _LOGPALETTE_DEFINED
#define _LOGPALETTE_DEFINED #define _LOGPALETTE_DEFINED
/* Logical Palette */ /* Logical Palette */
typedef struct tagLOGPALETTE { typedef struct tagLOGPALETTE {
WORD palVersion; WORD palVersion;
WORD palNumEntries; WORD palNumEntries;
__field_ecount_opt(palNumEntries) PALETTEENTRY palPalEntry[1]; _Field_size_opt_(palNumEntries) PALETTEENTRY palPalEntry[1];
} LOGPALETTE, *PLOGPALETTE, NEAR *NPLOGPALETTE, FAR *LPLOGPALETTE; } LOGPALETTE, *PLOGPALETTE, NEAR *NPLOGPALETTE, FAR *LPLOGPALETTE;
#endif // !_LOGPALETTE_DEFINED #endif // !_LOGPALETTE_DEFINED
/* Logical Font */ /* Logical Font */
#define LF_FACESIZE 32 #define LF_FACESIZE 32
typedef struct tagLOGFONTA typedef struct tagLOGFONTA
{ {
LONG lfHeight; LONG lfHeight;
LONG lfWidth; LONG lfWidth;
skipping to change at line 1244 skipping to change at line 1480
typedef PLOGFONTW PLOGFONT; typedef PLOGFONTW PLOGFONT;
typedef NPLOGFONTW NPLOGFONT; typedef NPLOGFONTW NPLOGFONT;
typedef LPLOGFONTW LPLOGFONT; typedef LPLOGFONTW LPLOGFONT;
#else #else
typedef LOGFONTA LOGFONT; typedef LOGFONTA LOGFONT;
typedef PLOGFONTA PLOGFONT; typedef PLOGFONTA PLOGFONT;
typedef NPLOGFONTA NPLOGFONT; typedef NPLOGFONTA NPLOGFONT;
typedef LPLOGFONTA LPLOGFONT; typedef LPLOGFONTA LPLOGFONT;
#endif // UNICODE #endif // UNICODE
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
#define LF_FULLFACESIZE 64 #define LF_FULLFACESIZE 64
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
/* Structure passed to FONTENUMPROC */ /* Structure passed to FONTENUMPROC */
typedef struct tagENUMLOGFONTA typedef struct tagENUMLOGFONTA
{ {
LOGFONTA elfLogFont; LOGFONTA elfLogFont;
BYTE elfFullName[LF_FULLFACESIZE]; BYTE elfFullName[LF_FULLFACESIZE];
BYTE elfStyle[LF_FACESIZE]; BYTE elfStyle[LF_FACESIZE];
} ENUMLOGFONTA, FAR* LPENUMLOGFONTA; } ENUMLOGFONTA, FAR* LPENUMLOGFONTA;
/* Structure passed to FONTENUMPROC */ /* Structure passed to FONTENUMPROC */
typedef struct tagENUMLOGFONTW typedef struct tagENUMLOGFONTW
{ {
skipping to change at line 1292 skipping to change at line 1534
} ENUMLOGFONTEXW, FAR *LPENUMLOGFONTEXW; } ENUMLOGFONTEXW, FAR *LPENUMLOGFONTEXW;
#ifdef UNICODE #ifdef UNICODE
typedef ENUMLOGFONTEXW ENUMLOGFONTEX; typedef ENUMLOGFONTEXW ENUMLOGFONTEX;
typedef LPENUMLOGFONTEXW LPENUMLOGFONTEX; typedef LPENUMLOGFONTEXW LPENUMLOGFONTEX;
#else #else
typedef ENUMLOGFONTEXA ENUMLOGFONTEX; typedef ENUMLOGFONTEXA ENUMLOGFONTEX;
typedef LPENUMLOGFONTEXA LPENUMLOGFONTEX; typedef LPENUMLOGFONTEXA LPENUMLOGFONTEX;
#endif // UNICODE #endif // UNICODE
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#define OUT_DEFAULT_PRECIS 0 #define OUT_DEFAULT_PRECIS 0
#define OUT_STRING_PRECIS 1 #define OUT_STRING_PRECIS 1
#define OUT_CHARACTER_PRECIS 2 #define OUT_CHARACTER_PRECIS 2
#define OUT_STROKE_PRECIS 3 #define OUT_STROKE_PRECIS 3
#define OUT_TT_PRECIS 4 #define OUT_TT_PRECIS 4
#define OUT_DEVICE_PRECIS 5 #define OUT_DEVICE_PRECIS 5
#define OUT_RASTER_PRECIS 6 #define OUT_RASTER_PRECIS 6
#define OUT_TT_ONLY_PRECIS 7 #define OUT_TT_ONLY_PRECIS 7
#define OUT_OUTLINE_PRECIS 8 #define OUT_OUTLINE_PRECIS 8
#define OUT_SCREEN_OUTLINE_PRECIS 9 #define OUT_SCREEN_OUTLINE_PRECIS 9
skipping to change at line 1419 skipping to change at line 1664
#define PAN_PROPORTION_INDEX 3 #define PAN_PROPORTION_INDEX 3
#define PAN_CONTRAST_INDEX 4 #define PAN_CONTRAST_INDEX 4
#define PAN_STROKEVARIATION_INDEX 5 #define PAN_STROKEVARIATION_INDEX 5
#define PAN_ARMSTYLE_INDEX 6 #define PAN_ARMSTYLE_INDEX 6
#define PAN_LETTERFORM_INDEX 7 #define PAN_LETTERFORM_INDEX 7
#define PAN_MIDLINE_INDEX 8 #define PAN_MIDLINE_INDEX 8
#define PAN_XHEIGHT_INDEX 9 #define PAN_XHEIGHT_INDEX 9
#define PAN_CULTURE_LATIN 0 #define PAN_CULTURE_LATIN 0
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
typedef struct tagPANOSE typedef struct tagPANOSE
{ {
BYTE bFamilyType; BYTE bFamilyType;
BYTE bSerifStyle; BYTE bSerifStyle;
BYTE bWeight; BYTE bWeight;
BYTE bProportion; BYTE bProportion;
BYTE bContrast; BYTE bContrast;
BYTE bStrokeVariation; BYTE bStrokeVariation;
BYTE bArmStyle; BYTE bArmStyle;
BYTE bLetterform; BYTE bLetterform;
skipping to change at line 1580 skipping to change at line 1828
typedef PEXTLOGFONTW PEXTLOGFONT; typedef PEXTLOGFONTW PEXTLOGFONT;
typedef NPEXTLOGFONTW NPEXTLOGFONT; typedef NPEXTLOGFONTW NPEXTLOGFONT;
typedef LPEXTLOGFONTW LPEXTLOGFONT; typedef LPEXTLOGFONTW LPEXTLOGFONT;
#else #else
typedef EXTLOGFONTA EXTLOGFONT; typedef EXTLOGFONTA EXTLOGFONT;
typedef PEXTLOGFONTA PEXTLOGFONT; typedef PEXTLOGFONTA PEXTLOGFONT;
typedef NPEXTLOGFONTA NPEXTLOGFONT; typedef NPEXTLOGFONTA NPEXTLOGFONT;
typedef LPEXTLOGFONTA LPEXTLOGFONT; typedef LPEXTLOGFONTA LPEXTLOGFONT;
#endif // UNICODE #endif // UNICODE
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
#define ELF_VERSION 0 #define ELF_VERSION 0
#define ELF_CULTURE_LATIN 0 #define ELF_CULTURE_LATIN 0
/* EnumFonts Masks */ /* EnumFonts Masks */
#define RASTER_FONTTYPE 0x0001 #define RASTER_FONTTYPE 0x0001
#define DEVICE_FONTTYPE 0x0002 #define DEVICE_FONTTYPE 0x0002
#define TRUETYPE_FONTTYPE 0x0004 #define TRUETYPE_FONTTYPE 0x0004
#define RGB(r,g,b) ((COLORREF)(((BYTE)(r)|((WORD)((BYTE)(g))<<8))|(((DW ORD)(BYTE)(b))<<16))) #define RGB(r,g,b) ((COLORREF)(((BYTE)(r)|((WORD)((BYTE)(g))<<8))|(((DW ORD)(BYTE)(b))<<16)))
#define PALETTERGB(r,g,b) (0x02000000 | RGB(r,g,b)) #define PALETTERGB(r,g,b) (0x02000000 | RGB(r,g,b))
skipping to change at line 1921 skipping to change at line 2172
/* ExtFloodFill style flags */ /* ExtFloodFill style flags */
#define FLOODFILLBORDER 0 #define FLOODFILLBORDER 0
#define FLOODFILLSURFACE 1 #define FLOODFILLSURFACE 1
/* size of a device name string */ /* size of a device name string */
#define CCHDEVICENAME 32 #define CCHDEVICENAME 32
/* size of a form name string */ /* size of a form name string */
#define CCHFORMNAME 32 #define CCHFORMNAME 32
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
#if (_WIN32_WINNT >= ((OSVER(NTDDI_WINXPSP2)) >> 16)) #if (_WIN32_WINNT >= ((OSVER(NTDDI_WINXPSP2)) >> 16))
typedef struct _devicemodeA { typedef struct _devicemodeA {
BYTE dmDeviceName[CCHDEVICENAME]; BYTE dmDeviceName[CCHDEVICENAME];
WORD dmSpecVersion; WORD dmSpecVersion;
WORD dmDriverVersion; WORD dmDriverVersion;
WORD dmSize; WORD dmSize;
WORD dmDriverExtra; WORD dmDriverExtra;
DWORD dmFields; DWORD dmFields;
union { union {
/* printer only fields */ /* printer only fields */
skipping to change at line 2150 skipping to change at line 2404
typedef PDEVMODEW PDEVMODE; typedef PDEVMODEW PDEVMODE;
typedef NPDEVMODEW NPDEVMODE; typedef NPDEVMODEW NPDEVMODE;
typedef LPDEVMODEW LPDEVMODE; typedef LPDEVMODEW LPDEVMODE;
#else #else
typedef DEVMODEA DEVMODE; typedef DEVMODEA DEVMODE;
typedef PDEVMODEA PDEVMODE; typedef PDEVMODEA PDEVMODE;
typedef NPDEVMODEA NPDEVMODE; typedef NPDEVMODEA NPDEVMODE;
typedef LPDEVMODEA LPDEVMODE; typedef LPDEVMODEA LPDEVMODE;
#endif // UNICODE #endif // UNICODE
#endif // (_WIN32_WINNT >= _WIN32_WINNT_WINXP) #endif // (_WIN32_WINNT >= _WIN32_WINNT_WINXP)
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
/* current version of specification */ /* current version of specification */
#if (WINVER >= 0x0500) || (_WIN32_WINNT >= _WIN32_WINNT_NT4) #if (WINVER >= 0x0500) || (_WIN32_WINNT >= _WIN32_WINNT_NT4)
#define DM_SPECVERSION 0x0401 #define DM_SPECVERSION 0x0401
#elif (WINVER >= 0x0400) #elif (WINVER >= 0x0400)
#define DM_SPECVERSION 0x0400 #define DM_SPECVERSION 0x0400
#else #else
#define DM_SPECVERSION 0x0320 #define DM_SPECVERSION 0x0320
#endif /* WINVER */ #endif /* WINVER */
/* field selection bits */ /* field selection bits */
skipping to change at line 2449 skipping to change at line 2707
#define DMDITHER_ERRORDIFFUSION 5 /* LineArt dithering */ #define DMDITHER_ERRORDIFFUSION 5 /* LineArt dithering */
#define DMDITHER_RESERVED6 6 /* LineArt dithering */ #define DMDITHER_RESERVED6 6 /* LineArt dithering */
#define DMDITHER_RESERVED7 7 /* LineArt dithering */ #define DMDITHER_RESERVED7 7 /* LineArt dithering */
#define DMDITHER_RESERVED8 8 /* LineArt dithering */ #define DMDITHER_RESERVED8 8 /* LineArt dithering */
#define DMDITHER_RESERVED9 9 /* LineArt dithering */ #define DMDITHER_RESERVED9 9 /* LineArt dithering */
#define DMDITHER_GRAYSCALE 10 /* Device does grayscaling */ #define DMDITHER_GRAYSCALE 10 /* Device does grayscaling */
#define DMDITHER_USER 256 /* Device-specific dithers start here */ #define DMDITHER_USER 256 /* Device-specific dithers start here */
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
typedef struct _DISPLAY_DEVICEA { typedef struct _DISPLAY_DEVICEA {
DWORD cb; DWORD cb;
CHAR DeviceName[32]; CHAR DeviceName[32];
CHAR DeviceString[128]; CHAR DeviceString[128];
DWORD StateFlags; DWORD StateFlags;
CHAR DeviceID[128]; CHAR DeviceID[128];
CHAR DeviceKey[128]; CHAR DeviceKey[128];
} DISPLAY_DEVICEA, *PDISPLAY_DEVICEA, *LPDISPLAY_DEVICEA; } DISPLAY_DEVICEA, *PDISPLAY_DEVICEA, *LPDISPLAY_DEVICEA;
typedef struct _DISPLAY_DEVICEW { typedef struct _DISPLAY_DEVICEW {
DWORD cb; DWORD cb;
skipping to change at line 2475 skipping to change at line 2736
#ifdef UNICODE #ifdef UNICODE
typedef DISPLAY_DEVICEW DISPLAY_DEVICE; typedef DISPLAY_DEVICEW DISPLAY_DEVICE;
typedef PDISPLAY_DEVICEW PDISPLAY_DEVICE; typedef PDISPLAY_DEVICEW PDISPLAY_DEVICE;
typedef LPDISPLAY_DEVICEW LPDISPLAY_DEVICE; typedef LPDISPLAY_DEVICEW LPDISPLAY_DEVICE;
#else #else
typedef DISPLAY_DEVICEA DISPLAY_DEVICE; typedef DISPLAY_DEVICEA DISPLAY_DEVICE;
typedef PDISPLAY_DEVICEA PDISPLAY_DEVICE; typedef PDISPLAY_DEVICEA PDISPLAY_DEVICE;
typedef LPDISPLAY_DEVICEA LPDISPLAY_DEVICE; typedef LPDISPLAY_DEVICEA LPDISPLAY_DEVICE;
#endif // UNICODE #endif // UNICODE
#define DISPLAY_DEVICE_ATTACHED_TO_DESKTOP 0x00000001 #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#define DISPLAY_DEVICE_MULTI_DRIVER 0x00000002 #pragma endregion
#define DISPLAY_DEVICE_PRIMARY_DEVICE 0x00000004
#define DISPLAY_DEVICE_MIRRORING_DRIVER 0x00000008 #define DISPLAY_DEVICE_ATTACHED_TO_DESKTOP 0x00000001
#define DISPLAY_DEVICE_VGA_COMPATIBLE 0x00000010 #define DISPLAY_DEVICE_MULTI_DRIVER 0x00000002
#define DISPLAY_DEVICE_PRIMARY_DEVICE 0x00000004
#define DISPLAY_DEVICE_MIRRORING_DRIVER 0x00000008
#define DISPLAY_DEVICE_VGA_COMPATIBLE 0x00000010
#if (_WIN32_WINNT >= _WIN32_WINNT_WIN2K) #if (_WIN32_WINNT >= _WIN32_WINNT_WIN2K)
#define DISPLAY_DEVICE_REMOVABLE 0x00000020 #define DISPLAY_DEVICE_REMOVABLE 0x00000020
#endif // (_WIN32_WINNT >= _WIN32_WINNT_WIN2K) #endif // (_WIN32_WINNT >= _WIN32_WINNT_WIN2K)
#define DISPLAY_DEVICE_MODESPRUNED 0x08000000 #if (_WIN32_WINNT >= _WIN32_WINNT_WIN8)
#define DISPLAY_DEVICE_ACC_DRIVER 0x00000040
#endif
#define DISPLAY_DEVICE_MODESPRUNED 0x08000000
#if (_WIN32_WINNT >= _WIN32_WINNT_WIN2K) #if (_WIN32_WINNT >= _WIN32_WINNT_WIN2K)
#define DISPLAY_DEVICE_REMOTE 0x04000000 #define DISPLAY_DEVICE_REMOTE 0x04000000
#define DISPLAY_DEVICE_DISCONNECT 0x02000000 #define DISPLAY_DEVICE_DISCONNECT 0x02000000
#endif #endif
#define DISPLAY_DEVICE_TS_COMPATIBLE 0x00200000 #define DISPLAY_DEVICE_TS_COMPATIBLE 0x00200000
#if (_WIN32_WINNT >= _WIN32_WINNT_LONGHORN) #if (_WIN32_WINNT >= _WIN32_WINNT_LONGHORN)
#define DISPLAY_DEVICE_UNSAFE_MODES_ON 0x00080000 #define DISPLAY_DEVICE_UNSAFE_MODES_ON 0x00080000
#endif #endif
/* Child device state */ /* Child device state */
#if (_WIN32_WINNT >= _WIN32_WINNT_WIN2K) #if (_WIN32_WINNT >= _WIN32_WINNT_WIN2K)
#define DISPLAY_DEVICE_ACTIVE 0x00000001 #define DISPLAY_DEVICE_ACTIVE 0x00000001
#define DISPLAY_DEVICE_ATTACHED 0x00000002 #define DISPLAY_DEVICE_ATTACHED 0x00000002
#endif // (_WIN32_WINNT >= _WIN32_WINNT_WIN2K) #endif // (_WIN32_WINNT >= _WIN32_WINNT_WIN2K)
#if(WINVER >= 0x0601) #if(WINVER >= 0x0601)
#define DISPLAYCONFIG_MAXPATH 1024 // Maximum display path in system. #define DISPLAYCONFIG_MAXPATH 1024 // Maximum display path in system.
// Max adapter (16) * Max source (16) * // Max adapter (16) * Max source (16) *
// Max clone pre source (4) // Max clone pre source (4)
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
typedef struct DISPLAYCONFIG_RATIONAL typedef struct DISPLAYCONFIG_RATIONAL
{ {
UINT32 Numerator; UINT32 Numerator;
UINT32 Denominator; UINT32 Denominator;
} DISPLAYCONFIG_RATIONAL; } DISPLAYCONFIG_RATIONAL;
typedef enum typedef enum
{ {
DISPLAYCONFIG_OUTPUT_TECHNOLOGY_OTHER = -1, DISPLAYCONFIG_OUTPUT_TECHNOLOGY_OTHER = -1,
DISPLAYCONFIG_OUTPUT_TECHNOLOGY_HD15 = 0, DISPLAYCONFIG_OUTPUT_TECHNOLOGY_HD15 = 0,
skipping to change at line 2528 skipping to change at line 2798
DISPLAYCONFIG_OUTPUT_TECHNOLOGY_DVI = 4, DISPLAYCONFIG_OUTPUT_TECHNOLOGY_DVI = 4,
DISPLAYCONFIG_OUTPUT_TECHNOLOGY_HDMI = 5, DISPLAYCONFIG_OUTPUT_TECHNOLOGY_HDMI = 5,
DISPLAYCONFIG_OUTPUT_TECHNOLOGY_LVDS = 6, DISPLAYCONFIG_OUTPUT_TECHNOLOGY_LVDS = 6,
DISPLAYCONFIG_OUTPUT_TECHNOLOGY_D_JPN = 8, DISPLAYCONFIG_OUTPUT_TECHNOLOGY_D_JPN = 8,
DISPLAYCONFIG_OUTPUT_TECHNOLOGY_SDI = 9, DISPLAYCONFIG_OUTPUT_TECHNOLOGY_SDI = 9,
DISPLAYCONFIG_OUTPUT_TECHNOLOGY_DISPLAYPORT_EXTERNAL = 10, DISPLAYCONFIG_OUTPUT_TECHNOLOGY_DISPLAYPORT_EXTERNAL = 10,
DISPLAYCONFIG_OUTPUT_TECHNOLOGY_DISPLAYPORT_EMBEDDED = 11, DISPLAYCONFIG_OUTPUT_TECHNOLOGY_DISPLAYPORT_EMBEDDED = 11,
DISPLAYCONFIG_OUTPUT_TECHNOLOGY_UDI_EXTERNAL = 12, DISPLAYCONFIG_OUTPUT_TECHNOLOGY_UDI_EXTERNAL = 12,
DISPLAYCONFIG_OUTPUT_TECHNOLOGY_UDI_EMBEDDED = 13, DISPLAYCONFIG_OUTPUT_TECHNOLOGY_UDI_EMBEDDED = 13,
DISPLAYCONFIG_OUTPUT_TECHNOLOGY_SDTVDONGLE = 14, DISPLAYCONFIG_OUTPUT_TECHNOLOGY_SDTVDONGLE = 14,
DISPLAYCONFIG_OUTPUT_TECHNOLOGY_MIRACAST = 15,
DISPLAYCONFIG_OUTPUT_TECHNOLOGY_INTERNAL = 0x80000000, DISPLAYCONFIG_OUTPUT_TECHNOLOGY_INTERNAL = 0x80000000,
DISPLAYCONFIG_OUTPUT_TECHNOLOGY_FORCE_UINT32 = 0xFFFFFFFF DISPLAYCONFIG_OUTPUT_TECHNOLOGY_FORCE_UINT32 = 0xFFFFFFFF
} DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY; } DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY;
typedef enum typedef enum
{ {
DISPLAYCONFIG_SCANLINE_ORDERING_UNSPECIFIED = 0, DISPLAYCONFIG_SCANLINE_ORDERING_UNSPECIFIED = 0,
DISPLAYCONFIG_SCANLINE_ORDERING_PROGRESSIVE = 1, DISPLAYCONFIG_SCANLINE_ORDERING_PROGRESSIVE = 1,
DISPLAYCONFIG_SCANLINE_ORDERING_INTERLACED = 2, DISPLAYCONFIG_SCANLINE_ORDERING_INTERLACED = 2,
DISPLAYCONFIG_SCANLINE_ORDERING_INTERLACED_UPPERFIELDFIRST = DISPLAYCONFIG_ SCANLINE_ORDERING_INTERLACED, DISPLAYCONFIG_SCANLINE_ORDERING_INTERLACED_UPPERFIELDFIRST = DISPLAYCONFIG_ SCANLINE_ORDERING_INTERLACED,
skipping to change at line 2555 skipping to change at line 2826
UINT32 cy; UINT32 cy;
} DISPLAYCONFIG_2DREGION; } DISPLAYCONFIG_2DREGION;
typedef struct DISPLAYCONFIG_VIDEO_SIGNAL_INFO typedef struct DISPLAYCONFIG_VIDEO_SIGNAL_INFO
{ {
UINT64 pixelRate; UINT64 pixelRate;
DISPLAYCONFIG_RATIONAL hSyncFreq; DISPLAYCONFIG_RATIONAL hSyncFreq;
DISPLAYCONFIG_RATIONAL vSyncFreq; DISPLAYCONFIG_RATIONAL vSyncFreq;
DISPLAYCONFIG_2DREGION activeSize; DISPLAYCONFIG_2DREGION activeSize;
DISPLAYCONFIG_2DREGION totalSize; DISPLAYCONFIG_2DREGION totalSize;
UINT32 videoStandard;
union
{
struct
{
UINT32 videoStandard : 16;
// Vertical refresh frequency divider
UINT32 vSyncFreqDivider : 6;
UINT32 reserved : 10;
} AdditionalSignalInfo;
UINT32 videoStandard;
};
// Scan line ordering (e.g. progressive, interlaced).
DISPLAYCONFIG_SCANLINE_ORDERING scanLineOrdering; DISPLAYCONFIG_SCANLINE_ORDERING scanLineOrdering;
} DISPLAYCONFIG_VIDEO_SIGNAL_INFO; } DISPLAYCONFIG_VIDEO_SIGNAL_INFO;
typedef enum typedef enum
{ {
DISPLAYCONFIG_SCALING_IDENTITY = 1, DISPLAYCONFIG_SCALING_IDENTITY = 1,
DISPLAYCONFIG_SCALING_CENTERED = 2, DISPLAYCONFIG_SCALING_CENTERED = 2,
DISPLAYCONFIG_SCALING_STRETCHED = 3, DISPLAYCONFIG_SCALING_STRETCHED = 3,
DISPLAYCONFIG_SCALING_ASPECTRATIOCENTEREDMAX = 4, DISPLAYCONFIG_SCALING_ASPECTRATIOCENTEREDMAX = 4,
DISPLAYCONFIG_SCALING_CUSTOM = 5, DISPLAYCONFIG_SCALING_CUSTOM = 5,
skipping to change at line 2689 skipping to change at line 2976
DISPLAYCONFIG_TOPOLOGY_FORCE_UINT32 = 0xFFFFFFFF DISPLAYCONFIG_TOPOLOGY_FORCE_UINT32 = 0xFFFFFFFF
} DISPLAYCONFIG_TOPOLOGY_ID; } DISPLAYCONFIG_TOPOLOGY_ID;
typedef enum typedef enum
{ {
DISPLAYCONFIG_DEVICE_INFO_GET_SOURCE_NAME = 1, DISPLAYCONFIG_DEVICE_INFO_GET_SOURCE_NAME = 1,
DISPLAYCONFIG_DEVICE_INFO_GET_TARGET_NAME = 2, DISPLAYCONFIG_DEVICE_INFO_GET_TARGET_NAME = 2,
DISPLAYCONFIG_DEVICE_INFO_GET_TARGET_PREFERRED_MODE = 3, DISPLAYCONFIG_DEVICE_INFO_GET_TARGET_PREFERRED_MODE = 3,
DISPLAYCONFIG_DEVICE_INFO_GET_ADAPTER_NAME = 4, DISPLAYCONFIG_DEVICE_INFO_GET_ADAPTER_NAME = 4,
DISPLAYCONFIG_DEVICE_INFO_SET_TARGET_PERSISTENCE = 5, DISPLAYCONFIG_DEVICE_INFO_SET_TARGET_PERSISTENCE = 5,
DISPLAYCONFIG_DEVICE_INFO_GET_TARGET_BASE_TYPE = 6,
DISPLAYCONFIG_DEVICE_INFO_FORCE_UINT32 = 0xFFFFFFFF DISPLAYCONFIG_DEVICE_INFO_FORCE_UINT32 = 0xFFFFFFFF
} DISPLAYCONFIG_DEVICE_INFO_TYPE; } DISPLAYCONFIG_DEVICE_INFO_TYPE;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
typedef struct DISPLAYCONFIG_DEVICE_INFO_HEADER typedef struct DISPLAYCONFIG_DEVICE_INFO_HEADER
{ {
DISPLAYCONFIG_DEVICE_INFO_TYPE type; DISPLAYCONFIG_DEVICE_INFO_TYPE type;
UINT32 size; UINT32 size;
LUID adapterId; LUID adapterId;
UINT32 id; UINT32 id;
} DISPLAYCONFIG_DEVICE_INFO_HEADER; } DISPLAYCONFIG_DEVICE_INFO_HEADER;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef struct DISPLAYCONFIG_SOURCE_DEVICE_NAME typedef struct DISPLAYCONFIG_SOURCE_DEVICE_NAME
{ {
DISPLAYCONFIG_DEVICE_INFO_HEADER header; DISPLAYCONFIG_DEVICE_INFO_HEADER header;
WCHAR viewGdiDeviceName[CCHDEVICENAME] ; WCHAR viewGdiDeviceName[CCHDEVICENAME] ;
} DISPLAYCONFIG_SOURCE_DEVICE_NAME; } DISPLAYCONFIG_SOURCE_DEVICE_NAME;
typedef struct DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS typedef struct DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS
{ {
union union
{ {
skipping to change at line 2747 skipping to change at line 3047
UINT32 height; UINT32 height;
DISPLAYCONFIG_TARGET_MODE targetMode; DISPLAYCONFIG_TARGET_MODE targetMode;
} DISPLAYCONFIG_TARGET_PREFERRED_MODE; } DISPLAYCONFIG_TARGET_PREFERRED_MODE;
typedef struct DISPLAYCONFIG_ADAPTER_NAME typedef struct DISPLAYCONFIG_ADAPTER_NAME
{ {
DISPLAYCONFIG_DEVICE_INFO_HEADER header; DISPLAYCONFIG_DEVICE_INFO_HEADER header;
WCHAR adapterDevicePath[128]; WCHAR adapterDevicePath[128];
} DISPLAYCONFIG_ADAPTER_NAME; } DISPLAYCONFIG_ADAPTER_NAME;
typedef struct DISPLAYCONFIG_TARGET_BASE_TYPE {
DISPLAYCONFIG_DEVICE_INFO_HEADER header;
DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY baseOutputTechnology;
} DISPLAYCONFIG_TARGET_BASE_TYPE;
typedef struct DISPLAYCONFIG_SET_TARGET_PERSISTENCE typedef struct DISPLAYCONFIG_SET_TARGET_PERSISTENCE
{ {
DISPLAYCONFIG_DEVICE_INFO_HEADER header; DISPLAYCONFIG_DEVICE_INFO_HEADER header;
union union
{ {
struct struct
{ {
UINT32 bootPersistenceOn : 1; UINT32 bootPersistenceOn : 1;
UINT32 reserved : 31; UINT32 reserved : 31;
}; };
UINT32 value; UINT32 value;
}; };
} DISPLAYCONFIG_SET_TARGET_PERSISTENCE; } DISPLAYCONFIG_SET_TARGET_PERSISTENCE;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
// //
// Definitions to be used by GetDisplayConfigBufferSizes and QueryDisplayConfig. // Definitions to be used by GetDisplayConfigBufferSizes and QueryDisplayConfig.
// //
#define QDC_ALL_PATHS 0x00000001 #define QDC_ALL_PATHS 0x00000001
#define QDC_ONLY_ACTIVE_PATHS 0x00000002 #define QDC_ONLY_ACTIVE_PATHS 0x00000002
#define QDC_DATABASE_CURRENT 0x00000004 #define QDC_DATABASE_CURRENT 0x00000004
// //
// Definitions used by SetDisplayConfig. // Definitions used by SetDisplayConfig.
skipping to change at line 2796 skipping to change at line 3104
#define SDC_PATH_PERSIST_IF_REQUIRED 0x00000800 #define SDC_PATH_PERSIST_IF_REQUIRED 0x00000800
#define SDC_FORCE_MODE_ENUMERATION 0x00001000 #define SDC_FORCE_MODE_ENUMERATION 0x00001000
#define SDC_ALLOW_PATH_ORDER_CHANGES 0x00002000 #define SDC_ALLOW_PATH_ORDER_CHANGES 0x00002000
#endif /* WINVER >= 0x0601 */ #endif /* WINVER >= 0x0601 */
/* GetRegionData/ExtCreateRegion */ /* GetRegionData/ExtCreateRegion */
#define RDH_RECTANGLES 1 #define RDH_RECTANGLES 1
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
typedef struct _RGNDATAHEADER { typedef struct _RGNDATAHEADER {
DWORD dwSize; DWORD dwSize;
DWORD iType; DWORD iType;
DWORD nCount; DWORD nCount;
DWORD nRgnSize; DWORD nRgnSize;
RECT rcBound; RECT rcBound;
} RGNDATAHEADER, *PRGNDATAHEADER; } RGNDATAHEADER, *PRGNDATAHEADER;
typedef struct _RGNDATA { typedef struct _RGNDATA {
RGNDATAHEADER rdh; RGNDATAHEADER rdh;
char Buffer[1]; char Buffer[1];
} RGNDATA, *PRGNDATA, NEAR *NPRGNDATA, FAR *LPRGNDATA; } RGNDATA, *PRGNDATA, NEAR *NPRGNDATA, FAR *LPRGNDATA;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
/* for GetRandomRgn */ /* for GetRandomRgn */
#define SYSRGN 4 #define SYSRGN 4
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef struct _ABC { typedef struct _ABC {
int abcA; int abcA;
UINT abcB; UINT abcB;
int abcC; int abcC;
} ABC, *PABC, NEAR *NPABC, FAR *LPABC; } ABC, *PABC, NEAR *NPABC, FAR *LPABC;
typedef struct _ABCFLOAT { typedef struct _ABCFLOAT {
FLOAT abcfA; FLOAT abcfA;
FLOAT abcfB; FLOAT abcfB;
FLOAT abcfC; FLOAT abcfC;
} ABCFLOAT, *PABCFLOAT, NEAR *NPABCFLOAT, FAR *LPABCFLOAT; } ABCFLOAT, *PABCFLOAT, NEAR *NPABCFLOAT, FAR *LPABCFLOAT;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#ifndef NOTEXTMETRIC #ifndef NOTEXTMETRIC
#ifdef _MAC #ifdef _MAC
#include "pshpack4.h" #include "pshpack4.h"
#endif #endif
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef struct _OUTLINETEXTMETRICA { typedef struct _OUTLINETEXTMETRICA {
UINT otmSize; UINT otmSize;
TEXTMETRICA otmTextMetrics; TEXTMETRICA otmTextMetrics;
BYTE otmFiller; BYTE otmFiller;
PANOSE otmPanoseNumber; PANOSE otmPanoseNumber;
UINT otmfsSelection; UINT otmfsSelection;
UINT otmfsType; UINT otmfsType;
int otmsCharSlopeRise; int otmsCharSlopeRise;
int otmsCharSlopeRun; int otmsCharSlopeRun;
int otmItalicAngle; int otmItalicAngle;
skipping to change at line 2909 skipping to change at line 3233
typedef POUTLINETEXTMETRICW POUTLINETEXTMETRIC; typedef POUTLINETEXTMETRICW POUTLINETEXTMETRIC;
typedef NPOUTLINETEXTMETRICW NPOUTLINETEXTMETRIC; typedef NPOUTLINETEXTMETRICW NPOUTLINETEXTMETRIC;
typedef LPOUTLINETEXTMETRICW LPOUTLINETEXTMETRIC; typedef LPOUTLINETEXTMETRICW LPOUTLINETEXTMETRIC;
#else #else
typedef OUTLINETEXTMETRICA OUTLINETEXTMETRIC; typedef OUTLINETEXTMETRICA OUTLINETEXTMETRIC;
typedef POUTLINETEXTMETRICA POUTLINETEXTMETRIC; typedef POUTLINETEXTMETRICA POUTLINETEXTMETRIC;
typedef NPOUTLINETEXTMETRICA NPOUTLINETEXTMETRIC; typedef NPOUTLINETEXTMETRICA NPOUTLINETEXTMETRIC;
typedef LPOUTLINETEXTMETRICA LPOUTLINETEXTMETRIC; typedef LPOUTLINETEXTMETRICA LPOUTLINETEXTMETRIC;
#endif // UNICODE #endif // UNICODE
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#ifdef _MAC #ifdef _MAC
#include "poppack.h" #include "poppack.h"
#endif #endif
#endif /* NOTEXTMETRIC */ #endif /* NOTEXTMETRIC */
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
typedef struct tagPOLYTEXTA typedef struct tagPOLYTEXTA
{ {
int x; int x;
int y; int y;
UINT n; UINT n;
LPCSTR lpstr; LPCSTR lpstr;
UINT uiFlags; UINT uiFlags;
RECT rcl; RECT rcl;
int *pdx; int *pdx;
} POLYTEXTA, *PPOLYTEXTA, NEAR *NPPOLYTEXTA, FAR *LPPOLYTEXTA; } POLYTEXTA, *PPOLYTEXTA, NEAR *NPPOLYTEXTA, FAR *LPPOLYTEXTA;
skipping to change at line 2947 skipping to change at line 3277
typedef PPOLYTEXTW PPOLYTEXT; typedef PPOLYTEXTW PPOLYTEXT;
typedef NPPOLYTEXTW NPPOLYTEXT; typedef NPPOLYTEXTW NPPOLYTEXT;
typedef LPPOLYTEXTW LPPOLYTEXT; typedef LPPOLYTEXTW LPPOLYTEXT;
#else #else
typedef POLYTEXTA POLYTEXT; typedef POLYTEXTA POLYTEXT;
typedef PPOLYTEXTA PPOLYTEXT; typedef PPOLYTEXTA PPOLYTEXT;
typedef NPPOLYTEXTA NPPOLYTEXT; typedef NPPOLYTEXTA NPPOLYTEXT;
typedef LPPOLYTEXTA LPPOLYTEXT; typedef LPPOLYTEXTA LPPOLYTEXT;
#endif // UNICODE #endif // UNICODE
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef struct _FIXED { typedef struct _FIXED {
#ifndef _MAC #ifndef _MAC
WORD fract; WORD fract;
short value; short value;
#else #else
short value; short value;
WORD fract; WORD fract;
#endif #endif
} FIXED; } FIXED;
skipping to change at line 2972 skipping to change at line 3308
} MAT2, FAR *LPMAT2; } MAT2, FAR *LPMAT2;
typedef struct _GLYPHMETRICS { typedef struct _GLYPHMETRICS {
UINT gmBlackBoxX; UINT gmBlackBoxX;
UINT gmBlackBoxY; UINT gmBlackBoxY;
POINT gmptGlyphOrigin; POINT gmptGlyphOrigin;
short gmCellIncX; short gmCellIncX;
short gmCellIncY; short gmCellIncY;
} GLYPHMETRICS, FAR *LPGLYPHMETRICS; } GLYPHMETRICS, FAR *LPGLYPHMETRICS;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
// GetGlyphOutline constants // GetGlyphOutline constants
#define GGO_METRICS 0 #define GGO_METRICS 0
#define GGO_BITMAP 1 #define GGO_BITMAP 1
#define GGO_NATIVE 2 #define GGO_NATIVE 2
#define GGO_BEZIER 3 #define GGO_BEZIER 3
#if(WINVER >= 0x0400) #if(WINVER >= 0x0400)
#define GGO_GRAY2_BITMAP 4 #define GGO_GRAY2_BITMAP 4
#define GGO_GRAY4_BITMAP 5 #define GGO_GRAY4_BITMAP 5
skipping to change at line 2996 skipping to change at line 3335
#if (_WIN32_WINNT >= _WIN32_WINNT_WIN2K) #if (_WIN32_WINNT >= _WIN32_WINNT_WIN2K)
#define GGO_UNHINTED 0x0100 #define GGO_UNHINTED 0x0100
#endif // (_WIN32_WINNT >= _WIN32_WINNT_WIN2K) #endif // (_WIN32_WINNT >= _WIN32_WINNT_WIN2K)
#define TT_POLYGON_TYPE 24 #define TT_POLYGON_TYPE 24
#define TT_PRIM_LINE 1 #define TT_PRIM_LINE 1
#define TT_PRIM_QSPLINE 2 #define TT_PRIM_QSPLINE 2
#define TT_PRIM_CSPLINE 3 #define TT_PRIM_CSPLINE 3
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef struct tagPOINTFX typedef struct tagPOINTFX
{ {
FIXED x; FIXED x;
FIXED y; FIXED y;
} POINTFX, FAR* LPPOINTFX; } POINTFX, FAR* LPPOINTFX;
typedef struct tagTTPOLYCURVE typedef struct tagTTPOLYCURVE
{ {
WORD wType; WORD wType;
WORD cpfx; WORD cpfx;
POINTFX apfx[1]; POINTFX apfx[1];
} TTPOLYCURVE, FAR* LPTTPOLYCURVE; } TTPOLYCURVE, FAR* LPTTPOLYCURVE;
typedef struct tagTTPOLYGONHEADER typedef struct tagTTPOLYGONHEADER
{ {
DWORD cb; DWORD cb;
DWORD dwType; DWORD dwType;
POINTFX pfxStart; POINTFX pfxStart;
} TTPOLYGONHEADER, FAR* LPTTPOLYGONHEADER; } TTPOLYGONHEADER, FAR* LPTTPOLYGONHEADER;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#if(WINVER >= 0x0400) #if(WINVER >= 0x0400)
#define GCP_DBCS 0x0001 #define GCP_DBCS 0x0001
#define GCP_REORDER 0x0002 #define GCP_REORDER 0x0002
#define GCP_USEKERNING 0x0008 #define GCP_USEKERNING 0x0008
#define GCP_GLYPHSHAPE 0x0010 #define GCP_GLYPHSHAPE 0x0010
#define GCP_LIGATE 0x0020 #define GCP_LIGATE 0x0020
////#define GCP_GLYPHINDEXING 0x0080 ////#define GCP_GLYPHINDEXING 0x0080
#define GCP_DIACRITIC 0x0100 #define GCP_DIACRITIC 0x0100
#define GCP_KASHIDA 0x0400 #define GCP_KASHIDA 0x0400
#define GCP_ERROR 0x8000 #define GCP_ERROR 0x8000
skipping to change at line 3058 skipping to change at line 3403
#define GCPCLASS_LATINNUMERICSEPARATOR 7 #define GCPCLASS_LATINNUMERICSEPARATOR 7
#define GCPCLASS_NUMERICSEPARATOR 8 #define GCPCLASS_NUMERICSEPARATOR 8
#define GCPCLASS_PREBOUNDLTR 0x80 #define GCPCLASS_PREBOUNDLTR 0x80
#define GCPCLASS_PREBOUNDRTL 0x40 #define GCPCLASS_PREBOUNDRTL 0x40
#define GCPCLASS_POSTBOUNDLTR 0x20 #define GCPCLASS_POSTBOUNDLTR 0x20
#define GCPCLASS_POSTBOUNDRTL 0x10 #define GCPCLASS_POSTBOUNDRTL 0x10
#define GCPGLYPH_LINKBEFORE 0x8000 #define GCPGLYPH_LINKBEFORE 0x8000
#define GCPGLYPH_LINKAFTER 0x4000 #define GCPGLYPH_LINKAFTER 0x4000
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef struct tagGCP_RESULTSA typedef struct tagGCP_RESULTSA
{ {
DWORD lStructSize; DWORD lStructSize;
LPSTR lpOutString; LPSTR lpOutString;
UINT FAR *lpOrder; UINT FAR *lpOrder;
int FAR *lpDx; int FAR *lpDx;
int FAR *lpCaretPos; int FAR *lpCaretPos;
LPSTR lpClass; LPSTR lpClass;
LPWSTR lpGlyphs; LPWSTR lpGlyphs;
UINT nGlyphs; UINT nGlyphs;
skipping to change at line 3089 skipping to change at line 3437
UINT nGlyphs; UINT nGlyphs;
int nMaxFit; int nMaxFit;
} GCP_RESULTSW, FAR* LPGCP_RESULTSW; } GCP_RESULTSW, FAR* LPGCP_RESULTSW;
#ifdef UNICODE #ifdef UNICODE
typedef GCP_RESULTSW GCP_RESULTS; typedef GCP_RESULTSW GCP_RESULTS;
typedef LPGCP_RESULTSW LPGCP_RESULTS; typedef LPGCP_RESULTSW LPGCP_RESULTS;
#else #else
typedef GCP_RESULTSA GCP_RESULTS; typedef GCP_RESULTSA GCP_RESULTS;
typedef LPGCP_RESULTSA LPGCP_RESULTS; typedef LPGCP_RESULTSA LPGCP_RESULTS;
#endif // UNICODE #endif // UNICODE
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef struct _RASTERIZER_STATUS { typedef struct _RASTERIZER_STATUS {
short nSize; short nSize;
short wFlags; short wFlags;
short nLanguageID; short nLanguageID;
} RASTERIZER_STATUS, FAR *LPRASTERIZER_STATUS; } RASTERIZER_STATUS, FAR *LPRASTERIZER_STATUS;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
/* bits defined in wFlags of RASTERIZER_STATUS */ /* bits defined in wFlags of RASTERIZER_STATUS */
#define TT_AVAILABLE 0x0001 #define TT_AVAILABLE 0x0001
#define TT_ENABLED 0x0002 #define TT_ENABLED 0x0002
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
/* Pixel format descriptor */ /* Pixel format descriptor */
typedef struct tagPIXELFORMATDESCRIPTOR typedef struct tagPIXELFORMATDESCRIPTOR
{ {
WORD nSize; WORD nSize;
WORD nVersion; WORD nVersion;
DWORD dwFlags; DWORD dwFlags;
BYTE iPixelType; BYTE iPixelType;
BYTE cColorBits; BYTE cColorBits;
BYTE cRedBits; BYTE cRedBits;
BYTE cRedShift; BYTE cRedShift;
skipping to change at line 3132 skipping to change at line 3492
BYTE cDepthBits; BYTE cDepthBits;
BYTE cStencilBits; BYTE cStencilBits;
BYTE cAuxBuffers; BYTE cAuxBuffers;
BYTE iLayerType; BYTE iLayerType;
BYTE bReserved; BYTE bReserved;
DWORD dwLayerMask; DWORD dwLayerMask;
DWORD dwVisibleMask; DWORD dwVisibleMask;
DWORD dwDamageMask; DWORD dwDamageMask;
} PIXELFORMATDESCRIPTOR, *PPIXELFORMATDESCRIPTOR, FAR *LPPIXELFORMATDESCRIPTOR; } PIXELFORMATDESCRIPTOR, *PPIXELFORMATDESCRIPTOR, FAR *LPPIXELFORMATDESCRIPTOR;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
/* pixel types */ /* pixel types */
#define PFD_TYPE_RGBA 0 #define PFD_TYPE_RGBA 0
#define PFD_TYPE_COLORINDEX 1 #define PFD_TYPE_COLORINDEX 1
/* layer types */ /* layer types */
#define PFD_MAIN_PLANE 0 #define PFD_MAIN_PLANE 0
#define PFD_OVERLAY_PLANE 1 #define PFD_OVERLAY_PLANE 1
#define PFD_UNDERLAY_PLANE (-1) #define PFD_UNDERLAY_PLANE (-1)
/* PIXELFORMATDESCRIPTOR flags */ /* PIXELFORMATDESCRIPTOR flags */
skipping to change at line 3164 skipping to change at line 3527
#define PFD_GENERIC_ACCELERATED 0x00001000 #define PFD_GENERIC_ACCELERATED 0x00001000
#define PFD_SUPPORT_DIRECTDRAW 0x00002000 #define PFD_SUPPORT_DIRECTDRAW 0x00002000
#define PFD_DIRECT3D_ACCELERATED 0x00004000 #define PFD_DIRECT3D_ACCELERATED 0x00004000
#define PFD_SUPPORT_COMPOSITION 0x00008000 #define PFD_SUPPORT_COMPOSITION 0x00008000
/* PIXELFORMATDESCRIPTOR flags for use in ChoosePixelFormat only */ /* PIXELFORMATDESCRIPTOR flags for use in ChoosePixelFormat only */
#define PFD_DEPTH_DONTCARE 0x20000000 #define PFD_DEPTH_DONTCARE 0x20000000
#define PFD_DOUBLEBUFFER_DONTCARE 0x40000000 #define PFD_DOUBLEBUFFER_DONTCARE 0x40000000
#define PFD_STEREO_DONTCARE 0x80000000 #define PFD_STEREO_DONTCARE 0x80000000
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
#ifdef STRICT #ifdef STRICT
#if !defined(NOTEXTMETRIC) #if !defined(NOTEXTMETRIC)
typedef int (CALLBACK* OLDFONTENUMPROCA)(CONST LOGFONTA *, CONST TEXTMETRICA *, DWORD, LPARAM); typedef int (CALLBACK* OLDFONTENUMPROCA)(CONST LOGFONTA *, CONST TEXTMETRICA *, DWORD, LPARAM);
typedef int (CALLBACK* OLDFONTENUMPROCW)(CONST LOGFONTW *, CONST TEXTMETRICW *, DWORD, LPARAM); typedef int (CALLBACK* OLDFONTENUMPROCW)(CONST LOGFONTW *, CONST TEXTMETRICW *, DWORD, LPARAM);
#ifdef UNICODE #ifdef UNICODE
#define OLDFONTENUMPROC OLDFONTENUMPROCW #define OLDFONTENUMPROC OLDFONTENUMPROCW
#else #else
#define OLDFONTENUMPROC OLDFONTENUMPROCA #define OLDFONTENUMPROC OLDFONTENUMPROCA
#endif // !UNICODE #endif // !UNICODE
#else #else
typedef int (CALLBACK* OLDFONTENUMPROCA)(CONST LOGFONTA *, CONST VOID *, DWORD, LPARAM); typedef int (CALLBACK* OLDFONTENUMPROCA)(CONST LOGFONTA *, CONST VOID *, DWORD, LPARAM);
skipping to change at line 3206 skipping to change at line 3573
typedef FARPROC FONTENUMPROCW; typedef FARPROC FONTENUMPROCW;
#ifdef UNICODE #ifdef UNICODE
typedef FONTENUMPROCW FONTENUMPROC; typedef FONTENUMPROCW FONTENUMPROC;
#else #else
typedef FONTENUMPROCA FONTENUMPROC; typedef FONTENUMPROCA FONTENUMPROC;
#endif // UNICODE #endif // UNICODE
typedef FARPROC GOBJENUMPROC; typedef FARPROC GOBJENUMPROC;
typedef FARPROC LINEDDAPROC; typedef FARPROC LINEDDAPROC;
#endif #endif
WINGDIAPI int WINAPI AddFontResourceA(__in LPCSTR); #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
WINGDIAPI int WINAPI AddFontResourceW(__in LPCWSTR); #pragma endregion
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
WINGDIAPI int WINAPI AddFontResourceA(_In_ LPCSTR);
WINGDIAPI int WINAPI AddFontResourceW(_In_ LPCWSTR);
#ifdef UNICODE #ifdef UNICODE
#define AddFontResource AddFontResourceW #define AddFontResource AddFontResourceW
#else #else
#define AddFontResource AddFontResourceA #define AddFontResource AddFontResourceA
#endif // !UNICODE #endif // !UNICODE
__gdi_entry WINGDIAPI BOOL WINAPI AnimatePalette( __in HPALETTE hPal, __in UINT WINGDIAPI BOOL WINAPI AnimatePalette( _In_ HPALETTE hPal, _In_ UINT iStartInde
iStartIndex, __in UINT cEntries, __in_ecount(cEntries) CONST PALETTEENTRY * pp x, _In_ UINT cEntries, _In_reads_(cEntries) CONST PALETTEENTRY * ppe);
e); WINGDIAPI BOOL WINAPI Arc( _In_ HDC hdc, _In_ int x1, _In_ int y1, _In_ int x2
__gdi_entry WINGDIAPI BOOL WINAPI Arc( __in HDC hdc, __in int x1, __in int y1, , _In_ int y2, _In_ int x3, _In_ int y3, _In_ int x4, _In_ int y4);
__in int x2, __in int y2, __in int x3, __in int y3, __in int x4, __in int y4); WINGDIAPI BOOL WINAPI BitBlt( _In_ HDC hdc, _In_ int x, _In_ int y, _In_ int c
__gdi_entry WINGDIAPI BOOL WINAPI BitBlt( __in HDC hdc, __in int x, __in int y, x, _In_ int cy, _In_opt_ HDC hdcSrc, _In_ int x1, _In_ int y1, _In_ DWORD rop);
__in int cx, __in int cy, __in_opt HDC hdcSrc, __in int x1, __in int y1, __in D WINGDIAPI BOOL WINAPI CancelDC( _In_ HDC hdc);
WORD rop); WINGDIAPI BOOL WINAPI Chord( _In_ HDC hdc, _In_ int x1, _In_ int y1, _In_ int
WINGDIAPI BOOL WINAPI CancelDC( __in HDC hdc); x2, _In_ int y2, _In_ int x3, _In_ int y3, _In_ int x4, _In_ int y4);
__gdi_entry WINGDIAPI BOOL WINAPI Chord( __in HDC hdc, __in int x1, __in int y1 WINGDIAPI int WINAPI ChoosePixelFormat( _In_ HDC hdc, _In_ CONST PIXELFORMATDE
, __in int x2, __in int y2, __in int x3, __in int y3, __in int x4, __in int y4); SCRIPTOR *ppfd);
WINGDIAPI int WINAPI ChoosePixelFormat( __in HDC hdc, __in CONST PIXELFORMATDE WINGDIAPI HMETAFILE WINAPI CloseMetaFile( _In_ HDC hdc);
SCRIPTOR *ppfd); WINGDIAPI int WINAPI CombineRgn( _In_opt_ HRGN hrgnDst, _In_opt_ HRGN hrgnSr
WINGDIAPI HMETAFILE WINAPI CloseMetaFile( __in HDC hdc); c1, _In_opt_ HRGN hrgnSrc2, _In_ int iMode);
WINGDIAPI int WINAPI CombineRgn( __in_opt HRGN hrgnDst, __in_opt HRGN hrgnSr WINGDIAPI HMETAFILE WINAPI CopyMetaFileA( _In_ HMETAFILE, _In_opt_ LPCSTR);
c1, __in_opt HRGN hrgnSrc2, __in int iMode); WINGDIAPI HMETAFILE WINAPI CopyMetaFileW( _In_ HMETAFILE, _In_opt_ LPCWSTR);
WINGDIAPI HMETAFILE WINAPI CopyMetaFileA( __in HMETAFILE, __in_opt LPCSTR);
WINGDIAPI HMETAFILE WINAPI CopyMetaFileW( __in HMETAFILE, __in_opt LPCWSTR);
#ifdef UNICODE #ifdef UNICODE
#define CopyMetaFile CopyMetaFileW #define CopyMetaFile CopyMetaFileW
#else #else
#define CopyMetaFile CopyMetaFileA #define CopyMetaFile CopyMetaFileA
#endif // !UNICODE #endif // !UNICODE
__gdi_entry WINGDIAPI HBITMAP WINAPI CreateBitmap( __in int nWidth, __in int nHe WINGDIAPI HBITMAP WINAPI CreateBitmap( _In_ int nWidth, _In_ int nHeight, _In_
ight, __in UINT nPlanes, __in UINT nBitCount, __in_opt CONST VOID *lpBits); UINT nPlanes, _In_ UINT nBitCount, _In_opt_ CONST VOID *lpBits);
__gdi_entry WINGDIAPI HBITMAP WINAPI CreateBitmapIndirect( __in CONST BITMAP *pb WINGDIAPI HBITMAP WINAPI CreateBitmapIndirect( _In_ CONST BITMAP *pbm);
m); WINGDIAPI HBRUSH WINAPI CreateBrushIndirect( _In_ CONST LOGBRUSH *plbrush);
__gdi_entry WINGDIAPI HBRUSH WINAPI CreateBrushIndirect( __in CONST LOGBRUSH *p WINGDIAPI HBITMAP WINAPI CreateCompatibleBitmap( _In_ HDC hdc, _In_ int cx, _In_
lbrush); int cy);
WINGDIAPI HBITMAP WINAPI CreateCompatibleBitmap( __in HDC hdc, __in int cx, __in WINGDIAPI HBITMAP WINAPI CreateDiscardableBitmap( _In_ HDC hdc, _In_ int cx, _In
int cy); _ int cy);
WINGDIAPI HBITMAP WINAPI CreateDiscardableBitmap( __in HDC hdc, __in int cx, __i WINGDIAPI HDC WINAPI CreateCompatibleDC( _In_opt_ HDC hdc);
n int cy); WINGDIAPI HDC WINAPI CreateDCA( _In_opt_ LPCSTR pwszDriver, _In_opt_ LPCSTR
WINGDIAPI HDC WINAPI CreateCompatibleDC( __in_opt HDC hdc); pwszDevice, _In_opt_ LPCSTR pszPort, _In_opt_ CONST DEVMODEA * pdm);
WINGDIAPI HDC WINAPI CreateDCA( __in_opt LPCSTR pwszDriver, __in_opt LPCSTR WINGDIAPI HDC WINAPI CreateDCW( _In_opt_ LPCWSTR pwszDriver, _In_opt_ LPCWST
pwszDevice, __in_opt LPCSTR pszPort, __in_opt CONST DEVMODEA * pdm); R pwszDevice, _In_opt_ LPCWSTR pszPort, _In_opt_ CONST DEVMODEW * pdm);
WINGDIAPI HDC WINAPI CreateDCW( __in_opt LPCWSTR pwszDriver, __in_opt LPCWST
R pwszDevice, __in_opt LPCWSTR pszPort, __in_opt CONST DEVMODEW * pdm);
#ifdef UNICODE #ifdef UNICODE
#define CreateDC CreateDCW #define CreateDC CreateDCW
#else #else
#define CreateDC CreateDCA #define CreateDC CreateDCA
#endif // !UNICODE #endif // !UNICODE
WINGDIAPI HBITMAP WINAPI CreateDIBitmap( __in HDC hdc, __in_opt CONST BITMAPINFO WINGDIAPI HBITMAP WINAPI CreateDIBitmap( _In_ HDC hdc, _In_opt_ CONST BITMAPINFO
HEADER *pbmih, __in DWORD flInit, __in_opt CONST VOID *pjBits, __in_opt CONST BI HEADER *pbmih, _In_ DWORD flInit, _In_opt_ CONST VOID *pjBits, _In_opt_ CONST BI
TMAPINFO *pbmi, __in UINT iUsage); TMAPINFO *pbmi, _In_ UINT iUsage);
WINGDIAPI HBRUSH WINAPI CreateDIBPatternBrush( __in HGLOBAL h, __in UINT iUsage WINGDIAPI HBRUSH WINAPI CreateDIBPatternBrush( _In_ HGLOBAL h, _In_ UINT iUsage
); );
__gdi_entry WINGDIAPI HBRUSH WINAPI CreateDIBPatternBrushPt( __in CONST VOID *l WINGDIAPI HBRUSH WINAPI CreateDIBPatternBrushPt( _In_ CONST VOID *lpPackedDIB,
pPackedDIB, __in UINT iUsage); _In_ UINT iUsage);
WINGDIAPI HRGN WINAPI CreateEllipticRgn( __in int x1, __in int y1, __in int x WINGDIAPI HRGN WINAPI CreateEllipticRgn( _In_ int x1, _In_ int y1, _In_ int x
2, __in int y2); 2, _In_ int y2);
WINGDIAPI HRGN WINAPI CreateEllipticRgnIndirect( __in CONST RECT *lprect); WINGDIAPI HRGN WINAPI CreateEllipticRgnIndirect( _In_ CONST RECT *lprect);
__gdi_entry WINGDIAPI HFONT WINAPI CreateFontIndirectA( __in CONST LOGFONTA *l WINGDIAPI HFONT WINAPI CreateFontIndirectA( _In_ CONST LOGFONTA *lplf);
plf); WINGDIAPI HFONT WINAPI CreateFontIndirectW( _In_ CONST LOGFONTW *lplf);
__gdi_entry WINGDIAPI HFONT WINAPI CreateFontIndirectW( __in CONST LOGFONTW *l
plf);
#ifdef UNICODE #ifdef UNICODE
#define CreateFontIndirect CreateFontIndirectW #define CreateFontIndirect CreateFontIndirectW
#else #else
#define CreateFontIndirect CreateFontIndirectA #define CreateFontIndirect CreateFontIndirectA
#endif // !UNICODE #endif // !UNICODE
WINGDIAPI HFONT WINAPI CreateFontA( __in int cHeight, __in int cWidth, __in in WINGDIAPI HFONT WINAPI CreateFontA( _In_ int cHeight, _In_ int cWidth, _In_ in
t cEscapement, __in int cOrientation, __in int cWeight, __in DWORD bItalic, t cEscapement, _In_ int cOrientation, _In_ int cWeight, _In_ DWORD bItalic,
__in DWORD bUnderline, __in DWORD bStrikeOut, __in _In_ DWORD bUnderline, _In_ DWORD bStrikeOut, _In_
DWORD iCharSet, __in DWORD iOutPrecision, __in DWORD iClipPrecision, DWORD iCharSet, _In_ DWORD iOutPrecision, _In_ DWORD iClipPrecision,
__in DWORD iQuality, __in DWORD iPitchAndFamily, __ _In_ DWORD iQuality, _In_ DWORD iPitchAndFamily, _I
in_opt LPCSTR pszFaceName); n_opt_ LPCSTR pszFaceName);
WINGDIAPI HFONT WINAPI CreateFontW( __in int cHeight, __in int cWidth, __in in WINGDIAPI HFONT WINAPI CreateFontW( _In_ int cHeight, _In_ int cWidth, _In_ in
t cEscapement, __in int cOrientation, __in int cWeight, __in DWORD bItalic, t cEscapement, _In_ int cOrientation, _In_ int cWeight, _In_ DWORD bItalic,
__in DWORD bUnderline, __in DWORD bStrikeOut, __in _In_ DWORD bUnderline, _In_ DWORD bStrikeOut, _In_
DWORD iCharSet, __in DWORD iOutPrecision, __in DWORD iClipPrecision, DWORD iCharSet, _In_ DWORD iOutPrecision, _In_ DWORD iClipPrecision,
__in DWORD iQuality, __in DWORD iPitchAndFamily, __ _In_ DWORD iQuality, _In_ DWORD iPitchAndFamily, _I
in_opt LPCWSTR pszFaceName); n_opt_ LPCWSTR pszFaceName);
#ifdef UNICODE #ifdef UNICODE
#define CreateFont CreateFontW #define CreateFont CreateFontW
#else #else
#define CreateFont CreateFontA #define CreateFont CreateFontA
#endif // !UNICODE #endif // !UNICODE
WINGDIAPI HBRUSH WINAPI CreateHatchBrush( __in int iHatch, __in COLORREF color) WINGDIAPI HBRUSH WINAPI CreateHatchBrush( _In_ int iHatch, _In_ COLORREF color)
; ;
WINGDIAPI HDC WINAPI CreateICA( __in_opt LPCSTR pszDriver, __in_opt LPCSTR p WINGDIAPI HDC WINAPI CreateICA( _In_opt_ LPCSTR pszDriver, _In_opt_ LPCSTR p
szDevice, __in_opt LPCSTR pszPort, __in_opt CONST DEVMODEA * pdm); szDevice, _In_opt_ LPCSTR pszPort, _In_opt_ CONST DEVMODEA * pdm);
WINGDIAPI HDC WINAPI CreateICW( __in_opt LPCWSTR pszDriver, __in_opt LPCWSTR WINGDIAPI HDC WINAPI CreateICW( _In_opt_ LPCWSTR pszDriver, _In_opt_ LPCWSTR
pszDevice, __in_opt LPCWSTR pszPort, __in_opt CONST DEVMODEW * pdm); pszDevice, _In_opt_ LPCWSTR pszPort, _In_opt_ CONST DEVMODEW * pdm);
#ifdef UNICODE #ifdef UNICODE
#define CreateIC CreateICW #define CreateIC CreateICW
#else #else
#define CreateIC CreateICA #define CreateIC CreateICA
#endif // !UNICODE #endif // !UNICODE
WINGDIAPI HDC WINAPI CreateMetaFileA( __in_opt LPCSTR pszFile); WINGDIAPI HDC WINAPI CreateMetaFileA( _In_opt_ LPCSTR pszFile);
WINGDIAPI HDC WINAPI CreateMetaFileW( __in_opt LPCWSTR pszFile); WINGDIAPI HDC WINAPI CreateMetaFileW( _In_opt_ LPCWSTR pszFile);
#ifdef UNICODE #ifdef UNICODE
#define CreateMetaFile CreateMetaFileW #define CreateMetaFile CreateMetaFileW
#else #else
#define CreateMetaFile CreateMetaFileA #define CreateMetaFile CreateMetaFileA
#endif // !UNICODE #endif // !UNICODE
__gdi_entry WINGDIAPI HPALETTE WINAPI CreatePalette( __in_xcount(2*sizeof(WORD) WINGDIAPI HPALETTE WINAPI CreatePalette( _In_reads_(_Inexpressible_(2*sizeof(WO
+ plpal->palNumEntries * sizeof(PALETTEENTRY)) CONST LOGPALETTE * plpal); RD) + plpal->palNumEntries * sizeof(PALETTEENTRY))) CONST LOGPALETTE * plpal);
WINGDIAPI HPEN WINAPI CreatePen( __in int iStyle, __in int cWidth, __in COLOR WINGDIAPI HPEN WINAPI CreatePen( _In_ int iStyle, _In_ int cWidth, _In_ COLOR
REF color); REF color);
__gdi_entry WINGDIAPI HPEN WINAPI CreatePenIndirect( __in CONST LOGPEN *plpen WINGDIAPI HPEN WINAPI CreatePenIndirect( _In_ CONST LOGPEN *plpen);
); WINGDIAPI HRGN WINAPI CreatePolyPolygonRgn( _In_ CONST POINT *pptl,
WINGDIAPI HRGN WINAPI CreatePolyPolygonRgn( __in CONST POINT *pptl, _In_reads_(cPoly) CONST INT *pc
__in CONST INT *pc, ,
__in int cPoly, _In_ int cPoly,
__in int iMode); _In_ int iMode);
__gdi_entry WINGDIAPI HBRUSH WINAPI CreatePatternBrush( __in HBITMAP hbm); WINGDIAPI HBRUSH WINAPI CreatePatternBrush( _In_ HBITMAP hbm);
WINGDIAPI HRGN WINAPI CreateRectRgn( __in int x1, __in int y1, __in int x2, _ WINGDIAPI HRGN WINAPI CreateRectRgn( _In_ int x1, _In_ int y1, _In_ int x2, _
_in int y2); In_ int y2);
WINGDIAPI HRGN WINAPI CreateRectRgnIndirect( __in CONST RECT *lprect); WINGDIAPI HRGN WINAPI CreateRectRgnIndirect( _In_ CONST RECT *lprect);
WINGDIAPI HRGN WINAPI CreateRoundRectRgn( __in int x1, __in int y1, __in int WINGDIAPI HRGN WINAPI CreateRoundRectRgn( _In_ int x1, _In_ int y1, _In_ int
x2, __in int y2, __in int w, __in int h); x2, _In_ int y2, _In_ int w, _In_ int h);
WINGDIAPI BOOL WINAPI CreateScalableFontResourceA( __in DWORD fdwHidden, __in WINGDIAPI BOOL WINAPI CreateScalableFontResourceA( _In_ DWORD fdwHidden, _In_
LPCSTR lpszFont, __in LPCSTR lpszFile, __in_opt LPCSTR lpszPath); LPCSTR lpszFont, _In_ LPCSTR lpszFile, _In_opt_ LPCSTR lpszPath);
WINGDIAPI BOOL WINAPI CreateScalableFontResourceW( __in DWORD fdwHidden, __in WINGDIAPI BOOL WINAPI CreateScalableFontResourceW( _In_ DWORD fdwHidden, _In_
LPCWSTR lpszFont, __in LPCWSTR lpszFile, __in_opt LPCWSTR lpszPath); LPCWSTR lpszFont, _In_ LPCWSTR lpszFile, _In_opt_ LPCWSTR lpszPath);
#ifdef UNICODE #ifdef UNICODE
#define CreateScalableFontResource CreateScalableFontResourceW #define CreateScalableFontResource CreateScalableFontResourceW
#else #else
#define CreateScalableFontResource CreateScalableFontResourceA #define CreateScalableFontResource CreateScalableFontResourceA
#endif // !UNICODE #endif // !UNICODE
WINGDIAPI HBRUSH WINAPI CreateSolidBrush( __in COLORREF color); WINGDIAPI HBRUSH WINAPI CreateSolidBrush( _In_ COLORREF color);
WINGDIAPI BOOL WINAPI DeleteDC( __in HDC hdc); WINGDIAPI BOOL WINAPI DeleteDC( _In_ HDC hdc);
WINGDIAPI BOOL WINAPI DeleteMetaFile( __in HMETAFILE hmf); WINGDIAPI BOOL WINAPI DeleteMetaFile( _In_ HMETAFILE hmf);
__gdi_entry WINGDIAPI BOOL WINAPI DeleteObject( __in HGDIOBJ ho); WINGDIAPI BOOL WINAPI DeleteObject( _In_ HGDIOBJ ho);
WINGDIAPI int WINAPI DescribePixelFormat( __in HDC hdc, WINGDIAPI int WINAPI DescribePixelFormat( _In_ HDC hdc,
__in int iPixelFormat, _In_ int iPixelFormat,
__in UINT nBytes, _In_ UINT nBytes,
__out_bcount_opt(nBytes) LPPIXELFORM _Out_writes_bytes_opt_(nBytes) LPPIX
ATDESCRIPTOR ppfd); ELFORMATDESCRIPTOR ppfd);
/* define types of pointers to ExtDeviceMode() and DeviceCapabilities() /* define types of pointers to ExtDeviceMode() and DeviceCapabilities()
* functions for Win 3.1 compatibility * functions for Win 3.1 compatibility
*/ */
typedef UINT (CALLBACK* LPFNDEVMODE)(HWND, HMODULE, LPDEVMODE, LPSTR, LPSTR, L PDEVMODE, LPSTR, UINT); typedef UINT (CALLBACK* LPFNDEVMODE)(HWND, HMODULE, LPDEVMODE, LPSTR, LPSTR, L PDEVMODE, LPSTR, UINT);
typedef DWORD (CALLBACK* LPFNDEVCAPS)(LPSTR, LPSTR, UINT, LPSTR, LPDEVMODE); typedef DWORD (CALLBACK* LPFNDEVCAPS)(LPSTR, LPSTR, UINT, LPSTR, LPDEVMODE);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
/* mode selections for the device mode function */ /* mode selections for the device mode function */
#define DM_UPDATE 1 #define DM_UPDATE 1
#define DM_COPY 2 #define DM_COPY 2
#define DM_PROMPT 4 #define DM_PROMPT 4
#define DM_MODIFY 8 #define DM_MODIFY 8
#define DM_IN_BUFFER DM_MODIFY #define DM_IN_BUFFER DM_MODIFY
#define DM_IN_PROMPT DM_PROMPT #define DM_IN_PROMPT DM_PROMPT
#define DM_OUT_BUFFER DM_COPY #define DM_OUT_BUFFER DM_COPY
#define DM_OUT_DEFAULT DM_UPDATE #define DM_OUT_DEFAULT DM_UPDATE
skipping to change at line 3394 skipping to change at line 3770
#define DCBA_FACEUPNONE 0x0000 #define DCBA_FACEUPNONE 0x0000
#define DCBA_FACEUPCENTER 0x0001 #define DCBA_FACEUPCENTER 0x0001
#define DCBA_FACEUPLEFT 0x0002 #define DCBA_FACEUPLEFT 0x0002
#define DCBA_FACEUPRIGHT 0x0003 #define DCBA_FACEUPRIGHT 0x0003
#define DCBA_FACEDOWNNONE 0x0100 #define DCBA_FACEDOWNNONE 0x0100
#define DCBA_FACEDOWNCENTER 0x0101 #define DCBA_FACEDOWNCENTER 0x0101
#define DCBA_FACEDOWNLEFT 0x0102 #define DCBA_FACEDOWNLEFT 0x0102
#define DCBA_FACEDOWNRIGHT 0x0103 #define DCBA_FACEDOWNRIGHT 0x0103
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
WINSPOOLAPI WINSPOOLAPI
int int
WINAPI WINAPI
DeviceCapabilitiesA( DeviceCapabilitiesA(
__in LPCSTR pDevice, _In_ LPCSTR pDevice,
__in_opt LPCSTR pPort, _In_opt_ LPCSTR pPort,
__in WORD fwCapability, _In_ WORD fwCapability,
__out_xcount_opt(1) LPSTR pOutput, _Out_writes_opt_(_Inexpressible_(1)) LPSTR pOutput,
__in_opt CONST DEVMODEA *pDevMode _In_opt_ CONST DEVMODEA *pDevMode
); );
WINSPOOLAPI WINSPOOLAPI
int int
WINAPI WINAPI
DeviceCapabilitiesW( DeviceCapabilitiesW(
__in LPCWSTR pDevice, _In_ LPCWSTR pDevice,
__in_opt LPCWSTR pPort, _In_opt_ LPCWSTR pPort,
__in WORD fwCapability, _In_ WORD fwCapability,
__out_xcount_opt(1) LPWSTR pOutput, _Out_writes_opt_(_Inexpressible_(1)) LPWSTR pOutput,
__in_opt CONST DEVMODEW *pDevMode _In_opt_ CONST DEVMODEW *pDevMode
); );
#ifdef UNICODE #ifdef UNICODE
#define DeviceCapabilities DeviceCapabilitiesW #define DeviceCapabilities DeviceCapabilitiesW
#else #else
#define DeviceCapabilities DeviceCapabilitiesA #define DeviceCapabilities DeviceCapabilitiesA
#endif // !UNICODE #endif // !UNICODE
WINGDIAPI int WINAPI DrawEscape( __in HDC hdc, WINGDIAPI int WINAPI DrawEscape( _In_ HDC hdc,
__in int iEscape, _In_ int iEscape,
__in int cjIn, _In_ int cjIn,
__in_bcount_opt(cjIn) LPCSTR lpIn); _In_reads_bytes_opt_(cjIn) LPCSTR lpIn);
__gdi_entry WINGDIAPI BOOL WINAPI Ellipse( __in HDC hdc, __in int left, __in int top, __in int right, __in int bottom); WINGDIAPI BOOL WINAPI Ellipse( _In_ HDC hdc, _In_ int left, _In_ int top, _In_ int right, _In_ int bottom);
#if(WINVER >= 0x0400) #if(WINVER >= 0x0400)
WINGDIAPI int WINAPI EnumFontFamiliesExA( __in HDC hdc, __in LPLOGFONTA lpLogfo WINGDIAPI int WINAPI EnumFontFamiliesExA( _In_ HDC hdc, _In_ LPLOGFONTA lpLogfo
nt, __in FONTENUMPROCA lpProc, __in LPARAM lParam, __in DWORD dwFlags); nt, _In_ FONTENUMPROCA lpProc, _In_ LPARAM lParam, _In_ DWORD dwFlags);
WINGDIAPI int WINAPI EnumFontFamiliesExW( __in HDC hdc, __in LPLOGFONTW lpLogfo WINGDIAPI int WINAPI EnumFontFamiliesExW( _In_ HDC hdc, _In_ LPLOGFONTW lpLogfo
nt, __in FONTENUMPROCW lpProc, __in LPARAM lParam, __in DWORD dwFlags); nt, _In_ FONTENUMPROCW lpProc, _In_ LPARAM lParam, _In_ DWORD dwFlags);
#ifdef UNICODE #ifdef UNICODE
#define EnumFontFamiliesEx EnumFontFamiliesExW #define EnumFontFamiliesEx EnumFontFamiliesExW
#else #else
#define EnumFontFamiliesEx EnumFontFamiliesExA #define EnumFontFamiliesEx EnumFontFamiliesExA
#endif // !UNICODE #endif // !UNICODE
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
WINGDIAPI int WINAPI EnumFontFamiliesA( __in HDC hdc, __in_opt LPCSTR lpLogfont WINGDIAPI int WINAPI EnumFontFamiliesA( _In_ HDC hdc, _In_opt_ LPCSTR lpLogfont
, __in FONTENUMPROCA lpProc, __in LPARAM lParam); , _In_ FONTENUMPROCA lpProc, _In_ LPARAM lParam);
WINGDIAPI int WINAPI EnumFontFamiliesW( __in HDC hdc, __in_opt LPCWSTR lpLogfon WINGDIAPI int WINAPI EnumFontFamiliesW( _In_ HDC hdc, _In_opt_ LPCWSTR lpLogfon
t, __in FONTENUMPROCW lpProc, __in LPARAM lParam); t, _In_ FONTENUMPROCW lpProc, _In_ LPARAM lParam);
#ifdef UNICODE #ifdef UNICODE
#define EnumFontFamilies EnumFontFamiliesW #define EnumFontFamilies EnumFontFamiliesW
#else #else
#define EnumFontFamilies EnumFontFamiliesA #define EnumFontFamilies EnumFontFamiliesA
#endif // !UNICODE #endif // !UNICODE
WINGDIAPI int WINAPI EnumFontsA( __in HDC hdc, __in_opt LPCSTR lpLogfont, __in WINGDIAPI int WINAPI EnumFontsA( _In_ HDC hdc, _In_opt_ LPCSTR lpLogfont, _In_
FONTENUMPROCA lpProc, __in LPARAM lParam); FONTENUMPROCA lpProc, _In_ LPARAM lParam);
WINGDIAPI int WINAPI EnumFontsW( __in HDC hdc, __in_opt LPCWSTR lpLogfont, __i WINGDIAPI int WINAPI EnumFontsW( _In_ HDC hdc, _In_opt_ LPCWSTR lpLogfont, _In
n FONTENUMPROCW lpProc, __in LPARAM lParam); _ FONTENUMPROCW lpProc, _In_ LPARAM lParam);
#ifdef UNICODE #ifdef UNICODE
#define EnumFonts EnumFontsW #define EnumFonts EnumFontsW
#else #else
#define EnumFonts EnumFontsA #define EnumFonts EnumFontsA
#endif // !UNICODE #endif // !UNICODE
#ifdef STRICT #ifdef STRICT
WINGDIAPI int WINAPI EnumObjects( __in HDC hdc, __in int nType, __in GOBJENUMPR OC lpFunc, __in LPARAM lParam); WINGDIAPI int WINAPI EnumObjects( _In_ HDC hdc, _In_ int nType, _In_ GOBJENUMPR OC lpFunc, _In_ LPARAM lParam);
#else #else
WINGDIAPI int WINAPI EnumObjects( __in HDC hdc, __in int nType, __in GOBJENUMPR OC lpFunc, __in LPVOID lParam); WINGDIAPI int WINAPI EnumObjects( _In_ HDC hdc, _In_ int nType, _In_ GOBJENUMPR OC lpFunc, _In_ LPVOID lParam);
#endif #endif
WINGDIAPI BOOL WINAPI EqualRgn( __in HRGN hrgn1, __in HRGN hrgn2); WINGDIAPI BOOL WINAPI EqualRgn( _In_ HRGN hrgn1, _In_ HRGN hrgn2);
__gdi_entry WINGDIAPI int WINAPI Escape( __in HDC hdc, WINGDIAPI int WINAPI Escape( _In_ HDC hdc,
__in int iEscape, _In_ int iEscape,
__in int cjIn, _In_ int cjIn,
__in_bcount_opt(cjIn) LPCSTR pvIn, _In_reads_bytes_opt_(cjIn) LPCSTR pvIn,
__out_opt LPVOID pvOut); _Out_opt_ LPVOID pvOut);
WINGDIAPI int WINAPI ExtEscape( __in HDC hdc, WINGDIAPI int WINAPI ExtEscape( _In_ HDC hdc,
__in int iEscape, _In_ int iEscape,
__in int cjInput, _In_ int cjInput,
__in_bcount_opt(cjInput) LPCSTR lpInData, _In_reads_bytes_opt_(cjInput) LPCSTR lpInDat
__in int cjOutput, a,
__out_bcount_opt(cjOutput) LPSTR lpOutData); _In_ int cjOutput,
__gdi_entry WINGDIAPI int WINAPI ExcludeClipRect( __in HDC hdc, __in int left, _Out_writes_bytes_opt_(cjOutput) LPSTR lpOut
__in int top, __in int right, __in int bottom); Data);
__gdi_entry WINGDIAPI HRGN WINAPI ExtCreateRegion( __in_opt CONST XFORM * lpx, _ WINGDIAPI int WINAPI ExcludeClipRect( _In_ HDC hdc, _In_ int left, _In_ int to
_in DWORD nCount, __in_bcount(nCount) CONST RGNDATA * lpData); p, _In_ int right, _In_ int bottom);
__gdi_entry WINGDIAPI BOOL WINAPI ExtFloodFill( __in HDC hdc, __in int x, __in i WINGDIAPI HRGN WINAPI ExtCreateRegion( _In_opt_ CONST XFORM * lpx, _In_ DWORD n
nt y, __in COLORREF color, __in UINT type); Count, _In_reads_bytes_(nCount) CONST RGNDATA * lpData);
__gdi_entry WINGDIAPI BOOL WINAPI FillRgn( __in HDC hdc, __in HRGN hrgn, __in HB WINGDIAPI BOOL WINAPI ExtFloodFill( _In_ HDC hdc, _In_ int x, _In_ int y, _In_
RUSH hbr); COLORREF color, _In_ UINT type);
__gdi_entry WINGDIAPI BOOL WINAPI FloodFill( __in HDC hdc, __in int x, __in int WINGDIAPI BOOL WINAPI FillRgn( _In_ HDC hdc, _In_ HRGN hrgn, _In_ HBRUSH hbr);
y, __in COLORREF color); WINGDIAPI BOOL WINAPI FloodFill( _In_ HDC hdc, _In_ int x, _In_ int y, _In_ COL
__gdi_entry WINGDIAPI BOOL WINAPI FrameRgn( __in HDC hdc, __in HRGN hrgn, __in H ORREF color);
BRUSH hbr, __in int w, __in int h); WINGDIAPI BOOL WINAPI FrameRgn( _In_ HDC hdc, _In_ HRGN hrgn, _In_ HBRUSH hbr,
WINGDIAPI int WINAPI GetROP2( __in HDC hdc); _In_ int w, _In_ int h);
WINGDIAPI BOOL WINAPI GetAspectRatioFilterEx( __in HDC hdc, __out LPSIZE lpsize) WINGDIAPI int WINAPI GetROP2( _In_ HDC hdc);
; WINGDIAPI BOOL WINAPI GetAspectRatioFilterEx( _In_ HDC hdc, _Out_ LPSIZE lpsize)
WINGDIAPI COLORREF WINAPI GetBkColor( __in HDC hdc); ;
WINGDIAPI COLORREF WINAPI GetBkColor( _In_ HDC hdc);
#if (_WIN32_WINNT >= _WIN32_WINNT_WIN2K) #if (_WIN32_WINNT >= _WIN32_WINNT_WIN2K)
WINGDIAPI COLORREF WINAPI GetDCBrushColor( __in HDC hdc); WINGDIAPI COLORREF WINAPI GetDCBrushColor( _In_ HDC hdc);
WINGDIAPI COLORREF WINAPI GetDCPenColor( __in HDC hdc); WINGDIAPI COLORREF WINAPI GetDCPenColor( _In_ HDC hdc);
#endif #endif
WINGDIAPI WINGDIAPI
int int
WINAPI WINAPI
GetBkMode( GetBkMode(
__in HDC hdc _In_ HDC hdc
); );
WINGDIAPI WINGDIAPI
LONG LONG
WINAPI WINAPI
GetBitmapBits( GetBitmapBits(
__in HBITMAP hbit, _In_ HBITMAP hbit,
__in LONG cb, _In_ LONG cb,
__out_bcount(cb) LPVOID lpvBits _Out_writes_bytes_(cb) LPVOID lpvBits
); );
WINGDIAPI BOOL WINAPI GetBitmapDimensionEx( __in HBITMAP hbit, __out LPSIZE lps WINGDIAPI BOOL WINAPI GetBitmapDimensionEx( _In_ HBITMAP hbit, _Out_ LPSIZE lps
ize); ize);
WINGDIAPI UINT WINAPI GetBoundsRect( __in HDC hdc, __out LPRECT lprect, __in UI WINGDIAPI UINT WINAPI GetBoundsRect( _In_ HDC hdc, _Out_ LPRECT lprect, _In_ UI
NT flags); NT flags);
WINGDIAPI BOOL WINAPI GetBrushOrgEx( __in HDC hdc, __out LPPOINT lppt); WINGDIAPI BOOL WINAPI GetBrushOrgEx( _In_ HDC hdc, _Out_ LPPOINT lppt);
WINGDIAPI BOOL WINAPI GetCharWidthA( __in HDC hdc, __in UINT iFirst, __in UINT WINGDIAPI BOOL WINAPI GetCharWidthA( _In_ HDC hdc, _In_ UINT iFirst, _In_ UINT
iLast, __out_ecount(iLast + 1 - iFirst) LPINT lpBuffer); iLast, _Out_writes_(iLast + 1 - iFirst) LPINT lpBuffer);
WINGDIAPI BOOL WINAPI GetCharWidthW( __in HDC hdc, __in UINT iFirst, __in UINT WINGDIAPI BOOL WINAPI GetCharWidthW( _In_ HDC hdc, _In_ UINT iFirst, _In_ UINT
iLast, __out_ecount(iLast + 1 - iFirst) LPINT lpBuffer); iLast, _Out_writes_(iLast + 1 - iFirst) LPINT lpBuffer);
#ifdef UNICODE #ifdef UNICODE
#define GetCharWidth GetCharWidthW #define GetCharWidth GetCharWidthW
#else #else
#define GetCharWidth GetCharWidthA #define GetCharWidth GetCharWidthA
#endif // !UNICODE #endif // !UNICODE
WINGDIAPI BOOL WINAPI GetCharWidth32A( __in HDC hdc, __in UINT iFirst, __in UIN WINGDIAPI BOOL WINAPI GetCharWidth32A( _In_ HDC hdc, _In_ UINT iFirst, _In_ UIN
T iLast, __out_ecount(iLast + 1 - iFirst) LPINT lpBuffer); T iLast, _Out_writes_(iLast + 1 - iFirst) LPINT lpBuffer);
WINGDIAPI BOOL WINAPI GetCharWidth32W( __in HDC hdc, __in UINT iFirst, __in UIN WINGDIAPI BOOL WINAPI GetCharWidth32W( _In_ HDC hdc, _In_ UINT iFirst, _In_ UIN
T iLast, __out_ecount(iLast + 1 - iFirst) LPINT lpBuffer); T iLast, _Out_writes_(iLast + 1 - iFirst) LPINT lpBuffer);
#ifdef UNICODE #ifdef UNICODE
#define GetCharWidth32 GetCharWidth32W #define GetCharWidth32 GetCharWidth32W
#else #else
#define GetCharWidth32 GetCharWidth32A #define GetCharWidth32 GetCharWidth32A
#endif // !UNICODE #endif // !UNICODE
WINGDIAPI BOOL APIENTRY GetCharWidthFloatA( __in HDC hdc, __in UINT iFirst, __i WINGDIAPI BOOL APIENTRY GetCharWidthFloatA( _In_ HDC hdc, _In_ UINT iFirst, _In
n UINT iLast, __out_ecount(iLast + 1 - iFirst) PFLOAT lpBuffer); _ UINT iLast, _Out_writes_(iLast + 1 - iFirst) PFLOAT lpBuffer);
WINGDIAPI BOOL APIENTRY GetCharWidthFloatW( __in HDC hdc, __in UINT iFirst, __i WINGDIAPI BOOL APIENTRY GetCharWidthFloatW( _In_ HDC hdc, _In_ UINT iFirst, _In
n UINT iLast, __out_ecount(iLast + 1 - iFirst) PFLOAT lpBuffer); _ UINT iLast, _Out_writes_(iLast + 1 - iFirst) PFLOAT lpBuffer);
#ifdef UNICODE #ifdef UNICODE
#define GetCharWidthFloat GetCharWidthFloatW #define GetCharWidthFloat GetCharWidthFloatW
#else #else
#define GetCharWidthFloat GetCharWidthFloatA #define GetCharWidthFloat GetCharWidthFloatA
#endif // !UNICODE #endif // !UNICODE
WINGDIAPI BOOL APIENTRY GetCharABCWidthsA( __in HDC hdc, WINGDIAPI BOOL APIENTRY GetCharABCWidthsA( _In_ HDC hdc,
__in UINT wFirst, _In_ UINT wFirst,
__in UINT wLast, _In_ UINT wLast,
__out_ecount(wLast - wFirst + 1) LPA _Out_writes_(wLast - wFirst + 1) LPA
BC lpABC); BC lpABC);
WINGDIAPI BOOL APIENTRY GetCharABCWidthsW( __in HDC hdc, WINGDIAPI BOOL APIENTRY GetCharABCWidthsW( _In_ HDC hdc,
__in UINT wFirst, _In_ UINT wFirst,
__in UINT wLast, _In_ UINT wLast,
__out_ecount(wLast - wFirst + 1) LPA _Out_writes_(wLast - wFirst + 1) LPA
BC lpABC); BC lpABC);
#ifdef UNICODE #ifdef UNICODE
#define GetCharABCWidths GetCharABCWidthsW #define GetCharABCWidths GetCharABCWidthsW
#else #else
#define GetCharABCWidths GetCharABCWidthsA #define GetCharABCWidths GetCharABCWidthsA
#endif // !UNICODE #endif // !UNICODE
WINGDIAPI BOOL APIENTRY GetCharABCWidthsFloatA( __in HDC hdc, __in UINT iFirst, WINGDIAPI BOOL APIENTRY GetCharABCWidthsFloatA( _In_ HDC hdc, _In_ UINT iFirst,
__in UINT iLast, __out_ecount(iLast + 1 - iFirst) LPABCFLOAT lpABC); _In_ UINT iLast, _Out_writes_(iLast + 1 - iFirst) LPABCFLOAT lpABC);
WINGDIAPI BOOL APIENTRY GetCharABCWidthsFloatW( __in HDC hdc, __in UINT iFirst, WINGDIAPI BOOL APIENTRY GetCharABCWidthsFloatW( _In_ HDC hdc, _In_ UINT iFirst,
__in UINT iLast, __out_ecount(iLast + 1 - iFirst) LPABCFLOAT lpABC); _In_ UINT iLast, _Out_writes_(iLast + 1 - iFirst) LPABCFLOAT lpABC);
#ifdef UNICODE #ifdef UNICODE
#define GetCharABCWidthsFloat GetCharABCWidthsFloatW #define GetCharABCWidthsFloat GetCharABCWidthsFloatW
#else #else
#define GetCharABCWidthsFloat GetCharABCWidthsFloatA #define GetCharABCWidthsFloat GetCharABCWidthsFloatA
#endif // !UNICODE #endif // !UNICODE
WINGDIAPI int WINAPI GetClipBox( __in HDC hdc, __out LPRECT lprect); WINGDIAPI int WINAPI GetClipBox( _In_ HDC hdc, _Out_ LPRECT lprect);
WINGDIAPI int WINAPI GetClipRgn( __in HDC hdc, __in HRGN hrgn); WINGDIAPI int WINAPI GetClipRgn( _In_ HDC hdc, _In_ HRGN hrgn);
WINGDIAPI int WINAPI GetMetaRgn( __in HDC hdc, __in HRGN hrgn); WINGDIAPI int WINAPI GetMetaRgn( _In_ HDC hdc, _In_ HRGN hrgn);
WINGDIAPI HGDIOBJ WINAPI GetCurrentObject( __in HDC hdc, __in UINT type); WINGDIAPI HGDIOBJ WINAPI GetCurrentObject( _In_ HDC hdc, _In_ UINT type);
WINGDIAPI BOOL WINAPI GetCurrentPositionEx( __in HDC hdc, __out LPPOINT lppt); WINGDIAPI BOOL WINAPI GetCurrentPositionEx( _In_ HDC hdc, _Out_ LPPOINT lppt);
WINGDIAPI int WINAPI GetDeviceCaps( __in_opt HDC hdc, __in int index); WINGDIAPI int WINAPI GetDeviceCaps( _In_opt_ HDC hdc, _In_ int index);
WINGDIAPI int WINAPI GetDIBits( __in HDC hdc, __in HBITMAP hbm, __in UINT star WINGDIAPI int WINAPI GetDIBits( _In_ HDC hdc, _In_ HBITMAP hbm, _In_ UINT star
t, __in UINT cLines, __out_opt LPVOID lpvBits, __inout_xcount(sizeof(BITMAPINFO t, _In_ UINT cLines,
HEADER)) LPBITMAPINFO lpbmi, __in UINT usage); // SAL actual size of lpbmi is c _Out_opt_ LPVOID lpvBits, _At_((LPBITMAPINFOHEADER)lpbmi, _Inout_) LPBITMAPI
omputed from structure elements NFO lpbmi, _In_ UINT usage); // SAL actual size of lpbmi is computed from struc
ture elements
__success(return != GDI_ERROR) _Success_(return != GDI_ERROR)
WINGDIAPI DWORD WINAPI GetFontData ( __in HDC hdc, WINGDIAPI DWORD WINAPI GetFontData ( _In_ HDC hdc,
__in DWORD dwTable, _In_ DWORD dwTable,
__in DWORD dwOffset, _In_ DWORD dwOffset,
__out_bcount_part_opt(cjBuffer, return) _Out_writes_bytes_to_opt_(cjBuffer, retu
PVOID pvBuffer, rn) PVOID pvBuffer,
__in DWORD cjBuffer _In_ DWORD cjBuffer
); );
WINGDIAPI DWORD WINAPI GetGlyphOutlineA( __in HDC hdc, WINGDIAPI DWORD WINAPI GetGlyphOutlineA( _In_ HDC hdc,
__in UINT uChar, _In_ UINT uChar,
__in UINT fuFormat, _In_ UINT fuFormat,
__out LPGLYPHMETRICS lpgm, _Out_ LPGLYPHMETRICS lpgm,
__in DWORD cjBuffer, _In_ DWORD cjBuffer,
__out_bcount_opt(cjBuffer) LPVOID pv _Out_writes_bytes_opt_(cjBuffer) LPV
Buffer, OID pvBuffer,
__in CONST MAT2 *lpmat2 _In_ CONST MAT2 *lpmat2
); );
WINGDIAPI DWORD WINAPI GetGlyphOutlineW( __in HDC hdc, WINGDIAPI DWORD WINAPI GetGlyphOutlineW( _In_ HDC hdc,
__in UINT uChar, _In_ UINT uChar,
__in UINT fuFormat, _In_ UINT fuFormat,
__out LPGLYPHMETRICS lpgm, _Out_ LPGLYPHMETRICS lpgm,
__in DWORD cjBuffer, _In_ DWORD cjBuffer,
__out_bcount_opt(cjBuffer) LPVOID pv _Out_writes_bytes_opt_(cjBuffer) LPV
Buffer, OID pvBuffer,
__in CONST MAT2 *lpmat2 _In_ CONST MAT2 *lpmat2
); );
#ifdef UNICODE #ifdef UNICODE
#define GetGlyphOutline GetGlyphOutlineW #define GetGlyphOutline GetGlyphOutlineW
#else #else
#define GetGlyphOutline GetGlyphOutlineA #define GetGlyphOutline GetGlyphOutlineA
#endif // !UNICODE #endif // !UNICODE
WINGDIAPI int WINAPI GetGraphicsMode( __in HDC hdc); WINGDIAPI int WINAPI GetGraphicsMode( _In_ HDC hdc);
WINGDIAPI int WINAPI GetMapMode( __in HDC hdc); WINGDIAPI int WINAPI GetMapMode( _In_ HDC hdc);
WINGDIAPI UINT WINAPI GetMetaFileBitsEx(__in HMETAFILE hMF, __in UINT cbBuffer, WINGDIAPI UINT WINAPI GetMetaFileBitsEx(_In_ HMETAFILE hMF, _In_ UINT cbBuffer,
__out_bcount_opt(cbBuffer) LPVOID lpData); _Out_writes_bytes_opt_(cbBuffer) LPVOID lpData);
WINGDIAPI HMETAFILE WINAPI GetMetaFileA( __in LPCSTR lpName); WINGDIAPI HMETAFILE WINAPI GetMetaFileA( _In_ LPCSTR lpName);
WINGDIAPI HMETAFILE WINAPI GetMetaFileW( __in LPCWSTR lpName); WINGDIAPI HMETAFILE WINAPI GetMetaFileW( _In_ LPCWSTR lpName);
#ifdef UNICODE #ifdef UNICODE
#define GetMetaFile GetMetaFileW #define GetMetaFile GetMetaFileW
#else #else
#define GetMetaFile GetMetaFileA #define GetMetaFile GetMetaFileA
#endif // !UNICODE #endif // !UNICODE
WINGDIAPI COLORREF WINAPI GetNearestColor( __in HDC hdc, __in COLORREF color); WINGDIAPI COLORREF WINAPI GetNearestColor( _In_ HDC hdc, _In_ COLORREF color);
WINGDIAPI UINT WINAPI GetNearestPaletteIndex( __in HPALETTE h, __in COLORREF co WINGDIAPI UINT WINAPI GetNearestPaletteIndex( _In_ HPALETTE h, _In_ COLORREF co
lor); lor);
WINGDIAPI DWORD WINAPI GetObjectType( __in HGDIOBJ h); WINGDIAPI DWORD WINAPI GetObjectType( _In_ HGDIOBJ h);
#ifndef NOTEXTMETRIC #ifndef NOTEXTMETRIC
WINGDIAPI UINT APIENTRY GetOutlineTextMetricsA( __in HDC hdc, WINGDIAPI UINT APIENTRY GetOutlineTextMetricsA( _In_ HDC hdc,
__in UINT cjCopy, _In_ UINT cjCopy,
__out_bcount_opt(cjCopy) LPOUTLI _Out_writes_bytes_opt_(cjCopy) L
NETEXTMETRICA potm); POUTLINETEXTMETRICA potm);
WINGDIAPI UINT APIENTRY GetOutlineTextMetricsW( __in HDC hdc, WINGDIAPI UINT APIENTRY GetOutlineTextMetricsW( _In_ HDC hdc,
__in UINT cjCopy, _In_ UINT cjCopy,
__out_bcount_opt(cjCopy) LPOUTLI _Out_writes_bytes_opt_(cjCopy) L
NETEXTMETRICW potm); POUTLINETEXTMETRICW potm);
#ifdef UNICODE #ifdef UNICODE
#define GetOutlineTextMetrics GetOutlineTextMetricsW #define GetOutlineTextMetrics GetOutlineTextMetricsW
#else #else
#define GetOutlineTextMetrics GetOutlineTextMetricsA #define GetOutlineTextMetrics GetOutlineTextMetricsA
#endif // !UNICODE #endif // !UNICODE
#endif /* NOTEXTMETRIC */ #endif /* NOTEXTMETRIC */
__range(0,cEntries) _Ret_range_(0,cEntries)
WINGDIAPI UINT WINAPI GetPaletteEntries( __in HPALETTE hpal, WINGDIAPI UINT WINAPI GetPaletteEntries( _In_ HPALETTE hpal,
__in UINT iStart, _In_ UINT iStart,
__in UINT cEntries, _In_ UINT cEntries,
__out_ecount_part_opt(cEntries,retur _Out_writes_to_opt_(cEntries,return)
n) LPPALETTEENTRY pPalEntries); LPPALETTEENTRY pPalEntries);
WINGDIAPI COLORREF WINAPI GetPixel( __in HDC hdc, __in int x, __in int y); WINGDIAPI COLORREF WINAPI GetPixel( _In_ HDC hdc, _In_ int x, _In_ int y);
WINGDIAPI int WINAPI GetPixelFormat( __in HDC hdc); WINGDIAPI int WINAPI GetPixelFormat( _In_ HDC hdc);
WINGDIAPI int WINAPI GetPolyFillMode( __in HDC hdc); WINGDIAPI int WINAPI GetPolyFillMode( _In_ HDC hdc);
WINGDIAPI BOOL WINAPI GetRasterizerCaps( __out_bcount(cjBytes) LPRASTERIZER_S WINGDIAPI BOOL WINAPI GetRasterizerCaps( _Out_writes_bytes_(cjBytes) LPRASTER
TATUS lpraststat, IZER_STATUS lpraststat,
__in UINT cjBytes); _In_ UINT cjBytes);
WINGDIAPI int WINAPI GetRandomRgn (__in HDC hdc, __in HRGN hrgn, __in INT i); WINGDIAPI int WINAPI GetRandomRgn (_In_ HDC hdc, _In_ HRGN hrgn, _In_ INT i);
WINGDIAPI DWORD WINAPI GetRegionData( __in HRGN hrgn, WINGDIAPI DWORD WINAPI GetRegionData( _In_ HRGN hrgn,
__in DWORD nCount, _In_ DWORD nCount,
__out_bcount_part_opt(nCount, return) LP _Out_writes_bytes_to_opt_(nCount, return
RGNDATA lpRgnData); ) LPRGNDATA lpRgnData);
WINGDIAPI int WINAPI GetRgnBox( __in HRGN hrgn, __out LPRECT lprc); WINGDIAPI int WINAPI GetRgnBox( _In_ HRGN hrgn, _Out_ LPRECT lprc);
WINGDIAPI HGDIOBJ WINAPI GetStockObject( __in int i); WINGDIAPI HGDIOBJ WINAPI GetStockObject( _In_ int i);
WINGDIAPI int WINAPI GetStretchBltMode(__in HDC hdc); WINGDIAPI int WINAPI GetStretchBltMode(_In_ HDC hdc);
WINGDIAPI WINGDIAPI
UINT UINT
WINAPI WINAPI
GetSystemPaletteEntries( GetSystemPaletteEntries(
__in HDC hdc, _In_ HDC hdc,
__in UINT iStart, _In_ UINT iStart,
__in UINT cEntries, _In_ UINT cEntries,
__out_ecount_opt(cEntries) LPPALETTEENTRY pPalEntries _Out_writes_opt_(cEntries) LPPALETTEENTRY pPalEntries
); );
WINGDIAPI UINT WINAPI GetSystemPaletteUse(__in HDC hdc); WINGDIAPI UINT WINAPI GetSystemPaletteUse(_In_ HDC hdc);
WINGDIAPI int WINAPI GetTextCharacterExtra(__in HDC hdc); WINGDIAPI int WINAPI GetTextCharacterExtra(_In_ HDC hdc);
WINGDIAPI UINT WINAPI GetTextAlign(__in HDC hdc); WINGDIAPI UINT WINAPI GetTextAlign(_In_ HDC hdc);
WINGDIAPI COLORREF WINAPI GetTextColor(__in HDC hdc); WINGDIAPI COLORREF WINAPI GetTextColor(_In_ HDC hdc);
WINGDIAPI WINGDIAPI
BOOL BOOL
APIENTRY APIENTRY
GetTextExtentPointA( GetTextExtentPointA(
__in HDC hdc, _In_ HDC hdc,
__in_ecount(c) LPCSTR lpString, _In_reads_(c) LPCSTR lpString,
__in int c, _In_ int c,
__out LPSIZE lpsz _Out_ LPSIZE lpsz
); );
WINGDIAPI WINGDIAPI
BOOL BOOL
APIENTRY APIENTRY
GetTextExtentPointW( GetTextExtentPointW(
__in HDC hdc, _In_ HDC hdc,
__in_ecount(c) LPCWSTR lpString, _In_reads_(c) LPCWSTR lpString,
__in int c, _In_ int c,
__out LPSIZE lpsz _Out_ LPSIZE lpsz
); );
#ifdef UNICODE #ifdef UNICODE
#define GetTextExtentPoint GetTextExtentPointW #define GetTextExtentPoint GetTextExtentPointW
#else #else
#define GetTextExtentPoint GetTextExtentPointA #define GetTextExtentPoint GetTextExtentPointA
#endif // !UNICODE #endif // !UNICODE
WINGDIAPI WINGDIAPI
BOOL BOOL
APIENTRY APIENTRY
GetTextExtentPoint32A( GetTextExtentPoint32A(
__in HDC hdc, _In_ HDC hdc,
__in_ecount(c) LPCSTR lpString, _In_reads_(c) LPCSTR lpString,
__in int c, _In_ int c,
__out LPSIZE psizl _Out_ LPSIZE psizl
); );
WINGDIAPI WINGDIAPI
BOOL BOOL
APIENTRY APIENTRY
GetTextExtentPoint32W( GetTextExtentPoint32W(
__in HDC hdc, _In_ HDC hdc,
__in_ecount(c) LPCWSTR lpString, _In_reads_(c) LPCWSTR lpString,
__in int c, _In_ int c,
__out LPSIZE psizl _Out_ LPSIZE psizl
); );
#ifdef UNICODE #ifdef UNICODE
#define GetTextExtentPoint32 GetTextExtentPoint32W #define GetTextExtentPoint32 GetTextExtentPoint32W
#else #else
#define GetTextExtentPoint32 GetTextExtentPoint32A #define GetTextExtentPoint32 GetTextExtentPoint32A
#endif // !UNICODE #endif // !UNICODE
WINGDIAPI WINGDIAPI
BOOL BOOL
APIENTRY APIENTRY
GetTextExtentExPointA( GetTextExtentExPointA(
__in HDC hdc, _In_ HDC hdc,
__in_ecount(cchString) LPCSTR lpszString, _In_reads_(cchString) LPCSTR lpszString,
__in int cchString, _In_ int cchString,
__in int nMaxExtent, _In_ int nMaxExtent,
__out_opt LPINT lpnFit, _Out_opt_ LPINT lpnFit,
__out_ecount_part_opt (cchString, *lpnFit) LPINT lpnDx, _Out_writes_to_opt_ (cchString, *lpnFit) LPINT lpnDx,
__out LPSIZE lpSize _Out_ LPSIZE lpSize
); );
WINGDIAPI WINGDIAPI
BOOL BOOL
APIENTRY APIENTRY
GetTextExtentExPointW( GetTextExtentExPointW(
__in HDC hdc, _In_ HDC hdc,
__in_ecount(cchString) LPCWSTR lpszString, _In_reads_(cchString) LPCWSTR lpszString,
__in int cchString, _In_ int cchString,
__in int nMaxExtent, _In_ int nMaxExtent,
__out_opt LPINT lpnFit, _Out_opt_ LPINT lpnFit,
__out_ecount_part_opt (cchString, *lpnFit) LPINT lpnDx, _Out_writes_to_opt_ (cchString, *lpnFit) LPINT lpnDx,
__out LPSIZE lpSize _Out_ LPSIZE lpSize
); );
#ifdef UNICODE #ifdef UNICODE
#define GetTextExtentExPoint GetTextExtentExPointW #define GetTextExtentExPoint GetTextExtentExPointW
#else #else
#define GetTextExtentExPoint GetTextExtentExPointA #define GetTextExtentExPoint GetTextExtentExPointA
#endif // !UNICODE #endif // !UNICODE
#if(WINVER >= 0x0400) #if(WINVER >= 0x0400)
WINGDIAPI int WINAPI GetTextCharset( __in HDC hdc); WINGDIAPI int WINAPI GetTextCharset( _In_ HDC hdc);
WINGDIAPI int WINAPI GetTextCharsetInfo( __in HDC hdc, __out_opt LPFONTSIGNATURE WINGDIAPI int WINAPI GetTextCharsetInfo( _In_ HDC hdc, _Out_opt_ LPFONTSIGNATURE
lpSig, __in DWORD dwFlags); lpSig, _In_ DWORD dwFlags);
WINGDIAPI BOOL WINAPI TranslateCharsetInfo( __inout DWORD FAR *lpSrc, __out LPC WINGDIAPI BOOL WINAPI TranslateCharsetInfo( _Inout_ DWORD FAR *lpSrc, _Out_ LPC
HARSETINFO lpCs, __in DWORD dwFlags); HARSETINFO lpCs, _In_ DWORD dwFlags);
WINGDIAPI DWORD WINAPI GetFontLanguageInfo( __in HDC hdc); WINGDIAPI DWORD WINAPI GetFontLanguageInfo( _In_ HDC hdc);
WINGDIAPI DWORD WINAPI GetCharacterPlacementA( __in HDC hdc, __in_ecount(nCount WINGDIAPI DWORD WINAPI GetCharacterPlacementA( _In_ HDC hdc, _In_reads_(nCount)
) LPCSTR lpString, __in int nCount, __in int nMexExtent, __inout LPGCP_RESULTSA LPCSTR lpString, _In_ int nCount, _In_ int nMexExtent, _Inout_ LPGCP_RESULTSA l
lpResults, __in DWORD dwFlags); pResults, _In_ DWORD dwFlags);
WINGDIAPI DWORD WINAPI GetCharacterPlacementW( __in HDC hdc, __in_ecount(nCount WINGDIAPI DWORD WINAPI GetCharacterPlacementW( _In_ HDC hdc, _In_reads_(nCount)
) LPCWSTR lpString, __in int nCount, __in int nMexExtent, __inout LPGCP_RESULTSW LPCWSTR lpString, _In_ int nCount, _In_ int nMexExtent, _Inout_ LPGCP_RESULTSW
lpResults, __in DWORD dwFlags); lpResults, _In_ DWORD dwFlags);
#ifdef UNICODE #ifdef UNICODE
#define GetCharacterPlacement GetCharacterPlacementW #define GetCharacterPlacement GetCharacterPlacementW
#else #else
#define GetCharacterPlacement GetCharacterPlacementA #define GetCharacterPlacement GetCharacterPlacementA
#endif // !UNICODE #endif // !UNICODE
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#if (_WIN32_WINNT >= _WIN32_WINNT_WIN2K) #if (_WIN32_WINNT >= _WIN32_WINNT_WIN2K)
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef struct tagWCRANGE typedef struct tagWCRANGE
{ {
WCHAR wcLow; WCHAR wcLow;
USHORT cGlyphs; USHORT cGlyphs;
} WCRANGE, *PWCRANGE,FAR *LPWCRANGE; } WCRANGE, *PWCRANGE,FAR *LPWCRANGE;
typedef struct tagGLYPHSET typedef struct tagGLYPHSET
{ {
DWORD cbThis; DWORD cbThis;
DWORD flAccel; DWORD flAccel;
skipping to change at line 3767 skipping to change at line 4153
} GLYPHSET, *PGLYPHSET, FAR *LPGLYPHSET; } GLYPHSET, *PGLYPHSET, FAR *LPGLYPHSET;
/* flAccel flags for the GLYPHSET structure above */ /* flAccel flags for the GLYPHSET structure above */
#define GS_8BIT_INDICES 0x00000001 #define GS_8BIT_INDICES 0x00000001
/* flags for GetGlyphIndices */ /* flags for GetGlyphIndices */
#define GGI_MARK_NONEXISTING_GLYPHS 0X0001 #define GGI_MARK_NONEXISTING_GLYPHS 0X0001
WINGDIAPI DWORD WINAPI GetFontUnicodeRanges( __in HDC hdc, __out_opt LPGLYPHSET WINGDIAPI DWORD WINAPI GetFontUnicodeRanges( _In_ HDC hdc, _Out_opt_ LPGLYPHSET
lpgs); lpgs);
WINGDIAPI DWORD WINAPI GetGlyphIndicesA( __in HDC hdc, __in_ecount(c) LPCSTR lps WINGDIAPI DWORD WINAPI GetGlyphIndicesA( _In_ HDC hdc, _In_reads_(c) LPCSTR lpst
tr, __in int c, __out_ecount(c) LPWORD pgi, __in DWORD fl); r, _In_ int c, _Out_writes_(c) LPWORD pgi, _In_ DWORD fl);
WINGDIAPI DWORD WINAPI GetGlyphIndicesW( __in HDC hdc, __in_ecount(c) LPCWSTR lp WINGDIAPI DWORD WINAPI GetGlyphIndicesW( _In_ HDC hdc, _In_reads_(c) LPCWSTR lps
str, __in int c, __out_ecount(c) LPWORD pgi, __in DWORD fl); tr, _In_ int c, _Out_writes_(c) LPWORD pgi, _In_ DWORD fl);
#ifdef UNICODE #ifdef UNICODE
#define GetGlyphIndices GetGlyphIndicesW #define GetGlyphIndices GetGlyphIndicesW
#else #else
#define GetGlyphIndices GetGlyphIndicesA #define GetGlyphIndices GetGlyphIndicesA
#endif // !UNICODE #endif // !UNICODE
WINGDIAPI BOOL WINAPI GetTextExtentPointI(__in HDC hdc, __in_ecount(cgi) LPWORD WINGDIAPI BOOL WINAPI GetTextExtentPointI(_In_ HDC hdc, _In_reads_(cgi) LPWORD
pgiIn, __in int cgi, __out LPSIZE psize); pgiIn, _In_ int cgi, _Out_ LPSIZE psize);
WINGDIAPI BOOL WINAPI GetTextExtentExPointI ( __in HDC hdc, WINGDIAPI BOOL WINAPI GetTextExtentExPointI ( _In_ HDC hdc,
__in_ecount(cwchString) LPWORD l _In_reads_(cwchString) LPWORD lp
pwszString, wszString,
__in int cwchString, _In_ int cwchString,
__in int nMaxExtent, _In_ int nMaxExtent,
__out_opt LPINT lpnFit, _Out_opt_ LPINT lpnFit,
__out_ecount_part_opt(cwchString _Out_writes_to_opt_(cwchString,
, *lpnFit) LPINT lpnDx, *lpnFit) LPINT lpnDx,
__out LPSIZE lpSize _Out_ LPSIZE lpSize
); );
WINGDIAPI BOOL WINAPI GetCharWidthI( __in HDC hdc, WINGDIAPI BOOL WINAPI GetCharWidthI( _In_ HDC hdc,
__in UINT giFirst, _In_ UINT giFirst,
__in UINT cgi, _In_ UINT cgi,
__in_ecount_opt(cgi) LPWORD pgi, _In_reads_opt_(cgi) LPWORD pgi,
__out_ecount(cgi) LPINT piWidths _Out_writes_(cgi) LPINT piWidths
); );
WINGDIAPI BOOL WINAPI GetCharABCWidthsI( __in HDC hdc, WINGDIAPI BOOL WINAPI GetCharABCWidthsI( _In_ HDC hdc,
__in UINT giFirst, _In_ UINT giFirst,
__in UINT cgi, _In_ UINT cgi,
__in_ecount_opt(cgi) LPWORD pgi, _In_reads_opt_(cgi) LPWORD pgi,
__out_ecount(cgi) LPABC pabc _Out_writes_(cgi) LPABC pabc
); );
#define STAMP_DESIGNVECTOR (0x8000000 + 'd' + ('v' << 8)) #define STAMP_DESIGNVECTOR (0x8000000 + 'd' + ('v' << 8))
#define STAMP_AXESLIST (0x8000000 + 'a' + ('l' << 8)) #define STAMP_AXESLIST (0x8000000 + 'a' + ('l' << 8))
#define MM_MAX_NUMAXES 16 #define MM_MAX_NUMAXES 16
typedef struct tagDESIGNVECTOR typedef struct tagDESIGNVECTOR
{ {
DWORD dvReserved; DWORD dvReserved;
DWORD dvNumAxes; DWORD dvNumAxes;
LONG dvValues[MM_MAX_NUMAXES]; LONG dvValues[MM_MAX_NUMAXES];
} DESIGNVECTOR, *PDESIGNVECTOR, FAR *LPDESIGNVECTOR; } DESIGNVECTOR, *PDESIGNVECTOR, FAR *LPDESIGNVECTOR;
WINGDIAPI int WINAPI AddFontResourceExA( __in LPCSTR name, __in DWORD fl, __res WINGDIAPI int WINAPI AddFontResourceExA( _In_ LPCSTR name, _In_ DWORD fl, _Rese
erved PVOID res); rved_ PVOID res);
WINGDIAPI int WINAPI AddFontResourceExW( __in LPCWSTR name, __in DWORD fl, __re WINGDIAPI int WINAPI AddFontResourceExW( _In_ LPCWSTR name, _In_ DWORD fl, _Res
served PVOID res); erved_ PVOID res);
#ifdef UNICODE #ifdef UNICODE
#define AddFontResourceEx AddFontResourceExW #define AddFontResourceEx AddFontResourceExW
#else #else
#define AddFontResourceEx AddFontResourceExA #define AddFontResourceEx AddFontResourceExA
#endif // !UNICODE #endif // !UNICODE
WINGDIAPI BOOL WINAPI RemoveFontResourceExA( __in LPCSTR name, __in DWORD fl, __ WINGDIAPI BOOL WINAPI RemoveFontResourceExA( _In_ LPCSTR name, _In_ DWORD fl, _R
reserved PVOID pdv); eserved_ PVOID pdv);
WINGDIAPI BOOL WINAPI RemoveFontResourceExW( __in LPCWSTR name, __in DWORD fl, _ WINGDIAPI BOOL WINAPI RemoveFontResourceExW( _In_ LPCWSTR name, _In_ DWORD fl, _
_reserved PVOID pdv); Reserved_ PVOID pdv);
#ifdef UNICODE #ifdef UNICODE
#define RemoveFontResourceEx RemoveFontResourceExW #define RemoveFontResourceEx RemoveFontResourceExW
#else #else
#define RemoveFontResourceEx RemoveFontResourceExA #define RemoveFontResourceEx RemoveFontResourceExA
#endif // !UNICODE #endif // !UNICODE
WINGDIAPI HANDLE WINAPI AddFontMemResourceEx( __in_bcount(cjSize) PVOID pFileV WINGDIAPI HANDLE WINAPI AddFontMemResourceEx( _In_reads_bytes_(cjSize) PVOID p
iew, FileView,
__in DWORD cjSize, _In_ DWORD cjSize,
__reserved PVOID pvResrved, _Reserved_ PVOID pvResrved,
__in DWORD* pNumFonts); _In_ DWORD* pNumFonts);
WINGDIAPI BOOL WINAPI RemoveFontMemResourceEx( __in HANDLE h); WINGDIAPI BOOL WINAPI RemoveFontMemResourceEx( _In_ HANDLE h);
#define FR_PRIVATE 0x10 #define FR_PRIVATE 0x10
#define FR_NOT_ENUM 0x20 #define FR_NOT_ENUM 0x20
// The actual size of the DESIGNVECTOR and ENUMLOGFONTEXDV structures // The actual size of the DESIGNVECTOR and ENUMLOGFONTEXDV structures
// is determined by dvNumAxes, // is determined by dvNumAxes,
// MM_MAX_NUMAXES only detemines the maximal size allowed // MM_MAX_NUMAXES only detemines the maximal size allowed
#define MM_MAX_AXES_NAMELEN 16 #define MM_MAX_AXES_NAMELEN 16
typedef struct tagAXISINFOA typedef struct tagAXISINFOA
skipping to change at line 3907 skipping to change at line 4293
#ifdef UNICODE #ifdef UNICODE
typedef ENUMLOGFONTEXDVW ENUMLOGFONTEXDV; typedef ENUMLOGFONTEXDVW ENUMLOGFONTEXDV;
typedef PENUMLOGFONTEXDVW PENUMLOGFONTEXDV; typedef PENUMLOGFONTEXDVW PENUMLOGFONTEXDV;
typedef LPENUMLOGFONTEXDVW LPENUMLOGFONTEXDV; typedef LPENUMLOGFONTEXDVW LPENUMLOGFONTEXDV;
#else #else
typedef ENUMLOGFONTEXDVA ENUMLOGFONTEXDV; typedef ENUMLOGFONTEXDVA ENUMLOGFONTEXDV;
typedef PENUMLOGFONTEXDVA PENUMLOGFONTEXDV; typedef PENUMLOGFONTEXDVA PENUMLOGFONTEXDV;
typedef LPENUMLOGFONTEXDVA LPENUMLOGFONTEXDV; typedef LPENUMLOGFONTEXDVA LPENUMLOGFONTEXDV;
#endif // UNICODE #endif // UNICODE
WINGDIAPI HFONT WINAPI CreateFontIndirectExA( __in CONST ENUMLOGFONTEXDVA *); WINGDIAPI HFONT WINAPI CreateFontIndirectExA( _In_ CONST ENUMLOGFONTEXDVA *);
WINGDIAPI HFONT WINAPI CreateFontIndirectExW( __in CONST ENUMLOGFONTEXDVW *); WINGDIAPI HFONT WINAPI CreateFontIndirectExW( _In_ CONST ENUMLOGFONTEXDVW *);
#ifdef UNICODE #ifdef UNICODE
#define CreateFontIndirectEx CreateFontIndirectExW #define CreateFontIndirectEx CreateFontIndirectExW
#else #else
#define CreateFontIndirectEx CreateFontIndirectExA #define CreateFontIndirectEx CreateFontIndirectExA
#endif // !UNICODE #endif // !UNICODE
#ifndef NOTEXTMETRIC #ifndef NOTEXTMETRIC
typedef struct tagENUMTEXTMETRICA typedef struct tagENUMTEXTMETRICA
{ {
NEWTEXTMETRICEXA etmNewTextMetricEx; NEWTEXTMETRICEXA etmNewTextMetricEx;
skipping to change at line 3937 skipping to change at line 4323
typedef ENUMTEXTMETRICW ENUMTEXTMETRIC; typedef ENUMTEXTMETRICW ENUMTEXTMETRIC;
typedef PENUMTEXTMETRICW PENUMTEXTMETRIC; typedef PENUMTEXTMETRICW PENUMTEXTMETRIC;
typedef LPENUMTEXTMETRICW LPENUMTEXTMETRIC; typedef LPENUMTEXTMETRICW LPENUMTEXTMETRIC;
#else #else
typedef ENUMTEXTMETRICA ENUMTEXTMETRIC; typedef ENUMTEXTMETRICA ENUMTEXTMETRIC;
typedef PENUMTEXTMETRICA PENUMTEXTMETRIC; typedef PENUMTEXTMETRICA PENUMTEXTMETRIC;
typedef LPENUMTEXTMETRICA LPENUMTEXTMETRIC; typedef LPENUMTEXTMETRICA LPENUMTEXTMETRIC;
#endif // UNICODE #endif // UNICODE
#endif /* NOTEXTMETRIC */ #endif /* NOTEXTMETRIC */
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#endif // (_WIN32_WINNT >= _WIN32_WINNT_WIN2K) #endif // (_WIN32_WINNT >= _WIN32_WINNT_WIN2K)
WINGDIAPI BOOL WINAPI GetViewportExtEx( __in HDC hdc, __out LPSIZE lpsize); #pragma region Desktop Family
WINGDIAPI BOOL WINAPI GetViewportOrgEx( __in HDC hdc, __out LPPOINT lppoint); #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
WINGDIAPI BOOL WINAPI GetWindowExtEx( __in HDC hdc, __out LPSIZE lpsize);
WINGDIAPI BOOL WINAPI GetWindowOrgEx( __in HDC hdc, __out LPPOINT lppoint);
__gdi_entry WINGDIAPI int WINAPI IntersectClipRect( __in HDC hdc, __in int left WINGDIAPI BOOL WINAPI GetViewportExtEx( _In_ HDC hdc, _Out_ LPSIZE lpsize);
, __in int top, __in int right, __in int bottom); WINGDIAPI BOOL WINAPI GetViewportOrgEx( _In_ HDC hdc, _Out_ LPPOINT lppoint);
__gdi_entry WINGDIAPI BOOL WINAPI InvertRgn( __in HDC hdc, __in HRGN hrgn); WINGDIAPI BOOL WINAPI GetWindowExtEx( _In_ HDC hdc, _Out_ LPSIZE lpsize);
WINGDIAPI BOOL WINAPI LineDDA( __in int xStart, __in int yStart, __in int xEnd, WINGDIAPI BOOL WINAPI GetWindowOrgEx( _In_ HDC hdc, _Out_ LPPOINT lppoint);
__in int yEnd, __in LINEDDAPROC lpProc, __in_opt LPARAM data);
__gdi_entry WINGDIAPI BOOL WINAPI LineTo( __in HDC hdc, __in int x, __in int y);
WINGDIAPI BOOL WINAPI MaskBlt( __in HDC hdcDest, __in int xDest, __in int yDest,
__in int width, __in int height,
__in HDC hdcSrc, __in int xSrc, __in int ySrc, __in HBITMAP hbmMas
k, __in int xMask, __in int yMask, __in DWORD rop);
WINGDIAPI BOOL WINAPI PlgBlt( __in HDC hdcDest, __in_ecount(3) CONST POINT * lpP
oint, __in HDC hdcSrc, __in int xSrc, __in int ySrc, __in int width,
__in int height, __in_opt HBITMAP hbmMask, __in int xMask,
__in int yMask);
__gdi_entry WINGDIAPI int WINAPI OffsetClipRgn(__in HDC hdc, __in int x, __in i WINGDIAPI int WINAPI IntersectClipRect( _In_ HDC hdc, _In_ int left, _In_ int
nt y); top, _In_ int right, _In_ int bottom);
WINGDIAPI int WINAPI OffsetRgn(__in HRGN hrgn, __in int x, __in int y); WINGDIAPI BOOL WINAPI InvertRgn( _In_ HDC hdc, _In_ HRGN hrgn);
__gdi_entry WINGDIAPI BOOL WINAPI PatBlt(__in HDC hdc, __in int x, __in int y, _ WINGDIAPI BOOL WINAPI LineDDA( _In_ int xStart, _In_ int yStart, _In_ int xEnd,
_in int w, __in int h, __in DWORD rop); _In_ int yEnd, _In_ LINEDDAPROC lpProc, _In_opt_ LPARAM data);
__gdi_entry WINGDIAPI BOOL WINAPI Pie(__in HDC hdc, __in int left, __in int top, WINGDIAPI BOOL WINAPI LineTo( _In_ HDC hdc, _In_ int x, _In_ int y);
__in int right, __in int bottom, __in int xr1, __in int yr1, __in int xr2, __in WINGDIAPI BOOL WINAPI MaskBlt( _In_ HDC hdcDest, _In_ int xDest, _In_ int yDest,
int yr2); _In_ int width, _In_ int height,
WINGDIAPI BOOL WINAPI PlayMetaFile(__in HDC hdc, __in HMETAFILE hmf); _In_ HDC hdcSrc, _In_ int xSrc, _In_ int ySrc, _In_ HBITMAP hbmMas
__gdi_entry WINGDIAPI BOOL WINAPI PaintRgn(__in HDC hdc, __in HRGN hrgn); k, _In_ int xMask, _In_ int yMask, _In_ DWORD rop);
__gdi_entry WINGDIAPI BOOL WINAPI PolyPolygon(__in HDC hdc, __in CONST POINT *a WINGDIAPI BOOL WINAPI PlgBlt( _In_ HDC hdcDest, _In_reads_(3) CONST POINT * lpPo
pt, __in_ecount(csz) CONST INT *asz, __in int csz); int, _In_ HDC hdcSrc, _In_ int xSrc, _In_ int ySrc, _In_ int width,
WINGDIAPI BOOL WINAPI PtInRegion(__in HRGN hrgn, __in int x, __in int y); _In_ int height, _In_opt_ HBITMAP hbmMask, _In_ int xMask,
WINGDIAPI BOOL WINAPI PtVisible(__in HDC hdc, __in int x, __in int y); _In_ int yMask);
WINGDIAPI BOOL WINAPI RectInRegion(__in HRGN hrgn, __in CONST RECT * lprect);
WINGDIAPI BOOL WINAPI RectVisible(__in HDC hdc, __in CONST RECT * lprect); WINGDIAPI int WINAPI OffsetClipRgn(_In_ HDC hdc, _In_ int x, _In_ int y);
__gdi_entry WINGDIAPI BOOL WINAPI Rectangle(__in HDC hdc, __in int left, __in in WINGDIAPI int WINAPI OffsetRgn(_In_ HRGN hrgn, _In_ int x, _In_ int y);
t top, __in int right, __in int bottom); WINGDIAPI BOOL WINAPI PatBlt(_In_ HDC hdc, _In_ int x, _In_ int y, _In_ int w,
__gdi_entry WINGDIAPI BOOL WINAPI RestoreDC(__in HDC hdc, __in int nSavedDC); _In_ int h, _In_ DWORD rop);
__gdi_entry WINGDIAPI HDC WINAPI ResetDCA(__in HDC hdc, __in CONST DEVMODEA * l WINGDIAPI BOOL WINAPI Pie(_In_ HDC hdc, _In_ int left, _In_ int top, _In_ int r
pdm); ight, _In_ int bottom, _In_ int xr1, _In_ int yr1, _In_ int xr2, _In_ int yr2);
__gdi_entry WINGDIAPI HDC WINAPI ResetDCW(__in HDC hdc, __in CONST DEVMODEW * l WINGDIAPI BOOL WINAPI PlayMetaFile(_In_ HDC hdc, _In_ HMETAFILE hmf);
pdm); WINGDIAPI BOOL WINAPI PaintRgn(_In_ HDC hdc, _In_ HRGN hrgn);
WINGDIAPI BOOL WINAPI PolyPolygon(_In_ HDC hdc, _In_ CONST POINT *apt, _In_re
ads_(csz) CONST INT *asz, _In_ int csz);
WINGDIAPI BOOL WINAPI PtInRegion(_In_ HRGN hrgn, _In_ int x, _In_ int y);
WINGDIAPI BOOL WINAPI PtVisible(_In_ HDC hdc, _In_ int x, _In_ int y);
WINGDIAPI BOOL WINAPI RectInRegion(_In_ HRGN hrgn, _In_ CONST RECT * lprect);
WINGDIAPI BOOL WINAPI RectVisible(_In_ HDC hdc, _In_ CONST RECT * lprect);
WINGDIAPI BOOL WINAPI Rectangle(_In_ HDC hdc, _In_ int left, _In_ int top, _In_
int right, _In_ int bottom);
WINGDIAPI BOOL WINAPI RestoreDC(_In_ HDC hdc, _In_ int nSavedDC);
WINGDIAPI HDC WINAPI ResetDCA(_In_ HDC hdc, _In_ CONST DEVMODEA * lpdm);
WINGDIAPI HDC WINAPI ResetDCW(_In_ HDC hdc, _In_ CONST DEVMODEW * lpdm);
#ifdef UNICODE #ifdef UNICODE
#define ResetDC ResetDCW #define ResetDC ResetDCW
#else #else
#define ResetDC ResetDCA #define ResetDC ResetDCA
#endif // !UNICODE #endif // !UNICODE
__gdi_entry WINGDIAPI UINT WINAPI RealizePalette(__in HDC hdc); WINGDIAPI UINT WINAPI RealizePalette(_In_ HDC hdc);
WINGDIAPI BOOL WINAPI RemoveFontResourceA(__in LPCSTR lpFileName); WINGDIAPI BOOL WINAPI RemoveFontResourceA(_In_ LPCSTR lpFileName);
WINGDIAPI BOOL WINAPI RemoveFontResourceW(__in LPCWSTR lpFileName); WINGDIAPI BOOL WINAPI RemoveFontResourceW(_In_ LPCWSTR lpFileName);
#ifdef UNICODE #ifdef UNICODE
#define RemoveFontResource RemoveFontResourceW #define RemoveFontResource RemoveFontResourceW
#else #else
#define RemoveFontResource RemoveFontResourceA #define RemoveFontResource RemoveFontResourceA
#endif // !UNICODE #endif // !UNICODE
__gdi_entry WINGDIAPI BOOL WINAPI RoundRect(__in HDC hdc, __in int left, __in i WINGDIAPI BOOL WINAPI RoundRect(_In_ HDC hdc, _In_ int left, _In_ int top, _In
nt top, __in int right, __in int bottom, __in int width, __in int height); _ int right, _In_ int bottom, _In_ int width, _In_ int height);
__gdi_entry WINGDIAPI BOOL WINAPI ResizePalette(__in HPALETTE hpal, __in UINT n) WINGDIAPI BOOL WINAPI ResizePalette(_In_ HPALETTE hpal, _In_ UINT n);
;
__gdi_entry WINGDIAPI int WINAPI SaveDC(__in HDC hdc); WINGDIAPI int WINAPI SaveDC(_In_ HDC hdc);
__gdi_entry WINGDIAPI int WINAPI SelectClipRgn(__in HDC hdc, __in_opt HRGN hrgn WINGDIAPI int WINAPI SelectClipRgn(_In_ HDC hdc, _In_opt_ HRGN hrgn);
); WINGDIAPI int WINAPI ExtSelectClipRgn(_In_ HDC hdc, _In_opt_ HRGN hrgn, _In_ in
WINGDIAPI int WINAPI ExtSelectClipRgn(__in HDC hdc, __in_opt HRGN hrgn, __in in t mode);
t mode); WINGDIAPI int WINAPI SetMetaRgn(_In_ HDC hdc);
WINGDIAPI int WINAPI SetMetaRgn(__in HDC hdc); WINGDIAPI HGDIOBJ WINAPI SelectObject(_In_ HDC hdc, _In_ HGDIOBJ h);
__gdi_entry WINGDIAPI HGDIOBJ WINAPI SelectObject(__in HDC hdc, __in HGDIOBJ h); WINGDIAPI HPALETTE WINAPI SelectPalette(_In_ HDC hdc, _In_ HPALETTE hPal, _In_
__gdi_entry WINGDIAPI HPALETTE WINAPI SelectPalette(__in HDC hdc, __in HPALETTE BOOL bForceBkgd);
hPal, __in BOOL bForceBkgd); WINGDIAPI COLORREF WINAPI SetBkColor(_In_ HDC hdc, _In_ COLORREF color);
__gdi_entry WINGDIAPI COLORREF WINAPI SetBkColor(__in HDC hdc, __in COLORREF col
or);
#if (_WIN32_WINNT >= _WIN32_WINNT_WIN2K) #if (_WIN32_WINNT >= _WIN32_WINNT_WIN2K)
WINGDIAPI COLORREF WINAPI SetDCBrushColor(__in HDC hdc, __in COLORREF color); WINGDIAPI COLORREF WINAPI SetDCBrushColor(_In_ HDC hdc, _In_ COLORREF color);
WINGDIAPI COLORREF WINAPI SetDCPenColor(__in HDC hdc, __in COLORREF color); WINGDIAPI COLORREF WINAPI SetDCPenColor(_In_ HDC hdc, _In_ COLORREF color);
#endif #endif
__gdi_entry WINGDIAPI int WINAPI SetBkMode(__in HDC hdc, __in int mode); WINGDIAPI int WINAPI SetBkMode(_In_ HDC hdc, _In_ int mode);
WINGDIAPI WINGDIAPI
LONG WINAPI LONG WINAPI
SetBitmapBits( SetBitmapBits(
__in HBITMAP hbm, _In_ HBITMAP hbm,
__in DWORD cb, _In_ DWORD cb,
__in_bcount(cb) CONST VOID *pvBits); _In_reads_bytes_(cb) CONST VOID *pvBits);
WINGDIAPI UINT WINAPI SetBoundsRect(__in HDC hdc, __in_opt CONST RECT * lprect, WINGDIAPI UINT WINAPI SetBoundsRect(_In_ HDC hdc, _In_opt_ CONST RECT * lprect,
__in UINT flags); _In_ UINT flags);
WINGDIAPI int WINAPI SetDIBits(__in_opt HDC hdc, __in HBITMAP hbm, __in UINT s WINGDIAPI int WINAPI SetDIBits(_In_opt_ HDC hdc, _In_ HBITMAP hbm, _In_ UINT s
tart, __in UINT cLines, __in CONST VOID *lpBits, __in CONST BITMAPINFO * lpbmi, tart, _In_ UINT cLines, _In_ CONST VOID *lpBits, _In_ CONST BITMAPINFO * lpbmi,
__in UINT ColorUse); _In_ UINT ColorUse);
__gdi_entry WINGDIAPI int WINAPI SetDIBitsToDevice(__in HDC hdc, __in int xDes WINGDIAPI int WINAPI SetDIBitsToDevice(_In_ HDC hdc, _In_ int xDest, _In_ int
t, __in int yDest, __in DWORD w, __in DWORD h, __in int xSrc, yDest, _In_ DWORD w, _In_ DWORD h, _In_ int xSrc,
__in int ySrc, __in UINT StartScan, __in UINT cLines, __in CONST VOID * _In_ int ySrc, _In_ UINT StartScan, _In_ UINT cLines, _In_ CONST VOID *
lpvBits, __in CONST BITMAPINFO * lpbmi, __in UINT ColorUse); lpvBits, _In_ CONST BITMAPINFO * lpbmi, _In_ UINT ColorUse);
__gdi_entry WINGDIAPI DWORD WINAPI SetMapperFlags(__in HDC hdc, __in DWORD flags WINGDIAPI DWORD WINAPI SetMapperFlags(_In_ HDC hdc, _In_ DWORD flags);
); WINGDIAPI int WINAPI SetGraphicsMode(_In_ HDC hdc, _In_ int iMode);
WINGDIAPI int WINAPI SetGraphicsMode(__in HDC hdc, __in int iMode); WINGDIAPI int WINAPI SetMapMode(_In_ HDC hdc, _In_ int iMode);
__gdi_entry WINGDIAPI int WINAPI SetMapMode(__in HDC hdc, __in int iMode);
#if(WINVER >= 0x0500) #if(WINVER >= 0x0500)
__gdi_entry WINGDIAPI DWORD WINAPI SetLayout(__in HDC hdc, __in DWORD l); WINGDIAPI DWORD WINAPI SetLayout(_In_ HDC hdc, _In_ DWORD l);
WINGDIAPI DWORD WINAPI GetLayout(__in HDC hdc); WINGDIAPI DWORD WINAPI GetLayout(_In_ HDC hdc);
#endif /* WINVER >= 0x0500 */ #endif /* WINVER >= 0x0500 */
WINGDIAPI HMETAFILE WINAPI SetMetaFileBitsEx(__in UINT cbBuffer, __in_bcount(c WINGDIAPI HMETAFILE WINAPI SetMetaFileBitsEx(_In_ UINT cbBuffer, _In_reads_byt
bBuffer) CONST BYTE *lpData); es_(cbBuffer) CONST BYTE *lpData);
__gdi_entry WINGDIAPI UINT WINAPI SetPaletteEntries( __in HPALETTE hpal, WINGDIAPI UINT WINAPI SetPaletteEntries( _In_ HPALETTE hpal,
__in UINT iStart, _In_ UINT iStart,
__in UINT cEntries, _In_ UINT cEntries,
__in_ecount(cEntries) CONST PALETTEE _In_reads_(cEntries) CONST PALETTEEN
NTRY *pPalEntries); TRY *pPalEntries);
__gdi_entry WINGDIAPI COLORREF WINAPI SetPixel(__in HDC hdc, __in int x, __in in WINGDIAPI COLORREF WINAPI SetPixel(_In_ HDC hdc, _In_ int x, _In_ int y, _In_ C
t y, __in COLORREF color); OLORREF color);
WINGDIAPI BOOL WINAPI SetPixelV(__in HDC hdc, __in int x, __in int y, __in COL WINGDIAPI BOOL WINAPI SetPixelV(_In_ HDC hdc, _In_ int x, _In_ int y, _In_ COL
ORREF color); ORREF color);
WINGDIAPI BOOL WINAPI SetPixelFormat(__in HDC hdc, __in int format, __in CONST WINGDIAPI BOOL WINAPI SetPixelFormat(_In_ HDC hdc, _In_ int format, _In_ CONST
PIXELFORMATDESCRIPTOR * ppfd); PIXELFORMATDESCRIPTOR * ppfd);
__gdi_entry WINGDIAPI int WINAPI SetPolyFillMode(__in HDC hdc, __in int mode); WINGDIAPI int WINAPI SetPolyFillMode(_In_ HDC hdc, _In_ int mode);
__gdi_entry WINGDIAPI BOOL WINAPI StretchBlt(__in HDC hdcDest, __in int xDest, WINGDIAPI BOOL WINAPI StretchBlt(_In_ HDC hdcDest, _In_ int xDest, _In_ int yD
__in int yDest, __in int wDest, __in int hDest, __in_opt HDC hdcSrc, __in int xS est, _In_ int wDest, _In_ int hDest, _In_opt_ HDC hdcSrc, _In_ int xSrc, _In_ in
rc, __in int ySrc, __in int wSrc, __in int hSrc, __in DWORD rop); t ySrc, _In_ int wSrc, _In_ int hSrc, _In_ DWORD rop);
WINGDIAPI BOOL WINAPI SetRectRgn(__in HRGN hrgn, __in int left, __in int top, WINGDIAPI BOOL WINAPI SetRectRgn(_In_ HRGN hrgn, _In_ int left, _In_ int top,
__in int right, __in int bottom); _In_ int right, _In_ int bottom);
__gdi_entry WINGDIAPI int WINAPI StretchDIBits(__in HDC hdc, __in int xDest, _ WINGDIAPI int WINAPI StretchDIBits(_In_ HDC hdc, _In_ int xDest, _In_ int yDe
_in int yDest, __in int DestWidth, __in int DestHeight, __in int xSrc, __in int st, _In_ int DestWidth, _In_ int DestHeight, _In_ int xSrc, _In_ int ySrc, _In_
ySrc, __in int SrcWidth, __in int SrcHeight, int SrcWidth, _In_ int SrcHeight,
__in_opt CONST VOID * lpBits, __in CONST BITMAPINFO * lpbmi, __in UINT i _In_opt_ CONST VOID * lpBits, _In_ CONST BITMAPINFO * lpbmi, _In_ UINT i
Usage, __in DWORD rop); Usage, _In_ DWORD rop);
__gdi_entry WINGDIAPI int WINAPI SetROP2(__in HDC hdc, __in int rop2); WINGDIAPI int WINAPI SetROP2(_In_ HDC hdc, _In_ int rop2);
__gdi_entry WINGDIAPI int WINAPI SetStretchBltMode(__in HDC hdc, __in int mode WINGDIAPI int WINAPI SetStretchBltMode(_In_ HDC hdc, _In_ int mode);
); WINGDIAPI UINT WINAPI SetSystemPaletteUse(_In_ HDC hdc, _In_ UINT use);
WINGDIAPI UINT WINAPI SetSystemPaletteUse(__in HDC hdc, __in UINT use); WINGDIAPI int WINAPI SetTextCharacterExtra(_In_ HDC hdc, _In_ int extra);
__gdi_entry WINGDIAPI int WINAPI SetTextCharacterExtra(__in HDC hdc, __in int WINGDIAPI COLORREF WINAPI SetTextColor(_In_ HDC hdc, _In_ COLORREF color);
extra); WINGDIAPI UINT WINAPI SetTextAlign(_In_ HDC hdc, _In_ UINT align);
__gdi_entry WINGDIAPI COLORREF WINAPI SetTextColor(__in HDC hdc, __in COLORREF c WINGDIAPI BOOL WINAPI SetTextJustification(_In_ HDC hdc, _In_ int extra, _In_
olor); int count);
__gdi_entry WINGDIAPI UINT WINAPI SetTextAlign(__in HDC hdc, __in UINT align); WINGDIAPI BOOL WINAPI UpdateColors(_In_ HDC hdc);
__gdi_entry WINGDIAPI BOOL WINAPI SetTextJustification(__in HDC hdc, __in int e
xtra, __in int count); #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
WINGDIAPI BOOL WINAPI UpdateColors(__in HDC hdc); #pragma endregion
#ifdef COMBOX_SANDBOX #ifdef COMBOX_SANDBOX
#if (_WIN32_WINNT >= 0x0600) #if (_WIN32_WINNT >= 0x0600)
typedef PVOID (WINAPI *GDIMARSHALLOC)(DWORD dwSize, __in LPVOID pGdiRef); #pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef HRESULT (WINAPI *DDRAWMARSHCALLBACKMARSHAL)(__in HGDIOBJ hGdiObj, __in L typedef PVOID (WINAPI *GDIMARSHALLOC)(DWORD dwSize, _In_ LPVOID pGdiRef);
PVOID pGdiRef, __out LPVOID *ppDDrawRef);
typedef HRESULT (WINAPI *DDRAWMARSHCALLBACKUNMARSHAL)(__in LPVOID pData, __out H typedef HRESULT (WINAPI *DDRAWMARSHCALLBACKMARSHAL)(_In_ HGDIOBJ hGdiObj, _In_ L
DC *phdc, __out LPVOID *ppDDrawRef); PVOID pGdiRef, _Out_ LPVOID *ppDDrawRef);
typedef HRESULT (WINAPI *DDRAWMARSHCALLBACKRELEASE)(__in LPVOID pDDrawRef); typedef HRESULT (WINAPI *DDRAWMARSHCALLBACKUNMARSHAL)(_In_ LPVOID pData, _Out_ H
DC *phdc, _Out_ LPVOID *ppDDrawRef);
typedef HRESULT (WINAPI *DDRAWMARSHCALLBACKRELEASE)(_In_ LPVOID pDDrawRef);
#define GDIREGISTERDDRAWPACKETVERSION 0x1 #define GDIREGISTERDDRAWPACKETVERSION 0x1
typedef struct { typedef struct {
DWORD dwSize; DWORD dwSize;
DWORD dwVersion; DWORD dwVersion;
DDRAWMARSHCALLBACKMARSHAL pfnDdMarshal; DDRAWMARSHCALLBACKMARSHAL pfnDdMarshal;
DDRAWMARSHCALLBACKUNMARSHAL pfnDdUnmarshal; DDRAWMARSHCALLBACKUNMARSHAL pfnDdUnmarshal;
DDRAWMARSHCALLBACKRELEASE pfnDdRelease; DDRAWMARSHCALLBACKRELEASE pfnDdRelease;
} GDIREGISTERDDRAWPACKET, *PGDIREGISTERDDRAWPACKET; } GDIREGISTERDDRAWPACKET, *PGDIREGISTERDDRAWPACKET;
WINGDIAPI BOOL WINAPI GdiRegisterDdraw(__in PGDIREGISTERDDRAWPACKET pPacket , __out GDIMARSHALLOC *ppfnGdiAlloc); WINGDIAPI BOOL WINAPI GdiRegisterDdraw(_In_ PGDIREGISTERDDRAWPACKET pPacket , _Out_ GDIMARSHALLOC *ppfnGdiAlloc);
WINGDIAPI ULONG WINAPI GdiMarshalSize(VOID); WINGDIAPI ULONG WINAPI GdiMarshalSize(VOID);
WINGDIAPI VOID WINAPI GdiMarshal(DWORD dwProcessIdTo, __in HGDIOBJ hGdiObj, WINGDIAPI VOID WINAPI GdiMarshal(DWORD dwProcessIdTo, _In_ HGDIOBJ hGdiObj,
__inout PVOID pData, ULONG ulFlags); _Inout_ PVOID pData, ULONG ulFlags);
WINGDIAPI HGDIOBJ WINAPI GdiUnmarshal(__in PVOID pData, ULONG ulFlags); WINGDIAPI HGDIOBJ WINAPI GdiUnmarshal(_In_ PVOID pData, ULONG ulFlags);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#endif // (_WIN32_WINNT >= 0x0600) #endif // (_WIN32_WINNT >= 0x0600)
#endif // COMBOX_SANDBOX #endif // COMBOX_SANDBOX
#if (WINVER >= 0x0400) #if (WINVER >= 0x0400)
// //
// image blt // image blt
// //
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
typedef USHORT COLOR16; typedef USHORT COLOR16;
typedef struct _TRIVERTEX typedef struct _TRIVERTEX
{ {
LONG x; LONG x;
LONG y; LONG y;
COLOR16 Red; COLOR16 Red;
COLOR16 Green; COLOR16 Green;
COLOR16 Blue; COLOR16 Blue;
COLOR16 Alpha; COLOR16 Alpha;
}TRIVERTEX,*PTRIVERTEX,*LPTRIVERTEX; }TRIVERTEX,*PTRIVERTEX,*LPTRIVERTEX;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef struct _GRADIENT_TRIANGLE typedef struct _GRADIENT_TRIANGLE
{ {
ULONG Vertex1; ULONG Vertex1;
ULONG Vertex2; ULONG Vertex2;
ULONG Vertex3; ULONG Vertex3;
} GRADIENT_TRIANGLE,*PGRADIENT_TRIANGLE,*LPGRADIENT_TRIANGLE; } GRADIENT_TRIANGLE,*PGRADIENT_TRIANGLE,*LPGRADIENT_TRIANGLE;
typedef struct _GRADIENT_RECT typedef struct _GRADIENT_RECT
{ {
ULONG UpperLeft; ULONG UpperLeft;
ULONG LowerRight; ULONG LowerRight;
}GRADIENT_RECT,*PGRADIENT_RECT,*LPGRADIENT_RECT; }GRADIENT_RECT,*PGRADIENT_RECT,*LPGRADIENT_RECT;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
typedef struct _BLENDFUNCTION typedef struct _BLENDFUNCTION
{ {
BYTE BlendOp; BYTE BlendOp;
BYTE BlendFlags; BYTE BlendFlags;
BYTE SourceConstantAlpha; BYTE SourceConstantAlpha;
BYTE AlphaFormat; BYTE AlphaFormat;
}BLENDFUNCTION,*PBLENDFUNCTION; }BLENDFUNCTION,*PBLENDFUNCTION;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
// //
// currentlly defined blend function // currentlly defined blend function
// //
#define AC_SRC_OVER 0x00 #define AC_SRC_OVER 0x00
// //
// alpha format flags // alpha format flags
// //
#define AC_SRC_ALPHA 0x01 #define AC_SRC_ALPHA 0x01
WINGDIAPI BOOL WINAPI AlphaBlend( WINGDIAPI BOOL WINAPI AlphaBlend(
__in HDC hdcDest, _In_ HDC hdcDest,
__in int xoriginDest, _In_ int xoriginDest,
__in int yoriginDest, _In_ int yoriginDest,
__in int wDest, _In_ int wDest,
__in int hDest, _In_ int hDest,
__in HDC hdcSrc, _In_ HDC hdcSrc,
__in int xoriginSrc, _In_ int xoriginSrc,
__in int yoriginSrc, _In_ int yoriginSrc,
__in int wSrc, _In_ int wSrc,
__in int hSrc, _In_ int hSrc,
__in BLENDFUNCTION ftn); _In_ BLENDFUNCTION ftn);
WINGDIAPI BOOL WINAPI TransparentBlt( WINGDIAPI BOOL WINAPI TransparentBlt(
__in HDC hdcDest, _In_ HDC hdcDest,
__in int xoriginDest, _In_ int xoriginDest,
__in int yoriginDest, _In_ int yoriginDest,
__in int wDest, _In_ int wDest,
__in int hDest, _In_ int hDest,
__in HDC hdcSrc, _In_ HDC hdcSrc,
__in int xoriginSrc, _In_ int xoriginSrc,
__in int yoriginSrc, _In_ int yoriginSrc,
__in int wSrc, _In_ int wSrc,
__in int hSrc, _In_ int hSrc,
__in UINT crTransparent); _In_ UINT crTransparent);
// //
// gradient drawing modes // gradient drawing modes
// //
#define GRADIENT_FILL_RECT_H 0x00000000 #define GRADIENT_FILL_RECT_H 0x00000000
#define GRADIENT_FILL_RECT_V 0x00000001 #define GRADIENT_FILL_RECT_V 0x00000001
#define GRADIENT_FILL_TRIANGLE 0x00000002 #define GRADIENT_FILL_TRIANGLE 0x00000002
#define GRADIENT_FILL_OP_FLAG 0x000000ff #define GRADIENT_FILL_OP_FLAG 0x000000ff
WINGDIAPI WINGDIAPI
BOOL BOOL
WINAPI WINAPI
GradientFill( GradientFill(
__in HDC hdc, _In_ HDC hdc,
__in_ecount(nVertex) PTRIVERTEX pVertex, _In_reads_(nVertex) PTRIVERTEX pVertex,
__in ULONG nVertex, _In_ ULONG nVertex,
__in PVOID pMesh, _In_ PVOID pMesh,
__in ULONG nMesh, _In_ ULONG nMesh,
__in ULONG ulMode _In_ ULONG ulMode
); );
#endif #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#endif // (WINVER >= 0x0400)
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
#if (_WIN32_WINNT >= _WIN32_WINNT_WIN2K) #if (_WIN32_WINNT >= _WIN32_WINNT_WIN2K)
WINGDIAPI BOOL WINAPI GdiAlphaBlend(__in HDC hdcDest, __in int xoriginDest, __i n int yoriginDest, __in int wDest, __in int hDest, __in HDC hdcSrc, __in int xor iginSrc, __in int yoriginSrc, __in int wSrc, __in int hSrc, __in BLENDFUNCTION f tn); WINGDIAPI BOOL WINAPI GdiAlphaBlend(_In_ HDC hdcDest, _In_ int xoriginDest, _In _ int yoriginDest, _In_ int wDest, _In_ int hDest, _In_ HDC hdcSrc, _In_ int xor iginSrc, _In_ int yoriginSrc, _In_ int wSrc, _In_ int hSrc, _In_ BLENDFUNCTION f tn);
WINGDIAPI BOOL WINAPI GdiTransparentBlt(__in HDC hdcDest,__in int xoriginDest, WINGDIAPI BOOL WINAPI GdiTransparentBlt(_In_ HDC hdcDest,_In_ int xoriginDest,
__in int yoriginDest, __in int wDest, __in int hDest, __in HDC hdcSrc, _In_ int yoriginDest, _In_ int wDest, _In_ int hDest, _In_ HDC hdcSrc,
__in int xoriginSrc, __in int yorigin _In_ int xoriginSrc, _In_ int yorigin
Src, __in int wSrc, __in int hSrc, __in UINT crTransparent); Src, _In_ int wSrc, _In_ int hSrc, _In_ UINT crTransparent);
WINGDIAPI BOOL WINAPI GdiGradientFill( __in HDC hdc, WINGDIAPI BOOL WINAPI GdiGradientFill( _In_ HDC hdc,
__in_ecount(nVertex) PTRIVERTEX pVertex, _In_reads_(nVertex) PTRIVERTEX pVertex,
__in ULONG nVertex, _In_ ULONG nVertex,
__in PVOID pMesh, _In_ PVOID pMesh,
__in ULONG nCount, _In_ ULONG nCount,
__in ULONG ulMode); _In_ ULONG ulMode);
#endif #endif
#ifndef NOMETAFILE #ifndef NOMETAFILE
WINGDIAPI BOOL WINAPI PlayMetaFileRecord( __in HDC hdc, WINGDIAPI BOOL WINAPI PlayMetaFileRecord( _In_ HDC hdc,
__in_ecount(noObjs) LPHANDLETABLE lp _In_reads_(noObjs) LPHANDLETABLE lpH
HandleTable, andleTable,
__in LPMETARECORD lpMR, _In_ LPMETARECORD lpMR,
__in UINT noObjs); _In_ UINT noObjs);
typedef int (CALLBACK* MFENUMPROC)( __in HDC hdc, __in_ecount(nObj) HANDLETABLE typedef int (CALLBACK* MFENUMPROC)( _In_ HDC hdc, _In_reads_(nObj) HANDLETABLE F
FAR* lpht, __in METARECORD FAR* lpMR, __in int nObj, __in_opt LPARAM param); AR* lpht, _In_ METARECORD FAR* lpMR, _In_ int nObj, _In_opt_ LPARAM param);
WINGDIAPI BOOL WINAPI EnumMetaFile( __in HDC hdc, __in HMETAFILE hmf, __in MFEN WINGDIAPI BOOL WINAPI EnumMetaFile( _In_ HDC hdc, _In_ HMETAFILE hmf, _In_ MFEN
UMPROC proc, __in_opt LPARAM param); UMPROC proc, _In_opt_ LPARAM param);
typedef int (CALLBACK* ENHMFENUMPROC)(__in HDC hdc, __in_ecount(nHandles) HANDLE TABLE FAR* lpht, __in CONST ENHMETARECORD * lpmr, __in int nHandles, __in_opt LP ARAM data); typedef int (CALLBACK* ENHMFENUMPROC)(_In_ HDC hdc, _In_reads_(nHandles) HANDLET ABLE FAR* lpht, _In_ CONST ENHMETARECORD * lpmr, _In_ int nHandles, _In_opt_ LPA RAM data);
// Enhanced Metafile Function Declarations // Enhanced Metafile Function Declarations
WINGDIAPI HENHMETAFILE WINAPI CloseEnhMetaFile( __in HDC hdc); WINGDIAPI HENHMETAFILE WINAPI CloseEnhMetaFile( _In_ HDC hdc);
WINGDIAPI HENHMETAFILE WINAPI CopyEnhMetaFileA( __in HENHMETAFILE hEnh, __in_opt WINGDIAPI HENHMETAFILE WINAPI CopyEnhMetaFileA( _In_ HENHMETAFILE hEnh, _In_opt_
LPCSTR lpFileName); LPCSTR lpFileName);
WINGDIAPI HENHMETAFILE WINAPI CopyEnhMetaFileW( __in HENHMETAFILE hEnh, __in_opt WINGDIAPI HENHMETAFILE WINAPI CopyEnhMetaFileW( _In_ HENHMETAFILE hEnh, _In_opt_
LPCWSTR lpFileName); LPCWSTR lpFileName);
#ifdef UNICODE #ifdef UNICODE
#define CopyEnhMetaFile CopyEnhMetaFileW #define CopyEnhMetaFile CopyEnhMetaFileW
#else #else
#define CopyEnhMetaFile CopyEnhMetaFileA #define CopyEnhMetaFile CopyEnhMetaFileA
#endif // !UNICODE #endif // !UNICODE
WINGDIAPI HDC WINAPI CreateEnhMetaFileA( __in_opt HDC hdc, __in_opt LPCSTR lpF WINGDIAPI HDC WINAPI CreateEnhMetaFileA( _In_opt_ HDC hdc, _In_opt_ LPCSTR lpF
ilename, __in_opt CONST RECT *lprc, __in_opt LPCSTR lpDesc); ilename, _In_opt_ CONST RECT *lprc, _In_opt_ LPCSTR lpDesc);
WINGDIAPI HDC WINAPI CreateEnhMetaFileW( __in_opt HDC hdc, __in_opt LPCWSTR lp WINGDIAPI HDC WINAPI CreateEnhMetaFileW( _In_opt_ HDC hdc, _In_opt_ LPCWSTR lp
Filename, __in_opt CONST RECT *lprc, __in_opt LPCWSTR lpDesc); Filename, _In_opt_ CONST RECT *lprc, _In_opt_ LPCWSTR lpDesc);
#ifdef UNICODE #ifdef UNICODE
#define CreateEnhMetaFile CreateEnhMetaFileW #define CreateEnhMetaFile CreateEnhMetaFileW
#else #else
#define CreateEnhMetaFile CreateEnhMetaFileA #define CreateEnhMetaFile CreateEnhMetaFileA
#endif // !UNICODE #endif // !UNICODE
WINGDIAPI BOOL WINAPI DeleteEnhMetaFile( __in_opt HENHMETAFILE hmf); WINGDIAPI BOOL WINAPI DeleteEnhMetaFile( _In_opt_ HENHMETAFILE hmf);
WINGDIAPI BOOL WINAPI EnumEnhMetaFile( __in_opt HDC hdc, __in HENHMETAFILE hmf, WINGDIAPI BOOL WINAPI EnumEnhMetaFile( _In_opt_ HDC hdc, _In_ HENHMETAFILE hmf,
__in ENHMFENUMPROC proc, _In_ ENHMFENUMPROC proc,
__in_opt LPVOID param, __in_opt CONST RE _In_opt_ LPVOID param, _In_opt_ CONST RE
CT * lpRect); CT * lpRect);
WINGDIAPI HENHMETAFILE WINAPI GetEnhMetaFileA( __in LPCSTR lpName); WINGDIAPI HENHMETAFILE WINAPI GetEnhMetaFileA( _In_ LPCSTR lpName);
WINGDIAPI HENHMETAFILE WINAPI GetEnhMetaFileW( __in LPCWSTR lpName); WINGDIAPI HENHMETAFILE WINAPI GetEnhMetaFileW( _In_ LPCWSTR lpName);
#ifdef UNICODE #ifdef UNICODE
#define GetEnhMetaFile GetEnhMetaFileW #define GetEnhMetaFile GetEnhMetaFileW
#else #else
#define GetEnhMetaFile GetEnhMetaFileA #define GetEnhMetaFile GetEnhMetaFileA
#endif // !UNICODE #endif // !UNICODE
WINGDIAPI UINT WINAPI GetEnhMetaFileBits( __in HENHMETAFILE hEMF, WINGDIAPI UINT WINAPI GetEnhMetaFileBits( _In_ HENHMETAFILE hEMF,
__in UINT nSize, _In_ UINT nSize,
__out_bcount_opt(nSize) LPBYTE lpDat _Out_writes_bytes_opt_(nSize) LPBYTE
a); lpData);
WINGDIAPI UINT WINAPI GetEnhMetaFileDescriptionA( __in HENHMETAFILE hemf, WINGDIAPI UINT WINAPI GetEnhMetaFileDescriptionA( _In_ HENHMETAFILE hemf,
__in UINT cchBuffer, _In_ UINT cchBuffer,
__out_ecount_opt(cchBuffer) _Out_writes_opt_(cchBuffer)
LPSTR lpDescription); LPSTR lpDescription);
WINGDIAPI UINT WINAPI GetEnhMetaFileDescriptionW( __in HENHMETAFILE hemf, WINGDIAPI UINT WINAPI GetEnhMetaFileDescriptionW( _In_ HENHMETAFILE hemf,
__in UINT cchBuffer, _In_ UINT cchBuffer,
__out_ecount_opt(cchBuffer) _Out_writes_opt_(cchBuffer)
LPWSTR lpDescription); LPWSTR lpDescription);
#ifdef UNICODE #ifdef UNICODE
#define GetEnhMetaFileDescription GetEnhMetaFileDescriptionW #define GetEnhMetaFileDescription GetEnhMetaFileDescriptionW
#else #else
#define GetEnhMetaFileDescription GetEnhMetaFileDescriptionA #define GetEnhMetaFileDescription GetEnhMetaFileDescriptionA
#endif // !UNICODE #endif // !UNICODE
WINGDIAPI UINT WINAPI GetEnhMetaFileHeader( __in HENHMETAFILE hemf, WINGDIAPI UINT WINAPI GetEnhMetaFileHeader( _In_ HENHMETAFILE hemf,
__in UINT nSize, _In_ UINT nSize,
__out_bcount_opt(nSize) LPENHMET _Out_writes_bytes_opt_(nSize) LP
AHEADER lpEnhMetaHeader); ENHMETAHEADER lpEnhMetaHeader);
WINGDIAPI UINT WINAPI GetEnhMetaFilePaletteEntries(__in HENHMETAFILE hemf, WINGDIAPI UINT WINAPI GetEnhMetaFilePaletteEntries(_In_ HENHMETAFILE hemf,
__in UINT nNumEntries, _In_ UINT nNumEntries,
__out_ecount_opt(nNumEntries _Out_writes_opt_(nNumEntries
) LPPALETTEENTRY lpPaletteEntries); ) LPPALETTEENTRY lpPaletteEntries);
WINGDIAPI UINT WINAPI GetEnhMetaFilePixelFormat( __in HENHMETAFILE hemf, WINGDIAPI UINT WINAPI GetEnhMetaFilePixelFormat( _In_ HENHMETAFILE hemf,
__in UINT cbBuffer, _In_ UINT cbBuffer,
__out_bcount_opt(cbBuffer) P _Out_writes_bytes_opt_(cbBuf
IXELFORMATDESCRIPTOR *ppfd); fer) PIXELFORMATDESCRIPTOR *ppfd);
WINGDIAPI UINT WINAPI GetWinMetaFileBits( __in HENHMETAFILE hemf, WINGDIAPI UINT WINAPI GetWinMetaFileBits( _In_ HENHMETAFILE hemf,
__in UINT cbData16, _In_ UINT cbData16,
__out_bcount_opt(cbData16) LPBYTE pD _Out_writes_bytes_opt_(cbData16) LPB
ata16, YTE pData16,
__in INT iMapMode, _In_ INT iMapMode,
__in HDC hdcRef); _In_ HDC hdcRef);
WINGDIAPI BOOL WINAPI PlayEnhMetaFile( __in HDC hdc, __in HENHMETAFILE hmf, __i WINGDIAPI BOOL WINAPI PlayEnhMetaFile( _In_ HDC hdc, _In_ HENHMETAFILE hmf, _In
n CONST RECT * lprect); _ CONST RECT * lprect);
WINGDIAPI BOOL WINAPI PlayEnhMetaFileRecord( __in HDC hdc, WINGDIAPI BOOL WINAPI PlayEnhMetaFileRecord( _In_ HDC hdc,
__in_ecount(cht) LPHANDLETABLE p _In_reads_(cht) LPHANDLETABLE ph
ht, t,
__in CONST ENHMETARECORD *pmr, _In_ CONST ENHMETARECORD *pmr,
__in UINT cht); _In_ UINT cht);
WINGDIAPI HENHMETAFILE WINAPI SetEnhMetaFileBits( __in UINT nSize, WINGDIAPI HENHMETAFILE WINAPI SetEnhMetaFileBits( _In_ UINT nSize,
__in_bcount(nSize) CONST BYT _In_reads_bytes_(nSize) CONS
E * pb); T BYTE * pb);
WINGDIAPI HENHMETAFILE WINAPI SetWinMetaFileBits( __in UINT nSize, WINGDIAPI HENHMETAFILE WINAPI SetWinMetaFileBits( _In_ UINT nSize,
__in_bcount(nSize) CONST BYT _In_reads_bytes_(nSize) CONS
E *lpMeta16Data, T BYTE *lpMeta16Data,
__in_opt HDC hdcRef, _In_opt_ HDC hdcRef,
__in_opt CONST METAFILEPICT _In_opt_ CONST METAFILEPICT
*lpMFP); *lpMFP);
WINGDIAPI BOOL WINAPI GdiComment(__in HDC hdc, __in UINT nSize, __in_bcount(nSi WINGDIAPI BOOL WINAPI GdiComment(_In_ HDC hdc, _In_ UINT nSize, _In_reads_bytes
ze) CONST BYTE *lpData); _(nSize) CONST BYTE *lpData);
#endif /* NOMETAFILE */ #endif /* NOMETAFILE */
#ifndef NOTEXTMETRIC #ifndef NOTEXTMETRIC
WINGDIAPI BOOL WINAPI GetTextMetricsA( __in HDC hdc, __out LPTEXTMETRICA lptm); WINGDIAPI BOOL WINAPI GetTextMetricsA( _In_ HDC hdc, _Out_ LPTEXTMETRICA lptm);
WINGDIAPI BOOL WINAPI GetTextMetricsW( __in HDC hdc, __out LPTEXTMETRICW lptm); WINGDIAPI BOOL WINAPI GetTextMetricsW( _In_ HDC hdc, _Out_ LPTEXTMETRICW lptm);
#ifdef UNICODE #ifdef UNICODE
#define GetTextMetrics GetTextMetricsW #define GetTextMetrics GetTextMetricsW
#else #else
#define GetTextMetrics GetTextMetricsA #define GetTextMetrics GetTextMetricsA
#endif // !UNICODE #endif // !UNICODE
#if defined(_M_CEE) #if defined(_M_CEE)
#undef GetTextMetrics #undef GetTextMetrics
__inline __inline
BOOL BOOL
skipping to change at line 4314 skipping to change at line 4742
/* new GDI */ /* new GDI */
typedef struct tagDIBSECTION { typedef struct tagDIBSECTION {
BITMAP dsBm; BITMAP dsBm;
BITMAPINFOHEADER dsBmih; BITMAPINFOHEADER dsBmih;
DWORD dsBitfields[3]; DWORD dsBitfields[3];
HANDLE dshSection; HANDLE dshSection;
DWORD dsOffset; DWORD dsOffset;
} DIBSECTION, FAR *LPDIBSECTION, *PDIBSECTION; } DIBSECTION, FAR *LPDIBSECTION, *PDIBSECTION;
WINGDIAPI BOOL WINAPI AngleArc( __in HDC hdc, __in int x, __in int y, __in DWORD WINGDIAPI BOOL WINAPI AngleArc( _In_ HDC hdc, _In_ int x, _In_ int y, _In_ DWORD
r, __in FLOAT StartAngle, __in FLOAT SweepAngle); r, _In_ FLOAT StartAngle, _In_ FLOAT SweepAngle);
WINGDIAPI BOOL WINAPI PolyPolyline(__in HDC hdc, __in CONST POINT *apt, __in_eco WINGDIAPI BOOL WINAPI PolyPolyline(_In_ HDC hdc, _In_ CONST POINT *apt, _In_read
unt(csz) CONST DWORD *asz, __in DWORD csz); s_(csz) CONST DWORD *asz, _In_ DWORD csz);
WINGDIAPI BOOL WINAPI GetWorldTransform( __in HDC hdc, __out LPXFORM lpxf); WINGDIAPI BOOL WINAPI GetWorldTransform( _In_ HDC hdc, _Out_ LPXFORM lpxf);
WINGDIAPI BOOL WINAPI SetWorldTransform( __in HDC hdc, __in CONST XFORM * lpxf); WINGDIAPI BOOL WINAPI SetWorldTransform( _In_ HDC hdc, _In_ CONST XFORM * lpxf);
WINGDIAPI BOOL WINAPI ModifyWorldTransform( __in HDC hdc, __in_opt CONST XFORM * WINGDIAPI BOOL WINAPI ModifyWorldTransform( _In_ HDC hdc, _In_opt_ CONST XFORM *
lpxf, __in DWORD mode); lpxf, _In_ DWORD mode);
WINGDIAPI BOOL WINAPI CombineTransform( __out LPXFORM lpxfOut, __in CONST XFORM WINGDIAPI BOOL WINAPI CombineTransform( _Out_ LPXFORM lpxfOut, _In_ CONST XFORM
*lpxf1, __in CONST XFORM *lpxf2); *lpxf1, _In_ CONST XFORM *lpxf2);
WINGDIAPI HBITMAP WINAPI CreateDIBSection(__in_opt HDC hdc, __in CONST BITMAPINF
O *lpbmi, __in UINT usage, __deref_opt_out VOID **ppvBits, __in_opt HANDLE hSect #define GDI_WIDTHBYTES(bits) ((DWORD)(((bits)+31) & (~31)) / 8)
ion, __in DWORD offset); #define GDI_DIBWIDTHBYTES(bi) (DWORD)GDI_WIDTHBYTES((DWORD)(bi).biWidth * (DWORD
__range(0,cEntries) )(bi).biBitCount)
WINGDIAPI UINT WINAPI GetDIBColorTable( __in HDC hdc, #define GDI__DIBSIZE(bi) (GDI_DIBWIDTHBYTES(bi) * (DWORD)(bi).biHeight)
__in UINT iStart, #define GDI_DIBSIZE(bi) ((bi).biHeight < 0 ? (-1)*(GDI__DIBSIZE(bi)) : GDI__DIBS
__in UINT cEntries, IZE(bi))
__out_ecount_part(cEntries,return) RGBQU
AD *prgbq); WINGDIAPI _Success_(return != NULL) HBITMAP WINAPI CreateDIBSection(
WINGDIAPI UINT WINAPI SetDIBColorTable( __in HDC hdc, _In_opt_ HDC hdc,
__in UINT iStart, _In_ CONST BITMAPINFO *pbmi,
__in UINT cEntries, _In_ UINT usage,
__in_ecount(cEntries) CONST RGBQUAD *prg _When_((pbmi->bmiHeader.biBitCount != 0), _Outptr_result_bytebuffer_(_Inexpr
bq); essible_(GDI_DIBSIZE((pbmi->bmiHeader)))))
_When_((pbmi->bmiHeader.biBitCount == 0), _Outptr_result_bytebuffer_((pbmi->
bmiHeader).biSizeImage))
VOID **ppvBits,
_In_opt_ HANDLE hSection,
_In_ DWORD offset);
_Ret_range_(0,cEntries)
WINGDIAPI UINT WINAPI GetDIBColorTable( _In_ HDC hdc,
_In_ UINT iStart,
_In_ UINT cEntries,
_Out_writes_to_(cEntries,return) RGBQUAD
*prgbq);
WINGDIAPI UINT WINAPI SetDIBColorTable( _In_ HDC hdc,
_In_ UINT iStart,
_In_ UINT cEntries,
_In_reads_(cEntries) CONST RGBQUAD *prgb
q);
/* Flags value for COLORADJUSTMENT */ /* Flags value for COLORADJUSTMENT */
#define CA_NEGATIVE 0x0001 #define CA_NEGATIVE 0x0001
#define CA_LOG_FILTER 0x0002 #define CA_LOG_FILTER 0x0002
/* IlluminantIndex values */ /* IlluminantIndex values */
#define ILLUMINANT_DEVICE_DEFAULT 0 #define ILLUMINANT_DEVICE_DEFAULT 0
#define ILLUMINANT_A 1 #define ILLUMINANT_A 1
#define ILLUMINANT_B 2 #define ILLUMINANT_B 2
#define ILLUMINANT_C 3 #define ILLUMINANT_C 3
skipping to change at line 4381 skipping to change at line 4824
WORD caGreenGamma; WORD caGreenGamma;
WORD caBlueGamma; WORD caBlueGamma;
WORD caReferenceBlack; WORD caReferenceBlack;
WORD caReferenceWhite; WORD caReferenceWhite;
SHORT caContrast; SHORT caContrast;
SHORT caBrightness; SHORT caBrightness;
SHORT caColorfulness; SHORT caColorfulness;
SHORT caRedGreenTint; SHORT caRedGreenTint;
} COLORADJUSTMENT, *PCOLORADJUSTMENT, FAR *LPCOLORADJUSTMENT; } COLORADJUSTMENT, *PCOLORADJUSTMENT, FAR *LPCOLORADJUSTMENT;
WINGDIAPI BOOL WINAPI SetColorAdjustment( __in HDC hdc, __in CONST COLORADJUSTME WINGDIAPI BOOL WINAPI SetColorAdjustment( _In_ HDC hdc, _In_ CONST COLORADJUSTME
NT *lpca); NT *lpca);
WINGDIAPI BOOL WINAPI GetColorAdjustment( __in HDC hdc, __out LPCOLORADJUSTMENT WINGDIAPI BOOL WINAPI GetColorAdjustment( _In_ HDC hdc, _Out_ LPCOLORADJUSTMENT
lpca); lpca);
WINGDIAPI HPALETTE WINAPI CreateHalftonePalette( __in_opt HDC hdc); WINGDIAPI HPALETTE WINAPI CreateHalftonePalette( _In_opt_ HDC hdc);
#ifdef STRICT #ifdef STRICT
typedef BOOL (CALLBACK* ABORTPROC)( __in HDC, __in int); typedef BOOL (CALLBACK* ABORTPROC)( _In_ HDC, _In_ int);
#else #else
typedef FARPROC ABORTPROC; typedef FARPROC ABORTPROC;
#endif #endif
typedef struct _DOCINFOA { typedef struct _DOCINFOA {
int cbSize; int cbSize;
LPCSTR lpszDocName; LPCSTR lpszDocName;
LPCSTR lpszOutput; LPCSTR lpszOutput;
#if (WINVER >= 0x0400) #if (WINVER >= 0x0400)
LPCSTR lpszDatatype; LPCSTR lpszDatatype;
skipping to change at line 4422 skipping to change at line 4865
#else #else
typedef DOCINFOA DOCINFO; typedef DOCINFOA DOCINFO;
typedef LPDOCINFOA LPDOCINFO; typedef LPDOCINFOA LPDOCINFO;
#endif // UNICODE #endif // UNICODE
#if(WINVER >= 0x0400) #if(WINVER >= 0x0400)
#define DI_APPBANDING 0x00000001 #define DI_APPBANDING 0x00000001
#define DI_ROPS_READ_DESTINATION 0x00000002 #define DI_ROPS_READ_DESTINATION 0x00000002
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
__gdi_entry WINGDIAPI int WINAPI StartDocA(__in HDC hdc, __in CONST DOCINFOA *lp WINGDIAPI int WINAPI StartDocA(_In_ HDC hdc, _In_ CONST DOCINFOA *lpdi);
di); WINGDIAPI int WINAPI StartDocW(_In_ HDC hdc, _In_ CONST DOCINFOW *lpdi);
__gdi_entry WINGDIAPI int WINAPI StartDocW(__in HDC hdc, __in CONST DOCINFOW *lp
di);
#ifdef UNICODE #ifdef UNICODE
#define StartDoc StartDocW #define StartDoc StartDocW
#else #else
#define StartDoc StartDocA #define StartDoc StartDocA
#endif // !UNICODE #endif // !UNICODE
__gdi_entry WINGDIAPI int WINAPI EndDoc(__in HDC hdc); WINGDIAPI int WINAPI EndDoc(_In_ HDC hdc);
__gdi_entry WINGDIAPI int WINAPI StartPage(__in HDC hdc); WINGDIAPI int WINAPI StartPage(_In_ HDC hdc);
__gdi_entry WINGDIAPI int WINAPI EndPage(__in HDC hdc); WINGDIAPI int WINAPI EndPage(_In_ HDC hdc);
__gdi_entry WINGDIAPI int WINAPI AbortDoc(__in HDC hdc); WINGDIAPI int WINAPI AbortDoc(_In_ HDC hdc);
WINGDIAPI int WINAPI SetAbortProc(__in HDC hdc, __in ABORTPROC proc); WINGDIAPI int WINAPI SetAbortProc(_In_ HDC hdc, _In_ ABORTPROC proc);
WINGDIAPI BOOL WINAPI AbortPath(__in HDC hdc); WINGDIAPI BOOL WINAPI AbortPath(_In_ HDC hdc);
WINGDIAPI BOOL WINAPI ArcTo(__in HDC hdc, __in int left, __in int top, __in int WINGDIAPI BOOL WINAPI ArcTo(_In_ HDC hdc, _In_ int left, _In_ int top, _In_ int
right, __in int bottom, __in int xr1, __in int yr1, __in int xr2, __in int yr2); right, _In_ int bottom, _In_ int xr1, _In_ int yr1, _In_ int xr2, _In_ int yr2);
WINGDIAPI BOOL WINAPI BeginPath(__in HDC hdc); WINGDIAPI BOOL WINAPI BeginPath(_In_ HDC hdc);
WINGDIAPI BOOL WINAPI CloseFigure(__in HDC hdc); WINGDIAPI BOOL WINAPI CloseFigure(_In_ HDC hdc);
WINGDIAPI BOOL WINAPI EndPath(__in HDC hdc); WINGDIAPI BOOL WINAPI EndPath(_In_ HDC hdc);
WINGDIAPI BOOL WINAPI FillPath(__in HDC hdc); WINGDIAPI BOOL WINAPI FillPath(_In_ HDC hdc);
WINGDIAPI BOOL WINAPI FlattenPath(__in HDC hdc); WINGDIAPI BOOL WINAPI FlattenPath(_In_ HDC hdc);
WINGDIAPI int WINAPI GetPath(__in HDC hdc, __out_ecount_opt(cpt) LPPOINT apt, _ WINGDIAPI int WINAPI GetPath(_In_ HDC hdc, _Out_writes_opt_(cpt) LPPOINT apt, _
_out_ecount_opt(cpt) LPBYTE aj, int cpt); Out_writes_opt_(cpt) LPBYTE aj, int cpt);
WINGDIAPI HRGN WINAPI PathToRegion(__in HDC hdc); WINGDIAPI HRGN WINAPI PathToRegion(_In_ HDC hdc);
WINGDIAPI BOOL WINAPI PolyDraw(__in HDC hdc, __in_ecount(cpt) CONST POINT * apt, WINGDIAPI BOOL WINAPI PolyDraw(_In_ HDC hdc, _In_reads_(cpt) CONST POINT * apt,
__in_ecount(cpt) CONST BYTE * aj, __in int cpt); _In_reads_(cpt) CONST BYTE * aj, _In_ int cpt);
WINGDIAPI BOOL WINAPI SelectClipPath(__in HDC hdc, __in int mode); WINGDIAPI BOOL WINAPI SelectClipPath(_In_ HDC hdc, _In_ int mode);
WINGDIAPI int WINAPI SetArcDirection(__in HDC hdc, __in int dir); WINGDIAPI int WINAPI SetArcDirection(_In_ HDC hdc, _In_ int dir);
WINGDIAPI BOOL WINAPI SetMiterLimit(__in HDC hdc, __in FLOAT limit, __out_opt PF WINGDIAPI BOOL WINAPI SetMiterLimit(_In_ HDC hdc, _In_ FLOAT limit, _Out_opt_ PF
LOAT old); LOAT old);
WINGDIAPI BOOL WINAPI StrokeAndFillPath(__in HDC hdc); WINGDIAPI BOOL WINAPI StrokeAndFillPath(_In_ HDC hdc);
WINGDIAPI BOOL WINAPI StrokePath(__in HDC hdc); WINGDIAPI BOOL WINAPI StrokePath(_In_ HDC hdc);
WINGDIAPI BOOL WINAPI WidenPath(__in HDC hdc); WINGDIAPI BOOL WINAPI WidenPath(_In_ HDC hdc);
WINGDIAPI HPEN WINAPI ExtCreatePen( __in DWORD iPenStyle, WINGDIAPI HPEN WINAPI ExtCreatePen( _In_ DWORD iPenStyle,
__in DWORD cWidth, _In_ DWORD cWidth,
__in CONST LOGBRUSH *plbrush, _In_ CONST LOGBRUSH *plbrush,
__in DWORD cStyle, _In_ DWORD cStyle,
__in_ecount_opt(cStyle) CONST DWORD *pstyle) _In_reads_opt_(cStyle) CONST DWORD *pstyle);
; WINGDIAPI BOOL WINAPI GetMiterLimit(_In_ HDC hdc, _Out_ PFLOAT plimit);
WINGDIAPI BOOL WINAPI GetMiterLimit(__in HDC hdc, __out PFLOAT plimit); WINGDIAPI int WINAPI GetArcDirection(_In_ HDC hdc);
WINGDIAPI int WINAPI GetArcDirection(__in HDC hdc);
WINGDIAPI int WINAPI GetObjectA(__in HANDLE h, __in int c, __out_bcount_opt(c) WINGDIAPI int WINAPI GetObjectA(_In_ HANDLE h, _In_ int c, _Out_writes_bytes_o
LPVOID pv); pt_(c) LPVOID pv);
WINGDIAPI int WINAPI GetObjectW(__in HANDLE h, __in int c, __out_bcount_opt(c) WINGDIAPI int WINAPI GetObjectW(_In_ HANDLE h, _In_ int c, _Out_writes_bytes_o
LPVOID pv); pt_(c) LPVOID pv);
#ifdef UNICODE #ifdef UNICODE
#define GetObject GetObjectW #define GetObject GetObjectW
#else #else
#define GetObject GetObjectA #define GetObject GetObjectA
#endif // !UNICODE #endif // !UNICODE
#if defined(_M_CEE) #if defined(_M_CEE)
#undef GetObject #undef GetObject
__inline __inline
int int
GetObject( GetObject(
skipping to change at line 4488 skipping to change at line 4931
#else #else
return GetObjectA( return GetObjectA(
#endif #endif
h, h,
c, c,
pv pv
); );
} }
#endif /* _M_CEE */ #endif /* _M_CEE */
__gdi_entry WINGDIAPI BOOL WINAPI MoveToEx( __in HDC hdc, __in int x, __in int WINGDIAPI BOOL WINAPI MoveToEx( _In_ HDC hdc, _In_ int x, _In_ int y, _Out_opt
y, __out_opt LPPOINT lppt); _ LPPOINT lppt);
__gdi_entry WINGDIAPI BOOL WINAPI TextOutA( __in HDC hdc, __in int x, __in int WINGDIAPI BOOL WINAPI TextOutA( _In_ HDC hdc, _In_ int x, _In_ int y, _In_read
y, __in_ecount(c) LPCSTR lpString, __in int c); s_(c) LPCSTR lpString, _In_ int c);
__gdi_entry WINGDIAPI BOOL WINAPI TextOutW( __in HDC hdc, __in int x, __in int WINGDIAPI BOOL WINAPI TextOutW( _In_ HDC hdc, _In_ int x, _In_ int y, _In_read
y, __in_ecount(c) LPCWSTR lpString, __in int c); s_(c) LPCWSTR lpString, _In_ int c);
#ifdef UNICODE #ifdef UNICODE
#define TextOut TextOutW #define TextOut TextOutW
#else #else
#define TextOut TextOutA #define TextOut TextOutA
#endif // !UNICODE #endif // !UNICODE
__gdi_entry WINGDIAPI BOOL WINAPI ExtTextOutA( __in HDC hdc, __in int x, __in i WINGDIAPI BOOL WINAPI ExtTextOutA( _In_ HDC hdc, _In_ int x, _In_ int y, _In_
nt y, __in UINT options, __in_opt CONST RECT * lprect, __in_ecount_opt(c) LPCSTR UINT options, _In_opt_ CONST RECT * lprect, _In_reads_opt_(c) LPCSTR lpString, _
lpString, __in UINT c, __in_ecount_opt(c) CONST INT * lpDx); In_ UINT c, _In_reads_opt_(c) CONST INT * lpDx);
__gdi_entry WINGDIAPI BOOL WINAPI ExtTextOutW( __in HDC hdc, __in int x, __in i WINGDIAPI BOOL WINAPI ExtTextOutW( _In_ HDC hdc, _In_ int x, _In_ int y, _In_
nt y, __in UINT options, __in_opt CONST RECT * lprect, __in_ecount_opt(c) LPCWST UINT options, _In_opt_ CONST RECT * lprect, _In_reads_opt_(c) LPCWSTR lpString,
R lpString, __in UINT c, __in_ecount_opt(c) CONST INT * lpDx); _In_ UINT c, _In_reads_opt_(c) CONST INT * lpDx);
#ifdef UNICODE #ifdef UNICODE
#define ExtTextOut ExtTextOutW #define ExtTextOut ExtTextOutW
#else #else
#define ExtTextOut ExtTextOutA #define ExtTextOut ExtTextOutA
#endif // !UNICODE #endif // !UNICODE
WINGDIAPI BOOL WINAPI PolyTextOutA(__in HDC hdc, __in_ecount(nstrings) CONST PO WINGDIAPI BOOL WINAPI PolyTextOutA(_In_ HDC hdc, _In_reads_(nstrings) CONST POL
LYTEXTA * ppt, __in int nstrings); YTEXTA * ppt, _In_ int nstrings);
WINGDIAPI BOOL WINAPI PolyTextOutW(__in HDC hdc, __in_ecount(nstrings) CONST PO WINGDIAPI BOOL WINAPI PolyTextOutW(_In_ HDC hdc, _In_reads_(nstrings) CONST POL
LYTEXTW * ppt, __in int nstrings); YTEXTW * ppt, _In_ int nstrings);
#ifdef UNICODE #ifdef UNICODE
#define PolyTextOut PolyTextOutW #define PolyTextOut PolyTextOutW
#else #else
#define PolyTextOut PolyTextOutA #define PolyTextOut PolyTextOutA
#endif // !UNICODE #endif // !UNICODE
WINGDIAPI HRGN WINAPI CreatePolygonRgn( __in_ecount(cPoint) CONST POINT *ppt WINGDIAPI HRGN WINAPI CreatePolygonRgn( _In_reads_(cPoint) CONST POINT *pptl
l, ,
__in int cPoint, _In_ int cPoint,
__in int iMode); _In_ int iMode);
WINGDIAPI BOOL WINAPI DPtoLP( __in HDC hdc, __inout_ecount(c) LPPOINT lppt, __i WINGDIAPI BOOL WINAPI DPtoLP( _In_ HDC hdc, _Inout_updates_(c) LPPOINT lppt, _I
n int c); n_ int c);
WINGDIAPI BOOL WINAPI LPtoDP( __in HDC hdc, __inout_ecount(c) LPPOINT lppt, __i WINGDIAPI BOOL WINAPI LPtoDP( _In_ HDC hdc, _Inout_updates_(c) LPPOINT lppt, _I
n int c); n_ int c);
__gdi_entry WINGDIAPI BOOL WINAPI Polygon(__in HDC hdc, __in_ecount(cpt) CONST WINGDIAPI BOOL WINAPI Polygon(_In_ HDC hdc, _In_reads_(cpt) CONST POINT *apt,
POINT *apt, __in int cpt); _In_ int cpt);
__gdi_entry WINGDIAPI BOOL WINAPI Polyline(__in HDC hdc, __in_ecount(cpt) CONST WINGDIAPI BOOL WINAPI Polyline(_In_ HDC hdc, _In_reads_(cpt) CONST POINT *apt,
POINT *apt, __in int cpt); _In_ int cpt);
WINGDIAPI BOOL WINAPI PolyBezier(__in HDC hdc, __in_ecount(cpt) CONST POINT * a WINGDIAPI BOOL WINAPI PolyBezier(_In_ HDC hdc, _In_reads_(cpt) CONST POINT * ap
pt, __in DWORD cpt); t, _In_ DWORD cpt);
WINGDIAPI BOOL WINAPI PolyBezierTo(__in HDC hdc, __in_ecount(cpt) CONST POINT * WINGDIAPI BOOL WINAPI PolyBezierTo(_In_ HDC hdc, _In_reads_(cpt) CONST POINT *
apt, __in DWORD cpt); apt, _In_ DWORD cpt);
WINGDIAPI BOOL WINAPI PolylineTo(__in HDC hdc, __in_ecount(cpt) CONST POINT * a WINGDIAPI BOOL WINAPI PolylineTo(_In_ HDC hdc, _In_reads_(cpt) CONST POINT * ap
pt, __in DWORD cpt); t, _In_ DWORD cpt);
__gdi_entry WINGDIAPI BOOL WINAPI SetViewportExtEx( __in HDC hdc, __in int x, _ WINGDIAPI BOOL WINAPI SetViewportExtEx( _In_ HDC hdc, _In_ int x, _In_ int y,
_in int y, __out_opt LPSIZE lpsz); _Out_opt_ LPSIZE lpsz);
__gdi_entry WINGDIAPI BOOL WINAPI SetViewportOrgEx( __in HDC hdc, __in int x, _ WINGDIAPI BOOL WINAPI SetViewportOrgEx( _In_ HDC hdc, _In_ int x, _In_ int y,
_in int y, __out_opt LPPOINT lppt); _Out_opt_ LPPOINT lppt);
__gdi_entry WINGDIAPI BOOL WINAPI SetWindowExtEx( __in HDC hdc, __in int x, __i WINGDIAPI BOOL WINAPI SetWindowExtEx( _In_ HDC hdc, _In_ int x, _In_ int y, _O
n int y, __out_opt LPSIZE lpsz); ut_opt_ LPSIZE lpsz);
__gdi_entry WINGDIAPI BOOL WINAPI SetWindowOrgEx( __in HDC hdc, __in int x, __i WINGDIAPI BOOL WINAPI SetWindowOrgEx( _In_ HDC hdc, _In_ int x, _In_ int y, _O
n int y, __out_opt LPPOINT lppt); ut_opt_ LPPOINT lppt);
__gdi_entry WINGDIAPI BOOL WINAPI OffsetViewportOrgEx( __in HDC hdc, __in int x WINGDIAPI BOOL WINAPI OffsetViewportOrgEx( _In_ HDC hdc, _In_ int x, _In_ int
, __in int y, __out_opt LPPOINT lppt); y, _Out_opt_ LPPOINT lppt);
__gdi_entry WINGDIAPI BOOL WINAPI OffsetWindowOrgEx( __in HDC hdc, __in int x, WINGDIAPI BOOL WINAPI OffsetWindowOrgEx( _In_ HDC hdc, _In_ int x, _In_ int y,
__in int y, __out_opt LPPOINT lppt); _Out_opt_ LPPOINT lppt);
__gdi_entry WINGDIAPI BOOL WINAPI ScaleViewportExtEx( __in HDC hdc, __in int xn WINGDIAPI BOOL WINAPI ScaleViewportExtEx( _In_ HDC hdc, _In_ int xn, _In_ int
, __in int dx, __in int yn, __in int yd, __out_opt LPSIZE lpsz); dx, _In_ int yn, _In_ int yd, _Out_opt_ LPSIZE lpsz);
__gdi_entry WINGDIAPI BOOL WINAPI ScaleWindowExtEx( __in HDC hdc, __in int xn, WINGDIAPI BOOL WINAPI ScaleWindowExtEx( _In_ HDC hdc, _In_ int xn, _In_ int xd
__in int xd, __in int yn, __in int yd, __out_opt LPSIZE lpsz); , _In_ int yn, _In_ int yd, _Out_opt_ LPSIZE lpsz);
WINGDIAPI BOOL WINAPI SetBitmapDimensionEx( __in HBITMAP hbm, __in int w, __in WINGDIAPI BOOL WINAPI SetBitmapDimensionEx( _In_ HBITMAP hbm, _In_ int w, _In_
int h, __out_opt LPSIZE lpsz); int h, _Out_opt_ LPSIZE lpsz);
WINGDIAPI BOOL WINAPI SetBrushOrgEx( __in HDC hdc, __in int x, __in int y, __ou WINGDIAPI BOOL WINAPI SetBrushOrgEx( _In_ HDC hdc, _In_ int x, _In_ int y, _Out
t_opt LPPOINT lppt); _opt_ LPPOINT lppt);
WINGDIAPI int WINAPI GetTextFaceA( __in HDC hdc, __in int c, __out_ecount_part WINGDIAPI int WINAPI GetTextFaceA( _In_ HDC hdc, _In_ int c, _Out_writes_to_op
_opt(c, return) LPSTR lpName); t_(c, return) LPSTR lpName);
WINGDIAPI int WINAPI GetTextFaceW( __in HDC hdc, __in int c, __out_ecount_part WINGDIAPI int WINAPI GetTextFaceW( _In_ HDC hdc, _In_ int c, _Out_writes_to_op
_opt(c, return) LPWSTR lpName); t_(c, return) LPWSTR lpName);
#ifdef UNICODE #ifdef UNICODE
#define GetTextFace GetTextFaceW #define GetTextFace GetTextFaceW
#else #else
#define GetTextFace GetTextFaceA #define GetTextFace GetTextFaceA
#endif // !UNICODE #endif // !UNICODE
#define FONTMAPPER_MAX 10 #define FONTMAPPER_MAX 10
typedef struct tagKERNINGPAIR { typedef struct tagKERNINGPAIR {
WORD wFirst; WORD wFirst;
WORD wSecond; WORD wSecond;
int iKernAmount; int iKernAmount;
} KERNINGPAIR, *LPKERNINGPAIR; } KERNINGPAIR, *LPKERNINGPAIR;
WINGDIAPI DWORD WINAPI GetKerningPairsA( __in HDC hdc, WINGDIAPI DWORD WINAPI GetKerningPairsA( _In_ HDC hdc,
__in DWORD nPairs, _In_ DWORD nPairs,
__out_ecount_part_opt(nPairs, return _Out_writes_to_opt_(nPairs, return)
) LPKERNINGPAIR lpKernPair); LPKERNINGPAIR lpKernPair);
WINGDIAPI DWORD WINAPI GetKerningPairsW( __in HDC hdc, WINGDIAPI DWORD WINAPI GetKerningPairsW( _In_ HDC hdc,
__in DWORD nPairs, _In_ DWORD nPairs,
__out_ecount_part_opt(nPairs, return _Out_writes_to_opt_(nPairs, return)
) LPKERNINGPAIR lpKernPair); LPKERNINGPAIR lpKernPair);
#ifdef UNICODE #ifdef UNICODE
#define GetKerningPairs GetKerningPairsW #define GetKerningPairs GetKerningPairsW
#else #else
#define GetKerningPairs GetKerningPairsA #define GetKerningPairs GetKerningPairsA
#endif // !UNICODE #endif // !UNICODE
WINGDIAPI BOOL WINAPI GetDCOrgEx( __in HDC hdc, __out LPPOINT lppt); WINGDIAPI BOOL WINAPI GetDCOrgEx( _In_ HDC hdc, _Out_ LPPOINT lppt);
WINGDIAPI BOOL WINAPI FixBrushOrgEx( __in HDC hdc, __in int x, __in int y, __i WINGDIAPI BOOL WINAPI FixBrushOrgEx( _In_ HDC hdc, _In_ int x, _In_ int y, _In
n_opt LPPOINT ptl); _opt_ LPPOINT ptl);
WINGDIAPI BOOL WINAPI UnrealizeObject( __in HGDIOBJ h); WINGDIAPI BOOL WINAPI UnrealizeObject( _In_ HGDIOBJ h);
WINGDIAPI BOOL WINAPI GdiFlush(void); WINGDIAPI BOOL WINAPI GdiFlush(void);
WINGDIAPI DWORD WINAPI GdiSetBatchLimit( __in DWORD dw); WINGDIAPI DWORD WINAPI GdiSetBatchLimit( _In_ DWORD dw);
WINGDIAPI DWORD WINAPI GdiGetBatchLimit(void); WINGDIAPI DWORD WINAPI GdiGetBatchLimit(void);
#if(WINVER >= 0x0400) #if(WINVER >= 0x0400)
#define ICM_OFF 1 #define ICM_OFF 1
#define ICM_ON 2 #define ICM_ON 2
#define ICM_QUERY 3 #define ICM_QUERY 3
#define ICM_DONE_OUTSIDEDC 4 #define ICM_DONE_OUTSIDEDC 4
typedef int (CALLBACK* ICMENUMPROCA)(LPSTR, LPARAM); typedef int (CALLBACK* ICMENUMPROCA)(LPSTR, LPARAM);
typedef int (CALLBACK* ICMENUMPROCW)(LPWSTR, LPARAM); typedef int (CALLBACK* ICMENUMPROCW)(LPWSTR, LPARAM);
#ifdef UNICODE #ifdef UNICODE
#define ICMENUMPROC ICMENUMPROCW #define ICMENUMPROC ICMENUMPROCW
#else #else
#define ICMENUMPROC ICMENUMPROCA #define ICMENUMPROC ICMENUMPROCA
#endif // !UNICODE #endif // !UNICODE
WINGDIAPI int WINAPI SetICMMode( __in HDC hdc, __in int mode); WINGDIAPI int WINAPI SetICMMode( _In_ HDC hdc, _In_ int mode);
WINGDIAPI BOOL WINAPI CheckColorsInGamut( __in HDC hdc, WINGDIAPI BOOL WINAPI CheckColorsInGamut( _In_ HDC hdc,
__in_ecount(nCount) LPRGBTRI _In_reads_(nCount) LPRGBTRIP
PLE lpRGBTriple, LE lpRGBTriple,
__out_bcount(nCount) LPVOID _Out_writes_bytes_(nCount) L
dlpBuffer, PVOID dlpBuffer,
__in DWORD nCount); _In_ DWORD nCount);
WINGDIAPI HCOLORSPACE WINAPI GetColorSpace( __in HDC hdc); WINGDIAPI HCOLORSPACE WINAPI GetColorSpace( _In_ HDC hdc);
WINGDIAPI BOOL WINAPI GetLogColorSpaceA( __in HCOLORSPACE hColorSpace, WINGDIAPI BOOL WINAPI GetLogColorSpaceA( _In_ HCOLORSPACE hColorSpace,
__out_bcount(nSize) LPLOGCOLORSP _Out_writes_bytes_(nSize) LPLOGC
ACEA lpBuffer, OLORSPACEA lpBuffer,
__in DWORD nSize); _In_ DWORD nSize);
WINGDIAPI BOOL WINAPI GetLogColorSpaceW( __in HCOLORSPACE hColorSpace, WINGDIAPI BOOL WINAPI GetLogColorSpaceW( _In_ HCOLORSPACE hColorSpace,
__out_bcount(nSize) LPLOGCOLORSP _Out_writes_bytes_(nSize) LPLOGC
ACEW lpBuffer, OLORSPACEW lpBuffer,
__in DWORD nSize); _In_ DWORD nSize);
#ifdef UNICODE #ifdef UNICODE
#define GetLogColorSpace GetLogColorSpaceW #define GetLogColorSpace GetLogColorSpaceW
#else #else
#define GetLogColorSpace GetLogColorSpaceA #define GetLogColorSpace GetLogColorSpaceA
#endif // !UNICODE #endif // !UNICODE
WINGDIAPI HCOLORSPACE WINAPI CreateColorSpaceA( __in LPLOGCOLORSPACEA lplcs); WINGDIAPI HCOLORSPACE WINAPI CreateColorSpaceA( _In_ LPLOGCOLORSPACEA lplcs);
WINGDIAPI HCOLORSPACE WINAPI CreateColorSpaceW( __in LPLOGCOLORSPACEW lplcs); WINGDIAPI HCOLORSPACE WINAPI CreateColorSpaceW( _In_ LPLOGCOLORSPACEW lplcs);
#ifdef UNICODE #ifdef UNICODE
#define CreateColorSpace CreateColorSpaceW #define CreateColorSpace CreateColorSpaceW
#else #else
#define CreateColorSpace CreateColorSpaceA #define CreateColorSpace CreateColorSpaceA
#endif // !UNICODE #endif // !UNICODE
WINGDIAPI HCOLORSPACE WINAPI SetColorSpace( __in HDC hdc, __in HCOLORSPACE hcs); WINGDIAPI HCOLORSPACE WINAPI SetColorSpace( _In_ HDC hdc, _In_ HCOLORSPACE hcs);
WINGDIAPI BOOL WINAPI DeleteColorSpace( __in HCOLORSPACE hcs); WINGDIAPI BOOL WINAPI DeleteColorSpace( _In_ HCOLORSPACE hcs);
WINGDIAPI BOOL WINAPI GetICMProfileA( __in HDC hdc, WINGDIAPI BOOL WINAPI GetICMProfileA( _In_ HDC hdc,
__inout LPDWORD pBufSize, _Inout_ LPDWORD pBufSize,
__out_ecount_opt(*pBufSize) LPST _Out_writes_opt_(*pBufSize) LPST
R pszFilename); R pszFilename);
WINGDIAPI BOOL WINAPI GetICMProfileW( __in HDC hdc, WINGDIAPI BOOL WINAPI GetICMProfileW( _In_ HDC hdc,
__inout LPDWORD pBufSize, _Inout_ LPDWORD pBufSize,
__out_ecount_opt(*pBufSize) LPWS _Out_writes_opt_(*pBufSize) LPWS
TR pszFilename); TR pszFilename);
#ifdef UNICODE #ifdef UNICODE
#define GetICMProfile GetICMProfileW #define GetICMProfile GetICMProfileW
#else #else
#define GetICMProfile GetICMProfileA #define GetICMProfile GetICMProfileA
#endif // !UNICODE #endif // !UNICODE
WINGDIAPI BOOL WINAPI SetICMProfileA( __in HDC hdc, __in LPSTR lpFileName WINGDIAPI BOOL WINAPI SetICMProfileA( _In_ HDC hdc, _In_ LPSTR lpFileName
); );
WINGDIAPI BOOL WINAPI SetICMProfileW( __in HDC hdc, __in LPWSTR lpFileNam WINGDIAPI BOOL WINAPI SetICMProfileW( _In_ HDC hdc, _In_ LPWSTR lpFileNam
e); e);
#ifdef UNICODE #ifdef UNICODE
#define SetICMProfile SetICMProfileW #define SetICMProfile SetICMProfileW
#else #else
#define SetICMProfile SetICMProfileA #define SetICMProfile SetICMProfileA
#endif // !UNICODE #endif // !UNICODE
WINGDIAPI BOOL WINAPI GetDeviceGammaRamp( __in HDC hdc, __out_bcount(3*25 WINGDIAPI BOOL WINAPI GetDeviceGammaRamp( _In_ HDC hdc, _Out_writes_bytes
6*2) LPVOID lpRamp); _(3*256*2) LPVOID lpRamp);
WINGDIAPI BOOL WINAPI SetDeviceGammaRamp( __in HDC hdc, __in_bcount(3*256 WINGDIAPI BOOL WINAPI SetDeviceGammaRamp( _In_ HDC hdc, _In_reads_bytes_(
*2) LPVOID lpRamp); 3*256*2) LPVOID lpRamp);
WINGDIAPI BOOL WINAPI ColorMatchToTarget( __in HDC hdc, __in HDC hdcTarge WINGDIAPI BOOL WINAPI ColorMatchToTarget( _In_ HDC hdc, _In_ HDC hdcTarge
t, __in DWORD action); t, _In_ DWORD action);
WINGDIAPI int WINAPI EnumICMProfilesA( __in HDC hdc, __in ICMENUMPROCA p WINGDIAPI int WINAPI EnumICMProfilesA( _In_ HDC hdc, _In_ ICMENUMPROCA p
roc, __in_opt LPARAM param); roc, _In_opt_ LPARAM param);
WINGDIAPI int WINAPI EnumICMProfilesW( __in HDC hdc, __in ICMENUMPROCW p WINGDIAPI int WINAPI EnumICMProfilesW( _In_ HDC hdc, _In_ ICMENUMPROCW p
roc, __in_opt LPARAM param); roc, _In_opt_ LPARAM param);
#ifdef UNICODE #ifdef UNICODE
#define EnumICMProfiles EnumICMProfilesW #define EnumICMProfiles EnumICMProfilesW
#else #else
#define EnumICMProfiles EnumICMProfilesA #define EnumICMProfiles EnumICMProfilesA
#endif // !UNICODE #endif // !UNICODE
// The Win95 update API UpdateICMRegKeyA is deprecated to set last error to ERRO R_NOT_SUPPORTED and return FALSE // The Win95 update API UpdateICMRegKeyA is deprecated to set last error to ERRO R_NOT_SUPPORTED and return FALSE
WINGDIAPI BOOL WINAPI UpdateICMRegKeyA( __reserved DWORD reserved, __in L PSTR lpszCMID, __in LPSTR lpszFileName, __in UINT command); WINGDIAPI BOOL WINAPI UpdateICMRegKeyA( _Reserved_ DWORD reserved, _In_ L PSTR lpszCMID, _In_ LPSTR lpszFileName, _In_ UINT command);
// The Win95 update API UpdateICMRegKeyW is deprecated to set last error to ERRO R_NOT_SUPPORTED and return FALSE // The Win95 update API UpdateICMRegKeyW is deprecated to set last error to ERRO R_NOT_SUPPORTED and return FALSE
WINGDIAPI BOOL WINAPI UpdateICMRegKeyW( __reserved DWORD reserved, __in L PWSTR lpszCMID, __in LPWSTR lpszFileName, __in UINT command); WINGDIAPI BOOL WINAPI UpdateICMRegKeyW( _Reserved_ DWORD reserved, _In_ L PWSTR lpszCMID, _In_ LPWSTR lpszFileName, _In_ UINT command);
#ifdef UNICODE #ifdef UNICODE
#define UpdateICMRegKey UpdateICMRegKeyW #define UpdateICMRegKey UpdateICMRegKeyW
#else #else
#define UpdateICMRegKey UpdateICMRegKeyA #define UpdateICMRegKey UpdateICMRegKeyA
#endif // !UNICODE #endif // !UNICODE
#pragma deprecated (UpdateICMRegKeyW) #pragma deprecated (UpdateICMRegKeyW)
#pragma deprecated (UpdateICMRegKeyA) #pragma deprecated (UpdateICMRegKeyA)
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
#if (WINVER >= 0x0500) #if (WINVER >= 0x0500)
WINGDIAPI BOOL WINAPI ColorCorrectPalette( __in HDC hdc, __in HPALETTE hP al, __in DWORD deFirst, __in DWORD num); WINGDIAPI BOOL WINAPI ColorCorrectPalette( _In_ HDC hdc, _In_ HPALETTE hP al, _In_ DWORD deFirst, _In_ DWORD num);
#endif #endif
#ifndef NOMETAFILE #ifndef NOMETAFILE
// Enhanced metafile constants. // Enhanced metafile constants.
#ifndef _MAC #ifndef _MAC
#define ENHMETA_SIGNATURE 0x464D4520 #define ENHMETA_SIGNATURE 0x464D4520
#else #else
#define ENHMETA_SIGNATURE 0x20454D46 #define ENHMETA_SIGNATURE 0x20454D46
skipping to change at line 5730 skipping to change at line 6173
HDC hdc; HDC hdc;
UINT uiFlags; UINT uiFlags;
} WGLSWAP, *PWGLSWAP, FAR *LPWGLSWAP; } WGLSWAP, *PWGLSWAP, FAR *LPWGLSWAP;
#define WGL_SWAPMULTIPLE_MAX 16 #define WGL_SWAPMULTIPLE_MAX 16
WINGDIAPI DWORD WINAPI wglSwapMultipleBuffers(UINT, CONST WGLSWAP *); WINGDIAPI DWORD WINAPI wglSwapMultipleBuffers(UINT, CONST WGLSWAP *);
#endif // (WINVER >= 0x0500) #endif // (WINVER >= 0x0500)
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#endif /* NOGDI */ #endif /* NOGDI */
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
#if _MSC_VER >= 1200 #if _MSC_VER >= 1200
#pragma warning(pop) #pragma warning(pop)
#endif #endif
#endif /* _WINGDI_ */ #endif /* _WINGDI_ */
 End of changes. 233 change blocks. 
798 lines changed or deleted 1233 lines changed or added

This html diff was produced by rfcdiff 1.41.