tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

MyWindows.h (4914B)


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