The x and y coordinates are relative to the McRegionAccess ROI, not the image. The pixel values returned are in the requested color model, which may differ from the image's native color model.
When the routine itself creates the variant it is typed after the image type, which guarantees that the pixel values will fit into it. If pvPixel is already typed, it must be of the right data type and size.
For languages that do not support the unsigned integer type (like Visual Basic or VBA), 16 bits values bigger than 32767 will be reported as negative because their sign bit is set. The best way to work around this limitation is to use a long McRegionAccess, which will then return long positive values (4 bytes) instead of unsigned integers (2 bytes).