gecko-dev/widget/windows/nsdefs.h
Mike Hommey f047620639 Bug 1766561 - Use proper formatting directives for LPARAM and WPARAM. r=Jamie,rkraesig
Unfortunately, while with MSVC one would use the `I` modifier to format
LPARAM/LONG_PTR, it doesn't work with clang-cl on 32-bits, because
LONG_PTR there is long, but `I` expects an int.

Differential Revision: https://phabricator.services.mozilla.com/D144916
2022-05-03 20:49:08 +00:00

59 lines
1.6 KiB
C

/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#ifndef NSDEFS_H
#define NSDEFS_H
#include <windows.h>
#ifdef _DEBUG
# define BREAK_TO_DEBUGGER DebugBreak()
#else
# define BREAK_TO_DEBUGGER
#endif
#ifdef _DEBUG
# define VERIFY(exp) \
if (!(exp)) { \
GetLastError(); \
BREAK_TO_DEBUGGER; \
}
#else // !_DEBUG
# define VERIFY(exp) (exp)
#endif // !_DEBUG
// inttypes.h-like macro for LONG_PTR/LPARAM formatting.
#ifdef HAVE_64BIT_BUILD
# define PRIdLPTR "lld"
# define PRIxLPTR "llx"
# define PRIXLPTR "llX"
#else
# define PRIdLPTR "ld"
# define PRIxLPTR "lx"
# define PRIXLPTR "lX"
#endif
// Win32 logging modules:
// nsWindow, nsSound, and nsClipboard
//
// Logging can be changed at runtime without recompiling in the General
// property page of Visual Studio under the "Environment" property.
//
// Two variables are of importance to be set:
// MOZ_LOG and MOZ_LOG_FILE
//
// MOZ_LOG:
// MOZ_LOG=all:5 (To log everything completely)
// MOZ_LOG=nsWindow:5,nsSound:5,nsClipboard:5
// (To log windows widget stuff)
// MOZ_LOG= (To turn off logging)
//
// MOZ_LOG_FILE:
// MOZ_LOG_FILE=C:\log.txt (To a file on disk)
// MOZ_LOG_FILE=WinDebug (To the debug window)
// MOZ_LOG_FILE= (To stdout/stderr)
#endif // NSDEFS_H