d3dx8: Implement the C++ stuff of the D3DXMATRIX structure.
[wine] / include / gdiplusimaging.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 _GDIPLUSIMAGING_H
20 #define _GDIPLUSIMAGING_H
21
22 enum ImageLockMode
23 {
24     ImageLockModeRead           = 1,
25     ImageLockModeWrite          = 2,
26     ImageLockModeUserInputBuf   = 4
27 };
28
29 #ifdef __cplusplus
30 class EncoderParameter
31 {
32 public:
33     GUID    Guid;
34     ULONG   NumberOfValues;
35     ULONG   Type;
36     VOID*   Value;
37 };
38
39 class EncoderParameters
40 {
41 public:
42     UINT Count;
43     EncoderParameter Parameter[1];
44 };
45
46 class BitmapData
47 {
48 public:
49     UINT Width;
50     UINT Height;
51     INT Stride;
52     PixelFormat PixelFormat;
53     VOID* Scan0;
54     UINT_PTR Reserved;
55 };
56
57 class ImageItemData
58 {
59 public:
60     UINT  Size;
61     UINT  Position;
62     VOID* Desc;
63     UINT  DescSize;
64     VOID* Data;
65     UINT  DataSize;
66     UINT  Cookie;
67 };
68
69 #else /* end of c++ typedefs */
70
71 typedef enum ImageLockMode ImageLockMode;
72
73 typedef struct EncoderParameter
74 {
75     GUID Guid;
76     ULONG NumberOfValues;
77     ULONG Type;
78     VOID* Value;
79 } EncoderParameter;
80
81 typedef struct EncoderParameters
82 {
83     UINT Count;
84     EncoderParameter Parameter[1];
85 } EncoderParameters;
86
87 typedef struct BitmapData
88 {
89     UINT Width;
90     UINT Height;
91     INT Stride;
92     PixelFormat PixelFormat;
93     VOID* Scan0;
94     UINT_PTR Reserved; /* undocumented: stores the lock mode */
95 } BitmapData;
96
97 typedef struct ImageItemData
98 {
99     UINT  Size;
100     UINT  Position;
101     VOID* Desc;
102     UINT  DescSize;
103     VOID* Data;
104     UINT  DataSize;
105     UINT  Cookie;
106 } ImageItemData;
107
108 #endif /* end of c typedefs */
109
110 #endif /* _GDIPLUSIMAGING_H */