/* * Win32 miscellaneous functions * * Copyright 1995 Thomas Sandford (tdgsandf@prds-grn.demon.co.uk) * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* Misc. new functions - they should be moved into appropriate files at a later date. */ #include "config.h" #include "wine/port.h" #include #include #ifdef HAVE_SYS_TIME_H # include #endif #ifdef HAVE_UNISTD_H # include #endif #define NONAMELESSUNION #define NONAMELESSSTRUCT #include "windef.h" #include "winbase.h" #include "winnls.h" #include "winerror.h" #include "wine/debug.h" WINE_DEFAULT_DEBUG_CHANNEL(win32); WINE_DECLARE_DEBUG_CHANNEL(debug); /**************************************************************************** * FlushInstructionCache (KERNEL32.@) */ BOOL WINAPI FlushInstructionCache(HANDLE hProcess, LPCVOID lpBaseAddress, SIZE_T dwSize) { if (GetVersion() & 0x80000000) return TRUE; /* not NT, always TRUE */ FIXME_(debug)("(0x%08lx,%p,0x%08lx): stub\n",(DWORD)hProcess, lpBaseAddress, dwSize); return TRUE; } /*********************************************************************** * GetSystemPowerStatus (KERNEL32.@) */ BOOL WINAPI GetSystemPowerStatus(LPSYSTEM_POWER_STATUS sps_ptr) { return FALSE; /* no power management support */ } /*********************************************************************** * SetSystemPowerState (KERNEL32.@) */ BOOL WINAPI SetSystemPowerState(BOOL suspend_or_hibernate, BOOL force_flag) { /* suspend_or_hibernate flag: w95 does not support this feature anyway */ for ( ;0; ) { if ( force_flag ) { } else { } } return TRUE; } /****************************************************************************** * CreateMailslotA [KERNEL32.@] */ HANDLE WINAPI CreateMailslotA( LPCSTR lpName, DWORD nMaxMessageSize, DWORD lReadTimeout, LPSECURITY_ATTRIBUTES sa) { FIXME("(%s,%ld,%ld,%p): stub\n", debugstr_a(lpName), nMaxMessageSize, lReadTimeout, sa); return (HANDLE)1; } /****************************************************************************** * CreateMailslotW [KERNEL32.@] Creates a mailslot with specified name * * PARAMS * lpName [I] Pointer to string for mailslot name * nMaxMessageSize [I] Maximum message size * lReadTimeout [I] Milliseconds before read time-out * sa [I] Pointer to security structure * * RETURNS * Success: Handle to mailslot * Failure: INVALID_HANDLE_VALUE */ HANDLE WINAPI CreateMailslotW( LPCWSTR lpName, DWORD nMaxMessageSize, DWORD lReadTimeout, LPSECURITY_ATTRIBUTES sa ) { FIXME("(%s,%ld,%ld,%p): stub\n", debugstr_w(lpName), nMaxMessageSize, lReadTimeout, sa); return (HANDLE)1; } /****************************************************************************** * GetMailslotInfo [KERNEL32.@] Retrieves info about specified mailslot * * PARAMS * hMailslot [I] Mailslot handle * lpMaxMessageSize [O] Address of maximum message size * lpNextSize [O] Address of size of next message * lpMessageCount [O] Address of number of messages * lpReadTimeout [O] Address of read time-out * * RETURNS * Success: TRUE * Failure: FALSE */ BOOL WINAPI GetMailslotInfo( HANDLE hMailslot, LPDWORD lpMaxMessageSize, LPDWORD lpNextSize, LPDWORD lpMessageCount, LPDWORD lpReadTimeout ) { FIXME("(%p): stub\n",hMailslot); if (lpMaxMessageSize) *lpMaxMessageSize = (DWORD)NULL; if (lpNextSize) *lpNextSize = (DWORD)NULL; if (lpMessageCount) *lpMessageCount = (DWORD)NULL; if (lpReadTimeout) *lpReadTimeout = (DWORD)NULL; return TRUE; } /****************************************************************************** * GetCompressedFileSizeA [KERNEL32.@] * * NOTES * This should call the W function below */ DWORD WINAPI GetCompressedFileSizeA( LPCSTR lpFileName, LPDWORD lpFileSizeHigh) { FIXME("(...): stub\n"); return 0xffffffff; } /****************************************************************************** * GetCompressedFileSizeW [KERNEL32.@] * * RETURNS * Success: Low-order doubleword of number of bytes * Failure: 0xffffffff */ DWORD WINAPI GetCompressedFileSizeW( LPCWSTR lpFileName, /* [in] Pointer to name of file */ LPDWORD lpFileSizeHigh) /* [out] Receives high-order doubleword of size */ { FIXME("(%s,%p): stub\n",debugstr_w(lpFileName),lpFileSizeHigh); return 0xffffffff; } /****************************************************************************** * CreateIoCompletionPort (KERNEL32.@) */ HANDLE WINAPI CreateIoCompletionPort(HANDLE hFileHandle, HANDLE hExistingCompletionPort, DWORD dwCompletionKey, DWORD dwNumberOfConcurrentThreads) { FIXME("(%p, %p, %08lx, %08lx): stub.\n", hFileHandle, hExistingCompletionPort, dwCompletionKey, dwNumberOfConcurrentThreads); return NULL; } /****************************************************************************** * GetQueuedCompletionStatus (KERNEL32.@) */ BOOL WINAPI GetQueuedCompletionStatus( HANDLE CompletionPort, LPDWORD lpNumberOfBytesTransferred, LPDWORD lpCompletionKey, LPOVERLAPPED *lpOverlapped, DWORD dwMilliseconds ) { FIXME("(%p,%p,%p,%p,%ld), stub!\n",CompletionPort,lpNumberOfBytesTransferred,lpCompletionKey,lpOverlapped,dwMilliseconds); SetLastError(ERROR_CALL_NOT_IMPLEMENTED); return FALSE; } /****************************************************************************** * GetDevicePowerState (KERNEL32.@) */ BOOL WINAPI GetDevicePowerState(HANDLE hDevice, BOOL* pfOn) { FIXME("(hDevice %p pfOn %p): stub\n", hDevice, pfOn); return TRUE; /* no information */ } /*********************************************************************** * Beep (KERNEL32.@) */ BOOL WINAPI Beep( DWORD dwFreq, DWORD dwDur ) { static const char beep = '\a'; /* dwFreq and dwDur are ignored by Win95 */ if (isatty(2)) write( 2, &beep, 1 ); return TRUE; }