msi: Reference count the custom action data to avoid freeing the data by another...
[wine/gsoc_dplay.git] / include / gdiplustypes.h
blob581041205e54ec17f49778e6748ce0d1ecff1de5
1 /*
2 * Copyright (C) 2007 Google (Evan Stade)
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 #ifndef _GDIPLUSTYPES_H
20 #define _GDIPLUSTYPES_H
22 typedef float REAL;
24 enum Status{
25 Ok = 0,
26 GenericError = 1,
27 InvalidParameter = 2,
28 OutOfMemory = 3,
29 ObjectBusy = 4,
30 InsufficientBuffer = 5,
31 NotImplemented = 6,
32 Win32Error = 7,
33 WrongState = 8,
34 Aborted = 9,
35 FileNotFound = 10,
36 ValueOverflow = 11,
37 AccessDenied = 12,
38 UnknownImageFormat = 13,
39 FontFamilyNotFound = 14,
40 FontStyleNotFound = 15,
41 NotTrueTypeFont = 16,
42 UnsupportedGdiplusVersion = 17,
43 GdiplusNotInitialized = 18,
44 PropertyNotFound = 19,
45 PropertyNotSupported = 20
48 #ifdef __cplusplus
50 class PointF
52 public:
53 PointF()
55 X = Y = 0.0f;
58 PointF(IN const PointF &pt)
60 X = pt.X;
61 Y = pt.Y;
64 /* FIXME: missing constructor that takes a SizeF */
66 PointF(IN REAL x, IN REAL y)
68 X = x;
69 Y = y;
72 PointF operator+(IN const PointF& pt) const
74 return PointF(X + pt.X, Y + pt.Y);
77 PointF operator-(IN const PointF& pt) const
79 return PointF(X - pt.X, Y - pt.Y);
82 BOOL Equals(IN const PointF& pt)
84 return (X == pt.X) && (Y == pt.Y);
87 public:
88 REAL X;
89 REAL Y;
92 class PathData
94 public:
95 PathData()
97 Count = 0;
98 Points = NULL;
99 Types = NULL;
102 ~PathData()
104 if (Points != NULL)
106 delete Points;
109 if (Types != NULL)
111 delete Types;
115 private:
116 PathData(const PathData &);
117 PathData& operator=(const PathData &);
119 public:
120 INT Count;
121 PointF* Points;
122 BYTE* Types;
125 #else /* end of c++ typedefs */
127 typedef struct PointF
129 REAL X;
130 REAL Y;
131 } PointF;
133 typedef struct PathData
135 INT Count;
136 PointF* Points;
137 BYTE* Types;
138 } PathData;
140 typedef enum Status Status;
142 #endif /* end of c typedefs */
144 #endif