[winapi] 파일 선택 다이얼로그 띄우기

- 함수 원형


BOOL fnBrowseFolder( HWND hWnd, const char *pTitle, char *pFolder, UINT nFlags )

{

LPMALLOC pMalloc;

LPITEMIDLIST pidl;

BROWSEINFO bi;


memset( &bi, 0, sizeof( BROWSEINFO ) );

bi.hwndOwner = hWnd;

bi.pidlRoot = NULL;

bi.pszDisplayName = NULL;

bi.lpszTitle = (char *)pTitle;

bi.ulFlags = nFlags;

bi.lpfn = NULL;

bi.lParam = 0;


pidl = SHBrowseForFolder( &bi );


if( pidl == NULL )

return FALSE;


SHGetPathFromIDList( pidl, pFolder );


if( SHGetMalloc( &pMalloc ) != NOERROR )

return FALSE;


pMalloc->Free(pidl);

pMalloc->Release();


return TRUE;

}


- 사용 시 

if( !fnBrowseFolder( hWnd, "디렉토리 또는 드라이브를 선택해주세요.",Path, BIF_RETURNONLYFSDIRS ) ) 

MessageBox(hWnd,"오류!",NULL,MB_OK);



Path에 선택한 파일 경로가 저장 된다.