1 /** 2 * WinPR: Windows Portable Runtime 3 * User Environment 4 * 5 * Copyright 2014 Marc-Andre Moreau <marcandre.moreau@gmail.com> 6 * Copyright 2015 DI (FH) Martin Haimberger <martin.haimberger@thincast.com> 7 * 8 * Licensed under the Apache License, Version 2.0 (the "License"); 9 * you may not use this file except in compliance with the License. 10 * You may obtain a copy of the License at 11 * 12 * http://www.apache.org/licenses/LICENSE-2.0 13 * 14 * Unless required by applicable law or agreed to in writing, software 15 * distributed under the License is distributed on an "AS IS" BASIS, 16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 * See the License for the specific language governing permissions and 18 * limitations under the License. 19 */ 20 21 #ifndef WINPR_USER_H 22 #define WINPR_USER_H 23 24 #include <winpr/wtypes.h> 25 26 /** 27 * Standard Clipboard Formats 28 */ 29 30 #ifndef _WIN32 31 32 #define MB_OK 0x00000000L 33 #define MB_OKCANCEL 0x00000001L 34 #define MB_ABORTRETRYIGNORE 0x00000002L 35 #define MB_YESNOCANCEL 0x00000003L 36 #define MB_YESNO 0x00000004L 37 #define MB_RETRYCANCEL 0x00000005L 38 #define MB_CANCELTRYCONTINUE 0x00000006L 39 40 #define IDOK 1 41 #define IDCANCEL 2 42 #define IDABORT 3 43 #define IDRETRY 4 44 #define IDIGNORE 5 45 #define IDYES 6 46 #define IDNO 7 47 #define IDTRYAGAIN 10 48 #define IDCONTINUE 11 49 #define IDTIMEOUT 32000 50 #define IDASYNC 32001 51 52 #define CF_RAW 0 53 #define CF_TEXT 1 54 #define CF_BITMAP 2 55 #define CF_METAFILEPICT 3 56 #define CF_SYLK 4 57 #define CF_DIF 5 58 #define CF_TIFF 6 59 #define CF_OEMTEXT 7 60 #define CF_DIB 8 61 #define CF_PALETTE 9 62 #define CF_PENDATA 10 63 #define CF_RIFF 11 64 #define CF_WAVE 12 65 #define CF_UNICODETEXT 13 66 #define CF_ENHMETAFILE 14 67 #define CF_HDROP 15 68 #define CF_LOCALE 16 69 #define CF_DIBV5 17 70 #define CF_MAX 18 71 72 #define CF_OWNERDISPLAY 0x0080 73 #define CF_DSPTEXT 0x0081 74 #define CF_DSPBITMAP 0x0082 75 #define CF_DSPMETAFILEPICT 0x0083 76 #define CF_DSPENHMETAFILE 0x008E 77 78 #define CF_PRIVATEFIRST 0x0200 79 #define CF_PRIVATELAST 0x02FF 80 81 #define CF_GDIOBJFIRST 0x0300 82 #define CF_GDIOBJLAST 0x03FF 83 84 /* Windows Metafile Picture Format */ 85 86 #define MM_TEXT 1 87 #define MM_LOMETRIC 2 88 #define MM_HIMETRIC 3 89 #define MM_LOENGLISH 4 90 #define MM_HIENGLISH 5 91 #define MM_TWIPS 6 92 #define MM_ISOTROPIC 7 93 #define MM_ANISOTROPIC 8 94 95 #define MM_MIN MM_TEXT 96 #define MM_MAX MM_ANISOTROPIC 97 #define MM_MAX_FIXEDSCALE MM_TWIPS 98 99 #endif 100 101 /** 102 * Bitmap Definitions 103 */ 104 105 #if !defined(_WIN32) 106 107 #pragma pack(push, 1) 108 109 typedef LONG FXPT16DOT16, FAR *LPFXPT16DOT16; 110 typedef LONG FXPT2DOT30, FAR *LPFXPT2DOT30; 111 112 typedef struct tagCIEXYZ 113 { 114 FXPT2DOT30 ciexyzX; 115 FXPT2DOT30 ciexyzY; 116 FXPT2DOT30 ciexyzZ; 117 } CIEXYZ; 118 119 typedef CIEXYZ FAR* LPCIEXYZ; 120 121 typedef struct tagICEXYZTRIPLE 122 { 123 CIEXYZ ciexyzRed; 124 CIEXYZ ciexyzGreen; 125 CIEXYZ ciexyzBlue; 126 } CIEXYZTRIPLE; 127 128 typedef CIEXYZTRIPLE FAR* LPCIEXYZTRIPLE; 129 130 typedef struct tagBITMAP 131 { 132 LONG bmType; 133 LONG bmWidth; 134 LONG bmHeight; 135 LONG bmWidthBytes; 136 WORD bmPlanes; 137 WORD bmBitsPixel; 138 LPVOID bmBits; 139 } BITMAP, *PBITMAP, NEAR *NPBITMAP, FAR *LPBITMAP; 140 141 typedef struct tagRGBTRIPLE 142 { 143 BYTE rgbtBlue; 144 BYTE rgbtGreen; 145 BYTE rgbtRed; 146 } RGBTRIPLE, *PRGBTRIPLE, NEAR *NPRGBTRIPLE, FAR *LPRGBTRIPLE; 147 148 typedef struct tagRGBQUAD 149 { 150 BYTE rgbBlue; 151 BYTE rgbGreen; 152 BYTE rgbRed; 153 BYTE rgbReserved; 154 } RGBQUAD; 155 156 typedef RGBQUAD FAR* LPRGBQUAD; 157 158 #define BI_RGB 0 159 #define BI_RLE8 1 160 #define BI_RLE4 2 161 #define BI_BITFIELDS 3 162 #define BI_JPEG 4 163 #define BI_PNG 5 164 165 #define PROFILE_LINKED 'LINK' 166 #define PROFILE_EMBEDDED 'MBED' 167 168 typedef struct tagBITMAPINFOHEADER 169 { 170 DWORD biSize; 171 LONG biWidth; 172 LONG biHeight; 173 WORD biPlanes; 174 WORD biBitCount; 175 DWORD biCompression; 176 DWORD biSizeImage; 177 LONG biXPelsPerMeter; 178 LONG biYPelsPerMeter; 179 DWORD biClrUsed; 180 DWORD biClrImportant; 181 } BITMAPINFOHEADER, FAR *LPBITMAPINFOHEADER, *PBITMAPINFOHEADER; 182 183 typedef struct tagBITMAPINFO 184 { 185 BITMAPINFOHEADER bmiHeader; 186 RGBQUAD bmiColors[1]; 187 } BITMAPINFO, FAR *LPBITMAPINFO, *PBITMAPINFO; 188 189 typedef enum _ORIENTATION_PREFERENCE 190 { 191 ORIENTATION_PREFERENCE_NONE = 0x0, 192 ORIENTATION_PREFERENCE_LANDSCAPE = 0x1, 193 194 ORIENTATION_PREFERENCE_PORTRAIT = 0x2, 195 ORIENTATION_PREFERENCE_LANDSCAPE_FLIPPED = 0x4, 196 ORIENTATION_PREFERENCE_PORTRAIT_FLIPPED = 0x8 197 } ORIENTATION_PREFERENCE; 198 199 #pragma pack(pop) 200 201 #endif 202 203 #if !defined(_WIN32) || defined(_UWP) 204 205 #pragma pack(push, 1) 206 207 typedef struct tagBITMAPCOREHEADER 208 { 209 DWORD bcSize; 210 WORD bcWidth; 211 WORD bcHeight; 212 WORD bcPlanes; 213 WORD bcBitCount; 214 } BITMAPCOREHEADER, FAR *LPBITMAPCOREHEADER, *PBITMAPCOREHEADER; 215 216 typedef struct 217 { 218 DWORD bV4Size; 219 LONG bV4Width; 220 LONG bV4Height; 221 WORD bV4Planes; 222 WORD bV4BitCount; 223 DWORD bV4V4Compression; 224 DWORD bV4SizeImage; 225 LONG bV4XPelsPerMeter; 226 LONG bV4YPelsPerMeter; 227 DWORD bV4ClrUsed; 228 DWORD bV4ClrImportant; 229 DWORD bV4RedMask; 230 DWORD bV4GreenMask; 231 DWORD bV4BlueMask; 232 DWORD bV4AlphaMask; 233 DWORD bV4CSType; 234 CIEXYZTRIPLE bV4Endpoints; 235 DWORD bV4GammaRed; 236 DWORD bV4GammaGreen; 237 DWORD bV4GammaBlue; 238 } BITMAPV4HEADER, FAR *LPBITMAPV4HEADER, *PBITMAPV4HEADER; 239 240 typedef struct 241 { 242 DWORD bV5Size; 243 LONG bV5Width; 244 LONG bV5Height; 245 WORD bV5Planes; 246 WORD bV5BitCount; 247 DWORD bV5Compression; 248 DWORD bV5SizeImage; 249 LONG bV5XPelsPerMeter; 250 LONG bV5YPelsPerMeter; 251 DWORD bV5ClrUsed; 252 DWORD bV5ClrImportant; 253 DWORD bV5RedMask; 254 DWORD bV5GreenMask; 255 DWORD bV5BlueMask; 256 DWORD bV5AlphaMask; 257 DWORD bV5CSType; 258 CIEXYZTRIPLE bV5Endpoints; 259 DWORD bV5GammaRed; 260 DWORD bV5GammaGreen; 261 DWORD bV5GammaBlue; 262 DWORD bV5Intent; 263 DWORD bV5ProfileData; 264 DWORD bV5ProfileSize; 265 DWORD bV5Reserved; 266 } BITMAPV5HEADER, FAR *LPBITMAPV5HEADER, *PBITMAPV5HEADER; 267 268 typedef struct tagBITMAPCOREINFO 269 { 270 BITMAPCOREHEADER bmciHeader; 271 RGBTRIPLE bmciColors[1]; 272 } BITMAPCOREINFO, FAR *LPBITMAPCOREINFO, *PBITMAPCOREINFO; 273 274 typedef struct tagBITMAPFILEHEADER 275 { 276 WORD bfType; 277 DWORD bfSize; 278 WORD bfReserved1; 279 WORD bfReserved2; 280 DWORD bfOffBits; 281 } BITMAPFILEHEADER, FAR *LPBITMAPFILEHEADER, *PBITMAPFILEHEADER; 282 283 #pragma pack(pop) 284 285 #endif 286 287 #ifdef __cplusplus 288 extern "C" 289 { 290 #endif 291 292 #ifdef __cplusplus 293 } 294 #endif 295 296 #endif /* WINPR_USER_H */ 297