/home/ktietz/out/0002-New-header-gpio.h.txt
new Windows GUIDs ...
/home/ktietz/out/0003-Update-shared-headers-for-DDK-for-winapi-family-check-.txt
New file hidclass.h and updated other hid*.h headers for
winapi-family check and Win7/8 support
/home/ktietz/out/0004-Add-monitor-configuration-API.txt
New monitor-configuration-API
Ok for apply?
Regards,
Kai
From 52de18df9cf985b821f75c1b258136c3c8d2d178 Mon Sep 17 00:00:00 2001
From: Kai Tietz <ktiet...@googlemail.com>
Date: Fri, 29 Aug 2014 14:43:51 +0200
Subject: New header gpio.h
---
mingw-w64-headers/include/gpio.h | 20 ++++++++++++++++++++
1 files changed, 20 insertions(+), 0 deletions(-)
create mode 100644 mingw-w64-headers/include/gpio.h
diff --git a/mingw-w64-headers/include/gpio.h b/mingw-w64-headers/include/gpio.h
new file mode 100644
index 0000000..22ecf28
--- /dev/null
+++ b/mingw-w64-headers/include/gpio.h
@@ -0,0 +1,20 @@
+/**
+ * This file is part of the mingw-w64 runtime package.
+ * No warranty is given; refer to the file DISCLAIMER within this package.
+ */
+
+#ifndef __GPIO_W__
+#define __GPIO_W__
+
+#include <winapifamily.h>
+
+#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
+
+#if NTDDI_VERSION >= 0x06020000
+#define IOCTL_GPIO_READ_PINS CTL_CODE (FILE_DEVICE_GPIO, 0x0, METHOD_BUFFERED,
FILE_ANY_ACCESS)
+#define IOCTL_GPIO_WRITE_PINS CTL_CODE (FILE_DEVICE_GPIO, 0x1,
METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_GPIO_CONTROLLER_SPECIFIC_FUNCTION CTL_CODE (FILE_DEVICE_GPIO,
0x2, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#endif
+
+#endif
+#endif
--
1.7.9
From 509d31de1e3549560da0b17671ecfe00146f8819 Mon Sep 17 00:00:00 2001
From: Kai Tietz <ktiet...@googlemail.com>
Date: Fri, 29 Aug 2014 15:41:57 +0200
Subject: =?UTF-8?q?Update=20shared=20headers=20for=20DDK=20for=20winapi-fami?=
=?UTF-8?q?ly=20check,=20Win=207&8=20extensions,=0Aand=20do=20some=20code-re?=
=?UTF-8?q?ordering.?=
---
mingw-w64-headers/include/hidclass.h | 118 ++++++
mingw-w64-headers/include/hidpi.h | 773 ++++++++++------------------------
mingw-w64-headers/include/hidsdi.h | 69 ++--
mingw-w64-headers/include/hidusage.h | 374 +++++++++--------
4 files changed, 570 insertions(+), 764 deletions(-)
create mode 100644 mingw-w64-headers/include/hidclass.h
diff --git a/mingw-w64-headers/include/hidclass.h
b/mingw-w64-headers/include/hidclass.h
new file mode 100644
index 0000000..7d2966a
--- /dev/null
+++ b/mingw-w64-headers/include/hidclass.h
@@ -0,0 +1,118 @@
+/**
+ * This file is part of the mingw-w64 runtime package.
+ * No warranty is given; refer to the file DISCLAIMER within this package.
+ */
+
+#include <winapifamily.h>
+#include <basetyps.h>
+
+#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
+#define GUID_CLASS_INPUT GUID_DEVINTERFACE_HID
+
+DEFINE_GUID (GUID_DEVINTERFACE_HID, __MSABI_LONG (0x4d1e55b2), 0xf16f, 0x11cf,
0x88, 0xcb, 0x00, 0x11, 0x11, 0x00, 0x00, 0x30);
+DEFINE_GUID (GUID_HID_INTERFACE_NOTIFY, __MSABI_LONG (0x2c4e2e88), 0x25e6,
0x4c33, 0x88, 0x2f, 0x3d, 0x82, 0xe6, 0x07, 0x36, 0x81);
+DEFINE_GUID (GUID_HID_INTERFACE_HIDPARSE, 0xf5c315a5, 0x69ac, 0x4bc2, 0x92,
0x79, 0xd0, 0xb6, 0x45, 0x76, 0xf4, 0x4b);
+#endif
+
+#ifndef __HIDCLASS_H__
+#define __HIDCLASS_H__
+
+#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
+
+#define GUID_CLASS_INPUT_STR "4D1E55B2-F16F-11CF-88CB-001111000030"
+
+#define HID_REVISION 0x00000001
+
+#define HID_CTL_CODE(id) CTL_CODE (FILE_DEVICE_KEYBOARD,(id), METHOD_NEITHER,
FILE_ANY_ACCESS)
+#define HID_BUFFER_CTL_CODE(id) CTL_CODE (FILE_DEVICE_KEYBOARD,(id),
METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define HID_IN_CTL_CODE(id) CTL_CODE (FILE_DEVICE_KEYBOARD,(id),
METHOD_IN_DIRECT, FILE_ANY_ACCESS)
+#define HID_OUT_CTL_CODE(id) CTL_CODE (FILE_DEVICE_KEYBOARD,(id),
METHOD_OUT_DIRECT, FILE_ANY_ACCESS)
+
+#define IOCTL_HID_GET_DRIVER_CONFIG HID_BUFFER_CTL_CODE (100)
+#define IOCTL_HID_SET_DRIVER_CONFIG HID_BUFFER_CTL_CODE (101)
+#define IOCTL_HID_GET_POLL_FREQUENCY_MSEC HID_BUFFER_CTL_CODE (102)
+#define IOCTL_HID_SET_POLL_FREQUENCY_MSEC HID_BUFFER_CTL_CODE (103)
+#define IOCTL_GET_NUM_DEVICE_INPUT_BUFFERS HID_BUFFER_CTL_CODE (104)
+#define IOCTL_SET_NUM_DEVICE_INPUT_BUFFERS HID_BUFFER_CTL_CODE (105)
+#define IOCTL_HID_GET_COLLECTION_INFORMATION HID_BUFFER_CTL_CODE (106)
+
+#define IOCTL_HID_GET_COLLECTION_DESCRIPTOR HID_CTL_CODE (100)
+#define IOCTL_HID_FLUSH_QUEUE HID_CTL_CODE (101)
+#define IOCTL_HID_SET_FEATURE HID_IN_CTL_CODE (100)
+#define IOCTL_HID_SET_OUTPUT_REPORT HID_IN_CTL_CODE (101)
+#define IOCTL_HID_GET_FEATURE HID_OUT_CTL_CODE (100)
+#define IOCTL_GET_PHYSICAL_DESCRIPTOR HID_OUT_CTL_CODE (102)
+#define IOCTL_HID_GET_HARDWARE_ID HID_OUT_CTL_CODE (103)
+#define IOCTL_HID_GET_INPUT_REPORT HID_OUT_CTL_CODE (104)
+#define IOCTL_HID_GET_MANUFACTURER_STRING HID_OUT_CTL_CODE (110)
+#define IOCTL_HID_GET_PRODUCT_STRING HID_OUT_CTL_CODE (111)
+#define IOCTL_HID_GET_SERIALNUMBER_STRING HID_OUT_CTL_CODE (112)
+#define IOCTL_HID_GET_INDEXED_STRING HID_OUT_CTL_CODE (120)
+#define IOCTL_HID_GET_MS_GENRE_DESCRIPTOR HID_OUT_CTL_CODE (121)
+#define IOCTL_HID_ENABLE_SECURE_READ HID_CTL_CODE (130)
+#define IOCTL_HID_DISABLE_SECURE_READ HID_CTL_CODE (131)
+
+typedef struct _HID_XFER_PACKET {
+ PUCHAR reportBuffer;
+ ULONG reportBufferLen;
+ UCHAR reportId;
+} HID_XFER_PACKET,*PHID_XFER_PACKET;
+
+#ifdef NT_INCLUDED
+enum DeviceObjectState {
+ DeviceObjectStarted,
+ DeviceObjectStopped,
+ DeviceObjectRemoved
+};
+
+typedef VOID (*PHID_STATUS_CHANGE) (PVOID Context, enum DeviceObjectState
State);
+
+typedef struct _HID_INTERFACE_NOTIFY_PNP {
+#ifdef __cplusplus
+ INTERFACE i;
+#else
+ /* inline instead. See miniport.h/wdm.h of ddk */
+ USHORT Size;
+ USHORT Version;
+ PVOID Context;
+ PINTERFACE_REFERENCE InterfaceReference;
+ PINTERFACE_DEREFERENCE InterfaceDereference;
+#endif
+ PHID_STATUS_CHANGE StatusChangeFn;
+ PVOID CallbackContext;
+} HID_INTERFACE_NOTIFY_PNP,*PHID_INTERFACE_NOTIFY_PNP;
+
+#ifdef __HIDPI_H__
+typedef NTSTATUS (__stdcall *PHIDP_GETCAPS) (PHIDP_PREPARSED_DATA
PreparsedData, PHIDP_CAPS Capabilities);
+
+typedef struct _HID_INTERFACE_HIDPARSE {
+#ifdef __cplusplus
+ INTERFACE i;
+#else
+ /* inline instead. See miniport.h/wdm.h of ddk */
+ USHORT Size;
+ USHORT Version;
+ PVOID Context;
+ PINTERFACE_REFERENCE InterfaceReference;
+ PINTERFACE_DEREFERENCE InterfaceDereference;
+#endif
+ PHIDP_GETCAPS HidpGetCaps;
+} HID_INTERFACE_HIDPARSE,*PHID_INTERFACE_HIDPARSE;
+#endif
+#endif
+
+typedef struct _HID_COLLECTION_INFORMATION {
+ ULONG DescriptorSize;
+ BOOLEAN Polled;
+ UCHAR Reserved1[1];
+ USHORT VendorID;
+ USHORT ProductID;
+ USHORT VersionNumber;
+} HID_COLLECTION_INFORMATION,*PHID_COLLECTION_INFORMATION;
+
+typedef struct _HID_DRIVER_CONFIG {
+ ULONG Size;
+ ULONG RingBufferSize;
+} HID_DRIVER_CONFIG,*PHID_DRIVER_CONFIG;
+#endif
+#endif
diff --git a/mingw-w64-headers/include/hidpi.h
b/mingw-w64-headers/include/hidpi.h
index dd2cefa..5054978 100644
--- a/mingw-w64-headers/include/hidpi.h
+++ b/mingw-w64-headers/include/hidpi.h
@@ -3,10 +3,11 @@
*
* Public Interface for HID parsing library.
*
- * This file is part of the w32api package.
+ * This file is part of the mingw-w64 package.
*
* Contributors:
* Created by Casper S. Hornstrup <cho...@users.sourceforge.net>
+ * Extended by Kai Tietz
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
@@ -20,587 +21,241 @@
*
*/
-#ifndef __HIDPI_H
-#define __HIDPI_H
+#include <winapifamily.h>
-#include "hidusage.h"
+#ifndef __HIDPI_H__
+#define __HIDPI_H__
-#ifdef __cplusplus
-extern "C" {
-#endif
+#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
-#if defined(_HIDPI_)
-# define HIDAPI
-#else
-# define HIDAPI DECLSPEC_IMPORT
-#endif
+#include <pshpack4.h>
-#if !defined (_NTDEF_) && !defined (_NTSTATUS_PSDK)
-#define _NTSTATUS_PSDK
- typedef LONG NTSTATUS,*PNTSTATUS;
-#endif
+#define HIDP_LINK_COLLECTION_ROOT ((USHORT) -1)
+#define HIDP_LINK_COLLECTION_UNSPECIFIED ((USHORT) 0)
-typedef PUCHAR PHIDP_REPORT_DESCRIPTOR;
-typedef struct _HIDP_PREPARSED_DATA * PHIDP_PREPARSED_DATA;
+#define HidP_IsSameUsageAndPage(u1, u2) ((*((PULONG) &u1)) == (*((PULONG)
&u2)))
+#define HidP_SetButtons(Rty, Up, Lco, ULi, ULe, Ppd, Rep, Rle) HidP_SetUsages
(Rty, Up, Lco, ULi, ULe, Ppd, Rep, Rle)
+#define HidP_UnsetButtons(Rty, Up, Lco, ULi, ULe, Ppd, Rep, Rle)
HidP_UnsetUsages (Rty, Up, Lco, ULi, ULe, Ppd, Rep, Rle)
+#define HidP_GetButtons(Rty, UPa, LCo, ULi, ULe, Ppd, Rep, RLe) HidP_GetUsages
(Rty, UPa, LCo, ULi, ULe, Ppd, Rep, RLe)
+#define HidP_GetButtonsEx(Rty, LCo, BLi, ULe, Ppd, Rep, RLe) HidP_GetUsagesEx
(Rty, LCo, BLi, ULe, Ppd, Rep, RLe)
-typedef struct _HIDP_UNKNOWN_TOKEN {
- UCHAR Token;
- UCHAR Reserved[3];
- ULONG BitField;
-} HIDP_UNKNOWN_TOKEN, *PHIDP_UNKNOWN_TOKEN;
-
-typedef enum _HIDP_KEYBOARD_DIRECTION {
- HidP_Keyboard_Break,
- HidP_Keyboard_Make
-} HIDP_KEYBOARD_DIRECTION;
-
-typedef struct _HIDP_KEYBOARD_MODIFIER_STATE {
- _ANONYMOUS_UNION union {
- _ANONYMOUS_STRUCT struct {
- ULONG LeftControl : 1;
- ULONG LeftShift : 1;
- ULONG LeftAlt : 1;
- ULONG LeftGUI : 1;
- ULONG RightControl : 1;
- ULONG RightShift : 1;
- ULONG RightAlt : 1;
- ULONG RigthGUI : 1;
- ULONG CapsLock : 1;
- ULONG ScollLock : 1;
- ULONG NumLock : 1;
- ULONG Reserved : 21;
- } DUMMYSTRUCTNAME;
- ULONG ul;
- } DUMMYUNIONNAME;
-} HIDP_KEYBOARD_MODIFIER_STATE, *PHIDP_KEYBOARD_MODIFIER_STATE;
+typedef PUCHAR PHIDP_REPORT_DESCRIPTOR;
+typedef struct _HIDP_PREPARSED_DATA *PHIDP_PREPARSED_DATA;
-typedef BOOLEAN (NTAPI *PHIDP_INSERT_SCANCODES)(
- PVOID Context,
- PCHAR NewScanCodes,
- ULONG Length);
+typedef enum _HIDP_REPORT_TYPE {
+ HidP_Input,
+ HidP_Output,
+ HidP_Feature
+} HIDP_REPORT_TYPE;
typedef struct _USAGE_AND_PAGE {
- USAGE Usage;
- USAGE UsagePage;
-} USAGE_AND_PAGE, *PUSAGE_AND_PAGE;
-
-typedef struct _HIDD_ATTRIBUTES {
- ULONG Size;
- USHORT VendorID;
- USHORT ProductID;
- USHORT VersionNumber;
-} HIDD_ATTRIBUTES, *PHIDD_ATTRIBUTES;
-
-typedef struct _HIDD_CONFIGURATION {
- PVOID cookie;
- ULONG size;
- ULONG RingBufferSize;
-} HIDD_CONFIGURATION, *PHIDD_CONFIGURATION;
-
-HIDAPI
-NTSTATUS
-NTAPI
-HidP_TranslateUsageAndPagesToI8042ScanCodes(
- PUSAGE_AND_PAGE ChangedUsageList,
- ULONG UsageListLength,
- HIDP_KEYBOARD_DIRECTION KeyAction,
- PHIDP_KEYBOARD_MODIFIER_STATE ModifierState,
- PHIDP_INSERT_SCANCODES InsertCodesProcedure,
- PVOID InsertCodesContext);
-
-HIDAPI
-NTSTATUS
-NTAPI
-HidP_TranslateUsagesToI8042ScanCodes(
- PUSAGE ChangedUsageList,
- ULONG UsageListLength,
- HIDP_KEYBOARD_DIRECTION KeyAction,
- PHIDP_KEYBOARD_MODIFIER_STATE ModifierState,
- PHIDP_INSERT_SCANCODES InsertCodesProcedure,
- PVOID InsertCodesContext);
+ USAGE Usage;
+ USAGE UsagePage;
+} USAGE_AND_PAGE,*PUSAGE_AND_PAGE;
typedef struct _HIDP_BUTTON_CAPS {
- USAGE UsagePage;
- UCHAR ReportID;
- BOOLEAN IsAlias;
- USHORT BitField;
- USHORT LinkCollection;
- USAGE LinkUsage;
- USAGE LinkUsagePage;
- BOOLEAN IsRange;
- BOOLEAN IsStringRange;
- BOOLEAN IsDesignatorRange;
- BOOLEAN IsAbsolute;
- ULONG Reserved[10];
- _ANONYMOUS_UNION union {
+ USAGE UsagePage;
+ UCHAR ReportID;
+ BOOLEAN IsAlias;
+ USHORT BitField;
+ USHORT LinkCollection;
+ USAGE LinkUsage;
+ USAGE LinkUsagePage;
+ BOOLEAN IsRange;
+ BOOLEAN IsStringRange;
+ BOOLEAN IsDesignatorRange;
+ BOOLEAN IsAbsolute;
+ ULONG Reserved[10];
+ __C89_NAMELESS union {
struct {
- USAGE UsageMin, UsageMax;
- USHORT StringMin, StringMax;
- USHORT DesignatorMin, DesignatorMax;
- USHORT DataIndexMin, DataIndexMax;
+ USAGE UsageMin, UsageMax;
+ USHORT StringMin, StringMax;
+ USHORT DesignatorMin, DesignatorMax;
+ USHORT DataIndexMin, DataIndexMax;
} Range;
- struct {
- USAGE Usage, Reserved1;
- USHORT StringIndex, Reserved2;
- USHORT DesignatorIndex, Reserved3;
- USHORT DataIndex, Reserved4;
+ struct {
+ USAGE Usage, Reserved1;
+ USHORT StringIndex, Reserved2;
+ USHORT DesignatorIndex, Reserved3;
+ USHORT DataIndex, Reserved4;
} NotRange;
- } DUMMYUNIONNAME;
-} HIDP_BUTTON_CAPS, *PHIDP_BUTTON_CAPS;
-
-typedef struct _HIDP_CAPS {
- USAGE Usage;
- USAGE UsagePage;
- USHORT InputReportByteLength;
- USHORT OutputReportByteLength;
- USHORT FeatureReportByteLength;
- USHORT Reserved[17];
- USHORT NumberLinkCollectionNodes;
- USHORT NumberInputButtonCaps;
- USHORT NumberInputValueCaps;
- USHORT NumberInputDataIndices;
- USHORT NumberOutputButtonCaps;
- USHORT NumberOutputValueCaps;
- USHORT NumberOutputDataIndices;
- USHORT NumberFeatureButtonCaps;
- USHORT NumberFeatureValueCaps;
- USHORT NumberFeatureDataIndices;
-} HIDP_CAPS, *PHIDP_CAPS;
-
-typedef struct _HIDP_DATA {
- USHORT DataIndex;
- USHORT Reserved;
- _ANONYMOUS_UNION union {
- ULONG RawValue;
- BOOLEAN On;
- } DUMMYUNIONNAME;
-} HIDP_DATA, *PHIDP_DATA;
-
-typedef struct _HIDP_EXTENDED_ATTRIBUTES {
- UCHAR NumGlobalUnknowns;
- UCHAR Reserved[3];
- PHIDP_UNKNOWN_TOKEN GlobalUnknowns;
- ULONG Data[1];
-} HIDP_EXTENDED_ATTRIBUTES, *PHIDP_EXTENDED_ATTRIBUTES;
-
-#define HIDP_LINK_COLLECTION_ROOT ((USHORT) -1)
-#define HIDP_LINK_COLLECTION_UNSPECIFIED ((USHORT) 0)
-
-typedef struct _HIDP_LINK_COLLECTION_NODE {
- USAGE LinkUsage;
- USAGE LinkUsagePage;
- USHORT Parent;
- USHORT NumberOfChildren;
- USHORT NextSibling;
- USHORT FirstChild;
- ULONG CollectionType: 8;
- ULONG IsAlias: 1;
- ULONG Reserved: 23;
- PVOID UserContext;
-} HIDP_LINK_COLLECTION_NODE, *PHIDP_LINK_COLLECTION_NODE;
+ };
+} HIDP_BUTTON_CAPS,*PHIDP_BUTTON_CAPS;
typedef struct _HIDP_VALUE_CAPS {
- USAGE UsagePage;
- UCHAR ReportID;
- BOOLEAN IsAlias;
- USHORT BitField;
- USHORT LinkCollection;
- USAGE LinkUsage;
- USAGE LinkUsagePage;
- BOOLEAN IsRange;
- BOOLEAN IsStringRange;
- BOOLEAN IsDesignatorRange;
- BOOLEAN IsAbsolute;
- BOOLEAN HasNull;
- UCHAR Reserved;
- USHORT BitSize;
- USHORT ReportCount;
- USHORT Reserved2[5];
- ULONG UnitsExp;
- ULONG Units;
- LONG LogicalMin, LogicalMax;
- LONG PhysicalMin, PhysicalMax;
- _ANONYMOUS_UNION union {
- struct {
- USAGE UsageMin, UsageMax;
- USHORT StringMin, StringMax;
- USHORT DesignatorMin, DesignatorMax;
- USHORT DataIndexMin, DataIndexMax;
- } Range;
- struct {
- USAGE Usage, Reserved1;
- USHORT StringIndex, Reserved2;
- USHORT DesignatorIndex, Reserved3;
- USHORT DataIndex, Reserved4;
- } NotRange;
- } DUMMYUNIONNAME;
-} HIDP_VALUE_CAPS, *PHIDP_VALUE_CAPS;
-
-typedef enum _HIDP_REPORT_TYPE {
- HidP_Input,
- HidP_Output,
- HidP_Feature
-} HIDP_REPORT_TYPE;
-
-#define FACILITY_HID_ERROR_CODE 0x11
-
-#define HIDP_ERROR_CODES(SEV, CODE) \
- ((NTSTATUS) (((SEV) << 28) | (FACILITY_HID_ERROR_CODE << 16) | (CODE)))
-
-#define HIDP_STATUS_SUCCESS (HIDP_ERROR_CODES(0x0, 0))
-#define HIDP_STATUS_NULL (HIDP_ERROR_CODES(0x8, 1))
-#define HIDP_STATUS_INVALID_PREPARSED_DATA (HIDP_ERROR_CODES(0xC, 1))
-#define HIDP_STATUS_INVALID_REPORT_TYPE (HIDP_ERROR_CODES(0xC, 2))
-#define HIDP_STATUS_INVALID_REPORT_LENGTH (HIDP_ERROR_CODES(0xC, 3))
-#define HIDP_STATUS_USAGE_NOT_FOUND (HIDP_ERROR_CODES(0xC, 4))
-#define HIDP_STATUS_VALUE_OUT_OF_RANGE (HIDP_ERROR_CODES(0xC, 5))
-#define HIDP_STATUS_BAD_LOG_PHY_VALUES (HIDP_ERROR_CODES(0xC, 6))
-#define HIDP_STATUS_BUFFER_TOO_SMALL (HIDP_ERROR_CODES(0xC, 7))
-#define HIDP_STATUS_INTERNAL_ERROR (HIDP_ERROR_CODES(0xC, 8))
-#define HIDP_STATUS_I8042_TRANS_UNKNOWN (HIDP_ERROR_CODES(0xC, 9))
-#define HIDP_STATUS_INCOMPATIBLE_REPORT_ID (HIDP_ERROR_CODES(0xC, 0xA))
-#define HIDP_STATUS_NOT_VALUE_ARRAY (HIDP_ERROR_CODES(0xC, 0xB))
-#define HIDP_STATUS_IS_VALUE_ARRAY (HIDP_ERROR_CODES(0xC, 0xC))
-#define HIDP_STATUS_DATA_INDEX_NOT_FOUND (HIDP_ERROR_CODES(0xC, 0xD))
-#define HIDP_STATUS_DATA_INDEX_OUT_OF_RANGE (HIDP_ERROR_CODES(0xC, 0xE))
-#define HIDP_STATUS_BUTTON_NOT_PRESSED (HIDP_ERROR_CODES(0xC, 0xF))
-#define HIDP_STATUS_REPORT_DOES_NOT_EXIST (HIDP_ERROR_CODES(0xC, 0x10))
-#define HIDP_STATUS_NOT_IMPLEMENTED (HIDP_ERROR_CODES(0xC, 0x20))
-#define HIDP_STATUS_I8242_TRANS_UNKNOWN HIDP_STATUS_I8042_TRANS_UNKNOWN
-
-
-NTSTATUS HidP_GetButtonCaps(
- HIDP_REPORT_TYPE ReportType,
- PHIDP_BUTTON_CAPS ButtonCaps,
- PUSHORT ButtonCapsLength,
- PHIDP_PREPARSED_DATA PreparsedData);
-
-HIDAPI
-NTSTATUS
-NTAPI
-HidP_GetCaps(
- PHIDP_PREPARSED_DATA PreparsedData,
- PHIDP_CAPS Capabilities);
-
-HIDAPI
-NTSTATUS
-NTAPI
-HidP_GetData(
- HIDP_REPORT_TYPE ReportType,
- PHIDP_DATA DataList,
- PULONG DataLength,
- PHIDP_PREPARSED_DATA PreparsedData,
- PCHAR Report,
- ULONG ReportLength);
-
-HIDAPI
-NTSTATUS
-NTAPI
-HidP_GetExtendedAttributes(
- HIDP_REPORT_TYPE ReportType,
- USHORT DataIndex,
- PHIDP_PREPARSED_DATA PreparsedData,
- PHIDP_EXTENDED_ATTRIBUTES Attributes,
- PULONG LengthAttributes);
-
-HIDAPI
-NTSTATUS
-NTAPI
-HidP_GetLinkCollectionNodes(
- PHIDP_LINK_COLLECTION_NODE LinkCollectionNodes,
- PULONG LinkCollectionNodesLength,
- PHIDP_PREPARSED_DATA PreparsedData);
-
-HIDAPI
-NTSTATUS
-NTAPI
-HidP_GetScaledUsageValue(
- HIDP_REPORT_TYPE ReportType,
- USAGE UsagePage,
- USHORT LinkCollection,
- USAGE Usage,
- PLONG UsageValue,
- PHIDP_PREPARSED_DATA PreparsedData,
- PCHAR Report,
- ULONG ReportLength);
-
-HIDAPI
-NTSTATUS
-NTAPI
-HidP_GetSpecificButtonCaps(
- HIDP_REPORT_TYPE ReportType,
- USAGE UsagePage,
- USHORT LinkCollection,
- USAGE Usage,
- PHIDP_BUTTON_CAPS ButtonCaps,
- PUSHORT ButtonCapsLength,
- PHIDP_PREPARSED_DATA PreparsedData);
-
-HIDAPI
-NTSTATUS
-NTAPI
-HidP_GetSpecificValueCaps(
- HIDP_REPORT_TYPE ReportType,
- USAGE UsagePage,
- USHORT LinkCollection,
- USAGE Usage,
- PHIDP_VALUE_CAPS ValueCaps,
- PUSHORT ValueCapsLength,
- PHIDP_PREPARSED_DATA PreparsedData);
-
-#define HidP_GetButtons(Rty, UPa, LCo, ULi, ULe, Ppd, Rep, RLe) \
- HidP_GetUsages(Rty, UPa, LCo, ULi, ULe, Ppd, Rep, RLe)
-
-HIDAPI
-NTSTATUS
-NTAPI
-HidP_GetUsages(
- HIDP_REPORT_TYPE ReportType,
- USAGE UsagePage,
- USHORT LinkCollection,
- USAGE *UsageList,
- ULONG *UsageLength,
- PHIDP_PREPARSED_DATA PreparsedData,
- PCHAR Report,
- ULONG ReportLength);
-
-#define HidP_GetButtonsEx(RT, LC, BL, UL, PD, R, RL) \
- HidP_GetUsagesEx(RT, LC, BL, UL, PD, R, RL)
-
-HIDAPI
-NTSTATUS
-NTAPI
-HidP_GetUsagesEx(
- HIDP_REPORT_TYPE ReportType,
- USHORT LinkCollection,
- PUSAGE_AND_PAGE ButtonList,
- ULONG *UsageLength,
- PHIDP_PREPARSED_DATA PreparsedData,
- PCHAR Report,
- ULONG ReportLength);
-
-HIDAPI
-NTSTATUS
-NTAPI
-HidP_GetUsageValue(
- HIDP_REPORT_TYPE ReportType,
- USAGE UsagePage,
- USHORT LinkCollection,
- USAGE Usage,
- PULONG UsageValue,
- PHIDP_PREPARSED_DATA PreparsedData,
- PCHAR Report,
- ULONG ReportLength);
-
-HIDAPI
-NTSTATUS
-NTAPI
-HidP_GetUsageValueArray(
- HIDP_REPORT_TYPE ReportType,
- USAGE UsagePage,
- USHORT LinkCollection,
- USAGE Usage,
- PCHAR UsageValue,
- USHORT UsageValueByteLength,
- PHIDP_PREPARSED_DATA PreparsedData,
- PCHAR Report,
- ULONG ReportLength);
-
-NTSTATUS NTAPI HidP_GetValueCaps(
- HIDP_REPORT_TYPE ReportType,
- PHIDP_VALUE_CAPS ValueCaps,
- PUSHORT ValueCapsLength,
- PHIDP_PREPARSED_DATA PreparsedData);
-
-#if !defined(_HIDPI_NO_FUNCTION_MACROS_)
-
-/*
- * NTSTATUS
- * HidP_GetValueCaps(
- * IN HIDP_REPORT_TYPE ReportType,
- * OUT PHIDP_VALUE_CAPS ValueCaps,
- * IN OUT PUSHORT ValueCapsLength,
- * IN PHIDP_PREPARSED_DATA PreparsedData);
- */
-#define HidP_GetValueCaps(_Type_, _Caps_, _Len_, _Data_) \
- HidP_GetSpecificValueCaps (_Type_, 0, 0, 0, _Caps_, _Len_, _Data_)
-
-#endif /* _HIDPI_NO_FUNCTION_MACROS_ */
-
-HIDAPI
-NTSTATUS
-NTAPI
-HidP_InitializeReportForID(
- HIDP_REPORT_TYPE ReportType,
- UCHAR ReportID,
- PHIDP_PREPARSED_DATA PreparsedData,
- PCHAR Report,
- ULONG ReportLength);
-
-#if !defined(_HIDPI_NO_FUNCTION_MACROS_)
-
-/*
- * BOOLEAN
- * HidP_IsSameUsageAndPage(
- * USAGE_AND_PAGE u1,
- * USAGE_AND_PAGE u2);
- */
-#define HidP_IsSameUsageAndPage(u1, u2) ((* (PULONG) &u1) == (* (PULONG) &u2))
-
-#endif /* _HIDPI_NO_FUNCTION_MACROS_ */
-
-HIDAPI
-ULONG
-NTAPI
-HidP_MaxDataListLength(
- HIDP_REPORT_TYPE ReportType,
- PHIDP_PREPARSED_DATA PreparsedData);
-
-HIDAPI
-ULONG
-NTAPI
-HidP_MaxUsageListLength(
- HIDP_REPORT_TYPE ReportType,
- USAGE UsagePage,
- PHIDP_PREPARSED_DATA PreparsedData);
-
-#if !defined(_HIDPI_NO_FUNCTION_MACROS_)
-
-/*
- * NTSTATUS
- * HidP_SetButtons(
- * IN HIDP_REPORT_TYPE ReportType,
- * IN USAGE UsagePage,
- * IN USHORT LinkCollection,
- * IN PUSAGE UsageList,
- * IN OUT PULONG UsageLength,
- * IN PHIDP_PREPARSED_DATA PreparsedData,
- * IN OUT PCHAR Report,
- * IN ULONG ReportLength);
- */
-#define HidP_SetButtons(RT, UP, LC, UL1, UL2, PD, R, RL) \
- HidP_SetUsages(RT, UP, LC, UL1, UL2, PD, R, RL)
-
-#endif /* _HIDPI_NO_FUNCTION_MACROS_ */
-
-HIDAPI
-NTSTATUS
-NTAPI
-HidP_SetData(
- HIDP_REPORT_TYPE ReportType,
- PHIDP_DATA DataList,
- PULONG DataLength,
- PHIDP_PREPARSED_DATA PreparsedData,
- PCHAR Report,
- ULONG ReportLength);
-
-HIDAPI
-NTSTATUS
-NTAPI
-HidP_SetScaledUsageValue(
- HIDP_REPORT_TYPE ReportType,
- USAGE UsagePage,
- USHORT LinkCollection,
- USAGE Usage,
- LONG UsageValue,
- PHIDP_PREPARSED_DATA PreparsedData,
- PCHAR Report,
- ULONG ReportLength);
-
-HIDAPI
-NTSTATUS
-NTAPI
-HidP_SetUsages(
- HIDP_REPORT_TYPE ReportType,
- USAGE UsagePage,
- USHORT LinkCollection, /* Optional */
- PUSAGE UsageList,
- PULONG UsageLength,
- PHIDP_PREPARSED_DATA PreparsedData,
- PCHAR Report,
- ULONG ReportLength);
+ USAGE UsagePage;
+ UCHAR ReportID;
+ BOOLEAN IsAlias;
+ USHORT BitField;
+ USHORT LinkCollection;
+ USAGE LinkUsage;
+ USAGE LinkUsagePage;
+ BOOLEAN IsRange;
+ BOOLEAN IsStringRange;
+ BOOLEAN IsDesignatorRange;
+ BOOLEAN IsAbsolute;
+ BOOLEAN HasNull;
+ UCHAR Reserved;
+ USHORT BitSize;
+ USHORT ReportCount;
+ USHORT Reserved2[5];
+ ULONG UnitsExp;
+ ULONG Units;
+ LONG LogicalMin, LogicalMax;
+ LONG PhysicalMin, PhysicalMax;
+ __C89_NAMELESS union {
+ struct {
+ USAGE UsageMin, UsageMax;
+ USHORT StringMin, StringMax;
+ USHORT DesignatorMin, DesignatorMax;
+ USHORT DataIndexMin, DataIndexMax;
+ } Range;
+ struct {
+ USAGE Usage, Reserved1;
+ USHORT StringIndex, Reserved2;
+ USHORT DesignatorIndex, Reserved3;
+ USHORT DataIndex, Reserved4;
+ } NotRange;
+ };
+} HIDP_VALUE_CAPS,*PHIDP_VALUE_CAPS;
-HIDAPI
-NTSTATUS
-NTAPI
-HidP_SetUsageValue(
- HIDP_REPORT_TYPE ReportType,
- USAGE UsagePage,
- USHORT LinkCollection,
- USAGE Usage,
- ULONG UsageValue,
- PHIDP_PREPARSED_DATA PreparsedData,
- PCHAR Report,
- ULONG ReportLength);
+typedef struct _HIDP_LINK_COLLECTION_NODE {
+ USAGE LinkUsage;
+ USAGE LinkUsagePage;
+ USHORT Parent;
+ USHORT NumberOfChildren;
+ USHORT NextSibling;
+ USHORT FirstChild;
+ ULONG CollectionType: 8;
+ ULONG IsAlias : 1;
+ ULONG Reserved: 23;
+ PVOID UserContext;
+} HIDP_LINK_COLLECTION_NODE,*PHIDP_LINK_COLLECTION_NODE;
-HIDAPI
-NTSTATUS
-NTAPI
-HidP_SetUsageValueArray(
- HIDP_REPORT_TYPE ReportType,
- USAGE UsagePage,
- USHORT LinkCollection,
- USAGE Usage,
- PCHAR UsageValue,
- USHORT UsageValueByteLength,
- PHIDP_PREPARSED_DATA PreparsedData,
- PCHAR Report,
- ULONG ReportLength);
+typedef struct _HIDP_CAPS {
+ USAGE Usage;
+ USAGE UsagePage;
+ USHORT InputReportByteLength;
+ USHORT OutputReportByteLength;
+ USHORT FeatureReportByteLength;
+ USHORT Reserved[17];
+ USHORT NumberLinkCollectionNodes;
+ USHORT NumberInputButtonCaps;
+ USHORT NumberInputValueCaps;
+ USHORT NumberInputDataIndices;
+ USHORT NumberOutputButtonCaps;
+ USHORT NumberOutputValueCaps;
+ USHORT NumberOutputDataIndices;
+ USHORT NumberFeatureButtonCaps;
+ USHORT NumberFeatureValueCaps;
+ USHORT NumberFeatureDataIndices;
+} HIDP_CAPS,*PHIDP_CAPS;
-#if !defined(_HIDPI_NO_FUNCTION_MACROS_)
+typedef struct _HIDP_DATA {
+ USHORT DataIndex;
+ USHORT Reserved;
+ __C89_NAMELESS union {
+ ULONG RawValue;
+ BOOLEAN On;
+ };
+} HIDP_DATA,*PHIDP_DATA;
-/*
- * NTSTATUS
- * HidP_UnsetButtons(
- * IN HIDP_REPORT_TYPE ReportType,
- * IN USAGE UsagePage,
- * IN USHORT LinkCollection,
- * IN PUSAGE UsageList,
- * IN OUT PULONG UsageLength,
- * IN PHIDP_PREPARSED_DATA PreparsedData,
- * IN OUT PCHAR Report,
- * IN ULONG ReportLength);
- */
-#define HidP_UnsetButtons(RT, UP, LC, UL1, UL2, PD, R, RL) \
- HidP_UnsetUsages(RT, UP, LC, UL1, UL2, PD, R, RL)
+typedef struct _HIDP_UNKNOWN_TOKEN {
+ UCHAR Token;
+ UCHAR Reserved[3];
+ ULONG BitField;
+} HIDP_UNKNOWN_TOKEN,*PHIDP_UNKNOWN_TOKEN;
-#endif /* _HIDPI_NO_FUNCTION_MACROS_ */
+typedef struct _HIDP_EXTENDED_ATTRIBUTES {
+ UCHAR NumGlobalUnknowns;
+ UCHAR Reserved [3];
+ PHIDP_UNKNOWN_TOKEN GlobalUnknowns;
+ ULONG Data [1];
+} HIDP_EXTENDED_ATTRIBUTES,*PHIDP_EXTENDED_ATTRIBUTES;
-HIDAPI
-NTSTATUS
-NTAPI
-HidP_UnsetUsages(
- HIDP_REPORT_TYPE ReportType,
- USAGE UsagePage,
- USHORT LinkCollection,
- PUSAGE UsageList,
- PULONG UsageLength,
- PHIDP_PREPARSED_DATA PreparsedData,
- PCHAR Report,
- ULONG ReportLength);
+typedef enum _HIDP_KEYBOARD_DIRECTION {
+ HidP_Keyboard_Break,
+ HidP_Keyboard_Make
+} HIDP_KEYBOARD_DIRECTION;
-HIDAPI
-NTSTATUS
-NTAPI
-HidP_UsageAndPageListDifference(
- PUSAGE_AND_PAGE PreviousUsageList,
- PUSAGE_AND_PAGE CurrentUsageList,
- PUSAGE_AND_PAGE BreakUsageList,
- PUSAGE_AND_PAGE MakeUsageList,
- ULONG UsageListLength);
+typedef struct _HIDP_KEYBOARD_MODIFIER_STATE {
+ __C89_NAMELESS union {
+ struct {
+ ULONG LeftControl: 1;
+ ULONG LeftShift: 1;
+ ULONG LeftAlt: 1;
+ ULONG LeftGUI: 1;
+ ULONG RightControl: 1;
+ ULONG RightShift: 1;
+ ULONG RightAlt: 1;
+ ULONG RigthGUI: 1;
+ ULONG CapsLock: 1;
+ ULONG ScollLock: 1;
+ ULONG NumLock: 1;
+ ULONG Reserved: 21;
+ };
+ ULONG ul;
+ };
+} HIDP_KEYBOARD_MODIFIER_STATE,*PHIDP_KEYBOARD_MODIFIER_STATE;
+
+typedef BOOLEAN (*PHIDP_INSERT_SCANCODES) (PVOID Context, PCHAR NewScanCodes,
ULONG Length);
+
+NTSTATUS NTAPI HidP_GetCaps (PHIDP_PREPARSED_DATA PreparsedData, PHIDP_CAPS
Capabilities);
+NTSTATUS NTAPI HidP_GetLinkCollectionNodes (PHIDP_LINK_COLLECTION_NODE
LinkCollectionNodes, PULONG LinkCollectionNodesLength, PHIDP_PREPARSED_DATA
PreparsedData);
+NTSTATUS NTAPI HidP_GetSpecificButtonCaps (HIDP_REPORT_TYPE ReportType, USAGE
UsagePage, USHORT LinkCollection, USAGE Usage, PHIDP_BUTTON_CAPS ButtonCaps,
PUSHORT ButtonCapsLength, PHIDP_PREPARSED_DATA PreparsedData);
+NTSTATUS NTAPI HidP_GetButtonCaps (HIDP_REPORT_TYPE ReportType,
PHIDP_BUTTON_CAPS ButtonCaps, PUSHORT ButtonCapsLength, PHIDP_PREPARSED_DATA
PreparsedData);
+NTSTATUS NTAPI HidP_GetSpecificValueCaps (HIDP_REPORT_TYPE ReportType, USAGE
UsagePage, USHORT LinkCollection, USAGE Usage, PHIDP_VALUE_CAPS ValueCaps,
PUSHORT ValueCapsLength, PHIDP_PREPARSED_DATA PreparsedData);
+NTSTATUS NTAPI HidP_GetValueCaps (HIDP_REPORT_TYPE ReportType,
PHIDP_VALUE_CAPS ValueCaps, PUSHORT ValueCapsLength, PHIDP_PREPARSED_DATA
PreparsedData);
+NTSTATUS NTAPI HidP_GetExtendedAttributes (HIDP_REPORT_TYPE ReportType, USHORT
DataIndex, PHIDP_PREPARSED_DATA PreparsedData, PHIDP_EXTENDED_ATTRIBUTES
Attributes, PULONG LengthAttributes);
+NTSTATUS NTAPI HidP_InitializeReportForID (HIDP_REPORT_TYPE ReportType, UCHAR
ReportID, PHIDP_PREPARSED_DATA PreparsedData, PCHAR Report, ULONG ReportLength);
+NTSTATUS NTAPI HidP_SetData (HIDP_REPORT_TYPE ReportType, PHIDP_DATA DataList,
PULONG DataLength, PHIDP_PREPARSED_DATA PreparsedData, PCHAR Report, ULONG
ReportLength);
+NTSTATUS NTAPI HidP_GetData (HIDP_REPORT_TYPE ReportType, PHIDP_DATA DataList,
PULONG DataLength, PHIDP_PREPARSED_DATA PreparsedData, PCHAR Report, ULONG
ReportLength);
+ULONG NTAPI HidP_MaxDataListLength (HIDP_REPORT_TYPE ReportType,
PHIDP_PREPARSED_DATA PreparsedData);
+NTSTATUS NTAPI HidP_SetUsages (HIDP_REPORT_TYPE ReportType, USAGE UsagePage,
USHORT LinkCollection, PUSAGE UsageList, PULONG UsageLength,
PHIDP_PREPARSED_DATA PreparsedData, PCHAR Report, ULONG ReportLength);
+NTSTATUS NTAPI HidP_UnsetUsages (HIDP_REPORT_TYPE ReportType, USAGE UsagePage,
USHORT LinkCollection, PUSAGE UsageList, PULONG UsageLength,
PHIDP_PREPARSED_DATA PreparsedData, PCHAR Report, ULONG ReportLength);
+NTSTATUS NTAPI HidP_GetUsages (HIDP_REPORT_TYPE ReportType, USAGE UsagePage,
USHORT LinkCollection, PUSAGE UsageList, PULONG UsageLength,
PHIDP_PREPARSED_DATA PreparsedData, PCHAR Report, ULONG ReportLength);
+NTSTATUS NTAPI HidP_GetUsagesEx (HIDP_REPORT_TYPE ReportType, USHORT
LinkCollection, PUSAGE_AND_PAGE ButtonList, ULONG *UsageLength,
PHIDP_PREPARSED_DATA PreparsedData, PCHAR Report, ULONG ReportLength);
+ULONG NTAPI HidP_MaxUsageListLength (HIDP_REPORT_TYPE ReportType, USAGE
UsagePage, PHIDP_PREPARSED_DATA PreparsedData);
+NTSTATUS NTAPI HidP_SetUsageValue (HIDP_REPORT_TYPE ReportType, USAGE
UsagePage, USHORT LinkCollection, USAGE Usage, ULONG UsageValue,
PHIDP_PREPARSED_DATA PreparsedData, PCHAR Report, ULONG ReportLength);
+NTSTATUS NTAPI HidP_SetScaledUsageValue (HIDP_REPORT_TYPE ReportType, USAGE
UsagePage, USHORT LinkCollection, USAGE Usage, LONG UsageValue,
PHIDP_PREPARSED_DATA PreparsedData, PCHAR Report, ULONG ReportLength);
+NTSTATUS NTAPI HidP_SetUsageValueArray (HIDP_REPORT_TYPE ReportType, USAGE
UsagePage, USHORT LinkCollection, USAGE Usage, PCHAR UsageValue, USHORT
UsageValueByteLength, PHIDP_PREPARSED_DATA PreparsedData, PCHAR Report, ULONG
ReportLength);
+NTSTATUS NTAPI HidP_GetUsageValue (HIDP_REPORT_TYPE ReportType, USAGE
UsagePage, USHORT LinkCollection, USAGE Usage, PULONG UsageValue,
PHIDP_PREPARSED_DATA PreparsedData, PCHAR Report, ULONG ReportLength);
+NTSTATUS NTAPI HidP_GetScaledUsageValue (HIDP_REPORT_TYPE ReportType, USAGE
UsagePage, USHORT LinkCollection, USAGE Usage, PLONG UsageValue,
PHIDP_PREPARSED_DATA PreparsedData, PCHAR Report, ULONG ReportLength);
+NTSTATUS NTAPI HidP_GetUsageValueArray (HIDP_REPORT_TYPE ReportType, USAGE
UsagePage, USHORT LinkCollection, USAGE Usage, PCHAR UsageValue, USHORT
UsageValueByteLength, PHIDP_PREPARSED_DATA PreparsedData, PCHAR Report, ULONG
ReportLength);
+NTSTATUS NTAPI HidP_UsageListDifference (PUSAGE PreviousUsageList, PUSAGE
CurrentUsageList, PUSAGE BreakUsageList, PUSAGE MakeUsageList, ULONG
UsageListLength);
+NTSTATUS NTAPI HidP_UsageAndPageListDifference (PUSAGE_AND_PAGE
PreviousUsageList, PUSAGE_AND_PAGE CurrentUsageList, PUSAGE_AND_PAGE
BreakUsageList, PUSAGE_AND_PAGE MakeUsageList, ULONG UsageListLength);
+NTSTATUS NTAPI HidP_TranslateUsageAndPagesToI8042ScanCodes (PUSAGE_AND_PAGE
ChangedUsageList, ULONG UsageListLength, HIDP_KEYBOARD_DIRECTION KeyAction,
PHIDP_KEYBOARD_MODIFIER_STATE ModifierState, PHIDP_INSERT_SCANCODES
InsertCodesProcedure, PVOID InsertCodesContext);
+NTSTATUS NTAPI HidP_TranslateUsagesToI8042ScanCodes (PUSAGE ChangedUsageList,
ULONG UsageListLength, HIDP_KEYBOARD_DIRECTION KeyAction,
PHIDP_KEYBOARD_MODIFIER_STATE ModifierState, PHIDP_INSERT_SCANCODES
InsertCodesProcedure, PVOID InsertCodesContext);
+
+#ifndef FACILITY_HID_ERROR_CODE
+#define FACILITY_HID_ERROR_CODE 0x11
+#endif
-HIDAPI
-NTSTATUS
-NTAPI
-HidP_UsageListDifference(
- PUSAGE PreviousUsageList,
- PUSAGE CurrentUsageList,
- PUSAGE BreakUsageList,
- PUSAGE MakeUsageList,
- ULONG UsageListLength);
+#define HIDP_ERROR_CODES(SEV, CODE) ((NTSTATUS) (((SEV) << 28) |
(FACILITY_HID_ERROR_CODE << 16) | (CODE)))
+
+#define HIDP_STATUS_SUCCESS (HIDP_ERROR_CODES (0x0, 0))
+#define HIDP_STATUS_NULL (HIDP_ERROR_CODES (0x8, 1))
+#define HIDP_STATUS_INVALID_PREPARSED_DATA (HIDP_ERROR_CODES (0xc, 1))
+#define HIDP_STATUS_INVALID_REPORT_TYPE (HIDP_ERROR_CODES (0xc, 2))
+#define HIDP_STATUS_INVALID_REPORT_LENGTH (HIDP_ERROR_CODES (0xc, 3))
+#define HIDP_STATUS_USAGE_NOT_FOUND (HIDP_ERROR_CODES (0xc, 4))
+#define HIDP_STATUS_VALUE_OUT_OF_RANGE (HIDP_ERROR_CODES (0xc, 5))
+#define HIDP_STATUS_BAD_LOG_PHY_VALUES (HIDP_ERROR_CODES (0xc, 6))
+#define HIDP_STATUS_BUFFER_TOO_SMALL (HIDP_ERROR_CODES (0xc, 7))
+#define HIDP_STATUS_INTERNAL_ERROR (HIDP_ERROR_CODES (0xc, 8))
+#define HIDP_STATUS_I8042_TRANS_UNKNOWN (HIDP_ERROR_CODES (0xc, 9))
+#define HIDP_STATUS_INCOMPATIBLE_REPORT_ID (HIDP_ERROR_CODES (0xc, 0xa))
+#define HIDP_STATUS_NOT_VALUE_ARRAY (HIDP_ERROR_CODES (0xc, 0xb))
+#define HIDP_STATUS_IS_VALUE_ARRAY (HIDP_ERROR_CODES (0xc, 0xc))
+#define HIDP_STATUS_DATA_INDEX_NOT_FOUND (HIDP_ERROR_CODES (0xc, 0xd))
+#define HIDP_STATUS_DATA_INDEX_OUT_OF_RANGE (HIDP_ERROR_CODES (0xc, 0xe))
+#define HIDP_STATUS_BUTTON_NOT_PRESSED (HIDP_ERROR_CODES (0xc, 0xf))
+#define HIDP_STATUS_REPORT_DOES_NOT_EXIST (HIDP_ERROR_CODES (0xc, 0x10))
+#define HIDP_STATUS_NOT_IMPLEMENTED (HIDP_ERROR_CODES (0xc, 0x20))
+
+#define HIDP_STATUS_I8242_TRANS_UNKNOWN HIDP_STATUS_I8042_TRANS_UNKNOWN
+
+#include <poppack.h>
-#ifdef __cplusplus
-}
#endif
-
-#endif /* __HIDPI_H */
+#endif
diff --git a/mingw-w64-headers/include/hidsdi.h
b/mingw-w64-headers/include/hidsdi.h
index ea7c3b6..7ba1a3e 100644
--- a/mingw-w64-headers/include/hidsdi.h
+++ b/mingw-w64-headers/include/hidsdi.h
@@ -5,6 +5,7 @@
*
* Contributors:
* Created by Simon Josefsson <si...@josefsson.org>
+ * Extended by Kai Tietz
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
@@ -18,42 +19,54 @@
*
*/
-#ifndef __HIDSDI_H
-#define __HIDSDI_H
+#include <winapifamily.h>
-#include "hidpi.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
+#ifndef _HIDSDI_H
+#define _HIDSDI_H
- /* http://msdn.microsoft.com/en-us/library/ff538900%28v=VS.85%29.aspx */
-HIDAPI BOOLEAN NTAPI HidD_GetAttributes(HANDLE HidDeviceObject,
PHIDD_ATTRIBUTES Attributes);
+#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
- /* http://msdn.microsoft.com/en-us/library/ff538910%28v=VS.85%29.aspx */
-HIDAPI BOOLEAN NTAPI HidD_GetFeature(HANDLE HidDeviceObject, PVOID
ReportBuffer, ULONG ReportBufferLength);
+#include <pshpack4.h>
- /* http://msdn.microsoft.com/en-us/library/ff539684%28v=VS.85%29.aspx */
-HIDAPI BOOLEAN NTAPI HidD_SetFeature(HANDLE HidDeviceObject, PVOID
ReportBuffer, ULONG ReportBufferLength);
+typedef LONG NTSTATUS;
-/* http://msdn.microsoft.com/en-us/library/ff538924(v=vs.85).aspx */
-HIDAPI VOID NTAPI HidD_GetHidGuid(LPGUID HidGuid);
+#include "hidusage.h"
+#include "hidpi.h"
-/*
http://msdn.microsoft.com/en-us/library/windows/hardware/ff538959(v=vs.85).aspx
*/
-HIDAPI BOOLEAN NTAPI HidD_GetManufacturerString (HANDLE HidDeviceObject, PVOID
Buffer, ULONG BufferLength);
+typedef struct _HIDD_CONFIGURATION {
+ PVOID cookie;
+ ULONG size;
+ ULONG RingBufferSize;
+} HIDD_CONFIGURATION,*PHIDD_CONFIGURATION;
-/*
http://msdn.microsoft.com/en-us/library/windows/hardware/ff539681(v=vs.85).aspx
*/
-HIDAPI BOOLEAN NTAPI HidD_GetProductString (HANDLE HidDeviceObject, PVOID
Buffer, ULONG BufferLength);
+typedef struct _HIDD_ATTRIBUTES {
+ ULONG Size;
+ USHORT VendorID;
+ USHORT ProductID;
+ USHORT VersionNumber;
+} HIDD_ATTRIBUTES,*PHIDD_ATTRIBUTES;
-/*
http://msdn.microsoft.com/en-us/library/windows/hardware/ff539686(v=vs.85).aspx
*/
-HIDAPI BOOLEAN NTAPI HidD_SetNumInputBuffers (HANDLE HidDeviceObject, ULONG
NumberBuffers);
+BOOLEAN NTAPI HidD_FlushQueue (HANDLE HidDeviceObject);
+BOOLEAN NTAPI HidD_FreePreparsedData (PHIDP_PREPARSED_DATA PreparsedData);
+BOOLEAN NTAPI HidD_GetAttributes (HANDLE HidDeviceObject, PHIDD_ATTRIBUTES
Attributes);
+BOOLEAN NTAPI HidD_GetConfiguration (HANDLE HidDeviceObject,
PHIDD_CONFIGURATION Configuration, ULONG ConfigurationLength);
+BOOLEAN NTAPI HidD_GetFeature (HANDLE HidDeviceObject, PVOID ReportBuffer,
ULONG ReportBufferLength);
+void NTAPI HidD_GetHidGuid (LPGUID HidGuid);
+BOOLEAN NTAPI HidD_GetInputReport (HANDLE HidDeviceObject, PVOID ReportBuffer,
ULONG ReportBufferLength);
+BOOLEAN NTAPI HidD_GetIndexedString (HANDLE HidDeviceObject, ULONG
StringIndex, PVOID Buffer, ULONG BufferLength);
+BOOLEAN NTAPI HidD_GetManufacturerString (HANDLE HidDeviceObject, PVOID
Buffer, ULONG BufferLength);
+BOOLEAN NTAPI HidD_GetMsGenreDescriptor (HANDLE HidDeviceObject, PVOID Buffer,
ULONG BufferLength);
+BOOLEAN NTAPI HidD_GetNumInputBuffers (HANDLE HidDeviceObject, PULONG
NumberBuffers);
+BOOLEAN NTAPI HidD_GetPhysicalDescriptor (HANDLE HidDeviceObject, PVOID
Buffer, ULONG BufferLength);
+BOOLEAN NTAPI HidD_GetPreparsedData (HANDLE HidDeviceObject,
PHIDP_PREPARSED_DATA *PreparsedData);
+BOOLEAN NTAPI HidD_GetProductString (HANDLE HidDeviceObject, PVOID Buffer,
ULONG BufferLength);
+BOOLEAN NTAPI HidD_GetSerialNumberString (HANDLE HidDeviceObject, PVOID
Buffer, ULONG BufferLength);
+BOOLEAN NTAPI HidD_SetConfiguration (HANDLE HidDeviceObject,
PHIDD_CONFIGURATION Configuration, ULONG ConfigurationLength);
+BOOLEAN NTAPI HidD_SetFeature (HANDLE HidDeviceObject, PVOID ReportBuffer,
ULONG ReportBufferLength);
+BOOLEAN NTAPI HidD_SetNumInputBuffers (HANDLE HidDeviceObject, ULONG
NumberBuffers);
+BOOLEAN NTAPI HidD_SetOutputReport (HANDLE HidDeviceObject, PVOID
ReportBuffer, ULONG ReportBufferLength);
-/*
http://msdn.microsoft.com/en-us/library/windows/hardware/ff539675(v=vs.85).aspx
*/
-HIDAPI BOOLEAN NTAPI HidD_GetNumInputBuffers (HANDLE HidDeviceObject, PULONG
NumberBuffers);
+#include <poppack.h>
-#ifdef __cplusplus
-}
#endif
-
-#endif /* __HIDSDI_H */
-
+#endif
diff --git a/mingw-w64-headers/include/hidusage.h
b/mingw-w64-headers/include/hidusage.h
index 1827c19..265dd3b 100644
--- a/mingw-w64-headers/include/hidusage.h
+++ b/mingw-w64-headers/include/hidusage.h
@@ -7,6 +7,7 @@
*
* Contributors:
* Created by Casper S. Hornstrup <cho...@users.sourceforge.net>
+ * Extended by Kai Tietz
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
@@ -20,187 +21,206 @@
*
*/
-#ifndef __HIDUSAGE_H
-#define __HIDUSAGE_H
+#include <winapifamily.h>
-#ifdef __cplusplus
-extern "C" {
-#endif
+#ifndef __HIDUSAGE_H__
+#define __HIDUSAGE_H__
+
+#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
+
+#define HID_USAGE_PAGE_UNDEFINED ((USAGE) 0x00)
+#define HID_USAGE_PAGE_GENERIC ((USAGE) 0x01)
+#define HID_USAGE_PAGE_SIMULATION ((USAGE) 0x02)
+#define HID_USAGE_PAGE_VR ((USAGE) 0x03)
+#define HID_USAGE_PAGE_SPORT ((USAGE) 0x04)
+#define HID_USAGE_PAGE_GAME ((USAGE) 0x05)
+#define HID_USAGE_PAGE_KEYBOARD ((USAGE) 0x07)
+#define HID_USAGE_PAGE_LED ((USAGE) 0x08)
+#define HID_USAGE_PAGE_BUTTON ((USAGE) 0x09)
+#define HID_USAGE_PAGE_ORDINAL ((USAGE) 0x0a)
+#define HID_USAGE_PAGE_TELEPHONY ((USAGE) 0x0b)
+#define HID_USAGE_PAGE_CONSUMER ((USAGE) 0x0c)
+#define HID_USAGE_PAGE_DIGITIZER ((USAGE) 0x0d)
+#define HID_USAGE_PAGE_UNICODE ((USAGE) 0x10)
+#define HID_USAGE_PAGE_ALPHANUMERIC ((USAGE) 0x14)
+#define HID_USAGE_PAGE_MICROSOFT_BLUETOOTH_HANDSFREE ((USAGE) 0xfff3)
+
+#define HID_USAGE_GENERIC_POINTER ((USAGE) 0x01)
+#define HID_USAGE_GENERIC_MOUSE ((USAGE) 0x02)
+#define HID_USAGE_GENERIC_JOYSTICK ((USAGE) 0x04)
+#define HID_USAGE_GENERIC_GAMEPAD ((USAGE) 0x05)
+#define HID_USAGE_GENERIC_KEYBOARD ((USAGE) 0x06)
+#define HID_USAGE_GENERIC_KEYPAD ((USAGE) 0x07)
+#define HID_USAGE_GENERIC_SYSTEM_CTL ((USAGE) 0x80)
-typedef USHORT USAGE, *PUSAGE;
-
-#define HID_USAGE_GENERIC_POINTER ((USAGE) 0x01)
-#define HID_USAGE_GENERIC_MOUSE ((USAGE) 0x02)
-#define HID_USAGE_GENERIC_JOYSTICK ((USAGE) 0x04)
-#define HID_USAGE_GENERIC_GAMEPAD ((USAGE) 0x05)
-#define HID_USAGE_GENERIC_KEYBOARD ((USAGE) 0x06)
-#define HID_USAGE_GENERIC_KEYPAD ((USAGE) 0x07)
-#define HID_USAGE_GENERIC_SYSTEM_CTL ((USAGE) 0x80)
-#define HID_USAGE_GENERIC_X ((USAGE) 0x30)
-#define HID_USAGE_GENERIC_Y ((USAGE) 0x31)
-#define HID_USAGE_GENERIC_Z ((USAGE) 0x32)
-#define HID_USAGE_GENERIC_RX ((USAGE) 0x33)
-#define HID_USAGE_GENERIC_RY ((USAGE) 0x34)
-#define HID_USAGE_GENERIC_RZ ((USAGE) 0x35)
-#define HID_USAGE_GENERIC_SLIDER ((USAGE) 0x36)
-#define HID_USAGE_GENERIC_DIAL ((USAGE) 0x37)
-#define HID_USAGE_GENERIC_WHEEL ((USAGE) 0x38)
-#define HID_USAGE_GENERIC_HATSWITCH ((USAGE) 0x39)
-#define HID_USAGE_GENERIC_COUNTED_BUFFER ((USAGE) 0x3A)
-#define HID_USAGE_GENERIC_BYTE_COUNT ((USAGE) 0x3B)
-#define HID_USAGE_GENERIC_MOTION_WAKEUP ((USAGE) 0x3C)
-#define HID_USAGE_GENERIC_VX ((USAGE) 0x40)
-#define HID_USAGE_GENERIC_VY ((USAGE) 0x41)
-#define HID_USAGE_GENERIC_VZ ((USAGE) 0x42)
-#define HID_USAGE_GENERIC_VBRX ((USAGE) 0x43)
-#define HID_USAGE_GENERIC_VBRY ((USAGE) 0x44)
-#define HID_USAGE_GENERIC_VBRZ ((USAGE) 0x45)
-#define HID_USAGE_GENERIC_VNO ((USAGE) 0x46)
-#define HID_USAGE_GENERIC_SYSCTL_POWER ((USAGE) 0x81)
-#define HID_USAGE_GENERIC_SYSCTL_SLEEP ((USAGE) 0x82)
-#define HID_USAGE_GENERIC_SYSCTL_WAKE ((USAGE) 0x83)
+#define HID_USAGE_GENERIC_X ((USAGE) 0x30)
+#define HID_USAGE_GENERIC_Y ((USAGE) 0x31)
+#define HID_USAGE_GENERIC_Z ((USAGE) 0x32)
+#define HID_USAGE_GENERIC_RX ((USAGE) 0x33)
+#define HID_USAGE_GENERIC_RY ((USAGE) 0x34)
+#define HID_USAGE_GENERIC_RZ ((USAGE) 0x35)
+#define HID_USAGE_GENERIC_SLIDER ((USAGE) 0x36)
+#define HID_USAGE_GENERIC_DIAL ((USAGE) 0x37)
+#define HID_USAGE_GENERIC_WHEEL ((USAGE) 0x38)
+#define HID_USAGE_GENERIC_HATSWITCH ((USAGE) 0x39)
+#define HID_USAGE_GENERIC_COUNTED_BUFFER ((USAGE) 0x3a)
+#define HID_USAGE_GENERIC_BYTE_COUNT ((USAGE) 0x3b)
+#define HID_USAGE_GENERIC_MOTION_WAKEUP ((USAGE) 0x3c)
+#define HID_USAGE_GENERIC_VX ((USAGE) 0x40)
+#define HID_USAGE_GENERIC_VY ((USAGE) 0x41)
+#define HID_USAGE_GENERIC_VZ ((USAGE) 0x42)
+#define HID_USAGE_GENERIC_VBRX ((USAGE) 0x43)
+#define HID_USAGE_GENERIC_VBRY ((USAGE) 0x44)
+#define HID_USAGE_GENERIC_VBRZ ((USAGE) 0x45)
+#define HID_USAGE_GENERIC_VNO ((USAGE) 0x46)
+#define HID_USAGE_GENERIC_SYSCTL_POWER ((USAGE) 0x81)
+#define HID_USAGE_GENERIC_SYSCTL_SLEEP ((USAGE) 0x82)
+#define HID_USAGE_GENERIC_SYSCTL_WAKE ((USAGE) 0x83)
#define HID_USAGE_GENERIC_SYSCTL_CONTEXT_MENU ((USAGE) 0x84)
-#define HID_USAGE_GENERIC_SYSCTL_MAIN_MENU ((USAGE) 0x85)
-#define HID_USAGE_GENERIC_SYSCTL_APP_MENU ((USAGE) 0x86)
-#define HID_USAGE_GENERIC_SYSCTL_HELP_MENU ((USAGE) 0x87)
-#define HID_USAGE_GENERIC_SYSCTL_MENU_EXIT ((USAGE) 0x88)
-#define HID_USAGE_GENERIC_SYSCTL_MENU_SELECT ((USAGE) 0x89)
-#define HID_USAGE_GENERIC_SYSCTL_MENU_RIGHT ((USAGE) 0x8A)
-#define HID_USAGE_GENERIC_SYSCTL_MENU_LEFT ((USAGE) 0x8B)
-#define HID_USAGE_GENERIC_SYSCTL_MENU_UP ((USAGE) 0x8C)
-#define HID_USAGE_GENERIC_SYSCTL_MENU_DOWN ((USAGE) 0x8D)
-
-#define HID_USAGE_KEYBOARD_NOEVENT ((USAGE) 0x00)
-#define HID_USAGE_KEYBOARD_ROLLOVER ((USAGE) 0x01)
-#define HID_USAGE_KEYBOARD_POSTFAIL ((USAGE) 0x02)
-#define HID_USAGE_KEYBOARD_UNDEFINED ((USAGE) 0x03)
-#define HID_USAGE_KEYBOARD_aA ((USAGE) 0x04)
-#define HID_USAGE_KEYBOARD_zZ ((USAGE) 0x1D)
-#define HID_USAGE_KEYBOARD_ONE ((USAGE) 0x1E)
-#define HID_USAGE_KEYBOARD_ZERO ((USAGE) 0x27)
-#define HID_USAGE_KEYBOARD_LCTRL ((USAGE) 0xE0)
-#define HID_USAGE_KEYBOARD_LSHFT ((USAGE) 0xE1)
-#define HID_USAGE_KEYBOARD_LALT ((USAGE) 0xE2)
-#define HID_USAGE_KEYBOARD_LGUI ((USAGE) 0xE3)
-#define HID_USAGE_KEYBOARD_RCTRL ((USAGE) 0xE4)
-#define HID_USAGE_KEYBOARD_RSHFT ((USAGE) 0xE5)
-#define HID_USAGE_KEYBOARD_RALT ((USAGE) 0xE6)
-#define HID_USAGE_KEYBOARD_RGUI ((USAGE) 0xE7)
-#define HID_USAGE_KEYBOARD_SCROLL_LOCK ((USAGE) 0x47)
-#define HID_USAGE_KEYBOARD_NUM_LOCK ((USAGE) 0x53)
-#define HID_USAGE_KEYBOARD_CAPS_LOCK ((USAGE) 0x39)
-#define HID_USAGE_KEYBOARD_F1 ((USAGE) 0x3A)
-#define HID_USAGE_KEYBOARD_F12 ((USAGE) 0x45)
-#define HID_USAGE_KEYBOARD_RETURN ((USAGE) 0x28)
-#define HID_USAGE_KEYBOARD_ESCAPE ((USAGE) 0x29)
-#define HID_USAGE_KEYBOARD_DELETE ((USAGE) 0x2A)
-#define HID_USAGE_KEYBOARD_PRINT_SCREEN ((USAGE) 0x46)
-
-#define HID_USAGE_LED_NUM_LOCK ((USAGE) 0x01)
-#define HID_USAGE_LED_CAPS_LOCK ((USAGE) 0x02)
-#define HID_USAGE_LED_SCROLL_LOCK ((USAGE) 0x03)
-#define HID_USAGE_LED_COMPOSE ((USAGE) 0x04)
-#define HID_USAGE_LED_KANA ((USAGE) 0x05)
-#define HID_USAGE_LED_POWER ((USAGE) 0x06)
-#define HID_USAGE_LED_SHIFT ((USAGE) 0x07)
-#define HID_USAGE_LED_DO_NOT_DISTURB ((USAGE) 0x08)
-#define HID_USAGE_LED_MUTE ((USAGE) 0x09)
-#define HID_USAGE_LED_TONE_ENABLE ((USAGE) 0x0A)
-#define HID_USAGE_LED_HIGH_CUT_FILTER ((USAGE) 0x0B)
-#define HID_USAGE_LED_LOW_CUT_FILTER ((USAGE) 0x0C)
-#define HID_USAGE_LED_EQUALIZER_ENABLE ((USAGE) 0x0D)
-#define HID_USAGE_LED_SOUND_FIELD_ON ((USAGE) 0x0E)
-#define HID_USAGE_LED_SURROUND_FIELD_ON ((USAGE) 0x0F)
-#define HID_USAGE_LED_REPEAT ((USAGE) 0x10)
-#define HID_USAGE_LED_STEREO ((USAGE) 0x11)
-#define HID_USAGE_LED_SAMPLING_RATE_DETECT ((USAGE) 0x12)
-#define HID_USAGE_LED_SPINNING ((USAGE) 0x13)
-#define HID_USAGE_LED_CAV ((USAGE) 0x14)
-#define HID_USAGE_LED_CLV ((USAGE) 0x15)
-#define HID_USAGE_LED_RECORDING_FORMAT_DET ((USAGE) 0x16)
-#define HID_USAGE_LED_OFF_HOOK ((USAGE) 0x17)
-#define HID_USAGE_LED_RING ((USAGE) 0x18)
-#define HID_USAGE_LED_MESSAGE_WAITING ((USAGE) 0x19)
-#define HID_USAGE_LED_DATA_MODE ((USAGE) 0x1A)
-#define HID_USAGE_LED_BATTERY_OPERATION ((USAGE) 0x1B)
-#define HID_USAGE_LED_BATTERY_OK ((USAGE) 0x1C)
-#define HID_USAGE_LED_BATTERY_LOW ((USAGE) 0x1D)
-#define HID_USAGE_LED_SPEAKER ((USAGE) 0x1E)
-#define HID_USAGE_LED_HEAD_SET ((USAGE) 0x1F)
-#define HID_USAGE_LED_HOLD ((USAGE) 0x20)
-#define HID_USAGE_LED_MICROPHONE ((USAGE) 0x21)
-#define HID_USAGE_LED_COVERAGE ((USAGE) 0x22)
-#define HID_USAGE_LED_NIGHT_MODE ((USAGE) 0x23)
-#define HID_USAGE_LED_SEND_CALLS ((USAGE) 0x24)
-#define HID_USAGE_LED_CALL_PICKUP ((USAGE) 0x25)
-#define HID_USAGE_LED_CONFERENCE ((USAGE) 0x26)
-#define HID_USAGE_LED_STAND_BY ((USAGE) 0x27)
-#define HID_USAGE_LED_CAMERA_ON ((USAGE) 0x28)
-#define HID_USAGE_LED_CAMERA_OFF ((USAGE) 0x29)
-#define HID_USAGE_LED_ON_LINE ((USAGE) 0x2A)
-#define HID_USAGE_LED_OFF_LINE ((USAGE) 0x2B)
-#define HID_USAGE_LED_BUSY ((USAGE) 0x2C)
-#define HID_USAGE_LED_READY ((USAGE) 0x2D)
-#define HID_USAGE_LED_PAPER_OUT ((USAGE) 0x2E)
-#define HID_USAGE_LED_PAPER_JAM ((USAGE) 0x2F)
-#define HID_USAGE_LED_REMOTE ((USAGE) 0x30)
-#define HID_USAGE_LED_FORWARD ((USAGE) 0x31)
-#define HID_USAGE_LED_REVERSE ((USAGE) 0x32)
-#define HID_USAGE_LED_STOP ((USAGE) 0x33)
-#define HID_USAGE_LED_REWIND ((USAGE) 0x34)
-#define HID_USAGE_LED_FAST_FORWARD ((USAGE) 0x35)
-#define HID_USAGE_LED_PLAY ((USAGE) 0x36)
-#define HID_USAGE_LED_PAUSE ((USAGE) 0x37)
-#define HID_USAGE_LED_RECORD ((USAGE) 0x38)
-#define HID_USAGE_LED_ERROR ((USAGE) 0x39)
-#define HID_USAGE_LED_SELECTED_INDICATOR ((USAGE) 0x3A)
-#define HID_USAGE_LED_IN_USE_INDICATOR ((USAGE) 0x3B)
-#define HID_USAGE_LED_MULTI_MODE_INDICATOR ((USAGE) 0x3C)
-#define HID_USAGE_LED_INDICATOR_ON ((USAGE) 0x3D)
-#define HID_USAGE_LED_INDICATOR_FLASH ((USAGE) 0x3E)
-#define HID_USAGE_LED_INDICATOR_SLOW_BLINK ((USAGE) 0x3F)
-#define HID_USAGE_LED_INDICATOR_FAST_BLINK ((USAGE) 0x40)
-#define HID_USAGE_LED_INDICATOR_OFF ((USAGE) 0x41)
-#define HID_USAGE_LED_FLASH_ON_TIME ((USAGE) 0x42)
-#define HID_USAGE_LED_SLOW_BLINK_ON_TIME ((USAGE) 0x43)
-#define HID_USAGE_LED_SLOW_BLINK_OFF_TIME ((USAGE) 0x44)
-#define HID_USAGE_LED_FAST_BLINK_ON_TIME ((USAGE) 0x45)
-#define HID_USAGE_LED_FAST_BLINK_OFF_TIME ((USAGE) 0x46)
-#define HID_USAGE_LED_INDICATOR_COLOR ((USAGE) 0x47)
-#define HID_USAGE_LED_RED ((USAGE) 0x48)
-#define HID_USAGE_LED_GREEN ((USAGE) 0x49)
-#define HID_USAGE_LED_AMBER ((USAGE) 0x4A)
-#define HID_USAGE_LED_GENERIC_INDICATOR ((USAGE) 0x3B)
-
-#define HID_USAGE_PAGE_UNDEFINED ((USAGE) 0x00)
-#define HID_USAGE_PAGE_GENERIC ((USAGE) 0x01)
-#define HID_USAGE_PAGE_SIMULATION ((USAGE) 0x02)
-#define HID_USAGE_PAGE_VR ((USAGE) 0x03)
-#define HID_USAGE_PAGE_SPORT ((USAGE) 0x04)
-#define HID_USAGE_PAGE_GAME ((USAGE) 0x05)
-#define HID_USAGE_PAGE_KEYBOARD ((USAGE) 0x07)
-#define HID_USAGE_PAGE_LED ((USAGE) 0x08)
-#define HID_USAGE_PAGE_BUTTON ((USAGE) 0x09)
-#define HID_USAGE_PAGE_ORDINAL ((USAGE) 0x0A)
-#define HID_USAGE_PAGE_TELEPHONY ((USAGE) 0x0B)
-#define HID_USAGE_PAGE_CONSUMER ((USAGE) 0x0C)
-#define HID_USAGE_PAGE_DIGITIZER ((USAGE) 0x0D)
-#define HID_USAGE_PAGE_UNICODE ((USAGE) 0x10)
-#define HID_USAGE_PAGE_ALPHANUMERIC ((USAGE) 0x14)
-
-#define HID_USAGE_TELEPHONY_PHONE ((USAGE) 0x01)
-#define HID_USAGE_TELEPHONY_ANSWERING_MACHINE ((USAGE) 0x02)
-#define HID_USAGE_TELEPHONY_MESSAGE_CONTROLS ((USAGE) 0x03)
-#define HID_USAGE_TELEPHONY_HANDSET ((USAGE) 0x04)
-#define HID_USAGE_TELEPHONY_HEADSET ((USAGE) 0x05)
-#define HID_USAGE_TELEPHONY_KEYPAD ((USAGE) 0x06)
+#define HID_USAGE_GENERIC_SYSCTL_MAIN_MENU ((USAGE) 0x85)
+#define HID_USAGE_GENERIC_SYSCTL_APP_MENU ((USAGE) 0x86)
+#define HID_USAGE_GENERIC_SYSCTL_HELP_MENU ((USAGE) 0x87)
+#define HID_USAGE_GENERIC_SYSCTL_MENU_EXIT ((USAGE) 0x88)
+#define HID_USAGE_GENERIC_SYSCTL_MENU_SELECT ((USAGE) 0x89)
+#define HID_USAGE_GENERIC_SYSCTL_MENU_RIGHT ((USAGE) 0x8a)
+#define HID_USAGE_GENERIC_SYSCTL_MENU_LEFT ((USAGE) 0x8b)
+#define HID_USAGE_GENERIC_SYSCTL_MENU_UP ((USAGE) 0x8c)
+#define HID_USAGE_GENERIC_SYSCTL_MENU_DOWN ((USAGE) 0x8d)
+#define HID_USAGE_SIMULATION_RUDDER ((USAGE) 0xba)
+#define HID_USAGE_SIMULATION_THROTTLE ((USAGE) 0xbb)
+
+#define HID_USAGE_KEYBOARD_NOEVENT ((USAGE) 0x00)
+#define HID_USAGE_KEYBOARD_ROLLOVER ((USAGE) 0x01)
+#define HID_USAGE_KEYBOARD_POSTFAIL ((USAGE) 0x02)
+#define HID_USAGE_KEYBOARD_UNDEFINED ((USAGE) 0x03)
+#define HID_USAGE_KEYBOARD_aA ((USAGE) 0x04)
+#define HID_USAGE_KEYBOARD_zZ ((USAGE) 0x1d)
+#define HID_USAGE_KEYBOARD_ONE ((USAGE) 0x1e)
+#define HID_USAGE_KEYBOARD_ZERO ((USAGE) 0x27)
+#define HID_USAGE_KEYBOARD_LCTRL ((USAGE) 0xe0)
+#define HID_USAGE_KEYBOARD_LSHFT ((USAGE) 0xe1)
+#define HID_USAGE_KEYBOARD_LALT ((USAGE) 0xe2)
+#define HID_USAGE_KEYBOARD_LGUI ((USAGE) 0xe3)
+#define HID_USAGE_KEYBOARD_RCTRL ((USAGE) 0xe4)
+#define HID_USAGE_KEYBOARD_RSHFT ((USAGE) 0xe5)
+#define HID_USAGE_KEYBOARD_RALT ((USAGE) 0xe6)
+#define HID_USAGE_KEYBOARD_RGUI ((USAGE) 0xe7)
+#define HID_USAGE_KEYBOARD_SCROLL_LOCK ((USAGE) 0x47)
+#define HID_USAGE_KEYBOARD_NUM_LOCK ((USAGE) 0x53)
+#define HID_USAGE_KEYBOARD_CAPS_LOCK ((USAGE) 0x39)
+
+#define HID_USAGE_KEYBOARD_F1 ((USAGE) 0x3a)
+#define HID_USAGE_KEYBOARD_F12 ((USAGE) 0x45)
+
+#define HID_USAGE_KEYBOARD_RETURN ((USAGE) 0x28)
+#define HID_USAGE_KEYBOARD_ESCAPE ((USAGE) 0x29)
+#define HID_USAGE_KEYBOARD_DELETE ((USAGE) 0x2a)
+#define HID_USAGE_KEYBOARD_PRINT_SCREEN ((USAGE) 0x46)
+
+#define HID_USAGE_LED_NUM_LOCK ((USAGE) 0x01)
+#define HID_USAGE_LED_CAPS_LOCK ((USAGE) 0x02)
+#define HID_USAGE_LED_SCROLL_LOCK ((USAGE) 0x03)
+#define HID_USAGE_LED_COMPOSE ((USAGE) 0x04)
+#define HID_USAGE_LED_KANA ((USAGE) 0x05)
+#define HID_USAGE_LED_POWER ((USAGE) 0x06)
+#define HID_USAGE_LED_SHIFT ((USAGE) 0x07)
+#define HID_USAGE_LED_DO_NOT_DISTURB ((USAGE) 0x08)
+#define HID_USAGE_LED_MUTE ((USAGE) 0x09)
+#define HID_USAGE_LED_TONE_ENABLE ((USAGE) 0x0a)
+#define HID_USAGE_LED_HIGH_CUT_FILTER ((USAGE) 0x0b)
+#define HID_USAGE_LED_LOW_CUT_FILTER ((USAGE) 0x0c)
+#define HID_USAGE_LED_EQUALIZER_ENABLE ((USAGE) 0x0d)
+#define HID_USAGE_LED_SOUND_FIELD_ON ((USAGE) 0x0e)
+#define HID_USAGE_LED_SURROUND_FIELD_ON ((USAGE) 0x0f)
+#define HID_USAGE_LED_REPEAT ((USAGE) 0x10)
+#define HID_USAGE_LED_STEREO ((USAGE) 0x11)
+#define HID_USAGE_LED_SAMPLING_RATE_DETECT ((USAGE) 0x12)
+#define HID_USAGE_LED_SPINNING ((USAGE) 0x13)
+#define HID_USAGE_LED_CAV ((USAGE) 0x14)
+#define HID_USAGE_LED_CLV ((USAGE) 0x15)
+#define HID_USAGE_LED_RECORDING_FORMAT_DET ((USAGE) 0x16)
+#define HID_USAGE_LED_OFF_HOOK ((USAGE) 0x17)
+#define HID_USAGE_LED_RING ((USAGE) 0x18)
+#define HID_USAGE_LED_MESSAGE_WAITING ((USAGE) 0x19)
+#define HID_USAGE_LED_DATA_MODE ((USAGE) 0x1a)
+#define HID_USAGE_LED_BATTERY_OPERATION ((USAGE) 0x1b)
+#define HID_USAGE_LED_BATTERY_OK ((USAGE) 0x1c)
+#define HID_USAGE_LED_BATTERY_LOW ((USAGE) 0x1d)
+#define HID_USAGE_LED_SPEAKER ((USAGE) 0x1e)
+#define HID_USAGE_LED_HEAD_SET ((USAGE) 0x1f)
+#define HID_USAGE_LED_HOLD ((USAGE) 0x20)
+#define HID_USAGE_LED_MICROPHONE ((USAGE) 0x21)
+#define HID_USAGE_LED_COVERAGE ((USAGE) 0x22)
+#define HID_USAGE_LED_NIGHT_MODE ((USAGE) 0x23)
+#define HID_USAGE_LED_SEND_CALLS ((USAGE) 0x24)
+#define HID_USAGE_LED_CALL_PICKUP ((USAGE) 0x25)
+#define HID_USAGE_LED_CONFERENCE ((USAGE) 0x26)
+#define HID_USAGE_LED_STAND_BY ((USAGE) 0x27)
+#define HID_USAGE_LED_CAMERA_ON ((USAGE) 0x28)
+#define HID_USAGE_LED_CAMERA_OFF ((USAGE) 0x29)
+#define HID_USAGE_LED_ON_LINE ((USAGE) 0x2a)
+#define HID_USAGE_LED_OFF_LINE ((USAGE) 0x2b)
+#define HID_USAGE_LED_BUSY ((USAGE) 0x2c)
+#define HID_USAGE_LED_READY ((USAGE) 0x2d)
+#define HID_USAGE_LED_PAPER_OUT ((USAGE) 0x2e)
+#define HID_USAGE_LED_PAPER_JAM ((USAGE) 0x2f)
+#define HID_USAGE_LED_REMOTE ((USAGE) 0x30)
+#define HID_USAGE_LED_FORWARD ((USAGE) 0x31)
+#define HID_USAGE_LED_REVERSE ((USAGE) 0x32)
+#define HID_USAGE_LED_STOP ((USAGE) 0x33)
+#define HID_USAGE_LED_REWIND ((USAGE) 0x34)
+#define HID_USAGE_LED_FAST_FORWARD ((USAGE) 0x35)
+#define HID_USAGE_LED_PLAY ((USAGE) 0x36)
+#define HID_USAGE_LED_PAUSE ((USAGE) 0x37)
+#define HID_USAGE_LED_RECORD ((USAGE) 0x38)
+#define HID_USAGE_LED_ERROR ((USAGE) 0x39)
+#define HID_USAGE_LED_SELECTED_INDICATOR ((USAGE) 0x3a)
+#define HID_USAGE_LED_IN_USE_INDICATOR ((USAGE) 0x3b)
+#define HID_USAGE_LED_MULTI_MODE_INDICATOR ((USAGE) 0x3c)
+#define HID_USAGE_LED_INDICATOR_ON ((USAGE) 0x3d)
+#define HID_USAGE_LED_INDICATOR_FLASH ((USAGE) 0x3e)
+#define HID_USAGE_LED_INDICATOR_SLOW_BLINK ((USAGE) 0x3f)
+#define HID_USAGE_LED_INDICATOR_FAST_BLINK ((USAGE) 0x40)
+#define HID_USAGE_LED_INDICATOR_OFF ((USAGE) 0x41)
+#define HID_USAGE_LED_FLASH_ON_TIME ((USAGE) 0x42)
+#define HID_USAGE_LED_SLOW_BLINK_ON_TIME ((USAGE) 0x43)
+#define HID_USAGE_LED_SLOW_BLINK_OFF_TIME ((USAGE) 0x44)
+#define HID_USAGE_LED_FAST_BLINK_ON_TIME ((USAGE) 0x45)
+#define HID_USAGE_LED_FAST_BLINK_OFF_TIME ((USAGE) 0x46)
+#define HID_USAGE_LED_INDICATOR_COLOR ((USAGE) 0x47)
+#define HID_USAGE_LED_RED ((USAGE) 0x48)
+#define HID_USAGE_LED_GREEN ((USAGE) 0x49)
+#define HID_USAGE_LED_AMBER ((USAGE) 0x4a)
+#define HID_USAGE_LED_GENERIC_INDICATOR ((USAGE) 0x4b)
+
+#define HID_USAGE_TELEPHONY_PHONE ((USAGE) 0x01)
+#define HID_USAGE_TELEPHONY_ANSWERING_MACHINE ((USAGE) 0x02)
+#define HID_USAGE_TELEPHONY_MESSAGE_CONTROLS ((USAGE) 0x03)
+#define HID_USAGE_TELEPHONY_HANDSET ((USAGE) 0x04)
+#define HID_USAGE_TELEPHONY_HEADSET ((USAGE) 0x05)
+#define HID_USAGE_TELEPHONY_KEYPAD ((USAGE) 0x06)
#define HID_USAGE_TELEPHONY_PROGRAMMABLE_BUTTON ((USAGE) 0x07)
+#define HID_USAGE_TELEPHONY_REDIAL ((USAGE) 0x24)
+#define HID_USAGE_TELEPHONY_TRANSFER ((USAGE) 0x25)
+#define HID_USAGE_TELEPHONY_DROP ((USAGE) 0x26)
+#define HID_USAGE_TELEPHONY_LINE ((USAGE) 0x2a)
+#define HID_USAGE_TELEPHONY_RING_ENABLE ((USAGE) 0x2d)
+#define HID_USAGE_TELEPHONY_SEND ((USAGE) 0x31)
+#define HID_USAGE_TELEPHONY_KEYPAD_0 ((USAGE) 0xb0)
+#define HID_USAGE_TELEPHONY_KEYPAD_D ((USAGE) 0xbf)
+#define HID_USAGE_TELEPHONY_HOST_AVAILABLE ((USAGE) 0xf1)
-#define HID_USAGE_SIMULATION_RUDDER ((USAGE) 0xBA)
-#define HID_USAGE_SIMULATION_THROTTLE ((USAGE) 0xBB)
+#define HID_USAGE_MS_BTH_HF_DIALNUMBER ((USAGE) 0x21)
+#define HID_USAGE_MS_BTH_HF_DIALMEMORY ((USAGE) 0x22)
-#ifdef __cplusplus
-}
-#endif
+#define HID_USAGE_CONSUMERCTRL ((USAGE)0x01)
+
+#define HID_USAGE_DIGITIZER_PEN ((USAGE)0x02)
+#define HID_USAGE_DIGITIZER_IN_RANGE ((USAGE)0x32)
+#define HID_USAGE_DIGITIZER_TIP_SWITCH ((USAGE)0x42)
+#define HID_USAGE_DIGITIZER_BARREL_SWITCH ((USAGE)0x44)
-#endif /* __HIDUSAGE_H */
+typedef USHORT USAGE,*PUSAGE;
+
+#endif
+#endif
--
1.7.9
From 4f21daa6db6153451f6dc93c5b9cd128e41eff2f Mon Sep 17 00:00:00 2001
From: Kai Tietz <ktiet...@googlemail.com>
Date: Fri, 29 Aug 2014 15:57:14 +0200
Subject: Add monitor-configuration-API
---
.../include/highlevelmonitorconfigurationapi.h | 115 ++++++++++++++++++++
.../include/physicalmonitorenumerationapi.h | 43 ++++++++
2 files changed, 158 insertions(+), 0 deletions(-)
create mode 100644 mingw-w64-headers/include/highlevelmonitorconfigurationapi.h
create mode 100644 mingw-w64-headers/include/physicalmonitorenumerationapi.h
diff --git a/mingw-w64-headers/include/highlevelmonitorconfigurationapi.h
b/mingw-w64-headers/include/highlevelmonitorconfigurationapi.h
new file mode 100644
index 0000000..a7112e0
--- /dev/null
+++ b/mingw-w64-headers/include/highlevelmonitorconfigurationapi.h
@@ -0,0 +1,115 @@
+/**
+ * This file is part of the mingw-w64 runtime package.
+ * No warranty is given; refer to the file DISCLAIMER within this package.
+ */
+
+#include <winapifamily.h>
+
+#ifndef HighLevelMonitorConfigurationAPI_h
+#define HighLevelMonitorConfigurationAPI_h
+
+#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
+
+#include <windows.h>
+#include <physicalmonitorenumerationapi.h>
+
+#define MC_CAPS_NONE 0x00000000
+#define MC_CAPS_MONITOR_TECHNOLOGY_TYPE 0x00000001
+#define MC_CAPS_BRIGHTNESS 0x00000002
+#define MC_CAPS_CONTRAST 0x00000004
+#define MC_CAPS_COLOR_TEMPERATURE 0x00000008
+#define MC_CAPS_RED_GREEN_BLUE_GAIN 0x00000010
+#define MC_CAPS_RED_GREEN_BLUE_DRIVE 0x00000020
+#define MC_CAPS_DEGAUSS 0x00000040
+#define MC_CAPS_DISPLAY_AREA_POSITION 0x00000080
+#define MC_CAPS_DISPLAY_AREA_SIZE 0x00000100
+#define MC_CAPS_RESTORE_FACTORY_DEFAULTS 0x00000400
+#define MC_CAPS_RESTORE_FACTORY_COLOR_DEFAULTS 0x00000800
+#define MC_RESTORE_FACTORY_DEFAULTS_ENABLES_MONITOR_SETTINGS 0x00001000
+
+#define MC_SUPPORTED_COLOR_TEMPERATURE_NONE 0x00000000
+#define MC_SUPPORTED_COLOR_TEMPERATURE_4000K 0x00000001
+#define MC_SUPPORTED_COLOR_TEMPERATURE_5000K 0x00000002
+#define MC_SUPPORTED_COLOR_TEMPERATURE_6500K 0x00000004
+#define MC_SUPPORTED_COLOR_TEMPERATURE_7500K 0x00000008
+#define MC_SUPPORTED_COLOR_TEMPERATURE_8200K 0x00000010
+#define MC_SUPPORTED_COLOR_TEMPERATURE_9300K 0x00000020
+#define MC_SUPPORTED_COLOR_TEMPERATURE_10000K 0x00000040
+#define MC_SUPPORTED_COLOR_TEMPERATURE_11500K 0x00000080
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+ typedef enum _MC_DISPLAY_TECHNOLOGY_TYPE {
+ MC_SHADOW_MASK_CATHODE_RAY_TUBE,
+ MC_APERTURE_GRILL_CATHODE_RAY_TUBE,
+ MC_THIN_FILM_TRANSISTOR,
+ MC_LIQUID_CRYSTAL_ON_SILICON,
+ MC_PLASMA,
+ MC_ORGANIC_LIGHT_EMITTING_DIODE,
+ MC_ELECTROLUMINESCENT,
+ MC_MICROELECTROMECHANICAL,
+ MC_FIELD_EMISSION_DEVICE
+ } MC_DISPLAY_TECHNOLOGY_TYPE,*LPMC_DISPLAY_TECHNOLOGY_TYPE;
+
+ typedef enum _MC_DRIVE_TYPE {
+ MC_RED_DRIVE,
+ MC_GREEN_DRIVE,
+ MC_BLUE_DRIVE
+ } MC_DRIVE_TYPE;
+
+ typedef enum _MC_GAIN_TYPE {
+ MC_RED_GAIN,
+ MC_GREEN_GAIN,
+ MC_BLUE_GAIN
+ } MC_GAIN_TYPE;
+
+ typedef enum _MC_POSITION_TYPE {
+ MC_HORIZONTAL_POSITION,
+ MC_VERTICAL_POSITION
+ } MC_POSITION_TYPE;
+
+ typedef enum _MC_SIZE_TYPE {
+ MC_WIDTH,
+ MC_HEIGHT
+ } MC_SIZE_TYPE;
+
+ typedef enum _MC_COLOR_TEMPERATURE {
+ MC_COLOR_TEMPERATURE_UNKNOWN,
+ MC_COLOR_TEMPERATURE_4000K,
+ MC_COLOR_TEMPERATURE_5000K,
+ MC_COLOR_TEMPERATURE_6500K,
+ MC_COLOR_TEMPERATURE_7500K,
+ MC_COLOR_TEMPERATURE_8200K,
+ MC_COLOR_TEMPERATURE_9300K,
+ MC_COLOR_TEMPERATURE_10000K,
+ MC_COLOR_TEMPERATURE_11500K
+ } MC_COLOR_TEMPERATURE,*LPMC_COLOR_TEMPERATURE;
+
+ _BOOL WINAPI DegaussMonitor (HANDLE hMonitor);
+ _BOOL WINAPI GetMonitorBrightness (HANDLE hMonitor, LPDWORD
pdwMinimumBrightness, LPDWORD pdwCurrentBrightness, LPDWORD
pdwMaximumBrightness);
+ _BOOL WINAPI GetMonitorCapabilities (HANDLE hMonitor, LPDWORD
pdwMonitorCapabilities, LPDWORD pdwSupportedColorTemperatures);
+ _BOOL WINAPI GetMonitorColorTemperature (HANDLE hMonitor,
LPMC_COLOR_TEMPERATURE pctCurrentColorTemperature);
+ _BOOL WINAPI GetMonitorContrast (HANDLE hMonitor, LPDWORD
pdwMinimumContrast, LPDWORD pdwCurrentContrast, LPDWORD pdwMaximumContrast);
+ _BOOL WINAPI GetMonitorDisplayAreaSize (HANDLE hMonitor, MC_SIZE_TYPE
stSizeType, LPDWORD pdwMinimumWidthOrHeight, LPDWORD pdwCurrentWidthOrHeight,
LPDWORD pdwMaximumWidthOrHeight);
+ _BOOL WINAPI GetMonitorDisplayAreaPosition (HANDLE hMonitor,
MC_POSITION_TYPE ptPositionType, LPDWORD pdwMinimumPosition, LPDWORD
pdwCurrentPosition, LPDWORD pdwMaximumPosition);
+ _BOOL WINAPI GetMonitorRedGreenOrBlueDrive (HANDLE hMonitor, MC_DRIVE_TYPE
dtDriveType, LPDWORD pdwMinimumDrive, LPDWORD pdwCurrentDrive, LPDWORD
pdwMaximumDrive);
+ _BOOL WINAPI GetMonitorRedGreenOrBlueGain (HANDLE hMonitor, MC_GAIN_TYPE
gtGainType, LPDWORD pdwMinimumGain, LPDWORD pdwCurrentGain, LPDWORD
pdwMaximumGain);
+ _BOOL WINAPI GetMonitorTechnologyType (HANDLE hMonitor,
LPMC_DISPLAY_TECHNOLOGY_TYPE pdtyDisplayTechnologyType);
+ _BOOL WINAPI RestoreMonitorFactoryColorDefaults (HANDLE hMonitor);
+ _BOOL WINAPI RestoreMonitorFactoryDefaults (HANDLE hMonitor);
+ _BOOL WINAPI SaveCurrentMonitorSettings (HANDLE hMonitor);
+ _BOOL WINAPI SetMonitorBrightness (HANDLE hMonitor, DWORD dwNewBrightness);
+ _BOOL WINAPI SetMonitorColorTemperature (HANDLE hMonitor,
MC_COLOR_TEMPERATURE ctCurrentColorTemperature);
+ _BOOL WINAPI SetMonitorContrast (HANDLE hMonitor, DWORD dwNewContrast);
+ _BOOL WINAPI SetMonitorDisplayAreaSize (HANDLE hMonitor, MC_SIZE_TYPE
stSizeType, DWORD dwNewDisplayAreaWidthOrHeight);
+ _BOOL WINAPI SetMonitorDisplayAreaPosition (HANDLE hMonitor,
MC_POSITION_TYPE ptPositionType, DWORD dwNewPosition);
+ _BOOL WINAPI SetMonitorRedGreenOrBlueDrive (HANDLE hMonitor, MC_DRIVE_TYPE
dtDriveType, DWORD dwNewDrive);
+ _BOOL WINAPI SetMonitorRedGreenOrBlueGain (HANDLE hMonitor, MC_GAIN_TYPE
gtGainType, DWORD dwNewGain);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
+#endif
diff --git a/mingw-w64-headers/include/physicalmonitorenumerationapi.h
b/mingw-w64-headers/include/physicalmonitorenumerationapi.h
new file mode 100644
index 0000000..5b44319
--- /dev/null
+++ b/mingw-w64-headers/include/physicalmonitorenumerationapi.h
@@ -0,0 +1,43 @@
+/**
+ * This file is part of the mingw-w64 runtime package.
+ * No warranty is given; refer to the file DISCLAIMER within this package.
+ */
+
+#include <winapifamily.h>
+
+#ifndef PhysicalMonitorEnumerationAPI_h
+#define PhysicalMonitorEnumerationAPI_h
+
+#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
+
+#include <d3d9.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define PHYSICAL_MONITOR_DESCRIPTION_SIZE 128
+
+ typedef WINBOOL _BOOL;
+
+#include <pshpack1.h>
+
+ typedef struct _PHYSICAL_MONITOR {
+ HANDLE hPhysicalMonitor;
+ WCHAR szPhysicalMonitorDescription[PHYSICAL_MONITOR_DESCRIPTION_SIZE];
+ } PHYSICAL_MONITOR,*LPPHYSICAL_MONITOR;
+
+#include <poppack.h>
+
+ _BOOL WINAPI DestroyPhysicalMonitor (HANDLE hMonitor);
+ _BOOL WINAPI DestroyPhysicalMonitors (DWORD dwPhysicalMonitorArraySize,
LPPHYSICAL_MONITOR pPhysicalMonitorArray);
+ _BOOL WINAPI GetNumberOfPhysicalMonitorsFromHMONITOR (HMONITOR hMonitor,
LPDWORD pdwNumberOfPhysicalMonitors);
+ HRESULT WINAPI GetNumberOfPhysicalMonitorsFromIDirect3DDevice9
(IDirect3DDevice9 *pDirect3DDevice9, LPDWORD pdwNumberOfPhysicalMonitors);
+ _BOOL WINAPI GetPhysicalMonitorsFromHMONITOR (HMONITOR hMonitor, DWORD
dwPhysicalMonitorArraySize, LPPHYSICAL_MONITOR pPhysicalMonitorArray);
+ HRESULT WINAPI GetPhysicalMonitorsFromIDirect3DDevice9 (IDirect3DDevice9
*pDirect3DDevice9, DWORD dwPhysicalMonitorArraySize, LPPHYSICAL_MONITOR
pPhysicalMonitorArray);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
+#endif
--
1.7.9
------------------------------------------------------------------------------
Slashdot TV.
Video for Nerds. Stuff that matters.
http://tv.slashdot.org/
_______________________________________________
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public