#pragma once

#include <Windows.h>

namespace RawInputMouse
{

struct Data
{
    HANDLE DeviceHandle;
    USHORT Flags;
    LONG DeltaX, DeltaY;
    short WheelDelta;
};

void Initialize();
void WmInput(WPARAM wParam, LPARAM lParam);

size_t GetCount();
const Data& GetData(size_t index);
void Reset(size_t index);
void ResetAll();

} // namespace RawInputMouse

/*
Flags:
    RI_MOUSE_LEFT_BUTTON_DOWN 
    RI_MOUSE_LEFT_BUTTON_UP 
    RI_MOUSE_MIDDLE_BUTTON_DOWN 
    RI_MOUSE_MIDDLE_BUTTON_UP 
    RI_MOUSE_RIGHT_BUTTON_DOWN 
    RI_MOUSE_RIGHT_BUTTON_UP 
    RI_MOUSE_BUTTON_1_DOWN 
    RI_MOUSE_BUTTON_1_UP 
    RI_MOUSE_BUTTON_2_DOWN 
    RI_MOUSE_BUTTON_2_UP 
    RI_MOUSE_BUTTON_3_DOWN 
    RI_MOUSE_BUTTON_3_UP 
    RI_MOUSE_BUTTON_4_DOWN 
    RI_MOUSE_BUTTON_4_UP 
    RI_MOUSE_BUTTON_5_DOWN 
    RI_MOUSE_BUTTON_5_UP 
    RI_MOUSE_WHEEL
*/
