다음을 통해 공유


SHSetFolderPathA 함수(shlobj_core.h)

되지 않는. CSIDL로 식별되는 시스템 폴더에 새 경로를 할당합니다.

통사론

HRESULT SHSetFolderPathA(
  [in] int    csidl,
  [in] HANDLE hToken,
  [in] DWORD  dwFlags,
  [in] LPCSTR pszPath
);

매개 변수

[in] csidl

형식: int

경로를 설정할 폴더를 식별하는 CSIDL 값입니다. 실제 폴더만 유효합니다. 가상 폴더를 지정하면 이 함수가 실패합니다.

CSIDL에 CSIDL_FLAG_DONT_UNEXPAND 값을 추가하여 문자열이 제공된 대로 레지스트리에 정확하게 기록되도록 합니다. CSIDL_FLAG_DONT_UNEXPAND 플래그가 포함되지 않은 경우 경로의 일부가 %USERPROFILE%같은 환경 문자열로 대체될 수 있습니다.

[in] hToken

형식: HANDLE

특정 사용자를 나타내는 데 사용할 수 있는 액세스 토큰. 이 매개 변수는 일반적으로 NULL설정되며, 이 경우 함수는 폴더의 현재 사용자 인스턴스에 액세스하려고 합니다. 그러나 여러 사용자가 있을 수 있지만 단일 사용자에 속하는 것으로 처리되는 폴더에 대해 hToken 값을 할당해야 할 수 있습니다. 이 유형의 가장 일반적으로 사용되는 폴더는 문서.

호출 애플리케이션은 hToken null이 아닌 경우 올바른 가장을 담당합니다. TOKEN_QUERY 및 TOKEN_IMPERSONATE 포함하여 특정 사용자에 대한 적절한 보안 권한이 있어야 하며 사용자의 레지스트리 하이브를 현재 탑재해야 합니다. 액세스 제어 문제에 대한 자세한 내용은 Access Control 참조하세요.

[in] dwFlags

형식: DWORD

예약. 0으로 설정해야 합니다.

[in] pszPath

형식: LPCTSTR

폴더의 새 경로를 포함하는 null로 끝나는 길이 MAX_PATH 문자열에 대한 포인터입니다. 이 값은 NULL수 없으며 문자열 길이는 0일 수 없습니다.

반환 값

형식: HRESULT

다음을 포함하여 표준 HRESULT 코드를 반환합니다.

반환 코드 묘사
S_OK
폴더의 경로가 업데이트되었습니다.
E_INVALIDARG
몇 가지 오류 조건으로 인해 다음을 포함하여 이 값이 반환됩니다.
  • csidl 값이 잘못되었습니다.
  • csidl 값은 가상 폴더를 참조하지 않습니다.
  • csidl 값은 시스템 폴더를 참조하지 않습니다.
  • csidl 값은 이름을 바꾸거나 이동할 수 없는 폴더를 나타냅니다.
  • dwFlags 값은 0이 아닙니다.
  • pszPath 값은 NULL.
  • pszPath 값이 가리키는 문자열은 길이가 0인 빈 문자열("")입니다.

발언

참고 Windows Vista를 기준으로 이 함수는 SHSetKnownFolderPath대한 래퍼일 뿐입니다. CSIDL 값은 연결된 KNOWNFOLDERID 변환되고 SHSetKnownFolderPath 호출됩니다. 새 애플리케이션은 이전 버전과의 호환성을 위해서만 지원되는 이전 CSIDL 시스템 대신 알려진 폴더 시스템을 사용해야 합니다.
 
SHSetFolderPath Shell32.dll이름으로 내보내지 않습니다. 함수를 사용하려면 SHSetFolderPathA 대한 서수 231이 있는 GetProcAddress 호출하거나(ANSI 문자열의 경우) SHSetFolderPathW 서수 232를 호출하여 함수 포인터를 가져와야 합니다.

폴더 이름에 ANSI에서 표현할 수 없는 유니코드 문자가 포함될 수 있으므로 경로를 유니코드 문자열로 표현하는 것이 좋습니다.

메모

shlobj_core.h 헤더는 UNICODE 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 SHSetFolderPath를 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입대한 규칙을 참조하세요.

요구 사항

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

참고 항목

IKnownFolder::SetPath