Показать сообщение отдельно
Старый 31.07.2011, 00:47   #5
Mark Castle
Знающий
 
Регистрация: 04.10.2008
Адрес: Киев
Сообщений: 230
Написано 3 полезных сообщений
(для 3 пользователей)
Ответ: Помогите разобрать функцию построчно

Хорошо, у меня еще есть один вопрос: я вызываю окно выбора директории ф-ей SHBrowseForFolder(&bI);
Затем ф-ей SHGetPathFromIDList(lists, path); пытаюсь выкурить папку, на что во время выполнения программы получаю:
Unhandled exception at 0x7ca34d07 in ScreenMaster.exe: 0xC0000005: Access violation writing location 0xcccccccc.
Привожу всю функцию разбора сообщений:
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
HWND desktop;
PAINTSTRUCT _ps;

  BROWSEINFO bI;
bI.hwndOwner=hWnd;
bI.iImage=NULL;
bI.lParam=NULL;
bI.lpszTitle=TEXT("abcd");
bI.lpfn=NULL;
bI.pidlRoot=NULL;
bI.pszDisplayName=NULL;
bI.ulFlags=BIF_RETURNONLYFSDIRS;




int pos;

	switch (message)
	{
	case WM_COMMAND:
		LPCITEMIDLIST lists;
		LPTSTR path;
		path=TEXT("C:\\");
		if (wParam==ID_BUTTONSRC)
		{
			
		lists = SHBrowseForFolder(&bI);
		if (lists!=0)
		{
			SHGetPathFromIDList(lists, path);
		}
		}
		break;
	case WM_VSCROLL:
		if (wParam==SB_ENDSCROLL)
		{
	dc=BeginPaint(hWnd,&_ps);
	pos=SendMessage(hwndTrack,TBM_GETPOS,TRUE,0);
		}
		break;
	case WM_PAINT:
		dc=BeginPaint(hWnd,&_ps);
		Rectangle(dc,0,0,500,350);
		TextOut(dc,355,10,TEXT("Quality"),7);
		TextOut(dc,270,35,TEXT("Format"),6);
		break;
	case WM_LBUTTONDOWN:
		desktop=GetDesktopWindow();
		CaptureScreen(desktop);
		break;
	case WM_DESTROY:
		PostQuitMessage(0);  // выходим их программы
		break;
	default:  
		return DefWindowProc(hWnd, message, wParam, lParam);
	}
	return 0;
}
Помогите разобраться, в чем проблема.
Заранее спасибо.
__________________
...мама я больше не буду!
(Offline)
 
Ответить с цитированием