Annotation of elwix/tools/oldlzma/SRC/Common/MyWindows.h, revision 1.1.1.1

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

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>