comdlg32: CDM_GETSPEC and CDM_GETFILEPATH should preserve double quotes in file lists.
[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 ImageCodecInfo
47 {
48 public:
49     CLSID Clsid;
50     GUID  FormatID;
51     const WCHAR* CodecName;
52     const WCHAR* DllName;
53     const WCHAR* FormatDescription;
54     const WCHAR* FilenameExtension;
55     const WCHAR* MimeType;
56     DWORD Flags;
57     DWORD Version;
58     DWORD SigCount;
59     DWORD SigSize;
60     const BYTE* SigPattern;
61     const BYTE* SigMask;
62 };
63
64 class BitmapData
65 {
66 public:
67     UINT Width;
68     UINT Height;
69     INT Stride;
70     PixelFormat PixelFormat;
71     VOID* Scan0;
72     UINT_PTR Reserved;
73 };
74
75 class ImageItemData
76 {
77 public:
78     UINT  Size;
79     UINT  Position;
80     VOID* Desc;
81     UINT  DescSize;
82     VOID* Data;
83     UINT  DataSize;
84     UINT  Cookie;
85 };
86
87 #else /* end of c++ typedefs */
88
89 typedef enum ImageLockMode ImageLockMode;
90
91 typedef struct EncoderParameter
92 {
93     GUID Guid;
94     ULONG NumberOfValues;
95     ULONG Type;
96     VOID* Value;
97 } EncoderParameter;
98
99 typedef struct EncoderParameters
100 {
101     UINT Count;
102     EncoderParameter Parameter[1];
103 } EncoderParameters;
104
105 typedef struct ImageCodecInfo
106 {
107     CLSID Clsid;
108     GUID  FormatID;
109     const WCHAR* CodecName;
110     const WCHAR* DllName;
111     const WCHAR* FormatDescription;
112     const WCHAR* FilenameExtension;
113     const WCHAR* MimeType;
114     DWORD Flags;
115     DWORD Version;
116     DWORD SigCount;
117     DWORD SigSize;
118     const BYTE* SigPattern;
119     const BYTE* SigMask;
120 } ImageCodecInfo;
121
122 typedef struct BitmapData
123 {
124     UINT Width;
125     UINT Height;
126     INT Stride;
127     PixelFormat PixelFormat;
128     VOID* Scan0;
129     UINT_PTR Reserved; /* undocumented: stores the lock mode */
130 } BitmapData;
131
132 typedef struct ImageItemData
133 {
134     UINT  Size;
135     UINT  Position;
136     VOID* Desc;
137     UINT  DescSize;
138     VOID* Data;
139     UINT  DataSize;
140     UINT  Cookie;
141 } ImageItemData;
142
143 #endif /* end of c typedefs */
144
145 #endif /* _GDIPLUSIMAGING_H */