The VJ++ wrappers generated for picture properties work correctly, and you can use the setCellPicture and getCellPicture methods normally. However, the wrappers fail when the picture is contained in a Variant, which prevents you from using the SetCell method to set cell pictures directly.
There is an easy workaround for this. By inspecting the wrapper code, you can see that J++ converts its native image type to an IPictureDisp interface with a call to the com.ms.wfc.ui.AxHost.getIPictureDispFromPicture(img) support function.
By using this in your calls to setCell, you can set pictures with no problems. For example:
// get Image object
Image img = pictureBox1.getImage();
// assign to current cell
VSFlexGrid1.setCellPicture(img);
// assign to a range
VSFlexGrid1.setCell(3, new Variant(3), new Variant(3),
new Variant(4), new Variant(4),
new Variant(com.ms.wfc.ui.AxHost.getIPictureDispFromPicture(img)));
// this does *not* work
//VSFlexGrid1.setCell(3, new Variant(3), new Variant(3),
// new Variant(4), new Variant(4),new Variant(img));