]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/fdrepdlg.cpp
updated
[wxWidgets.git] / src / msw / fdrepdlg.cpp
index 7eab0dae8d707ea8faeba638a0fe7476de259c7d..1c2006f35d934f86a4ee01efe55cd04bee0d18ac 100644 (file)
@@ -4,7 +4,7 @@
 // Author:      Markus Greither and Vadim Zeitlin
 // Modified by:
 // Created:     23/03/2001
-// RCS-ID:
+// RCS-ID:      $Id$
 // Copyright:   (c) Markus Greither
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 // headers
 // ----------------------------------------------------------------------------
 
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
-    #pragma implementation "mswfdrepdlg.h"
-#endif
-
 // For compilers that support precompilation, includes "wx.h".
 #include "wx/wxprec.h"
 
 #if wxUSE_FINDREPLDLG
 
 #ifndef WX_PRECOMP
+    #include "wx/msw/wrapcdlg.h"
     #include "wx/intl.h"
     #include "wx/log.h"
 #endif
 
-#include "wx/msw/wrapcdlg.h"
 #include "wx/fdrepdlg.h"
 
+#include "wx/msw/mslu.h"
+
 // ----------------------------------------------------------------------------
 // functions prototypes
 // ----------------------------------------------------------------------------
 
-LRESULT APIENTRY wxFindReplaceWindowProc(HWND hwnd, WXUINT nMsg,
-                                       WPARAM wParam, LPARAM lParam);
+LRESULT CALLBACK wxFindReplaceWindowProc(HWND hwnd, WXUINT nMsg,
+                                         WPARAM wParam, LPARAM lParam);
 
 UINT_PTR CALLBACK wxFindReplaceDialogHookProc(HWND hwnd,
                                               UINT uiMsg,
@@ -194,14 +192,14 @@ void wxFindReplaceDialogImpl::SubclassDialog(HWND hwnd)
 
     // check that we don't subclass the parent twice: this would be a bad idea
     // as then we'd have infinite recursion in wxFindReplaceWindowProc
-    if ( !wxCheckWindowWndProc((WXHWND)hwnd, (WXFARPROC)wxFindReplaceWindowProc) )
-    {
-        // set the new one and save the old as user data to allow access to it
-        // from wxFindReplaceWindowProc
-        m_oldParentWndProc = wxSetWindowProc(hwnd, wxFindReplaceWindowProc);
+    wxCHECK_RET( wxGetWindowProc(hwnd) != &wxFindReplaceWindowProc,
+                 _T("can't have more than one find dialog currently") );
 
-        wxSetWindowUserData(hwnd, (void *)m_oldParentWndProc);
-    }
+    // set the new one and save the old as user data to allow access to it
+    // from wxFindReplaceWindowProc
+    m_oldParentWndProc = wxSetWindowProc(hwnd, wxFindReplaceWindowProc);
+
+    wxSetWindowUserData(hwnd, (void *)m_oldParentWndProc);
 }
 
 wxFindReplaceDialogImpl::~wxFindReplaceDialogImpl()
@@ -220,7 +218,7 @@ wxFindReplaceDialogImpl::~wxFindReplaceDialogImpl()
 // Window Proc for handling RegisterWindowMessage(FINDMSGSTRING)
 // ----------------------------------------------------------------------------
 
-LRESULT APIENTRY wxFindReplaceWindowProc(HWND hwnd, WXUINT nMsg,
+LRESULT CALLBACK wxFindReplaceWindowProc(HWND hwnd, WXUINT nMsg,
                                          WPARAM wParam, LPARAM lParam)
 {
 #if wxUSE_UNICODE_MSLU
@@ -242,7 +240,7 @@ LRESULT APIENTRY wxFindReplaceWindowProc(HWND hwnd, WXUINT nMsg,
         // of UNICOWS.DLL send the correct UNICODE item after button press
         // and a bogus ANSI mode item right after this, so lets ignore
         // the second bogus message
-        if ( s_lastMsgFlags == pFR->Flags )
+        if ( wxUsingUnicowsDll() && s_lastMsgFlags == pFR->Flags )
         {
             s_lastMsgFlags = 0;
             return 0;
@@ -543,4 +541,3 @@ void wxFindReplaceDialog::DoGetClientSize(int *width, int *height) const
 }
 
 #endif // wxUSE_FINDREPLDLG
-