관리 메뉴

ㄴrㅎnㅂrㄹrㄱi

SHGetFolderPath(A) 본문

Ntool Works/작업 참조

SHGetFolderPath(A)

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

SHGetFolderPath(A)

CSIDL 치(으)로부터, 대응하는 폴더의 패스명을 취득합니다.

HRESULT SHGetFolderPathA(
    HWND   hwndOwner,
    int    nFolder,
    HANDLE hToken,
    DWORD  dwFlags,
    LPTSTR pszPath
);

SHELL32.DLL 또는 SHFOLDER.DLL

인수

hwndOwner

오너 윈도우의 핸들을 지정합니다.통상, 이 파라미터에는 0 (NULL) 하지만 지정됩니다.이 파라미터가 0 (NULL) (이)가 아니고, 한편, 폴더에 액세스 하는데 다이얼 업 접속이 필요한 경우에, 이 윈도우에 대해서 유저 인터페이스 prompt가 표시됩니다.

nFolder

패스명을 취득하는 폴더를 식별한다 CSIDL 치(을)를 지정합니다.실폴더만이 유효하고, 가상 폴더를 지정했을 경우에는 함수는 실패합니다.폴더의 CSIDL 값에 CSIDL_FLAG_CREATE (을)를 결합해 지정하는 것으로, 폴더가 존재하지 않는 경우에, 자동적으로 대응하는 폴더가 작성됩니다.

hToken

특정의 유저를 나타내는데 사용되는 액세스 토큰을 지정합니다. Windows 2000 보다 전의 시스템에서는, 이 파라미터에 0 (NULL) (을)를 지정해야 합니다.그 이후의 시스템에 대해도, 일반적으로 이 파라미터에는 0 (NULL) 하지만 지정됩니다.

dwFlags

어느 쪽의 패스가 돌려주어지는지를 지정하는 플래그를 지정합니다.이 파라미터는, CSIDL 값에 할당할 수 있고 있는 폴더가 유저에 의해서 이동되거나 이름이 변경될지도 모르는 경우에 사용됩니다.

의미
0 (SHGFP_TYPE_CURRENT)

폴더의 현재의 패스명을 돌려줍니다.

1 (SHGFP_TYPE_DEFAULT)

폴더의 디폴트의 패스명을 돌려줍니다.

pszPath

패스명을 나타내는 눌 종단 문자열을 격납하는 버퍼의 주소를 지정합니다.이 버퍼의 사이즈는 적어도 260 (MAX_PATH) 아르바이트(Unicode 판의 경우는 260 (MAX_PATH) 문자) 이상이 아니면 안됩니다.함수가 실패하는지, (S_FALSE) (을)를 돌려주었을 경우는, 공문자열이 됩니다.

반환값

HRESULT 형태의 코드(에러의 경우에 최상위비트가 세트 된다)가 돌아갑니다.(ANSI판의 경우는 함수가 실패했을 때에, 최상위비트가 세트 되어 있지 않은 값 S_FALSE (을)를 돌려주는 경우가 있으므로 주의.) 이 코드는 이하의 값이 되는 경우가 있습니다.

의미
0x00000001 (S_FALSE)

SHGetFolderPathA (ANSI판 함수) 마셔: nFolder 파라미터의 CSIDL 값은 유효합니다만, 그 폴더가 존재하지 않습니다.

0x80000008 (E_FAIL)

SHGetFolderPathW (Unicode판 함수) 마셔: nFolder 파라미터의 CSIDL 값은 유효합니다만, 그 폴더가 존재하지 않습니다.

0x80000003 (E_INVALIDARG)

nFolder 파라미터에 CSIDL 값으로 해서 무효인 값이 지정되었습니다.

해설

이 함수는, 이전의 버젼의 쉘에 포함된다 SHGetSpecialFolderPath 함수의 슈퍼 세트입니다. Shell32.dll Version 5.0 (Windows Me/2000)보다 전의 시스템에서는, SHGetFolderPath 함수는 SHFolder.dll (으)로부터 제공됩니다.이 DLL (은)는, Microsoft Internet Explorer 5.0 이후에 배포됩니다. SHFolder.dll (은)는 현재의 플랫폼의 버젼의 함수를 호출합니다.이것에 실패하면, 적절한 행동을 흉내내려고 시도합니다.이 함수는 현재 Shell32.dll 에 실장되고 있습니다만, 호환성이기 때문에 계속해 SHFolder.dll 그리고 서포트됩니다.

CSIDL 치 가운데, 이하의 것만이 서포트됩니다.

  • CSIDL_ADMINTOOLS
  • CSIDL_COMMON_ADMINTOOLS
  • CSIDL_APPDATA
  • CSIDL_COMMON_APPDATA
  • CSIDL_COMMON_DOCUMENTS
  • CSIDL_COOKIES
  • CSIDL_FLAG_CREATE
  • CSIDL_HISTORY
  • CSIDL_INTERNET_CACHE
  • CSIDL_LOCAL_APPDATA
  • CSIDL_MYPICTURES
  • CSIDL_PERSONAL
  • CSIDL_PROGRAM_FILES
  • CSIDL_PROGRAM_FILES_COMMON
  • CSIDL_SYSTEM
  • CSIDL_WINDOWS

대응 정보

Shell32.dll Version 5.00 이후

Windows Me / 2000 이후

SHFolder.dll

Windows 98 SE 이후 / Windows NT 4.0 SP4 이후

Internet Explorer 5.0 이후를 인스톨 했다 Windows 95 / 98 / NT 4.0

반응형

'Ntool Works > 작업 참조' 카테고리의 다른 글

SHGetSpecialFolderLocation  (0) 2007.11.08
SHGetPathFromIDList(A)  (0) 2007.11.08
SHGetMalloc  (0) 2007.11.08
SHFreeNameMappings  (0) 2007.11.08
SHFileOperation(A)  (0) 2007.11.08
Comments