Função SHGetNewLinkInfoW (shellapi.h)

Cria um nome para um novo atalho com base no destino proposto pelo atalho. Essa função não cria o atalho, apenas o nome.

Sintaxe

BOOL SHGetNewLinkInfoW(
  [in]  LPCWSTR pszLinkTo,
  [in]  LPCWSTR pszDir,
  [out] LPWSTR  pszName,
  [out] BOOL    *pfMustCopy,
  [in]  UINT    uFlags
);

Parâmetros

[in] pszLinkTo

Tipo: LPCTSTR

Um ponteiro para o caminho e o nome do arquivo do destino do atalho. Se uFlags não contiver o valor SHGNLI_PIDL , esse parâmetro será o endereço de uma cadeia de caracteres terminada em nulo que contém o destino. Se uFlags contiver o valor SHGNLI_PIDL , esse parâmetro será um PIDL que representa o destino.

[in] pszDir

Tipo: LPCTSTR

Um ponteiro para uma cadeia de caracteres terminada em nulo que contém o caminho da pasta na qual o atalho seria criado.

[out] pszName

Tipo: LPTSTR

Um ponteiro para uma cadeia de caracteres que recebe o caminho terminado em nulo e o nome do arquivo para o atalho. Supõe-se que esse buffer tenha pelo menos MAX_PATH caracteres de tamanho.

[out] pfMustCopy

Tipo: BOOL*

O endereço de um valor BOOL que recebe um sinalizador que indica se o atalho seria copiado. Quando um atalho para outro atalho é criado, o Shell simplesmente copia o atalho de destino e modifica o atalho copiado adequadamente. Esse parâmetro receberá um valor diferente de zero se o destino especificado em pszLinkTo especificar um atalho que fará com que o atalho de destino seja copiado. Esse parâmetro receberá zero se o destino não especificar um atalho que seria copiado.

[in] uFlags

Tipo: UINT

As opções para a função. Isso pode ser zero ou uma combinação dos valores a seguir.

SHGNLI_PIDL (0x000000001)

0x000000001. O destino apontado por pszLinkTo é um PIDL que representa o destino. Se esse sinalizador não estiver incluído, pszLinkTo será considerado como o endereço de uma cadeia de caracteres que contém o caminho e o nome do arquivo do destino.

SHGNLI_NOUNIQUE (0x000000002)

0x000000002. Ignore as verificações normais que garantem que o nome do atalho seja exclusivo dentro da pasta de destino. Se esse sinalizador não estiver incluído, a função criará o nome do atalho e determinará se o nome é exclusivo na pasta de destino. Se um arquivo com o mesmo nome já existir na pasta de destino, o nome do atalho será modificado. Esse processo é repetido até que um nome exclusivo seja encontrado.

SHGNLI_PREFIXNAME (0x000000004)

0x000000004. O nome criado será precedido pela cadeia de caracteres "Atalho para ".

SHGNLI_NOLNK (0x000000008)

0x000000008. Versão 5.0 Não adicione a extensão de nome de arquivo .lnk. Você deve definir a macro _WIN32_IE como 5.01 ou superior para usar esse sinalizador. Para obter mais informações sobre controle de versão, consulte Shell e Versões de controles comuns.

SHGNLI_NOLOCNAME (0x000000010)

0x000000010. Windows Vista e posterior. Use o nome de análise não localizado do destino apontado por pszLinkTo como o nome do arquivo de atalho. Se esse sinalizador não estiver definido, o nome localizado será usado.

SHGNLI_USEURLEXT (0x000000020)

0x000000020. Windows 7 e posterior. Acrescente uma extensão de nome de arquivo .url (em vez de .lnk) ao nome apontado por pszName. Se esse sinalizador não estiver definido, o nome do atalho usará uma extensão de .lnk, a menos que SHGNLI_NOLNK esteja definido.

Retornar valor

Tipo: BOOL

Retorna TRUE se tiver êxito; caso contrário, FALSE.

Comentários

SHGetNewLinkInfo determina se o sistema de arquivos de destino dá suporte a nomes de arquivo longos. Se isso acontecer, um nome de arquivo longo será usado para o nome do atalho. Se o sistema de arquivos de destino não der suporte a nomes de arquivo longos, o nome do atalho será retornado em um formato 8.3.

Observação

O cabeçalho shellapi.h define SHGetNewLinkInfo como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante de pré-processador UNICODE. Misturar o uso do alias neutro de codificação com código que não seja neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Convenções para protótipos de função.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional, Windows XP, Windows 7 [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 shellapi.h
Biblioteca Shell32.lib
DLL Shell32.dll (versão 4.71 ou posterior)