]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/dialup.cpp
Fixed filename in wxOSX-Cocoa's file dialog using extension of wrong file type.
[wxWidgets.git] / src / msw / dialup.cpp
index 75bd13098d3cbe97e50f6d5649fe7d98fd567f16..7b536c9e9e9d83cc3af01965a2388d442932d360 100644 (file)
     #include "wx/intl.h"
     #include "wx/event.h"
     #include "wx/app.h"
     #include "wx/intl.h"
     #include "wx/event.h"
     #include "wx/app.h"
+    #include "wx/timer.h"
+    #include "wx/module.h"
 #endif
 
 #endif
 
-#include "wx/timer.h"
 #include "wx/generic/choicdgg.h"
 
 #include "wx/generic/choicdgg.h"
 
+#include "wx/msw/private.h"
 #include "wx/dynlib.h"
 #include "wx/dynlib.h"
-#include "wx/module.h"
 
 
-DEFINE_EVENT_TYPE(wxEVT_DIALUP_CONNECTED)
-DEFINE_EVENT_TYPE(wxEVT_DIALUP_DISCONNECTED)
+wxDEFINE_EVENT( wxEVT_DIALUP_CONNECTED, wxDialUpEvent );
+wxDEFINE_EVENT( wxEVT_DIALUP_DISCONNECTED, wxDialUpEvent );
 
 // Doesn't yet compile under VC++ 4, BC++, Watcom C++,
 // Wine: no wininet.h
 
 // Doesn't yet compile under VC++ 4, BC++, Watcom C++,
 // Wine: no wininet.h
@@ -111,7 +112,7 @@ static const wxChar *gs_classForDialUpWindow = NULL;
     typedef DWORD (APIENTRY * RASVALIDATEENTRYNAME)( LPCSTR, LPCSTR );
     typedef DWORD (APIENTRY * RASCONNECTIONNOTIFICATION)( HRASCONN, HANDLE, DWORD );
 
     typedef DWORD (APIENTRY * RASVALIDATEENTRYNAME)( LPCSTR, LPCSTR );
     typedef DWORD (APIENTRY * RASCONNECTIONNOTIFICATION)( HRASCONN, HANDLE, DWORD );
 
-    static const wxChar gs_funcSuffix = _T('A');
+    static const wxChar gs_funcSuffix = wxT('A');
 #else // Unicode
     typedef DWORD (APIENTRY * RASDIAL)( LPRASDIALEXTENSIONS, LPCWSTR, LPRASDIALPARAMSW, DWORD, LPVOID, LPHRASCONN );
     typedef DWORD (APIENTRY * RASENUMCONNECTIONS)( LPRASCONNW, LPDWORD, LPDWORD );
 #else // Unicode
     typedef DWORD (APIENTRY * RASDIAL)( LPRASDIALEXTENSIONS, LPCWSTR, LPRASDIALPARAMSW, DWORD, LPVOID, LPHRASCONN );
     typedef DWORD (APIENTRY * RASENUMCONNECTIONS)( LPRASCONNW, LPDWORD, LPDWORD );
@@ -133,7 +134,7 @@ static const wxChar *gs_classForDialUpWindow = NULL;
     typedef DWORD (APIENTRY * RASVALIDATEENTRYNAME)( LPCWSTR, LPCWSTR );
     typedef DWORD (APIENTRY * RASCONNECTIONNOTIFICATION)( HRASCONN, HANDLE, DWORD );
 
     typedef DWORD (APIENTRY * RASVALIDATEENTRYNAME)( LPCWSTR, LPCWSTR );
     typedef DWORD (APIENTRY * RASCONNECTIONNOTIFICATION)( HRASCONN, HANDLE, DWORD );
 
-    static const wxChar gs_funcSuffix = _T('W');
+    static const wxChar gs_funcSuffix = wxT('W');
 #endif // ASCII/Unicode
 
 // structure passed to the secondary thread
 #endif // ASCII/Unicode
 
 // structure passed to the secondary thread
