My guess is yes - vbSrcInvert is a standard raster operation code. He specifically says that dwROP is nonstandard...nonstandard being made up of two regular raster operations: a foreground and a background code. You need to create this code with the agMakeROP4 function as previously stated... According to him, "This function shifts the background raster-op left by 8 bits then ORs in the foreground raster operation. This is difficult to do in Visual Basic due to the likelihood of an overflow during the shift." In other words - try something else!

You can use BitBlt and masks - create a Black and white of your source image...Black where you want the image to show through - white where you want it to be masked. Then BitBlt the mask using SRCAND - then BitBlt the source image using SRCPAINT... that should do it for you...

Good Luck!