다음을 통해 공유


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 이상)