X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/badf8578b234a1f64ce4a9aa3a61b49a7c7210d0..38534f596974042130716a26276e9564b0b72295:/include/wx/msw/private.h diff --git a/include/wx/msw/private.h b/include/wx/msw/private.h index 622c3b1544..52c81a6d02 100644 --- a/include/wx/msw/private.h +++ b/include/wx/msw/private.h @@ -218,6 +218,21 @@ struct WinStruct : public T }; +// Macros for converting wxString to the type expected by API functions. +// +// Normally it is enough to just use wxString::t_str() which is implicitly +// convertible to LPCTSTR, but in some cases an explicit conversion is required. +// +// In such cases wxMSW_CONV_LPCTSTR() should be used. But if an API function +// takes a non-const pointer, wxMSW_CONV_LPTSTR() which casts away the +// constness (but doesn't make it possible to really modify the returned +// pointer, of course) should be used. And if a string is passed as LPARAM, use +// wxMSW_CONV_LPARAM() which does the required ugly reinterpret_cast<> too. +#define wxMSW_CONV_LPCTSTR(s) static_cast((s).t_str()) +#define wxMSW_CONV_LPTSTR(s) const_cast(wxMSW_CONV_LPCTSTR(s)) +#define wxMSW_CONV_LPARAM(s) reinterpret_cast(wxMSW_CONV_LPCTSTR(s)) + + #if wxUSE_GUI #include "wx/gdicmn.h" @@ -781,7 +796,7 @@ public: { if ( IsRegistered() ) { - if ( !::UnregisterClass(m_clsname.wx_str(), wxGetInstance()) ) + if ( !::UnregisterClass(m_clsname.t_str(), wxGetInstance()) ) { wxLogLastError(wxT("UnregisterClass")); } @@ -917,7 +932,7 @@ enum wxWinVersion WXDLLIMPEXP_BASE wxWinVersion wxGetWinVersion(); -#if wxUSE_GUI +#if wxUSE_GUI && defined(__WXMSW__) // cursor stuff extern HCURSOR wxGetCurrentBusyCursor(); // from msw/utils.cpp @@ -1054,6 +1069,6 @@ inline void *wxSetWindowUserData(HWND hwnd, void *data) #endif // __WIN64__/__WIN32__ -#endif // wxUSE_GUI +#endif // wxUSE_GUI && __WXMSW__ #endif // _WX_PRIVATE_H_