Навигация
Оглавление

Function AreFileApisANSI:boolean;

Функция не имеет входных параметров.

Используйте эту функцию, для определения текущей кодовой страницы, для файловых функций.

Возвращаемые значения:
true (-1) если набор Win32s файловых функций использует кодовую страницу - ANSI
false (0) если набор Win32s файловых функций использует кодовую страницу - OEM

Замечания:

Используйте функцию SetFileApisToOEM для установки OEM кодовой страницы.
Используйте функцию SetFileApisToANSI для установки ANSI кодовой страницы.
За дополнительной информацией обращайтесь к секции пометки функций SetFileApisToANSI, SetFileApisToOEM

Функция находится в файле kernel32.dll

function CompareFileTime(const lpFileTime1, lpFileTime2: TFileTime): Longint;

Функция сравнивает 64-битное время файлов.

Параметры:
lpFileTime1: Структура TFileTime которая содержит первое из сравниваемых времен.

lpFileTime2: Структура TFileTime которая содержит второе из сравниваемых времен.

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

С слечае успеха возвращаются следующие значения:
-1 - Первое время меньше второго.
0 - Равны.
1 - Певрое больше.

См. также: GetFileTime

Функция находится в файле kernel32.dll

function CopyFile(lpExistingFileName, lpNewFileName: PChar; bFailIfExists: BOOL): BOOL;

Копирует файл.

Параметры:
lpExistingFileName: Строка к имени файлу источника.

lpNewFileName: Строка имени нового файла.

bFailIfExists:параметр определяет поведение функции в том случае если файл lpNewFileName уже существует. Если параметр True и файл существует, то функция терпит неудачу. В противном случае функция перезапишет файл.

Возвращаемые значения
Если успешно то не ноль.
Если функция терпит неудачу - ноль. Чтобы получить расширенную информацию об ошибке, вызовите функцию GetLastError.

Замечания:
Атрибуты безопасности старого файла не переписываются в новый.
Атрибуты Файла (FILE_ATTRIBUTE_) старого файла копируются в новый файл.

function CopyFileEx(lpExistingFileName, lpNewFileName: PChar; lpProgressRoutine: TFNProgressRoutine; lpData: Pointer; pbCancel: PBool; dwCopyFlags: DWORD): BOOL;

Параметры:
lpExistingFileName, lpNewFileName: путь к файлу источнику, приёмнику.

lpProgressRoutine : адрес Callback функции или nil. Эта функция вызывается после того, как скопируется очередная порция данных. см. CopyProgressRoutine. Функция CopyProgressRoutine существует только в WinNT;

lpData : данные для Callback функции. может принимать значение nil.

pbCancel: Флаг на останов копирования. Если этот флаг будет установлен в процессе копирования, то процесс завершает свою заботу.

dwCopyFlags: Флаги указывающие, как файл будет скопирован:
COPY_FILE_FAIL_IF_EXISTS - Если файл назначения существует, то копирование не происходит.
COPY_FILE_RESTARTABLE - Указывает, что если в процессе копирования произойдёт ошибка, то копирование можно будет продолжить позднее, указав для lpExistingFileName, lpNewFileName те же значения что были в предыдущем вызове функции.

Возвращаемые значения:
0 в случае ошибки. Используйте GetLastError для получения подробной информации.

function CreateDirectory(lpPathName: PChar;
lpSecurityAttributes: PSecurityAttributes): BOOL;

Создает новую папку. Если файловая система поддерживает безопасность, функция применяет указанный описатель безопасности к новой папке. Обратите внимание, что CreateDirectory не имеет параметра шаблона, в то время как CreateDirectoryEx имеет.

Параметры

lpPathName: Строка содержащая путь к создаваемой папке.
Максимальный размер пути равен MAX_PATH знаков.
Windows NT: Можно использовать пути более MAX_PATH знаков, вызывая расширенную (W) версию CreateFile и подставив " \\?\" в Путь. " \\?\" говорит функции выключать парсинг пути. Это позволяет вам использовать пути, которые имеют почти 32 000 Unicode знаков. Функция также работает с именами internet-протокола. " \\?\" игнорируется как часть пути. Например, " \\?\C:\myworld\private" будет трансформирован в "C:\myworld\private", а " \\?\UNC\tom_1\hotstuff\coolapps" будет трансформирован в "\\tom_1\hotstuff\coolapps".

lpSecurityAttributes: Указатель на структуру TSecurityAttributes, которая определяет, может ли возвращенный указатель быть использован процессами-потомками. Если lpSecurityAttributes является пустым, указатель не может быть унаследован.
Windows NT: поле структуры lpSecurityDescriptor определяет описатель безопасности для объекта. Если lpSecurityAttributes является пустым, объект получает описатель по умолчинию. Файловая система должна поддерживать ружим безопасности.

Windows 95: поле lpSecurityDescriptor игнорируется.

Возвpащаемое значение:
Если успешно то не ноль.
Если функция терпит неудачу - ноль. Чтобы получить расширенную информацию об ошибке, вызовите функцию GetLastError.

function CreateDirectoryEx(lpTemplateDirectory, lpNewDirectory: PChar;
lpSecurityAttributes: PSecurityAttributes): BOOL; stdcall;

Создает новую папку содержащую признаки папки-шаблона. Если файловая система поддерживает безопасность, функция применяет указанный описатель безопасности к новой папке.

Параметры
lpTemplateDirectory: Путь к папке-шаблону.

lpNewDirectory: путь создаваемой папки.

lpSecurityAttributes: Указатель на структуру TSecurityAttributes, которая определяет, может ли возвращенный указатель быть использован процессами-потомками. Если lpSecurityAttributes является пустым, указатель не может быть унаследован.
Windows NT: поле структуры lpSecurityDescriptor определяет описатель безопасности для объекта. Если lpSecurityAttributes является пустым, объект получает описатель по умолчинию. Файловая система должна поддерживать ружим безопасности.

Windows 95: поле lpSecurityDescriptor игнорируется.

Возвpащаемое значение:
Если успешно то не ноль.
Если функция терпит неудачу - ноль. Чтобы получить расширенную информацию об ошибке, вызовите функцию GetLastError.

Замечания
Функция CreateDirectoryEx позволяет создавать папки, которые могут наследовать информацию потока других папок. Эта функция полезна, например, когда имеешь дело с папками Макинтоша, которые имеют поток ресурса, идентифицирующий признак содержания.

Windows NT:Некоторые файловые системы, типа NTFS, поддерживают сжатие для индивидуальных файлов и папок. На устройствах, отформатированных в NTFS, новая папка наследует признак сжатия его родительскй папки. Вы можете получить указатель к папке, вызывая функцию CreateFile с флагом FILE_FLAG_BACKUP_SEMANTICS.

function CreateFile(lpFileName: PChar; dwDesiredAccess, dwShareMode: DWORD;
lpSecurityAttributes: PSecurityAttributes; dwCreationDisposition, dwFlagsAndAttributes: DWORD;
hTemplateFile: THandle): THandle;

Создает или открывает следующие объекты и возвращает Хендл (handle), для получения доступа к объекту:
· файлам
· каналам (pipes)
· mailslots

· коммуникационные ресурсы (communications resources)
· Дисковым устройствам (только для Windows NT)
· консолям (consoles)
· папкам (только открытие)

Параметры

lpFileName: Строка которая определяет название объекта для создания или открытия. Если lpFileName - путь, то максимум символов в строке определено константой MAX_PATH.
Windows NT: Можно использовать пути более MAX_PATH знаков, вызывая расширенную (W) версию CreateFile и подставив " \\? \ " в Путь. " \\? \ " говорит функции выключать парсинг пути. Это позволяет вам использовать пути, которые имеют почти 32 000 Unicode знаков. Функция также работает с именами internet-протокола. " \\? \ " игнорируется как часть пути. Например, " \\? \C:\myworld\private" будет трансформирован в "C:\myworld\private", а " \\? \UNC\tom_1\hotstuff\coolapps" будет трансформирован в " \\ tom_1\hotstuff\coolapps".

dwDesiredAccess: Определяет тип доступа к объекту. Приложение может получить доступ по чтению, записи, записи-чтению. Этим параметром может быть любая комбинация следующих флагов:
-0 - Специальный флаг доступа к обьекту. Определяет аттрибуты файла не подсоединяясь к нему, не подсоединяясь к нему.
-GENERIC_READ- определяет доступ по чтению к устройству. Данные могут читаться из файла, а указатель файла может быть перемещен. Объединяется с флагом GENERIC_WRITE для доступа по чтению-записи.

-GENERIC_WRITE - определяет, доступ по записи к устройству. Данные могут быть записываться в файл, и указатель файла может быть перемещен. Объединяется с флагом GENERIC_WRITE для доступа по чтению-записи.

dwShareMode: Набор флагов который определяет, как объект может быть разделен(shared). Если dwShareMode - 0, объект не может быть разделен. Последующие операции открытия объекта будут отклонены, пока указатель не будет закрыт.
Чтобы разделить объект, используйте комбинацию следующих флагов:

-FILE_SHARE_DELETE - только для Windows NT : Доступ закрыт для всех кроме открывшего, после закрытия указателя файл будет удален.
- FILE_SHARE_READ - Доступ для чтения.
-FILE_SHARE_WRITE - Доступ для записи.

lpSecurityAttributes: Указатель на структуру TSecurityAttributes, которая определяет, может ли возвращенный указатель быть использован процессами-потомками. Если lpSecurityAttributes является пустым, указатель не может быть унаследован.
Windows NT: поле структуры lpSecurityDescriptor определяет описатель безопасности для объекта. Если lpSecurityAttributes является пустым, объект получает описатель по умолчанию. Файловая система должна поддерживать ружим безопасности.

Windows 95: поле lpSecurityDescriptor игнорируется.

dwCreationDistribution: Определяет действие которое надо совершить в случае когда файлы существуют, и какое когда файлы не существуют. Дополнительную информацию см. в Примечаниях. Этим параметром должна быть один из следующих флагов:
-CREATE_NEW создает новый файл. Функция терпит неудачу, если указанный файл уже существует.
-CREATE_ALWAYS создает новый файл. Функция переписывает файл, если он существует.
-OPEN_EXISTING открывает файл. Функция терпит неудачу, если файл не существует.

-OPEN_ALWAYS открывает файл, если он существует. Если файл не существует, функция создает файл.
-TRUNCATE_EXISTING открывает файл. После того файл открывается его размер обнуляется. Процесс запроса должен открыть файл с по крайней мере с GENERIC_WRITE доступом. Функция терпит неудачу, если файл не существует.

dwFlagsAndAttributes: Определяет признаки файла и флаги для файла.
Любая комбинация следующих признаков приемлема. Все признаки файла перекрывают FILE_ATTRIBUTE_NORMAL. См. FILE_ATTRIBUTE_.

Любая комбинация следующих флагов приемлема для использования.
- FILE_FLAG_WRITE_THROUGH - говорит системе чтобы при записи в кэш сразу шла запись на диск.
- FILE_FLAG_OVERLAPPED - говорит системе возвращать указатель даже если действие еще не завершено. Без этого флага функции ReadFile, WriteFile, ConnectNamedPipe, и TransactNamedPipe, которые занимают существенное время, возвращают ERROR_IO_PENDING. Когда действие закончено, вызывается событие указывающее об этом.Когда Вы определяете FILE_FLAG_OVERLAPPED, ReadFile, и функции WriteFile должны определить структуру TOverlapped.Когда FILE_FLAG_OVERLAPPED определен, операционная система не не обслуживает указатель файла. Позицию указателя файла нужно передать как часть параметра lpOverlapped (указывающий на структуру TOverlapped ) к функциям WriteFile и ReadFile.

Этот флаг также позволяет выполняться более чем одному действию с указателем файла ( например одновременный читать и писать).
- FILE_FLAG_NO_BUFFERING - Инструктирует операционную систему открывать файл без промежуточного буфера или кэширования.
- FILE_FLAG_RANDOM_ACCESS - Указывает, что к файлу обращаются беспорядочно. Windows может использовать это как намек, чтобы оптимизировать кэширование файла.
- FILE_FLAG_SEQUENTIAL_SCAN - Указывает, что к файлу нужно обратиться последовательно с начала до конца. Windows может использовать это как намек, чтобы оптимизировать кэширование файла.

- FILE_FLAG_DELETE_ON_CLOSE - Указывает, что операционная система должна удалить файл немедленно после того, как все его указатели будут закрыты.
- FILE_FLAG_BACKUP_SEMANTICS - только для Windows NT: Указывает, что файл открывается или создается для резервирования или восстанавления. Операционная система гарантирует, что процесс запроса отвергает проверку безопасности файла. Уместные разрешения - SE_BACKUP_NAME, и SE_RESTORE_NAME.
FILE_FLAG_POSIX_SEMANTICS - Указывает, что к файлу нужно обратиться согласно правилам POSIX.

Если функция CreateFile открывает клиент канала, параметр dwFlagsAndAttributes может также содержать Security Quality of Service information. Когда приложение запрашивает флаг SECURITY_SQOS_PRESENT, параметр dwFlagsAndAttributes может содержать один или больше следующих флагов:
- SECURITY_ANONYMOUS - определяет Анонимнго клиента(Anonymous).
- SECURITY_IDENTIFICATION - определяет Идентифицируемого клиента(Identification).
- SECURITY_IMPERSONATION определяет клиента уровня IMPERSONATION.

- SECURITY_DELEGATION - определяет клиента уровня DELEGATION.
- SECURITY_CONTEXT_TRACKING - определяет, что способ отслеживания безопасности является динамическим.
- SECURITY_EFFECTIVE_ONLY - определяет, что только позволенные аспекты содержания безопасности клиента доступны серверу. Если Вы не определяете этот флаг, все аспекты содержания безопасности клиента доступны. Этот флаг позволяет клиенту ограничивать группы и привилегии которые сервер может использовать при исполнении запроса клиента.

hTemplateFile - Определяет указатель с доступом GENERIC_READ к файлу шаблона. Файл шаблона задает признаки файла и расширенные признакаки для создаваемого файла.
Windows 95: Этот флаг должен быть равен NULL. Если Вы установливаете указатель под Windows 95, запрос терпит неудачу, и GetLastError возвращает ERROR_NOT_SUPPORTED.

Возвращаемые значения
Если функция преуспевает - открытый указатель к файлу. Если указанный файл существовал до запроса функции и dwCreationDistribution - CREATE_ALWAYS или OPEN_ALWAYS, запрос к GetLastError возвращает ERROR_ALREADY_EXISTS. Если файл не существовал перед запросом, GetLastError возвращает ноль.

Если функция терпит неудачу - INVALID_HANDLE_VALUE. Чтобы получить расширенную информацию об ошибке, вызовите GetLastError.

Примечания
Используйте функцию CloseHandle, чтобы закрыть указатель объекта, возвращенную CreateFile.
Как отмечено выше, определяя ноль для dwDesiredAccess функция позволяет узнать признаки устройства, фактически не обращаясь к устройству. Этоо полезено, например, если функция хочет узнать размер дискеты, и поддерживаемые форматы, при этом не имея дискеты в дисководе.

Файлы
При создании нового файла, функция CreateFile исполняет следующие действия:
· объединяет признаки файла и флаги, указанные dwFlagsAndAttributes с FILE_ATTRIBUTE_ARCHIVE.
· устанавливает длину файла на ноль.
· копирует расширенные признаки, заданные файлом шаблона к новому файлу, если параметр hTemplateFile определен.

При открытии существующего файла, CreateFile исполняет следующие действия:
· объединяет флаги файла, указанные dwFlagsAndAttributes с существующими признаками файла. CreateFile игнорирует признаки файла, указанные dwFlagsAndAttributes.

· устанавливает длину файла согласно флагу dwCreationDistribution.
· игнорирует параметр hTemplateFile.
· игнорирует параметр lpSecurityDescriptor структуры TSecurityAttributes, если lpSecurityAttributes параметр не является NULL. Другие параметры структуры используются. Параметр bInheritHandle - единственный способ указать, может ли указатель файла быть унаследованным.

Если Вы пытаетесь создавать файл на сменном накопителе(дискета, CD-ROM) который не имеет вставленного носиеля, система показывает окно сообщения, прося пользователя вставить диск или компакт-диск, соответственно. Чтобы препятствовать системе показывать это окно сообщения, вызовите функцию SetErrorMode с флагом SEM_FAILCRITICALERRORS.

Каналы(Pipes)
Если CreateFile открывает клиента, функция использует любой открытый клиент, которая находится в состоянии приема. Процесс открытия может дублировать указатель так много раз как требуется, но, когда-то открытый клиент не может быть открыт на другого клиента.

Mailslots
Если CreateFile открывает клиента-mailslot, функция возвращает INVALID_HANDLE_VALUE, если mailslot-клиент пытается открывать локальный mailslot прежде, чем mailslot-сервер создал его с функцией CreateMailSlot.

Ресурсы Коммуникаций
Функция CreateFile может создать указатель к ресурсу коммуникаций, типа последовательного порта COM1. Для ресурсов коммуникаций, dwCreationDistribution параметром должен быть OPEN_EXISTING, и hTemplate параметр должен быть NULL. Указатель можен быть открыть для записи, чтения, чтения-записи.

Дисковое устройство
Windows NT: Вы можете использовать функцию CreateFile, чтобы открыть дисковод. Функция возвращает указатель на дисковые устройства. Указатель может использоваться с функцией DeviceIOControl. Следующие требования должны быть выполнены:

· вызывающий должен иметь привилегии администратора.
· строка lpFileName должна иметь форму \\.\PHYSICALDRIVEx, чтобы открыть жесткий диск x. Номера жесткого диска начинаются с нуля. Например: \\.\PHYSICALDRIVE2 - получает указатель на третий физический диск на компьютере пользователя.
· строка lpFileName должна быть \\.\x: чтобы открыть накопитель на гибких дисках. Например: \\.\A: - получает указатель,на диск А. \\.\C: - получает указатель,на диск C.
Windows 95: Эта функция не открывает логическое устройство. В Windows 95 это вызовет ошибку.

· параметр dwCreationDistribution должен иметь флаг OPEN_EXISTING.
· при открытии дискеты или жесткого диска, Вы должны установить флаг FILE_SHARE_WRITE в параметре dwShareMode .

Консоли (consoles)

Функция CreateFile может создать указатель ввод консоли (CONIN$). Если процесс имеет открытый указатель к нему в результате наследования или дублирования, то функция может также создать указатель на активный буфер экрана (CONOUT$). Процесс запроса должен быть присоединен к унаследованной консоли или один размещенный функцией AllocConsole. Для указателей консоли, установите параметры CreateFile следующим образом:

