3 #ifndef __MYWINDOWS_H
\r
4 #define __MYWINDOWS_H
\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
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
22 #include <stddef.h> // for wchar_t
\r
25 #include "MyGuidDef.h"
\r
28 typedef unsigned char UCHAR;
\r
31 typedef unsigned char BYTE;
\r
33 typedef short SHORT;
\r
34 typedef unsigned short USHORT;
\r
37 typedef unsigned short WORD;
\r
38 typedef short VARIANT_BOOL;
\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
48 typedef UINT32 DWORD;
\r
50 typedef Int64 LONGLONG;
\r
51 typedef UInt64 ULONGLONG;
\r
53 typedef struct LARGE_INTEGER { LONGLONG QuadPart; }LARGE_INTEGER;
\r
54 typedef struct _ULARGE_INTEGER { ULONGLONG QuadPart;} ULARGE_INTEGER;
\r
56 typedef const CHAR *LPCSTR;
\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
66 typedef struct _FILETIME
\r
68 DWORD dwLowDateTime;
\r
69 DWORD dwHighDateTime;
\r
72 #define HRESULT LONG
\r
73 #define FAILED(Status) ((HRESULT)(Status)<0)
\r
74 typedef ULONG PROPID;
\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
88 #define STDMETHODCALLTYPE __stdcall
\r
90 #define STDMETHODCALLTYPE
\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
100 #define MIDL_INTERFACE(x) struct
\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
110 typedef IUnknown *LPUNKNOWN;
\r
112 #define VARIANT_TRUE ((VARIANT_BOOL)-1)
\r
113 #define VARIANT_FALSE ((VARIANT_BOOL)0)
\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
150 typedef struct tagPROPVARIANT
\r
153 PROPVAR_PAD1 wReserved1;
\r
154 PROPVAR_PAD2 wReserved2;
\r
155 PROPVAR_PAD3 wReserved3;
\r
166 LARGE_INTEGER hVal;
\r
167 ULARGE_INTEGER uhVal;
\r
168 VARIANT_BOOL boolVal;
\r
175 typedef PROPVARIANT tagVARIANT;
\r
176 typedef tagVARIANT VARIANT;
\r
177 typedef VARIANT VARIANTARG;
\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
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
193 typedef enum tagSTREAM_SEEK
\r
195 STREAM_SEEK_SET = 0,
\r
196 STREAM_SEEK_CUR = 1,
\r
197 STREAM_SEEK_END = 2
\r