
Гламурный хакер

Профиль
Группа: Участник
Сообщений: 193
Регистрация: 30.3.2007
Где: Ярославская обл. г.Рыбинск
Репутация: нет Всего: 3
|
Привет всем. В чем баг? Когда для прогресс бара посылаю сообщение PBM_SETRANGE прогоесс бар работает. но когда посылаю сообщение PBM_SETRANGE32 при перерисовке прогресс бара начинаются глюки. С прогресс баром работаю так: | Код | extern int WIDTH_OF_IMAGES; extern HINSTANCE g_hInstance;
BOOL ConvertRawToBMP(HWND hwnd,LPTSTR pszRawFile,LPTSTR pszBMPFile) { long FileLen=0; FILE *RawFileHandle=NULL;
BITMAPFILEHEADER bmfh={0}; BITMAPINFOHEADER bmih={0}; RGBQUAD palette[256]; DWORD bmWidth=0,bmHeight=0,rw=0;
UCHAR buffer[4200]={0}; HANDLE hFile; double bHeight; //For progress bar HWND hwndPB; int cyVScroll; RECT rcClient;
GetClientRect(hwnd, &rcClient); cyVScroll = GetSystemMetrics(SM_CYVSCROLL); hwndPB = CreateWindowEx(0, PROGRESS_CLASS, (LPSTR) NULL, WS_CHILD | WS_VISIBLE, rcClient.left, rcClient.bottom-cyVScroll, rcClient.right, cyVScroll, hwnd, (HMENU) 0, g_hInstance, NULL);
...//тут делаю свое... //*** Open raw file for information RawFileHandle=fopen(pszRawFile,"rb");
fseek(RawFileHandle, 0, SEEK_END); FileLen = ftell(RawFileHandle); fseek(RawFileHandle, 0, SEEK_SET);
bmWidth=WIDTH_OF_IMAGES; bHeight=ceil((double)((float)FileLen / (float)bmWidth)); bmHeight=(int)bHeight;
//*** Fill BITMAPFILEHEADER structure bmfh.bfType=0x4d42; // 0x42 = "B" 0x4d = "M" bmfh.bfSize=bmWidth*bmHeight+(256*sizeof(RGBQUAD))+sizeof(BITMAPINFOHEADER)+sizeof(BITMAPFILEHEADER)+ bmWidth*bmHeight%4; bmfh.bfReserved1=0; bmfh.bfReserved1=0; bmfh.bfOffBits=(256*sizeof(RGBQUAD))+sizeof(BITMAPINFOHEADER)+sizeof(BITMAPFILEHEADER);
//*** Fill BITMAPFILEHEADER structure bmih.biSize=sizeof(BITMAPINFOHEADER); bmih.biWidth=bmWidth; bmih.biHeight=bmHeight; bmih.biPlanes=1; bmih.biBitCount=8; bmih.biCompression=BI_RGB; bmih.biSizeImage=0; bmih.biXPelsPerMeter=0; bmih.biYPelsPerMeter=0; bmih.biClrUsed=256; bmih.biClrImportant=0;
// Fill palette for (int i=0; i<256; i++) { memset(&palette[i],i,3); palette[i].rgbReserved=0; }
// Fill BMP file
hFile=CreateFile(pszBMPFile,GENERIC_WRITE,0,NULL,CREATE_ALWAYS,0,NULL); WriteFile(hFile,&bmfh,sizeof(bmfh),&rw,NULL); WriteFile(hFile,&bmih,sizeof(bmih),&rw,NULL); WriteFile(hFile,&palette,sizeof(palette),&rw,NULL);
size_t ss=0;
SendMessage(hwndPB, PBM_SETRANGE, 0, MAKELPARAM(0, FileLen/WIDTH_OF_IMAGES)); SendMessage(hwndPB, PBM_SETSTEP, (WPARAM) 1, 0);
while( !feof( RawFileHandle ) ) { memset(&buffer,0,bmWidth); ss=fread(buffer,sizeof(UCHAR),bmWidth,RawFileHandle); WriteFile(hFile,&buffer,bmWidth,&rw,NULL); SendMessage(hwndPB, PBM_STEPIT, 0, 0); }
CloseHandle(hFile); fclose(RawFileHandle); DestroyWindow(hwndPB);
return TRUE; }
|
--------------------
<sсriрt>alert('xss')</sсriрt>
|