1 2 typedef 3 ULONG 4 (__fastcall 5 *PFN_DOROP)(ULONG D, ULONG S, ULONG P); 6 7 extern const PFN_DOROP gapfnRop[256]; 8 9 #define ROP_0(D,S,P) 0 /* BLACKNESS */ 10 #define ROP_DPSoon(D,S,P) (~((D)|((P)|(S)))) 11 #define ROP_DPSona(D,S,P) ((D)&(~((P)|(S)))) 12 #define ROP_PSon(D,S,P) (~((P)|(S))) 13 #define ROP_SDPona(D,S,P) ((S)&(~((D)|(P)))) 14 #define ROP_DPon(D,S,P) (~((D)|(P))) 15 #define ROP_PDSxnon(D,S,P) (~((P)|(~((D)^(S))))) 16 #define ROP_PDSaon(D,S,P) (~((P)|((D)&(S)))) 17 #define ROP_SDPnaa(D,S,P) ((S)&((D)&(~(P)))) 18 #define ROP_PDSxon(D,S,P) (~((P)|((D)^(S)))) 19 #define ROP_DPna(D,S,P) ((D)&(~(P))) 20 #define ROP_PSDnaon(D,S,P) (~((P)|((S)&(~(D))))) 21 #define ROP_SPna(D,S,P) ((S)&(~(P))) 22 #define ROP_PDSnaon(D,S,P) (~((P)|((D)&(~(S))))) 23 #define ROP_PDSonon(D,S,P) (~((P)|(~((D)|(S))))) 24 #define ROP_Pn(D,S,P) (~(P)) 25 #define ROP_PDSona(D,S,P) ((P)&(~((D)|(S)))) 26 #define ROP_DSon(D,S,P) (~((D)|(S))) /* NOTSRCERASE */ 27 #define ROP_SDPxnon(D,S,P) (~((S)|(~((D)^(P))))) 28 #define ROP_SDPaon(D,S,P) (~((S)|((D)&(P)))) 29 #define ROP_DPSxnon(D,S,P) (~((D)|(~((P)^(S))))) 30 #define ROP_DPSaon(D,S,P) (~((D)|((P)&(S)))) 31 #define ROP_PSDPSanaxx(D,S,P) ((P)^((S)^((D)&(~((P)&(S)))))) 32 #define ROP_SSPxDSxaxn(D,S,P) (~((S)^(((S)^(P))&((D)^(S))))) 33 #define ROP_SPxPDxa(D,S,P) (((S)^(P))&((P)^(D))) 34 #define ROP_SDPSanaxn(D,S,P) (~((S)^((D)&(~((P)&(S)))))) 35 #define ROP_PDSPaox(D,S,P) ((P)^((D)|((S)&(P)))) 36 #define ROP_SDPSxaxn(D,S,P) (~((S)^((D)&((P)^(S))))) 37 #define ROP_PSDPaox(D,S,P) ((P)^((S)|((D)&(P)))) 38 #define ROP_DSPDxaxn(D,S,P) (~((D)^((S)&((P)^(D))))) 39 #define ROP_PDSox(D,S,P) ((P)^((D)|(S))) 40 #define ROP_PDSoan(D,S,P) (~((P)&((D)|(S)))) 41 #define ROP_DPSnaa(D,S,P) ((D)&((P)&(~(S)))) 42 #define ROP_SDPxon(D,S,P) (~((S)|((D)^(P)))) 43 #define ROP_DSna(D,S,P) ((D)&(~(S))) 44 #define ROP_SPDnaon(D,S,P) (~((S)|((P)&(~(D))))) 45 #define ROP_SPxDSxa(D,S,P) (((S)^(P))&((D)^(S))) 46 #define ROP_PDSPanaxn(D,S,P) (~((P)^((D)&(~((S)&(P)))))) 47 #define ROP_SDPSaox(D,S,P) ((S)^((D)|((P)&(S)))) 48 #define ROP_SDPSxnox(D,S,P) ((S)^((D)|(~((P)^(S))))) 49 #define ROP_DPSxa(D,S,P) ((D)&((P)^(S))) 50 #define ROP_PSDPSaoxxn(D,S,P) (~((P)^((S)^((D)|((P)&(S)))))) 51 #define ROP_DPSana(D,S,P) ((D)&(~((P)&(S)))) 52 #define ROP_SSPxPDxaxn(D,S,P) (~((S)^(((S)^(P))&((P)^(D))))) 53 #define ROP_SPDSoax(D,S,P) ((S)^((P)&((D)|(S)))) 54 #define ROP_PSDnox(D,S,P) ((P)^((S)|(~(D)))) 55 #define ROP_PSDPxox(D,S,P) ((P)^((S)|((D)^(P)))) 56 #define ROP_PSDnoan(D,S,P) (~((P)&((S)|(~(D))))) 57 #define ROP_PSna(D,S,P) ((P)&(~(S))) 58 #define ROP_SDPnaon(D,S,P) (~((S)|((D)&(~(P))))) 59 #define ROP_SDPSoox(D,S,P) ((S)^((D)|((P)|(S)))) 60 #define ROP_Sn(D,S,P) (~(S)) /* NOTSRCCOPY */ 61 #define ROP_SPDSaox(D,S,P) ((S)^((P)|((D)&(S)))) 62 #define ROP_SPDSxnox(D,S,P) ((S)^((P)|(~((D)^(S))))) 63 #define ROP_SDPox(D,S,P) ((S)^((D)|(P))) 64 #define ROP_SDPoan(D,S,P) (~((S)&((D)|(P)))) 65 #define ROP_PSDPoax(D,S,P) ((P)^((S)&((D)|(P)))) 66 #define ROP_SPDnox(D,S,P) ((S)^((P)|(~(D)))) 67 #define ROP_SPDSxox(D,S,P) ((S)^((P)|((D)^(S)))) 68 #define ROP_SPDnoan(D,S,P) (~((S)&((P)|(~(D))))) 69 #define ROP_PSx(D,S,P) ((P)^(S)) 70 #define ROP_SPDSonox(D,S,P) ((S)^((P)|(~((D)|(S))))) 71 #define ROP_SPDSnaox(D,S,P) ((S)^((P)|((D)&(~(S))))) 72 #define ROP_PSan(D,S,P) (~((P)&(S))) 73 #define ROP_PSDnaa(D,S,P) ((P)&((S)&(~(D)))) 74 #define ROP_DPSxon(D,S,P) (~((D)|((P)^(S)))) 75 #define ROP_SDxPDxa(D,S,P) (((S)^(D))&((P)^(D))) 76 #define ROP_SPDSanaxn(D,S,P) (~((S)^((P)&(~((D)&(S)))))) 77 #define ROP_SDna(D,S,P) ((S)&(~(D))) /* SRCERASE */ 78 #define ROP_DPSnaon(D,S,P) (~((D)|((P)&(~(S))))) 79 #define ROP_DSPDaox(D,S,P) ((D)^((S)|((P)&(D)))) 80 #define ROP_PSDPxaxn(D,S,P) (~((P)^((S)&((D)^(P))))) 81 #define ROP_SDPxa(D,S,P) ((S)&((D)^(P))) 82 #define ROP_PDSPDaoxxn(D,S,P) (~((P)^((D)^((S)|((P)&(D)))))) 83 #define ROP_DPSDoax(D,S,P) ((D)^((P)&((S)|(D)))) 84 #define ROP_PDSnox(D,S,P) ((P)^((D)|(~(S)))) 85 #define ROP_SDPana(D,S,P) ((S)&(~((D)&(P)))) 86 #define ROP_SSPxDSxoxn(D,S,P) (~((S)^(((S)^(P))|((D)^(S))))) 87 #define ROP_PDSPxox(D,S,P) ((P)^((D)|((S)^(P)))) 88 #define ROP_PDSnoan(D,S,P) (~((P)&((D)|(~(S))))) 89 #define ROP_PDna(D,S,P) ((P)&(~(D))) 90 #define ROP_DSPnaon(D,S,P) (~((D)|((S)&(~(P))))) 91 #define ROP_DPSDaox(D,S,P) ((D)^((P)|((S)&(D)))) 92 #define ROP_SPDSxaxn(D,S,P) (~((S)^((P)&((D)^(S))))) 93 #define ROP_DPSonon(D,S,P) (~((D)|(~((P)|(S))))) 94 #define ROP_Dn(D,S,P) (~(D)) /* DSTINVERT */ 95 #define ROP_DPSox(D,S,P) ((D)^((P)|(S))) 96 #define ROP_DPSoan(D,S,P) (~((D)&((P)|(S)))) 97 #define ROP_PDSPoax(D,S,P) ((P)^((D)&((S)|(P)))) 98 #define ROP_DPSnox(D,S,P) ((D)^((P)|(~(S)))) 99 #define ROP_DPx(D,S,P) ((D)^(P)) /* PATINVERT */ 100 #define ROP_DPSDonox(D,S,P) ((D)^((P)|(~((S)|(D))))) 101 #define ROP_DPSDxox(D,S,P) ((D)^((P)|((S)^(D)))) 102 #define ROP_DPSnoan(D,S,P) (~((D)&((P)|(~(S))))) 103 #define ROP_DPSDnaox(D,S,P) ((D)^((P)|((S)&(~(D))))) 104 #define ROP_DPan(D,S,P) (~((D)&(P))) 105 #define ROP_PDSxa(D,S,P) ((P)&((D)^(S))) 106 #define ROP_DSPDSaoxxn(D,S,P) (~((D)^((S)^((P)|((D)&(S)))))) 107 #define ROP_DSPDoax(D,S,P) ((D)^((S)&((P)|(D)))) 108 #define ROP_SDPnox(D,S,P) ((S)^((D)|(~(P)))) 109 #define ROP_SDPSoax(D,S,P) ((S)^((D)&((P)|(S)))) 110 #define ROP_DSPnox(D,S,P) ((D)^((S)|(~(P)))) 111 #define ROP_DSx(D,S,P) ((D)^(S)) /* SRCINVERT */ 112 #define ROP_SDPSonox(D,S,P) ((S)^((D)|(~((P)|(S))))) 113 #define ROP_DSPDSonoxxn(D,S,P) (~((D)^((S)^((P)|(~((D)|(S))))))) 114 #define ROP_PDSxxn(D,S,P) (~((P)^((D)^(S)))) 115 #define ROP_DPSax(D,S,P) ((D)^((P)&(S))) 116 #define ROP_PSDPSoaxxn(D,S,P) (~((P)^((S)^((D)&((P)|(S)))))) 117 #define ROP_SDPax(D,S,P) ((S)^((D)&(P))) 118 #define ROP_PDSPDoaxxn(D,S,P) (~((P)^((D)^((S)&((P)|(D)))))) 119 #define ROP_SDPSnoax(D,S,P) ((S)^((D)&((P)|(~(S))))) 120 #define ROP_PDSxnan(D,S,P) (~((P)&(~((D)^(S))))) 121 #define ROP_PDSana(D,S,P) ((P)&(~((D)&(S)))) 122 #define ROP_SSDxPDxaxn(D,S,P) (~((S)^(((S)^(D))&((P)^(D))))) 123 #define ROP_SDPSxox(D,S,P) ((S)^((D)|((P)^(S)))) 124 #define ROP_SDPnoan(D,S,P) (~((S)&((D)|(~(P))))) 125 #define ROP_DSPDxox(D,S,P) ((D)^((S)|((P)^(D)))) 126 #define ROP_DSPnoan(D,S,P) (~((D)&((S)|(~(P))))) 127 #define ROP_SDPSnaox(D,S,P) ((S)^((D)|((P)&(~(S))))) 128 #define ROP_DSan(D,S,P) (~((D)&(S))) 129 #define ROP_PDSax(D,S,P) ((P)^((D)&(S))) 130 #define ROP_DSPDSoaxxn(D,S,P) (~((D)^((S)^((P)&((D)|(S)))))) 131 #define ROP_DPSDnoax(D,S,P) ((D)^((P)&((S)|(~(D))))) 132 #define ROP_SDPxnan(D,S,P) (~((S)&(~((D)^(P))))) 133 #define ROP_SPDSnoax(D,S,P) ((S)^((P)&((D)|(~(S))))) 134 #define ROP_DPSxnan(D,S,P) (~((D)&(~((P)^(S))))) 135 #define ROP_SPxDSxo(D,S,P) (((S)^(P))|((D)^(S))) 136 #define ROP_DPSaan(D,S,P) (~((D)&((P)&(S)))) 137 #define ROP_DPSaa(D,S,P) ((D)&((P)&(S))) 138 #define ROP_SPxDSxon(D,S,P) (~(((S)^(P))|((D)^(S)))) 139 #define ROP_DPSxna(D,S,P) ((D)&(~((P)^(S)))) 140 #define ROP_SPDSnoaxn(D,S,P) (~((S)^((P)&((D)|(~(S)))))) 141 #define ROP_SDPxna(D,S,P) ((S)&(~((D)^(P)))) 142 #define ROP_PDSPnoaxn(D,S,P) (~((P)^((D)&((S)|(~(P)))))) 143 #define ROP_DSPDSoaxx(D,S,P) ((D)^((S)^((P)&((D)|(S))))) 144 #define ROP_PDSaxn(D,S,P) (~((P)^((D)&(S)))) 145 #define ROP_DSa(D,S,P) ((D)&(S)) /* SRCAND */ 146 #define ROP_SDPSnaoxn(D,S,P) (~((S)^((D)|((P)&(~(S)))))) 147 #define ROP_DSPnoa(D,S,P) ((D)&((S)|(~(P)))) 148 #define ROP_DSPDxoxn(D,S,P) (~((D)^((S)|((P)^(D))))) 149 #define ROP_SDPnoa(D,S,P) ((S)&((D)|(~(P)))) 150 #define ROP_SDPSxoxn(D,S,P) (~((S)^((D)|((P)^(S))))) 151 #define ROP_SSDxPDxax(D,S,P) ((S)^(((S)^(D))&((P)^(D)))) 152 #define ROP_PDSanan(D,S,P) (~((P)&(~((D)&(S))))) 153 #define ROP_PDSxna(D,S,P) ((P)&(~((D)^(S)))) 154 #define ROP_SDPSnoaxn(D,S,P) (~((S)^((D)&((P)|(~(S)))))) 155 #define ROP_DPSDPoaxx(D,S,P) ((D)^((P)^((S)&((D)|(P))))) 156 #define ROP_SPDaxn(D,S,P) (~((S)^((P)&(D)))) 157 #define ROP_PSDPSoaxx(D,S,P) ((P)^((S)^((D)&((P)|(S))))) 158 #define ROP_DPSaxn(D,S,P) (~((D)^((P)&(S)))) 159 #define ROP_DPSxx(D,S,P) ((D)^((P)^(S))) 160 #define ROP_PSDPSonoxx(D,S,P) ((P)^((S)^((D)|(~((P)|(S)))))) 161 #define ROP_SDPSonoxn(D,S,P) (~((S)^((D)|(~((P)|(S)))))) 162 #define ROP_DSxn(D,S,P) (~((D)^(S))) 163 #define ROP_DPSnax(D,S,P) ((D)^((P)&(~(S)))) 164 #define ROP_SDPSoaxn(D,S,P) (~((S)^((D)&((P)|(S))))) 165 #define ROP_SPDnax(D,S,P) ((S)^((P)&(~(D)))) 166 #define ROP_DSPDoaxn(D,S,P) (~((D)^((S)&((P)|(D))))) 167 #define ROP_DSPDSaoxx(D,S,P) ((D)^((S)^((P)|((D)&(S))))) 168 #define ROP_PDSxan(D,S,P) (~((P)&((D)^(S)))) 169 #define ROP_DPa(D,S,P) ((D)&(P)) 170 #define ROP_PDSPnaoxn(D,S,P) (~((P)^((D)|((S)&(~(P)))))) 171 #define ROP_DPSnoa(D,S,P) ((D)&((P)|(~(S)))) 172 #define ROP_DPSDxoxn(D,S,P) (~((D)^((P)|((S)^(D))))) 173 #define ROP_PDSPonoxn(D,S,P) (~((P)^((D)|(~((S)|(P)))))) 174 #define ROP_PDxn(D,S,P) (~((P)^(D))) 175 #define ROP_DSPnax(D,S,P) ((D)^((S)&(~(P)))) 176 #define ROP_PDSPoaxn(D,S,P) (~((P)^((D)&((S)|(P))))) 177 #define ROP_DPSoa(D,S,P) ((D)&((P)|(S))) 178 #define ROP_DPSoxn(D,S,P) (~((D)^((P)|(S)))) 179 #define ROP_D(D,S,P) (D) 180 #define ROP_DPSono(D,S,P) ((D)|(~((P)|(S)))) 181 #define ROP_SPDSxax(D,S,P) ((S)^((P)&((D)^(S)))) 182 #define ROP_DPSDaoxn(D,S,P) (~((D)^((P)|((S)&(D))))) 183 #define ROP_DSPnao(D,S,P) ((D)|((S)&(~(P)))) 184 #define ROP_DPno(D,S,P) ((D)|(~(P))) 185 #define ROP_PDSnoa(D,S,P) ((P)&((D)|(~(S)))) 186 #define ROP_PDSPxoxn(D,S,P) (~((P)^((D)|((S)^(P))))) 187 #define ROP_SSPxDSxox(D,S,P) ((S)^(((S)^(P))|((D)^(S)))) 188 #define ROP_SDPanan(D,S,P) (~((S)&(~((D)&(P))))) 189 #define ROP_PSDnax(D,S,P) ((P)^((S)&(~(D)))) 190 #define ROP_DPSDoaxn(D,S,P) (~((D)^((P)&((S)|(D))))) 191 #define ROP_DPSDPaoxx(D,S,P) ((D)^((P)^((S)|((D)&(P))))) 192 #define ROP_SDPxan(D,S,P) (~((S)&((D)^(P)))) 193 #define ROP_PSDPxax(D,S,P) ((P)^((S)&((D)^(P)))) 194 #define ROP_DSPDaoxn(D,S,P) (~((D)^((S)|((P)&(D))))) 195 #define ROP_DPSnao(D,S,P) ((D)|((P)&(~(S)))) 196 #define ROP_DSno(D,S,P) ((D)|(~(S))) /* MERGEPAINT */ 197 #define ROP_SPDSanax(D,S,P) ((S)^((P)&(~((D)&(S))))) 198 #define ROP_SDxPDxan(D,S,P) (~(((S)^(D))&((P)^(D)))) 199 #define ROP_DPSxo(D,S,P) ((D)|((P)^(S))) 200 #define ROP_DPSano(D,S,P) ((D)|(~((P)&(S)))) 201 #define ROP_PSa(D,S,P) ((P)&(S)) /* MERGECOPY */ 202 #define ROP_SPDSnaoxn(D,S,P) (~((S)^((P)|((D)&(~(S)))))) 203 #define ROP_SPDSonoxn(D,S,P) (~((S)^((P)|(~((D)|(S)))))) 204 #define ROP_PSxn(D,S,P) (~((P)^(S))) 205 #define ROP_SPDnoa(D,S,P) ((S)&((P)|(~(D)))) 206 #define ROP_SPDSxoxn(D,S,P) (~((S)^((P)|((D)^(S))))) 207 #define ROP_SDPnax(D,S,P) ((S)^((D)&(~(P)))) 208 #define ROP_PSDPoaxn(D,S,P) (~((P)^((S)&((D)|(P))))) 209 #define ROP_SDPoa(D,S,P) ((S)&((D)|(P))) 210 #define ROP_SPDoxn(D,S,P) (~((S)^((P)|(D)))) 211 #define ROP_DPSDxax(D,S,P) ((D)^((P)&((S)^(D)))) 212 #define ROP_SPDSaoxn(D,S,P) (~((S)^((P)|((D)&(S))))) 213 #define ROP_S(D,S,P) (S) /* SRCCOPY */ 214 #define ROP_SDPono(D,S,P) ((S)|(~((D)|(P)))) 215 #define ROP_SDPnao(D,S,P) ((S)|((D)&(~(P)))) 216 #define ROP_SPno(D,S,P) ((S)|(~(P))) 217 #define ROP_PSDnoa(D,S,P) ((P)&((S)|(~(D)))) 218 #define ROP_PSDPxoxn(D,S,P) (~((P)^((S)|((D)^(P))))) 219 #define ROP_PDSnax(D,S,P) ((P)^((D)&(~(S)))) 220 #define ROP_SPDSoaxn(D,S,P) (~((S)^((P)&((D)|(S))))) 221 #define ROP_SSPxPDxax(D,S,P) ((S)^(((S)^(P))&((P)^(D)))) 222 #define ROP_DPSanan(D,S,P) (~((D)&(~((P)&(S))))) 223 #define ROP_PSDPSaoxx(D,S,P) ((P)^((S)^((D)|((P)&(S))))) 224 #define ROP_DPSxan(D,S,P) (~((D)&((P)^(S)))) 225 #define ROP_PDSPxax(D,S,P) ((P)^((D)&((S)^(P)))) 226 #define ROP_SDPSaoxn(D,S,P) (~((S)^((D)|((P)&(S))))) 227 #define ROP_DPSDanax(D,S,P) ((D)^((P)&(~((S)&(D))))) 228 #define ROP_SPxDSxan(D,S,P) (~(((S)^(P))&((D)^(S)))) 229 #define ROP_SPDnao(D,S,P) ((S)|((P)&(~(D)))) 230 #define ROP_SDno(D,S,P) ((S)|(~(D))) 231 #define ROP_SDPxo(D,S,P) ((S)|((D)^(P))) 232 #define ROP_SDPano(D,S,P) ((S)|(~((D)&(P)))) 233 #define ROP_PDSoa(D,S,P) ((P)&((D)|(S))) 234 #define ROP_PDSoxn(D,S,P) (~((P)^((D)|(S)))) 235 #define ROP_DSPDxax(D,S,P) ((D)^((S)&((P)^(D)))) 236 #define ROP_PSDPaoxn(D,S,P) (~((P)^((S)|((D)&(P))))) 237 #define ROP_SDPSxax(D,S,P) ((S)^((D)&((P)^(S)))) 238 #define ROP_PDSPaoxn(D,S,P) (~((P)^((D)|((S)&(P))))) 239 #define ROP_SDPSanax(D,S,P) ((S)^((D)&(~((P)&(S))))) 240 #define ROP_SPxPDxan(D,S,P) (~(((S)^(P))&((P)^(D)))) 241 #define ROP_SSPxDSxax(D,S,P) ((S)^(((S)^(P))&((D)^(S)))) 242 #define ROP_DSPDSanaxxn(D,S,P) (~((D)^((S)^((P)&(~((D)&(S))))))) 243 #define ROP_DPSao(D,S,P) ((D)|((P)&(S))) 244 #define ROP_DPSxno(D,S,P) ((D)|(~((P)^(S)))) 245 #define ROP_SDPao(D,S,P) ((S)|((D)&(P))) 246 #define ROP_SDPxno(D,S,P) ((S)|(~((D)^(P)))) 247 #define ROP_DSo(D,S,P) ((D)|(S)) /* SRCPAINT */ 248 #define ROP_SDPnoo(D,S,P) ((S)|((D)|(~(P)))) 249 #define ROP_P(D,S,P) (P) /* PATCOPY */ 250 #define ROP_PDSono(D,S,P) ((P)|(~((D)|(S)))) 251 #define ROP_PDSnao(D,S,P) ((P)|((D)&(~(S)))) 252 #define ROP_PSno(D,S,P) ((P)|(~(S))) 253 #define ROP_PSDnao(D,S,P) ((P)|((S)&(~(D)))) 254 #define ROP_PDno(D,S,P) ((P)|(~(D))) 255 #define ROP_PDSxo(D,S,P) ((P)|((D)^(S))) 256 #define ROP_PDSano(D,S,P) ((P)|(~((D)&(S)))) 257 #define ROP_PDSao(D,S,P) ((P)|((D)&(S))) 258 #define ROP_PDSxno(D,S,P) ((P)|(~((D)^(S)))) 259 #define ROP_DPo(D,S,P) ((D)|(P)) 260 #define ROP_DPSnoo(D,S,P) ((D)|((P)|(~(S)))) /* PATPAINT */ 261 #define ROP_PSo(D,S,P) ((P)|(S)) 262 #define ROP_PSDnoo(D,S,P) ((P)|((S)|(~(D)))) 263 #define ROP_DPSoo(D,S,P) ((D)|((P)|(S))) 264 #define ROP_1(D,S,P) 1 /* WHITENESS */ 265 266 #define ROP_BLACKNESS ROP_0 267 #define ROP_NOTSRCERASE ROP_DSon 268 #define ROP_NOTSRCCOPY ROP_Sn 269 #define ROP_SRCERASE ROP_SDna 270 #define ROP_DSTINVERT ROP_Dn 271 #define ROP_PATINVERT ROP_DPx 272 #define ROP_SRCINVERT ROP_DSx 273 #define ROP_SRCAND ROP_DSa 274 #define ROP_MERGEPAINT ROP_DSno 275 #define ROP_MERGECOPY ROP_PSa 276 #define ROP_SRCCOPY ROP_S 277 #define ROP_SRCPAINT ROP_DSo 278 #define ROP_PATCOPY ROP_P 279 #define ROP_PATPAINT ROP_DPSnoo 280 #define ROP_WHITENESS ROP_1 281 282 283