| Index: chrome/browser/fullscreen_win.cc
|
| ===================================================================
|
| --- chrome/browser/fullscreen_win.cc (revision 72554)
|
| +++ chrome/browser/fullscreen_win.cc (working copy)
|
| @@ -7,8 +7,43 @@
|
| #include <windows.h>
|
| #include <shellapi.h>
|
|
|
| +#include "base/logging.h"
|
| +#include "base/sys_info.h"
|
| +
|
| static bool IsPlatformFullScreenMode() {
|
| + // SHQueryUserNotificationState is only available for Vista and above.
|
| +#if defined(NTDDI_VERSION) && (NTDDI_VERSION >= NTDDI_VISTA)
|
| + int32 major_version, minor_version, fix_version;
|
| + base::SysInfo::OperatingSystemVersionNumbers(&major_version,
|
| + &minor_version,
|
| + &fix_version);
|
| + if (major_version < 6)
|
| + return false;
|
| +
|
| + typedef HRESULT(WINAPI *SHQueryUserNotificationStatePtr)(
|
| + QUERY_USER_NOTIFICATION_STATE* state);
|
| +
|
| + HMODULE shell32_base = ::GetModuleHandle(L"shell32.dll");
|
| + if (!shell32_base) {
|
| + NOTREACHED();
|
| + return false;
|
| + }
|
| + SHQueryUserNotificationStatePtr query_user_notification_state_ptr =
|
| + reinterpret_cast<SHQueryUserNotificationStatePtr>
|
| + (::GetProcAddress(shell32_base, "SHQueryUserNotificationState"));
|
| + if (!query_user_notification_state_ptr) {
|
| + NOTREACHED();
|
| + return false;
|
| + }
|
| +
|
| + QUERY_USER_NOTIFICATION_STATE state;
|
| + if (FAILED((*query_user_notification_state_ptr)(&state)))
|
| + return false;
|
| + return state == QUNS_RUNNING_D3D_FULL_SCREEN ||
|
| + state == QUNS_PRESENTATION_MODE;
|
| +#else
|
| return false;
|
| +#endif
|
| }
|
|
|
| static bool IsFullScreenWindowMode() {
|
|
|