It's worth keeping in mind that even if a mouse isn't connected to the laptop, but there is a touchpad, Device Manager's "Devices by type" section under "Mice and other pointing devices" shows "HID-compliant mouse," which has Touchpad data in the registry, as shown above:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\HID\06CB0001&Col02\5&14254c89&0&0001]
"Capabilities"=dword:000000e0
"Address"=dword:00000001
"ConfigFlags"=dword:00000000
"ContainerID"="{00000000-0000-0000-ffff-ffffffffffff}"
"HardwareID"=hex(7):48,00,49,00,44,00,5c,00,56,00,45,00,4e,00,5f,00,30,00,36,\
00,43,00,42,00,26,00,44,00,45,00,56,00,5f,00,30,00,30,00,30,00,31,00,26,00,\
43,00,6f,00,6c,00,30,00,32,00,00,00,48,00,49,00,44,00,5c,00,30,00,36,00,43,\
00,42,00,30,00,30,00,30,00,31,00,26,00,43,00,6f,00,6c,00,30,00,32,00,00,00,\
48,00,49,00,44,00,5c,00,2a,00,30,00,36,00,43,00,42,00,30,00,30,00,30,00,31,\
00,26,00,43,00,6f,00,6c,00,30,00,32,00,00,00,48,00,49,00,44,00,5c,00,56,00,\
49,00,44,00,5f,00,30,00,36,00,43,00,42,00,26,00,55,00,50,00,3a,00,30,00,30,\
00,30,00,44,00,5f,00,55,00,3a,00,30,00,30,00,30,00,35,00,00,00,48,00,49,00,\
44,00,5f,00,44,00,45,00,56,00,49,00,43,00,45,00,5f,00,55,00,50,00,3a,00,30,\
00,30,00,30,00,44,00,5f,00,55,00,3a,00,30,00,30,00,30,00,35,00,00,00,48,00,\
49,00,44,00,5f,00,44,00,45,00,56,00,49,00,43,00,45,00,00,00,00,00
"CompatibleIDs"=hex(7):00,00,00,00
"ClassGUID"="{745a17a0-74d3-11d0-b6fe-00a0c90f57da}"
"DeviceDesc"="@input.inf,%hid_device_touch_pad%;HID-compliant touch pad"
"Driver"="{745a17a0-74d3-11d0-b6fe-00a0c90f57da}\0010"
"Mfg"="@input.inf,%stdmfg%;(Standard system devices)"
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class{745a17a0-74d3-11d0-b6fe-00a0c90f57da}\0010]
"DriverDesc"="HID-compliant touch pad"
"ProviderName"="Microsoft"
"DriverDateData"=hex:00,80,8c,a3,c5,94,c6,01
"DriverDate"="6-21-2006"
"DriverVersion"="10.0.15063.0"
"InfPath"="input.inf"
"InfSection"="HID_Raw_Inst.NT"
"MatchingDeviceId"="HID_DEVICE_UP:000D_U:0005"
If Raw Input is used, then there are both WM_INPUT messages from the Touchpad and Mouse messages generated by Windows under appropriate conditions, and they can be separated as described above.
If we use the VBS code below to obtain the properties of the Win32_PointingDevice WMI class, the Touchpad is represented as a pure Mouse.
Availability
Caption HID-compatible mouse
ConfigManagerErrorCode 0
ConfigManagerUserConfig False
CreationClassName Win32_PointingDevice
Description HID-compatible mouse
DeviceID HID\06CB0001&COL01\5&14254C89&0&0000
DeviceInterface 162
DoubleSpeedThreshold
ErrorCleared
ErrorDescription
Handedness
HardwareType HID-compatible mouse
InfFileName msmouse.inf
InfSection HID_Mouse_Inst.NT
InstallDate
IsLocked
LastErrorCode
Manufacturer Microsoft
Name HID-compatible mouse
NumberOfButtons 0
PNPDeviceID HID\06CB0001&COL01\5&14254C89&0&0000
PointingType 2
PowerManagementCapabilities
PowerManagementSupported False
QuadSpeedThreshold
Resolution
SampleRate
Status OK
StatusInfo
Synch
SystemCreationClassName Win32_ComputerSystem
SystemName DESKTOP-AQ9A0EE
The Touchpad and Mouse have buttons. Mouse Wheel functions are implemented on the Precision Touchpad via Scroll and Scale Gestures. The MS Surface Arc Mouse and Microsoft Arc Mouse use Touch, Touch + Move (V, H) instead of buttons and wheel. At one time, in the field of mini-computers, they tried to represent any device as a file, but Microsoft Corp. went the way of different classes of devices, but the Mouse and Touchpad are also close in software and can generate identical messages and are classified as "Mice and other pointing devices."
The difference between modern Windows Touchpads and Mouses is the 3-Finger System Gestures. And it's no time to rejoice that the application receives all the Raw Input information, because System Gestures are still functional.
The lack of an alternative to the Touchpad on most laptops can be somewhat depressing, but Surface devices have a Touch Screen and Touch Pen, and Windows supports simple operations, while more complex ones can be handled both as Raw Input and as Pointer messages (WM_POINTER...), WM_TOUCH, WM_GRSTURE, WM_TABLET_FLICK.