I am writing a utility function in C language to read the entire LCD Display i.e. pixel by pixel. Each pixel color value is 32-bit color value RGB8888. Please see the following code:

//--------

void CaptureScreen(void)
{
#ifdef ENABLE_SCREEN_CAPTURE
INT32U w, h;
COLOR ColorINT32Val;
LCD_RGBDATA *RGB_LCD_INT32U;
MY_FILE* FileHandle;

if ((FileHandle= (MY_FILE *)RKFSFileOpen((const char*)"D:\LCD.txt", "wb" ))!=NULL)
{
FS_fseek(FileHandle, 0, SEEK_SET);

for(h=0; h<LCD_H; h++)
{
for(w=0; w<LCD_W; w++)
{
ColorINT32Val = *(gGuiDspLcdLogic+w+(h*LCD_W));
FS_fwrite(&ColorINT32Val, sizeof(ColorINT32Val), 1, FileHandle);
}

}
RKFSFileClose((MY_FILE *)FileHandle);
}
#endif
}

This gives us a text file "D:\LCD.txt". Now using other utility software written in Visual Basic we are reading each pixel value from the file (i.e. RGB8888 or 32-bit color value) we are printing it on a bitmap control.
The matter is The color as it has been shown on Device LCD is different as displayed on Bitmap control of my VB utility software..
Please give an idea what is missing. I am doing all these things to get a screen shot of my device LCD.. Why the resultant Image is has different colors from the device display???