textures

I want to make a texture, but I want to load it from resource, using HBITMAP and BITMAP and not auxDIBImageLoad function. I did something like this, but it didn’t work:
HBITMAP hBmp = LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_BITMAP));
BITMAP bmp;
GetObject(hBmp, sizeof(bmp), &bmp);

glTexImage2D(GL_TEXTURE_2D, 0, 3, bmp.Width, bmp.Height, 0, GL_RGB, GL_UNSIGNED_BYTE, bmp.BltBit);

There is a BITMAPINFO structure at the start of the data. If the bitmap has a color lookup table then it follows, and then the pixel data follows that. You pass the pixel data to the glTexImage function.

Something like this:

HRSRC Resource = (HRSRC)LoadResource(AfxGetInstanceHandle(), FindResource(AfxGetInstanceHandle(), MAKEINTRESOURCE(id), MAKEINTRESOURCE(RT_BITMAP)));
unsigned char data = (unsigned char)LockResource(Resource);

BITMAPINFO* bmpInfo = (BITMAPINFO*)data;
colors = data + bmpInfo->bmiHeader.biSize;
pixels = colors + bmpInfo->bmiHeader.biClrUsed * sizeof(bmpInfo->bmiColors);
width = bmpInfo->bmiHeader.biWidth;
height = bmpInfo->bmiHeader.biHeight;