How do I access FMOD_STUDIO_EVENTINSTANCE properties in C++?

Hello! I am making my own FMOD_STUDIO_EVENT_CALLBACK implementation, but the FMOD_STUDIO_EVENTINSTANCE type described in the function definition doesn’t have any data on it for me to access in the C++ code. All I can find is this:

typedef struct          FMOD_STUDIO_EVENTINSTANCE    FMOD_STUDIO_EVENTINSTANCE;

The docs in for the callback function say that the FMOD_STUDIO_EVENTINSTANCE is actually a Studio::EventInstance, but I am not sure how to leverage that in my code.

Edit: I actually got it figured out (I think). I cast it to the EventInstance type and have been making ground:

int count;
FMOD::Studio::EventDescription* eventDescription;
((FMOD::Studio::EventInstance*) event)->getDescription(&eventDescription);
eventDescription->getInstanceCount(&count);

Why is there a layer of indirection with the type here?

We have a single callback structure shared between C and C++, as you’ve discovered to access the C++ interface you need to cast to the C++ equivalent type, i.e. FMOD_STUDIO_EVENTINSTANCE becomes FMOD::Studio::EventInstance.