-// MyWindows.h\r
-\r
-#ifndef __MYWINDOWS_H\r
-#define __MYWINDOWS_H\r
-\r
-#ifdef _WIN32\r
-\r
-#include <windows.h>\r
-\r
-#define CHAR_PATH_SEPARATOR '\\'\r
-#define WCHAR_PATH_SEPARATOR L'\\'\r
-#define STRING_PATH_SEPARATOR "\\"\r
-#define WSTRING_PATH_SEPARATOR L"\\"\r
-\r
-#else\r
-\r
-#define CHAR_PATH_SEPARATOR '/'\r
-#define WCHAR_PATH_SEPARATOR L'/'\r
-#define STRING_PATH_SEPARATOR "/"\r
-#define WSTRING_PATH_SEPARATOR L"/"\r
-\r
-#include <stddef.h> // for wchar_t\r
-#include <string.h>\r
-\r
-#include "MyGuidDef.h"\r
-\r
-typedef char CHAR;\r
-typedef unsigned char UCHAR;\r
-\r
-#undef BYTE\r
-typedef unsigned char BYTE;\r
-\r
-typedef short SHORT;\r
-typedef unsigned short USHORT;\r
-\r
-#undef WORD\r
-typedef unsigned short WORD;\r
-typedef short VARIANT_BOOL;\r
-\r
-typedef int INT;\r
-typedef Int32 INT32;\r
-typedef unsigned int UINT;\r
-typedef UInt32 UINT32;\r
-typedef INT32 LONG; // LONG, ULONG and DWORD must be 32-bit\r
-typedef UINT32 ULONG;\r
-\r
-#undef DWORD\r
-typedef UINT32 DWORD;\r
-\r
-typedef Int64 LONGLONG;\r
-typedef UInt64 ULONGLONG;\r
-\r
-typedef struct LARGE_INTEGER { LONGLONG QuadPart; }LARGE_INTEGER;\r
-typedef struct _ULARGE_INTEGER { ULONGLONG QuadPart;} ULARGE_INTEGER;\r
-\r
-typedef const CHAR *LPCSTR;\r
-typedef CHAR TCHAR;\r
-typedef const TCHAR *LPCTSTR;\r
-typedef wchar_t WCHAR;\r
-typedef WCHAR OLECHAR;\r
-typedef const WCHAR *LPCWSTR;\r
-typedef OLECHAR *BSTR;\r
-typedef const OLECHAR *LPCOLESTR;\r
-typedef OLECHAR *LPOLESTR;\r
-\r
-typedef struct _FILETIME\r
-{\r
- DWORD dwLowDateTime;\r
- DWORD dwHighDateTime;\r
-}FILETIME;\r
-\r
-#define HRESULT LONG\r
-#define FAILED(Status) ((HRESULT)(Status)<0)\r
-typedef ULONG PROPID;\r
-typedef LONG SCODE;\r
-\r
-#define S_OK ((HRESULT)0x00000000L)\r
-#define S_FALSE ((HRESULT)0x00000001L)\r
-#define E_NOTIMPL ((HRESULT)0x80004001L)\r
-#define E_NOINTERFACE ((HRESULT)0x80004002L)\r
-#define E_ABORT ((HRESULT)0x80004004L)\r
-#define E_FAIL ((HRESULT)0x80004005L)\r
-#define STG_E_INVALIDFUNCTION ((HRESULT)0x80030001L)\r
-#define E_OUTOFMEMORY ((HRESULT)0x8007000EL)\r
-#define E_INVALIDARG ((HRESULT)0x80070057L)\r
-\r
-#ifdef _MSC_VER\r
-#define STDMETHODCALLTYPE __stdcall \r
-#else\r
-#define STDMETHODCALLTYPE \r
-#endif\r
-\r
-#define STDMETHOD_(t, f) virtual t STDMETHODCALLTYPE f\r
-#define STDMETHOD(f) STDMETHOD_(HRESULT, f)\r
-#define STDMETHODIMP_(type) type STDMETHODCALLTYPE\r
-#define STDMETHODIMP STDMETHODIMP_(HRESULT)\r
-\r
-#define PURE = 0\r
-\r
-#define MIDL_INTERFACE(x) struct \r
-\r
-struct IUnknown\r
-{\r
- //virtual ~IUnknown() {}\r
- STDMETHOD(QueryInterface) (REFIID iid, void **outObject) PURE;\r
- STDMETHOD_(ULONG, AddRef)() PURE;\r
- STDMETHOD_(ULONG, Release)() PURE;\r
-};\r
-\r
-typedef IUnknown *LPUNKNOWN;\r
-\r
-#define VARIANT_TRUE ((VARIANT_BOOL)-1)\r
-#define VARIANT_FALSE ((VARIANT_BOOL)0)\r
-\r
-enum VARENUM\r
-{ \r
- VT_EMPTY = 0,\r
- VT_NULL = 1,\r
- VT_I2 = 2,\r
- VT_I4 = 3,\r
- VT_R4 = 4,\r
- VT_R8 = 5,\r
- VT_CY = 6,\r
- VT_DATE = 7,\r
- VT_BSTR = 8,\r
- VT_DISPATCH = 9,\r
- VT_ERROR = 10,\r
- VT_BOOL = 11,\r
- VT_VARIANT = 12,\r
- VT_UNKNOWN = 13,\r
- VT_DECIMAL = 14,\r
- VT_I1 = 16,\r
- VT_UI1 = 17,\r
- VT_UI2 = 18,\r
- VT_UI4 = 19,\r
- VT_I8 = 20,\r
- VT_UI8 = 21,\r
- VT_INT = 22,\r
- VT_UINT = 23,\r
- VT_VOID = 24,\r
- VT_HRESULT = 25,\r
- VT_FILETIME = 64\r
-};\r
-\r
-typedef unsigned short VARTYPE;\r
-typedef WORD PROPVAR_PAD1;\r
-typedef WORD PROPVAR_PAD2;\r
-typedef WORD PROPVAR_PAD3;\r
-\r
-typedef struct tagPROPVARIANT\r
-{\r
- VARTYPE vt;\r
- PROPVAR_PAD1 wReserved1;\r
- PROPVAR_PAD2 wReserved2;\r
- PROPVAR_PAD3 wReserved3;\r
- union \r
- {\r
- CHAR cVal;\r
- UCHAR bVal;\r
- SHORT iVal;\r
- USHORT uiVal;\r
- LONG lVal;\r
- ULONG ulVal;\r
- INT intVal;\r
- UINT uintVal;\r
- LARGE_INTEGER hVal;\r
- ULARGE_INTEGER uhVal;\r
- VARIANT_BOOL boolVal;\r
- SCODE scode;\r
- FILETIME filetime;\r
- BSTR bstrVal;\r
- };\r
-} PROPVARIANT;\r
-\r
-typedef PROPVARIANT tagVARIANT;\r
-typedef tagVARIANT VARIANT;\r
-typedef VARIANT VARIANTARG;\r
-\r
-MY_EXTERN_C BSTR SysAllocStringByteLen(LPCSTR psz, UINT len);\r
-MY_EXTERN_C BSTR SysAllocString(const OLECHAR *sz);\r
-MY_EXTERN_C void SysFreeString(BSTR bstr);\r
-MY_EXTERN_C UINT SysStringByteLen(BSTR bstr);\r
-MY_EXTERN_C UINT SysStringLen(BSTR bstr);\r
-\r
-MY_EXTERN_C DWORD GetLastError();\r
-MY_EXTERN_C HRESULT VariantClear(VARIANTARG *prop);\r
-MY_EXTERN_C HRESULT VariantCopy(VARIANTARG *dest, VARIANTARG *src);\r
-MY_EXTERN_C LONG CompareFileTime(const FILETIME* ft1, const FILETIME* ft2);\r
-\r
-#define CP_ACP 0\r
-#define CP_OEMCP 1\r
-\r
-typedef enum tagSTREAM_SEEK\r
-{ \r
- STREAM_SEEK_SET = 0,\r
- STREAM_SEEK_CUR = 1,\r
- STREAM_SEEK_END = 2\r
-} STREAM_SEEK;\r
-\r
-#endif\r
-#endif\r
+// MyWindows.h
+
+#ifndef __MYWINDOWS_H
+#define __MYWINDOWS_H
+
+#ifdef _WIN32
+
+#include <windows.h>
+
+#define CHAR_PATH_SEPARATOR '\\'
+#define WCHAR_PATH_SEPARATOR L'\\'
+#define STRING_PATH_SEPARATOR "\\"
+#define WSTRING_PATH_SEPARATOR L"\\"
+
+#else
+
+#define CHAR_PATH_SEPARATOR '/'
+#define WCHAR_PATH_SEPARATOR L'/'
+#define STRING_PATH_SEPARATOR "/"
+#define WSTRING_PATH_SEPARATOR L"/"
+
+#include <stddef.h> // for wchar_t
+#include <string.h>
+
+#include "MyGuidDef.h"
+
+typedef char CHAR;
+typedef unsigned char UCHAR;
+
+#undef BYTE
+typedef unsigned char BYTE;
+
+typedef short SHORT;
+typedef unsigned short USHORT;
+
+#undef WORD
+typedef unsigned short WORD;
+typedef short VARIANT_BOOL;
+
+typedef int INT;
+typedef Int32 INT32;
+typedef unsigned int UINT;
+typedef UInt32 UINT32;
+typedef INT32 LONG; // LONG, ULONG and DWORD must be 32-bit
+typedef UINT32 ULONG;
+
+#undef DWORD
+typedef UINT32 DWORD;
+
+typedef Int64 LONGLONG;
+typedef UInt64 ULONGLONG;
+
+typedef struct LARGE_INTEGER { LONGLONG QuadPart; }LARGE_INTEGER;
+typedef struct _ULARGE_INTEGER { ULONGLONG QuadPart;} ULARGE_INTEGER;
+
+typedef const CHAR *LPCSTR;
+typedef CHAR TCHAR;
+typedef const TCHAR *LPCTSTR;
+typedef wchar_t WCHAR;
+typedef WCHAR OLECHAR;
+typedef const WCHAR *LPCWSTR;
+typedef OLECHAR *BSTR;
+typedef const OLECHAR *LPCOLESTR;
+typedef OLECHAR *LPOLESTR;
+
+typedef struct _FILETIME
+{
+ DWORD dwLowDateTime;
+ DWORD dwHighDateTime;
+}FILETIME;
+
+#define HRESULT LONG
+#define FAILED(Status) ((HRESULT)(Status)<0)
+typedef ULONG PROPID;
+typedef LONG SCODE;
+
+#define S_OK ((HRESULT)0x00000000L)
+#define S_FALSE ((HRESULT)0x00000001L)
+#define E_NOTIMPL ((HRESULT)0x80004001L)
+#define E_NOINTERFACE ((HRESULT)0x80004002L)
+#define E_ABORT ((HRESULT)0x80004004L)
+#define E_FAIL ((HRESULT)0x80004005L)
+#define STG_E_INVALIDFUNCTION ((HRESULT)0x80030001L)
+#define E_OUTOFMEMORY ((HRESULT)0x8007000EL)
+#define E_INVALIDARG ((HRESULT)0x80070057L)
+
+#ifdef _MSC_VER
+#define STDMETHODCALLTYPE __stdcall
+#else
+#define STDMETHODCALLTYPE
+#endif
+
+#define STDMETHOD_(t, f) virtual t STDMETHODCALLTYPE f
+#define STDMETHOD(f) STDMETHOD_(HRESULT, f)
+#define STDMETHODIMP_(type) type STDMETHODCALLTYPE
+#define STDMETHODIMP STDMETHODIMP_(HRESULT)
+
+#define PURE = 0
+
+#define MIDL_INTERFACE(x) struct
+
+struct IUnknown
+{
+ //virtual ~IUnknown() {}
+ STDMETHOD(QueryInterface) (REFIID iid, void **outObject) PURE;
+ STDMETHOD_(ULONG, AddRef)() PURE;
+ STDMETHOD_(ULONG, Release)() PURE;
+};
+
+typedef IUnknown *LPUNKNOWN;
+
+#define VARIANT_TRUE ((VARIANT_BOOL)-1)
+#define VARIANT_FALSE ((VARIANT_BOOL)0)
+
+enum VARENUM
+{
+ VT_EMPTY = 0,
+ VT_NULL = 1,
+ VT_I2 = 2,
+ VT_I4 = 3,
+ VT_R4 = 4,
+ VT_R8 = 5,
+ VT_CY = 6,
+ VT_DATE = 7,
+ VT_BSTR = 8,
+ VT_DISPATCH = 9,
+ VT_ERROR = 10,
+ VT_BOOL = 11,
+ VT_VARIANT = 12,
+ VT_UNKNOWN = 13,
+ VT_DECIMAL = 14,
+ VT_I1 = 16,
+ VT_UI1 = 17,
+ VT_UI2 = 18,
+ VT_UI4 = 19,
+ VT_I8 = 20,
+ VT_UI8 = 21,
+ VT_INT = 22,
+ VT_UINT = 23,
+ VT_VOID = 24,
+ VT_HRESULT = 25,
+ VT_FILETIME = 64
+};
+
+typedef unsigned short VARTYPE;
+typedef WORD PROPVAR_PAD1;
+typedef WORD PROPVAR_PAD2;
+typedef WORD PROPVAR_PAD3;
+
+typedef struct tagPROPVARIANT
+{
+ VARTYPE vt;
+ PROPVAR_PAD1 wReserved1;
+ PROPVAR_PAD2 wReserved2;
+ PROPVAR_PAD3 wReserved3;
+ union
+ {
+ CHAR cVal;
+ UCHAR bVal;
+ SHORT iVal;
+ USHORT uiVal;
+ LONG lVal;
+ ULONG ulVal;
+ INT intVal;
+ UINT uintVal;
+ LARGE_INTEGER hVal;
+ ULARGE_INTEGER uhVal;
+ VARIANT_BOOL boolVal;
+ SCODE scode;
+ FILETIME filetime;
+ BSTR bstrVal;
+ };
+} PROPVARIANT;
+
+typedef PROPVARIANT tagVARIANT;
+typedef tagVARIANT VARIANT;
+typedef VARIANT VARIANTARG;
+
+MY_EXTERN_C BSTR SysAllocStringByteLen(LPCSTR psz, UINT len);
+MY_EXTERN_C BSTR SysAllocString(const OLECHAR *sz);
+MY_EXTERN_C void SysFreeString(BSTR bstr);
+MY_EXTERN_C UINT SysStringByteLen(BSTR bstr);
+MY_EXTERN_C UINT SysStringLen(BSTR bstr);
+
+MY_EXTERN_C DWORD GetLastError();
+MY_EXTERN_C HRESULT VariantClear(VARIANTARG *prop);
+MY_EXTERN_C HRESULT VariantCopy(VARIANTARG *dest, VARIANTARG *src);
+MY_EXTERN_C LONG CompareFileTime(const FILETIME* ft1, const FILETIME* ft2);
+
+#define CP_ACP 0
+#define CP_OEMCP 1
+
+typedef enum tagSTREAM_SEEK
+{
+ STREAM_SEEK_SET = 0,
+ STREAM_SEEK_CUR = 1,
+ STREAM_SEEK_END = 2
+} STREAM_SEEK;
+
+#endif
+#endif