1 /** 2 * This file has no copyright assigned and is placed in the Public Domain. 3 * This file is part of the mingw-w64 runtime package. 4 * No warranty is given; refer to the file DISCLAIMER.PD within this package. 5 */ 6 #ifndef _INC_DCIDDI 7 #define _INC_DCIDDI 8 9 #ifdef __cplusplus 10 extern "C" { 11 #endif 12 13 #define DCICOMMAND 3075 14 #define DCI_VERSION 0x0100 15 16 #define DCICREATEPRIMARYSURFACE 1 17 #define DCICREATEOFFSCREENSURFACE 2 18 #define DCICREATEOVERLAYSURFACE 3 19 #define DCIENUMSURFACE 4 20 #define DCIESCAPE 5 21 22 #define DCI_OK 0 23 #define DCI_FAIL_GENERIC -1 24 #define DCI_FAIL_UNSUPPORTEDVERSION -2 25 #define DCI_FAIL_INVALIDSURFACE -3 26 #define DCI_FAIL_UNSUPPORTED -4 27 28 #define DCI_ERR_CURRENTLYNOTAVAIL -5 29 #define DCI_ERR_INVALIDRECT -6 30 #define DCI_ERR_UNSUPPORTEDFORMAT -7 31 #define DCI_ERR_UNSUPPORTEDMASK -8 32 #define DCI_ERR_TOOBIGHEIGHT -9 33 #define DCI_ERR_TOOBIGWIDTH -10 34 #define DCI_ERR_TOOBIGSIZE -11 35 #define DCI_ERR_OUTOFMEMORY -12 36 #define DCI_ERR_INVALIDPOSITION -13 37 #define DCI_ERR_INVALIDSTRETCH -14 38 #define DCI_ERR_INVALIDCLIPLIST -15 39 #define DCI_ERR_SURFACEISOBSCURED -16 40 #define DCI_ERR_XALIGN -17 41 #define DCI_ERR_YALIGN -18 42 #define DCI_ERR_XYALIGN -19 43 #define DCI_ERR_WIDTHALIGN -20 44 #define DCI_ERR_HEIGHTALIGN -21 45 46 #define DCI_STATUS_POINTERCHANGED 1 47 #define DCI_STATUS_STRIDECHANGED 2 48 #define DCI_STATUS_FORMATCHANGED 4 49 #define DCI_STATUS_SURFACEINFOCHANGED 8 50 #define DCI_STATUS_CHROMAKEYCHANGED 16 51 #define DCI_STATUS_WASSTILLDRAWING 32 52 53 #define DCI_SUCCESS(error) (((DCIRVAL)error) >= 0) 54 55 #define DCI_SURFACE_TYPE 0x0000000F 56 #define DCI_PRIMARY 0x00000000 57 #define DCI_OFFSCREEN 0x00000001 58 #define DCI_OVERLAY 0x00000002 59 #define DCI_VISIBLE 0x00000010 60 #define DCI_CHROMAKEY 0x00000020 61 #define DCI_1632_ACCESS 0x00000040 62 #define DCI_DWORDSIZE 0x00000080 63 #define DCI_DWORDALIGN 0x00000100 64 #define DCI_WRITEONLY 0x00000200 65 #define DCI_ASYNC 0x00000400 66 67 #define DCI_CAN_STRETCHX 0x00001000 68 #define DCI_CAN_STRETCHY 0x00002000 69 #define DCI_CAN_STRETCHXY (DCI_CAN_STRETCHX | DCI_CAN_STRETCHY) 70 71 #define DCI_CAN_STRETCHXN 0x00004000 72 #define DCI_CAN_STRETCHYN 0x00008000 73 #define DCI_CAN_STRETCHXYN (DCI_CAN_STRETCHXN | DCI_CAN_STRETCHYN) 74 75 #define DCI_CANOVERLAY 0x00010000 76 77 typedef int DCIRVAL; 78 79 typedef struct _DCICMD { 80 DWORD dwCommand; 81 DWORD dwParam1; 82 DWORD dwParam2; 83 DWORD dwVersion; 84 DWORD dwReserved; 85 } DCICMD; 86 87 typedef struct _DCICREATEINPUT { 88 DCICMD cmd; 89 DWORD dwCompression; 90 DWORD dwMask[3]; 91 DWORD dwWidth; 92 DWORD dwHeight; 93 DWORD dwDCICaps; 94 DWORD dwBitCount; 95 LPVOID lpSurface; 96 } DCICREATEINPUT,*LPDCICREATEINPUT; 97 98 typedef struct _DCISURFACEINFO { 99 DWORD dwSize; 100 DWORD dwDCICaps; 101 DWORD dwCompression; 102 DWORD dwMask[3]; 103 DWORD dwWidth; 104 DWORD dwHeight; 105 LONG lStride; 106 DWORD dwBitCount; 107 ULONG_PTR dwOffSurface; 108 WORD wSelSurface; 109 WORD wReserved; 110 DWORD dwReserved1; 111 DWORD dwReserved2; 112 DWORD dwReserved3; 113 DCIRVAL (CALLBACK *BeginAccess) (LPVOID,LPRECT); 114 void (CALLBACK *EndAccess) (LPVOID); 115 void (CALLBACK *DestroySurface) (LPVOID); 116 } DCISURFACEINFO,*LPDCISURFACEINFO; 117 118 typedef void (*ENUM_CALLBACK)(LPDCISURFACEINFO lpSurfaceInfo,LPVOID lpContext); 119 120 typedef struct _DCIENUMINPUT { 121 DCICMD cmd; 122 RECT rSrc; 123 RECT rDst; 124 void (CALLBACK *EnumCallback)(LPDCISURFACEINFO,LPVOID); 125 LPVOID lpContext; 126 } DCIENUMINPUT,*LPDCIENUMINPUT; 127 128 typedef DCISURFACEINFO DCIPRIMARY,*LPDCIPRIMARY; 129 130 typedef struct _DCIOFFSCREEN { 131 DCISURFACEINFO dciInfo; 132 DCIRVAL (CALLBACK *Draw) (LPVOID); 133 DCIRVAL (CALLBACK *SetClipList) (LPVOID,LPRGNDATA); 134 DCIRVAL (CALLBACK *SetDestination) (LPVOID,LPRECT,LPRECT); 135 } DCIOFFSCREEN,*LPDCIOFFSCREEN; 136 137 typedef struct _DCIOVERLAY { 138 DCISURFACEINFO dciInfo; 139 DWORD dwChromakeyValue; 140 DWORD dwChromakeyMask; 141 } DCIOVERLAY,*LPDCIOVERLAY; 142 143 #ifndef YVU9 144 #define YVU9 mmioFOURCC('Y','V','U','9') 145 #endif 146 #ifndef Y411 147 #define Y411 mmioFOURCC('Y','4','1','1') 148 #endif 149 #ifndef YUY2 150 #define YUY2 mmioFOURCC('Y','U','Y','2') 151 #endif 152 #ifndef YVYU 153 #define YVYU mmioFOURCC('Y','V','Y','U') 154 #endif 155 #ifndef UYVY 156 #define UYVY mmioFOURCC('U','Y','V','Y') 157 #endif 158 #ifndef Y211 159 #define Y211 mmioFOURCC('Y','2','1','1') 160 #endif 161 162 #ifdef __cplusplus 163 } 164 #endif 165 #endif 166