XPCAircraft bases on and is compile-compatible to the XPCAircraft wrapper class provided with the original libxplanemp. In XPMP2, however, this class is not a wrapper but derived from XPMP2::Aircraft, which is the actual means of managing aircraft, Hence, it includes a lot more members.
New implementations should derive directly from XPMP2::Aircraft.
Instead, use XPMPGetModelInfo2().
This legacy function is defined with pointers to text arrays as return type. This is rather unsafe. XPMP2's internal maps and buffers may change if more models are loaded, hence pointers may become invalid. Don't rely on these pointers staying valid over an extended period of time.
Member XPMPGetPlaneData (XPMPPlaneID, XPMPPlaneDataType, void *)
Not supported in XPMP2! In the legacy library this is actually more like an internal function, calling all callback functions for querying aircraft data (much like XPCAircraft::UpdatePosition() is now in XPMP2). I doubt that it was intended to be called from the outside in the first place.