diff options
Diffstat (limited to 'src/corelib/kernel/qfunctions_winrt.h')
-rw-r--r-- | src/corelib/kernel/qfunctions_winrt.h | 61 |
1 files changed, 32 insertions, 29 deletions
diff --git a/src/corelib/kernel/qfunctions_winrt.h b/src/corelib/kernel/qfunctions_winrt.h index 04ebda5cfe..2bec1fc2ff 100644 --- a/src/corelib/kernel/qfunctions_winrt.h +++ b/src/corelib/kernel/qfunctions_winrt.h @@ -42,21 +42,36 @@ #include <QtCore/QAbstractEventDispatcher> #include <QtCore/qt_windows.h> -QT_BEGIN_NAMESPACE +// Convenience macros for handling HRESULT values +#define RETURN_IF_FAILED(msg, ret) \ + if (FAILED(hr)) { \ + qErrnoWarning(hr, msg); \ + ret; \ + } -#ifdef QT_BUILD_CORE_LIB -#endif +#define RETURN_HR_IF_FAILED(msg) RETURN_IF_FAILED(msg, return hr) +#define RETURN_OK_IF_FAILED(msg) RETURN_IF_FAILED(msg, return S_OK) +#define RETURN_FALSE_IF_FAILED(msg) RETURN_IF_FAILED(msg, return false) +#define RETURN_VOID_IF_FAILED(msg) RETURN_IF_FAILED(msg, return) -QT_END_NAMESPACE +#define Q_ASSERT_SUCCEEDED(hr) \ + Q_ASSERT_X(SUCCEEDED(hr), Q_FUNC_INFO, qPrintable(qt_error_string(hr))); #ifdef Q_OS_WINRT +QT_BEGIN_NAMESPACE + +#ifdef QT_BUILD_CORE_LIB +#endif + // Environment ------------------------------------------------------ errno_t qt_winrt_getenv_s(size_t*, char*, size_t, const char*); errno_t qt_winrt__putenv_s(const char*, const char*); void qt_winrt_tzset(); void qt_winrt__tzset(); +QT_END_NAMESPACE + // As Windows Runtime lacks some standard functions used in Qt, these got // reimplemented. Other projects do this as well. Inline functions are used // that there is a central place to disable functions for newer versions if @@ -69,42 +84,42 @@ void qt_winrt__tzset(); #define generate_inline_return_func0(funcname, returntype) \ inline returntype funcname() \ { \ - return qt_winrt_##funcname(); \ + return QT_PREPEND_NAMESPACE(qt_winrt_##funcname)(); \ } #define generate_inline_return_func1(funcname, returntype, param1) \ inline returntype funcname(param1 p1) \ { \ - return qt_winrt_##funcname(p1); \ + return QT_PREPEND_NAMESPACE(qt_winrt_##funcname)(p1); \ } #define generate_inline_return_func2(funcname, returntype, param1, param2) \ inline returntype funcname(param1 p1, param2 p2) \ { \ - return qt_winrt_##funcname(p1, p2); \ + return QT_PREPEND_NAMESPACE(qt_winrt_##funcname)(p1, p2); \ } #define generate_inline_return_func3(funcname, returntype, param1, param2, param3) \ inline returntype funcname(param1 p1, param2 p2, param3 p3) \ { \ - return qt_winrt_##funcname(p1, p2, p3); \ + return QT_PREPEND_NAMESPACE(qt_winrt_##funcname)(p1, p2, p3); \ } #define generate_inline_return_func4(funcname, returntype, param1, param2, param3, param4) \ inline returntype funcname(param1 p1, param2 p2, param3 p3, param4 p4) \ { \ - return qt_winrt_##funcname(p1, p2, p3, p4); \ + return QT_PREPEND_NAMESPACE(qt_winrt_##funcname)(p1, p2, p3, p4); \ } #define generate_inline_return_func5(funcname, returntype, param1, param2, param3, param4, param5) \ inline returntype funcname(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5) \ { \ - return qt_winrt_##funcname(p1, p2, p3, p4, p5); \ + return QT_PREPEND_NAMESPACE(qt_winrt_##funcname)(p1, p2, p3, p4, p5); \ } #define generate_inline_return_func6(funcname, returntype, param1, param2, param3, param4, param5, param6) \ inline returntype funcname(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6) \ { \ - return qt_winrt_##funcname(p1, p2, p3, p4, p5, p6); \ + return QT_PREPEND_NAMESPACE(qt_winrt_##funcname)(p1, p2, p3, p4, p5, p6); \ } #define generate_inline_return_func7(funcname, returntype, param1, param2, param3, param4, param5, param6, param7) \ inline returntype funcname(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7) \ { \ - return qt_winrt_##funcname(p1, p2, p3, p4, p5, p6, p7); \ + return QT_PREPEND_NAMESPACE(qt_winrt_##funcname)(p1, p2, p3, p4, p5, p6, p7); \ } typedef unsigned (__stdcall *StartAdressExFunc)(void *); @@ -116,23 +131,7 @@ generate_inline_return_func2(_putenv_s, errno_t, const char *, const char *) generate_inline_return_func0(tzset, void) generate_inline_return_func0(_tzset, void) -#endif // Q_OS_WINRT - -// Convenience macros for handling HRESULT values -#define RETURN_IF_FAILED(msg, ret) \ - if (FAILED(hr)) { \ - qErrnoWarning(hr, msg); \ - ret; \ - } - -#define RETURN_HR_IF_FAILED(msg) RETURN_IF_FAILED(msg, return hr) -#define RETURN_OK_IF_FAILED(msg) RETURN_IF_FAILED(msg, return S_OK) -#define RETURN_FALSE_IF_FAILED(msg) RETURN_IF_FAILED(msg, return false) -#define RETURN_VOID_IF_FAILED(msg) RETURN_IF_FAILED(msg, return) - -#define Q_ASSERT_SUCCEEDED(hr) \ - Q_ASSERT_X(SUCCEEDED(hr), Q_FUNC_INFO, qPrintable(qt_error_string(hr))); - +QT_BEGIN_NAMESPACE namespace Microsoft { namespace WRL { template <typename T> class ComPtr; } } @@ -207,6 +206,10 @@ static inline HRESULT await(const Microsoft::WRL::ComPtr<T> &asyncOp, U *results } // QWinRTFunctions +QT_END_NAMESPACE + +#endif // Q_OS_WINRT + #endif // Q_OS_WIN #endif // QFUNCTIONS_WINRT_H |