This is the signature of the IOHIDDeviceRegisterInputReportCallback
function according to the documentation:
CF_EXPORT void IOHIDDeviceRegisterInputReportCallback(
IOHIDDeviceRef device,
uint8_t *report,
CFIndex reportLength,
IOHIDReportCallback callback,
void *context) AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER;
As you can see the first argument should be a IOHIDDeviceRef
and you are passing in a CFSetRef
which provide[s] support for the mathematical concept of a set
as Martin R answer indicates.
To get the elements of the set and pass the device (if any) you should do the following:
CFSetRef devices = IOHIDManagerCopyDevices(HIDManager);
CFIndex size = CFSetGetCount(devices);
if(size > 0) {
CFTypeRef array[size]; // array of IOHIDDeviceRef
CFSetGetValues(devices, array);
IOHIDDeviceRegisterInputReportCallback((IOHIDDeviceRef)array[0], report, ReadDailyDataResonposeSize, Handle_IOHIDDeviceIOHIDReportCallback, NULL);
}
Hope it helps.