Source code
Revision control
Copy as Markdown
Other Tools
// MyWindows.h↩
↩
#ifndef __MY_WINDOWS_H↩
#define __MY_WINDOWS_H↩
↩
#ifdef _WIN32↩
↩
#include <windows.h>↩
↩
#ifdef UNDER_CE↩
#undef VARIANT_TRUE↩
#define VARIANT_TRUE ((VARIANT_BOOL)-1)↩
#endif↩
↩
#else↩
↩
#include <stddef.h> // for wchar_t↩
#include <string.h>↩
// #include <stdint.h> // for uintptr_t↩
↩
#include "MyGuidDef.h"↩
↩
#define WINAPI↩
↩
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 long BOOL;↩
↩
#ifndef FALSE↩
#define FALSE 0↩
#define TRUE 1↩
#endif↩
↩
// typedef size_t ULONG_PTR;↩
typedef size_t DWORD_PTR;↩
// typedef uintptr_t UINT_PTR;↩
// typedef ptrdiff_t UINT_PTR;↩
↩
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 ERROR_NEGATIVE_SEEK 131L↩
↩
#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↩
↩
#ifdef __cplusplus↩
↩
DEFINE_GUID(IID_IUnknown,↩
0x00000000, 0x0000, 0x0000, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46);↩
struct IUnknown↩
{↩
STDMETHOD(QueryInterface) (REFIID iid, void **outObject) PURE;↩
STDMETHOD_(ULONG, AddRef)() PURE;↩
STDMETHOD_(ULONG, Release)() PURE;↩
#ifndef _WIN32↩
virtual ~IUnknown() {}↩
#endif↩
};↩
↩
typedef IUnknown *LPUNKNOWN;↩
↩
#endif↩
↩
#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 HRESULT VariantClear(VARIANTARG *prop);↩
MY_EXTERN_C HRESULT VariantCopy(VARIANTARG *dest, const VARIANTARG *src);↩
↩
typedef struct tagSTATPROPSTG↩
{↩
LPOLESTR lpwstrName;↩
PROPID propid;↩
VARTYPE vt;↩
} STATPROPSTG;↩
↩
MY_EXTERN_C BSTR SysAllocStringByteLen(LPCSTR psz, UINT len);↩
MY_EXTERN_C BSTR SysAllocStringLen(const OLECHAR *sz, 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 LONG CompareFileTime(const FILETIME* ft1, const FILETIME* ft2);↩
↩
#define CP_ACP 0↩
#define CP_OEMCP 1↩
#define CP_UTF8 65001↩
↩
typedef enum tagSTREAM_SEEK↩
{↩
STREAM_SEEK_SET = 0,↩
STREAM_SEEK_CUR = 1,↩
STREAM_SEEK_END = 2↩
} STREAM_SEEK;↩
↩
#endif↩
#endif↩