lpFileName - используют CONIN$, чтобы определить ввод консоли и CONOUT$, чтобы определить вывод консоли.
CONIN$ получает указатель на входной буфер консоли, даже если функция SetStdHandle переадресовывала стандартный указатель. Чтобы получить стандартный указатель, используйте функцию GetStdHandle.
CONOUT$ получает указатель на активный буфер экрана, даже если SetStdHandle переадресовывала стандартный указадель вывода. Чтобы получить стандартный указатель выводо используйте GetStdHandle.

dwDesiredAccess лучше устанавливать GENERIC_READ | GENERIC_WRITE, но любой может ограничить доступ.
dwShareMode, если процесс запроса унаследовал консоль или если дочерний процесс способен получить доступ, этот параметр должен быть FILE_SHARE_READ | FILE_SHARE_WRITE.
lpSecurityAttributes, если Вы хотите, чтобы консоль была унаследована,параметр bInheritHandle структуры TSecurityAttributes должен быть True.
dwCreationDistribution Вы должны определить OPEN_EXISTING при использовании CreateFile, чтобы открыть консоль.

dwFlagsAndAttributes игнорируется.
hTemplateFile игнорируется.

Следующий список показывает эффекты различных назначений fwdAccess и lpFileName.


lpFileName fwdAccess Результат
CON GENERIC_READ Открывает консоль для ввода
CON GENERIC_WRITE Открывает консоль для вывода
CON GENERIC_READ\GENERIC_WRITE Windows 95:Терпит неудачу; GetLastError возвращает ERROR_PATH_NOT_FOUND.
Windows NT: Терпит неудачу; GetLastError возвращает ERROR_FILE_NOT_FOUND.
Папки
Вызов функции CreateFile не может создать папку, чтобы создать папку надо вызвать CreateDirectory или CreateDirectoryEx.
Windows NT:Вы можете получить указатель к папку, подставив флаг FILE_FLAG_BACKUP_SEMANTICS . Указатель папки можно передать некоторым функциям Win32 вместо указателя файла. Некоторые файловые системы, типа NTFS, поддерживают сжатие для индивидуальных файлов и папок. На устройствах, форматированных для такой файловой системы, новая папка унаследует признак сжатия ее родительской папки.

function DefineDosDevice(dwFlags: DWORD; lpDeviceName, lpTargetPath: PChar): BOOL;

Функция DefineDosDevice позволяет приложению определять, переопределять, или удалять имя устройства МС-DOS. С помощью него можно сделать виртуальный диск.
Устройство МС-DOS загружается как символическая ссылка на обьект в пространстве имен в 32х битной версии Windows. Код, который преобразовывает путь МС-DOS на соответствующий путь в 32х битной версии Windows использует эти символические ссылки для отображения карты устройств МС-DOS и обозначения накопителей. Функция DefineDosDevice обеспечивает механизм, посредством чего приложение Win32 может модифицировать символические связи , чтобы изменить карту устройств МС-DOS и пространство имен.

Параметры:
dwFlags: Определяет несколько контролируемых аспектов функции DefineDosDevice. Могут быть использованы один Или Более следующих флагов:
0 - Определить устройство.
DDD_RAW_TARGET_PATH - Если этот флаг установлен, то функция не преобразовывает строку lpTargetPath из пути МС-DOS в пути для 32х битной версиии Windows, а оставляет как есть.
DDD_REMOVE_DEFINITION - Если этот флаг установлен, то функция удаляет определение(описание) для устройства. Для того, чтобы узнать какое определение удалить, функция проходит список определителей для устройства, ища сопоставление lpTargetPath префиксу каждого определителя связанного с этим устройством. Если lpTargetPath nil , функция удалит первое переопределенное устройство.

DDD_EXACT_MATCH_ON_REMOVE - Если этот флаг установлен вместе с DDD_REMOVE_DEFINITION, то функция будет использовать точное сопоставление, чтобы выяснить какой определитель удалить. Используйте этот флаг для страховки от того, чтобы не удаляли что-то, что вы не определяли.
DDD_NO_BROADCAST_SYSTEM - не указано стандартном хелпе.

lpDeviceName: Строка содержащая имя устройства МС-DOS, которая переопределяет описатель для установки, изменения, удаления. Для виртуальных устройств - это точка подключения.

lpTargetPath: Путь к устройству. Для виртуальных устройств это может быть путь к папке.

Возвращаемые значения
Если функция добивается успеха, возвращаемое знчение - не ноль.
Если функция терпит неудачу, возвращаемое знчение - ноль. Для получения расширенной информации об ошибке вызовите функцию GetLastError.

Замечания
Для того, чтобы получить текущее устройство, или получать список всех устройств МС-DOS известный в системе, используйте функцию QueryDosDevice.

function DeleteFile(lpFileName: PChar): BOOL;

Удаляет существующий файл.

Параметры
lpFileName: Строка содержащая путь к удаляемому файлу.

Возвpащаемое значение:
Если успешно то не ноль.
Если функция терпит неудачу - ноль. Чтобы получить расширенную информацию об ошибке, вызовите функцию GetLastError.

Замечания
Если функция пытается удалять файл, который не существует, то она терпит неудачу.

Windows 95: функция DeleteFile удаляет файл, даже если он открыт для ввода-вывода или как файл проецированный в память. Чтобы предотвратить потерю данных, закройте файлы перед попыткой удалить их.
Windows NT: функция DeleteFile терпит неудачу если пытается удалить файл, который открыт для ввода-вывода ли как файл спроецированный в память.
Чтобы закрывать открытый файл, используйте функцию CloseHandle.

function DlgDirList(Dlg: HWnd; PathSpec: PChar; IDListBox, IDStaticPath: Integer; FileType: Word): Integer;

Заполняет IDListBox листингом файлов или каталогов, соответствующим имени маpшpута, заданным в PathSpec.

Паpаметpы:
Dlg: Блок диалога, содеpжащий IDListBox.

PathSpec: Стpока имени маpшpута (заканчивающаяся пустым символом).

IDListBox: Идентификатоp оpгана упpавления блока списка.

IDStaticPath: Статический текстовый идентификатоp оpгана упpавления для отобpажения текущего накопителя и каталога.

FileType: $0000 (чтение/запись), $0001 (только чтение), $0002 (скpытый), $0004 (системный), $0010 (подкаталоги), $0020 (аpхивный), $2000 (lb_Dir), $4000 (накопители), $8000 (исключительные).

Возвpащаемое значение:
Не нуль, если листинг получен; нуль - в случае невеpного маpшpута поиска

.

function ExtractAssociatedIcon(hInst: HINST; lpIconPath: PChar;
var lpiIcon: Word): HICON;

Функция возвращает Хендл индексированной иконки находящейся в файле(включая .exe) связанной с типом файла.

Параметры:
hInst: Определяет Хендл приложения которое вызывало функцию.

lpIconPath: Указатель на строку определяющую путь к файлу для которого необходимо получить иконку. Это может быть как испольняемый файл, так и документ.

lpiIcon: Индекс иконки которую необходимо получить.

Возвращаемые значения
Если функция успешна, то возвращаемое значение -Хендл иконки, если нет - ноль.

Замечания
Функция ищет сначала иконку в файле определенном параметром lpIconPath, если не находит то ищет иконку в файле связанном с данным типом файлов. Например для .txt будет искать в "Notepad.exe".
Если необходимо получить количество иконок в файле см. функцию ExtractIconEx.

 

function FileTimeToSystemTime(const lpFileTime: TFileTime; var lpSystemTime: TSystemTime): BOOL;

Функция преобразует 64-битное время и дату файла или папки в формат системного времени(которое легко воспринимается пользователем).

Параметры
lpFileTime: Структура TFileTime содержащая время и дату файла для преобразования в системное дату и время.

Функция работатет только со значениями TFileTime меньшими $8000000000000000, в противном случае вызов функции завершиться неудачей.

lpSystemTime: Структура TSystemTime получающая время и дату файла или папки.

Возвращаемые значения
Если успешно, то не ноль, в противном случае ноль. Для того, чтобы получить расширенную информацию об ошибке, вызовите функцию GetLastError.

См. также: DosDateTimeToFileTime, FileTimeToDosDateTime, SystemTimeToFileTime

function FindExecutable(FileName, Directory: PChar; Result: PChar): HINST;

Функция возвращает имя и хендл приложения (.EXE) связанного с определенным имнем файла(типом файла).

Параметры:
FileName: Строка определяющая имя файла. Это может быть документ или исполняемый файл.

Directory: Строка определяющая папку по умолчанию.

Result: Строка (масив символов) принимающий имя файла, когда функция возвращает имя файла. Имя файла - строка содержащая путь к исполняемому приложению, когда срабатывает команда "open" для ассоциации типа файла.

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

Если функция добивается успеха, возвращаемое значение - больше, чем 32.
Если функция терпит неудачу, возвращаемое значение - менее или равная 32. Следующая таблица содержит возможной ошибки:
0 - Системе не хватает памяти или ресурсов.
31 - Нет ассоциации для определенного типа файлв.
ERROR_FILE_NOT_FOUND - Файл не найден.
ERROR_PATH_NOT_FOUND - Путь не найден.
ERROR_BAD_FORMAT - Формат .EXE неверен (не-Win32 .EXE или ошибка в .EXE файле).

Замечания
Когда возвращается FindExecutable, параметр Result может содержать путь к запущенному сервере DDE, если сервер не отвечает на запрос, иницализируйте его

 

function GetCurrentDirectory(nBufferLength: DWORD; lpBuffer: PChar): DWORD

Возвращает текущий каталог. Обычно это каталог в котором была запущена программа.