@@ -163,7 +164,7 @@ struct WXDLLEXPORT wxRasThreadData
     HANDLE  hEventRas,  // automatic event which RAS signals when status changes
             hEventQuit; // manual event which we signal when we terminate
 
     HANDLE  hEventRas,  // automatic event which RAS signals when status changes
             hEventQuit; // manual event which we signal when we terminate
 
-    class WXDLLEXPORT wxDialUpManagerMSW *dialUpManager;  // the owner
+    class WXDLLIMPEXP_FWD_CORE wxDialUpManagerMSW *dialUpManager;  // the owner
 };
 
 // ----------------------------------------------------------------------------
 };
 
 // ----------------------------------------------------------------------------
@@ -237,7 +238,7 @@ private:
     private:
         wxDialUpManagerMSW *m_dialUpManager;
 
     private:
         wxDialUpManagerMSW *m_dialUpManager;
 
-        DECLARE_NO_COPY_CLASS(RasTimer)
+        wxDECLARE_NO_COPY_CLASS(RasTimer);
     } m_timerStatusPolling;
 
     // thread handle for the thread sitting on connection change event
     } m_timerStatusPolling;
 
     // thread handle for the thread sitting on connection change event
@@ -288,7 +289,7 @@ private:
     // this flag tells us whether a call to RasDial() is in progress
     static wxDialUpManagerMSW *ms_dialer;
 
     // this flag tells us whether a call to RasDial() is in progress
     static wxDialUpManagerMSW *ms_dialer;
 
-    DECLARE_NO_COPY_CLASS(wxDialUpManagerMSW)
+    wxDECLARE_NO_COPY_CLASS(wxDialUpManagerMSW);
 };
 
 // module to destroy helper window created by wxDialUpManagerMSW
 };
 
 // module to destroy helper window created by wxDialUpManagerMSW
@@ -384,7 +385,7 @@ wxDialUpManager *wxDialUpManager::Create()
 
 wxDialUpManagerMSW::wxDialUpManagerMSW()
                   : m_timerStatusPolling(this),
 
 wxDialUpManagerMSW::wxDialUpManagerMSW()
                   : m_timerStatusPolling(this),
