1 // Copyright (c) 2015 The Chromium Embedded Framework Authors. All rights 2 // reserved. Use of this source code is governed by a BSD-style license that 3 // can be found in the LICENSE file. 4 5 #ifndef CEF_TESTS_SHARED_BROWSER_UTIL_WIN_H_ 6 #define CEF_TESTS_SHARED_BROWSER_UTIL_WIN_H_ 7 #pragma once 8 9 #include <windows.h> 10 #include <string> 11 12 #include "include/internal/cef_types_wrappers.h" 13 14 namespace client { 15 16 // Returns the current time in microseconds. 17 uint64_t GetTimeNow(); 18 19 // Set the window's user data pointer. 20 void SetUserDataPtr(HWND hWnd, void* ptr); 21 22 // Return the window's user data pointer. 23 template <typename T> GetUserDataPtr(HWND hWnd)24T GetUserDataPtr(HWND hWnd) { 25 return reinterpret_cast<T>(GetWindowLongPtr(hWnd, GWLP_USERDATA)); 26 } 27 28 // Set the window's window procedure pointer and return the old value. 29 WNDPROC SetWndProcPtr(HWND hWnd, WNDPROC wndProc); 30 31 // Return the resource string with the specified id. 32 std::wstring GetResourceString(UINT id); 33 34 int GetCefMouseModifiers(WPARAM wparam); 35 int GetCefKeyboardModifiers(WPARAM wparam, LPARAM lparam); 36 bool IsKeyDown(WPARAM wparam); 37 38 // Returns the device scale factor. For example, 200% display scaling will 39 // return 2.0. 40 float GetDeviceScaleFactor(); 41 42 } // namespace client 43 44 #endif // CEF_TESTS_SHARED_BROWSER_UTIL_WIN_H_ 45