BMP - jak dostać wskaźniek??

0

Robię tak i nie wiem co dalej zrobić aby odczytać mój plik BMP
hImage = LoadImage(GetModuleHandle(NULL), "os_001_1.bmp", IMAGE_BITMAP, 0,0, LR_LOADFROMFILE );

Chodzi mi dokładnie do dostania się albo do adresu gdzie HDC przetrzymuje aktualne informacje o stanie bufora. ALbo jak po prostu wczytać ten obraz BMP do pamięci bez początkowych śmieci??

Oczywiście wszystko na API.

0

LPVOID LockResource(
HGLOBAL hResData // handle to resource to lock
);

If the loaded resource is locked, the return value is a pointer to the first byte of the resource; otherwise, it is NULL.

0
	HWND		hWnd;
	HANDLE		hImage;
	HBITMAP		MainBitmap;
	BITMAP		bm;
	char		*bitmap;
	HDC			MainDC,ScreenDC,BitmapDC;
	LPVOID		MainBitmapData=NULL;
	BITMAPINFO  BitmapInfo;
	RECT		rect;

	hImage = LoadImage(GetModuleHandle(NULL), "os_001_1.bmp", IMAGE_BITMAP, 0,0, LR_LOADFROMFILE );
	GetObject(hImage,sizeof(bm),&bm);				//Dostajemy informację o pliku BMP
	hWnd = HwndLatch(NULL);
	bitmap = (char*)bm.bmBits;
	BitmapDC = CreateCompatibleDC (NULL);
	MainDC = CreateCompatibleDC (NULL);
	SelectObject(MainDC, hImage);
	BitmapInfo.bmiHeader.biSize = sizeof (BITMAPINFOHEADER);
	BitmapInfo.bmiHeader.biPlanes = bm.bmPlanes;
	BitmapInfo.bmiHeader.biBitCount = 24;
	BitmapInfo.bmiHeader.biCompression = BI_RGB;
	BitmapInfo.bmiHeader.biSizeImage = 0;
	BitmapInfo.bmiHeader.biClrUsed = 0;
	BitmapInfo.bmiHeader.biClrImportant = 0;
	BitmapInfo.bmiHeader.biWidth = bm.bmWidth;
	BitmapInfo.bmiHeader.biHeight = bm.bmHeight;
	MainBitmap = CreateDIBSection (BitmapDC, &BitmapInfo, DIB_RGB_COLORS, &MainBitmapData,NULL,0);
	SelectObject (BitmapDC, MainBitmap);
	ScreenDC = GetDC (hWnd);
	GetClientRect(hWnd,&rect);
	StretchBlt(ScreenDC,0,0,WINDOWSIZEX,WINDOWSIZEY,MainDC,0,0,bm.bmWidth,bm.bmHeight,SRCCOPY);
	BitBlt(BitmapDC,0,0,bm.bmWidth,bm.bmHeight,MainDC,bm.bmWidth,bm.bmHeight,SRCCOPY);

To jest przykłąd jak ja to zrobiłem bez znajomości podanej wyżej funkcji

1 użytkowników online, w tym zalogowanych: 0, gości: 1