Not all members are always initialized (not yet initialized members being
null); there are three levels:
Minimally, only aBase,
pBaseTypeDescription, aUik,
nBaseTypes, and ppBaseTypes are initialized;
aBase.bComplete is false. This only happens when an
interface type description is created with
typelib_static_mi_interface_type_init or
typelib_static_interface_type_init.
At the next level, nMembers, ppMembers,
nAllMembers, ppAllMembers are also
initialized; aBase.bComplete is still false. This happens
when an interface type description is created with
typelib_typedescription_newMIInterface or
typelib_typedescription_newInterface.
At the final level, pMapMemberIndexToFunctionIndex,
nMapFunctionIndexToMemberIndex, and
pMapFunctionIndexToMemberIndex are also initialized;
aBase.bComplete is true. This happens after a call to
typelib_typedescription_complete.