// 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
/////////////////////////////////////////////////////////////////////////////
// ============================================================================
#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__
#endif
#endif //GNUWIN32
-#if defined(__CYGWIN__) && !defined(__TWIN32__)
+#if defined(__CYGWIN__)
#include <sys/unistd.h>
#include <sys/stat.h>
#include <sys/cygwin.h> // for cygwin_conv_to_full_win32_path()
#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>
// Get hostname only (without domain name)
bool wxGetHostName(wxChar *buf, int maxSize)
{
-#if defined(__WIN32__) && !defined(__TWIN32__) && !defined(__WXMICROWIN__)
+#if defined(__WIN32__) && !defined(__WXMICROWIN__)
DWORD nSize = maxSize;
if ( !::GetComputerName(buf, &nSize) )
{
// get full hostname (with domain name if possible)
bool wxGetFullHostName(wxChar *buf, int maxSize)
{
-#if defined(__WIN32__) && !defined(__TWIN32__) && !defined(__WXMICROWIN__) && ! (defined(__GNUWIN32__) && !defined(__MINGW32__))
+#if defined(__WIN32__) && !defined(__WXMICROWIN__) && ! (defined(__GNUWIN32__) && !defined(__MINGW32__))
// TODO should use GetComputerNameEx() when available
// the idea is that if someone had set wxUSE_SOCKETS to 0 the code
// shouldn't use winsock.dll (a.k.a. ws2_32.dll) at all so only use this
// code if we link with it anyhow
#if wxUSE_SOCKETS
+
WSADATA wsa;
if ( WSAStartup(MAKEWORD(1, 1), &wsa) == 0 )
{
return TRUE;
}
}
+
#endif // wxUSE_SOCKETS
#endif // Win32
// Get user ID e.g. jacs
bool wxGetUserId(wxChar *buf, int maxSize)
{
-#if defined(__WIN32__) && !defined(__win32s__) && !defined(__TWIN32__) && !defined(__WXMICROWIN__)
+#if defined(__WIN32__) && !defined(__win32s__) && !defined(__WXMICROWIN__)
DWORD nSize = maxSize;
if ( ::GetUserName(buf, &nSize) == 0 )
{
{
wxString& strDir = *pstr;
- #if defined(__UNIX__) && !defined(__TWIN32__)
+ #if defined(__UNIX__)
const wxChar *szHome = wxGetenv("HOME");
if ( szHome == NULL ) {
// we're homeless...
// process management
// ----------------------------------------------------------------------------
-#ifdef __WIN32__
-
// structure used to pass parameters from wxKill() to wxEnumFindByPidProc()
struct wxFindByPidParams
{
return TRUE;
}
-#endif // __WIN32__
-
int wxKill(long pid, wxSignal sig, wxKillError *krc)
{
-#ifdef __WIN32__
// get the process handle to operate on
HANDLE hProcess = ::OpenProcess(SYNCHRONIZE |
PROCESS_TERMINATE |
// the return code is the same as from Unix kill(): 0 if killed
// successfully or -1 on error
- if ( sig == wxSIGNONE )
- {
- if ( ok && rc == STILL_ACTIVE )
- {
- // there is such process => success
- return 0;
- }
- }
- else // not SIGNONE
+ //
+ // be careful to interpret rc correctly: for wxSIGNONE we return success if
+ // the process exists, for all the other sig values -- if it doesn't
+ if ( ok &&
+ ((sig == wxSIGNONE) == (rc == STILL_ACTIVE)) )
{
- if ( ok && rc != STILL_ACTIVE )
+ if ( krc )
{
- // killed => success
- return 0;
+ *krc = wxKILL_OK;
}
+
+ return 0;
}
-#else // Win16
- wxFAIL_MSG( _T("not implemented") );
-#endif // Win32/Win16
// error
return -1;
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;
-#ifndef __WXWINE__
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;
}
-#endif
}
if ( bOK )
return FALSE;
}
- bOK = ::ExitWindowsEx(EWX_SHUTDOWN | EWX_FORCE | EWX_REBOOT, 0) != 0;
+ bOK = ::ExitWindowsEx(EWX_SHUTDOWN | EWX_FORCE | EWX_REBOOT, 0) != 0;
}
return bOK;
// Get free memory in bytes, or -1 if cannot determine amount (e.g. on UNIX)
long wxGetFreeMemory()
{
-#if defined(__WIN32__) && !defined(__BORLANDC__) && !defined(__TWIN32__)
+#if defined(__WIN32__) && !defined(__BORLANDC__)
MEMORYSTATUS memStatus;
memStatus.dwLength = sizeof(MEMORYSTATUS);
GlobalMemoryStatus(&memStatus);
int wxGetOsVersion(int *majorVsn, int *minorVsn)
{
-#if defined(__WIN32__) && !defined(__SC__)
+#if defined(__WIN32__)
static int ver = -1, major = -1, minor = -1;
if ( ver == -1 )
#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;
static HCURSOR gs_wxBusyCursorOld = 0; // old cursor
static int gs_wxBusyCursorCount = 0;
+#ifdef __DIGITALMARS__
+extern "C" HCURSOR wxGetCurrentBusyCursor()
+#else
extern HCURSOR wxGetCurrentBusyCursor()
+#endif
{
return gs_wxBusyCursor;
}