| /* |
| * Stopwatch Functions |
| * |
| * Copyright 2004 Jon Griffiths |
| * |
| * 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 |
| * |
| * NOTES |
| * These functions probably never need to be implemented unless we |
| * A) Rewrite explorer from scratch, and |
| * B) Want to use a substandard API to tune its performance. |
| */ |
| |
| #include "config.h" |
| #include "wine/port.h" |
| |
| #include <stdarg.h> |
| #include <string.h> |
| #include <stdlib.h> |
| |
| #define NONAMELESSUNION |
| #define NONAMELESSSTRUCT |
| #include "windef.h" |
| #include "winbase.h" |
| #include "winreg.h" |
| #include "winternl.h" |
| #include "wine/debug.h" |
| |
| WINE_DEFAULT_DEBUG_CHANNEL(shell); |
| |
| /************************************************************************* |
| * @ [SHLWAPI.241] |
| * |
| * Get the current performance monitoring mode. |
| * |
| * PARAMS |
| * None. |
| * |
| * RETURNS |
| * The current performance monitoring mode. This is zero if monitoring |
| * is disabled (the default). |
| * |
| * NOTES |
| * If this function returns 0, no further StopWatch functions should be called. |
| */ |
| DWORD WINAPI StopWatchMode() |
| { |
| FIXME("() stub!\n"); |
| return 0; |
| } |
| |
| /************************************************************************* |
| * @ [SHLWAPI.242] |
| * |
| * Write captured performance nodes to a log file. |
| * |
| * PARAMS |
| * None. |
| * |
| * RETURNS |
| * Nothing. |
| */ |
| void WINAPI StopWatchFlush() |
| { |
| FIXME("() stub!\n"); |
| } |
| |
| /************************************************************************* |
| * @ [SHLWAPI.244] |
| * |
| * Write a performance event to a log file |
| * |
| * PARAMS |
| * dwClass [I] Class of event |
| * lpszStr [I] Text of event to log |
| * dwUnknown [I] Unknown |
| * dwMode [I] Mode flags |
| * dwTimeStamp [I] Timestamp |
| * |
| * RETURNS |
| * Success: ERROR_SUCCESS. |
| * Failure: A standard Win32 error code indicating the failure. |
| */ |
| DWORD WINAPI StopWatchW(DWORD dwClass, LPCWSTR lpszStr, DWORD dwUnknown, |
| DWORD dwMode, DWORD dwTimeStamp) |
| { |
| FIXME("(%ld,%s,%ld,%ld,%ld) stub!\n", dwClass, debugstr_w(lpszStr), |
| dwUnknown, dwMode, dwTimeStamp); |
| return ERROR_SUCCESS; |
| } |
| |
| /************************************************************************* |
| * @ [SHLWAPI.243] |
| * |
| * See StopWatchW. |
| */ |
| DWORD WINAPI StopWatchA(DWORD dwClass, LPCSTR lpszStr, DWORD dwUnknown, |
| DWORD dwMode, DWORD dwTimeStamp) |
| { DWORD retval; |
| UNICODE_STRING szStrW; |
| |
| if(lpszStr) RtlCreateUnicodeStringFromAsciiz(&szStrW, lpszStr); |
| else szStrW.Buffer = NULL; |
| |
| retval = StopWatchW(dwClass, szStrW.Buffer, dwUnknown, dwMode, dwTimeStamp); |
| |
| RtlFreeUnicodeString(&szStrW); |
| return retval; |
| } |
| |
| /************************************************************************* |
| * @ [SHLWAPI.245] |
| * |
| * Log a shell frame event. |
| * |
| * PARAMS |
| * hWnd [I] Window having the event |
| * pvUnknown1 [I] Unknown |
| * bUnknown2 [I] Unknown |
| * pClassWnd [I] Window of class to log |
| * |
| * RETURNS |
| * Nothing. |
| */ |
| void WINAPI StopWatch_TimerHandler(HWND hWnd, PVOID pvUnknown1, BOOL bUnknown2, HWND *pClassWnd) |
| { |
| FIXME("(%p,%p,%d,%p) stub!\n", hWnd, pvUnknown1, bUnknown2 ,pClassWnd); |
| } |
| |
| /* FIXME: Parameters for @246:StopWatch_CheckMsg unknown */ |
| |
| /************************************************************************* |
| * @ [SHLWAPI.247] |
| * |
| * Log the start of an applet. |
| * |
| * PARAMS |
| * lpszName [I] Name of the applet |
| * |
| * RETURNS |
| * Nothing. |
| */ |
| void WINAPI StopWatch_MarkFrameStart(LPCSTR lpszName) |
| { |
| FIXME("(%s) stub!\n", debugstr_a(lpszName)); |
| } |
| |
| /* FIXME: Parameters for @248:StopWatch_MarkSameFrameStart unknown */ |
| |
| /************************************************************************* |
| * @ [SHLWAPI.249] |
| * |
| * Log a java applet stopping. |
| * |
| * PARAMS |
| * lpszEvent [I] Name of the event (applet) |
| * hWnd [I] Window running the applet |
| * dwReserved [I] Unused |
| * |
| * RETURNS |
| * Nothing. |
| */ |
| void WINAPI StopWatch_MarkJavaStop(LPCWSTR lpszEvent, HWND hWnd, DWORD dwReserved) |
| { |
| FIXME("(%s,%p,0x%08lx) stub!\n", debugstr_w(lpszEvent), hWnd, dwReserved); |
| } |
| |
| /************************************************************************* |
| * @ [SHLWAPI.250] |
| * |
| * Read the performance counter. |
| * |
| * PARAMS |
| * None. |
| * |
| * RETURNS |
| * The low 32 bits of the current performance counter reading. |
| */ |
| DWORD WINAPI GetPerfTime() |
| { |
| static LONG64 iCounterFreq = 0; |
| LARGE_INTEGER iCounter; |
| |
| TRACE("()\n"); |
| |
| if (!iCounterFreq) |
| QueryPerformanceFrequency((LARGE_INTEGER*)&iCounterFreq); |
| |
| QueryPerformanceCounter(&iCounter); |
| iCounter.QuadPart = iCounter.QuadPart * 1000 / iCounterFreq; |
| return iCounter.u.LowPart; |
| } |
| |
| /* FIXME: Parameters for @251:StopWatch_DispatchTime unknown */ |
| |
| /************************************************************************* |
| * @ [SHLWAPI.252] |
| * |
| * Set an as yet unidentified performance value. |
| * |
| * PARAMS |
| * dwUnknown [I] Value to set |
| * |
| * RETURNS |
| * dwUnknown. |
| */ |
| DWORD WINAPI StopWatch_SetMsgLastLocation(DWORD dwUnknown) |
| { |
| FIXME("(%ld) stub!\n", dwUnknown); |
| |
| return dwUnknown; |
| } |
| |
| /* FIXME: Parameters for @253:StopWatchExA, 254:StopWatchExW unknown */ |