Синтаксис |
HANDLE GetStdHandle( DWORD dwDevice ) |
||
Параметры |
|||
dwDevice |
DWORD. Устройство, для которого должен быть возвращен дескриптор. Этот параметр может иметь одно из значений, приведенных в табл. 17.19. |
||
Таблица 17.19. Значения параметра dwDevice функции GetStdHandle |
|||
Значение |
Описание |
||
STD_INPUT_HANDLE |
Дескриптор стандартного устройства ввода информации |
||
STD_OUTPUT_HANDLE |
Дескриптор стандартного устройства вывода информации |
||
STD ERROR_HANDLE |
Дескриптор стандартного устройства вывода сообщений об ошибках |
||
Возвращаемое значение |
HANDLE. В случае успешного выполнения — дескриптор указанного устройства; в ином случае — INVALID_HANDLE_VALUE. |
||
Включаемыйфайл |
winbase.h |
||
См. также |
SetStdHandle |
||
Пример |
В следующем примере при запуске приложения с помощью функции AHocConsole создается окно консоли (рис. 17.3). Когда пользователь выбирает пункт меню Test!, в окне консоли отображается строка "This string is sent to the console". |
||
См. \local-sources\chapl7\17-13.txt |
|||
Рисунок 17.3. Пример применения функции GetStdHandle
GetTempFileName * Windows 98 + Windows 2000 |
|||||||||
Описание |
Функция GetTempFileName создает временное имя файла в следующем формате: path\preuuuu.tmp. В табл. 17.20 описаны компоненты имени этого файла. При останове системы Windows временные файлы, имена которых были созданы с помощью этой функции, автоматически не удаляются. |
||||||||
Таблица 1 7.20. Компоненты имени файла GetTempFileName |
|||||||||
Компонент |
Описание |
||||||||
path |
Путь, указанный параметром IpszPath |
||||||||
рте |
Первые три символа строки /pszPref/x |
||||||||
UUUU |
Шестнадцатиричное значение параметра uUn/que или сгенерированное системой уникальное число |
||||||||
Синтаксис |
UINT GetTempFileName( LPCTSTR IpszPath, LPCTSTR IpszPrefix, UINT u Unique, LPTSTR IpszTempFile ) |
||||||||
Параметры |
|||||||||
IpszPath |
LPCTSTR. Указатель на строку с нулевым символом в конце, содержащую путь, по которому функция создает временное имя файла. В приложениях в качестве этого параметра обычно указывают точку (.) или результат вызова функции GetTempPath. Если этот параметр равен NULL, функция ;не достигает успеха. |
||||||||
IpszPrefix и Unique |
LPCTSTR. Указатель на строку с нулевым символом в конце, которая используется как префикс имени временного файла. UINT. Целое число без знака, используемое при создании имени временного файла. Если этот параметр отличен от нуля, он присоединяется к имени временного файла. Если этот параметр равен 0, система Windows для создания числа, присоединяемого к имени файла, использует текущее системное время. |
||||||||
IpszTempFile |
LPTSTR. Указатель на буфер, в котором размещается имя временного файла с нулевым символом в конце. Для размещения значения пути этот буфер должен иметь длину (в байтах) не менее МАХ_РАТН. |
||||||||
Возвращаемое значение |
UINT. В случае успешного выполнения — уникальное числовое значенй используемое в имени временного файла. Если параметр и Unique отличе от нуля, возвращаемое значение содержит то же число. Если функция t достигает успеха, возвращаемое значение — 0. |
||||||||
Включаемый файл |
winbase.h |
||||||||
См. также |
CreateFile, GetTempPath |
||||||||
Пример |
В следующем примере показано, как использовать функции GetTempPath и GetTempFileName для получения временного имени файла. При запуске приложения создается временный файл и открывается для использования. Перед завершением работы приложения файл закрывается и удаляется. |
||||||||
См . \ local -source» \ chapl 7\17-14.txt |
|||||||||
GetTempPath • Windows 98 • Windows 2000 |
|||||||||
Описание |
Функция GetTempPath позволяет определить путь к каталогу, предназначенному для временных файлов. Для временных файлов должен использоваться именно этот путь. |
||||||||
Синтаксис |
DWORD GetTempPath( DWORD dwBuffer, LPTSTR IpszTempPath ) |
||||||||
Параметры |
|||||||||
dwBuffer |
DWORD. Размер буфера IpszTempPath в байтах (ANSI) или символах (Unicode). |
||||||||
IpszTempPath |
LPTSTR. Указатель на строковый буфер, который принимает строку с нулевым символом в конце, обозначающую временный путь к файлу. |
||||||||
Возвращаемое значение |
DWORD. В случае успешного выполнения — длина в байтах (ANSI) или символах (Unicode) строки, скопированной в буфер IpszTempPath. Длина не включает завершающий нулевой символ. Если функция не достигает успеха, возвращаемое значение — 0. Если возвращаемое значение превышает значение dwBuffer, функция возвращает размер (в байтах или символах) буфера, необходимого для размещения строки с обозначением пути. |
||||||||
Включаемый файл |
winbase.h |
||||||||
См. также |
GetTempFileName |
||||||||
Пример |
См. пример для функции GetTempFileName. |
||||||||
LocalFileTimeToFileTime • Windows 98 • Windows 2000 |
|||||||||
Описание |
Функция LocalFileTimeToFileTime преобразует отметку местного времени в отметку времени, соответствующую значению универсального скоординированного времени (UTC). |
||||||||
Синтаксис |
BOOL LocalFileTimeToFileTime( CONST FILETIME* IpftLocal, LPFILETIME Ipft ) |
||||||||
Параметры |
|||||||||
IpftLocal |
CONST FILETIME*. Указатель на структуру FILETIME, содержащую отметку местного времени, которая должна быть преобразована в отметку времени, соответствующую UTC. Определение структуры FILETIME приведено в описании функции CompareFileTime. |
||||||||
Ipft |
LPFILETIME. Указатель на структуру FILETIME, которая должна принять преобразованную отметку времени, соответствующую UTC. Этот параметр не может быть равен параметру IpftLocal Определение структуры FILETIME приведено в описании функции CompareFileTime. |
||||||||
Возвращаемое значение |
BOOL. В случае успешного выполнения — TRUE; в ином случае — FALSE. |
||||||||
Включаемыйфайл |
winbase.h |
||||||||
См. также |
FileTimeToLocalFileTime |
||||||||
Пример |
См. пример для функции DosDateTimeToFileTime. |
||||||||
LockFile • Windows 98 • Windows 2000 |
|||||||||
Описание |
Функция LockFile блокирует участок в открытом файле и предоставляет блокирующему процессу монопольный доступ к указанному участку, отказывая всем другим процессам в доступе к этому участку для чтения и для записи. Блокировки не могут перекрывать существующие заблокированные участки файла. Для разблокирования участка применяется функция UnlockFile. |
||||||||
Синтаксис |
BOOL LockFile( HANDLE hFile, DWORD dwFileOffsetLow, DWORD dwFileOffsetHigh, DWORD dwLockLow, DWORD dwLockffigh ) |
||||||||
Параметры |
|||||||||
hFile |
HANDLE. Дескриптор файла, в котором должна быть заблокирована область. Дескриптор файла должен быть создан с правами доступа к файлу либо GENERIC_READ, либо GENERIC_WRITE (либо с теми и иными). |
||||||||
dwFile Offset Low |
DWORD. Младшие 32 бита начального байтового смещения в файле, с которого должна начаться блокировка. |
||||||||
dwFileOffsetHigh |
DWORD. Старшие 32 бита начального байтового смещения в файле, с которого должна начаться блокировка. |
||||||||
dwLockLow |
DWORD. Младшие 32 бита значения длины блокируемой области в байтах. |
||||||||
dwLockffigh |
DWORD. Старшие 32 бита значения длины блокируемой области в байтах. |
||||||||
Возвращаемое значение |
BOOL. В случае успешного выполнения — TRUE; в ином случае — FALSE |
||||||||
Включаемый файл |
winbase.h |
||||||||
См. также |
CreateFile, UnlockFile |
||||||||
Пример |
В следующем примере показана функция, которая обновляет запись Е файле с использованием блокировки файла. В параметре dwRecord передается номер записи и вычисляется смещение в файле, исходя из размера структуры RECORD (это — структура, зависящая от приложения, которая представляет запись в файле). Участок файла, в котором находится запись, блокируется, и запись обновляется. Если параметр bFlush установлен в значение TRUE, буферы файла очищаются с помощью функции FlushFileBuffers. Затем запись разблокируется и функция возвращает информацию об успешном выполнении. |
||||||||
См. \local-sources\chapl7\17-15. txt |
|||||||||
LockFileEx • Windows 98 + Windows 2000 |
|||||||||
Описание |
Функция LockFileEx блокирует ряд байтов в открытом файле для совместного или монопольного доступа. Блокировка ряда байтов в файле предоставляет приложению разделяемый или монопольный доступ к этим байтам в файле. При создании процесса блокировки файла не наследуются новым процессом. Блокировка части файла для монопольного доступа не позволяет другим процессам получить доступ к этой части файла для чтения и записи. Блокировка части файла для совместного доступа исключает для других процессов возможность получить доступ к этой части файла для записи. |
||||||||
Синтаксис |
BOOL LockFileEx( HANDLE fiFtle, DWORD dwFlags, DWORD dwReserved, DWORD dwNumberOfBytesToLockLow, DWORD dwNumberOfBytesToLockffigh, LPOVERLAPPED IpOverlapped) |
||||||||
Параметры |
|||||||||
hFile |
HANDLE. Открытый дескриптор файла, в котором ряд байтов должен быть заблокирован для разделяемого или монопольного доступа. Дескриптор должен быть создан с правами доступа к файлу GENERIC READ или GENERIC_WRITE. |
||||||||
dwFlags |
DWORD. Определяет способ блокировки файла. Этот параметр может иметь одно или несколько значений, перечисленных в табл. 17.21. |
||||||||
Таблица 17.21. Значения параметра dwFlags функции LockFileEx |
|||||||||
Значение |
Описание |
||||||||
LOCKFILE_EXCLUSIVE_LOCK |
Функция запрашивает монопольную блокировку. По умолчанию функция запрашивает разделяемую блокировку. |
||||||||
LOCKFILE_FAILJMMEDIATELY |
Функция немедленно выполняет возврат, если не может приобрести затребованную блокировку. По умолчанию функция переходит в состояние ожидания. |
||||||||
dwReserved |
DWORD. Зарезервированное значение; должно быть установлено равным 0. |
||||||||
dwNumberOfBytesToLockLow DWORD. Младшие 32 бита значения длины блокируемой области, в байтах. |
|||||||||
dwNumberOfBytesToLockHigh DWORD. Старшие 32 бита значения длины блокируемой области, в байтах. |
|||||||||
IpOverlapped |
LPOVERLAPPED. Указатель на структуру OVERLAPPED, используемую функцией в запросе блокировки. Эта обязательная структура содержит смещение начала области блокировки в файле. Определение структуры OVERLAPPED приведено в описании функции ReadFile далее в этой главе. |
||||||||
Возвращаемое значение |
BOOL. В случае успешного выполнения — TRUE; в ином случае — FALSE. |
||||||||
Включаемыйфайл |
winbase.h |
||||||||
См. также |
LockFile, UnlockFileEx |
||||||||
Пример |
Следующий пример аналогичен примеру, приведенному при описании функции LockFile, за исключением того, что в нем для блокирования участка файла используется функция LockFileEx, а для разблокирования того же участка после обновления — функция UnlockFileEx. |
||||||||
См. \local-sources\chapl7\17-16. txt |
|||||||||
MapViewOfFile + Windows 98 ф Windows 2000 |
|||||||||
Описание |
Функция MapViewOfFile отображает представление файла в адресное пространство вызывающего процесса. Процесс может продублировать дескриптор объекта отображения файла для другого процесса с использованием функции DuplicateHandle или другой процесс может открыть объект отображения файла по имени с использованием функции OpenFileMapping. |
||||||||
Синтаксис |
LPVOID MapViewOfFile( HANDLE hMapObject, DWORD dwAccess, DWORD dwOffsetHigh, DWORD dwOffsetLow, DWORD dwMap ) |
||||||||
Параметры |
|||||||||
hMapObject |
HANDLE. Открытый дескриптор объекта отображения файла. Это — дескриптор, возвращаемый функциями CreateFileMapping и OpenFileMapping. |
||||||||
dwAccess |
DWORD. Тип доступа к представлению файла. Этот параметр может иметь одно из значений, приведенных в табл. 17.22. |
||||||||
Таблица 17.22. Значения параметра dwAccess функции MapViewOfFile |
|||||||||
Значение |
Описание |
||||||||
HLE_MAP_ALL_ACCESS |
To же, что и FILE_MAP_WRITE. |
||||||||
FILE_MAP_COPY |
Доступ для копирования после записи. |
||||||||
HLE_MAP_READ |
Доступ только для чтения. Параметр hMapOb/ect должен быть создан с правами защиты PAGE_READWRITE или PAGE_READ. |
||||||||
FILE_MAP_WRITE |
Доступ для чтения/записи. Параметр hMapObject должен быть создан с правами защиты PAGE_READWRITE . |
||||||||
dwOffsetHigh |
DWORD. Старшие 32 бита смещения файла, с которого должно начаться отображение. |
||||||||
dwOffsetLow |
DWORD. Младшие 32 бита смещения файла, с которого должно начаться отображение. Смещение должно находиться внутри файла и быть кратным степени детализации распределения. Для получения информации о степени детализации распределения памяти системы применяется функция GetSystemlnfo. |
||||||||
dwMap |
DWORD. Число байтов файла, которое должно быть отображено. Если этот параметр установлен равным 0, отображается весь файл. |
||||||||
Возвращаемое значение |
LPVOID. В случае успешного выполнения — начальный адрес отображенного представления; в ином случае — NULL. |
||||||||
Включаемый файл |
winbase.h |
||||||||
См. также |
CreateFileMapping, DuplicateHandle, MapViewOfFileEx, OpenFileMapping, UnMapViewOfFile |
||||||||
Пример |
В следующем примере показано, как обеспечить совместный доступ двух процессов к файлу, отображенному в память. При запуске приложения создается файл, отображенный в память. Когда пользователь выбирает пункт меню Test!, отображается представление файла, и данные помещаются в память. Затем в этой программе создается нить и выполняется переход в состояние ожидания момента модификации данных нитью с контролем по таймеру. Нить использует данные для отображения окна сообщения и после закрытия окна сообщения помещает в отображенную память строку "Received". Когда программа в данном примере получает сообщение WMJTIMER, она проверяет, была ли помещена в отображенную память строка "Received". Если это было выполнено, работа нити и таймера прекращается, и пользователь получает сообщение. |
||||||||
См. \local-sources\chapl7\17-17.txt |
|||||||||
MapViewOfFileEx • Windows 98 • Windows 2000 |
|||||||||
Описание |
Функция MapViewOfFileEx аналогична MapViewOfFile, за исключением того, что вызывающий процесс может указать предполагаемый адрес памяти для отображенного представления. В Windows 2000, если параметр IpvBase указывает базовое смещение, функция выполняется успешно при условии, что указанная область памяти еще не используется вызывающим процессом. В Windows 98 та же область памяти должна быть доступна для всех 32-разрядных процессов. Как правило, предполагаемый адрес используется для указания того, что файл должен быть отображен в один и тот же адрес во многих процессах. Для этого требуется, чтобы данная область адресного пространства была доступна всем участвующим процессам. В области памяти, которая служит для отображения, не должно происходить никакое иное распределение памяти, включая использование функции VirtualAlloc для резервирования памяти. |
||||||||
Синтаксис |
LPVOID MapViewOfFileEx( HANDLE hMapObject, DWORD dwAccess, DWORD dwOffsetffigh, DWORD dwOffsetLow, DWORD dwMap, LPVOID IpvBase ) |
||||||||
Параметры |
|||||||||
hMapObject |
HANDLE. Открытый дескриптор объекта отображения файла. Это — дескриптор, возвращаемый функциями CreateFileMapping и OpenFileMapping. |
||||||||
dwAccess |
DWORD. Тип доступа к представлению файла. Этот параметр может иметь одно из значений, приведенных в табл. 17.22. |
||||||||
dwOffsetffigh |
DWORD. Старшие 32 бита смещения файла, с которого должно начаться отображение. |
||||||||
dwOffsetLow |
DWORD. Младшие 32 бита смещения файла, с которого должно начаться отображение. Смещение должно находиться внутри файла и быть кратным степени детализации распределения. Для получения информации о степени детализации распределения памяти системы применяется функция GetSystemlnfo. |
||||||||
divMap |
DWORD. Число байтов файла, которое должно быть отображено. Если этот параметр установлен равным 0, отображается весь файл. |
||||||||
IpvBase |
LPVOID. Указатель на адрес памяти в адресном пространстве вызывающего процесса, с которого должно начаться отображение. Это значение должно быть кратным степени детализации распределения памяти системы; в ином случае, функция не достигает успеха. Функция завершается аварийно также в том случае, если по указанному адресу нет достаточного объема адресного пространства. Если этот параметр установлен равным NULL, адрес отображения выбирает операционная система, и функция эквивалентна MapViewOfFile. |
||||||||
Возвращаемое значение |
LPVOID. В случае успешного выполнения начальный адрес отображенного представления; в ином случае — NULL. |
||||||||
Включаемый файл |
winbase.h |
||||||||
См. также |
CreateFileMapping, DuplicateHandle, MapViewOfFile, OpenFileMapping, UnmapViewOfFile |
||||||||
Пример |
Следующий пример аналогичен приведенному при описании функции MapViewOfFile, за исключением того, что в нем для обеспечения совпадения адреса, используемого для объекта отображения в нити, с адресом, используемым в главном процессе, применяется функция MapView-OfFileEx. |
||||||||
См. \local-sources\chapl7\17-18.txt |
|||||||||
MoveFile • Windows 98 • Windows 2000 |
|||||||||
Описание |
Функция MoveFile перемещает (переименовывает) существующий файл или каталог (включая все его подкаталоги) в новое место на томе. Функция MoveFile при перемещении каталога завершается неудачно, если место назначения находится на другом томе. Это связано с тем, что функция MoveFile переименовывает каталог, а не перемещает его физически. |
||||||||
Синтаксис |
BOOL MoveF11e( LPCTSTR IpszExisting, LPCTSTR IpszNew ) |
||||||||
Параметры |
|||||||||
IpszExisting |
LPCTSTR. Указатель на строку с нулевым символом в конце, содержащую имя существующего файла или каталога. |
||||||||
IpszNew |
LPCTSTR. Указатель на строку с нулевым символом в конце, которая указывает новое имя файла или каталога. Новое имя может указывать на несуществующий объект. Новый файл может находиться в другой файловой системе или на другом диске. Новый каталог должен находиться на том же диске. |
||||||||
Возвращаемое значение |
BOOL. В случае успешного выполнения — TRUE; в ином случае — FALSE. |
||||||||
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.