Параметры:
nBufferLength - размер буфера для принимаемой строки

lpBuffer - принимый путь

Возвращаемое значение:
В случе успеха строка содеражщая путь, в случае неуспеха 0. Получить дополнительную информацию об ошибке испольнения можно с помощью функции GetLastError

.

function GetDiskFreeSpaceEx(lpDirectoryName: PChar;
var lpFreeBytesAvailableToCaller, lpTotalNumberOfBytes, lpTotalNumberOfFreeBytes: PLargeInteger): BOOL;

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

Функция доступна в системах Win95 OSR2 или WinNT и выше.
Используйте функцию GetVersionEx, чтобы определить версию системы.

Параметры:
lpDirectoryName: Строка определяющая путь на нужном диске. Это может быть строка в стандарте UNC.
Если lpDirectoryName nil, функция GetDiskFreeSpaceEx получает информацию о диске, который содержит текущий путь. Имейте В Виду, что lpDirectoryName нет должен определять корневую. папку на диске. Функция принимает любую папку на диске.

lpFreeBytesAvailableToCaller: Указатель на переменную, получающую общее число свободный байтов на диске, которые могут использоваться для ассоцации с вызовом нити\потока.
Если операционная система осуществляет препользовательский квотинг, это значение может быть меньше, чем общее число свободных байтов на диске.

lpTotalNumberOfBytes: Указатель на переменную, получающую общее число байтов на диске.

lpTotalNumberOfFreeBytes: Указатель на переменную, получающую общее число свободный байтов на диске. Этот паметр может быть nil.

Возвращаемые значения
Если функция добивается успеха, возвращаемое знчение - не ноль.
Если функция терпит неудачу, возвращаемое знчение - ноль. Для получения расширенной информации об ошибке вызовите функцию GetLastError

.

function GetDriveType(lpRootPathName: PChar): UINT;

Функция возвращает тип носителя: сменный, фиксированный, CD-ROM, диск RAM, или сетевой диск.

