Current News
Archived News
Search News
Discussion Forum


Old Forum
Install Programs More Downloads...
Troubleshooting
Source Code
Format Specs.
Misc. Information
Non-SF Stuff
Links




1 /* License information for this code is in license.txt */
3 #ifndef WINDOWS_H_INCLUDED
4 #define WINDOWS_H_INCLUDED
6 #include <stdlib.h>
7 #include <string.h>
8 #include <ctype.h>
9 #include <fcntl.h>
10 #include <unistd.h>
11 #include <sys/stat.h>
12 #include <stdint.h>
14 #define LINUX_PORT
16 #ifdef __cplusplus
17 extern "C" {
18 #endif
20 // Function related defines
21 #define __cdecl
22 #define __stdcall
23 #define WINAPI __stdcall
24 #define APIENTRY __stdcall
25 #define __declspec(x)
26 #define __inline inline
27 #define __forceinline inline
29 #define CONST const
31 // Type defines
32 typedef uint8_t BYTE;
33 typedef uint16_t WORD;
34 typedef uint32_t DWORD;
35 typedef int16_t SHORT;
36 typedef uint16_t USHORT;
37 typedef DWORD LCID;
38 typedef int32_t LONG;
39 typedef LONG * PLONG;
40 typedef int BOOL;
41 typedef void * LPVOID;
42 typedef CONST void *LPCVOID;
43 typedef char CHAR;
44 typedef char * LPSTR;
45 typedef const char * LPCSTR;
46 typedef DWORD * LPDWORD;
47 typedef BYTE * LPBYTE;
48 typedef LPVOID HANDLE;
49 typedef HANDLE HINSTANCE;
51 // Structs
52 typedef struct _OVERLAPPED {
53         DWORD  Internal;
54         DWORD  InternalHigh;
55         DWORD  Offset;
56         DWORD  OffsetHigh;
57         HANDLE hEvent;
58 } OVERLAPPED, *LPOVERLAPPED;
59 typedef struct _SECURITY_ATTRIBUTES {
60         DWORD nLength;
61         LPVOID lpSecurityDescriptor;
62         BOOL bInheritHandle;
63 } SECURITY_ATTRIBUTES, *PSECURITY_ATTRIBUTES, *LPSECURITY_ATTRIBUTES;
65 // Constants
66 #define FALSE 0
67 #define TRUE 1
68 #define MAX_PATH 260
69 #define INVALID_HANDLE_VALUE ((HANDLE)-1)
70 #define INVALID_FILE_SIZE ((DWORD)-1)
71 #define INVALID_SET_FILE_POINTER ((DWORD)-1)
72 #define DLL_PROCESS_ATTACH 1
73 #define DLL_THREAD_ATTACH  2
74 #define DLL_THREAD_DETACH  3
75 #define DLL_PROCESS_DETACH 0
76 #define PAGE_NOACCESS          0x01
77 #define PAGE_READONLY          0x02
78 #define PAGE_READWRITE         0x04
79 #define PAGE_WRITECOPY         0x08
80 #define PAGE_EXECUTE           0x10
81 #define PAGE_EXECUTE_READ      0x20
82 #define PAGE_EXECUTE_READWRITE 0x40
83 #define PAGE_EXECUTE_WRITECOPY 0x80
84 #define PAGE_GUARD            0x100
85 #define PAGE_NOCACHE          0x200
86 #define PAGE_WRITECOMBINE     0x400
87 #define MEM_COMMIT           0x1000
88 #define MEM_RESERVE          0x2000
89 #define MEM_DECOMMIT         0x4000
90 #define MEM_RELEASE          0x8000
91 #define MEM_FREE            0x10000
92 #define MEM_PRIVATE         0x20000
93 #define MEM_MAPPED          0x40000
94 #define MEM_RESET           0x80000
95 #define MEM_TOP_DOWN       0x100000
96 #define MEM_4MB_PAGES    0x80000000
97 #define DRIVE_UNKNOWN     0
98 #define DRIVE_NO_ROOT_DIR 1
99 #define DRIVE_REMOVABLE   2
100 #define DRIVE_FIXED       3
101 #define DRIVE_REMOTE      4
102 #define DRIVE_CDROM       5
103 #define DRIVE_RAMDISK     6
104 #define GENERIC_READ                     (0x80000000L)
105 #define GENERIC_WRITE                    (0x40000000L)
106 #define GENERIC_EXECUTE                  (0x20000000L)
107 #define GENERIC_ALL                      (0x10000000L)
108 #define FILE_SHARE_READ                 0x00000001
109 #define FILE_SHARE_WRITE                0x00000002
110 #define FILE_SHARE_DELETE               0x00000004
111 #define CREATE_NEW          1
112 #define CREATE_ALWAYS       2
113 #define OPEN_EXISTING       3
114 #define OPEN_ALWAYS         4
115 #define TRUNCATE_EXISTING   5
116 #define FILE_BEGIN           0
117 #define FILE_CURRENT         1
118 #define FILE_END             2
119 #define NO_ERROR 0L
120 #define ERROR_FILE_NOT_FOUND             2L
121 #define ERROR_ACCESS_DENIED              5L
122 #define ERROR_INVALID_PARAMETER          87L    // dderror
123 #define ERROR_ALREADY_EXISTS             183L
124 #define ERROR_FILE_INVALID               1006L
125 #define ERROR_UNKNOWN_PROPERTY           1608L
127 // Declarations for Windows API functions
128 void WINAPI SetLastError(DWORD dwLastError);
129 DWORD WINAPI GetLastError();
130 DWORD WINAPI GetCurrentDirectory(DWORD dwBufferLength, LPSTR lpBuffer);
131 DWORD WINAPI GetDriveType(LPCSTR lpRootPath);
132 HANDLE WINAPI CreateFile(LPCSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile);
133 BOOL WINAPI CloseHandle(HANDLE hObject);
134 DWORD WINAPI GetFileSize(HANDLE hFile, LPDWORD lpFileSizeHigh);
135 DWORD WINAPI SetFilePointer(HANDLE hFile, LONG lDistanceToMove, PLONG lpDistanceToMoveHigh, DWORD dwMoveMethod);
136 BOOL WINAPI SetEndOfFile(HANDLE hFile);
137 BOOL WINAPI ReadFile(HANDLE hFile, LPVOID lpBuffer, DWORD nNumberOfBytesToRead, LPDWORD lpNumberOfBytesRead, LPOVERLAPPED lpOverlapped);
138 BOOL WINAPI WriteFile(HANDLE hFile, LPCVOID lpBuffer, DWORD nNumberOfBytesToWrite, LPDWORD lpNumberOfBytesWritten, LPOVERLAPPED lpOverlapped);
139 BOOL WINAPI DeleteFile(LPCSTR lpFileName);
141 // Declarations for C runtime functions
142 char * strlwr(char *lpString);
143 char * strupr(char *lpString);
144 //char * strdup(const char *lpString);
145 #define stricmp strcasecmp
146 #define strnicmp strncasecmp
147 int memicmp(const char *lpString1, const char *lpString2, size_t dwSize);
149 // Other functions
150 void SlashToBackslash(char *lpPath);
151 void BackslashToSlash(char *lpPath);
153 #ifdef __cplusplus
154 };  // extern "C"
155 #endif
157 #endif