Listen to KaiserJohan. He knows what he's talking about, however, he defined a 32BPP pixel incorrectly with alpha last in rightmost byte (0xAABBCC*DD*). It should be like this:
#define byte unsigned char
typedef struct {
byte a, r, g, b;
} PIXEL;
That is nothing but a matter of convention.
RGBA formats are just as common as ARGB. There is no right or wrong way to do it (though it is a good idea to stick with the convention used by your rendering API—that is ARGB on Direct3D and RGBA on OpenGL/OpenGL ES).
You are the same person who said C++ is for newbies, yet you yourself seem to be quite a beginner. Stop saying things as matter-of-factual when you yourself have misunderstood what the facts are.
L. Spiro