user.h (5931B)
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 109typedef LONG FXPT16DOT16, FAR *LPFXPT16DOT16; 110typedef LONG FXPT2DOT30, FAR *LPFXPT2DOT30; 111 112typedef struct tagCIEXYZ 113{ 114 FXPT2DOT30 ciexyzX; 115 FXPT2DOT30 ciexyzY; 116 FXPT2DOT30 ciexyzZ; 117} CIEXYZ; 118 119typedef CIEXYZ FAR* LPCIEXYZ; 120 121typedef struct tagICEXYZTRIPLE 122{ 123 CIEXYZ ciexyzRed; 124 CIEXYZ ciexyzGreen; 125 CIEXYZ ciexyzBlue; 126} CIEXYZTRIPLE; 127 128typedef CIEXYZTRIPLE FAR* LPCIEXYZTRIPLE; 129 130typedef 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 141typedef struct tagRGBTRIPLE 142{ 143 BYTE rgbtBlue; 144 BYTE rgbtGreen; 145 BYTE rgbtRed; 146} RGBTRIPLE, *PRGBTRIPLE, NEAR *NPRGBTRIPLE, FAR *LPRGBTRIPLE; 147 148typedef struct tagRGBQUAD 149{ 150 BYTE rgbBlue; 151 BYTE rgbGreen; 152 BYTE rgbRed; 153 BYTE rgbReserved; 154} RGBQUAD; 155 156typedef 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 168typedef 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 183typedef struct tagBITMAPINFO 184{ 185 BITMAPINFOHEADER bmiHeader; 186 RGBQUAD bmiColors[1]; 187} BITMAPINFO, FAR *LPBITMAPINFO, *PBITMAPINFO; 188 189typedef 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 207typedef struct tagBITMAPCOREHEADER 208{ 209 DWORD bcSize; 210 WORD bcWidth; 211 WORD bcHeight; 212 WORD bcPlanes; 213 WORD bcBitCount; 214} BITMAPCOREHEADER, FAR *LPBITMAPCOREHEADER, *PBITMAPCOREHEADER; 215 216typedef 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 240typedef 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 268typedef struct tagBITMAPCOREINFO 269{ 270 BITMAPCOREHEADER bmciHeader; 271 RGBTRIPLE bmciColors[1]; 272} BITMAPCOREINFO, FAR *LPBITMAPCOREINFO, *PBITMAPCOREINFO; 273 274typedef 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 288extern "C" 289{ 290#endif 291 292#ifdef __cplusplus 293} 294#endif 295 296#endif /* WINPR_USER_H */