the alpha value from the screen

I’ve problems with the alpha value when I read from a textured image from the screen.
First of all, I use glReadPixels(0,0,width,hight,GL_RGBA,GL_UNSIGNED_BYTE, *frame);
After chanching the Blue with the Red values, I get a tga file. But when I see it with the Photoshop, the alpha chanel is completely white!!
Can I read RGBA from the screen or I can get only RGB values?

Did you set your framebuffer to store RGBA values? If you’re using a 16-bit framebuffer, you don’t get the alpha component.

No, actually I’ve defined the framebuffer as GLbyte framebuffer[width][height][4].
Then I put every R, G, B or A values in a GLubyte.

The framebuffer is where OpenGL draws everything. In other words, the window, or the viewport. Does the windows pixelformat contain an alpha channel?

What do you mean? I have declared my windows

Is it enough or I’ve to use another function about the pixel format?