IShellFolder::SetNameOf 메서드(shobjidl_core.h)
파일 개체 또는 하위 폴더의 표시 이름을 설정하여 프로세스에서 항목 식별자를 변경합니다.
구문
HRESULT SetNameOf(
[in] HWND hwnd,
[in] PCUITEMID_CHILD pidl,
[in] LPCWSTR pszName,
[in] SHGDNF uFlags,
[out] PITEMID_CHILD *ppidlOut
);
매개 변수
[in] hwnd
형식: HWND
클라이언트가 표시하는 대화 상자 또는 메시지 상자의 소유자 창에 대한 핸들입니다.
[in] pidl
형식: PCUITEMID_CHILD
부모 폴더를 기준으로 파일 개체 또는 하위 폴더를 고유하게 식별하는 ITEMIDLIST 구조체에 대한 포인터입니다. 구조체에는 정확히 하나의 SHITEMID 구조체와 종료 0이 있어야 합니다.
[in] pszName
형식: LPCWSTR
새 표시 이름을 지정하는 null로 끝나는 문자열에 대한 포인터입니다.
[in] uFlags
형식: SHGDNF
pszName 매개 변수로 지정된 이름의 형식을 나타내는 플래그입니다. 가능한 값 및 값 조합 목록은 SHGDNF를 참조하세요.
[out] ppidlOut
형식: PITEMID_CHILD*
선택 사항입니다. 지정된 경우 이름이 바뀐 항목의 ITEMIDLIST 를 수신하는 ITEMIDLIST 구조체에 대한 포인터의 주소입니다. 호출자는 null이 아닌 ppidlOut을 전달하여 이 값을 요청합니다. IShellFolder::SetNameOf의 구현은 ppidlOut 매개 변수의 새 ITEMIDLIST에 대한 포인터를 반환해야 합니다.
반환 값
형식: HRESULT
메서드가 성공하면 S_OK를 반환하고, 그러지 않으면 HRESULT 오류 코드를 반환합니다.
설명
파일 시스템 개체 또는 그 안에 있는 폴더의 표시 이름을 변경하면 파일 또는 디렉터리의 이름이 바뀝니다.
이 메서드를 호출하기 전에 애플리케이션은 IShellFolder::GetAttributesOf를 호출하고 SFGAO_CANRENAME 플래그가 설정되어 있는지 검사 합니다. 이 플래그는 기본적으로 네임스페이스 클라이언트에 대한 힌트입니다. 반드시 IShellFolder::SetNameOf가 성공하거나 실패함을 의미하지는 않습니다.
IShellFolder::SetNameOf의 구현자는 개체 이름 바꾸기가 완료되면 이전 및 새 절대 PIDL을 모두 사용하여 SHChangeNotify를 호출해야 합니다. 다음 예제에서는 폴더 개체의 이름을 변경한 후 SHChangeNotify 를 호출하는 방법을 보여줍니다.
SHChangeNotify(SHCNE_RENAMEFOLDER, SHCNF_IDLIST, pidlFullOld, pidlFullNew);
이 호출은 보기에 이전 이름과 새 이름이 모두 표시되지 않도록 합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows XP [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows 2000 Server[데스크톱 앱만] |
대상 플랫폼 | Windows |
헤더 | shobjidl_core.h(Shobjidl.h 포함) |
DLL | Shell32.dll(버전 4.0 이상) |