X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/082e5b985677852db873ed956da8fad5ae5abc4b..1f0acb435592470b421b80df854fbbb08cd2853f:/include/wx/msw/private.h diff --git a/include/wx/msw/private.h b/include/wx/msw/private.h index fa95062dc0..e824c6e5fd 100644 --- a/include/wx/msw/private.h +++ b/include/wx/msw/private.h @@ -62,6 +62,13 @@ extern WXDLLIMPEXP_DATA_CORE(HFONT) wxSTATUS_LINE_FONT; extern WXDLLIMPEXP_DATA_BASE(HINSTANCE) wxhInstance; +extern "C" +{ + WXDLLIMPEXP_BASE HINSTANCE wxGetInstance(); +} + +WXDLLIMPEXP_BASE void wxSetInstance(HINSTANCE hInst); + // --------------------------------------------------------------------------- // define things missing from some compilers' headers // --------------------------------------------------------------------------- @@ -447,7 +454,7 @@ private: void DoInit(HGDIOBJ hgdiobj) { m_hgdiobj = ::SelectObject(m_hdc, hgdiobj); } public: - SelectInHDC() : m_hdc(NULL) { } + SelectInHDC() : m_hdc(NULL), m_hgdiobj(NULL) { } SelectInHDC(HDC hdc, HGDIOBJ hgdiobj) : m_hdc(hdc) { DoInit(hgdiobj); } void Init(HDC hdc, HGDIOBJ hgdiobj) @@ -534,8 +541,13 @@ public: class AutoHBITMAP : private AutoGDIObject { public: + AutoHBITMAP() + : AutoGDIObject() { } + AutoHBITMAP(HBITMAP hbmp) : AutoGDIObject(hbmp) { } + void Init(HBITMAP hbmp) { InitGdiobj(hbmp); } + operator HBITMAP() const { return (HBITMAP)GetObject(); } }; @@ -727,52 +739,6 @@ private: wxDECLARE_NO_COPY_CLASS(GlobalPtrLock); }; -// smart pointer like class using OpenPrinter and ClosePrinter -class WinPrinter -{ -public: - // default ctor - WinPrinter() - { - m_hPrinter = (HANDLE)NULL; - } - - WinPrinter( const wxString& printerName ) - { - Open( printerName ); - } - - ~WinPrinter() - { - Close(); - } - - BOOL Open( const wxString& printerName, LPPRINTER_DEFAULTS pDefault=(LPPRINTER_DEFAULTS)NULL ) - { - Close(); - return OpenPrinter( (LPTSTR)printerName.wx_str(), &m_hPrinter, pDefault ); - } - - BOOL Close() - { - BOOL result = TRUE; - if( m_hPrinter ) - { - result = ClosePrinter( m_hPrinter ); - m_hPrinter = (HANDLE)NULL; - } - return result; - } - - operator HANDLE() { return m_hPrinter; } - operator bool() { return m_hPrinter != (HANDLE)NULL; } - -private: - HANDLE m_hPrinter; - - wxDECLARE_NO_COPY_CLASS(WinPrinter); -}; - // register the class when it is first needed and unregister it in dtor class ClassRegistrar { @@ -815,7 +781,7 @@ public: { if ( IsRegistered() ) { - if ( !::UnregisterClass(m_clsname.wx_str(), wxhInstance) ) + if ( !::UnregisterClass(m_clsname.wx_str(), wxGetInstance()) ) { wxLogLastError(wxT("UnregisterClass")); } @@ -885,13 +851,6 @@ private: // global functions // --------------------------------------------------------------------------- -extern "C" -{ - WXDLLIMPEXP_BASE HINSTANCE wxGetInstance(); -} - -WXDLLIMPEXP_BASE void wxSetInstance(HINSTANCE hInst); - // return the full path of the given module inline wxString wxGetFullModuleName(HMODULE hmod) { @@ -922,9 +881,10 @@ inline wxString wxGetFullModuleName() // 0x0400 Windows 95, NT4 // 0x0410 Windows 98 // 0x0500 Windows ME, 2000 -// 0x0501 Windows XP -// 0x0502 Windows 2003 -// 0x0600 Longhorn +// 0x0501 Windows XP, 2003 +// 0x0502 Windows XP SP2, 2003 SP1 +// 0x0600 Windows Vista, 2008 +// 0x0601 Windows 7 // // for the other Windows versions 0 is currently returned enum wxWinVersion @@ -944,11 +904,15 @@ enum wxWinVersion wxWinVersion_NT5 = wxWinVersion_5, wxWinVersion_2000 = wxWinVersion_5, wxWinVersion_XP = 0x0501, - wxWinVersion_2003 = 0x0502, + wxWinVersion_2003 = 0x0501, + wxWinVersion_XP_SP2 = 0x0502, + wxWinVersion_2003_SP1 = 0x0502, wxWinVersion_6 = 0x0600, wxWinVersion_Vista = wxWinVersion_6, - wxWinVersion_NT6 = wxWinVersion_6 + wxWinVersion_NT6 = wxWinVersion_6, + + wxWinVersion_7 = 0x601 }; WXDLLIMPEXP_BASE wxWinVersion wxGetWinVersion(); @@ -1014,12 +978,6 @@ inline long wxSetWindowExStyle(const wxWindowMSW *win, long style) // and returns either that window if it does or NULL otherwise extern WXDLLIMPEXP_CORE wxWindow* wxFindWinFromHandle(HWND hwnd); -// without STRICT WXHWND is the same as HWND anyhow -inline wxWindow* wxFindWinFromHandle(WXHWND hWnd) -{ - return wxFindWinFromHandle(static_cast(hWnd)); -} - // find the window for HWND which is part of some wxWindow, i.e. unlike // wxFindWinFromHandle() above it will also work for "sub controls" of a // wxWindow.