Хорошо, у меня еще есть один вопрос: я вызываю окно выбора директории ф-ей 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;
}
Помогите разобраться, в чем проблема.
Заранее спасибо.