관리 메뉴

ㄴrㅎnㅂrㄹrㄱi

SHBrowseForFolder(A) 본문

API 관련/Win32 API 함수

SHBrowseForFolder(A)

님투 2007. 11. 8. 23:28
반응형

SHBrowseForFolder(A)

유저에게 시르포르다를 선택시키기 위한 다이알로그 박스를 표시합니다.

LPITEMIDLIST SHBrowseForFolderA(
    PBROWSEINFO  pbi       // BROWSEINFO구조체
);

SHELL32.DLL

인수

pbi

다이알로그 박스의 표시에 사용되는 정보를 격납했다 BROWSEINFO구조체의 주소를 지정합니다.

반환값

폴더가 선택되면, 쉘 네임 스페이스의 루트(데스크탑 폴더)로부터의 선택된 폴더의 상대적인 위치를 지정하는 아이템ID리스트(ITEMIDLIST구조체)에의 포인터(PIDL)(이)가 돌아갑니다.

다이알로그 박스의 캔슬 버튼이 밀렸을 경우는0 (NULL) 하지만 돌아갑니다.

해설

이 함수를 호출하는 어플리케이션은,COINIT_APARTMENTTHREADED플래그를 지정해CoInitializeEx함수를 호출하는 것으로COM(을)를 초기화해 두지 않으면 안됩니다.CoInitializeEx함수에COINIT_MULTITHREADED플래그를 건네주어COM(을)를 초기화하고 있는 경우,BIF_NEWDIALOGSTYLE또는BIF_USENEWUI(을)를 지정한SHBrowseForFolder함수의 호출은 실패해 버리기 위해, 주의가 필요합니다.COM(을)를 초기화하는데CoInitialize함수 또는OleInitialize함수를 사용할 수도 있습니다.

호출측 어플리케이션은, SHGetMalloc함수에 의해서 취득할 수 있는 쉘 메모 리어 locator의 IMalloc인터페이스로부터 Free메소드를 호출하는 것으로, 취득했다PIDL의 메모리 영역을 해방하지 않으면 안됩니다.

2종류의 스타일의 다이알로그 박스를 이용할 수 있습니다.종래의 스타일의 다이알로그 박스는 사이즈 변경할 수 없습니다.새로운 스타일의 다이알로그 박스를 지정하려면 BROWSEINFO구조체의ulFlags멤버에BIF_USENEWUI플래그를 지정합니다.이것에 의해, 다이알로그 박스에의 드래그 앤드 드롭, 폴더의 재정리, 쇼트 컷 메뉴, 새로운 폴더 작성, 삭제, 그 외의 쇼트 컷 메뉴 커멘드등의 기능을 추가할 수 있습니다.초기 상태에서는 종래의 다이알로그 박스보다 큽니다만, 유저가 다이알로그 박스의 사이즈를 변경할 수 있습니다.

대응 정보

Shell32.dll Version 4.00 이후

Windows 95 이후 / Windows NT 4.0 이후

반응형

'API 관련 > Win32 API 함수' 카테고리의 다른 글

ShellExecuteEx(A)  (0) 2007.11.08
Shell_NotifyIcon(A)  (0) 2007.11.08
SetWindowRgn  (0) 2007.11.08
SetWindowLong(A)  (0) 2007.11.08
SetThreadPriority  (0) 2007.11.08
Comments