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