You should read the autodocs.
DoMethod() is a varargs stub for DoMethodA() and DoMethodA() takes two arguments, obj and msg, where msg in this case is struct pdtBlitPixelArray.
So MethodID is not a copy of PDTM_READPIXELARRAY, it is the place where PDTM_READPIXELARRAY belongs to.
If you want to use DoMethod() instead of DoMethodA() you can write all fields of struct pdtBlitPixelArray into the arguments:
DoMethod (obj,PDTM_READPIXELARRAY,data,format,mod,left,top,width,height);
Bye,
Thomas