Поделиться через


Функция SHGetNewLinkInfoA (shellapi.h)

Создает имя для нового ярлыка на основе предлагаемого целевого объекта ярлыка. Эта функция не создает ярлык, а только имя.

Синтаксис

BOOL SHGetNewLinkInfoA(
  [in]  LPCSTR pszLinkTo,
  [in]  LPCSTR pszDir,
  [out] LPSTR  pszName,
  [out] BOOL   *pfMustCopy,
  [in]  UINT   uFlags
);

Параметры

[in] pszLinkTo

Тип: LPCTSTR

Указатель на путь и имя файла целевого объекта ярлыка. Если uFlags не содержит значение SHGNLI_PIDL, этот параметр является адресом строки, завершаемой значением NULL, содержащей целевой объект. Если uFlags содержит значение SHGNLI_PIDL, этот параметр представляет целевой объект.

[in] pszDir

Тип: LPCTSTR

Указатель на строку, завершающую значение NULL, содержащую путь к папке, в которой будет создан ярлык.

[out] pszName

Тип: LPTSTR

Указатель на строку, которая получает путь, завершающий значение NULL, и имя файла для ярлыка. Предполагается, что этот буфер имеет размер по крайней мере MAX_PATH символов.

[out] pfMustCopy

Тип: BOOL*

Адрес значения BOOL, получающего флаг, указывающий, будет ли скопирован ярлык. При создании ярлыка к другому ярлыку оболочка просто копирует целевой ярлык и изменяет его соответствующим образом. Этот параметр получает ненулевое значение, если целевой объект, указанный в pszLinkTo указывает ярлык, который приведет к копированию целевого ярлыка. Этот параметр получает ноль, если целевой объект не указывает ярлык, который будет скопирован.

[in] uFlags

Тип: UINT

Параметры функции. Это может быть ноль или сочетание следующих значений.

SHGNLI_PIDL (0x000000001)

0x000000001. Целевой объект, на который указывает pszLinkTo, представляет целевой объект. Если этот флаг не включен, pszLinkTo считается адресом строки, содержащей путь и имя файла целевого объекта.

SHGNLI_NOUNIQUE (0x000000002)

0x000000002. Пропустите обычные проверки, чтобы убедиться, что имя ярлыка уникально в целевой папке. Если этот флаг не включен, функция создает ярлык и определяет, является ли имя уникальным в целевой папке. Если файл с тем же именем уже существует в целевой папке, имя ярлыка будет изменено. Этот процесс повторяется до тех пор, пока не будет найдено уникальное имя.

SHGNLI_PREFIXNAME (0x000000004)

0x000000004. Созданное имя будет предшествовать строке "Ярлык к".

SHGNLI_NOLNK (0x000000008)

0x000000008. версии 5.0 Не добавляйте расширение имени файла .lnk. Чтобы использовать этот флаг, необходимо задать для макроса _WIN32_IE значение 5.01 или больше. Дополнительные сведения о версии оболочки и общих элементов управления см. в разделе "Версии оболочки" и "Общие элементы управления".

SHGNLI_NOLOCNAME (0x000000010)

0x000000010. Windows Vista и более поздних версий. Используйте не локализованное имя синтаксического анализа целевого объекта, на которое указывает pszLinkTo в качестве имени ярлыка файла. Если этот флаг не задан, используется локализованное имя.

SHGNLI_USEURLEXT (0x000000020)

0x000000020. Windows 7 и более поздних версий. Добавьте расширение имени URL-файла (а не .lnk) к имени, на которое указывает pszName. Если этот флаг не задан, ярлык использует расширение .lnk, если SHGNLI_NOLNK не задано.

Возвращаемое значение

Тип: BOOL

Возвращает TRUE в случае успешного выполнения; в противном случае FALSE.

Замечания

SHGetNewLinkInfo определяет, поддерживает ли целевая файловая система длинные имена файлов. Если это так, для ярлыка используется длинное имя файла. Если целевая файловая система не поддерживает длинные имена файлов, имя ярлыка возвращается в формате 8.3.

Заметка

Заголовок shellapi.h определяет SHGetNewLinkInfo как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows 2000 Профессиональный, Windows XP, Windows 7 [только классические приложения]
минимальный поддерживаемый сервер Windows 2000 Server [только классические приложения]
целевая платформа Виндоус
заголовка shellapi.h
библиотеки Shell32.lib
DLL Shell32.dll (версия 4.71 или более поздняя)