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