pMajor = pMinor = bugFix = c_int()
is wrong: all three Python names are the same c_int
instance, so will contain the same value! What you're doing is equivalent to the following code in C:
int x;
getFrameworkVersion(&x, &x, &x);
So the fact that you get 0.0.0
is probably because the real result would end in .0
, which overwrites the previous two values.