Bonsoir voila je cherche quelqu'un pouvant m'expliquer ce code
HBITMAP hbmp;
int cxDib, cyDib,idximg;
char *szimages = {"Chat.jpg"};
void __stdcall ImgLoad()
{
HANDLE file; ===> le handle c'est quoi deja ? enfin si on peut m'expliquer rapidement
DWORD bmpsz, val; ===> ledword aussi si on peut m'expliquer
HANDLE hheap;
BYTE *pmem;
BITMAP bmp;
if(hbmp) {DeleteObject(hbmp); hbmp = 0;}
file = CreateFile(szimages, GENERIC_READ, 0, 0, OPEN_EXISTING,
FILE_FLAG_SEQUENTIAL_SCAN, 0);
if(file == INVALID_HANDLE_VALUE) return;
bmpsz = GetFileSize(file, 0);
hheap = GetProcessHeap(); ===> qu'est-ce que cette fonction?
pmem = (BYTE*) HeapAlloc(hheap, 0, bmpsz); ===> pareil pour heapalloc
if(pmem) ReadFile(file, pmem, bmpsz, &val, 0);
CloseHandle(file);
if(!pmem) return;
hbmp = bnBmpFromMemory(pmem, bmpsz);
HeapFree(hheap, 0, pmem);
if(hbmp) {
if(GetObject(hbmp, sizeof(bmp), &bmp)) {
cxDib = bmp.bmWidth; cyDib = bmp.bmHeight;
}
}
}
void __stdcall onPaint(HWND hdlg)
{
PAINTSTRUCT ps;
HDC hdc, memdc;
RECT rct;
hdc = BeginPaint(hdlg, &ps);
if(hbmp) {
GetClientRect(hdlg, &rct);
memdc = CreateCompatibleDC(hdc);
SelectObject(memdc, hbmp);
StretchBlt(hdc, 0, 0, (rct.right-150), rct.bottom, memdc, 0, 0, cxDib, cyDib, SRCCOPY);
DeleteDC(memdc);
}
EndPaint(hdlg, &ps);
}
BOOL CALLBACK AppDlgProc(HWND hdlg, UINT mssg, WPARAM wParam, LPARAM lParam)
{
switch(mssg) {
case WM_PAINT:
onPaint(hdlg);
break;
case WM_TIMER:
if(++idximg > 2) idximg = 0;
ImgLoad();
InvalidateRect(hdlg, 0, 0);
break;
case WM_INITDIALOG:
SetClassLong(hdlg, GCL_HICON, (long)LoadIcon(0, IDI_APPLICATION));
idximg = 0;
ImgLoad();
SetTimer(hdlg, 1, 1500, 0);
return 1;
case WM_COMMAND:
if(wParam == IDCANCEL) {KillTimer(hdlg, 1); EndDialog(hdlg, 0);}
}
return 0;
}
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE, PSTR, int)
{
DialogBoxParam(hInstance, MAKEINTRESOURCE(IDD_APP), 0, AppDlgProc, 0);
return 0;
}
Merci beaucoup si vous pouvez m'aider