Share via


Método IShellFolder::SetNameOf (shobjidl_core.h)

Define o nome de exibição de um objeto de arquivo ou subpasta, alterando o identificador de item no processo.

Sintaxe

HRESULT SetNameOf(
  [in]  HWND            hwnd,
  [in]  PCUITEMID_CHILD pidl,
  [in]  LPCWSTR         pszName,
  [in]  SHGDNF          uFlags,
  [out] PITEMID_CHILD   *ppidlOut
);

Parâmetros

[in] hwnd

Digite: HWND

Um identificador para a janela do proprietário de qualquer caixa de diálogo ou mensagem exibida pelo cliente.

[in] pidl

Tipo: PCUITEMID_CHILD

Um ponteiro para uma estrutura ITEMIDLIST que identifica exclusivamente o objeto de arquivo ou a subpasta em relação à pasta pai. A estrutura deve conter exatamente uma estrutura SHITEMID seguida por um zero de terminação.

[in] pszName

Tipo: LPCWSTR

Um ponteiro para uma cadeia de caracteres terminada em nulo que especifica o novo nome de exibição.

[in] uFlags

Tipo: SHGDNF

Sinalizadores que indicam o tipo de nome especificado pelo parâmetro pszName . Para obter uma lista de possíveis valores e combinações de valores, consulte SHGDNF.

[out] ppidlOut

Tipo: PITEMID_CHILD*

Opcional. Se especificado, o endereço de um ponteiro para uma estrutura ITEMIDLIST que recebe o ITEMIDLIST do item renomeado. O chamador solicita esse valor passando um ppidlOut não nulo. As implementações de IShellFolder::SetNameOf devem retornar um ponteiro para o novo ITEMIDLIST no parâmetro ppidlOut .

Retornar valor

Tipo: HRESULT

Se o método for bem-sucedido, ele retornará S_OK. Caso contrário, ele retornará um código de erro HRESULT.

Comentários

Alterar o nome de exibição de um objeto do sistema de arquivos ou uma pasta dentro dele renomeia o arquivo ou diretório.

Antes de chamar esse método, os aplicativos devem chamar IShellFolder::GetAttributesOf e marcar que o sinalizador SFGAO_CANRENAME esteja definido. Observe que esse sinalizador é essencialmente uma dica para clientes de namespace. Isso não implica necessariamente que IShellFolder::SetNameOf terá êxito ou falhará.

Os implementadores de IShellFolder::SetNameOf devem chamar SHChangeNotify com os PIDLs absolutos antigos e novos depois que a renomeação de um objeto for concluída. Este exemplo a seguir mostra a chamada para SHChangeNotify após a renomeação de um objeto de pasta.

SHChangeNotify(SHCNE_RENAMEFOLDER, SHCNF_IDLIST, pidlFullOld, pidlFullNew);

Essa chamada impede que os nomes antigos e novos sejam exibidos na exibição.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho shobjidl_core.h (inclua Shobjidl.h)
DLL Shell32.dll (versão 4.0 ou posterior)