// Modified by:
// Created: 04/01/98
// RCS-ID: $Id$
-// Copyright: (c) Julian Smart and Markus Holzem
-// Licence: wxWindows license
+// Copyright: (c) Julian Smart
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
// ============================================================================
#endif
#endif //WX_PRECOMP
-// In some mingws there is a missing extern "C" int the winsock header,
-// so we put it here just to be safe. Note that this must appear _before_
-// #include "wx/msw/private.h" which itself includes <windows.h>, as this
-// one in turn includes <winsock.h> unless we define WIN32_LEAN_AND_MEAN.
-//
-#if defined(__WIN32__) && !defined(__TWIN32__) && !defined(__WXMICROWIN__) && ! (defined(__GNUWIN32__) && !defined(__MINGW32__))
-extern "C" {
- #include <winsock.h> // we use socket functions in wxGetFullHostName()
-}
-#endif
-
#include "wx/msw/private.h" // includes <windows.h>
+#ifdef __GNUWIN32_OLD__
+ // apparently we need to include winsock.h to get WSADATA and other stuff
+ // used in wxGetFullHostName() with the old mingw32 versions
+ #include <winsock.h>
+#endif
+
#include "wx/timer.h"
-#if !defined(__GNUWIN32__) && !defined(__WXWINE__) && !defined(__SALFORDC__) && !defined(__WXMICROWIN__)
+#if !defined(__GNUWIN32__) && !defined(__SALFORDC__) && !defined(__WXMICROWIN__)
#include <direct.h>
#ifndef __MWERKS__
#include <lm.h>
#endif // USE_NET_API
-#if defined(__WIN32__) && !defined(__WXWINE__) && !defined(__WXMICROWIN__)
- #include <io.h>
+#if defined(__WIN32__) && !defined(__WXMICROWIN__)
+ #ifndef __UNIX__
+ #include <io.h>
+ #endif
#ifndef __GNUWIN32__
#include <shellapi.h>
if ( pHostEnt )
{
// Windows will use DNS internally now
- pHostEnt = gethostbyaddr(pHostEnt->h_addr, 4, PF_INET);
+ pHostEnt = gethostbyaddr(pHostEnt->h_addr, 4, AF_INET);
}
if ( pHostEnt )
{
- host = pHostEnt->h_name;
+ host = wxString::FromAscii(pHostEnt->h_name);
}
}
}
{
#ifdef __WIN16__
const wxChar* ret = wxGetenv(var);
- if (ret)
+ if ( !ret )
+ return FALSE;
+
+ if ( value )
{
*value = ret;
- return TRUE;
}
- else
- return FALSE;
-#else
+
+ return TRUE;
+#else // Win32
// first get the size of the buffer
DWORD dwRet = ::GetEnvironmentVariable(var, NULL, 0);
if ( !dwRet )
}
return TRUE;
-#endif
+#endif // Win16/32
}
bool wxSetEnv(const wxString& var, const wxChar *value)
// the PID we're looking from
DWORD pid;
+
+ DECLARE_NO_COPY_CLASS(wxFindByPidParams)
};
// wxKill helper: EnumWindows() callback which is used to find the first (top
cmd.Printf(wxT("%s /c %s"), shell, command.c_str());
}
- return wxExecute(cmd, TRUE /* sync */) != 0;
+ return wxExecute(cmd, wxEXEC_SYNC) == 0;
}
-// Shutdown or reboot the PC
+// Shutdown or reboot the PC
bool wxShutdown(wxShutdownFlags wFlags)
{
#ifdef __WIN32__
if ( wxGetOsVersion(NULL, NULL) == wxWINDOWS_NT ) // if is NT or 2K
{
- // Get a token for this process.
- HANDLE hToken;
+ // Get a token for this process.
+ HANDLE hToken;
bOK = ::OpenProcessToken(GetCurrentProcess(),
TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY,
&hToken) != 0;
if ( bOK )
{
- TOKEN_PRIVILEGES tkp;
+ TOKEN_PRIVILEGES tkp;
- // Get the LUID for the shutdown privilege.
+ // Get the LUID for the shutdown privilege.
::LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME,
- &tkp.Privileges[0].Luid);
+ &tkp.Privileges[0].Luid);
- tkp.PrivilegeCount = 1; // one privilege to set
- tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
+ tkp.PrivilegeCount = 1; // one privilege to set
+ tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
- // Get the shutdown privilege for this process.
+ // Get the shutdown privilege for this process.
::AdjustTokenPrivileges(hToken, FALSE, &tkp, 0,
- (PTOKEN_PRIVILEGES)NULL, 0);
+ (PTOKEN_PRIVILEGES)NULL, 0);
- // Cannot test the return value of AdjustTokenPrivileges.
+ // Cannot test the return value of AdjustTokenPrivileges.
bOK = ::GetLastError() == ERROR_SUCCESS;
}
}
return FALSE;
}
- bOK = ::ExitWindowsEx(EWX_SHUTDOWN | EWX_FORCE | EWX_REBOOT, 0) != 0;
+ bOK = ::ExitWindowsEx(EWX_SHUTDOWN | EWX_FORCE | EWX_REBOOT, 0) != 0;
}
return bOK;
#endif
}
+unsigned long wxGetProcessId()
+{
+#ifdef __WIN32__
+ return ::GetCurrentProcessId();
+#else
+ return 0;
+#endif
+}
+
// Emit a beeeeeep
void wxBell()
{
#else // !Win32
if (gs_inTimer)
return;
+ if (miliseconds <= 0)
+ return;
wxTheSleepTimer = new wxSleepTimer;
gs_inTimer = TRUE;
{
if (gs_inTimer)
return;
+ if (nSecs <= 0)
+ return;
wxTheSleepTimer = new wxSleepTimer;
gs_inTimer = TRUE;