📄 mywindows.h
字号:
// 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 BYTEtypedef unsigned char BYTE;typedef short SHORT;typedef unsigned short USHORT;#undef WORDtypedef 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-bittypedef UINT32 ULONG;#undef DWORDtypedef 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{ STDMETHOD(QueryInterface) (REFIID iid, void **outObject) PURE; STDMETHOD_(ULONG, AddRef)() PURE; STDMETHOD_(ULONG, Release)() PURE; #ifndef _WIN32 virtual ~IUnknown() {} #endif};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 1typedef enum tagSTREAM_SEEK{ STREAM_SEEK_SET = 0, STREAM_SEEK_CUR = 1, STREAM_SEEK_END = 2} STREAM_SEEK;#endif#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -