Official doc says: EdsSetPropertyEventHandler will fire when a property changes.
What it doesn’t say: The inPropertyID parameter in the callback is not always reliable. Sometimes you receive kEdsPropID_Unknown and must query the current state manually.
Solution: In your event handler, ignore the passed ID and always call EdsGetPropertyData on the property you care about. This workaround is only found in forum posts.
The official kEdsPropID list stops around 2018. Newer cameras add properties like kEdsPropID_SubjectTrackingMode (0x000010xx range). Canon updates the header file, but not the PDF. canon edsdk documentation
Solution: Download the latest SDK version and open EDSDK.h. Search for kEdsPropID. The new IDs are there, with names, but zero explanation of acceptable values.
Location: GitHub repositories and the edskd-notes community
This is perhaps the most comprehensive unofficial documentation. Contributors have reverse-engineered and documented: Camera model
Key resource: Search GitHub for canon-edsdk-notes or edsdk-cheat-sheet.
To help you specifically, please clarify: canon edsdk documentation
Camera model? (Some features require newer SDK versions)