#include "wx/dialog.h"
#include "wx/msgdlg.h"
#include "wx/intl.h"
+ #include "wx/dynarray.h"
#endif
#include "wx/msw/private.h"
// if you don't do the same for the Ole calls further down.
// Also, OLE is used not just for drag and drop (it's used by automatn.cpp).
// #if wxUSE_DRAG_AND_DROP
-#if !defined(__GNUWIN32__) && !defined(__SC__)
+#if !defined(__GNUWIN32__) && !defined(__SC__) && !defined(__SALFORDC__)
#include <ole2.h>
#endif
+
// #endif
#include <string.h>
#include <ctype.h>
-#if defined(__WIN95__) && !defined(__GNUWIN32__)
+#if (defined(__WIN95__) && !defined(__GNUWIN32__)) || defined(__TWIN32__)
#include <commctrl.h>
#endif
char wxPanelClassName[] = "wxPanelClass";
char wxCanvasClassName[] = "wxCanvasClass";
-HICON wxSTD_FRAME_ICON = NULL;
-HICON wxSTD_MDICHILDFRAME_ICON = NULL;
-HICON wxSTD_MDIPARENTFRAME_ICON = NULL;
+HICON wxSTD_FRAME_ICON = (HICON) NULL;
+HICON wxSTD_MDICHILDFRAME_ICON = (HICON) NULL;
+HICON wxSTD_MDIPARENTFRAME_ICON = (HICON) NULL;
-HICON wxDEFAULT_FRAME_ICON = NULL;
-HICON wxDEFAULT_MDICHILDFRAME_ICON = NULL;
-HICON wxDEFAULT_MDIPARENTFRAME_ICON = NULL;
+HICON wxDEFAULT_FRAME_ICON = (HICON) NULL;
+HICON wxDEFAULT_MDICHILDFRAME_ICON = (HICON) NULL;
+HICON wxDEFAULT_MDIPARENTFRAME_ICON = (HICON) NULL;
-HBRUSH wxDisableButtonBrush = 0;
+HBRUSH wxDisableButtonBrush = (HBRUSH) 0;
LRESULT APIENTRY wxWndProc(HWND, UINT, WPARAM, LPARAM);
long wxApp::sm_lastMessageTime = 0;
-#ifdef __WIN95__
- static HINSTANCE gs_hRichEdit = NULL;
+#if defined(__WIN95__) && !defined(__TWIN32__)
+#define wxUSE_RICHEDIT 1
+#else
+#define wxUSE_RICHEDIT 0
+#endif
+
+#if wxUSE_RICHEDIT
+ static HINSTANCE gs_hRichEdit = (HINSTANCE) NULL;
#endif
//// Initialize
#if defined(__WIN95__)
InitCommonControls();
+
+#if wxUSE_RICHEDIT
gs_hRichEdit = LoadLibrary("RICHED32.DLL");
- if (gs_hRichEdit == NULL)
+ if (gs_hRichEdit == (HINSTANCE) NULL)
{
wxMessageBox("Could not initialise Rich Edit DLL");
}
+#endif
+
#endif
int iMsg = 96;
-
+
// for OLE, enlarge message queue to be as large as possible
while (!SetMessageQueue(iMsg) && (iMsg -= 8));
/*
DWORD dwOleVer;
dwOleVer = CoBuildVersion();
-
+
// check the OLE library version
if (rmm != HIWORD(dwOleVer))
{
}
*/
-#if !defined(__GNUWIN32__) && !defined(__SC__)
+#if !defined(__GNUWIN32__) && !defined(__SC__) && !defined(__SALFORDC__)
// we need to initialize OLE library
if ( FAILED(::OleInitialize(NULL)) )
wxFatalError(_("Cannot initialize OLE"));
// This is to foil optimizations in Visual C++ that
// throw out dummy.obj.
-// #if (_MSC_VER >= 800) && !defined(WXMAKINGDLL)
-#if defined(_MSC_VER) && defined(__WIN16__) && !defined(WXMAKINGDLL)
+ // PLEASE DO NOT ALTER THIS.
+#if defined(_MSC_VER) && !defined(WXMAKINGDLL)
extern char wxDummyChar;
if (wxDummyChar) wxDummyChar++;
#endif
wndclass.cbClsExtra = 0;
wndclass.cbWndExtra = sizeof( DWORD ); // was 4
wndclass.hInstance = wxhInstance;
- wndclass.hIcon = NULL; // wxSTD_FRAME_ICON;
- wndclass.hCursor = LoadCursor( NULL, IDC_ARROW );
+ wndclass.hIcon = (HICON) NULL; // wxSTD_FRAME_ICON;
+ wndclass.hCursor = LoadCursor( (HINSTANCE) NULL, IDC_ARROW );
wndclass.hbrBackground = (HBRUSH)(COLOR_APPWORKSPACE+1) ;
// wndclass.hbrBackground = GetStockObject( WHITE_BRUSH );
wndclass.lpszMenuName = NULL;
wndclass1.cbClsExtra = 0;
wndclass1.cbWndExtra = sizeof( DWORD ); // was 4
wndclass1.hInstance = wxhInstance;
- wndclass1.hIcon = NULL; // wxSTD_MDIPARENTFRAME_ICON;
- wndclass1.hCursor = LoadCursor( NULL, IDC_ARROW );
+ wndclass1.hIcon = (HICON) NULL; // wxSTD_MDIPARENTFRAME_ICON;
+ wndclass1.hCursor = LoadCursor( (HINSTANCE) NULL, IDC_ARROW );
// wndclass1.hbrBackground = (HBRUSH)(COLOR_APPWORKSPACE+1) ;
- wndclass1.hbrBackground = NULL;
+ wndclass1.hbrBackground = (HBRUSH) NULL;
wndclass1.lpszMenuName = NULL;
wndclass1.lpszClassName = wxMDIFrameClassName;
wndclass4.cbClsExtra = 0;
wndclass4.cbWndExtra = sizeof( DWORD ); // was 4
wndclass4.hInstance = wxhInstance;
- wndclass4.hIcon = NULL; // wxSTD_MDICHILDFRAME_ICON;
- wndclass4.hCursor = LoadCursor( NULL, IDC_ARROW );
+ wndclass4.hIcon = (HICON) NULL; // wxSTD_MDICHILDFRAME_ICON;
+ wndclass4.hCursor = LoadCursor( (HINSTANCE) NULL, IDC_ARROW );
// TODO: perhaps this should be NULL so that Windows doesn't
// paint the background itself (would OnEraseBackground duplicate
// this?)
wndclass2.cbClsExtra = 0;
wndclass2.cbWndExtra = sizeof( DWORD ); // was 4
wndclass2.hInstance = wxhInstance;
- wndclass2.hIcon = NULL;
- wndclass2.hCursor = NULL;
+ wndclass2.hIcon = (HICON) NULL;
+ wndclass2.hCursor = (HCURSOR) NULL;
// wndclass2.hbrBackground = (HBRUSH)(COLOR_BTNFACE+1) ;
wndclass2.hbrBackground = (HBRUSH) GetStockObject( LTGRAY_BRUSH );
wndclass2.lpszMenuName = NULL;
wndclass3.cbClsExtra = 0;
wndclass3.cbWndExtra = sizeof( DWORD ); // was 4
wndclass3.hInstance = wxhInstance;
- wndclass3.hIcon = NULL;
- wndclass3.hCursor = NULL;
+ wndclass3.hIcon = (HICON) NULL;
+ wndclass3.hCursor = (HCURSOR) NULL;
// wndclass3.hbrBackground = (HBRUSH)(COLOR_WINDOW+1) ;
- wndclass3.hbrBackground = NULL;
+ wndclass3.hbrBackground = (HBRUSH) NULL;
wndclass3.lpszMenuName = NULL;
wndclass3.lpszClassName = wxCanvasClassName;
if (!RegisterClass( &wndclass3))
wxSetKeyboardHook(FALSE);
#ifdef __WIN95__
- if (gs_hRichEdit != NULL)
+
+#if wxUSE_RICHEDIT
+ if (gs_hRichEdit != (HINSTANCE) NULL)
FreeLibrary(gs_hRichEdit);
#endif
+#endif
+
#if wxUSE_PENWINDOWS
wxCleanUpPenWin();
#endif
if ( wxDisableButtonBrush )
::DeleteObject( wxDisableButtonBrush ) ;
-#if !defined(__GNUWIN32__) && !defined(__SC__)
+#if !defined(__GNUWIN32__) && !defined(__SC__) && !defined(__SALFORDC__)
::OleUninitialize();
#endif
{
// got WM_QUIT
m_keepGoing = FALSE;
-
+
return FALSE;
}
else if ( rc == -1 )
{
s_hadGuiLock = FALSE;
- s_aSavedMessages.Add(s_currentMsg);
+ // leave out WM_COMMAND messages: too dangerous, sometimes
+ // the message will be processed twice
+ if ( !wxIsWaitingForThread() ||
+ s_currentMsg.message != WM_COMMAND )
+ {
+ s_aSavedMessages.Add(s_currentMsg);
+ }
return TRUE;
}
// Try translations first; find the youngest window with
// a translation table.
- for (hWnd = msg->hwnd; hWnd != NULL; hWnd = ::GetParent(hWnd))
+ for (hWnd = msg->hwnd; hWnd != (HWND) NULL; hWnd = ::GetParent(hWnd))
{
wxWindow *wnd = wxFindWinFromHandle((WXHWND) hWnd);
if (wnd)
}
// Anyone for a non-translation message? Try youngest descendants first.
- for (hWnd = msg->hwnd; hWnd != NULL; hWnd = ::GetParent(hWnd))
+ for (hWnd = msg->hwnd; hWnd != (HWND) NULL; hWnd = ::GetParent(hWnd))
{
wxWindow *wnd = wxFindWinFromHandle((WXHWND) hWnd);
if (wnd)
}
}
-void wxApp::OnEndSession(wxCloseEvent& event)
+void wxApp::OnEndSession(wxCloseEvent& WXUNUSED(event))
{
if (GetTopWindow())
GetTopWindow()->Close(TRUE);
// For some reason, with MSVC++ 1.5, WinMain isn't linked in properly
// if in a separate file. So include it here to ensure it's linked.
-#if (defined(_MSC_VER) && !defined(__WIN32__)) || defined(__GNUWIN32__)
+#if (defined(_MSC_VER) && !defined(__WIN32__)) || (defined(__GNUWIN32__) && !defined(__TWIN32__))
#include "main.cpp"
#endif