Параметры:
lpRootPathName: Строка определяющая корневой каталог устройства, тип которого надо определить(напр. 'A:\'-для дисковода). Если lpRootPathName равен nil, то возвращается тип текущего накопителя.

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

Возвращаемое значение определяет тип накопителя. Может быть:
0 - Тип накопителя не определен.
1 - Корневой директорий не существует.
DRIVE_REMOVABLE - Накопитель может удаляться с накопителя.
DRIVE_FIXED - Фиксированный диск(не может быть удален).
DRIVE_REMOTE - Удаленный накопитель(сетевой диск).
DRIVE_CDROM - CD-ROM.
DRIVE_RAMDISK - Накопитель является виртуальным RAM-диском

.

function GetFileAttributes(lpFileName: PChar): DWORD;

Функция возвращает атрибуты для определенного файла или папки.
Функция возвращает информацию в стиле таблицы FAT. См. аттрибуты файлов(FILE_ATTRIBUTE_). Функция GetFileAttributesEx может получить более полную информацию о файле или папке.

Параметры
lpFileName: Строка определяющая путь к папке или файлу.

Windows NT/2000/XP: В ANSI-версии этой функции строка ограничена MAX_PATH. Для того чтобы вызвать расширенную функцию вызовите функцию GetFileAttributesW и добавте "\\?\" в начало строки содержащей путь.
Windows 95/98/Me: Cтрока не должна превышать константу MAX_PATH.

Возвращаемые значения
Если функция добивается успеха, возвращаемая величина содержит атрибуты определенного файла или папки.

Если функция терпит неудачу, возвращаемая величина - INVALID_FILE_ATTRIBUTES. Для того, чтобы получить расширенную информацию об ошибке, вызовите функцию GetLastError.

Замечания
Когда GetFileAttributes для дериктории которая является точкой монтирования диска - возвращаемые аттрибуты это аттрибуты папки, а не монтируемого диска. Для получения аттрибутов примонтированного диска вызовите функцию GetVolumeNameForVolumeMountPoint для получения имени диска. Затем полученное имя можно использовать в функции GetFileAttributes. Результатами будут аттрибуты корневого диска

function GetFileAttributesEx(lpFileName: PChar; fInfoLevelId: TGetFileExInfoLevels; lpFileInformation: Pointer): BOOL;

Функция возвращает атрибуты для определенного файла или папки.
Функция возвращает информацию в стиле таблицы FAT. См. аттрибуты файлов(FILE_ATTRIBUTE_).

Параметры
lpFileName: Строка определяющая путь к папке или файлу.

Win NT/2000/XP: В ANSI-версии этой функции строка ограничена MAX_PATH. Для того чтобы вызвать расширенную функцию вызовите функцию GetFileAttributesExW и добавте "\\?\" в начало строки содержащей путь.
Win 95/98/Me: Cтрока не должна превышать константу MAX_PATH.

fInfoLevelId: Указывает класс вспомогательной информации.
{ TGetFileExInfoLevels = (GetFileExInfoStandard, GetFileExMaxInfoLevel); }
Может быть одним из следующих значений:
GetFileExInfoStandard - Параметр lpFileInformation является структурой TWin32FileAttributeData.

GetFileExMaxInfoLevel - {В стандартном хелпе не расшифровывется значение, по видимому это тоже указатель на структуру}

lpFileInformation: Указатель на структуру принимающую дополнительную информацию. Тип информации определяется параметром fInfoLevelId.

Возвращаемые значения
Если функция добивается успеха, возвращаемая величина не нуль, в противном случае нуль. Для того, чтобы получить расширенную информацию об ошибке, вызовите функцию GetLastError.

Замечания

К настоящему времени, GetFileAttributeEx возвращает стандартные аттрибуты, и аттрибуты расширений FAT-таблицы

.function GetFileSize(hFile: THandle; lpFileSizeHigh: Pointer): DWORD;

Функция возвращает размер указанного файла.
Эта функция возвращает размер в величине DWORD. Для того чтобы извлекать размер файла более чем DWORD используйте функцию GetFileSizeEx.

Параметры:
hFile: Хендл файла, чей размер должен быть получен. Хендл должен быть создан с правом доступа GENERIC_READ или GENERIC_WRITE.

lpFileSizeHigh: Указатель на переменную где старшее слово размер файла. Этот параметр может быть Nil если приложению не требуется старшее слово.

Возвращаемые значения
Если функция добивается успеха, то возвращаемое значение - двойное слово с размером файла. Если lpFileSizeHigh равен Nil то функция устанавливает расширенное двойное слово в переменную указанную парметром с размером файла.
Если функция терпит неудачу и lpFileSizeHigh равен Nil, то возвращаемое значение - INVALID_FILE_SIZE. Чтобы получить расширенную информацию об ошибке, вызовите функцию GetLastError.

Если функция терпит неудачу и lpFileSizeHigh не Nil, то возвращаемое значение - INVALID_FILE_SIZE и GetLastError возвращает любое кроме NO_ERROR.

Замечания
Вы можете использовать функцию GetFileSize с хендлом устройства, например с Каналом (Pipe) устройством связи. Для того, чтобы определить тип файла для hFile используйте функцию GetFileType.
Функция GetFileSize возвращает размер несжатого файла. Используйте функцию GetCompressedFileSize, чтобы получить размер сжатого(заархивированного) файла.

Функция находится в файле kernel32.dll

.

function GetFileSizeEx(hFile: THandle; lpFileSize: PLargeInteger): BOOL;

Функция возвращает размер указанного файла.
Внимание: Функция не поддержана в Win 95/98/Me/NT. Функция не описана в заголовочных файлах Дельфи и вам придется подключать ее самостоятельно.

Параметры:
hFile: Хендл файла, чей размер должен быть получен. Хендл должен быть создан с правом доступа GENERIC_READ или GENERIC_WRITE.

lpFileSize: Указатель на структуру TLargeInteger которая получить размер файла.

Возвращаемые значения
Если функция добивается успеха, то возвращаемое значение - не ноль.
Если функция терпит неудачу, то возвращаемое значение - ноль.
Чтобы получить расширенную информацию об ошибке, вызовите функцию GetLastError.

Функция находится в файле kernel32.dll

function GetFileTime(hFile: THandle;
lpCreationTime, lpLastAccessTime, lpLastWriteTime: PFileTime): BOOL;

Функция возвращает дату и время создания, последнего обращения и последнего изменения файла.

Параметры:
hFile: Хендл файла для которого необходимо получить дату и время. Хендл должен быть создан с доступом уровня GENERIC_READ.

lpCreationTime: Указатель на стрктуру TFileTime в которую возвращается инфомация о дате создания файла. Параметр может быть равен nil, если данная информация не нужна.

lpLastAccessTime: Указатель на стрктуру TFileTime в которую возвращается инфомация о дате последнего доступа к файлу. Время последнего доступа - это время запуска исполняемого файла, записи\чтения из файла. Параметр может быть равен nil, если данная информация не нужна.

lpLastWriteTime: Указатель на стрктуру TFileTime в которую возвращается инфомация о дате последней записи в файл. Параметр может быть равен nil, если данная информация не нужна.

Возвращаемые значения
В случае успеха не ноль.
В случае неудачи - ноль. Чтобы получить расширенную информацию об ошибке, вызовите функцию GetLastError

.

function GetFileType(hFile: THandle): DWORD;

Функция возвращает тип файла для указанного файла.

Параметры:
hFile: Хендл открытого файла.

Возвращаемые значения
Возвращаемое значение одна из следующих величин:
FILE_TYPE_UNKNOWN - Тип файла неизвестен или функция потерпела неудачу.
FILE_TYPE_CHAR - Символьный файл, обычно устройство LPT или консоль.

FILE_TYPE_DISK - Дисковый файл.
FILE_TYPE_PIPE - Поименованный или анонимный канал(Pipe).
FILE_TYPE_REMOTE - Не используется.

Вы можете проверить правильность возврата FILE_TYPE_UNKNOWN или из-за ошибки(например передав неправльный хендл) вызвав GetLastError.
Если функция вернула FILE_TYPE_UNKNOWN и не совершила ошибки, то GetLastError вернет NO_ERROR.

Если функция вернула FILE_TYPE_UNKNOWN и совершила ошибку, то GetLastError вернет код ошибки

function GetLogicalDrives: DWORD;


Функция возвращает битовую маску, представляющий к настоящему времени доступные накопители, где бит каждый бт предстваляет собой, наличие или отсутствие накопителя.

Возвращаемые значения
Если функция добивается успеха, возвращаемое значение - битовая маска всех доступных накопителей.
Например - бит 0 - накопитель 'A', бит 1 - накопитель 'B' и.т.д.

Если функция терпит неудачу, возвращаемое значение равно нулю

.

function GetLogicalDriveStrings(nBufferLength: DWORD; lpBuffer: PAnsiChar): DWORD;

Функция заполняет буфер строками, которые определяют правильные пути накопителей в системе.

Параметры:
nBufferLength: Определяет максимальный размер в символах, буфера указанного в парметре lpBuffer. Этот размер не включает завершающего нулевого символа.

lpBuffer: Указатель на буфер символов, которой получает серию строк(PChar), с правильными путсями к накопителям в системе, на конце с нулем. Пример: 'c:\<null>d:\<null><null>'

Возвращаемые значения
Если функция добивается успеха, возвращаемое значение является длиной, в символах, строк скопированных в буфере, не включая завершающего нулевого символа.
Есчли длинны буфера недостаточно, то взвращаемое значение больше, чем nBufferLength.
Если функция терпит неудачу, возвращаемое значение является нулем. Для того, чтобы получить расширенную информацию об ошибке, используйте функцию GetLastError.

Замечания
Каждая строка в буфере может быть использована как путь для функций GetDriveType и GetDiskFreeSpace

.

function GetModuleFileName(Module: THandle; FileName: PChar; Size: Integer): Integer;

Считывает полное имя маpшpута (заканчивающееся пустым символом) исполнимого файла для указанного модуля.

Паpаметpы:
Module: Идентификатоp модуля.
FileName: Пpинимающий буфеp.
Size: Размеp буфеpа.

Возвpащаемое значение:
Фактическое число скопиpованных байт

. function GetSystemDirectory(Buffer: PChar; Size: Word);

Получает имя маpшpута для подкаталога системы Windows.

Паpаметpы:
Buffer: Пpинимающий буфеp.
Size: Размеp буфеpа (не менее 144 символов).

Возвращаемое значение:
В случе успеха строка содеражщая путь, в случае неуспеха 0. Получить дополнительную информацию об ошибке испольнения можно с помощью функции GetLastError

procedure GetSystemTimeAsFileTime(var lpSystemTimeAsFileTime: TFileTime);

Функция возвращает текущую системную дату и время. Информация - в формате Универсального Скоординированного Времени(UTC).

Параметры:
lpSystemTimeAsFileTime: Структура TFileTime которая принимает системную дату и время в формате UTC.

См. также: GetSystemTime, SystemTimeToFileTime

Функция находится в файле kernel32.dl

function GetTempDrive(DriveLetter: Char): Char;

Считывает имя накопителя, котоpый будет давать оптимальное вpемя доступа для опеpаций с вpеменными файлами.

Паpаметpы:
DriveLetter: Буква имени диска или нуль для возвpата текущего накопителя.

Возвpащаемое значение:
Буква имени диска

. function GetTempFileName(DriveLetter: Char; PrefixString: PChar; Unique: Word; TempFileName: PChar): Integer;

Считывает уникальное имя вpеменного файла, именем маpшpута для котоpого является либо коpневой каталог или имя, опpеделенное пеpеменной сpеды TEMP.

Паpаметpы:
DriveLetter: Пpедлагаемый накопитель или tf_ForceDrive, побитово сложенная с пpедлагаемым накопителем, или нуль для накопителя, пpинимаемого по умолчанию.

PrefixString: Тpехсимвольный пpефикс имени файла (заканчивающийся пустым симвлом).
Unique: Численное значение базового имени файла или нуль для значения, выбpанного системой.
TempFileName: Буфеp пpинимающего маpшpута (длиной не менее 144 байта).

Возвpащаемое значение:
Уникальное численное значение имени файла

.function GetVolumeInformation(lpRootPathName: PChar;
lpVolumeNameBuffer: PChar; nVolumeNameSize: DWORD; lpVolumeSerialNumber: PDWORD;

var lpMaximumComponentLength, lpFileSystemFlags: DWORD;
lpFileSystemNameBuffer: PChar; nFileSystemNameSize: DWORD): BOOL;

Возвращает информацию о файловой системе и объеме корневой директории(обьеме тома файловой системы).

Параметры:
lpRootPathName: Строка содержащая путь к корневой директории. Если параметр равен NULL, то будет использована текущая корневая директория. Если парметр является именем UNC, то после параметра должна обязательно следовать косая черта, напрмер: "\\MyServer\MyShare" должен быть определен как "\\MyServer\MyShare\".

lpVolumeNameBuffer: Строка содержащая буфер имени тома.

nVolumeNameSize: Содержит длинну в символах имени тома. Этот параметр игнорируется если параметр имени тома не поставлен.

lpVolumeSerialNumber: Указатель на переменную которая получает серийный номер тома. Этот парметр может быть равен NULL.

lpMaximumComponentLength: Указатель на переменную, возвращающую максимальную длинну имени файла, поддерживаемую текущей файловой системой. Параметр предназначен для того чтобы указать что текущей файловой системой используются длинные имена. Например для FAT поддерживающей длинные имена, функция возвращает величину 255.

lpFileSystemFlags: Указатель на переменную которая возвращает флаги связанные с текущей файловой системой. Этот параметр может быть комбинацией любых флагов кроме FS_FILE_COMPRESSION и FS_VOL_IS_COMPRESSED которые взаимно исключены:

FS_CASE_IS_PRESERVED - Если этот флаг установлен, файловая система сохраняет имя файла на диске.
FS_CASE_SENSITIVE - Если этот флаг установлен, файловая система поддерживает контекстно-зависимые имена файлов.
FS_UNICODE_STORED_ON_DISK - Если этот флаг установлен, файловая система поддерживает имена файлов в Unicode.
FS_PERSISTENT_ACLS - Если этот флаг установлен, файловая система сохраняет и осуществляет ACL. Например, NTFS сохраняет и осуществляет ACL,а FAT нет.

FS_FILE_COMPRESSION - Файловая система поддерживает сжатие файлов.
FS_VOL_IS_COMPRESSED - Том является сжатым; например DoubleSpace.

lpFileSystemNameBuffer: Указатель на буфер возвращающий имя файловой системы(как например, FAT или NTFS).

nFileSystemNameSize: Параметр определяет длинну буфера имени файловой системы в символах.

Возвращаемые значения
Если успешно то не ноль.
Если функция терпит неудачу - ноль. Чтобы получить расширенную информацию об ошибке, вызовите функцию GetLastError.

Замечания:
Если попытаться получить информацию о дисководе или CD-ROM'е не имеющих вставленных носителей информации, то система отображет диалог, прося пользователя вставить дискету или компакт-диск.
Чтобы помешать системе, вызовите функцию SetErrorMode с флагом SEM_FAILCRITICALERRORS.
Флаг FS_VOL_IS_COMPRESSED является единственным индикатором сжатия тома.
Флаг FS_FILE_COMPRESSION указывает, поддерживает ли файловая система сжатие файлов.
Функция GetCompressedFileSize получает размер сжатого файла. Функция GetFileAttributes может определить чем сжат файл

.

function GetWindowsDirectory(Buffer: PChar; Size: Word);

Считывает в Buffer имя маpшpута к каталогу Windows.

Паpаметpы:
Buffer: Буфеp для пpиема имени маpшpута.
Size: Размеp Buffer (должен иметь длину не менее 144 байт).

Возвращаемое значение:
В случе успеха строка содеражщая путь, в случае неуспеха 0. Получить дополнительную информацию об ошибке испольнения можно с помощью функции GetLastError

.

function MoveFile(lpExistingFileName, lpNewFileName: PChar): BOOL;

Переименовывает существующий файл или папку.

Параметры:
lpExistingFileName: Строка содержащая путь к файлу или папке.

lpNewFileName: Строка определяющее новое имя файла или папки. Файл или папка не должны существовать. Новый файл может находиться в другой фаловой системе или накопителе, папка должна быть на том же томе или логическом устройстве.

Возвращаемые значения
Если успешно то не ноль.
Если функция терпит неудачу - ноль. Чтобы получить расширенную информацию об ошибке, вызовите функцию GetLastError

function RemoveDirectory(lpPathName: PChar): BOOL;

Удаляет существующую пустую папку.

Параметры

lpPathName: Строка содержащая путь к удаляемой папке.

Возвpащаемое значение:

Если успешно то не ноль.
Если функция терпит неудачу - ноль. Чтобы получить расширенную информацию об ошибке, вызовите функцию GetLastError

function SetCurrentDirectory(lpPathName: PChar): BOOL;

Устанавливает необходимый текущий каталог. Для установки текущего каталога необходимо чтобы сам каталог существовал, ести его нет, то сперва создайте его (например функцией CreateDirectory).

Параметры:
lpPathName - строка содержащая путь к каталогу.

Возвращаемое значение:
В случае успеха не ноль, в случае неудачи 0. Получить дополнительную информацию об ошибке испольнения можно с помощью функции GetLastError

.

function SetFileAttributes(lpFileName: PChar; dwFileAttributes: DWORD): BOOL;

Функция устанавливает атрибуты файла или папки.

Параметры
lpFileName: Строка которая определяет путь к файлу или папки, чьи аттрибуты необходимо установить.
Win NT\2000\XP: В ANSI-версии этой функции строка ограничена MAX_PATH. Для того чтобы вызвать расширенную функцию вызовите функцию SetFileAttributesW и добавте "\\?\" в начало строки содержащей путь.

Win 95/98/Me: Cтрока не должна превышать константу MAX_PATH.

dwFileAttributes: Аттрибуты для файла или папки. См. FILE_ATTRIBUTE_. Тем не менее все другие значения аннулируют аттрибут FILE_ATTRIBUTE_NORMAL.

Возвращаемые значения
Если функция добивается успеха, возвращаемая величина не нуль, в противном случае нуль. Для того, чтобы получить расширенную информацию об ошибке, вызовите функцию GetLastError.

Замечания
Далее описывается как установить аттрибуты, которые нельзя установить функцией SetFileAttributes.

FILE_ATTRIBUTE_COMPRESSED, Чтобы устанавливать файловое состояние сжатия, использовать функцию DeviceIoControl с операцией FSCTL_SET_COMPRESSION.
FILE_ATTRIBUTE_DEVICE - Зарезервирован; не использовать.
FILE_ATTRIBUTE_DIRECTORY - Файлу не может быть присвоен аттрибут папки. Для того, чтобы создать папку, используйте функции CreateDirectory или CreateDirectoryEx.
FILE_ATTRIBUTE_ENCRYPTED - Чтобы создать закодированный файл, используйте функцию CreateFile с атрибутом FILE_ATTRIBUTE_ENCRYPTED. Для того, чтобы преобразовывать существующий файл в закодированный файл, используйте функцию EncryptFile.

FILE_ATTRIBUTE_REPARSE_POINT - Чтобы соединить реперную точку с файлом, используйте функцию DeviceIoControl с операцией FSCTL_SET_REPARSE_POINT.
FILE_ATTRIBUTE_SPARSE_FILE - Чтобы установить аттрибут редкий файл, используйте функцию DeviceIoControl с операцией FSCTL_SET_SPARSE.

 

function SetFileTime(hFile: THandle;
lpCreationTime, lpLastAccessTime, lpLastWriteTime: PFileTime): BOOL;

Функция устанавливает дату и время создания, последнего доступа и изменения файла.

Параметры:
hFile: Хендл файла для которого необходимо установить дату и время. Хендл должен быть создан с доступом уровня FILE_WRITE_ATTRIBUTES.

lpCreationTime: Указатель на стрктуру TFileTime в которой должна быть устанавливаемая инфомация о дате создания файла. Параметр может быть равен nil, если данная информация не нужна.

lpLastAccessTime: Указатель на стрктуру TFileTime в которой должна быть устанавливаемая инфомация о дате последнего доступа к файлу. Время последнего доступа - это время запуска исполняемого файла, записи\чтения из файла. Параметр может быть равен nil, если данная информация не нужна.

lpLastWriteTime: Указатель на стрктуру TFileTime в которой должна быть устанавливаемая инфомация о дате последней записи в файл. Параметр может быть равен nil, если данная информация не нужна.

Возвращаемые значения
В случае успеха не ноль.
В случае неудачи - ноль. Чтобы получить расширенную информацию об ошибке, вызовите функцию GetLastError

.

function SetVolumeLabel(lpRootPathName: PChar; lpVolumeName: PAnsiChar): BOOL;

Устанавливает метку тома файловой системы.

Параметры

lpRootPathName: Строка содержащая корневую директорию того логического устойства метку которого нужно установить. Если этот параметр равен NULL, используется корневая директория текущего устройства.
lpVolumeName: Строка содержащая метку тома. Если этот параметр равен NULL, то функция удаляет метку указанного тома.

Возвращаемые значения
Если успешно то не ноль.
Если функция терпит неудачу - ноль. Чтобы получить расширенную информацию об ошибке, вызовите функцию GetLastError

.

procedure SHAddToRecentDocs(uFlags: UINT; pv: Pointer);

Добавляет файл в список недавно открываемых документов("Пуск"-"Документы") или очищает этот список.

Параметры

uFlags: Флаг, задающий содержание параметра pv:
SHARD_PATH - Строка содежащая путь к файлу.
SHARD_PIDL - Указатель на список идентификаторов элемента(PItemIDList).

pv: Указатель на строку содержащюя путь к файлу или указатель на структуру TItemIDList(PItemIDList), содержащую список идентификаторов элемента пространства имен оболочки Windows. Если значение этого параметра равно Nil(нуль), то функция очищает список

.

function SHBrowseForFolder(var lpbi: TBrowseInfo): PItemIDList;

Функция вызывает стандартный диалог выбора каталога(принтера\компьютера).

Параметры:
lpbi: структыра содержащая информацию вызова диалога.

Возвращаемые значения
функция возвращает список ID элементов(расположение выбранной папки в пространстве имен оболочки Windows)

.

function ShellExecute(hWnd: HWND; Operation, FileName, Parameters,
Directory: PChar; ShowCmd: Integer): HINST;

Функция может открыть или напечатать определенный файл. Исполняет как Windows-приложения так и открывает файлы-документы.
Например с файлами типа ".txt" связан Блокнот "Notepad.exe" и запуск файла "my.txt" приведет к тому, что будет запущен Блокнот и в него будет передан параметр с именем файла.

Также с помощью этой функци можно в проводнике открыть папку.

Параметры:
hWnd: Хендл родителя запускаемого приложения.

Operation: Строка определяющая команду для исполнения. Может содержать:
"open" - открыть файл определенный параметром FileName.
"print" - напечатать файл определенный параметром FileName.
"explore" - открыть папку определенную параметром FileName.
Если параметр Operation равен nil, то по умолчанию выполняется операция "open".

FileName: Определяет имя файла или папки для открытия или печати. Функция может запускать файл на исполнение или документ на печать.

Parameters: определяет параметры передаваемые при запуске исполняемого приложения. Бессмысленно его использовать при запуске документа. Параметр можеть быть равен Nil.

Directory: опеределяет каталог по умолчанию(рабочий каталог). Получить\установить можно с помощью функций GetCurrentDirectory, SetCurrentDirectory.

ShowCmd: определяет режим открытия файла. См. константы открытия\показа SW_.

Возвращаемые значения
Функция возвращает Хендл открытого приложения или сервера DDE. Возвращаемое значение должно быть больше 32. В противном случае это ошибка:

0 - Системе не хватает памяти, выполняемый файл испорчен или нехватает ресурсов.
ERROR_FILE_NOT_FOUND - файл не найден.
ERROR_PATH_NOT_FOUND - путь не найден.
ERROR_BAD_FORMAT - .EXE-Файл неверен (не-Win32.EXE или ошибка в .EXE).
SE_ERR_ACCESSDENIED - Операционная Система отвергла доступ к файлу.
SE_ERR_ASSOCINCOMPLETE - неправильная или неполная ассоциация с файлом.
SE_ERR_DDEBUSY - транзакция DDE не может завершаться поскольку были запущены другие транзакции.

SE_ERR_DDEFAIL - транзакция DDE потерпела неудачу.
SE_ERR_DDETIMEOUT - транзакция DDE не могла завершаться поскольку запрос несинхронизированный.
SE_ERR_DLLNOTFOUND - динамическая библиотека(.DLL) не обнаружена.
SE_ERR_FNF - файл не найден.
SE_ERR_NOASSOC - нет приложения ассоцированного с данным типом файла.
SE_ERR_OOM - недостаточно памяти для завершения операции.
SE_ERR_PNF - путь не найден.
SE_ERR_SHARE - разделение(shared) файла неверно.

function ShellExecuteEx(lpExecInfo: PShellExecuteInfo):BOOL;

Функция выполняет действие над файлом. Файл может быть выполняемым файлом или документом.

Параметры:
lpExecInfo: указатель на структуру TShellExecuteInfo которая содержит и получает информацию о запускаемом приложении.

Возвращаемые значения
Если успешно то не ноль.

Если функция терпит неудачу - ноль. Чтобы получить расширенную информацию об ошибке, вызовите функцию GetLastError.

Замечания
Если функция добивается успеха, она помещает в элемент hInstApp структуры TShellExecuteInfo хендл запущенного приложения. Если функция терпит неудачу,в hInstApp одна из ошибки SE_ERR_, указывающий причину неудачи. ( Хендл приложения будет всегда больше, чем 32,а код ошибки менее чем 32.) Имейте В виду, что ошибки SE_ERR_ введены для совместимости с функцией ShellExecute; используйте функцию GetLastError, чтобы извлечь информацию об ошибке.

Величины последней ошибки возвращенные GetLastError конвертируются в величины SE_ERR_ и может быть одним из следующего:
ERROR_FILE_NOT_FOUND - файл не найден.
ERROR_PATH_NOT_FOUND - путь не найден.
ERROR_DDE_FAIL - транзакция DDE потерпела неудачу.
ERROR_NO_ASSOCIATION - нет приложения ассоцированного с данным типом файла.
ERROR_ACCESS_DENIED - Операционная Система отвергла доступ к файлу.
ERROR_DLL_NOT_FOUND - динамическая библиотека(.DLL) не обнаружена.

ERROR_CANCELLED - Функция открыла пользователю диалог для поиска приложения, но пользователь отменил запрос.
ERROR_NOT_ENOUGH_MEMORY - нехватает памяти.
ERROR_SHARING_VIOLATION - разделение(shared) файла неверно.

function SHEmptyRecycleBin(Wnd:HWND; pszRootPath:PChar; dwFlags:DWORD):HRESULT;

функция для очищения корзины на определенном диске(или на всех).

Параметры
hwnd: Handle родительского или диалогового окна которое может отображаться в течение операции . Этот параметр может быть равен нулю.

pszRootPath: Указатель на строку PChar содержащую путь к корневому диску на котором находиться корзина. Этот параметр может содержать адрес строки, с путем к какому-нибудь каталогу или подкаталогу, например c:\windows\system... . Параметр может также содержать пустую строку или Nil. Если это значение - пустая строка или Nil, все корзины на всех дисках будут очищены.
dwFlags: Может содержать один или несколько флагов из следующих:
SHERB_NOCONFIRMATION =1 - Не показывать диалог подтверждения удаления всех файлов из корзины.

SHERB_NOPROGRESSUI =2 - Не показывать прогресс бар отображающий удаление файлов из корзины.
SHERB_NOSOUND =4 - Не подтверждать завершение удаление звуковым сигналом.

function SHFileOperation(const lpFileOp: TSHFileOpStruct): Integer;

Производит копирование, удаление, перемещение,переименование файлов.

Параметры
lpFileOp: Структура TSHFileOpStruct содержащая данные об операции.

Возвpащаемое значение:
В случае успеха возвращает значение 0. В случае неудачи любое другое значение.

Примечание: Не поддержана в Windows NT.

function SHGetFileInfo(pszPath: PAnsiChar; dwFileAttributes: DWORD;
var psfi: TSHFileInfo; cbFileInfo, uFlags: UINT): DWORD;

Возвращает информацию об объекте файловой системы, как например файл, папка корень логичекого диска.

Извлекает информацию об объекте в файловой системе, как например, файл, папка, директорий, или корень накопителя.

Параметры
pszPath: Строка которая содежит путь к файлу или папки. Максимальная длинна равна MAX_PATH. Работают абсолютные и относительные пути.
Если в параметр uFlags установлен флаг SHGFI_PIDL, то pszPath это указатель на структуру TItemIDList, которая содержит список идентификаторов объекта, который однозначно идентифицирует файл(папку) в пределах пространтва имен оболочки Windows. Указатель на PIDL дожен быть обязательно абсолютный, относительный PIDL не принимается.

Можно использовать соглашение имен 8.3 или длинные имена.

dwFileAttributes: Флаги аттрибутов файлов. См. FILE_ATTRIBUTE_. Если в uFlags не установлен флаг SHGFI_USEFILEATTRIBUTES, этот параметр игнорируется.

psfi: Адрес структуры TSHFileInfo, которая получает информацию об объекте.

cbFileInfo: Размер структуры TSHFileInfo, в байтах.

uFlags: Флаги, опредлеяющие возвращаемую информацию:
SHGFI_ADDOVERLAYS - Для версии 5.0. Применненный подходящий оверлей к иконке файла. Флаг SHGFI_ICON должен быть установлен.

SHGFI_ATTR_SPECIFIED - Модифицирует SHGFI_ATTRIBUTES. Указывает, что параметр dwAttributes структуры TSHFileInfo содержит желательные аттрибуты. Эти аттрибуты будут возращены IShellFolder.GetAttributesOf. Если этот флаг не определен IShellFolder.GetAttributesOf будет возвращать 0xFFFFFFFF на запрос любых аттрибутов. Этот флаг не может быть установлен с флагом SHGFI_ICON.
SHGFI_ATTRIBUTES - Возвращает аттрибуты объекта. Аттрибуты копируются в параметр dwAttributes структуры TSHFileInfo. Это - те же аттрибуты полученные из IShellFolder.GetAttributesOf.

SHGFI_DISPLAYNAME - Извлекает наименование объекта в пространстве имен. Копируется в параметр szDisplayName структуры TSHFileInfo. Возвращается длинное имя ести есть, или 8.3 в случае отстутствия.
SHGFI_EXETYPE - Возвращает тип исполняемого файла, если в pszPath путь к исполняемому приложению. Информация упакована в возрващаемое значение. Этот флаг не может быть установлени совместно ни с какими другими флагами.
SHGFI_ICON - Возвращает хендл и индекс(в пределах системного кеша иконок) на иконку . Хендл копируется в параметр hIcon, а индекс в iIcon структуры TSHFileInfo.

SHGFI_ICONLOCATION - Возвращает имя файла и инфекс иконки в предлах этого файла, указанного в pszPath. Имя файла содержащего иконку, копируется в параметр szDisplayName структуры TSHFileInfo. Инфекс иконки копируется в параметр iIcon.
SHGFI_LARGEICON - Модифицирует SHGFI_ICON, для того, чтобы извлечь большую иконку файла. Флаг SHGFI_ICON должен быть установлен.
SHGFI_LINKOVERLAY - Модифицирует SHGFI_ICON, для того, чтобы добавить оверлей связи файловой иконки. Флаг SHGFI_ICON должен быть установлен.

SHGFI_OPENICON Модифицирует SHGFI_ICON, для того, чтобы извлечь открытую иконку файла. Контейнерный объект может отобразить иконку. Флаг SHGFI_ICON должен быть установлен.
SHGFI_OVERLAYINDEX - Для версии 5.0. Возвращает индекс оверлейной иконки. Величина оверлейного индекса возвращается на старшие восемь бит параметра iIcon.
SHGFI_PIDL - Указывает, что что pszPath - адрес структуры TItemIDList а не имя пути.
SHGFI_SELECTED - Модифицирует SHGFI_ICON, для того, чтобы смешать икону файла, с системным световым цветом. Флаг SHGFI_ICON должен быть установлен.

SHGFI_SHELLICONSIZE - Модифицирует SHGFI_ICON, для того, чтобы извлечь размер иконки в пределах Оболочики Windows. Если этот флаг не установлен, то функция возращает размер в зависимости от системных установок. Флаг SHGFI_ICON должен быть установлен.
SHGFI_SMALLICON - Модифицирует SHGFI_ICON, для того, чтобы извлечь маленькую иконку файла. Флаг SHGFI_ICON должен быть установлен.
SHGFI_SYSICONINDEX - Возвращает индекс системной иконки из кеша иконок. Копируется в параметр iIcon. Возвращаемое значение является хендлом в системном кеше иконок. Только те иконки что успешно скопированны, имею силу. Попытка обратится к другим иконкам, может приветссти к неопределенному поведению.

SHGFI_TYPENAME - Возвращается строка, описывающая тип файла. Копируется в параметр szTypeName структуры TSHFileInfo.
SHGFI_USEFILEATTRIBUTES - Указывает, что функция не должна пытаться получить доступ к файлу pszPath. Этот флаг не может быть объединен с флагами SHGFI_ATTRIBUTES, SHGFI_EXETYPE или SHGFI_PIDL.

Возвращаемые значения
Возвращает значение, зависящее от флага uFlags.
Если uFlags не содержит SHGFI_EXETYPE или SHGFI_SYSICONINDEX, то возвращаемое значение не нуль в случае успеха и нуль в противном случае.

Если uFlags содержит SHGFI_SYSICONINDEX, возвращаемая величина это хендл иконки в списке иконок содержащих большие иконки. Если SHGFI_SMALLICON включен SHGFI_SYSICONINDEX, то маленкая иконка.
Если uFlags содержит флаг SHGFI_EXETYPE, то возвращаемая величина, тип выполняемого файла. Одно из следующих величин:

Если uFlags содержит флаг SHGFI_EXETYPE, обратная величина определяет тип выполняемого файла. Это будет одним из следующего величин:
0 - Не исполняемый файл или ошибка.

LOWORD = NE или PE и HIWORD = версия Microsoft Windows - приложение Microsoft Windows
LOWORD = PE and HIWORD = 0 - Windows 95, Windows 98: Исполняемые файлы Microsoft MS-DOS *.exe, *.com, или *.bat; Microsoft Windows NT, Windows 2000, Windows XP: Исполняемые файлы Microsoft MS-DOS *.exe или *.com
LOWORD = PE and HIWORD = 0 - Windows 95, Windows 98: Консольное приложение win32; Windows NT, Windows 2000, Windows XP: Консольное приложение win32 или файл *.bat


Замечания
Если SHGetFileInfo возвращает хендл иконки в параметр hIcon структуры TSHFileInfo, то вы ответственны за освобождение ресурса когда иконка будет не нужна. Сделать это можно функцией DestroyIcon.
Как только вы получите хендл списка иконок, то вы можте использовать ImageList APi для манипулирования списком. Используйте список как объект только для чтения.
Вы должны инициализировать COM до вызова SHGetFileInfo. Сделать это можно функциями CoInitialize или OleInitialize.

Функция находится в файле shell32.dll

function SHGetFolderPath(hwnd: HWND; csidl: Integer; hToken: THandle; dwFlags: DWord; pszPath: PAnsiChar): HRESULT;

Возвращает путь к папке по ее CSIDL.

Параметры
hwnd: Хендл окна владельца. Это поараметр обычно равен nil. В случае если не nil, и dial-up связь установлена, то в папке появляется интерфейс ползователя, связанный с программой. {Я так понимаю это просто вы задаете интерфейс при http и ftp соединениях в Проводнике.}

csidl: CSIDL идентифицирующий папку. В силе только реальные папки. В случае если вы передаете CSIDL виртуальной папки, то функция терпит неудачу. Вы можете создать папку обьеденеиф папку CSIDL сфлагом CSIDL_FLAG_CREATE.

hToken: Метка (Токен) доступа, который используется для указания конкретного пользователя. Для систем ранее Win2000, этот параметр должен быть nil. Для поздних систме, этот параметр обычно nil, но может быть использован, для тех папок, которые имею много пользователей, но должны рассматриваться, как будто одного. Наиболее общая папка такого типа это - "Мои документы".

Вызывающий оператор ответсвенен за правильную маркировка токена когда hToken не nil. Он должен иметь подходящие привелегии безопасности, для конкретного пользователя, включая TOKEN_QUERY и TOKEN_IMPERSONATE и ячейка регистрации пользователя должна быть корректна прикреплена(mounted).
Параметр hToken равный -1, указывает на пользователя "по умолчанию". Это позволяет SHGetFolderPath находить путь папки (как например "Рабочий стол") для пользьзователя по умолчанию. Профиль пользователя "по умолчанию" копируется каждый раз, когда создается новый пользователь и включает такие папки как Мои документы" и "Рабочий стол". Любые объекты добавленные к профилю также поялвляются в любом новом созданном пользователе.

dwFlags: Указывает какой путь возвращать. Исползуется для случаев когда папка связанная с CSIDL может быть перемещена или переименована.
SHGFP_TYPE_CURRENT - Возвращает текущий путь папки.
SHGFP_TYPE_DEFAULT - Возвращает путь по умолчанию.

pszPath: Строка длинные не более MAX_PATH, в которую будет возвращен путь. Если произошла ошибка, или возвращается S_FALSE, то эта строка будет пустой.

Возвращаемые значения
Возвращает одно из следующих значений:
S_OK - Вызов успешен.

S_FALSE - nFolder правильный, но папка не существует.
E_INVALIDARG - nFolder неправилный.

Замечания
Эта функция расширяет функцию SHGetSpecialFolderPath, которая включенна в более ранние версии оболочки Windows. Осуществлено на редистрибутивной DLL, которая импортирует многое новые папки Оболочки. Если функция терпит неудачу, то пытается имитировать подходящее поведение. Оно поддерживает только некоторые CSIDL:
CSIDL_ADMINTOOLS, CSIDL_COMMON_ADMINTOOLS, CSIDL_APPDATA, CSIDL_COMMON_APPDATA, CSIDL_COMMON_DOCUMENTS, CSIDL_COOKIES, CSIDL_FLAG_CREATE, CSIDL_HISTORY, CSIDL_INTERNET_CACHE, CSIDL_LOCAL_APPDATA, CSIDL_MYPICTURES, CSIDL_PERSONAL, CSIDL_PROGRAM_FILES, CSIDL_PROGRAM_FILES_COMMON, CSIDL_SYSTEM CSIDL_WINDOWS

См. также: SHGetFolderPathAndSubDir

Пример:
Находит папку "Мои документы" с флагами нахождения и создания файла, затем создает в ней файл.

var
szPath: array [0..255] of char;
MString:String;
hFileTHandle;

....

if (SUCCEEDED( SHGetFolderPath(nil, CSIDL_PERSONAL and CSIDL_FLAG_CREATE, nil, 0, szPath)) then
begin
MString:=szPath;
MString:=MString+'\MyFile.txt';
hFile:= CreateFile(szPath, ...);
......

end;

........

Функция находится в файле SHFolder.dll

function SHGetFolderPathAndSubDir(hwnd: HWND; csidl: Integer; hToken: THandle; dwFlags: DWord; pszSubDir,pszPath: PAnsiChar): HRESULT;

Возвращает путь к папке по ее CSIDL. Добавляет путь к подпапке связанной с пользователем.

Параметры
hwnd: Хендл окна владельца. Это поараметр обычно равен nil. В случае если не nil, и dial-up связь установлена, то в папке появляется интерфейс ползователя, связанный с программой. {Я так понимаю это просто вы задаете интерфейс при http и ftp соединениях в Проводнике.}

csidl: CSIDL идентифицирующий папку. В силе только реальные папки. В случае если вы передаете CSIDL виртуальной папки, то функция терпит неудачу. Вы можете создать папку обьеденеиф папку CSIDL сфлагом CSIDL_FLAG_CREATE.

hToken: Метка (Токен) доступа, который используется для указания конкретного пользователя. Для систем ранее Win2000, этот параметр должен быть nil. Для поздних систме, этот параметр обычно nil, но может быть использован, для тех папок, которые имею много пользователей, но должны рассматриваться, как будто одного. Наиболее общаая папка такого типа это - "Мои документы".

Вызывающий оператор ответсвенен за правильную маркировка токена когда hToken не nil. Он должен иметь подходящие привелегии безопасности, для конкретного пользователя, включая TOKEN_QUERY и TOKEN_IMPERSONATE и ячейка регистрации пользователя должна быть корректна прикреплена(mounted).
Параметр hToken равный -1, указывает на пользователя "по умолчанию". Это позволяет SHGetFolderPathAndSubDir находить путь папки (как например "Рабочий стол") для пользьзователя по умолчанию. Профиль пользователя "по умолчанию" копируется каждый раз, когда создается новый пользователь и включает такие папки как Мои документы" и "Рабочий стол". Любые объекты добавленные к профилю также поялвляются в любом новом созданном пользователе.

dwFlags: Указывает какой путь возвращать. Исползуется для случаев когда папка связанная с CSIDL может быть перемещена или переименована.
SHGFP_TYPE_CURRENT - Возвращает текущий путь папки.
SHGFP_TYPE_DEFAULT - Возвращает путь по умолчанию.

pszSubDir: Строка длинные не более MAX_PATH, в которую будет возвращен подпапки для добавления в путь папки. Если вы не создаете папку, то здесь должен быть реальный путь иначе будет ошибка.

pszPath: Строка длинные не более MAX_PATH, в которую будет возвращен путь и путь к добавленной подпаке. Если произошла ошибка, или возвращается S_FALSE, то эта строка будет пустой.

Возвращаемые значения
Возвращает ошибук определенную в стандарте OLE или следующее значение:

Возвращает стандарт определивший результат ошибки OLE или одно из следующего оценивается.
S_OK - Вызов успешен.
S_FALSE - nFolder правильный, но папка не существует.
E_INVALIDARG - nFolder неправилный.

Замечания:
Эта функция не описана с стандартных заголочных файлах Дельфи, поэтому вам необходимо подключать ее самому.

См. также: SHGetFolderPath

Пример:
Находит папку "Windows" добавляет к ней подпаку "system32", затем создает в ней файл.

var
szPath: array [0..255] of char;
MString:String;
hFileTHandle;

....

if (SUCCEEDED( SHGetFolderPathAndSubDir(nil, CSIDL_WINDOWS, nil, SHGFP_TYPE_CURRENT, 'system32', szPath)) then
begin
MString:=szPath;
MString:=MString+'\MyFile.txt';
hFile:= CreateFile(szPath, ...);
......
end;

.....

Функция находится в файле SHFolder.dll

Function SHGetSpecialFolderLocation(hwndOwner: HWND;nFolder: Integer;
ppidl: PItemIDList):HResult;


Возвращает указатель на список идентификаторов специального обьекта-папки.

Паpаметpы:
hwndOwner - Заголовок окна владельца.

nFolder - константа CSIDL_
ppidl - взвращаемый указатель на структуру PItemIDList

function SHGetPathFromIDList(PIDL:PItemIDList;Path:PChar):HResult;

Преобразовывает идентификатор элемента пространства имен в путь файловой системы.

Параметры
PIDL- указатель на идентификатор элемента, который определяет расположение файла или папки, относительно корня пространства имен(Рабочий Стол).

Path- Указатель на строку принимающую путь в файловой системе.

Возвращаемое значение:
True - если удача
False - в случае неудачи.


SHQueryRecycleBin(pszRootPath:PANSIChar; var SHQueryRBInfo:TSHQueryRBInfo):HRESULT;

Функция возвращает размер корзины и количество элементов в ней на определенном диске.

Параметры
pszRootPath: Указатель на строку PChar содержащую путь к корневому диску на котором находиться корзина. Этот параметр может содержать адрес строки, с путем к какому-нибудь каталогу или подкаталогу, например c:\windows\system... .

В Windows 2000, если в параметре pszRootPath пустое значение или Nil, функция возвращают ошибку E_INVALIDARG . Более ранние версии операционной системы позволяют передавать пустую строку или Nil. Если pszRootPath содержит пустую строку или Nil, информация возвращается для всех корзин на всех дисках.
SHQueryRBInfo: Указатель на структуру SHQUERYRBINFO, которая получает информацию о корзине. Значение поле структуры CbSize должно быть установлено равным размеру структуры перед запросом этой функции.

Примечание: Данная функция не описана в стандартном модуле Дельфи и поэтому необходимо подключать ее самому.

 

 

Сайт создан в системе uCoz