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




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