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>
1b459fd5 12#include <stdint.h>
7df24e1f 13
14#define LINUX_PORT
15
16#ifdef __cplusplus
17extern "C" {
18#endif
19
20// Function related defines
21#define __cdecl
22#define __stdcall
23#define WINAPI __stdcall
24#define APIENTRY __stdcall
1b459fd5 25#define __declspec(x)
7df24e1f 26#define __inline inline
27#define __forceinline inline
28
29#define CONST const
30
31// Type defines
1b459fd5 32typedef uint8_t BYTE;
33typedef uint16_t WORD;
34typedef uint32_t DWORD;
35typedef int16_t SHORT;
36typedef uint16_t USHORT;
7df24e1f 37typedef DWORD LCID;
1b459fd5 38typedef int32_t LONG;
7df24e1f 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)
1b459fd5 70#define INVALID_FILE_SIZE ((DWORD)-1)
71#define INVALID_SET_FILE_POINTER ((DWORD)-1)
7df24e1f 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
1b459fd5 119#define NO_ERROR 0L
7df24e1f 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
126
127// Declarations for Windows API functions
128void WINAPI SetLastError(DWORD dwLastError);
129DWORD WINAPI GetLastError();
130DWORD WINAPI GetCurrentDirectory(DWORD dwBufferLength, LPSTR lpBuffer);
131DWORD WINAPI GetDriveType(LPCSTR lpRootPath);
132HANDLE WINAPI CreateFile(LPCSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile);
133BOOL WINAPI CloseHandle(HANDLE hObject);
134DWORD WINAPI GetFileSize(HANDLE hFile, LPDWORD lpFileSizeHigh);
135DWORD WINAPI SetFilePointer(HANDLE hFile, LONG lDistanceToMove, PLONG lpDistanceToMoveHigh, DWORD dwMoveMethod);
136BOOL WINAPI SetEndOfFile(HANDLE hFile);
137BOOL WINAPI ReadFile(HANDLE hFile, LPVOID lpBuffer, DWORD nNumberOfBytesToRead, LPDWORD lpNumberOfBytesRead, LPOVERLAPPED lpOverlapped);
138BOOL WINAPI WriteFile(HANDLE hFile, LPCVOID lpBuffer, DWORD nNumberOfBytesToWrite, LPDWORD lpNumberOfBytesWritten, LPOVERLAPPED lpOverlapped);
139BOOL WINAPI DeleteFile(LPCSTR lpFileName);
140
141// Declarations for C runtime functions
142char * strlwr(char *lpString);
143char * strupr(char *lpString);
1b459fd5 144//char * strdup(const char *lpString);
7df24e1f 145#define stricmp strcasecmp
146#define strnicmp strncasecmp
147int memicmp(const char *lpString1, const char *lpString2, size_t dwSize);
148
149// Other functions
150void SlashToBackslash(char *lpPath);
151void BackslashToSlash(char *lpPath);
152
153#ifdef __cplusplus
154}; // extern "C"
155#endif
156
157#endif
158