314 lines
11 KiB
C++
314 lines
11 KiB
C++
#pragma once
|
|
|
|
|
|
class CFindFile
|
|
{
|
|
public:
|
|
CFindFile() :
|
|
m_hFind(INVALID_HANDLE_VALUE) {}
|
|
~CFindFile();
|
|
|
|
public:
|
|
BOOL First(PCTSTR pcszFileName);
|
|
BOOL Next();
|
|
PWIN32_FIND_DATA Found();
|
|
|
|
protected:
|
|
HANDLE m_hFind;
|
|
WIN32_FIND_DATA m_FindData;
|
|
};
|
|
|
|
|
|
void xGetOverlappedResult(
|
|
HANDLE hFile,
|
|
LPOVERLAPPED lpOverlapped,
|
|
LPDWORD lpNumberOfBytesTransferred,
|
|
BOOL bWait);
|
|
|
|
HANDLE xCreateFile(
|
|
PCTSTR pcszFileName, // file name
|
|
DWORD dwDesiredAccess, // access mode
|
|
DWORD dwShareMode, // share mode
|
|
PSECURITY_ATTRIBUTES pSecurityAttributes, // SD
|
|
DWORD dwCreationDisposition, // how to create
|
|
DWORD dwFlagsAndAttributes, // file attributes
|
|
HANDLE hTemplateFile); // handle to template file
|
|
|
|
void xCloseHandle(
|
|
HANDLE hObject); // handle to object
|
|
|
|
BOOL xReadFile(
|
|
HANDLE hFile, // handle to file
|
|
PVOID pBuffer, // data buffer
|
|
DWORD dwNumberOfBytesToRead, // number of bytes to read
|
|
PDWORD pdwNumberOfBytesRead, // number of bytes read
|
|
LPOVERLAPPED pOverlapped); // overlapped buffer
|
|
|
|
void xReadFileWithAbort(
|
|
HANDLE hFile, // handle to file
|
|
PVOID pBuffer, // data buffer
|
|
DWORD dwNumberOfBytesToRead, // number of bytes to read
|
|
PDWORD pdwNumberOfBytesRead, // number of bytes read
|
|
LPOVERLAPPED pOverlapped, // overlapped buffer
|
|
HANDLE hAbort); // Handle to manual reset abort event
|
|
|
|
BOOL xWriteFile(
|
|
HANDLE hFile, // handle to file
|
|
LPCVOID pBuffer, // data buffer
|
|
DWORD dwNumberOfBytesToWrite, // number of bytes to write
|
|
PDWORD pdwNumberOfBytesWritten, // number of bytes written
|
|
LPOVERLAPPED pOverlapped); // overlapped buffer
|
|
|
|
void xWriteFileWithAbort(
|
|
HANDLE hFile, // handle to file
|
|
LPCVOID pBuffer, // data buffer
|
|
DWORD dwNumberOfBytesToWrite, // number of bytes to write
|
|
PDWORD pdwNumberOfBytesWritten, // number of bytes written
|
|
LPOVERLAPPED pOverlapped, // overlapped buffer
|
|
HANDLE hAbort); // Handle to manual reset abort event
|
|
|
|
void xGetCommState(
|
|
HANDLE hFile, // handle to communications device
|
|
LPDCB pDCB); // device-control block
|
|
|
|
void xSetCommState(
|
|
HANDLE hFile, // handle to communications device
|
|
LPDCB pDCB); // device-control block
|
|
|
|
void xGetCommTimeouts(
|
|
HANDLE hFile, // handle to comm device
|
|
LPCOMMTIMEOUTS pCommTimeouts); // time-out values
|
|
|
|
void xSetCommTimeouts(
|
|
HANDLE hFile, // handle to comm device
|
|
LPCOMMTIMEOUTS pCommTimeouts); // time-out values
|
|
|
|
void xSetCommMask(
|
|
HANDLE hFile, // handle to communications device
|
|
DWORD dwEvtMask); // mask that identifies enabled events
|
|
|
|
void xGetCommMask(
|
|
HANDLE hFile, // handle to communications device
|
|
PDWORD pdwEvtMask); // mask that identifies enabled events
|
|
|
|
BOOL xWaitCommEvent(
|
|
HANDLE hFile, // handle to comm device
|
|
PDWORD pdwEvtMask, // event type
|
|
LPOVERLAPPED pOverlapped); // overlapped structure
|
|
|
|
void xWaitCommEventWithAbort(
|
|
HANDLE hFile, // handle to comm device
|
|
PDWORD pdwEvtMask, // event type
|
|
LPOVERLAPPED pOverlapped, // overlapped structure
|
|
HANDLE hAbort); // Manual reset abort event
|
|
|
|
void xEscapeCommFunction(
|
|
HANDLE hFile, // handle to communications device
|
|
DWORD dwFunc); // extended function to perform
|
|
|
|
void xClearCommBreak(
|
|
HANDLE hFile); // handle to communications device
|
|
|
|
void xClearCommError(
|
|
HANDLE hFile, // handle to communications device
|
|
PDWORD pdwErrors, // error codes
|
|
LPCOMSTAT pStat); // communications status
|
|
|
|
void xBuildCommDCB(
|
|
PCTSTR pcszDef, // device-control string
|
|
LPDCB lpDCB); // device-control block
|
|
|
|
void xTransmitCommChar(
|
|
HANDLE hFile,
|
|
char cChar);
|
|
|
|
HANDLE xCreateThread(
|
|
LPSECURITY_ATTRIBUTES lpThreadAttributes, // SD
|
|
DWORD dwStackSize, // initial stack size
|
|
LPTHREAD_START_ROUTINE lpStartAddress, // thread function
|
|
LPVOID lpParameter, // thread argument
|
|
DWORD dwCreationFlags, // creation option
|
|
LPDWORD lpThreadId); // thread identifier
|
|
|
|
void xTerminateThread(
|
|
HANDLE hThread, // handle to thread
|
|
DWORD dwExitCode); // exit code
|
|
|
|
|
|
UINT_PTR xSetTimer(
|
|
HWND hWnd, // handle to window
|
|
UINT_PTR nIDEvent, // timer identifier
|
|
UINT uElapse, // time-out value
|
|
TIMERPROC lpTimerFunc); // timer procedure
|
|
|
|
void xKillTimer(
|
|
HWND hWnd, // handle to window
|
|
UINT_PTR uIDEvent); // timer identifier
|
|
|
|
void xFillConsoleOutputAttribute(
|
|
HANDLE hConsoleOutput, // handle to screen buffer
|
|
WORD wAttribute, // color attribute
|
|
DWORD nLength, // number of cells
|
|
COORD dwWriteCoord, // first coordinates
|
|
LPDWORD lpNumberOfAttrsWritten // number of cells written
|
|
);
|
|
|
|
void xFillConsoleOutputCharacter(
|
|
HANDLE hConsoleOutput, // handle to screen buffer
|
|
TCHAR cCharacter, // character
|
|
DWORD nLength, // number of cells
|
|
COORD dwWriteCoord, // first coordinates
|
|
LPDWORD lpNumberOfCharsWritten // number of cells written
|
|
);
|
|
|
|
void xGetConsoleScreenBufferInfo(
|
|
HANDLE hConsoleOutput, // handle to screen buffer
|
|
PCONSOLE_SCREEN_BUFFER_INFO lpConsoleScreenBufferInfo // screen buffer information
|
|
);
|
|
|
|
DWORD xGetConsoleTitle(
|
|
LPTSTR lpConsoleTitle, // console title
|
|
DWORD nSize // size of title buffer
|
|
);
|
|
|
|
COORD xGetLargestConsoleWindowSize(
|
|
HANDLE hConsoleOutput // handle to screen buffer
|
|
);
|
|
|
|
HANDLE xGetStdHandle(
|
|
DWORD nStdHandle = STD_OUTPUT_HANDLE);// Input, output or error device
|
|
|
|
void xReadConsoleOutputAttribute(
|
|
HANDLE hConsoleOutput, // handle to screen buffer
|
|
LPWORD lpAttribute, // attributes buffer
|
|
DWORD nLength, // number of cells to read
|
|
COORD dwReadCoord, // coordinates of first cell
|
|
LPDWORD lpNumberOfAttrsRead // number of cells read
|
|
);
|
|
|
|
void xReadConsoleOutputCharacter(
|
|
HANDLE hConsoleOutput, // handle to screen buffer
|
|
LPTSTR lpCharacter, // character buffer
|
|
DWORD nLength, // number of cells to read
|
|
COORD dwReadCoord, // coordinates of first cell
|
|
LPDWORD lpNumberOfCharsRead // number of cells read
|
|
);
|
|
|
|
void xSetConsoleScreenBufferSize(
|
|
HANDLE hConsoleOutput, // handle to screen buffer
|
|
COORD dwSize // new screen buffer size
|
|
);
|
|
|
|
void xSetConsoleTextAttribute(
|
|
HANDLE hConsoleOutput, // handle to screen buffer
|
|
WORD wAttributes // text and background colors
|
|
);
|
|
|
|
void xSetConsoleTitle(
|
|
LPCTSTR lpConsoleTitle // new console title
|
|
);
|
|
|
|
void xSetConsoleWindowInfo(
|
|
HANDLE hConsoleOutput, // handle to screen buffer
|
|
BOOL bAbsolute, // coordinate type
|
|
CONST SMALL_RECT *lpConsoleWindow // window corners
|
|
);
|
|
|
|
void xWriteConsole(
|
|
HANDLE hConsoleOutput, // handle to screen buffer
|
|
CONST VOID *lpBuffer, // write buffer
|
|
DWORD nNumberOfCharsToWrite, // number of characters to write
|
|
LPDWORD lpNumberOfCharsWritten, // number of characters written
|
|
LPVOID lpReserved // reserved
|
|
);
|
|
|
|
void xWriteConsoleOutputAttribute(
|
|
HANDLE hConsoleOutput, // handle to screen buffer
|
|
CONST WORD *lpAttribute, // write attributes
|
|
DWORD nLength, // number of cells
|
|
COORD dwWriteCoord, // first cell coordinates
|
|
LPDWORD lpNumberOfAttrsWritten // number of cells written
|
|
);
|
|
|
|
void xWriteConsoleOutputCharacter(
|
|
HANDLE hConsoleOutput, // handle to screen buffer
|
|
LPCTSTR lpCharacter, // characters
|
|
DWORD nLength, // number of characters to write
|
|
COORD dwWriteCoord, // first cell coordinates
|
|
LPDWORD lpNumberOfCharsWritten // number of cells written
|
|
);
|
|
|
|
HANDLE xCreateEvent(
|
|
LPSECURITY_ATTRIBUTES lpEventAttributes, // SD
|
|
BOOL bManualReset, // reset type
|
|
BOOL bInitialState, // initial state
|
|
LPCTSTR lpName); // object name
|
|
|
|
void xSetEvent(
|
|
HANDLE hEvent);
|
|
|
|
void xResetEvent(
|
|
HANDLE hEvent);
|
|
|
|
DWORD xWaitForMultipleObjects(
|
|
DWORD nCount, // number of handles in array
|
|
CONST HANDLE *lpHandles, // object-handle array
|
|
BOOL fWaitAll, // wait option
|
|
DWORD dwMilliseconds); // time-out interval
|
|
|
|
DWORD xWaitForSingleObject(
|
|
HANDLE hHandle, // handle to object
|
|
DWORD dwMilliseconds); // time-out interval
|
|
|
|
PWSTR xMultiByteToWideChar(
|
|
UINT CodePage, // code page
|
|
DWORD dwFlags, // performance and mapping flags
|
|
LPCSTR lpMultiByteStr); // wide-character string
|
|
|
|
PSTR xWideCharToMultiByte(
|
|
UINT CodePage, // code page
|
|
DWORD dwFlags, // performance and mapping flags
|
|
LPCWSTR lpWideCharStr); // wide-character string
|
|
|
|
PWSTR xMakeWideChar(
|
|
PTSTR pcszInput);
|
|
|
|
PSTR xMakeMultiByte(
|
|
PTSTR pcszInput);
|
|
|
|
PTSTR xMakeDefaultChar(
|
|
PWSTR pcszInput);
|
|
|
|
PTSTR xMakeDefaultChar(
|
|
PSTR pcszInput);
|
|
|
|
DWORD xGetModuleFileName(
|
|
HMODULE hModule, // handle to module
|
|
LPTSTR lpFilename, // file name of module
|
|
DWORD nSize // size of buffer
|
|
);
|
|
|
|
HANDLE xFindFirstFile(
|
|
LPCTSTR lpFileName, // file name
|
|
LPWIN32_FIND_DATA lpFindFileData);// data buffer
|
|
|
|
BOOL xFindNextFile(
|
|
HANDLE hFindFile, // search handle
|
|
LPWIN32_FIND_DATA lpFindFileData);// data buffer
|
|
|
|
HMODULE xLoadLibrary(
|
|
LPCTSTR lpFileName); // file name of module
|
|
|
|
FARPROC xGetProcAddress(
|
|
HMODULE hModule,
|
|
LPCSTR lpProcName);
|
|
|
|
HANDLE xCreateMutex(
|
|
LPSECURITY_ATTRIBUTES lpMutexAttributes, // SD
|
|
BOOL bInitialOwner, // initial owner
|
|
LPCTSTR lpName); // object name
|
|
|
|
|
|
void xReleaseMutex(
|
|
HANDLE hMutex);
|