2 // Copyright (C) 2011 Suguru Kawamoto
\r
5 #ifndef __IOWRAPPER_H__
\r
6 #define __IOWRAPPER_H__
\r
11 #ifndef DO_NOT_REPLACE
\r
14 #define GetStdHandle GetStdHandleX
\r
15 HANDLE GetStdHandleX(DWORD nStdHandle);
\r
16 #undef GetConsoleMode
\r
17 #define GetConsoleMode GetConsoleModeX
\r
18 BOOL GetConsoleModeX(HANDLE hConsoleHandle, LPDWORD lpMode);
\r
19 #undef SetConsoleMode
\r
20 #define SetConsoleMode SetConsoleModeX
\r
21 BOOL SetConsoleModeX(HANDLE hConsoleHandle, DWORD dwMode);
\r
23 #define ReadFile ReadFileX
\r
24 BOOL ReadFileX(HANDLE hFile, LPVOID lpBuffer, DWORD nNumberOfBytesToRead, LPDWORD lpNumberOfBytesRead, LPOVERLAPPED lpOverlapped);
\r
26 #define WriteFile WriteFileX
\r
27 BOOL WriteFileX(HANDLE hFile, LPCVOID lpBuffer, DWORD nNumberOfBytesToWrite, LPDWORD lpNumberOfBytesWritten, LPOVERLAPPED lpOverlapped);
\r
29 #define printf printfX
\r
30 int printfX(const char * _Format, ...);
\r
33 char * getsX(char * _Buffer);
\r
36 int putsX(const char * _Str);
\r
38 #define fprintf fprintfX
\r
39 int fprintfX(FILE * _File, const char * _Format, ...);
\r
41 #define fgets fgetsX
\r
42 char * fgetsX(char * _Buf, int _MaxCount, FILE * _File);
\r
44 #define fputs fputsX
\r
45 int fputsX(const char * _Str, FILE * _File);
\r
48 void exitX(int _Code);
\r
52 typedef BOOL (__stdcall* LPSFTPTIMEOUTCALLBACK)(BOOL*);
\r
56 CRITICAL_SECTION Lock;
\r
62 LPSFTPTIMEOUTCALLBACK pCallback;
\r
69 LPSFTPTIMEOUTCALLBACK pCallback;
\r
70 SFTPIOBUFFER InBuffer;
\r
71 SFTPIOBUFFER OutBuffer;
\r
72 SFTPIOBUFFER DataInBuffer;
\r
73 SFTPIOBUFFER DataOutBuffer;
\r
74 LARGE_INTEGER FilePosition;
\r
77 DWORD WINAPI SFTP_ThreadProc(LPVOID lpParameter);
\r
78 SFTPSTATUS* FindSFTPStatus(DWORD ThreadId);
\r
79 BOOL SFTP_InitializeIOBuffer(SFTPIOBUFFER* pIO, size_t Length);
\r
80 void SFTP_UninitializeIOBuffer(SFTPIOBUFFER* pIO);
\r
81 void SFTP_AbortIOBuffer(SFTPIOBUFFER* pIO, BOOL bAborted);
\r
82 size_t SFTP_PeekIOBuffer(SFTPIOBUFFER* pIO, void* pBuffer, size_t Size);
\r
83 size_t SFTP_ReadIOBuffer(SFTPIOBUFFER* pIO, void* pBuffer, size_t Size);
\r
84 size_t SFTP_WriteIOBuffer(SFTPIOBUFFER* pIO, const void* pBuffer, size_t Size);
\r
85 size_t SFTP_ReadIOBufferLine(SFTPIOBUFFER* pIO, void* pBuffer, size_t Size);
\r
86 size_t SFTP_PeekThreadIO(void* pBuffer, size_t Size);
\r
87 size_t SFTP_ReadThreadIO(void* pBuffer, size_t Size);
\r
88 size_t SFTP_WriteThreadIO(const void* pBuffer, size_t Size);
\r
89 size_t SFTP_ReadThreadIOLine(void* pBuffer, size_t Size);
\r
90 size_t SFTP_PeekThreadDataIO(void* pBuffer, size_t Size);
\r
91 size_t SFTP_ReadThreadDataIO(void* pBuffer, size_t Size);
\r
92 size_t SFTP_WriteThreadDataIO(const void* pBuffer, size_t Size);
\r
93 BOOL SFTP_GetThreadFilePositon(DWORD* pLow, LONG* pHigh);
\r