2 // This file is part of the aMule Project.
4 // Copyright (c) 2003-2008 aMule Team ( admin@amule.org / http://www.amule.org )
5 // Copyright (c) 2002-2008 Merkur ( devs@emule-project.net / http://www.emule-project.net )
7 // Any parts of this program derived from the xMule, lMule or eMule project,
8 // or contributed by third-party developers are copyrighted by their
11 // This program is free software; you can redistribute it and/or modify
12 // it under the terms of the GNU General Public License as published by
13 // the Free Software Foundation; either version 2 of the License, or
14 // (at your option) any later version.
16 // This program is distributed in the hope that it will be useful,
17 // but WITHOUT ANY WARRANTY; without even the implied warranty of
18 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 // GNU General Public License for more details.
21 // You should have received a copy of the GNU General Public License
22 // along with this program; if not, write to the Free Software
23 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
29 #ifndef USE_STD_STRING
30 #include <wx/string.h> // Needed for wxString and wxEmptyString
33 #include <list> // Needed for std::list
34 #include <vector> // Needed for std::vector
37 #ifndef __STDC_FORMAT_MACROS
38 #define __STDC_FORMAT_MACROS
41 #define LONGLONG(x) x##ll
42 #define ULONGLONG(x) x##llu
44 typedef unsigned __int8 byte
;
45 typedef unsigned __int8
uint8_t;
46 typedef unsigned __int16
uint16_t;
47 typedef unsigned __int32
uint32_t;
48 typedef unsigned __int64
uint64_t;
49 typedef signed __int8
int8_t;
50 typedef signed __int16
int16_t;
51 typedef signed __int32
int32_t;
52 typedef signed __int64
int64_t;
53 #define LONGLONG(x) x##i64
54 #define ULONGLONG(x) x##ui64
57 // These are _MSC_VER defines used in eMule. They should
58 // not be used in aMule, instead, use this table to
59 // find the type to use in order to get the desired
61 //////////////////////////////////////////////////
62 // Name // Type To Use In Amule //
63 //////////////////////////////////////////////////
68 // UINT_PTR // uint32* //
69 // PUINT // uint32* //
72 // ULONG // unsigned long //
73 // LONGLONG // long long //
74 // ULONGLONG // unsigned long long //
79 // LPCVOID // const void* //
82 // LPCSTR // const char* //
85 // LPCTSTR // const char* //
86 // WCHAR // wchar_t //
87 // LPWSTR // wchar_t* //
88 // LPCWSTR // const wchar_t* //
89 // WPARAM // uint16 //
90 // LPARAM // uint32 //
91 // POINT // wxPoint //
92 //////////////////////////////////////////////////
95 * Backwards compatibility with emule.
96 * Note that the int* types are indeed unsigned.
99 typedef uint8_t uint8
;
100 typedef uint16_t int16
;
101 typedef uint16_t uint16
;
102 typedef uint32_t int32
;
103 typedef uint32_t uint32
;
104 typedef uint64_t int64
;
105 typedef uint64_t uint64
;
106 typedef int8_t sint8
;
107 typedef int16_t sint16
;
108 typedef int32_t sint32
;
109 typedef int64_t sint64
;
110 typedef uint8_t byte
;
115 //! Various common list-types.
117 #ifndef USE_STD_STRING
118 typedef std::list
<wxString
> CStringList
;
120 typedef std::list
<CKnownFile
*> CKnownFilePtrList
;
123 typedef std::vector
<uint8
> ArrayOfUInts8
;
124 typedef std::vector
<uint16
> ArrayOfUInts16
;
125 typedef std::vector
<uint32
> ArrayOfUInts32
;
126 typedef std::vector
<uint64
> ArrayOfUInts64
;
128 typedef std::list
<uint32
> ListOfUInts32
;
130 /* This is the Evil Void String For Returning On Const References From Hell */
131 // IT MEANS I WANT TO USE IT EVERYWHERE. DO NOT MOVE IT.
132 // THE FACT SOMETHING IS USED IN JUST ONE PLACE DOESN'T MEAN IT HAS
133 // TO BE MOVED TO THAT PLACE. I MIGHT NEED IT ELSEWHERE LATER.
136 #ifndef USE_STD_STRING
137 static const wxString EmptyString
= wxEmptyString
;
145 #ifdef _WIN32 // Used in non-wx-apps too (ed2k), so don't use __WXMSW__ here !
148 #include <windows.h> // Needed for RECT // Do_not_auto_remove
150 #include <windef.h> // Needed for RECT // Do_not_auto_remove
151 #include <wingdi.h> // Do_not_auto_remove
152 #include <winuser.h> // Do_not_auto_remove
153 #include <winbase.h> // Do_not_auto_remove
155 // Windows compilers don't have these constants
159 F_OK
= 0, // test for existence
160 X_OK
= 1, // execute permission
166 #include <wx/msw/winundef.h> // Do_not_auto_remove
170 typedef struct sRECT
{
180 // File_checked_for_headers