2929be7c30f03abcfef9a47d5e935be916e7cd57
[coreboot.git] / payloads / bayou / util / pbuilder / lzma / C / Common / MyWindows.h
1 // MyWindows.h\r
2 \r
3 #ifndef __MYWINDOWS_H\r
4 #define __MYWINDOWS_H\r
5 \r
6 #ifdef _WIN32\r
7 \r
8 #include <windows.h>\r
9 \r
10 #define CHAR_PATH_SEPARATOR '\\'\r
11 #define WCHAR_PATH_SEPARATOR L'\\'\r
12 #define STRING_PATH_SEPARATOR "\\"\r
13 #define WSTRING_PATH_SEPARATOR L"\\"\r
14 \r
15 #else\r
16 \r
17 #define CHAR_PATH_SEPARATOR '/'\r
18 #define WCHAR_PATH_SEPARATOR L'/'\r
19 #define STRING_PATH_SEPARATOR "/"\r
20 #define WSTRING_PATH_SEPARATOR L"/"\r
21 \r
22 #include <stddef.h> // for wchar_t\r
23 #include <string.h>\r
24 \r
25 #include "MyGuidDef.h"\r
26 \r
27 typedef char CHAR;\r
28 typedef unsigned char UCHAR;\r
29 \r
30 #undef BYTE\r
31 typedef unsigned char BYTE;\r
32 \r
33 typedef short SHORT;\r
34 typedef unsigned short USHORT;\r
35 \r
36 #undef WORD\r
37 typedef unsigned short WORD;\r
38 typedef short VARIANT_BOOL;\r
39 \r
40 typedef int INT;\r
41 typedef Int32 INT32;\r
42 typedef unsigned int UINT;\r
43 typedef UInt32 UINT32;\r
44 typedef INT32 LONG;   // LONG, ULONG and DWORD must be 32-bit\r
45 typedef UINT32 ULONG;\r
46 \r
47 #undef DWORD\r
48 typedef UINT32 DWORD;\r
49 \r
50 typedef Int64 LONGLONG;\r
51 typedef UInt64 ULONGLONG;\r
52 \r
53 typedef struct LARGE_INTEGER { LONGLONG QuadPart; }LARGE_INTEGER;\r
54 typedef struct _ULARGE_INTEGER { ULONGLONG QuadPart;} ULARGE_INTEGER;\r
55 \r
56 typedef const CHAR *LPCSTR;\r
57 typedef CHAR TCHAR;\r
58 typedef const TCHAR *LPCTSTR;\r
59 typedef wchar_t WCHAR;\r
60 typedef WCHAR OLECHAR;\r
61 typedef const WCHAR *LPCWSTR;\r
62 typedef OLECHAR *BSTR;\r
63 typedef const OLECHAR *LPCOLESTR;\r
64 typedef OLECHAR *LPOLESTR;\r
65 \r
66 typedef struct _FILETIME\r
67 {\r
68   DWORD dwLowDateTime;\r
69   DWORD dwHighDateTime;\r
70 }FILETIME;\r
71 \r
72 #define HRESULT LONG\r
73 #define FAILED(Status) ((HRESULT)(Status)<0)\r
74 typedef ULONG PROPID;\r
75 typedef LONG SCODE;\r
76 \r
77 #define S_OK    ((HRESULT)0x00000000L)\r
78 #define S_FALSE ((HRESULT)0x00000001L)\r
79 #define E_NOTIMPL ((HRESULT)0x80004001L)\r
80 #define E_NOINTERFACE ((HRESULT)0x80004002L)\r
81 #define E_ABORT ((HRESULT)0x80004004L)\r
82 #define E_FAIL ((HRESULT)0x80004005L)\r
83 #define STG_E_INVALIDFUNCTION ((HRESULT)0x80030001L)\r
84 #define E_OUTOFMEMORY ((HRESULT)0x8007000EL)\r
85 #define E_INVALIDARG ((HRESULT)0x80070057L)\r
86 \r
87 #ifdef _MSC_VER\r
88 #define STDMETHODCALLTYPE __stdcall \r
89 #else\r
90 #define STDMETHODCALLTYPE \r
91 #endif\r
92 \r
93 #define STDMETHOD_(t, f) virtual t STDMETHODCALLTYPE f\r
94 #define STDMETHOD(f) STDMETHOD_(HRESULT, f)\r
95 #define STDMETHODIMP_(type) type STDMETHODCALLTYPE\r
96 #define STDMETHODIMP STDMETHODIMP_(HRESULT)\r
97 \r
98 #define PURE = 0\r
99 \r
100 #define MIDL_INTERFACE(x) struct \r
101 \r
102 struct IUnknown\r
103 {\r
104   //virtual ~IUnknown() {}\r
105   STDMETHOD(QueryInterface) (REFIID iid, void **outObject) PURE;\r
106   STDMETHOD_(ULONG, AddRef)() PURE;\r
107   STDMETHOD_(ULONG, Release)() PURE;\r
108 };\r
109 \r
110 typedef IUnknown *LPUNKNOWN;\r
111 \r
112 #define VARIANT_TRUE ((VARIANT_BOOL)-1)\r
113 #define VARIANT_FALSE ((VARIANT_BOOL)0)\r
114 \r
115 enum VARENUM\r
116 {       \r
117   VT_EMPTY      = 0,\r
118         VT_NULL = 1,\r
119         VT_I2   = 2,\r
120         VT_I4   = 3,\r
121         VT_R4   = 4,\r
122         VT_R8   = 5,\r
123         VT_CY   = 6,\r
124         VT_DATE = 7,\r
125         VT_BSTR = 8,\r
126         VT_DISPATCH     = 9,\r
127         VT_ERROR        = 10,\r
128         VT_BOOL = 11,\r
129         VT_VARIANT      = 12,\r
130         VT_UNKNOWN      = 13,\r
131         VT_DECIMAL      = 14,\r
132         VT_I1   = 16,\r
133         VT_UI1  = 17,\r
134         VT_UI2  = 18,\r
135         VT_UI4  = 19,\r
136         VT_I8   = 20,\r
137         VT_UI8  = 21,\r
138         VT_INT  = 22,\r
139         VT_UINT = 23,\r
140         VT_VOID = 24,\r
141         VT_HRESULT      = 25,\r
142         VT_FILETIME     = 64\r
143 };\r
144 \r
145 typedef unsigned short VARTYPE;\r
146 typedef WORD PROPVAR_PAD1;\r
147 typedef WORD PROPVAR_PAD2;\r
148 typedef WORD PROPVAR_PAD3;\r
149 \r
150 typedef struct tagPROPVARIANT\r
151 {\r
152   VARTYPE vt;\r
153   PROPVAR_PAD1 wReserved1;\r
154   PROPVAR_PAD2 wReserved2;\r
155   PROPVAR_PAD3 wReserved3;\r
156   union \r
157   {\r
158     CHAR cVal;\r
159     UCHAR bVal;\r
160     SHORT iVal;\r
161     USHORT uiVal;\r
162     LONG lVal;\r
163     ULONG ulVal;\r
164     INT intVal;\r
165     UINT uintVal;\r
166     LARGE_INTEGER hVal;\r
167     ULARGE_INTEGER uhVal;\r
168     VARIANT_BOOL boolVal;\r
169     SCODE scode;\r
170     FILETIME filetime;\r
171     BSTR bstrVal;\r
172   };\r
173 } PROPVARIANT;\r
174 \r
175 typedef PROPVARIANT tagVARIANT;\r
176 typedef tagVARIANT VARIANT;\r
177 typedef VARIANT VARIANTARG;\r
178 \r
179 MY_EXTERN_C BSTR SysAllocStringByteLen(LPCSTR psz, UINT len);\r
180 MY_EXTERN_C BSTR SysAllocString(const OLECHAR *sz);\r
181 MY_EXTERN_C void SysFreeString(BSTR bstr);\r
182 MY_EXTERN_C UINT SysStringByteLen(BSTR bstr);\r
183 MY_EXTERN_C UINT SysStringLen(BSTR bstr);\r
184 \r
185 MY_EXTERN_C DWORD GetLastError();\r
186 MY_EXTERN_C HRESULT VariantClear(VARIANTARG *prop);\r
187 MY_EXTERN_C HRESULT VariantCopy(VARIANTARG *dest, VARIANTARG *src);\r
188 MY_EXTERN_C LONG CompareFileTime(const FILETIME* ft1, const FILETIME* ft2);\r
189 \r
190 #define CP_ACP    0\r
191 #define CP_OEMCP  1\r
192 \r
193 typedef enum tagSTREAM_SEEK\r
194 {       \r
195   STREAM_SEEK_SET       = 0,\r
196   STREAM_SEEK_CUR       = 1,\r
197   STREAM_SEEK_END       = 2\r
198 } STREAM_SEEK;\r
199 \r
200 #endif\r
201 #endif\r