wininet: Certain options of InternetQueryOption can take a NULL handle, so don't...
[wine] / include / gdiplustypes.h
1 /*
2  * Copyright (C) 2007 Google (Evan Stade)
3  *
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.
8  *
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.
13  *
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
17  */
18
19 #ifndef _GDIPLUSTYPES_H
20 #define _GDIPLUSTYPES_H
21
22 typedef float REAL;
23
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
46 };
47
48 #ifdef __cplusplus
49
50 class PointF
51 {
52 public:
53    PointF()
54    {
55        X = Y = 0.0f;
56    }
57
58    PointF(IN const PointF &pt)
59    {
60        X = pt.X;
61        Y = pt.Y;
62    }
63
64    /* FIXME: missing constructor that takes a SizeF */
65
66    PointF(IN REAL x, IN REAL y)
67    {
68        X = x;
69        Y = y;
70    }
71
72    PointF operator+(IN const PointF& pt) const
73    {
74        return PointF(X + pt.X, Y + pt.Y);
75    }
76
77    PointF operator-(IN const PointF& pt) const
78    {
79        return PointF(X - pt.X, Y - pt.Y);
80    }
81
82    BOOL Equals(IN const PointF& pt)
83    {
84        return (X == pt.X) && (Y == pt.Y);
85    }
86
87 public:
88     REAL X;
89     REAL Y;
90 };
91
92 class PathData
93 {
94 public:
95     PathData()
96     {
97         Count = 0;
98         Points = NULL;
99         Types = NULL;
100     }
101
102     ~PathData()
103     {
104         if (Points != NULL)
105         {
106             delete Points;
107         }
108
109         if (Types != NULL)
110         {
111             delete Types;
112         }
113     }
114
115 private:
116     PathData(const PathData &);
117     PathData& operator=(const PathData &);
118
119 public:
120     INT Count;
121     PointF* Points;
122     BYTE* Types;
123 };
124
125 /* FIXME: missing the methods. */
126 class RectF
127 {
128 public:
129     REAL X;
130     REAL Y;
131     REAL Width;
132     REAL Height;
133 };
134
135 #else /* end of c++ typedefs */
136
137 typedef struct PointF
138 {
139     REAL X;
140     REAL Y;
141 } PointF;
142
143 typedef struct PathData
144 {
145     INT Count;
146     PointF* Points;
147     BYTE* Types;
148 } PathData;
149
150 typedef struct RectF
151 {
152     REAL X;
153     REAL Y;
154     REAL Width;
155     REAL Height;
156 } RectF;
157
158 typedef enum Status Status;
159
160 #endif /* end of c typedefs */
161
162 #endif