-                    m_dllRas(_T("RASAPI32"))
+                    m_dllRas(wxT("RASAPI32"))
 {
     // initialize our data
     m_autoCheckLevel = 0;
 {
     // initialize our data
     m_autoCheckLevel = 0;
@@ -405,7 +406,7 @@ wxDialUpManagerMSW::wxDialUpManagerMSW()
 
         // get the function from rasapi32.dll and abort if it's not found
         #define RESOLVE_RAS_FUNCTION(type, name)                          \
 
         // get the function from rasapi32.dll and abort if it's not found
         #define RESOLVE_RAS_FUNCTION(type, name)                          \
-            ms_pfn##name = (type)m_dllRas.GetSymbol( wxString(_T(#name))  \
+            ms_pfn##name = (type)m_dllRas.GetSymbol( wxString(wxT(#name))  \
                                                      + gs_funcSuffix);    \
             if ( !ms_pfn##name )                                          \
             {                                                             \
                                                      + gs_funcSuffix);    \
             if ( !ms_pfn##name )                                          \
             {                                                             \
@@ -416,7 +417,7 @@ wxDialUpManagerMSW::wxDialUpManagerMSW()
         // a variant of above macro which doesn't abort if the function is
         // not found in the DLL
         #define RESOLVE_OPTIONAL_RAS_FUNCTION(type, name)                 \
         // a variant of above macro which doesn't abort if the function is
         // not found in the DLL
         #define RESOLVE_OPTIONAL_RAS_FUNCTION(type, name)                 \
-            ms_pfn##name = (type)m_dllRas.GetSymbol( wxString(_T(#name))  \
+            ms_pfn##name = (type)m_dllRas.GetSymbol( wxString(wxT(#name))  \
                                                      + gs_funcSuffix);
 
         RESOLVE_RAS_FUNCTION(RASDIAL, RasDial);
                                                      + gs_funcSuffix);
 
         RESOLVE_RAS_FUNCTION(RASDIAL, RasDial);
@@ -452,12 +453,10 @@ wxDialUpManagerMSW::wxDialUpManagerMSW()
 exit:
         if ( funcName )
         {
 exit:
         if ( funcName )
         {
-            static const wxChar *msg = wxTRANSLATE(
-"The version of remote access service (RAS) installed on this machine is too\
-old, please upgrade (the following required function is missing: %s)."
-                                                   );
-
-            wxLogError(wxGetTranslation(msg), funcName);
+            wxLogError(_("The version of remote access service (RAS) installed "
+                          "on this machine is too old, please upgrade (the "
+                          "following required function is missing: %s)."),
+                       funcName);
             m_dllRas.Unload();
             return;
         }
             m_dllRas.Unload();
             return;
         }
@@ -584,7 +583,7 @@ void wxDialUpManagerMSW::CleanUpThreadData()
     {
         if ( !SetEvent(m_data->hEventQuit) )
         {
     {
         if ( !SetEvent(m_data->hEventQuit) )
         {
-            wxLogLastError(_T("SetEvent(RasThreadQuit)"));
+            wxLogLastError(wxT("SetEvent(RasThreadQuit)"));
         }
         else // sent quit request to the background thread
         {
         }
         else // sent quit request to the background thread
         {
@@ -598,11 +597,7 @@ void wxDialUpManagerMSW::CleanUpThreadData()
         m_hThread = 0;
     }
 
         m_hThread = 0;
     }
 
-    if ( m_data )
-    {
-        delete m_data;
-        m_data = NULL;
-    }
+    wxDELETE(m_data);
 }
 
 // ----------------------------------------------------------------------------
 }
 
 // ----------------------------------------------------------------------------
@@ -711,7 +706,13 @@ size_t wxDialUpManagerMSW::GetISPNames(wxArrayString& names) const
         if ( dwRet == ERROR_BUFFER_TOO_SMALL )
         {
             // reallocate the buffer
         if ( dwRet == ERROR_BUFFER_TOO_SMALL )
         {
             // reallocate the buffer
-            rasEntries = (RASENTRYNAME *)realloc(rasEntries, size);
+            void *n  = realloc(rasEntries, size);
+            if (n == NULL)
+            {
+                free(rasEntries);
+                return 0;
+            }
+            rasEntries = (RASENTRYNAME *)n;
         }
         else if ( dwRet != 0 )
         {
         }
         else if ( dwRet != 0 )
         {
@@ -803,7 +804,7 @@ bool wxDialUpManagerMSW::Dial(const wxString& nameOfISP,
 
     RASDIALPARAMS rasDialParams;
     rasDialParams.dwSize = sizeof(rasDialParams);
 
     RASDIALPARAMS rasDialParams;
     rasDialParams.dwSize = sizeof(rasDialParams);
-    wxStrncpy(rasDialParams.szEntryName, entryName, RAS_MaxEntryName);
+    wxStrlcpy(rasDialParams.szEntryName, entryName.c_str(), RAS_MaxEntryName);
 
     // do we have the username and password?
     if ( !username || !password )
 
     // do we have the username and password?
     if ( !username || !password )
@@ -825,8 +826,8 @@ bool wxDialUpManagerMSW::Dial(const wxString& nameOfISP,
     }
     else
     {
     }
     else
     {
-        wxStrncpy(rasDialParams.szUserName, username, UNLEN);
-        wxStrncpy(rasDialParams.szPassword, password, PWLEN);
+        wxStrlcpy(rasDialParams.szUserName, username.c_str(), UNLEN);
+        wxStrlcpy(rasDialParams.szPassword, password.c_str(), PWLEN);
     }
 
     // default values for other fields
     }
 
     // default values for other fields
@@ -878,9 +879,16 @@ bool wxDialUpManagerMSW::Dial(const wxString& nameOfISP,
     if ( dwRet != 0 )
     {
         // can't pass a wxWCharBuffer through ( ... )
     if ( dwRet != 0 )
     {
         // can't pass a wxWCharBuffer through ( ... )
-        wxLogError(_("Failed to %s dialup connection: %s"),
-                   wxString(async ? _("initiate") : _("establish")).c_str(),
-                   GetErrorString(dwRet).c_str());
+        if ( async )
+        {
+            wxLogError(_("Failed to initiate dialup connection: %s"),
+                       GetErrorString(dwRet).c_str());
+        }
+        else
+        {
+            wxLogError(_("Failed to establish dialup connection: %s"),
+                       GetErrorString(dwRet).c_str());
+        }
 
         // we should still call RasHangUp() if we got a non 0 connection
         if ( ms_hRasConnection )
 
         // we should still call RasHangUp() if we got a non 0 connection
         if ( ms_hRasConnection )
@@ -973,14 +981,14 @@ bool wxDialUpManagerMSW::IsAlwaysOnline() const
     //     but we allow multiple instances of wxDialUpManagerMSW so
     //     we might as well use the ref counted version here too.
 
     //     but we allow multiple instances of wxDialUpManagerMSW so
     //     we might as well use the ref counted version here too.
 
-    wxDynamicLibrary hDll(_T("WININET"));
+    wxDynamicLibrary hDll(wxT("WININET"));
     if ( hDll.IsLoaded() )
     {
         typedef BOOL (WINAPI *INTERNETGETCONNECTEDSTATE)(LPDWORD, DWORD);
         INTERNETGETCONNECTEDSTATE pfnInternetGetConnectedState;
 
         #define RESOLVE_FUNCTION(type, name) \
     if ( hDll.IsLoaded() )
     {
         typedef BOOL (WINAPI *INTERNETGETCONNECTEDSTATE)(LPDWORD, DWORD);
         INTERNETGETCONNECTEDSTATE pfnInternetGetConnectedState;
 
         #define RESOLVE_FUNCTION(type, name) \
-            pfn##name = (type)hDll.GetSymbol(_T(#name))
+            pfn##name = (type)hDll.GetSymbol(wxT(#name))
 
         RESOLVE_FUNCTION(INTERNETGETCONNECTEDSTATE, InternetGetConnectedState);
 
 
         RESOLVE_FUNCTION(INTERNETGETCONNECTEDSTATE, InternetGetConnectedState);
 
@@ -1258,11 +1266,10 @@ static DWORD wxRasMonitorThread(wxRasThreadData *data)
                 break;
 
             default:
                 break;
 
             default:
-                wxFAIL_MSG( _T("unexpected return of WaitForMultipleObjects()") );
+                wxFAIL_MSG( wxT("unexpected return of WaitForMultipleObjects()") );
                 // fall through
 
             case WAIT_FAILED:
                 // fall through
 
             case WAIT_FAILED:
-#ifdef __WXDEBUG__
                 // using wxLogLastError() from here is dangerous: we risk to
                 // deadlock the main thread if wxLog sends output to GUI
                 DWORD err = GetLastError();
                 // using wxLogLastError() from here is dangerous: we risk to
                 // deadlock the main thread if wxLog sends output to GUI
                 DWORD err = GetLastError();
@@ -1273,7 +1280,6 @@ static DWORD wxRasMonitorThread(wxRasThreadData *data)
                     err,
                     wxSysErrorMsg(err)
                 );
                     err,
                     wxSysErrorMsg(err)
                 );
-#endif // __WXDEBUG__
 
                 // no sense in continuing, who knows if the handles we're
                 // waiting for even exist yet...
 
                 // no sense in continuing, who knows if the handles we're
                 // waiting for even exist yet...