Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
godotengine
GitHub Repository: godotengine/godot
Path: blob/master/thirdparty/sdl/hidapi/windows/hidapi_cfgmgr32.h
9917 views
1
/*******************************************************
2
HIDAPI - Multi-Platform library for
3
communication with HID devices.
4
5
libusb/hidapi Team
6
7
Copyright 2022, All Rights Reserved.
8
9
At the discretion of the user of this library,
10
this software may be licensed under the terms of the
11
GNU General Public License v3, a BSD-Style license, or the
12
original HIDAPI license as outlined in the LICENSE.txt,
13
LICENSE-gpl3.txt, LICENSE-bsd.txt, and LICENSE-orig.txt
14
files located at the root of the source distribution.
15
These files may also be found in the public source
16
code repository located at:
17
https://github.com/libusb/hidapi .
18
********************************************************/
19
20
#ifndef HIDAPI_CFGMGR32_H
21
#define HIDAPI_CFGMGR32_H
22
23
#ifdef HIDAPI_USE_DDK
24
25
#include <cfgmgr32.h>
26
#include <initguid.h>
27
#include <devpkey.h>
28
#include <propkey.h>
29
30
#else
31
32
/* This part of the header mimics cfgmgr32.h,
33
but only what is used by HIDAPI */
34
35
//#include <initguid.h>
36
#include <devpropdef.h>
37
//#include <propkeydef.h>
38
39
#ifndef PROPERTYKEY_DEFINED
40
#define PROPERTYKEY_DEFINED
41
42
typedef struct
43
{
44
GUID fmtid;
45
DWORD pid;
46
} PROPERTYKEY;
47
48
#endif /* PROPERTYKEY_DEFINED */
49
50
typedef DWORD RETURN_TYPE;
51
typedef RETURN_TYPE CONFIGRET;
52
typedef DWORD DEVNODE, DEVINST;
53
typedef DEVNODE* PDEVNODE, * PDEVINST;
54
typedef WCHAR* DEVNODEID_W, * DEVINSTID_W;
55
56
#define CR_SUCCESS (0x00000000)
57
#define CR_BUFFER_SMALL (0x0000001A)
58
#define CR_FAILURE (0x00000013)
59
60
#define CM_LOCATE_DEVNODE_NORMAL 0x00000000
61
62
#define CM_GET_DEVICE_INTERFACE_LIST_PRESENT (0x00000000)
63
64
typedef CONFIGRET(__stdcall* CM_Locate_DevNodeW_)(PDEVINST pdnDevInst, DEVINSTID_W pDeviceID, ULONG ulFlags);
65
typedef CONFIGRET(__stdcall* CM_Get_Parent_)(PDEVINST pdnDevInst, DEVINST dnDevInst, ULONG ulFlags);
66
typedef CONFIGRET(__stdcall* CM_Get_DevNode_PropertyW_)(DEVINST dnDevInst, CONST DEVPROPKEY* PropertyKey, DEVPROPTYPE* PropertyType, PBYTE PropertyBuffer, PULONG PropertyBufferSize, ULONG ulFlags);
67
typedef CONFIGRET(__stdcall* CM_Get_Device_Interface_PropertyW_)(LPCWSTR pszDeviceInterface, CONST DEVPROPKEY* PropertyKey, DEVPROPTYPE* PropertyType, PBYTE PropertyBuffer, PULONG PropertyBufferSize, ULONG ulFlags);
68
typedef CONFIGRET(__stdcall* CM_Get_Device_Interface_List_SizeW_)(PULONG pulLen, LPGUID InterfaceClassGuid, DEVINSTID_W pDeviceID, ULONG ulFlags);
69
typedef CONFIGRET(__stdcall* CM_Get_Device_Interface_ListW_)(LPGUID InterfaceClassGuid, DEVINSTID_W pDeviceID, WCHAR* /*PZZWSTR*/ Buffer, ULONG BufferLen, ULONG ulFlags);
70
71
// from devpkey.h
72
static DEVPROPKEY DEVPKEY_NAME = { { 0xb725f130, 0x47ef, 0x101a, {0xa5, 0xf1, 0x02, 0x60, 0x8c, 0x9e, 0xeb, 0xac} }, 10 }; // DEVPROP_TYPE_STRING
73
static DEVPROPKEY DEVPKEY_Device_Manufacturer = { { 0xa45c254e, 0xdf1c, 0x4efd, {0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0} }, 13 }; // DEVPROP_TYPE_STRING
74
static DEVPROPKEY DEVPKEY_Device_InstanceId = { { 0x78c34fc8, 0x104a, 0x4aca, {0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57} }, 256 }; // DEVPROP_TYPE_STRING
75
static DEVPROPKEY DEVPKEY_Device_HardwareIds = { { 0xa45c254e, 0xdf1c, 0x4efd, {0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0} }, 3 }; // DEVPROP_TYPE_STRING_LIST
76
static DEVPROPKEY DEVPKEY_Device_CompatibleIds = { { 0xa45c254e, 0xdf1c, 0x4efd, {0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0} }, 4 }; // DEVPROP_TYPE_STRING_LIST
77
static DEVPROPKEY DEVPKEY_Device_ContainerId = { { 0x8c7ed206, 0x3f8a, 0x4827, {0xb3, 0xab, 0xae, 0x9e, 0x1f, 0xae, 0xfc, 0x6c} }, 2 }; // DEVPROP_TYPE_GUID
78
79
// from propkey.h
80
static PROPERTYKEY PKEY_DeviceInterface_Bluetooth_DeviceAddress = { { 0x2bd67d8b, 0x8beb, 0x48d5, {0x87, 0xe0, 0x6c, 0xda, 0x34, 0x28, 0x04, 0x0a} }, 1 }; // DEVPROP_TYPE_STRING
81
static PROPERTYKEY PKEY_DeviceInterface_Bluetooth_Manufacturer = { { 0x2bd67d8b, 0x8beb, 0x48d5, {0x87, 0xe0, 0x6c, 0xda, 0x34, 0x28, 0x04, 0x0a} }, 4 }; // DEVPROP_TYPE_STRING
82
static PROPERTYKEY PKEY_DeviceInterface_Bluetooth_ModelNumber = { { 0x2BD67D8B, 0x8BEB, 0x48D5, {0x87, 0xE0, 0x6C, 0xDA, 0x34, 0x28, 0x04, 0x0A} }, 5 }; // DEVPROP_TYPE_STRING
83
84
#endif
85
86
#endif /* HIDAPI_CFGMGR32_H */
87
88