Go to the documentation of this file. 1 #ifndef __WINDOWS2LINUX_H__
2 #define __WINDOWS2LINUX_H__
25 #define STDAPI extern "C" HRESULT
26 #define STDMETHODIMP HRESULT __stdcall
27 #define STDMETHODIMP_(x) x __stdcall
29 #define STDMETHOD(x) virtual HRESULT x
30 #define STDMETHOD_(a, x) virtual a x
40 #define S_OK (0x00000000)
41 #define S_FALSE (0x00000001)
42 #define E_NOINTERFACE (0X80004002)
43 #define E_POINTER (0x80004003)
44 #define E_FAIL (0x80004005)
45 #define E_OUTOFMEMORY (0x8007000E)
47 #define INVALID_HANDLE_VALUE ((HANDLE)((LONG_PTR)-1))
48 #define FAILED(hr) ((hr) & 0x80000000)
49 #define SUCCEEDED(hr) (!FAILED(hr))
55 #define MAKEDWORD(a,b,c,d) (((a) << 24) | ((b) << 16) | ((c) << 8) | (d))
56 #define MAKEWORD(a,b) (((a) << 8) | (b))
58 #define lstrlen strlen
59 #define lstrcpy strcpy
60 #define lstrcmpi strcasecmp
61 #define _stricmp strcasecmp
62 #define InterlockedIncrement(x) __sync_fetch_and_add((x), 1)
63 #define InterlockedDecrement(x) __sync_fetch_and_sub((x), 1)
65 #define InterlockedCompareExchange(x,y,z) __sync_val_compare_and_swap(x,z,y)
67 #define UInt32x32To64(a, b) ( (uint64_t) ( ((uint64_t)((uint32_t)(a))) * ((uint32_t)(b)) ) )
68 #define Int64ShrlMod32(a, b) ( (uint64_t) ( (uint64_t)(a) >> (b) ) )
69 #define Int32x32To64(a, b) ((__int64)(((__int64)((long)(a))) * ((long)(b))))
71 #define MulDiv(nNumber, nNumerator, nDenominator) (int32_t) (((int64_t) (nNumber) * (int64_t) (nNumerator) + (int64_t) ((nDenominator)/2)) / (int64_t) (nDenominator))
77 #endif // __WINDOWS2LINUX_H__