MFC/Microsoft Foundation Class 2011. 2. 10. 14:12

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.
 lpfn : 응용프로램 정의 함수의 주소는 대화상자 이벤트가 발생할 때 호출합니다 자세한 내용은 BrowseCallbackProc기능을 참조하십시오. 이 멤버는 NULL이 될 수 있습니다.

lParam : 하나를 지정하면 응용프로갬 정의 값이 대화상자의 콜백함수로 전달합니다.
iImage : 변수에 선택한 폴더에 관련된 이미지를 받을 수 있습니다.
이미지가 시스템 이미지 목록 인덱스로 지정됩니다.
:
MFC/Microsoft Foundation Class 2011. 2. 8. 13:41

에러 변수

에러코드

설 명

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)형태가 아님

<:listenUDP 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 2011. 2. 7. 10:52
: