mirror of
https://github.com/aseprite/aseprite.git
synced 2025-04-10 03:44:16 +00:00
68 lines
1.9 KiB
C++
68 lines
1.9 KiB
C++
// SHE library
|
|
// Copyright (C) 2017 David Capello
|
|
//
|
|
// This file is released under the terms of the MIT license.
|
|
// Read LICENSE.txt for more information.
|
|
|
|
#ifdef HAVE_CONFIG_H
|
|
#include "config.h"
|
|
#endif
|
|
|
|
#include "she/win/winapi.h"
|
|
|
|
namespace she {
|
|
|
|
#define GET_PROC(dll, name) \
|
|
name = base::get_dll_proc<name##_Func>(dll, #name)
|
|
|
|
WinAPI::WinAPI()
|
|
: EnableMouseInPointer(nullptr)
|
|
, IsMouseInPointerEnabled(nullptr)
|
|
, GetPointerInfo(nullptr)
|
|
, GetPointerPenInfo(nullptr)
|
|
, CreateInteractionContext(nullptr)
|
|
, DestroyInteractionContext(nullptr)
|
|
, StopInteractionContext(nullptr)
|
|
, RegisterOutputCallbackInteractionContext(nullptr)
|
|
, AddPointerInteractionContext(nullptr)
|
|
, RemovePointerInteractionContext(nullptr)
|
|
, SetInteractionConfigurationInteractionContext(nullptr)
|
|
, ProcessPointerFramesInteractionContext(nullptr)
|
|
, m_user32(nullptr)
|
|
, m_ninput(nullptr)
|
|
{
|
|
m_user32 = base::load_dll("user32.dll");
|
|
m_ninput = base::load_dll("ninput.dll");
|
|
if (m_user32) {
|
|
GET_PROC(m_user32, EnableMouseInPointer);
|
|
GET_PROC(m_user32, IsMouseInPointerEnabled);
|
|
GET_PROC(m_user32, GetPointerInfo);
|
|
GET_PROC(m_user32, GetPointerPenInfo);
|
|
}
|
|
if (m_ninput) {
|
|
GET_PROC(m_ninput, CreateInteractionContext);
|
|
GET_PROC(m_ninput, DestroyInteractionContext);
|
|
GET_PROC(m_ninput, StopInteractionContext);
|
|
GET_PROC(m_ninput, RegisterOutputCallbackInteractionContext);
|
|
GET_PROC(m_ninput, AddPointerInteractionContext);
|
|
GET_PROC(m_ninput, RemovePointerInteractionContext);
|
|
GET_PROC(m_ninput, SetInteractionConfigurationInteractionContext);
|
|
GET_PROC(m_ninput, SetPropertyInteractionContext);
|
|
GET_PROC(m_ninput, ProcessPointerFramesInteractionContext);
|
|
}
|
|
}
|
|
|
|
WinAPI::~WinAPI()
|
|
{
|
|
if (m_user32) {
|
|
base::unload_dll(m_user32);
|
|
m_user32 = nullptr;
|
|
}
|
|
if (m_ninput) {
|
|
base::unload_dll(m_ninput);
|
|
m_ninput = nullptr;
|
|
}
|
|
}
|
|
|
|
} // namespace she
|