다음을 통해 공유


SHGetFolderLocation 함수(shlobj_core.h)

더 이상 사용되지 않습니다. 폴더의 경로를 ITEMIDLIST 구조체로 검색합니다.

구문

SHSTDAPI SHGetFolderLocation(
  [in]  HWND             hwnd,
  [in]  int              csidl,
  [in]  HANDLE           hToken,
  [in]  DWORD            dwFlags,
  [out] PIDLIST_ABSOLUTE *ppidl
);

매개 변수

[in] hwnd

형식: HWND

예약되어 있습니다.

[in] csidl

형식: int

위치할 폴더를 식별하는 CSIDL 값입니다. CSIDL과 연결된 폴더가 특정 시스템에 없을 수 있습니다.

[in] hToken

형식: HANDLE

특정 사용자를 나타내는 데 사용할 수 있는 액세스 토큰 입니다. 일반적으로 NULL로 설정되지만 단일 사용자에 속하는 것으로 처리되는 폴더에 대해 여러 사용자가 있을 때 필요할 수 있습니다. 이 유형의 가장 일반적으로 사용되는 폴더는 내 문서입니다. 호출 애플리케이션은 hTokenNULL이 아닌 경우 올바른 가장을 담당합니다. 특정 사용자에 대한 적절한 보안 권한이 있어야 하며 사용자의 레지스트리 하이브가 현재 탑재되어 있어야 합니다. 액세스 제어 문제에 대한 자세한 내용은 Access Control 참조하세요.

hToken 매개 변수에 -1 값을 할당하면 기본 사용자가 표시됩니다. 이렇게 하면 SHGetFolderLocation 의 클라이언트가 기본 사용자에 대한 폴더 위치(예: 데스크톱 폴더)를 찾을 수 있습니다. 기본 사용자 사용자 프로필은 새 사용자 계정을 만들 때 중복되며 내 문서데스크톱과 같은 특수 폴더를 포함합니다. 기본 사용자 폴더에 추가된 모든 항목도 새 사용자 계정에 표시됩니다.

[in] dwFlags

형식:DWORD

[out] ppidl

형식: PIDLIST_ABSOLUTE*

네임스페이스(바탕 화면)의 루트를 기준으로 폴더의 위치를 지정하는 항목 식별자 목록 구조에 대한 포인터의 주소입니다. 실패 시 ppidl 매개 변수가 NULL로 설정됩니다. 호출 애플리케이션은 ILFree를 호출하여 이 리소스를 해제할 책임이 있습니다.

반환 값

형식: HRESULT

성공하면 S_OK 반환하고, 그렇지 않으면 다음을 포함하여 오류 값을 반환합니다.

반환 코드 설명
HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND)
nFolderCSIDL은 유효하지만 폴더가 없습니다.
E_INVALIDARG
nFolderCSIDL이 잘못되었습니다.

설명

참고 Windows Vista를 기준으로 이 함수는 SHGetKnownFolderIDList에 대한 래퍼일 뿐입니다. CSIDL 값은 연결된 KNOWNFOLDERID 로 변환되고 SHGetKnownFolderIDList 가 호출됩니다. 새 애플리케이션은 이전 버전과의 호환성을 위해서만 지원되는 이전 CSIDL 시스템 대신 알려진 폴더 시스템을 사용해야 합니다.
 
SHGetFolderLocation, SHGetFolderPath, SHGetSpecialFolderLocationSHGetSpecialFolderPath 함수는 Windows Vista 이전 시스템의 폴더에 대한 핸들을 가져오는 기본 방법입니다. 환경 변수 이름을 직접 사용하는 ExpandEnvironmentStrings 와 같은 함수는 %VariableName%형식으로 신뢰할 수 없을 수 있습니다.

이 함수는 이전 버전의 셸 에 포함된 SHGetSpecialFolderLocation의 상위 집합입니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional, Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 shlobj_core.h(Shlobj.h 포함)
라이브러리 Shell32.lib
DLL Shell32.dll(버전 5.0 이상)

추가 정보

IKnownFolder::GetIDList