10 #define CHAR_PATH_SEPARATOR '\\'
11 #define WCHAR_PATH_SEPARATOR L'\\'
12 #define STRING_PATH_SEPARATOR "\\"
13 #define WSTRING_PATH_SEPARATOR L"\\"
17 #define CHAR_PATH_SEPARATOR '/'
18 #define WCHAR_PATH_SEPARATOR L'/'
19 #define STRING_PATH_SEPARATOR "/"
20 #define WSTRING_PATH_SEPARATOR L"/"
22 #include <stddef.h> // for wchar_t
25 #include "MyGuidDef.h"
28 typedef unsigned char UCHAR;
31 typedef unsigned char BYTE;
34 typedef unsigned short USHORT;
37 typedef unsigned short WORD;
38 typedef short VARIANT_BOOL;
42 typedef unsigned int UINT;
43 typedef UInt32 UINT32;
44 typedef INT32 LONG; // LONG, ULONG and DWORD must be 32-bit
50 typedef Int64 LONGLONG;
51 typedef UInt64 ULONGLONG;
53 typedef struct LARGE_INTEGER { LONGLONG QuadPart; }LARGE_INTEGER;
54 typedef struct _ULARGE_INTEGER { ULONGLONG QuadPart;} ULARGE_INTEGER;
56 typedef const CHAR *LPCSTR;
58 typedef const TCHAR *LPCTSTR;
59 typedef wchar_t WCHAR;
60 typedef WCHAR OLECHAR;
61 typedef const WCHAR *LPCWSTR;
62 typedef OLECHAR *BSTR;
63 typedef const OLECHAR *LPCOLESTR;
64 typedef OLECHAR *LPOLESTR;
66 typedef struct _FILETIME
73 #define FAILED(Status) ((HRESULT)(Status)<0)
77 #define S_OK ((HRESULT)0x00000000L)
78 #define S_FALSE ((HRESULT)0x00000001L)
79 #define E_NOTIMPL ((HRESULT)0x80004001L)
80 #define E_NOINTERFACE ((HRESULT)0x80004002L)
81 #define E_ABORT ((HRESULT)0x80004004L)
82 #define E_FAIL ((HRESULT)0x80004005L)
83 #define STG_E_INVALIDFUNCTION ((HRESULT)0x80030001L)
84 #define E_OUTOFMEMORY ((HRESULT)0x8007000EL)
85 #define E_INVALIDARG ((HRESULT)0x80070057L)
88 #define STDMETHODCALLTYPE __stdcall
90 #define STDMETHODCALLTYPE
93 #define STDMETHOD_(t, f) virtual t STDMETHODCALLTYPE f
94 #define STDMETHOD(f) STDMETHOD_(HRESULT, f)
95 #define STDMETHODIMP_(type) type STDMETHODCALLTYPE
96 #define STDMETHODIMP STDMETHODIMP_(HRESULT)
100 #define MIDL_INTERFACE(x) struct
104 //virtual ~IUnknown() {}
105 STDMETHOD(QueryInterface) (REFIID iid, void **outObject) PURE;
106 STDMETHOD_(ULONG, AddRef)() PURE;
107 STDMETHOD_(ULONG, Release)() PURE;
110 typedef IUnknown *LPUNKNOWN;
112 #define VARIANT_TRUE ((VARIANT_BOOL)-1)
113 #define VARIANT_FALSE ((VARIANT_BOOL)0)
145 typedef unsigned short VARTYPE;
146 typedef WORD PROPVAR_PAD1;
147 typedef WORD PROPVAR_PAD2;
148 typedef WORD PROPVAR_PAD3;
150 typedef struct tagPROPVARIANT
153 PROPVAR_PAD1 wReserved1;
154 PROPVAR_PAD2 wReserved2;
155 PROPVAR_PAD3 wReserved3;
167 ULARGE_INTEGER uhVal;
168 VARIANT_BOOL boolVal;
175 typedef PROPVARIANT tagVARIANT;
176 typedef tagVARIANT VARIANT;
177 typedef VARIANT VARIANTARG;
179 MY_EXTERN_C BSTR SysAllocStringByteLen(LPCSTR psz, UINT len);
180 MY_EXTERN_C BSTR SysAllocString(const OLECHAR *sz);
181 MY_EXTERN_C void SysFreeString(BSTR bstr);
182 MY_EXTERN_C UINT SysStringByteLen(BSTR bstr);
183 MY_EXTERN_C UINT SysStringLen(BSTR bstr);
185 MY_EXTERN_C DWORD GetLastError();
186 MY_EXTERN_C HRESULT VariantClear(VARIANTARG *prop);
187 MY_EXTERN_C HRESULT VariantCopy(VARIANTARG *dest, VARIANTARG *src);
188 MY_EXTERN_C LONG CompareFileTime(const FILETIME* ft1, const FILETIME* ft2);
193 typedef enum tagSTREAM_SEEK