MFC에서는 FolderBrowserDialog가 지원되지 않아서 직접 만들어야 한다.
[BROWSEINFO 구조체]
typedef struct _browseinfo {
HWND hwndOwner;
LPCITEMIDLIST pidlRoot;
LPSTR pszDisplayName;
LPCSTR lpszTitle;
UINT ulFlags;
BFFCALLBACK lpfn;
LPARAM lParam;
int iImage;
} BROWSEINFO, *PBROWSEINFO, *LPBROWSEINFO;
hwndOwner : 다이얼로그 박스의 부모 윈도우의 핸들
pidlRoot : 브라우저에서부터 루트 폴더의 위치를 지정하는 ITEMIDLIST 구조의 주소 찾아볼 수 있습니다.
오직 지정된 폴더와 그 하위 폴더 대화 상자에 나타납니다.
이 멤버는 NULL이 될 수 있습니다. 이 경우, 네임 스페이스 루트 (바탕 화면 폴더) 사용됩니다
pszDisplayName : 버퍼의 주소는 사용자가 선택한 폴더의 표시 이름을 보여줍니다.
이 버퍼의 크기는 MAX_PATH 바이트로 간주됩니다.
lpszTitle : 다이얼로그의 트리뷰 컨트롤에서 Null종료 문자열의 주소를 보여줍니다
이 문자열은 사용자에게 일일이 가르쳐주는데 사용할 수 있습니다.
ulFlags : 대화 상자에 대한 옵션을 지정하는 플래그.
이 멤버는 제로값이거나 다음 값의 조합을 포함할 수 있습니다
BIF_BROWSEFORCOMPUTER | 컴퓨터만 리턴합니다. 다른것을 선택하면 OK버튼이 비활성화 |
BIF_BROWSEFORPRINTER | 프린터만 리턴합니다. 다른것을 선택하면 OK버튼이 비활성화 |
BIF_BROWSEINCLUDEFILES | 이browse dialog는 폴더 뿐만이 아니라 파일도 보여줍니다 |
BIF_DONTGOBELOWDOMAIN | 트리 컨트롤 뷰에서 도메인 레벨 아래의 네트워크 폴더를 포함하지 않습니다 |
BIF_EDITBOX | Version 4.71. The browse dialog includes an edit control in which the user can type the name of an item. |
BIF_RETURNFSANCESTORS | Only return file system ancestors. If the user selects anything other than a file system ancestor, the OK button is grayed. |
BIF_RETURNONLYFSDIRS | 시스템 디렉토리만 리턴합니다. 다른것을 선택하면 OK버튼이 비활성화 |
BIF_STATUSTEXT | Include a status area in the dialog box. The callback function can set the status text by sending messages to the dialog box. |
BIF_VALIDATE | Version 4.71. If the user types an invalid name into the edit box, the browse dialog will call the application's BrowseCallbackProc with the BFFM_VALIDATEFAILED message. This flag is ignored if BIF_EDITBOX is not specified. |
lParam : 하나를 지정하면 응용프로갬 정의 값이 대화상자의 콜백함수로 전달합니다.
iImage : 변수에 선택한 폴더에 관련된 이미지를 받을 수 있습니다.
'MFC > Microsoft Foundation Class' 카테고리의 다른 글
[MFC] 파일 다이얼로그 - 3 <BROWSEINFO사용> (0) | 2011.02.10 |
---|---|
[MFC] 폴더 다이얼로그 - 2 <SHBrowseForFolder> (0) | 2011.02.10 |
대표적인 소켓 에러 (0) | 2011.02.08 |
[MFC] 가변인수 - va_list (0) | 2011.02.07 |
[MFC] SENDMESSAGE 로 문자열 보내기 (0) | 2011.02.07 |
에러 변수 |
에러코드 |
설 명 |
WSAEINTR |
10004 |
Blocking 윈속이 WSACancelBolcklocd에 함수취소 되었음 |
WSAEBADF |
10009 |
잘못된 기술자(소켓핸들) |
WSAEACCES |
10013 |
브로드캐스트 어드레스를 위한 데이터그램 소켓의 접속시도가 setsockopt함수로 SO_BROADCAST가 설정되지 않은 상태에서 실패했음 |
WSAEFAULT |
10014 |
Name 또는 namelen 매개변수가 올바른 형태가 아님 |
WSAEINVAL |
10022 |
Accept 하기 전에 listen 함수가 불러지지 않았음 |
WSAEMFILE |
10024 |
새로운 소켓에 할당하기 위한 소켓 기술자가 더 이상 남아있지 않음 |
WSAEWOULDBLOCK |
10035 |
소켓 함수가 비블럭킹 모드로 동장죽 |
WSAEINPROGRESS |
10036 |
블록화 함수가 호출되는 동안 부적절한 소켓 함수가 호출됨 |
WSAEALREADY |
10037 |
이미 완료된 비동기 명형에 대한 취소가 시도됨 |
WSAENOTSOCK |
10038 |
지정한 기술자가 소켓 기술자가 아님 |
WSAEDESTADDRREQ |
10039 |
해당 함수에 목적지 어드레스가 필요하지만 제공되지 않았음 |
WSAEMSGSIZE |
10040 |
수신된 메시지가 지정된 버퍼에 저장하기에 너무 커서 손실 되었음 |
WSAEPROTOTYPE |
10041 |
지정된 프로토콜이 잘못 되었거나 이 소켓에 대해서 잘못된 형식 |
WSAENOPROTOOPT |
10042 |
알 수 없는 옵션이거나, 지원되지 않는 옵션을 사용함 |
WSAEPROTONOSUPPORT |
10043 |
지정된 프로토콜이 지원되지 않는 형식 |
WSAESOCKTNOSUPPORT |
10044 |
지정된 소켓 타입이 지정한 어드레스 체계에서 지원되지 않는 형식 |
WSAEOPNOTSUPP |
10045 |
Socket이 연결지향형 서비스(SOCK_STREAM)형태가 아님 <예:listen이 UDP socket호출< |
WSAEPFNOSUPPORT |
10046 |
지정된 프로토콜 체계가(PF_*)지원되지 않음 |
WSAEAFNOSUPPORT |
10047 |
지정된 어드레스 체계가(AF_*)지원되지 않음 |
WSAEADDRINUSE |
10048 |
지정한 어드레스(IP)가 이미 사용중 |
WSAEADDRNOTAVAIL |
10049 |
지정된 어드레스는 로컬 머신에서 사용할 수 없음 |
WSAENETDOWN |
10050 |
네트웍 서브 시스템에 에러가 발생 |
WSAENETUNREACH |
10051 |
원격 시스템까지 네트웍이 도달할 수 없음 |
WSAENETRESET |
10052 |
연산이 진행되고 있는 도중 접속이 끊겨버림 |
WSAECONNABORTED |
10053 |
연결이 out-of-band나 다른 실패 떄문에 끊어져 버렸음 |
WSAECONNRESET |
10054 |
원격 연결지에서 “hard”나 “abortive” 종료를 수행해서 리셋되었음 |
WSAENOBUFS |
10055 |
윈도우 소켓 시스템의 버퍼 공간이 모자라거나, 애플리케이션에 의해 API에게 제돈되 공간이 너무 작아서 요청된 정보를 저장할 수 없음 |
WSAEISCONN |
10056 |
지정된 소켓이 이미 연결되어 있음 |
WSAENOTCONN |
10057 |
지정된 소켓이 이미 연결되어 있지 않음 |
WSAESHUTDOWN |
10058 |
소켓이 셧다운(shutdown()) 되었음 |
WSAETOOMANYREFS |
10059 |
지정한 함수에 대한 인자가 너무 많음 |
WSAETIMEOUT |
10060 |
접속 시도가 시간초과 되었음 |
WSAECONNREFUSED |
10061 |
접속 시도가 강제로 종료되었음 |
WSAELOOP |
10062 |
|
WSAENAMETOOLONG |
10063 |
|
WSAEHOSTDOWN |
10064 |
원격 호스트가 다운 되었음 |
WSAEHOSTUNREACH |
10065 |
네트워크 시스템 장애 들에 의해서 원격호스트까지 도달 할 수 없음 |
WSASYSNOREADY |
10091 |
네트워크 서브 시스템이 아직 통신할 준비가 되어 있지 않음(WSAStartup()이 반환) |
WSAVERNOTSUPPORTED |
10092 |
요청한 윈도우 소켓 버전이 현재 윈도우 시스템에서 지원하지 않음 |
WSANOTINITIALISED |
10093 |
이 함수를 사용하기 전에 성공적인 WSAStartup 함수의 호출이 없었음 |
WSAHOST_NOT_FOUND |
11001 |
호스트를 찾아낼 수 없음 |
WSATRY_AGAIN |
11002 |
요청된 정보가 발견되지 않음 |
WSANO_RECOVERY |
11003 |
회복할 수 없는 에러 발생 |
WSANO_DATA |
11004 |
잘못된 이름으로 아무런 데이터가 기록되지 않았음 |
'MFC > Microsoft Foundation Class' 카테고리의 다른 글
[MFC] 폴더 다이얼로그 - 2 <SHBrowseForFolder> (0) | 2011.02.10 |
---|---|
[MFC] 폴더 다이얼로그 - 1 <BROWSEINFO 구조체> (0) | 2011.02.10 |
[MFC] 가변인수 - va_list (0) | 2011.02.07 |
[MFC] SENDMESSAGE 로 문자열 보내기 (0) | 2011.02.07 |
[MFC] TIMER 사용시 여러개의 CALLBACK 함수 만들기 (0) | 2011.01.24 |
'MFC > Microsoft Foundation Class' 카테고리의 다른 글
[MFC] 폴더 다이얼로그 - 1 <BROWSEINFO 구조체> (0) | 2011.02.10 |
---|---|
대표적인 소켓 에러 (0) | 2011.02.08 |
[MFC] SENDMESSAGE 로 문자열 보내기 (0) | 2011.02.07 |
[MFC] TIMER 사용시 여러개의 CALLBACK 함수 만들기 (0) | 2011.01.24 |
Formview전환시 사용되는 함수들 (0) | 2011.01.19 |