📄 wxmp_common.hpp
字号:
#if ! __WXMP_Common_hpp__#define __WXMP_Common_hpp__ 1// =================================================================================================// Copyright 2002-2007 Adobe Systems Incorporated// All Rights Reserved.//// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms// of the Adobe license agreement accompanying it.// =================================================================================================#ifndef XMP_Inline #if TXMP_EXPAND_INLINE #define XMP_Inline inline #else #define XMP_Inline /* not inline */ #endif#endif#define XMP_CTorDTorIntro(Class) template <class tStringObj> XMP_Inline Class<tStringObj>#define XMP_MethodIntro(Class,ResultType) template <class tStringObj> XMP_Inline ResultType Class<tStringObj>struct WXMP_Result { XMP_StringPtr errMessage; void * ptrResult; double floatResult; XMP_Uns64 int64Result; XMP_Uns32 int32Result; WXMP_Result() : errMessage(0) {};};#if __cplusplusextern "C" {#endif#ifndef TraceXMPCalls #define TraceXMPCalls 0#endif #define PropagateException(res) \ if ( res.errMessage != 0 ) throw XMP_Error ( res.int32Result, res.errMessage );#if ! TraceXMPCalls #define InvokeCheck(WCallProto) \ WXMP_Result wResult; \ WCallProto; \ PropagateException ( wResult )#else #define InvokeCheck(WCallProto) \ WXMP_Result wResult; \ fprintf ( stderr, "WXMP calling: %s\n", #WCallProto ); fflush ( stderr ); \ WCallProto; \ if ( wResult.errMessage == 0 ) { \ fprintf ( stderr, "WXMP back, no error\n" ); fflush ( stderr ); \ } else { \ fprintf ( stderr, "WXMP back, error: %s\n", wResult.errMessage ); fflush ( stderr ); \ } \ PropagateException ( wResult )#endif// -------------------------------------------------------------------------------------------------#define WrapNoCheckVoid(WCallProto) \ WCallProto;#define WrapCheckVoid(WCallProto) \ InvokeCheck(WCallProto)#define WrapCheckMetaRef(result,WCallProto) \ InvokeCheck(WCallProto); \ XMPMetaRef result = XMPMetaRef(wResult.ptrResult)#define WrapCheckIterRef(result,WCallProto) \ InvokeCheck(WCallProto); \ XMPIteratorRef result = XMPIteratorRef(wResult.ptrResult)#define WrapCheckBool(result,WCallProto) \ InvokeCheck(WCallProto); \ bool result = bool(wResult.int32Result)#define WrapCheckOptions(result,WCallProto) \ InvokeCheck(WCallProto); \ XMP_OptionBits result = XMP_OptionBits(wResult.int32Result)#define WrapCheckStatus(result,WCallProto) \ InvokeCheck(WCallProto); \ XMP_Status result = XMP_Status(wResult.int32Result)#define WrapCheckIndex(result,WCallProto) \ InvokeCheck(WCallProto); \ XMP_Index result = XMP_Index(wResult.int32Result)#define WrapCheckInt32(result,WCallProto) \ InvokeCheck(WCallProto); \ XMP_Int32 result = wResult.int32Result#define WrapCheckInt64(result,WCallProto) \ InvokeCheck(WCallProto); \ XMP_Int64 result = wResult.int64Result#define WrapCheckFloat(result,WCallProto) \ InvokeCheck(WCallProto); \ double result = wResult.floatResult// =================================================================================================#if __cplusplus} /* extern "C" */#endif#endif // __WXMP_Common_hpp__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -