Canon Edsdk Documentation
One of the most confusing aspects for newcomers is the event handling mechanism. The SDK uses either (set via EdsSetObjectEventHandler and EdsSetPropertyEventHandler ) or manual polling (with EdsGetEvent ). The official documentation describes the callbacks but doesn't emphasize that you must run a message loop or wait on an event object, otherwise no events will fire. This is where the sample code saves you.
This is the core of the SDK. Developers can programmatically adjust virtually every setting available on the camera body: canon edsdk documentation