# I~1

# InBedScreenController::_registerEventHandlers::__l2::<lambda_16141b15d6dad6d753a8f5c8779fe33a>

struct __cppobj InBedScreenController::_registerEventHandlers::__l2::<lambda_16141b15d6dad6d753a8f5c8779fe33a>
{
  InBedScreenController *const __this;
};

# InBedScreenController::_registerEventHandlers::__l2::<lambda_4e4f585eb71eb599ddb9ea425f0eac59>

struct __cppobj InBedScreenController::_registerEventHandlers::__l2::<lambda_4e4f585eb71eb599ddb9ea425f0eac59>
{
  InBedScreenController *const __this;
};

# ImmersiveReaderScreenController::_registerEventHandlers::__l2::<lambda_f644e79eb2322fa2b07f1f2f962aef68>

struct __cppobj ImmersiveReaderScreenController::_registerEventHandlers::__l2::<lambda_f644e79eb2322fa2b07f1f2f962aef68>
{
  ImmersiveReaderScreenController *const __this;
};

# ImmersiveReaderScreenController::_registerBindings::__l2::<lambda_88ed3c0cc510c9d4f81ee3ab8ba2b015>

struct __cppobj ImmersiveReaderScreenController::_registerBindings::__l2::<lambda_88ed3c0cc510c9d4f81ee3ab8ba2b015>
{
  ImmersiveReaderScreenController *const __this;
};

# ImmersiveReaderScreenController::_registerBindings::__l2::<lambda_0aef5fc40dbe625de07a8a25bccbf804>

struct __cppobj ImmersiveReaderScreenController::_registerBindings::__l2::<lambda_0aef5fc40dbe625de07a8a25bccbf804>
{
  ImmersiveReaderScreenController *const __this;
};

# ImmersiveReaderScreenController::_registerBindings::__l2::<lambda_22485270e5596b70d7034472f5f56079>

struct __cppobj ImmersiveReaderScreenController::_registerBindings::__l2::<lambda_22485270e5596b70d7034472f5f56079>
{
  ImmersiveReaderScreenController *const __this;
};

# ImmersiveReaderScreenController::_registerBindings::__l2::<lambda_e5171c1eae7f4219c5dc4c3a9c59d670>

struct __cppobj ImmersiveReaderScreenController::_registerBindings::__l2::<lambda_e5171c1eae7f4219c5dc4c3a9c59d670>
{
  ImmersiveReaderScreenController *const __this;
};

# ImmersiveReaderScreenController::_registerBindings::__l2::<lambda_839fbb50118cba5b44d34514ced7d76a>

struct __cppobj ImmersiveReaderScreenController::_registerBindings::__l2::<lambda_839fbb50118cba5b44d34514ced7d76a>
{
  ImmersiveReaderScreenController *const __this;
};

# ImmersiveReaderScreenController::_registerBindings::__l2::<lambda_37b579dcf87fce40c18ee47466b3f31a>

struct __cppobj ImmersiveReaderScreenController::_registerBindings::__l2::<lambda_37b579dcf87fce40c18ee47466b3f31a>
{
  ImmersiveReaderScreenController *const __this;
};

# ImmersiveReaderScreenController::_registerBindings::__l2::<lambda_87ff2ef193fe8f36c494ac52df3bae17>

struct __cppobj ImmersiveReaderScreenController::_registerBindings::__l2::<lambda_87ff2ef193fe8f36c494ac52df3bae17>
{
};

# ImmersiveReaderScreenController::tick::__l24::<lambda_8204572f3334e02476287c30f66bfa83>

struct __cppobj ImmersiveReaderScreenController::tick::__l24::<lambda_8204572f3334e02476287c30f66bfa83>
{
  std::weak_ptr<ImmersiveReaderScreenController> weakThis;
};

# InvalidResourceItem

struct __cppobj InvalidResourceItem : ContentItem
{
  ResourceLocation mLocation;
  InvalidPacksFilterGroup mFilter;
};

# InvalidResourceItem_vtbl

struct /*VFT*/ InvalidResourceItem_vtbl
{
  void (__fastcall *~ContentItem)(ContentItem *this);
};

# InvalidResourceSource

struct __cppobj InvalidResourceSource : ContentSource
{
  ResourcePackRepository *mResourceRepository;
  InvalidPacksFilterGroup mFilter;
  std::vector<ResourceLocation> mInvalidPacks;
};

# InvalidResourceSource_vtbl

struct /*VFT*/ InvalidResourceSource_vtbl
{
  void (__fastcall *~ContentSource)(ContentSource *this);
  void (__fastcall *load)(ContentSource *this);
  void (__fastcall *generateItems)(ContentSource *this, std::vector<std::unique_ptr<ContentItem>> *);
  void (__fastcall *save)(ContentSource *this);
  void (__fastcall *deleteContentFiles)(ContentSource *this, std::vector<ContentItem const *>);
  void (__fastcall *postDeleteContent)(ContentSource *this, std::vector<ContentItem const *>);
};

# IWorldSettingsStorage

struct __cppobj IWorldSettingsStorage
{
  IWorldSettingsStorage_vtbl *__vftable /*VFT*/;
};

# IWorldSettingsStorage_vtbl

struct /*VFT*/ IWorldSettingsStorage_vtbl
{
  void (__fastcall *~IWorldSettingsStorage)(IWorldSettingsStorage *this);
  bool (__fastcall *checkAvailableSpaceForLevel)(IWorldSettingsStorage *this, std::shared_ptr<Core::FileStorageArea>);
  void (__fastcall *saveWorld)(IWorldSettingsStorage *this);
  LevelSummary *(__fastcall *getLevelSummary)(IWorldSettingsStorage *this);
  LevelData *(__fastcall *getLevelData)(IWorldSettingsStorage *this);
};

# InGamePlayScreen

struct __cppobj InGamePlayScreen : BaseScreen
{
  Matrix mLastProjMatrix;
  Matrix mLastModelViewMatrix;
  Vec3 mPickDirection;
  Vec2 mTurnDelta;
  Vec2 mLastPlayerRotation;
  Vec2 mLastPlayerAngleVel;
  Vec2 mLastHandRotation;
  Vec2 mLastHandVel;
  long double mLastTime;
  long double mLastVRStepSoundTime;
  Vec3 mPreviousDirectTurnVector;
  float mTapTurnAmountRadians;
  float mLastDirectTurnAmountRadians;
  float mRotXTouch;
  float mRotYTouch;
  float mRotXTouchLast;
  float mRotYTouchLast;
  float mLastTickT;
  int mTick;
  bool mTapTurnActive;
  bool mPrevTapTurnActive;
  bool mPrevAtBorder;
  bool mRollTurnTempActivation;
  float mDXLast;
  float mDYLast;
  Vec3 mLastHitLocation;
  bool mbHitLocationRecorded;
  std::unique_ptr<FullScreenEffectRenderer> mFullscreenEffectRenderer;
  IMinecraftGame *mMinecraft;
  IClientInstance *mClient;
};

# InGamePlayScreen_vtbl

struct /*VFT*/ InGamePlayScreen_vtbl
{
  void (__fastcall *~AbstractScene)(AbstractScene *this);
  void (__fastcall *OnMessage)(AbstractScene *this, UIMessage, std::string, std::vector<std::shared_ptr<MessageParam>>);
  std::shared_ptr<UIControl> *(__fastcall *getRootControl)(AbstractScene *this, std::shared_ptr<UIControl> *result);
  std::shared_ptr<UIControlFactory> *(__fastcall *getControlFactory)(AbstractScene *this, std::shared_ptr<UIControlFactory> *result);
  bool (__fastcall *isShowingModUI)(AbstractScene *this);
  void (__fastcall *setIsShowingModUI)(AbstractScene *this, bool);
  bool (__fastcall *isUIScene)(AbstractScene *this);
  void (__fastcall *init)(AbstractScene *this, const ScreenSizeData *);
  void (__fastcall *setSize)(AbstractScene *this, const ScreenSizeData *);
  void (__fastcall *onSetKeyboardHeight)(AbstractScene *this, float);
  void (__fastcall *onInternetUpdate)(AbstractScene *this);
  std::vector<RectangleArea> *(__fastcall *getInputAreas)(AbstractScene *this, std::vector<RectangleArea> *result);
  void (__fastcall *onFocusGained)(AbstractScene *this);
  void (__fastcall *onFocusLost)(AbstractScene *this);
  void (__fastcall *terminate)(AbstractScene *this);
  void (__fastcall *onCreation)(AbstractScene *this);
  void (__fastcall *onLeave)(AbstractScene *this);
  void (__fastcall *onGameEventNotification)(AbstractScene *this, ui::GameEventNotification);
  void (__fastcall *_handleDirtyVisualTree)(AbstractScene *this, bool);
  void (__fastcall *leaveScreen)(AbstractScene *this);
  void (__fastcall *tick)(AbstractScene *this, int, int);
  void (__fastcall *updateEvents)(AbstractScene *this);
  void (__fastcall *applyInput)(AbstractScene *this, float);
  void (__fastcall *update)(AbstractScene *this, long double);
  void (__fastcall *frameUpdate)(AbstractScene *this, MinecraftUIFrameUpdateContext *);
  void (__fastcall *preRenderUpdate)(AbstractScene *this, ScreenContext *);
  void (__fastcall *prepareFrame)(AbstractScene *this, ScreenContext *);
  void (__fastcall *render)(AbstractScene *this, ScreenContext *, const FrameRenderObject *);
  void (__fastcall *postRenderUpdate)(AbstractScene *this, ScreenContext *);
  void (__fastcall *setupAndRender)(AbstractScene *this, ScreenContext *);
  void (__fastcall *handleInputModeChanged)(AbstractScene *this, InputMode);
  void (__fastcall *handleHoloInputModeChanged)(AbstractScene *this, HoloUIInputMode);
  void (__fastcall *handleButtonPress)(AbstractScene *this, unsigned int, FocusImpact);
  void (__fastcall *handleButtonRelease)(AbstractScene *this, unsigned int, FocusImpact);
  void (__fastcall *handleRawInputEvent)(AbstractScene *this, int, RawInputType, ButtonState, bool);
  bool (__fastcall *handlePointerLocation)(AbstractScene *this, const PointerLocationEventData *, FocusImpact);
  void (__fastcall *handlePointerPressed)(AbstractScene *this, bool);
  void (__fastcall *handleDirection)(AbstractScene *this, DirectionId, float, float, FocusImpact);
  bool (__fastcall *handleBackEvent)(AbstractScene *this, bool);
  void (__fastcall *handleTextChar)(AbstractScene *this, const std::string *, bool, FocusImpact);
  void (__fastcall *handleCaretLocation)(AbstractScene *this, int, FocusImpact);
  void (__fastcall *setTextboxText)(AbstractScene *this, const std::string *);
  void (__fastcall *onKeyboardDismissed)(AbstractScene *this);
  void (__fastcall *onKeyboardDisabled)(AbstractScene *this);
  void (__fastcall *handleLicenseChanged)(AbstractScene *this);
  void (__fastcall *handleIdentityGained)(AbstractScene *this);
  void (__fastcall *handleIdentityLost)(AbstractScene *this);
  void (__fastcall *handleGazeGestureInput)(AbstractScene *this, __int16, float, float, float, FocusImpact);
  void (__fastcall *handleDictationEvent)(AbstractScene *this, const std::string *);
  void (__fastcall *handleCommandEvent)(AbstractScene *this, const VoiceCommand *);
  bool (__fastcall *renderGameBehind)(AbstractScene *this);
  bool (__fastcall *absorbsInput)(AbstractScene *this);
  bool (__fastcall *closeOnPlayerHurt)(AbstractScene *this);
  bool (__fastcall *isModal)(AbstractScene *this);
  bool (__fastcall *isShowingMenu)(AbstractScene *this);
  bool (__fastcall *shouldStealMouse)(AbstractScene *this);
  bool (__fastcall *screenIsNotFlushable)(AbstractScene *this);
  bool (__fastcall *alwaysAcceptsInput)(AbstractScene *this);
  bool (__fastcall *screenDrawsLast)(AbstractScene *this);
  bool (__fastcall *isPlayScreen)(AbstractScene *this);
  bool (__fastcall *renderOnlyWhenTopMost)(AbstractScene *this);
  bool (__fastcall *lowFreqRendering)(AbstractScene *this);
  bool (__fastcall *ignoreAsTop)(AbstractScene *this);
  bool (__fastcall *screenHandlesGamepadMenuButton)(AbstractScene *this);
  bool (__fastcall *shouldUpdateWhenSuspended)(AbstractScene *this);
  int (__fastcall *getWidth)(AbstractScene *this);
  int (__fastcall *getHeight)(AbstractScene *this);
  void (__fastcall *reload)(AbstractScene *this);
  const RectangleArea *(__fastcall *getRenderingAABB)(AbstractScene *this);
  EyeRenderingModeBit (__fastcall *getEyeRenderingMode)(AbstractScene *this);
  ui::SceneType (__fastcall *getSceneType)(AbstractScene *this);
  std::string *(__fastcall *getScreenName)(AbstractScene *this, std::string *result);
  std::string *(__fastcall *getRoute)(AbstractScene *this, std::string *result);
  std::string *(__fastcall *getScreenTelemetryName)(AbstractScene *this, std::string *result);
  void (__fastcall *addEventProperties)(AbstractScene *this, std::unordered_map<std::string,std::string> *);
  int (__fastcall *getScreenVersion)(AbstractScene *this);
  void (__fastcall *processBufferedTextCharEvents)(AbstractScene *this, const std::vector<TextCharEventData> *);
  bool (__fastcall *getShouldSendEvents)(AbstractScene *this);
  void (__fastcall *setShouldSendEvents)(AbstractScene *this, bool);
  bool (__fastcall *getWantsTextOnly)(AbstractScene *this);
  void (__fastcall *setWantsTextOnly)(AbstractScene *this, bool);
  void (__fastcall *onDelete)(AbstractScene *this, CachedScenes *, TaskGroup *);
  bool (__fastcall *isGamepadCursorEnabled)(AbstractScene *this);
  bool (__fastcall *isGamepadDeflectionModeEnabled)(AbstractScene *this);
  const glm::tvec2<float,0> *(__fastcall *getGamepadCursorPosition)(AbstractScene *this);
  void (__fastcall *cleanInputComponents)(AbstractScene *this);
  std::weak_ptr<AbstractSceneProxy> *(__fastcall *getProxy)(AbstractScene *this, std::weak_ptr<AbstractSceneProxy> *result);
  bool (__fastcall *canBePushed)(AbstractScene *this);
  bool (__fastcall *canBePopped)(AbstractScene *this);
  bool (__fastcall *canBeTransitioned)(AbstractScene *this);
  void (__fastcall *onScreenExit)(AbstractScene *this, bool, bool);
  void (__fastcall *onScreenEntrance)(AbstractScene *this, bool, bool);
  bool (__fastcall *isEntering)(AbstractScene *this);
  bool (__fastcall *isExiting)(AbstractScene *this);
  void (__fastcall *schedulePop)(AbstractScene *this);
  bool (__fastcall *isTerminating)(AbstractScene *this);
  bool (__fastcall *loadScreenImmediately)(AbstractScene *this);
  bool (__fastcall *forceUpdateActiveSceneStackWhenPushed)(AbstractScene *this);
  bool (__fastcall *hasFinishedLoading)(AbstractScene *this);
  void (__fastcall *sendScreenEvent)(AbstractScene *this, const std::string *, const std::string *);
  void (__fastcall *setDebugFeature)(AbstractScene *this, UIDebugCommandFeature, bool);
  void (__fastcall *setScreenState)(AbstractScene *this, const std::vector<std::pair<std::string,std::string >> *);
  void (__fastcall *setupForRendering)(BaseScreen *this, ScreenContext *);
  void (__fastcall *cleanupForRendering)(BaseScreen *this, ScreenContext *);
  void (__fastcall *setScreenSetupCleanup)(BaseScreen *this, std::unique_ptr<AbstractScreenSetupCleanupStrategy>);
  bool (__fastcall *_isPlayerSuspended)(InGamePlayScreen *this);
  void (__fastcall *_renderLevelPrep)(InGamePlayScreen *this, ScreenContext *, LevelRenderer *, Actor *);
  void (__fastcall *_renderLevel)(InGamePlayScreen *this, ScreenContext *, const FrameRenderObject *);
  void (__fastcall *_preLevelRender)(InGamePlayScreen *this, ScreenContext *);
  void (__fastcall *_postLevelRender)(InGamePlayScreen *this, ScreenContext *, LevelRenderer *);
  bool (__fastcall *_shouldRenderFirstPersonObjects)(InGamePlayScreen *this, LevelRenderer *);
  bool (__fastcall *_updateFreeformPickDirection)(InGamePlayScreen *this, float, Vec3 *, Vec3 *);
  void (__fastcall *_saveMatrices)(InGamePlayScreen *this, mce::Camera *);
  void (__fastcall *_renderFirstPerson3DObjects)(InGamePlayScreen *this, ScreenContext *, LevelRenderer *);
  void (__fastcall *_renderTransparentFirstPerson3DObjects)(InGamePlayScreen *this, ScreenContext *, LevelRenderer *);
  void (__fastcall *_renderItemInHand)(InGamePlayScreen *this, ScreenContext *, Player *);
  bool (__fastcall *_shouldClipLiquids)(InGamePlayScreen *this);
  bool (__fastcall *_isHoloViewer)(InGamePlayScreen *this);
  void (__fastcall *_prepareCuller)(InGamePlayScreen *this, mce::Camera *, Frustum *, Frustum *);
  void (__fastcall *_localPlayerTurned)(InGamePlayScreen *this, float);
  float (__fastcall *_getPickRange)(InGamePlayScreen *this);
  bool (__fastcall *_shouldPushHUD)(InGamePlayScreen *this);
  void (__fastcall *_setHoloMode)(InGamePlayScreen *this);
  void (__fastcall *_updateInGameCursor)(InGamePlayScreen *this);
};

# InGameLivingRoomScreen

struct __cppobj __declspec(align(8)) InGameLivingRoomScreen : InGamePlayScreen
{
  Vec3 mLastGazeDirMC;
  Vec3 mLastGazePntMC;
  glm::tvec2<unsigned int,0> mCalculatedSize;
  float mCalculatedScale;
};

# InGameLivingRoomScreen_vtbl

struct /*VFT*/ InGameLivingRoomScreen_vtbl
{
  void (__fastcall *~AbstractScene)(AbstractScene *this);
  void (__fastcall *OnMessage)(AbstractScene *this, UIMessage, std::string, std::vector<std::shared_ptr<MessageParam>>);
  std::shared_ptr<UIControl> *(__fastcall *getRootControl)(AbstractScene *this, std::shared_ptr<UIControl> *result);
  std::shared_ptr<UIControlFactory> *(__fastcall *getControlFactory)(AbstractScene *this, std::shared_ptr<UIControlFactory> *result);
  bool (__fastcall *isShowingModUI)(AbstractScene *this);
  void (__fastcall *setIsShowingModUI)(AbstractScene *this, bool);
  bool (__fastcall *isUIScene)(AbstractScene *this);
  void (__fastcall *init)(AbstractScene *this, const ScreenSizeData *);
  void (__fastcall *setSize)(AbstractScene *this, const ScreenSizeData *);
  void (__fastcall *onSetKeyboardHeight)(AbstractScene *this, float);
  void (__fastcall *onInternetUpdate)(AbstractScene *this);
  std::vector<RectangleArea> *(__fastcall *getInputAreas)(AbstractScene *this, std::vector<RectangleArea> *result);
  void (__fastcall *onFocusGained)(AbstractScene *this);
  void (__fastcall *onFocusLost)(AbstractScene *this);
  void (__fastcall *terminate)(AbstractScene *this);
  void (__fastcall *onCreation)(AbstractScene *this);
  void (__fastcall *onLeave)(AbstractScene *this);
  void (__fastcall *onGameEventNotification)(AbstractScene *this, ui::GameEventNotification);
  void (__fastcall *_handleDirtyVisualTree)(AbstractScene *this, bool);
  void (__fastcall *leaveScreen)(AbstractScene *this);
  void (__fastcall *tick)(AbstractScene *this, int, int);
  void (__fastcall *updateEvents)(AbstractScene *this);
  void (__fastcall *applyInput)(AbstractScene *this, float);
  void (__fastcall *update)(AbstractScene *this, long double);
  void (__fastcall *frameUpdate)(AbstractScene *this, MinecraftUIFrameUpdateContext *);
  void (__fastcall *preRenderUpdate)(AbstractScene *this, ScreenContext *);
  void (__fastcall *prepareFrame)(AbstractScene *this, ScreenContext *);
  void (__fastcall *render)(AbstractScene *this, ScreenContext *, const FrameRenderObject *);
  void (__fastcall *postRenderUpdate)(AbstractScene *this, ScreenContext *);
  void (__fastcall *setupAndRender)(AbstractScene *this, ScreenContext *);
  void (__fastcall *handleInputModeChanged)(AbstractScene *this, InputMode);
  void (__fastcall *handleHoloInputModeChanged)(AbstractScene *this, HoloUIInputMode);
  void (__fastcall *handleButtonPress)(AbstractScene *this, unsigned int, FocusImpact);
  void (__fastcall *handleButtonRelease)(AbstractScene *this, unsigned int, FocusImpact);
  void (__fastcall *handleRawInputEvent)(AbstractScene *this, int, RawInputType, ButtonState, bool);
  bool (__fastcall *handlePointerLocation)(AbstractScene *this, const PointerLocationEventData *, FocusImpact);
  void (__fastcall *handlePointerPressed)(AbstractScene *this, bool);
  void (__fastcall *handleDirection)(AbstractScene *this, DirectionId, float, float, FocusImpact);
  bool (__fastcall *handleBackEvent)(AbstractScene *this, bool);
  void (__fastcall *handleTextChar)(AbstractScene *this, const std::string *, bool, FocusImpact);
  void (__fastcall *handleCaretLocation)(AbstractScene *this, int, FocusImpact);
  void (__fastcall *setTextboxText)(AbstractScene *this, const std::string *);
  void (__fastcall *onKeyboardDismissed)(AbstractScene *this);
  void (__fastcall *onKeyboardDisabled)(AbstractScene *this);
  void (__fastcall *handleLicenseChanged)(AbstractScene *this);
  void (__fastcall *handleIdentityGained)(AbstractScene *this);
  void (__fastcall *handleIdentityLost)(AbstractScene *this);
  void (__fastcall *handleGazeGestureInput)(AbstractScene *this, __int16, float, float, float, FocusImpact);
  void (__fastcall *handleDictationEvent)(AbstractScene *this, const std::string *);
  void (__fastcall *handleCommandEvent)(AbstractScene *this, const VoiceCommand *);
  bool (__fastcall *renderGameBehind)(AbstractScene *this);
  bool (__fastcall *absorbsInput)(AbstractScene *this);
  bool (__fastcall *closeOnPlayerHurt)(AbstractScene *this);
  bool (__fastcall *isModal)(AbstractScene *this);
  bool (__fastcall *isShowingMenu)(AbstractScene *this);
  bool (__fastcall *shouldStealMouse)(AbstractScene *this);
  bool (__fastcall *screenIsNotFlushable)(AbstractScene *this);
  bool (__fastcall *alwaysAcceptsInput)(AbstractScene *this);
  bool (__fastcall *screenDrawsLast)(AbstractScene *this);
  bool (__fastcall *isPlayScreen)(AbstractScene *this);
  bool (__fastcall *renderOnlyWhenTopMost)(AbstractScene *this);
  bool (__fastcall *lowFreqRendering)(AbstractScene *this);
  bool (__fastcall *ignoreAsTop)(AbstractScene *this);
  bool (__fastcall *screenHandlesGamepadMenuButton)(AbstractScene *this);
  bool (__fastcall *shouldUpdateWhenSuspended)(AbstractScene *this);
  int (__fastcall *getWidth)(AbstractScene *this);
  int (__fastcall *getHeight)(AbstractScene *this);
  void (__fastcall *reload)(AbstractScene *this);
  const RectangleArea *(__fastcall *getRenderingAABB)(AbstractScene *this);
  EyeRenderingModeBit (__fastcall *getEyeRenderingMode)(AbstractScene *this);
  ui::SceneType (__fastcall *getSceneType)(AbstractScene *this);
  std::string *(__fastcall *getScreenName)(AbstractScene *this, std::string *result);
  std::string *(__fastcall *getRoute)(AbstractScene *this, std::string *result);
  std::string *(__fastcall *getScreenTelemetryName)(AbstractScene *this, std::string *result);
  void (__fastcall *addEventProperties)(AbstractScene *this, std::unordered_map<std::string,std::string> *);
  int (__fastcall *getScreenVersion)(AbstractScene *this);
  void (__fastcall *processBufferedTextCharEvents)(AbstractScene *this, const std::vector<TextCharEventData> *);
  bool (__fastcall *getShouldSendEvents)(AbstractScene *this);
  void (__fastcall *setShouldSendEvents)(AbstractScene *this, bool);
  bool (__fastcall *getWantsTextOnly)(AbstractScene *this);
  void (__fastcall *setWantsTextOnly)(AbstractScene *this, bool);
  void (__fastcall *onDelete)(AbstractScene *this, CachedScenes *, TaskGroup *);
  bool (__fastcall *isGamepadCursorEnabled)(AbstractScene *this);
  bool (__fastcall *isGamepadDeflectionModeEnabled)(AbstractScene *this);
  const glm::tvec2<float,0> *(__fastcall *getGamepadCursorPosition)(AbstractScene *this);
  void (__fastcall *cleanInputComponents)(AbstractScene *this);
  std::weak_ptr<AbstractSceneProxy> *(__fastcall *getProxy)(AbstractScene *this, std::weak_ptr<AbstractSceneProxy> *result);
  bool (__fastcall *canBePushed)(AbstractScene *this);
  bool (__fastcall *canBePopped)(AbstractScene *this);
  bool (__fastcall *canBeTransitioned)(AbstractScene *this);
  void (__fastcall *onScreenExit)(AbstractScene *this, bool, bool);
  void (__fastcall *onScreenEntrance)(AbstractScene *this, bool, bool);
  bool (__fastcall *isEntering)(AbstractScene *this);
  bool (__fastcall *isExiting)(AbstractScene *this);
  void (__fastcall *schedulePop)(AbstractScene *this);
  bool (__fastcall *isTerminating)(AbstractScene *this);
  bool (__fastcall *loadScreenImmediately)(AbstractScene *this);
  bool (__fastcall *forceUpdateActiveSceneStackWhenPushed)(AbstractScene *this);
  bool (__fastcall *hasFinishedLoading)(AbstractScene *this);
  void (__fastcall *sendScreenEvent)(AbstractScene *this, const std::string *, const std::string *);
  void (__fastcall *setDebugFeature)(AbstractScene *this, UIDebugCommandFeature, bool);
  void (__fastcall *setScreenState)(AbstractScene *this, const std::vector<std::pair<std::string,std::string >> *);
  void (__fastcall *setupForRendering)(BaseScreen *this, ScreenContext *);
  void (__fastcall *cleanupForRendering)(BaseScreen *this, ScreenContext *);
  void (__fastcall *setScreenSetupCleanup)(BaseScreen *this, std::unique_ptr<AbstractScreenSetupCleanupStrategy>);
  bool (__fastcall *_isPlayerSuspended)(InGamePlayScreen *this);
  void (__fastcall *_renderLevelPrep)(InGamePlayScreen *this, ScreenContext *, LevelRenderer *, Actor *);
  void (__fastcall *_renderLevel)(InGamePlayScreen *this, ScreenContext *, const FrameRenderObject *);
  void (__fastcall *_preLevelRender)(InGamePlayScreen *this, ScreenContext *);
  void (__fastcall *_postLevelRender)(InGamePlayScreen *this, ScreenContext *, LevelRenderer *);
  bool (__fastcall *_shouldRenderFirstPersonObjects)(InGamePlayScreen *this, LevelRenderer *);
  bool (__fastcall *_updateFreeformPickDirection)(InGamePlayScreen *this, float, Vec3 *, Vec3 *);
  void (__fastcall *_saveMatrices)(InGamePlayScreen *this, mce::Camera *);
  void (__fastcall *_renderFirstPerson3DObjects)(InGamePlayScreen *this, ScreenContext *, LevelRenderer *);
  void (__fastcall *_renderTransparentFirstPerson3DObjects)(InGamePlayScreen *this, ScreenContext *, LevelRenderer *);
  void (__fastcall *_renderItemInHand)(InGamePlayScreen *this, ScreenContext *, Player *);
  bool (__fastcall *_shouldClipLiquids)(InGamePlayScreen *this);
  bool (__fastcall *_isHoloViewer)(InGamePlayScreen *this);
  void (__fastcall *_prepareCuller)(InGamePlayScreen *this, mce::Camera *, Frustum *, Frustum *);
  void (__fastcall *_localPlayerTurned)(InGamePlayScreen *this, float);
  float (__fastcall *_getPickRange)(InGamePlayScreen *this);
  bool (__fastcall *_shouldPushHUD)(InGamePlayScreen *this);
  void (__fastcall *_setHoloMode)(InGamePlayScreen *this);
  void (__fastcall *_updateInGameCursor)(InGamePlayScreen *this);
};

# InGamePlayScreen::_renderLevel::__l17::<lambda_84383b57914a6d569f136065f314883f>

struct __cppobj InGamePlayScreen::_renderLevel::__l17::<lambda_84383b57914a6d569f136065f314883f>
{
  ScreenContext *screenContext;
};

# InGamePlayScreen::_renderOnScreenAnimatedTexture::__l3::<lambda_c4a0eae95e37a77c28a3f1c16859c800>

struct __cppobj InGamePlayScreen::_renderOnScreenAnimatedTexture::__l3::<lambda_c4a0eae95e37a77c28a3f1c16859c800>
{
  ScreenContext *screenContext;
};

# InGameRealityModeScreen

struct __cppobj InGameRealityModeScreen : InGamePlayScreen
{
  long double mPrevTime;
  float mFrameFactorTarget;
  float mCurrentFrameFactor;
  float mPrevFrameFactor;
  bool mCursorStuckIfBreaking;
  float mLastPitchAngle;
  float mGazePitchAdjByStickDegrees;
  Vec2 mRawStickPosition;
  Vec2 mDelayedStickPosition;
  float mSavedScreenHalfWidth;
  int mViewMode;
  Vec3 mJoystickSelectionMCWorldDir;
  int mJoystickSelectionMCWorldDirReset;
  Vec3 mLastGazeDirMC;
  Vec3 mLastGazePntMC;
  float mLastGazePointBrightness;
  float mLastCutoutAlpha;
  bool mLivingRoomDrawn;
  bool mDrawRawCursor;
  __declspec(align(8)) HitResult mHitRaw;
};

# InGameRealityModeScreen_vtbl

struct /*VFT*/ InGameRealityModeScreen_vtbl
{
  void (__fastcall *~AbstractScene)(AbstractScene *this);
  void (__fastcall *OnMessage)(AbstractScene *this, UIMessage, std::string, std::vector<std::shared_ptr<MessageParam>>);
  std::shared_ptr<UIControl> *(__fastcall *getRootControl)(AbstractScene *this, std::shared_ptr<UIControl> *result);
  std::shared_ptr<UIControlFactory> *(__fastcall *getControlFactory)(AbstractScene *this, std::shared_ptr<UIControlFactory> *result);
  bool (__fastcall *isShowingModUI)(AbstractScene *this);
  void (__fastcall *setIsShowingModUI)(AbstractScene *this, bool);
  bool (__fastcall *isUIScene)(AbstractScene *this);
  void (__fastcall *init)(AbstractScene *this, const ScreenSizeData *);
  void (__fastcall *setSize)(AbstractScene *this, const ScreenSizeData *);
  void (__fastcall *onSetKeyboardHeight)(AbstractScene *this, float);
  void (__fastcall *onInternetUpdate)(AbstractScene *this);
  std::vector<RectangleArea> *(__fastcall *getInputAreas)(AbstractScene *this, std::vector<RectangleArea> *result);
  void (__fastcall *onFocusGained)(AbstractScene *this);
  void (__fastcall *onFocusLost)(AbstractScene *this);
  void (__fastcall *terminate)(AbstractScene *this);
  void (__fastcall *onCreation)(AbstractScene *this);
  void (__fastcall *onLeave)(AbstractScene *this);
  void (__fastcall *onGameEventNotification)(AbstractScene *this, ui::GameEventNotification);
  void (__fastcall *_handleDirtyVisualTree)(AbstractScene *this, bool);
  void (__fastcall *leaveScreen)(AbstractScene *this);
  void (__fastcall *tick)(AbstractScene *this, int, int);
  void (__fastcall *updateEvents)(AbstractScene *this);
  void (__fastcall *applyInput)(AbstractScene *this, float);
  void (__fastcall *update)(AbstractScene *this, long double);
  void (__fastcall *frameUpdate)(AbstractScene *this, MinecraftUIFrameUpdateContext *);
  void (__fastcall *preRenderUpdate)(AbstractScene *this, ScreenContext *);
  void (__fastcall *prepareFrame)(AbstractScene *this, ScreenContext *);
  void (__fastcall *render)(AbstractScene *this, ScreenContext *, const FrameRenderObject *);
  void (__fastcall *postRenderUpdate)(AbstractScene *this, ScreenContext *);
  void (__fastcall *setupAndRender)(AbstractScene *this, ScreenContext *);
  void (__fastcall *handleInputModeChanged)(AbstractScene *this, InputMode);
  void (__fastcall *handleHoloInputModeChanged)(AbstractScene *this, HoloUIInputMode);
  void (__fastcall *handleButtonPress)(AbstractScene *this, unsigned int, FocusImpact);
  void (__fastcall *handleButtonRelease)(AbstractScene *this, unsigned int, FocusImpact);
  void (__fastcall *handleRawInputEvent)(AbstractScene *this, int, RawInputType, ButtonState, bool);
  bool (__fastcall *handlePointerLocation)(AbstractScene *this, const PointerLocationEventData *, FocusImpact);
  void (__fastcall *handlePointerPressed)(AbstractScene *this, bool);
  void (__fastcall *handleDirection)(AbstractScene *this, DirectionId, float, float, FocusImpact);
  bool (__fastcall *handleBackEvent)(AbstractScene *this, bool);
  void (__fastcall *handleTextChar)(AbstractScene *this, const std::string *, bool, FocusImpact);
  void (__fastcall *handleCaretLocation)(AbstractScene *this, int, FocusImpact);
  void (__fastcall *setTextboxText)(AbstractScene *this, const std::string *);
  void (__fastcall *onKeyboardDismissed)(AbstractScene *this);
  void (__fastcall *onKeyboardDisabled)(AbstractScene *this);
  void (__fastcall *handleLicenseChanged)(AbstractScene *this);
  void (__fastcall *handleIdentityGained)(AbstractScene *this);
  void (__fastcall *handleIdentityLost)(AbstractScene *this);
  void (__fastcall *handleGazeGestureInput)(AbstractScene *this, __int16, float, float, float, FocusImpact);
  void (__fastcall *handleDictationEvent)(AbstractScene *this, const std::string *);
  void (__fastcall *handleCommandEvent)(AbstractScene *this, const VoiceCommand *);
  bool (__fastcall *renderGameBehind)(AbstractScene *this);
  bool (__fastcall *absorbsInput)(AbstractScene *this);
  bool (__fastcall *closeOnPlayerHurt)(AbstractScene *this);
  bool (__fastcall *isModal)(AbstractScene *this);
  bool (__fastcall *isShowingMenu)(AbstractScene *this);
  bool (__fastcall *shouldStealMouse)(AbstractScene *this);
  bool (__fastcall *screenIsNotFlushable)(AbstractScene *this);
  bool (__fastcall *alwaysAcceptsInput)(AbstractScene *this);
  bool (__fastcall *screenDrawsLast)(AbstractScene *this);
  bool (__fastcall *isPlayScreen)(AbstractScene *this);
  bool (__fastcall *renderOnlyWhenTopMost)(AbstractScene *this);
  bool (__fastcall *lowFreqRendering)(AbstractScene *this);
  bool (__fastcall *ignoreAsTop)(AbstractScene *this);
  bool (__fastcall *screenHandlesGamepadMenuButton)(AbstractScene *this);
  bool (__fastcall *shouldUpdateWhenSuspended)(AbstractScene *this);
  int (__fastcall *getWidth)(AbstractScene *this);
  int (__fastcall *getHeight)(AbstractScene *this);
  void (__fastcall *reload)(AbstractScene *this);
  const RectangleArea *(__fastcall *getRenderingAABB)(AbstractScene *this);
  EyeRenderingModeBit (__fastcall *getEyeRenderingMode)(AbstractScene *this);
  ui::SceneType (__fastcall *getSceneType)(AbstractScene *this);
  std::string *(__fastcall *getScreenName)(AbstractScene *this, std::string *result);
  std::string *(__fastcall *getRoute)(AbstractScene *this, std::string *result);
  std::string *(__fastcall *getScreenTelemetryName)(AbstractScene *this, std::string *result);
  void (__fastcall *addEventProperties)(AbstractScene *this, std::unordered_map<std::string,std::string> *);
  int (__fastcall *getScreenVersion)(AbstractScene *this);
  void (__fastcall *processBufferedTextCharEvents)(AbstractScene *this, const std::vector<TextCharEventData> *);
  bool (__fastcall *getShouldSendEvents)(AbstractScene *this);
  void (__fastcall *setShouldSendEvents)(AbstractScene *this, bool);
  bool (__fastcall *getWantsTextOnly)(AbstractScene *this);
  void (__fastcall *setWantsTextOnly)(AbstractScene *this, bool);
  void (__fastcall *onDelete)(AbstractScene *this, CachedScenes *, TaskGroup *);
  bool (__fastcall *isGamepadCursorEnabled)(AbstractScene *this);
  bool (__fastcall *isGamepadDeflectionModeEnabled)(AbstractScene *this);
  const glm::tvec2<float,0> *(__fastcall *getGamepadCursorPosition)(AbstractScene *this);
  void (__fastcall *cleanInputComponents)(AbstractScene *this);
  std::weak_ptr<AbstractSceneProxy> *(__fastcall *getProxy)(AbstractScene *this, std::weak_ptr<AbstractSceneProxy> *result);
  bool (__fastcall *canBePushed)(AbstractScene *this);
  bool (__fastcall *canBePopped)(AbstractScene *this);
  bool (__fastcall *canBeTransitioned)(AbstractScene *this);
  void (__fastcall *onScreenExit)(AbstractScene *this, bool, bool);
  void (__fastcall *onScreenEntrance)(AbstractScene *this, bool, bool);
  bool (__fastcall *isEntering)(AbstractScene *this);
  bool (__fastcall *isExiting)(AbstractScene *this);
  void (__fastcall *schedulePop)(AbstractScene *this);
  bool (__fastcall *isTerminating)(AbstractScene *this);
  bool (__fastcall *loadScreenImmediately)(AbstractScene *this);
  bool (__fastcall *forceUpdateActiveSceneStackWhenPushed)(AbstractScene *this);
  bool (__fastcall *hasFinishedLoading)(AbstractScene *this);
  void (__fastcall *sendScreenEvent)(AbstractScene *this, const std::string *, const std::string *);
  void (__fastcall *setDebugFeature)(AbstractScene *this, UIDebugCommandFeature, bool);
  void (__fastcall *setScreenState)(AbstractScene *this, const std::vector<std::pair<std::string,std::string >> *);
  void (__fastcall *setupForRendering)(BaseScreen *this, ScreenContext *);
  void (__fastcall *cleanupForRendering)(BaseScreen *this, ScreenContext *);
  void (__fastcall *setScreenSetupCleanup)(BaseScreen *this, std::unique_ptr<AbstractScreenSetupCleanupStrategy>);
  bool (__fastcall *_isPlayerSuspended)(InGamePlayScreen *this);
  void (__fastcall *_renderLevelPrep)(InGamePlayScreen *this, ScreenContext *, LevelRenderer *, Actor *);
  void (__fastcall *_renderLevel)(InGamePlayScreen *this, ScreenContext *, const FrameRenderObject *);
  void (__fastcall *_preLevelRender)(InGamePlayScreen *this, ScreenContext *);
  void (__fastcall *_postLevelRender)(InGamePlayScreen *this, ScreenContext *, LevelRenderer *);
  bool (__fastcall *_shouldRenderFirstPersonObjects)(InGamePlayScreen *this, LevelRenderer *);
  bool (__fastcall *_updateFreeformPickDirection)(InGamePlayScreen *this, float, Vec3 *, Vec3 *);
  void (__fastcall *_saveMatrices)(InGamePlayScreen *this, mce::Camera *);
  void (__fastcall *_renderFirstPerson3DObjects)(InGamePlayScreen *this, ScreenContext *, LevelRenderer *);
  void (__fastcall *_renderTransparentFirstPerson3DObjects)(InGamePlayScreen *this, ScreenContext *, LevelRenderer *);
  void (__fastcall *_renderItemInHand)(InGamePlayScreen *this, ScreenContext *, Player *);
  bool (__fastcall *_shouldClipLiquids)(InGamePlayScreen *this);
  bool (__fastcall *_isHoloViewer)(InGamePlayScreen *this);
  void (__fastcall *_prepareCuller)(InGamePlayScreen *this, mce::Camera *, Frustum *, Frustum *);
  void (__fastcall *_localPlayerTurned)(InGamePlayScreen *this, float);
  float (__fastcall *_getPickRange)(InGamePlayScreen *this);
  bool (__fastcall *_shouldPushHUD)(InGamePlayScreen *this);
  void (__fastcall *_setHoloMode)(InGamePlayScreen *this);
  void (__fastcall *_updateInGameCursor)(InGamePlayScreen *this);
  bool (__fastcall *_checkForTransitionToggle)(InGameRealityModeScreen *this);
};

# InGameRealityTransitionScreen

struct __cppobj InGameRealityTransitionScreen : InGameRealityModeScreen
{
};

# InGameRealityTransitionScreen_vtbl

struct /*VFT*/ InGameRealityTransitionScreen_vtbl
{
  void (__fastcall *~AbstractScene)(AbstractScene *this);
  void (__fastcall *OnMessage)(AbstractScene *this, UIMessage, std::string, std::vector<std::shared_ptr<MessageParam>>);
  std::shared_ptr<UIControl> *(__fastcall *getRootControl)(AbstractScene *this, std::shared_ptr<UIControl> *result);
  std::shared_ptr<UIControlFactory> *(__fastcall *getControlFactory)(AbstractScene *this, std::shared_ptr<UIControlFactory> *result);
  bool (__fastcall *isShowingModUI)(AbstractScene *this);
  void (__fastcall *setIsShowingModUI)(AbstractScene *this, bool);
  bool (__fastcall *isUIScene)(AbstractScene *this);
  void (__fastcall *init)(AbstractScene *this, const ScreenSizeData *);
  void (__fastcall *setSize)(AbstractScene *this, const ScreenSizeData *);
  void (__fastcall *onSetKeyboardHeight)(AbstractScene *this, float);
  void (__fastcall *onInternetUpdate)(AbstractScene *this);
  std::vector<RectangleArea> *(__fastcall *getInputAreas)(AbstractScene *this, std::vector<RectangleArea> *result);
  void (__fastcall *onFocusGained)(AbstractScene *this);
  void (__fastcall *onFocusLost)(AbstractScene *this);
  void (__fastcall *terminate)(AbstractScene *this);
  void (__fastcall *onCreation)(AbstractScene *this);
  void (__fastcall *onLeave)(AbstractScene *this);
  void (__fastcall *onGameEventNotification)(AbstractScene *this, ui::GameEventNotification);
  void (__fastcall *_handleDirtyVisualTree)(AbstractScene *this, bool);
  void (__fastcall *leaveScreen)(AbstractScene *this);
  void (__fastcall *tick)(AbstractScene *this, int, int);
  void (__fastcall *updateEvents)(AbstractScene *this);
  void (__fastcall *applyInput)(AbstractScene *this, float);
  void (__fastcall *update)(AbstractScene *this, long double);
  void (__fastcall *frameUpdate)(AbstractScene *this, MinecraftUIFrameUpdateContext *);
  void (__fastcall *preRenderUpdate)(AbstractScene *this, ScreenContext *);
  void (__fastcall *prepareFrame)(AbstractScene *this, ScreenContext *);
  void (__fastcall *render)(AbstractScene *this, ScreenContext *, const FrameRenderObject *);
  void (__fastcall *postRenderUpdate)(AbstractScene *this, ScreenContext *);
  void (__fastcall *setupAndRender)(AbstractScene *this, ScreenContext *);
  void (__fastcall *handleInputModeChanged)(AbstractScene *this, InputMode);
  void (__fastcall *handleHoloInputModeChanged)(AbstractScene *this, HoloUIInputMode);
  void (__fastcall *handleButtonPress)(AbstractScene *this, unsigned int, FocusImpact);
  void (__fastcall *handleButtonRelease)(AbstractScene *this, unsigned int, FocusImpact);
  void (__fastcall *handleRawInputEvent)(AbstractScene *this, int, RawInputType, ButtonState, bool);
  bool (__fastcall *handlePointerLocation)(AbstractScene *this, const PointerLocationEventData *, FocusImpact);
  void (__fastcall *handlePointerPressed)(AbstractScene *this, bool);
  void (__fastcall *handleDirection)(AbstractScene *this, DirectionId, float, float, FocusImpact);
  bool (__fastcall *handleBackEvent)(AbstractScene *this, bool);
  void (__fastcall *handleTextChar)(AbstractScene *this, const std::string *, bool, FocusImpact);
  void (__fastcall *handleCaretLocation)(AbstractScene *this, int, FocusImpact);
  void (__fastcall *setTextboxText)(AbstractScene *this, const std::string *);
  void (__fastcall *onKeyboardDismissed)(AbstractScene *this);
  void (__fastcall *onKeyboardDisabled)(AbstractScene *this);
  void (__fastcall *handleLicenseChanged)(AbstractScene *this);
  void (__fastcall *handleIdentityGained)(AbstractScene *this);
  void (__fastcall *handleIdentityLost)(AbstractScene *this);
  void (__fastcall *handleGazeGestureInput)(AbstractScene *this, __int16, float, float, float, FocusImpact);
  void (__fastcall *handleDictationEvent)(AbstractScene *this, const std::string *);
  void (__fastcall *handleCommandEvent)(AbstractScene *this, const VoiceCommand *);
  bool (__fastcall *renderGameBehind)(AbstractScene *this);
  bool (__fastcall *absorbsInput)(AbstractScene *this);
  bool (__fastcall *closeOnPlayerHurt)(AbstractScene *this);
  bool (__fastcall *isModal)(AbstractScene *this);
  bool (__fastcall *isShowingMenu)(AbstractScene *this);
  bool (__fastcall *shouldStealMouse)(AbstractScene *this);
  bool (__fastcall *screenIsNotFlushable)(AbstractScene *this);
  bool (__fastcall *alwaysAcceptsInput)(AbstractScene *this);
  bool (__fastcall *screenDrawsLast)(AbstractScene *this);
  bool (__fastcall *isPlayScreen)(AbstractScene *this);
  bool (__fastcall *renderOnlyWhenTopMost)(AbstractScene *this);
  bool (__fastcall *lowFreqRendering)(AbstractScene *this);
  bool (__fastcall *ignoreAsTop)(AbstractScene *this);
  bool (__fastcall *screenHandlesGamepadMenuButton)(AbstractScene *this);
  bool (__fastcall *shouldUpdateWhenSuspended)(AbstractScene *this);
  int (__fastcall *getWidth)(AbstractScene *this);
  int (__fastcall *getHeight)(AbstractScene *this);
  void (__fastcall *reload)(AbstractScene *this);
  const RectangleArea *(__fastcall *getRenderingAABB)(AbstractScene *this);
  EyeRenderingModeBit (__fastcall *getEyeRenderingMode)(AbstractScene *this);
  ui::SceneType (__fastcall *getSceneType)(AbstractScene *this);
  std::string *(__fastcall *getScreenName)(AbstractScene *this, std::string *result);
  std::string *(__fastcall *getRoute)(AbstractScene *this, std::string *result);
  std::string *(__fastcall *getScreenTelemetryName)(AbstractScene *this, std::string *result);
  void (__fastcall *addEventProperties)(AbstractScene *this, std::unordered_map<std::string,std::string> *);
  int (__fastcall *getScreenVersion)(AbstractScene *this);
  void (__fastcall *processBufferedTextCharEvents)(AbstractScene *this, const std::vector<TextCharEventData> *);
  bool (__fastcall *getShouldSendEvents)(AbstractScene *this);
  void (__fastcall *setShouldSendEvents)(AbstractScene *this, bool);
  bool (__fastcall *getWantsTextOnly)(AbstractScene *this);
  void (__fastcall *setWantsTextOnly)(AbstractScene *this, bool);
  void (__fastcall *onDelete)(AbstractScene *this, CachedScenes *, TaskGroup *);
  bool (__fastcall *isGamepadCursorEnabled)(AbstractScene *this);
  bool (__fastcall *isGamepadDeflectionModeEnabled)(AbstractScene *this);
  const glm::tvec2<float,0> *(__fastcall *getGamepadCursorPosition)(AbstractScene *this);
  void (__fastcall *cleanInputComponents)(AbstractScene *this);
  std::weak_ptr<AbstractSceneProxy> *(__fastcall *getProxy)(AbstractScene *this, std::weak_ptr<AbstractSceneProxy> *result);
  bool (__fastcall *canBePushed)(AbstractScene *this);
  bool (__fastcall *canBePopped)(AbstractScene *this);
  bool (__fastcall *canBeTransitioned)(AbstractScene *this);
  void (__fastcall *onScreenExit)(AbstractScene *this, bool, bool);
  void (__fastcall *onScreenEntrance)(AbstractScene *this, bool, bool);
  bool (__fastcall *isEntering)(AbstractScene *this);
  bool (__fastcall *isExiting)(AbstractScene *this);
  void (__fastcall *schedulePop)(AbstractScene *this);
  bool (__fastcall *isTerminating)(AbstractScene *this);
  bool (__fastcall *loadScreenImmediately)(AbstractScene *this);
  bool (__fastcall *forceUpdateActiveSceneStackWhenPushed)(AbstractScene *this);
  bool (__fastcall *hasFinishedLoading)(AbstractScene *this);
  void (__fastcall *sendScreenEvent)(AbstractScene *this, const std::string *, const std::string *);
  void (__fastcall *setDebugFeature)(AbstractScene *this, UIDebugCommandFeature, bool);
  void (__fastcall *setScreenState)(AbstractScene *this, const std::vector<std::pair<std::string,std::string >> *);
  void (__fastcall *setupForRendering)(BaseScreen *this, ScreenContext *);
  void (__fastcall *cleanupForRendering)(BaseScreen *this, ScreenContext *);
  void (__fastcall *setScreenSetupCleanup)(BaseScreen *this, std::unique_ptr<AbstractScreenSetupCleanupStrategy>);
  bool (__fastcall *_isPlayerSuspended)(InGamePlayScreen *this);
  void (__fastcall *_renderLevelPrep)(InGamePlayScreen *this, ScreenContext *, LevelRenderer *, Actor *);
  void (__fastcall *_renderLevel)(InGamePlayScreen *this, ScreenContext *, const FrameRenderObject *);
  void (__fastcall *_preLevelRender)(InGamePlayScreen *this, ScreenContext *);
  void (__fastcall *_postLevelRender)(InGamePlayScreen *this, ScreenContext *, LevelRenderer *);
  bool (__fastcall *_shouldRenderFirstPersonObjects)(InGamePlayScreen *this, LevelRenderer *);
  bool (__fastcall *_updateFreeformPickDirection)(InGamePlayScreen *this, float, Vec3 *, Vec3 *);
  void (__fastcall *_saveMatrices)(InGamePlayScreen *this, mce::Camera *);
  void (__fastcall *_renderFirstPerson3DObjects)(InGamePlayScreen *this, ScreenContext *, LevelRenderer *);
  void (__fastcall *_renderTransparentFirstPerson3DObjects)(InGamePlayScreen *this, ScreenContext *, LevelRenderer *);
  void (__fastcall *_renderItemInHand)(InGamePlayScreen *this, ScreenContext *, Player *);
  bool (__fastcall *_shouldClipLiquids)(InGamePlayScreen *this);
  bool (__fastcall *_isHoloViewer)(InGamePlayScreen *this);
  void (__fastcall *_prepareCuller)(InGamePlayScreen *this, mce::Camera *, Frustum *, Frustum *);
  void (__fastcall *_localPlayerTurned)(InGamePlayScreen *this, float);
  float (__fastcall *_getPickRange)(InGamePlayScreen *this);
  bool (__fastcall *_shouldPushHUD)(InGamePlayScreen *this);
  void (__fastcall *_setHoloMode)(InGamePlayScreen *this);
  void (__fastcall *_updateInGameCursor)(InGamePlayScreen *this);
  bool (__fastcall *_checkForTransitionToggle)(InGameRealityModeScreen *this);
};

# InGamePlayScreen::_renderLevelPrep::__l39::<lambda_e0ee0ba8fe777e40021b11c5ef59b147>

struct __cppobj InGamePlayScreen::_renderLevelPrep::__l39::<lambda_e0ee0ba8fe777e40021b11c5ef59b147>
{
  InGamePlayScreen *const __this;
  ScreenContext *screenContext;
};

# ItemPtr

struct __cppobj ItemPtr
{
  const Item *mItem;
};

# ItemFrameBlockActor

struct __cppobj __declspec(align(8)) ItemFrameBlockActor : BlockActor
{
  ClockSpriteCalculator mClockSpriteCalc;
  CompassSpriteCalculator mCompassSpriteCalc;
  ItemInstance mItem;
  float mDropChance;
  float mRotation;
  bool mUpgradeMapBit;
  bool mRefreshMap;
};

# ItemFrameBlockActor_vtbl

struct /*VFT*/ ItemFrameBlockActor_vtbl
{
  void (__fastcall *~BlockActor)(BlockActor *this);
  void (__fastcall *load)(BlockActor *this, Level *, const CompoundTag *, DataLoadHelper *);
  bool (__fastcall *save)(BlockActor *this, CompoundTag *);
  bool (__fastcall *saveItemInstanceData)(BlockActor *this, CompoundTag *);
  void (__fastcall *saveBlockData)(BlockActor *this, CompoundTag *, BlockSource *);
  void (__fastcall *loadBlockData)(BlockActor *this, const CompoundTag *, BlockSource *, DataLoadHelper *);
  void (__fastcall *onCustomTagLoadDone)(BlockActor *this, BlockSource *);
  void (__fastcall *tick)(BlockActor *this, BlockSource *);
  bool (__fastcall *isFinished)(BlockActor *this);
  void (__fastcall *onChanged)(BlockActor *this, BlockSource *);
  bool (__fastcall *isMovable)(BlockActor *this, BlockSource *);
  bool (__fastcall *isCustomNameSaved)(BlockActor *this);
  bool (__fastcall *onUpdatePacket)(BlockActor *this, const CompoundTag *, BlockSource *, const Player *);
  void (__fastcall *onPlace)(BlockActor *this, BlockSource *);
  void (__fastcall *onMove)(BlockActor *this);
  void (__fastcall *onRemoved)(BlockActor *this, BlockSource *);
  void (__fastcall *triggerEvent)(BlockActor *this, int, int);
  void (__fastcall *clearCache)(BlockActor *this);
  void (__fastcall *onNeighborChanged)(BlockActor *this, BlockSource *, const BlockPos *);
  float (__fastcall *getShadowRadius)(BlockActor *this, BlockSource *);
  bool (__fastcall *hasAlphaLayer)(BlockActor *this);
  BlockActor *(__fastcall *getCrackEntity)(BlockActor *this, BlockSource *, const BlockPos *);
  void (__fastcall *getDebugText)(BlockActor *this, std::vector<std::string> *, const BlockPos *);
  const std::string *(__fastcall *getCustomName)(BlockActor *this);
  const std::string *(__fastcall *getFilteredCustomName)(BlockActor *this, const UIProfanityContext *);
  std::string *(__fastcall *getName)(BlockActor *this, std::string *result);
  void (__fastcall *setCustomName)(BlockActor *this, const std::string *);
  std::string *(__fastcall *getImmersiveReaderText)(BlockActor *this, std::string *result, BlockSource *);
  int (__fastcall *getRepairCost)(BlockActor *this);
  PistonBlockActor *(__fastcall *getOwningPiston)(BlockActor *this, BlockSource *);
  const Container *(__fastcall *getContainer)(BlockActor *this);
  Container *(__fastcall *getContainer)(BlockActor *this);
  float (__fastcall *getDeletionDelayTimeSeconds)(BlockActor *this);
  void (__fastcall *checkWordsOnChunkLoad)(BlockActor *this, LevelChunk *);
  void (__fastcall *checkWordsOnUpdate)(BlockActor *this, Player *);
  void (__fastcall *onChunkLoaded)(BlockActor *this, LevelChunk *);
  void (__fastcall *onChunkUnloaded)(BlockActor *this, LevelChunk *);
  std::unique_ptr<BlockActorDataPacket> *(__fastcall *_getUpdatePacket)(BlockActor *this, std::unique_ptr<BlockActorDataPacket> *result, BlockSource *);
  void (__fastcall *_onUpdatePacket)(BlockActor *this, const CompoundTag *, BlockSource *);
  bool (__fastcall *_playerCanUpdate)(BlockActor *this, const Player *);
};

# InPackagePackCollector

struct __cppobj __declspec(align(8)) InPackagePackCollector : SkinPackCollector
{
  SkinRepository *mSkinRepo;
  int mInPackagePacks;
};

# InPackagePackCollector_vtbl

struct /*VFT*/ InPackagePackCollector_vtbl
{
  void (__fastcall *~SkinPackCollector)(SkinPackCollector *this);
  void (__fastcall *start)(SkinPackCollector *this, bool);
  bool (__fastcall *exhausted)(SkinPackCollector *this);
  HandleRangeResult (__fastcall *handleRange)(SkinPackCollector *this, int, int);
  void (__fastcall *collect)(SkinPackCollector *this, IEntitlementManager *, SkinRepositoryClientInterface *, std::vector<std::shared_ptr<SkinPackModel>> *, std::unordered_set<mce::UUID> *);
};

# InventoryPackCollector

struct __cppobj InventoryPackCollector : CatalogPackCollector
{
};

# InventoryPackCollector_vtbl

struct /*VFT*/ InventoryPackCollector_vtbl
{
  void (__fastcall *~SkinPackCollector)(SkinPackCollector *this);
  void (__fastcall *start)(SkinPackCollector *this, bool);
  bool (__fastcall *exhausted)(SkinPackCollector *this);
  HandleRangeResult (__fastcall *handleRange)(SkinPackCollector *this, int, int);
  void (__fastcall *collect)(SkinPackCollector *this, IEntitlementManager *, SkinRepositoryClientInterface *, std::vector<std::shared_ptr<SkinPackModel>> *, std::unordered_set<mce::UUID> *);
};

# ImGuiInputTextCallbackData

struct __cppobj ImGuiInputTextCallbackData
{
  int EventFlag;
  int Flags;
  void *UserData;
  unsigned __int16 EventChar;
  int EventKey;
  char *Buf;
  int BufTextLen;
  int BufSize;
  bool BufDirty;
  int CursorPos;
  int SelectionStart;
  int SelectionEnd;
};

# ImGuiSizeCallbackData

struct __cppobj ImGuiSizeCallbackData
{
  void *UserData;
  ImVec2 Pos;
  ImVec2 CurrentSize;
  ImVec2 DesiredSize;
};

# ImVec4

struct __cppobj ImVec4
{
  float x;
  float y;
  float z;
  float w;
};

# ImFontGlyph

struct ImFontGlyph
{
  unsigned __int16 Codepoint;
  float AdvanceX;
  float X0;
  float Y0;
  float X1;
  float Y1;
  float U0;
  float V0;
  float U1;
  float V1;
};

# ImVector<ImFontGlyph>

struct __cppobj ImVector<ImFontGlyph>
{
  int Size;
  int Capacity;
  ImFontGlyph *Data;
};

# ImVector<float>

struct __cppobj ImVector<float>
{
  int Size;
  int Capacity;
  float *Data;
};

# ImVector<unsigned short>

struct __cppobj ImVector<unsigned short>
{
  int Size;
  int Capacity;
  unsigned __int16 *Data;
};

# ImFont

struct __cppobj ImFont
{
  float FontSize;
  float Scale;
  ImVec2 DisplayOffset;
  ImVector<ImFontGlyph> Glyphs;
  ImVector<float> IndexAdvanceX;
  ImVector<unsigned short> IndexLookup;
  const ImFontGlyph *FallbackGlyph;
  float FallbackAdvanceX;
  unsigned __int16 FallbackChar;
  __int16 ConfigDataCount;
  ImFontConfig *ConfigData;
  ImFontAtlas *ContainerAtlas;
  float Ascent;
  float Descent;
  bool DirtyLookupTables;
  int MetricsTotalSurface;
};

# ImFontConfig

struct __cppobj ImFontConfig
{
  void *FontData;
  int FontDataSize;
  bool FontDataOwnedByAtlas;
  int FontNo;
  float SizePixels;
  int OversampleH;
  int OversampleV;
  bool PixelSnapH;
  ImVec2 GlyphExtraSpacing;
  ImVec2 GlyphOffset;
  const unsigned __int16 *GlyphRanges;
  float GlyphMinAdvanceX;
  float GlyphMaxAdvanceX;
  bool MergeMode;
  unsigned int RasterizerFlags;
  float RasterizerMultiply;
  char Name[40];
  ImFont *DstFont;
};

# ImFontAtlas

struct __cppobj __declspec(align(8)) ImFontAtlas
{
  bool Locked;
  int Flags;
  void *TexID;
  int TexDesiredWidth;
  int TexGlyphPadding;
  unsigned __int8 *TexPixelsAlpha8;
  unsigned int *TexPixelsRGBA32;
  int TexWidth;
  int TexHeight;
  ImVec2 TexUvScale;
  ImVec2 TexUvWhitePixel;
  ImVector<ImFont *> Fonts;
  ImVector<ImFontAtlas::CustomRect> CustomRects;
  ImVector<ImFontConfig> ConfigData;
  int CustomRectIds[1];
};

# ImVector<ImFont *>

struct __cppobj ImVector<ImFont *>
{
  int Size;
  int Capacity;
  ImFont **Data;
};

# ImFontAtlas::CustomRect

struct __cppobj ImFontAtlas::CustomRect
{
  unsigned int ID;
  unsigned __int16 Width;
  unsigned __int16 Height;
  unsigned __int16 X;
  unsigned __int16 Y;
  float GlyphAdvanceX;
  ImVec2 GlyphOffset;
  ImFont *Font;
};

# ImVector<ImFontAtlas::CustomRect>

struct __cppobj ImVector<ImFontAtlas::CustomRect>
{
  int Size;
  int Capacity;
  ImFontAtlas::CustomRect *Data;
};

# ImVector<ImFontConfig>

struct __cppobj ImVector<ImFontConfig>
{
  int Size;
  int Capacity;
  ImFontConfig *Data;
};

# ImDrawList

struct __cppobj ImDrawList
{
  ImVector<ImDrawCmd> CmdBuffer;
  ImVector<unsigned short> IdxBuffer;
  ImVector<ImDrawVert> VtxBuffer;
  int Flags;
  const ImDrawListSharedData *_Data;
  const char *_OwnerName;
  unsigned int _VtxCurrentIdx;
  ImDrawVert *_VtxWritePtr;
  unsigned __int16 *_IdxWritePtr;
  ImVector<ImVec4> _ClipRectStack;
  ImVector<void *> _TextureIdStack;
  ImVector<ImVec2> _Path;
  int _ChannelsCurrent;
  int _ChannelsCount;
  ImVector<ImDrawChannel> _Channels;
};

# ImDrawCmd

struct __cppobj ImDrawCmd
{
  unsigned int ElemCount;
  ImVec4 ClipRect;
  void *TextureId;
  void (__fastcall *UserCallback)(const ImDrawList *, const ImDrawCmd *);
  void *UserCallbackData;
};

# ImVector<ImDrawCmd>

struct __cppobj ImVector<ImDrawCmd>
{
  int Size;
  int Capacity;
  ImDrawCmd *Data;
};

# ImDrawVert

struct __cppobj ImDrawVert
{
  ImVec2 pos;
  ImVec2 uv;
  unsigned int col;
};

# ImVector<ImDrawVert>

struct __cppobj ImVector<ImDrawVert>
{
  int Size;
  int Capacity;
  ImDrawVert *Data;
};

# ImDrawListSharedData

const struct __cppobj ImDrawListSharedData
{
  ImVec2 TexUvWhitePixel;
  ImFont *Font;
  float FontSize;
  float CurveTessellationTol;
  ImVec4 ClipRectFullscreen;
  ImVec2 CircleVtx12[12];
};

# ImVector<ImVec4>

struct __cppobj ImVector<ImVec4>
{
  int Size;
  int Capacity;
  ImVec4 *Data;
};

# ImVector<void *>

struct __cppobj ImVector<void *>
{
  int Size;
  int Capacity;
  void **Data;
};

# ImVector<ImVec2>

struct __cppobj ImVector<ImVec2>
{
  int Size;
  int Capacity;
  ImVec2 *Data;
};

# ImDrawChannel

struct __cppobj ImDrawChannel
{
  ImVector<ImDrawCmd> CmdBuffer;
  ImVector<unsigned short> IdxBuffer;
};

# ImVector<ImDrawChannel>

struct __cppobj ImVector<ImDrawChannel>
{
  int Size;
  int Capacity;
  ImDrawChannel *Data;
};

# ImDrawData

struct __cppobj __declspec(align(8)) ImDrawData
{
  bool Valid;
  ImDrawList **CmdLists;
  int CmdListsCount;
  int TotalIdxCount;
  int TotalVtxCount;
  ImVec2 DisplayPos;
  ImVec2 DisplaySize;
};

# ImGuiIO

struct __cppobj ImGuiIO
{
  int ConfigFlags;
  int BackendFlags;
  ImVec2 DisplaySize;
  float DeltaTime;
  float IniSavingRate;
  const char *IniFilename;
  const char *LogFilename;
  float MouseDoubleClickTime;
  float MouseDoubleClickMaxDist;
  float MouseDragThreshold;
  int KeyMap[21];
  float KeyRepeatDelay;
  float KeyRepeatRate;
  void *UserData;
  ImFontAtlas *Fonts;
  float FontGlobalScale;
  bool FontAllowUserScaling;
  ImFont *FontDefault;
  ImVec2 DisplayFramebufferScale;
  ImVec2 DisplayVisibleMin;
  ImVec2 DisplayVisibleMax;
  bool MouseDrawCursor;
  bool ConfigMacOSXBehaviors;
  bool ConfigInputTextCursorBlink;
  bool ConfigResizeWindowsFromEdges;
  const char *(__fastcall *GetClipboardTextFn)(void *);
  void (__fastcall *SetClipboardTextFn)(void *, const char *);
  void *ClipboardUserData;
  void (__fastcall *ImeSetInputScreenPosFn)(int, int);
  void *ImeWindowHandle;
  void (__fastcall *RenderDrawListsFn)(ImDrawData *);
  ImVec2 MousePos;
  bool MouseDown[5];
  float MouseWheel;
  float MouseWheelH;
  bool KeyCtrl;
  bool KeyShift;
  bool KeyAlt;
  bool KeySuper;
  bool KeysDown[512];
  unsigned __int16 InputCharacters[17];
  float NavInputs[21];
  bool WantCaptureMouse;
  bool WantCaptureKeyboard;
  bool WantTextInput;
  bool WantSetMousePos;
  bool WantSaveIniSettings;
  bool NavActive;
  bool NavVisible;
  float Framerate;
  int MetricsRenderVertices;
  int MetricsRenderIndices;
  int MetricsRenderWindows;
  int MetricsActiveWindows;
  int MetricsActiveAllocations;
  ImVec2 MouseDelta;
  ImVec2 MousePosPrev;
  ImVec2 MouseClickedPos[5];
  long double MouseClickedTime[5];
  bool MouseClicked[5];
  bool MouseDoubleClicked[5];
  bool MouseReleased[5];
  bool MouseDownOwned[5];
  float MouseDownDuration[5];
  float MouseDownDurationPrev[5];
  ImVec2 MouseDragMaxDistanceAbs[5];
  float MouseDragMaxDistanceSqr[5];
  float KeysDownDuration[512];
  float KeysDownDurationPrev[512];
  float NavInputsDownDuration[21];
  float NavInputsDownDurationPrev[21];
};

# ImVector<unsigned char>

struct __cppobj ImVector<unsigned char>
{
  int Size;
  int Capacity;
  unsigned __int8 *Data;
};

# ImFontAtlas::GlyphRangesBuilder

struct __cppobj ImFontAtlas::GlyphRangesBuilder
{
  ImVector<unsigned char> UsedChars;
};

# ImGuiPayload

struct __cppobj __declspec(align(8)) ImGuiPayload
{
  void *Data;
  int DataSize;
  unsigned int SourceId;
  unsigned int SourceParentId;
  int DataFrameCount;
  char DataType[33];
  bool Preview;
  bool Delivery;
};

# ImNewDummy

struct __cppobj ImNewDummy
{
};

# ImGuiOnceUponAFrame

struct __cppobj ImGuiOnceUponAFrame
{
  int RefFrame;
};

# ImGuiTextFilter::TextRange

struct __cppobj ImGuiTextFilter::TextRange
{
  const char *b;
  const char *e;
};

# ImVector<ImGuiTextFilter::TextRange>

struct __cppobj ImVector<ImGuiTextFilter::TextRange>
{
  int Size;
  int Capacity;
  ImGuiTextFilter::TextRange *Data;
};

# ImGuiTextFilter

struct __cppobj __declspec(align(8)) ImGuiTextFilter
{
  char InputBuf[256];
  ImVector<ImGuiTextFilter::TextRange> Filters;
  int CountGrep;
};

# ImVector<char>

struct __cppobj ImVector<char>
{
  int Size;
  int Capacity;
  char *Data;
};

# ImGuiTextBuffer

struct __cppobj ImGuiTextBuffer
{
  ImVector<char> Buf;
};

# ImGuiStorage::Pair

struct __cppobj ImGuiStorage::Pair
{
  unsigned int key;
  $8B9CDDDE7350157B96F9E7A52D766FBB ___u1;
};

# ImVector<ImGuiStorage::Pair>

struct __cppobj ImVector<ImGuiStorage::Pair>
{
  int Size;
  int Capacity;
  ImGuiStorage::Pair *Data;
};

# ImGuiStorage

struct __cppobj ImGuiStorage
{
  ImVector<ImGuiStorage::Pair> Data;
};

# ImGuiListClipper

struct __cppobj ImGuiListClipper
{
  float StartPosY;
  float ItemsHeight;
  int ItemsCount;
  int StepNo;
  int DisplayStart;
  int DisplayEnd;
};

# ImColor

struct __cppobj ImColor
{
  ImVec4 Value;
};

# ImGuiStb::StbUndoRecord

struct ImGuiStb::StbUndoRecord
{
  int where;
  int insert_length;
  int delete_length;
  int char_storage;
};

# ImGuiStb::StbUndoState

struct ImGuiStb::StbUndoState
{
  ImGuiStb::StbUndoRecord undo_rec[99];
  unsigned __int16 undo_char[999];
  __int16 undo_point;
  __int16 redo_point;
  int undo_char_point;
  int redo_char_point;
};

# ImGuiStb::STB_TexteditState

struct ImGuiStb::STB_TexteditState
{
  int cursor;
  int select_start;
  int select_end;
  unsigned __int8 insert_mode;
  unsigned __int8 cursor_at_end_of_line;
  unsigned __int8 initialized;
  unsigned __int8 has_preferred_x;
  unsigned __int8 single_line;
  unsigned __int8 padding1;
  unsigned __int8 padding2;
  unsigned __int8 padding3;
  float preferred_x;
  ImGuiStb::StbUndoState undostate;
};

# ImVec1

struct __cppobj ImVec1
{
  float x;
};

# ImRect

struct __cppobj ImRect
{
  ImVec2 Min;
  ImVec2 Max;
};

# ImGuiStyleMod

struct __cppobj ImGuiStyleMod
{
  int VarIdx;
  $C099D8BA5150B4A1D71970C0EA1A2546 ___u1;
};

# ImGuiInputTextState

struct __cppobj ImGuiInputTextState
{
  unsigned int ID;
  ImVector<unsigned short> TextW;
  ImVector<char> InitialText;
  ImVector<char> TempBuffer;
  int CurLenA;
  int CurLenW;
  int BufCapacityA;
  float ScrollX;
  ImGuiStb::STB_TexteditState StbState;
  float CursorAnim;
  bool CursorFollow;
  bool SelectedAllMouseLock;
  int UserFlags;
  int (__fastcall *UserCallback)(ImGuiInputTextCallbackData *);
  void *UserCallbackData;
};

# ImGuiWindowSettings

struct __cppobj __declspec(align(4)) ImGuiWindowSettings
{
  char *Name;
  unsigned int ID;
  ImVec2 Pos;
  ImVec2 Size;
  bool Collapsed;
};

# ImGuiStyle

struct __cppobj ImGuiStyle
{
  float Alpha;
  ImVec2 WindowPadding;
  float WindowRounding;
  float WindowBorderSize;
  ImVec2 WindowMinSize;
  ImVec2 WindowTitleAlign;
  float ChildRounding;
  float ChildBorderSize;
  float PopupRounding;
  float PopupBorderSize;
  ImVec2 FramePadding;
  float FrameRounding;
  float FrameBorderSize;
  ImVec2 ItemSpacing;
  ImVec2 ItemInnerSpacing;
  ImVec2 TouchExtraPadding;
  float IndentSpacing;
  float ColumnsMinSpacing;
  float ScrollbarSize;
  float ScrollbarRounding;
  float GrabMinSize;
  float GrabRounding;
  ImVec2 ButtonTextAlign;
  ImVec2 DisplayWindowPadding;
  ImVec2 DisplaySafeAreaPadding;
  float MouseCursorScale;
  bool AntiAliasedLines;
  bool AntiAliasedFill;
  float CurveTessellationTol;
  ImVec4 Colors[43];
};

# ImVector<ImGuiWindow *>

struct __cppobj ImVector<ImGuiWindow *>
{
  int Size;
  int Capacity;
  ImGuiWindow **Data;
};

# ImVector<int>

struct __cppobj ImVector<int>
{
  int Size;
  int Capacity;
  int *Data;
};

# ImGuiGroupData

struct __cppobj __declspec(align(4)) ImGuiGroupData
{
  ImVec2 BackupCursorPos;
  ImVec2 BackupCursorMaxPos;
  ImVec1 BackupIndent;
  ImVec1 BackupGroupOffset;
  ImVec2 BackupCurrentLineSize;
  float BackupCurrentLineTextBaseOffset;
  float BackupLogLinePosY;
  unsigned int BackupActiveIdIsAlive;
  bool BackupActiveIdPreviousFrameIsAlive;
  bool AdvanceCursor;
};

# ImVector<ImGuiGroupData>

struct __cppobj ImVector<ImGuiGroupData>
{
  int Size;
  int Capacity;
  ImGuiGroupData *Data;
};

# ImGuiColumnData

struct __cppobj ImGuiColumnData
{
  float OffsetNorm;
  float OffsetNormBeforeResize;
  int Flags;
  ImRect ClipRect;
};

# ImVector<ImGuiColumnData>

struct __cppobj ImVector<ImGuiColumnData>
{
  int Size;
  int Capacity;
  ImGuiColumnData *Data;
};

# ImGuiColumnsSet

struct __cppobj ImGuiColumnsSet
{
  unsigned int ID;
  int Flags;
  bool IsFirstFrame;
  bool IsBeingResized;
  int Current;
  int Count;
  float MinX;
  float MaxX;
  float LineMinY;
  float LineMaxY;
  float StartPosY;
  float StartMaxPosX;
  ImVector<ImGuiColumnData> Columns;
};

# ImGuiWindowTempData

struct __cppobj ImGuiWindowTempData
{
  ImVec2 CursorPos;
  ImVec2 CursorPosPrevLine;
  ImVec2 CursorStartPos;
  ImVec2 CursorMaxPos;
  ImVec2 CurrentLineSize;
  float CurrentLineTextBaseOffset;
  ImVec2 PrevLineSize;
  float PrevLineTextBaseOffset;
  float LogLinePosY;
  int TreeDepth;
  unsigned int TreeDepthMayJumpToParentOnPop;
  unsigned int LastItemId;
  int LastItemStatusFlags;
  ImRect LastItemRect;
  ImRect LastItemDisplayRect;
  bool NavHideHighlightOneFrame;
  bool NavHasScroll;
  int NavLayerCurrent;
  int NavLayerCurrentMask;
  int NavLayerActiveMask;
  int NavLayerActiveMaskNext;
  bool MenuBarAppending;
  ImVec2 MenuBarOffset;
  ImVector<ImGuiWindow *> ChildWindows;
  ImGuiStorage *StateStorage;
  int LayoutType;
  int ParentLayoutType;
  int ItemFlags;
  float ItemWidth;
  float TextWrapPos;
  ImVector<int> ItemFlagsStack;
  ImVector<float> ItemWidthStack;
  ImVector<float> TextWrapPosStack;
  ImVector<ImGuiGroupData> GroupStack;
  int StackSizesBackup[6];
  ImVec1 Indent;
  ImVec1 GroupOffset;
  ImVec1 ColumnsOffset;
  ImGuiColumnsSet *ColumnsSet;
};

# ImVector<unsigned int>

struct __cppobj ImVector<unsigned int>
{
  int Size;
  int Capacity;
  unsigned int *Data;
};

# ImGuiMenuColumns

struct __cppobj ImGuiMenuColumns
{
  int Count;
  float Spacing;
  float Width;
  float NextWidth;
  float Pos[4];
  float NextWidths[4];
};

# ImVector<ImGuiColumnsSet>

struct __cppobj ImVector<ImGuiColumnsSet>
{
  int Size;
  int Capacity;
  ImGuiColumnsSet *Data;
};

# ImGuiWindow

struct __cppobj ImGuiWindow
{
  char *Name;
  unsigned int ID;
  int Flags;
  ImVec2 Pos;
  ImVec2 Size;
  ImVec2 SizeFull;
  ImVec2 SizeFullAtLastBegin;
  ImVec2 SizeContents;
  ImVec2 SizeContentsExplicit;
  ImVec2 WindowPadding;
  float WindowRounding;
  float WindowBorderSize;
  unsigned int MoveId;
  unsigned int ChildId;
  ImVec2 Scroll;
  ImVec2 ScrollTarget;
  ImVec2 ScrollTargetCenterRatio;
  ImVec2 ScrollbarSizes;
  bool ScrollbarX;
  bool ScrollbarY;
  bool Active;
  bool WasActive;
  bool WriteAccessed;
  bool Collapsed;
  bool WantCollapseToggle;
  bool SkipItems;
  bool Appearing;
  bool Hidden;
  bool HasCloseButton;
  int BeginCount;
  int BeginOrderWithinParent;
  int BeginOrderWithinContext;
  unsigned int PopupId;
  int AutoFitFramesX;
  int AutoFitFramesY;
  bool AutoFitOnlyGrows;
  int AutoFitChildAxises;
  int AutoPosLastDirection;
  int HiddenFramesRegular;
  int HiddenFramesForResize;
  int SetWindowPosAllowFlags;
  int SetWindowSizeAllowFlags;
  int SetWindowCollapsedAllowFlags;
  ImVec2 SetWindowPosVal;
  ImVec2 SetWindowPosPivot;
  ImGuiWindowTempData DC;
  ImVector<unsigned int> IDStack;
  ImRect ClipRect;
  ImRect OuterRectClipped;
  ImRect InnerMainRect;
  ImRect InnerClipRect;
  ImRect ContentsRegionRect;
  int LastFrameActive;
  float ItemWidthDefault;
  ImGuiMenuColumns MenuColumns;
  ImGuiStorage StateStorage;
  ImVector<ImGuiColumnsSet> ColumnsStorage;
  float FontWindowScale;
  int SettingsIdx;
  ImDrawList *DrawList;
  ImDrawList DrawListInst;
  ImGuiWindow *ParentWindow;
  ImGuiWindow *RootWindow;
  ImGuiWindow *RootWindowForTitleBarHighlight;
  ImGuiWindow *RootWindowForNav;
  ImGuiWindow *NavLastChildNavWindow;
  unsigned int NavLastIds[2];
  ImRect NavRectRel[2];
  int FocusIdxAllCounter;
  int FocusIdxTabCounter;
  int FocusIdxAllRequestCurrent;
  int FocusIdxTabRequestCurrent;
  int FocusIdxAllRequestNext;
  int FocusIdxTabRequestNext;
};

# ImGuiColorMod

struct __cppobj ImGuiColorMod
{
  int Col;
  ImVec4 BackupValue;
};

# ImVector<ImGuiColorMod>

struct __cppobj ImVector<ImGuiColorMod>
{
  int Size;
  int Capacity;
  ImGuiColorMod *Data;
};

# ImVector<ImGuiStyleMod>

struct __cppobj ImVector<ImGuiStyleMod>
{
  int Size;
  int Capacity;
  ImGuiStyleMod *Data;
};

# ImGuiPopupRef

struct __cppobj ImGuiPopupRef
{
  unsigned int PopupId;
  ImGuiWindow *Window;
  ImGuiWindow *ParentWindow;
  int OpenFrameCount;
  unsigned int OpenParentId;
  ImVec2 OpenPopupPos;
  ImVec2 OpenMousePos;
};

# ImVector<ImGuiPopupRef>

struct __cppobj ImVector<ImGuiPopupRef>
{
  int Size;
  int Capacity;
  ImGuiPopupRef *Data;
};

# ImGuiNextWindowData

struct __cppobj __declspec(align(8)) ImGuiNextWindowData
{
  int PosCond;
  int SizeCond;
  int ContentSizeCond;
  int CollapsedCond;
  int SizeConstraintCond;
  int FocusCond;
  int BgAlphaCond;
  ImVec2 PosVal;
  ImVec2 PosPivotVal;
  ImVec2 SizeVal;
  ImVec2 ContentSizeVal;
  bool CollapsedVal;
  ImRect SizeConstraintRect;
  void (__fastcall *SizeCallback)(ImGuiSizeCallbackData *);
  void *SizeCallbackUserData;
  float BgAlphaVal;
  ImVec2 MenuBarOffsetMinVal;
};

# ImGuiNavMoveResult

struct __cppobj __declspec(align(8)) ImGuiNavMoveResult
{
  unsigned int ID;
  ImGuiWindow *Window;
  float DistBox;
  float DistCenter;
  float DistAxial;
  ImRect RectRel;
};

# ImVector<ImDrawList *>

struct __cppobj ImVector<ImDrawList *>
{
  int Size;
  int Capacity;
  ImDrawList **Data;
};

# ImDrawDataBuilder

struct __cppobj ImDrawDataBuilder
{
  ImVector<ImDrawList *> Layers[2];
};

# ImGuiContext

struct __cppobj __declspec(align(4)) ImGuiContext
{
  bool Initialized;
  bool FrameScopeActive;
  bool FontAtlasOwnedByContext;
  ImGuiIO IO;
  ImGuiStyle Style;
  ImFont *Font;
  float FontSize;
  float FontBaseSize;
  ImDrawListSharedData DrawListSharedData;
  long double Time;
  int FrameCount;
  int FrameCountEnded;
  int FrameCountRendered;
  ImVector<ImGuiWindow *> Windows;
  ImVector<ImGuiWindow *> WindowsFocusOrder;
  ImVector<ImGuiWindow *> WindowsSortBuffer;
  ImVector<ImGuiWindow *> CurrentWindowStack;
  ImGuiStorage WindowsById;
  int WindowsActiveCount;
  ImGuiWindow *CurrentWindow;
  ImGuiWindow *HoveredWindow;
  ImGuiWindow *HoveredRootWindow;
  unsigned int HoveredId;
  bool HoveredIdAllowOverlap;
  unsigned int HoveredIdPreviousFrame;
  float HoveredIdTimer;
  float HoveredIdNotActiveTimer;
  unsigned int ActiveId;
  unsigned int ActiveIdPreviousFrame;
  unsigned int ActiveIdIsAlive;
  float ActiveIdTimer;
  bool ActiveIdIsJustActivated;
  bool ActiveIdAllowOverlap;
  bool ActiveIdHasBeenEdited;
  bool ActiveIdPreviousFrameIsAlive;
  bool ActiveIdPreviousFrameHasBeenEdited;
  int ActiveIdAllowNavDirFlags;
  ImVec2 ActiveIdClickOffset;
  ImGuiWindow *ActiveIdWindow;
  ImGuiWindow *ActiveIdPreviousFrameWindow;
  ImGuiInputSource ActiveIdSource;
  unsigned int LastActiveId;
  float LastActiveIdTimer;
  ImVec2 LastValidMousePos;
  ImGuiWindow *MovingWindow;
  ImVector<ImGuiColorMod> ColorModifiers;
  ImVector<ImGuiStyleMod> StyleModifiers;
  ImVector<ImFont *> FontStack;
  ImVector<ImGuiPopupRef> OpenPopupStack;
  ImVector<ImGuiPopupRef> CurrentPopupStack;
  ImGuiNextWindowData NextWindowData;
  bool NextTreeNodeOpenVal;
  int NextTreeNodeOpenCond;
  ImGuiWindow *NavWindow;
  unsigned int NavId;
  unsigned int NavActivateId;
  unsigned int NavActivateDownId;
  unsigned int NavActivatePressedId;
  unsigned int NavInputId;
  unsigned int NavJustTabbedId;
  unsigned int NavJustMovedToId;
  unsigned int NavNextActivateId;
  ImGuiInputSource NavInputSource;
  ImRect NavScoringRectScreen;
  int NavScoringCount;
  ImGuiWindow *NavWindowingTarget;
  ImGuiWindow *NavWindowingTargetAnim;
  ImGuiWindow *NavWindowingList;
  float NavWindowingTimer;
  float NavWindowingHighlightAlpha;
  bool NavWindowingToggleLayer;
  int NavLayer;
  int NavIdTabCounter;
  bool NavIdIsAlive;
  bool NavMousePosDirty;
  bool NavDisableHighlight;
  bool NavDisableMouseHover;
  bool NavAnyRequest;
  bool NavInitRequest;
  bool NavInitRequestFromMove;
  unsigned int NavInitResultId;
  ImRect NavInitResultRectRel;
  bool NavMoveFromClampedRefRect;
  bool NavMoveRequest;
  int NavMoveRequestFlags;
  ImGuiNavForward NavMoveRequestForward;
  int NavMoveDir;
  int NavMoveDirLast;
  int NavMoveClipDir;
  ImGuiNavMoveResult NavMoveResultLocal;
  ImGuiNavMoveResult NavMoveResultLocalVisibleSet;
  ImGuiNavMoveResult NavMoveResultOther;
  ImDrawData DrawData;
  ImDrawDataBuilder DrawDataBuilder;
  float DimBgRatio;
  ImDrawList OverlayDrawList;
  int MouseCursor;
  bool DragDropActive;
  bool DragDropWithinSourceOrTarget;
  int DragDropSourceFlags;
  int DragDropSourceFrameCount;
  int DragDropMouseButton;
  ImGuiPayload DragDropPayload;
  ImRect DragDropTargetRect;
  unsigned int DragDropTargetId;
  int DragDropAcceptFlags;
  float DragDropAcceptIdCurrRectSurface;
  unsigned int DragDropAcceptIdCurr;
  unsigned int DragDropAcceptIdPrev;
  int DragDropAcceptFrameCount;
  ImVector<unsigned char> DragDropPayloadBufHeap;
  unsigned __int8 DragDropPayloadBufLocal[8];
  ImGuiInputTextState InputTextState;
  ImFont InputTextPasswordFont;
  unsigned int ScalarAsInputTextId;
  int ColorEditOptions;
  ImVec4 ColorPickerRef;
  bool DragCurrentAccumDirty;
  float DragCurrentAccum;
  float DragSpeedDefaultRatio;
  ImVec2 ScrollbarClickDeltaToGrabCenter;
  int TooltipOverrideCount;
  ImVector<char> PrivateClipboard;
  ImVec2 PlatformImePos;
  ImVec2 PlatformImeLastPos;
  bool SettingsLoaded;
  float SettingsDirtyTimer;
  ImGuiTextBuffer SettingsIniData;
  ImVector<ImGuiSettingsHandler> SettingsHandlers;
  ImVector<ImGuiWindowSettings> SettingsWindows;
  bool LogEnabled;
  _iobuf *LogFile;
  ImGuiTextBuffer LogClipboard;
  int LogStartDepth;
  int LogAutoExpandMaxDepth;
  float FramerateSecPerFrame[120];
  int FramerateSecPerFrameIdx;
  float FramerateSecPerFrameAccum;
  int WantCaptureMouseNextFrame;
  int WantCaptureKeyboardNextFrame;
  int WantTextInputNextFrame;
  char TempBuffer[3073];
};

# ImGuiSettingsHandler

struct __cppobj ImGuiSettingsHandler
{
  const char *TypeName;
  unsigned int TypeHash;
  void *(__fastcall *ReadOpenFn)(ImGuiContext *, ImGuiSettingsHandler *, const char *);
  void (__fastcall *ReadLineFn)(ImGuiContext *, ImGuiSettingsHandler *, void *, const char *);
  void (__fastcall *WriteAllFn)(ImGuiContext *, ImGuiSettingsHandler *, ImGuiTextBuffer *);
  void *UserData;
};

# ImVector<ImGuiSettingsHandler>

struct __cppobj ImVector<ImGuiSettingsHandler>
{
  int Size;
  int Capacity;
  ImGuiSettingsHandler *Data;
};

# ImVector<ImGuiWindowSettings>

struct __cppobj ImVector<ImGuiWindowSettings>
{
  int Size;
  int Capacity;
  ImGuiWindowSettings *Data;
};

# ImGuiItemHoveredDataBackup

struct __cppobj ImGuiItemHoveredDataBackup
{
  unsigned int LastItemId;
  int LastItemStatusFlags;
  ImRect LastItemRect;
  ImRect LastItemDisplayRect;
};

# ItemStackNetManagerClient::PredictiveContainer

struct __cppobj ItemStackNetManagerClient::PredictiveContainer
{
  SparseContainer mSparseContainer;
  std::unordered_map<TypedClientNetId<ItemStackRequestIdTag,int,0>,std::vector<HistoricPredictionData>,std::hash<TypedClientNetId<ItemStackRequestIdTag,int,0> >,std::equal_to<TypedClientNetId<ItemStackRequestIdTag,int,0> >,std::allocator<std::pair<TypedClientNetId<ItemStackRequestIdTag,int,0> const ,std::vector<HistoricPredictionData> > > > mHistoricPredictions;
  std::unordered_map<TypedClientNetId<ItemStackRequestIdTag,int,0>,std::vector<HistoricPredictionData>,std::hash<TypedClientNetId<ItemStackRequestIdTag,int,0> >,std::equal_to<TypedClientNetId<ItemStackRequestIdTag,int,0> >,std::allocator<std::pair<TypedClientNetId<ItemStackRequestIdTag,int,0> const ,std::vector<HistoricPredictionData> > > > mZeroedOutItems;
};

# InputModeFloatOption

struct __cppobj __declspec(align(8)) InputModeFloatOption : Option
{
  const float VALUE_MIN;
  const float VALUE_MAX;
  std::unordered_map<enum InputMode,float> mValues;
  std::unordered_map<enum InputMode,float> mDefaultValues;
  const float DELTA;
};

# InputModeFloatOption_vtbl

struct /*VFT*/ InputModeFloatOption_vtbl
{
  void (__fastcall *~Option)(Option *this);
  void (__fastcall *save)(Option *this, std::vector<std::pair<std::string,std::string >> *);
  void (__fastcall *load)(Option *this, const Json::Value *);
  void (__fastcall *load)(Option *this, std::map<std::string,std::string> *);
  void (__fastcall *load)(Option *this, const std::string *);
};

# InputModeBoolOption

struct __cppobj InputModeBoolOption : Option
{
  std::unordered_map<enum InputMode,bool> mValues;
  std::unordered_map<enum InputMode,bool> mDefaultValues;
};

# InputModeBoolOption_vtbl

struct /*VFT*/ InputModeBoolOption_vtbl
{
  void (__fastcall *~Option)(Option *this);
  void (__fastcall *save)(Option *this, std::vector<std::pair<std::string,std::string >> *);
  void (__fastcall *load)(Option *this, const Json::Value *);
  void (__fastcall *load)(Option *this, std::map<std::string,std::string> *);
  void (__fastcall *load)(Option *this, const std::string *);
};

# InkParticle

struct __cppobj InkParticle : Particle
{
  float startSize;
  float endSize;
};

# InkParticle_vtbl

struct /*VFT*/ InkParticle_vtbl
{
  void (__fastcall *init)(Particle *this, const Vec3 *, const Vec3 *, int, ParticleEngine *);
  void (__fastcall *addTagData)(Particle *this, const CompoundTag *);
  void (__fastcall *~Particle)(Particle *this);
  void (__fastcall *normalTick)(Particle *this);
  void (__fastcall *tessellate)(Particle *this, const ParticleRenderContext *);
  const mce::TexturePtr *(__fastcall *getParticleTexture)(Particle *this);
  mce::Color *(__fastcall *getParticleLightColor)(Particle *this, mce::Color *result, float, const LightTexture *);
  void (__fastcall *setEmittingEntity)(Particle *this, Actor *);
  bool (__fastcall *_shouldUpdateVertexData)(Particle *this, float);
};

# ItemFrameBlock

struct __cppobj ItemFrameBlock : ActorBlock
{
};

# ItemFrameBlock_vtbl

struct /*VFT*/ ItemFrameBlock_vtbl
{
  void (__fastcall *~BlockLegacy)(BlockLegacy *this);
  const Block *(__fastcall *getStateFromLegacyData)(BlockLegacy *this, unsigned __int16);
  const Block *(__fastcall *getModBlockStateFromLegacyData)(BlockLegacy *this, unsigned __int16);
  std::shared_ptr<BlockActor> *(__fastcall *newBlockEntity)(BlockLegacy *this, std::shared_ptr<BlockActor> *result, const BlockPos *, const Block *);
  const Block *(__fastcall *getNextBlockPermutation)(BlockLegacy *this, const Block *);
  bool (__fastcall *hasTag)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, const std::string *);
  bool (__fastcall *getCollisionShape)(BlockLegacy *this, AABB *, const Block *, BlockSource *, const BlockPos *, Actor *);
  bool (__fastcall *isObstructingChests)(BlockLegacy *this, BlockSource *, const BlockPos *);
  Vec3 *(__fastcall *randomlyModifyPosition)(BlockLegacy *this, Vec3 *result, const BlockPos *);
  Vec3 *(__fastcall *randomlyModifyPosition)(BlockLegacy *this, Vec3 *result, const BlockPos *, int *);
  void (__fastcall *addAABBs)(BlockLegacy *this, const Block *, BlockSource *, const BlockPos *, const AABB *, std::vector<AABB> *);
  const AABB *(__fastcall *getAABB)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, AABB *, bool);
  bool (__fastcall *addCollisionShapes)(BlockLegacy *this, const Block *, BlockSource *, const BlockPos *, const AABB *, std::vector<AABB> *, Actor *);
  const AABB *(__fastcall *getOutline)(BlockLegacy *this, BlockSource *, const BlockPos *, AABB *);
  bool (__fastcall *getLiquidClipVolume)(BlockLegacy *this, BlockSource *, const BlockPos *, AABB *);
  void (__fastcall *onProjectileHit)(BlockLegacy *this, BlockSource *, const BlockPos *, const Actor *);
  bool (__fastcall *liquidCanFlowIntoFromDirection)(BlockLegacy *this, unsigned __int8, const std::function<Block const & __cdecl(BlockPos const &)> *, const BlockPos *);
  bool (__fastcall *hasVariableLighting)(BlockLegacy *this);
  bool (__fastcall *isStrippable)(BlockLegacy *this, const Block *);
  const Block *(__fastcall *getStrippedBlock)(BlockLegacy *this, const Block *);
  bool (__fastcall *canProvideSupport)(BlockLegacy *this, const Block *, unsigned __int8, BlockSupportType);
  bool (__fastcall *canConnect)(BlockLegacy *this, const Block *, unsigned __int8, const Block *);
  void (__fastcall *getConnectedDirections)(BlockLegacy *this, const Block *, const BlockPos *, BlockSource *, bool *, bool *, bool *, bool *);
  bool (__fastcall *isStemBlock)(BlockLegacy *this);
  bool (__fastcall *isContainerBlock)(BlockLegacy *this);
  bool (__fastcall *isCraftingBlock)(BlockLegacy *this);
  bool (__fastcall *isWaterBlocking)(BlockLegacy *this);
  bool (__fastcall *isHurtableBlock)(BlockLegacy *this);
  bool (__fastcall *isFenceBlock)(BlockLegacy *this);
  bool (__fastcall *isFenceGateBlock)(BlockLegacy *this);
  bool (__fastcall *isThinFenceBlock)(BlockLegacy *this);
  bool (__fastcall *isWallBlock)(BlockLegacy *this);
  bool (__fastcall *isStairBlock)(BlockLegacy *this);
  bool (__fastcall *isSlabBlock)(BlockLegacy *this);
  bool (__fastcall *isDoubleSlabBlock)(BlockLegacy *this);
  bool (__fastcall *isDoorBlock)(BlockLegacy *this);
  bool (__fastcall *isRailBlock)(BlockLegacy *this);
  bool (__fastcall *isButtonBlock)(BlockLegacy *this);
  bool (__fastcall *canHurtAndBreakItem)(BlockLegacy *this);
  bool (__fastcall *isSignalSource)(BlockLegacy *this);
  bool (__fastcall *canBeOriginalSurface)(BlockLegacy *this);
  bool (__fastcall *isValidAuxValue)(BlockLegacy *this, int);
  void (__fastcall *setTargetLandBlocks)(BlockLegacy *this, const std::vector<std::string> *);
  bool (__fastcall *canFillAtPos)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *);
  const Block *(__fastcall *sanitizeFillBlock)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *);
  void (__fastcall *onFillBlock)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *);
  int (__fastcall *getDirectSignal)(BlockLegacy *this, BlockSource *, const BlockPos *, int);
  bool (__fastcall *waterSpreadCausesSpawn)(BlockLegacy *this);
  bool (__fastcall *canContainLiquid)(BlockLegacy *this);
  bool (__fastcall *shouldConnectToRedstone)(BlockLegacy *this, BlockSource *, const BlockPos *, int);
  void (__fastcall *handleRain)(BlockLegacy *this, BlockSource *, const BlockPos *, float);
  bool (__fastcall *canBeUsedInCommands)(BlockLegacy *this, const BaseGameVersion *);
  float (__fastcall *getThickness)(BlockLegacy *this);
  float (__fastcall *getFlexibility)(BlockLegacy *this, BlockSource *, const BlockPos *);
  bool (__fastcall *checkIsPathable)(BlockLegacy *this, Actor *, const BlockPos *, const BlockPos *);
  bool (__fastcall *shouldDispense)(BlockLegacy *this, BlockSource *, Container *);
  bool (__fastcall *dispense)(BlockLegacy *this, BlockSource *, Container *, int, const Vec3 *, unsigned __int8);
  void (__fastcall *transformOnFall)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *, float);
  void (__fastcall *onRedstoneUpdate)(BlockLegacy *this, BlockSource *, const BlockPos *, int, bool);
  void (__fastcall *onMove)(BlockLegacy *this, BlockSource *, const BlockPos *, const BlockPos *);
  bool (__fastcall *detachesOnPistonMove)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *movedByPiston)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *onStructureBlockPlace)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *onStructureNeighborBlockPlace)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *setupRedstoneComponent)(BlockLegacy *this, BlockSource *, const BlockPos *);
  bool (__fastcall *specialUse)(BlockLegacy *this, Player *, const BlockPos *, ItemStack *);
  BlockProperty (__fastcall *getRedstoneProperty)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *updateEntityAfterFallOn)(BlockLegacy *this, IActorMovementProxy *);
  bool (__fastcall *isBounceBlock)(BlockLegacy *this);
  bool (__fastcall *ignoreEntitiesOnPistonMove)(BlockLegacy *this, const Block *);
  bool (__fastcall *onFertilized)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *, FertilizerType);
  bool (__fastcall *mayConsumeFertilizer)(BlockLegacy *this, BlockSource *);
  bool (__fastcall *canBeFertilized)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *);
  bool (__fastcall *mayPick)(BlockLegacy *this, BlockSource *, const Block *, bool);
  bool (__fastcall *mayPick)(BlockLegacy *this);
  bool (__fastcall *mayPlace)(BlockLegacy *this, BlockSource *, const BlockPos *);
  bool (__fastcall *mayPlace)(BlockLegacy *this, BlockSource *, const BlockPos *, unsigned __int8);
  bool (__fastcall *mayPlaceOn)(BlockLegacy *this, BlockSource *, const BlockPos *);
  bool (__fastcall *tryToPlace)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, const ActorBlockSyncMessage *);
  bool (__fastcall *breaksFallingBlocks)(BlockLegacy *this, const Block *);
  void (__fastcall *destroy)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, Actor *);
  bool (__fastcall *playerWillDestroy)(BlockLegacy *this, Player *, const BlockPos *, const Block *);
  bool (__fastcall *getIgnoresDestroyPermissions)(BlockLegacy *this, Actor *, const BlockPos *);
  void (__fastcall *neighborChanged)(BlockLegacy *this, BlockSource *, const BlockPos *, const BlockPos *);
  bool (__fastcall *getSecondPart)(BlockLegacy *this, BlockSource *, const BlockPos *, BlockPos *);
  int (__fastcall *getResourceCount)(BlockLegacy *this, Random *, const Block *, int, bool);
  ItemInstance *(__fastcall *getResourceItem)(BlockLegacy *this, ItemInstance *result, Random *, const Block *, int);
  ItemInstance *(__fastcall *asItemInstance)(BlockLegacy *this, ItemInstance *result, BlockSource *, const BlockPos *, const Block *);
  void (__fastcall *spawnResources)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, std::vector<Item const *> *, float, int, bool);
  void (__fastcall *trySpawnResourcesOnExplosion)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, std::vector<Item const *> *, float, int, bool);
  bool (__fastcall *spawnBurnResources)(BlockLegacy *this, BlockSource *, float, float, float);
  const Block *(__fastcall *getPlacementBlock)(BlockLegacy *this, Actor *, const BlockPos *, unsigned __int8, const Vec3 *, int);
  int (__fastcall *calcVariant)(BlockLegacy *this, BlockSource *, const BlockPos *);
  bool (__fastcall *isAttachedTo)(BlockLegacy *this, BlockSource *, const BlockPos *, BlockPos *);
  bool (__fastcall *attack)(BlockLegacy *this, Player *, const BlockPos *);
  void (__fastcall *handleEntityInside)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *, Vec3 *);
  void (__fastcall *entityInside)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *);
  int (__fastcall *getExperienceDrop)(BlockLegacy *this, Random *);
  bool (__fastcall *canBeBuiltOver)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *triggerEvent)(BlockLegacy *this, BlockSource *, const BlockPos *, int, int);
  void (__fastcall *executeEvent)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, const std::string *, Actor *);
  void (__fastcall *executeEvent)(BlockLegacy *this, const std::string *, RenderParams *);
  bool (__fastcall *executeTrigger)(BlockLegacy *this, const DefinitionTrigger *, RenderParams *);
  bool (__fastcall *executeTriggerChain)(BlockLegacy *this, const DefinitionTrigger *, std::vector<std::pair<std::string const ,std::string const >> *, RenderParams *);
  void (__fastcall *forceExecuteTrigger)(BlockLegacy *this, const DefinitionTrigger *, RenderParams *);
  const MobSpawnerData *(__fastcall *getMobToSpawn)(BlockLegacy *this, const SpawnConditions *, BlockSource *);
  bool (__fastcall *shouldStopFalling)(BlockLegacy *this, Actor *);
  bool (__fastcall *pushesUpFallingBlocks)(BlockLegacy *this);
  float (__fastcall *calcGroundFriction)(BlockLegacy *this, Mob *, const BlockPos *);
  bool (__fastcall *canHaveExtraData)(BlockLegacy *this);
  bool (__fastcall *hasComparatorSignal)(BlockLegacy *this);
  int (__fastcall *getComparatorSignal)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, unsigned __int8);
  bool (__fastcall *onDig)(BlockLegacy *this, const Block *, Actor *, ItemStack *, const BlockPos *);
  bool (__fastcall *canSlide)(BlockLegacy *this, BlockSource *, const BlockPos *);
  bool (__fastcall *canSpawnAt)(BlockLegacy *this, const BlockSource *, const BlockPos *);
  void (__fastcall *notifySpawnedAt)(BlockLegacy *this, BlockSource *, const BlockPos *);
  int (__fastcall *getIconYOffset)(BlockLegacy *this);
  std::string *(__fastcall *buildDescriptionId)(BlockLegacy *this, std::string *result, const Block *);
  bool (__fastcall *isAuxValueRelevantForPicking)(BlockLegacy *this);
  int (__fastcall *getColor)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *);
  int (__fastcall *getColor)(BlockLegacy *this, const Block *);
  int (__fastcall *getColorAtPos)(BlockLegacy *this, BlockSource *, const BlockPos *);
  int (__fastcall *getColorForParticle)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *);
  bool (__fastcall *isSeasonTinted)(BlockLegacy *this, const Block *, BlockSource *, const BlockPos *);
  void (__fastcall *onGraphicsModeChanged)(BlockLegacy *this, const BlockGraphicsModeChangeContext *);
  float (__fastcall *getShadeBrightness)(BlockLegacy *this, const Block *);
  const AABB *(__fastcall *getVisualShapeInWorld)(BlockLegacy *this, const Block *, BlockSource *, const BlockPos *, AABB *, bool);
  const AABB *(__fastcall *getVisualShape)(BlockLegacy *this, const Block *, AABB *, bool);
  const AABB *(__fastcall *getUIShape)(BlockLegacy *this, const Block *, AABB *);
  int (__fastcall *telemetryVariant)(BlockLegacy *this, BlockSource *, const BlockPos *);
  int (__fastcall *getVariant)(BlockLegacy *this, const Block *);
  bool (__fastcall *canSpawnOn)(BlockLegacy *this);
  const Block *(__fastcall *getRenderBlock)(BlockLegacy *this);
  unsigned __int8 (__fastcall *getMappedFace)(BlockLegacy *this, unsigned __int8, const Block *);
  bool (__fastcall *renderTwoFaced)(BlockLegacy *this);
  Flip (__fastcall *getFaceFlip)(BlockLegacy *this, unsigned __int8, const Block *);
  void (__fastcall *animateTick)(BlockLegacy *this, BlockSource *, const BlockPos *, Random *);
  BlockLegacy *(__fastcall *init)(BlockLegacy *this);
  BlockLegacy *(__fastcall *setLightBlock)(BlockLegacy *this, Brightness);
  BlockLegacy *(__fastcall *setLightEmission)(BlockLegacy *this, float);
  BlockLegacy *(__fastcall *setExplodeable)(BlockLegacy *this, float);
  BlockLegacy *(__fastcall *setFlammable)(BlockLegacy *this, FlameOdds, BurnOdds);
  BlockLegacy *(__fastcall *setDestroyTime)(BlockLegacy *this, float);
  BlockLegacy *(__fastcall *setFriction)(BlockLegacy *this, float);
  BlockLegacy *(__fastcall *addProperty)(BlockLegacy *this, BlockProperty);
  BlockLegacy *(__fastcall *addState)(BlockLegacy *this, const ItemState *, unsigned __int64);
  BlockLegacy *(__fastcall *addState)(BlockLegacy *this, const ItemState *);
  BlockLegacy *(__fastcall *setAllowsRunes)(BlockLegacy *this, bool);
  BlockLegacy *(__fastcall *setMapColor)(BlockLegacy *this, const mce::Color *);
  bool (__fastcall *canBeSilkTouched)(BlockLegacy *this);
  ItemInstance *(__fastcall *getSilkTouchItemInstance)(BlockLegacy *this, ItemInstance *result, const Block *);
  void (__fastcall *setVisualShape)(BlockLegacy *this, const Vec3 *, const Vec3 *);
  void (__fastcall *setVisualShape)(BlockLegacy *this, const AABB *);
  const Block *(__fastcall *tryLegacyUpgrade)(BlockLegacy *this, unsigned __int16);
  bool (__fastcall *dealsContactDamage)(BlockLegacy *this, const Actor *, const Block *, bool);
  void (__fastcall *onRemove)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *onExploded)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *);
  void (__fastcall *onStandOn)(BlockLegacy *this, Actor *, const BlockPos *);
  void (__fastcall *onStepOn)(BlockLegacy *this, Actor *, const BlockPos *);
  void (__fastcall *onStepOff)(BlockLegacy *this, Actor *, const BlockPos *);
  void (__fastcall *onPlayerPlacing)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *, unsigned __int8);
  void (__fastcall *onPlace)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *onFallOn)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *, float);
  void (__fastcall *playerDestroy)(BlockLegacy *this, Player *, const BlockPos *, const Block *);
  void (__fastcall *tick)(BlockLegacy *this, BlockSource *, const BlockPos *, Random *);
  bool (__fastcall *shouldRandomTick)(BlockLegacy *this);
  bool (__fastcall *isInteractiveBlock)(BlockLegacy *this);
  HitResult *(__fastcall *clip)(BlockLegacy *this, HitResult *result, BlockSource *, const BlockPos *, const Vec3 *, const Vec3 *, bool);
  bool (__fastcall *use)(BlockLegacy *this, Player *, const BlockPos *, unsigned __int8);
  bool (__fastcall *canSurvive)(BlockLegacy *this, BlockSource *, const BlockPos *);
  BlockRenderLayer (__fastcall *getRenderLayer)(BlockLegacy *this, const Block *, BlockSource *, const BlockPos *);
  BlockRenderLayer (__fastcall *getRenderLayer)(BlockLegacy *this);
  int (__fastcall *getExtraRenderLayers)(BlockLegacy *this);
  float (__fastcall *getExplosionResistance)(BlockLegacy *this, Actor *);
  Brightness *(__fastcall *getLightEmission)(BlockLegacy *this, Brightness *result, const Block *);
  mce::Color *(__fastcall *getMapColor)(BlockLegacy *this, mce::Color *result, BlockSource *, const BlockPos *);
  mce::Color *(__fastcall *getMapColor)(BlockLegacy *this, mce::Color *result);
  bool (__fastcall *isCropBlock)(BlockLegacy *this);
  void (__fastcall *_executeEvent)(BlockLegacy *this, const std::string *, std::vector<std::pair<std::string const ,std::string const >> *, RenderParams *);
  bool (__fastcall *_executeTrigger)(BlockLegacy *this, const DefinitionTrigger *, std::vector<std::pair<std::string const ,std::string const >> *, RenderParams *);
  void (__fastcall *_forceExecuteTrigger)(BlockLegacy *this, const DefinitionTrigger *, std::vector<std::pair<std::string const ,std::string const >> *, RenderParams *);
  ItemInstance *(__fastcall *getEntityResourceItem)(ActorBlock *this, ItemInstance *result, Random *, const BlockActor *, int);
};

# IronGolem

struct __cppobj IronGolem : Mob
{
  int mAttackAnimationTick;
  int mOfferFlowerTick;
};

# ItemFrameRenderer

struct __cppobj __declspec(align(8)) ItemFrameRenderer : BlockActorRenderer, AppPlatformListener
{
  mce::MaterialPtr mSelectionOverlayMaterial;
  bool mSelected;
};

# ItemFrameRenderer_vtbl

struct /*VFT*/ ItemFrameRenderer_vtbl
{
  void (__fastcall *~ActorShaderManager)(ActorShaderManager *this);
  mce::Color *(__fastcall *_getOverlayColor)(ActorShaderManager *this, mce::Color *result, Actor *, float);
  void (__fastcall *render)(BlockActorRenderer *this, BaseActorRenderContext *, BlockActorRenderData *);
  void (__fastcall *renderAlpha)(BlockActorRenderer *this, BaseActorRenderContext *, BlockActorRenderData *);
  std::vector<NameTagRenderObject> *(__fastcall *extractText)(BlockActorRenderer *this, std::vector<NameTagRenderObject> *result, Tessellator *, BlockActor *, const std::string *, const std::vector<int> *, Vec3, bool);
};

# ItemFrameRenderer::FaceUV

struct ItemFrameRenderer::FaceUV
{
  unsigned __int8 face;
  float u0;
  float v0;
  float u1;
  float v1;
};

# ImpactDamageSubcomponent

struct __cppobj __declspec(align(8)) ImpactDamageSubcomponent : OnHitSubcomponent
{
  bool mCatchFire;
  bool mChanneling;
  FloatRange mProjectileDamage;
  bool mKnockback;
  ActorType mFilter;
  bool mSemiRandomDiffDamage;
  bool mDestroyOnHit;
  bool mRegisterLastHurtRequiresDamage;
  bool mDestroyOnHitRequiresDamage;
  int mMaxCriticalDamage;
  int mMinCriticalDamage;
  float mPowMultiplier;
};

# ImpactDamageSubcomponent_vtbl

struct /*VFT*/ ImpactDamageSubcomponent_vtbl
{
  void (__fastcall *~OnHitSubcomponent)(OnHitSubcomponent *this);
  void (__fastcall *readfromJSON)(OnHitSubcomponent *this, Json::Value *);
  void (__fastcall *writetoJSON)(OnHitSubcomponent *this, Json::Value *);
  void (__fastcall *doOnHitEffect)(OnHitSubcomponent *this, Actor *, ProjectileComponent *);
  const char *(__fastcall *getName)(OnHitSubcomponent *this);
};

# IgniteSubcomponent

struct __cppobj IgniteSubcomponent : OnHitSubcomponent
{
};

# IgniteSubcomponent_vtbl

struct /*VFT*/ IgniteSubcomponent_vtbl
{
  void (__fastcall *~OnHitSubcomponent)(OnHitSubcomponent *this);
  void (__fastcall *readfromJSON)(OnHitSubcomponent *this, Json::Value *);
  void (__fastcall *writetoJSON)(OnHitSubcomponent *this, Json::Value *);
  void (__fastcall *doOnHitEffect)(OnHitSubcomponent *this, Actor *, ProjectileComponent *);
  const char *(__fastcall *getName)(OnHitSubcomponent *this);
};

# ItemStateVariant<enum ChemistryTableType>_vtbl

struct /*VFT*/ ItemStateVariant<enum ChemistryTableType>_vtbl
{
  void (__fastcall *~ItemState)(ItemState *this);
  void (__fastcall *toNBT)(ItemState *this, CompoundTag *, int);
  bool (__fastcall *fromNBT)(ItemState *this, const CompoundTag *, int *);
};

# ItemStateVariant<enum TorchFacing>_vtbl

struct /*VFT*/ ItemStateVariant<enum TorchFacing>_vtbl
{
  void (__fastcall *~ItemState)(ItemState *this);
  void (__fastcall *toNBT)(ItemState *this, CompoundTag *, int);
  bool (__fastcall *fromNBT)(ItemState *this, const CompoundTag *, int *);
};

# ItemStateVariant<enum SeaGrassType>_vtbl

struct /*VFT*/ ItemStateVariant<enum SeaGrassType>_vtbl
{
  void (__fastcall *~ItemState)(ItemState *this);
  void (__fastcall *toNBT)(ItemState *this, CompoundTag *, int);
  bool (__fastcall *fromNBT)(ItemState *this, const CompoundTag *, int *);
};

# ItemStateVariant<enum EggCount>_vtbl

struct /*VFT*/ ItemStateVariant<enum EggCount>_vtbl
{
  void (__fastcall *~ItemState)(ItemState *this);
  void (__fastcall *toNBT)(ItemState *this, CompoundTag *, int);
  bool (__fastcall *fromNBT)(ItemState *this, const CompoundTag *, int *);
};

# ItemStateVariant<enum HatchLevel>_vtbl

struct /*VFT*/ ItemStateVariant<enum HatchLevel>_vtbl
{
  void (__fastcall *~ItemState)(ItemState *this);
  void (__fastcall *toNBT)(ItemState *this, CompoundTag *, int);
  bool (__fastcall *fromNBT)(ItemState *this, const CompoundTag *, int *);
};

# ItemStateVariant<enum PillarAxis>_vtbl

struct /*VFT*/ ItemStateVariant<enum PillarAxis>_vtbl
{
  void (__fastcall *~ItemState)(ItemState *this);
  void (__fastcall *toNBT)(ItemState *this, CompoundTag *, int);
  bool (__fastcall *fromNBT)(ItemState *this, const CompoundTag *, int *);
};

# ItemStateVariant<enum WallConnectionType>_vtbl

struct /*VFT*/ ItemStateVariant<enum WallConnectionType>_vtbl
{
  void (__fastcall *~ItemState)(ItemState *this);
  void (__fastcall *toNBT)(ItemState *this, CompoundTag *, int);
  bool (__fastcall *fromNBT)(ItemState *this, const CompoundTag *, int *);
};

# ItemStateVariant<enum LeverDirection>_vtbl

struct /*VFT*/ ItemStateVariant<enum LeverDirection>_vtbl
{
  void (__fastcall *~ItemState)(ItemState *this);
  void (__fastcall *toNBT)(ItemState *this, CompoundTag *, int);
  bool (__fastcall *fromNBT)(ItemState *this, const CompoundTag *, int *);
};

# ItemStateVariant<enum StalkThickness>_vtbl

struct /*VFT*/ ItemStateVariant<enum StalkThickness>_vtbl
{
  void (__fastcall *~ItemState)(ItemState *this);
  void (__fastcall *toNBT)(ItemState *this, CompoundTag *, int);
  bool (__fastcall *fromNBT)(ItemState *this, const CompoundTag *, int *);
};

# ItemStateVariant<enum LeafSize>_vtbl

struct /*VFT*/ ItemStateVariant<enum LeafSize>_vtbl
{
  void (__fastcall *~ItemState)(ItemState *this);
  void (__fastcall *toNBT)(ItemState *this, CompoundTag *, int);
  bool (__fastcall *fromNBT)(ItemState *this, const CompoundTag *, int *);
};

# ItemStateVariant<enum AttachmentType>_vtbl

struct /*VFT*/ ItemStateVariant<enum AttachmentType>_vtbl
{
  void (__fastcall *~ItemState)(ItemState *this);
  void (__fastcall *toNBT)(ItemState *this, CompoundTag *, int);
  bool (__fastcall *fromNBT)(ItemState *this, const CompoundTag *, int *);
};

# ItemStateVariant<enum CauldronLiquidType>_vtbl

struct /*VFT*/ ItemStateVariant<enum CauldronLiquidType>_vtbl
{
  void (__fastcall *~ItemState)(ItemState *this);
  void (__fastcall *toNBT)(ItemState *this, CompoundTag *, int);
  bool (__fastcall *fromNBT)(ItemState *this, const CompoundTag *, int *);
};

# ItemStateVariant<enum BlockColor>_vtbl

struct /*VFT*/ ItemStateVariant<enum BlockColor>_vtbl
{
  void (__fastcall *~ItemState)(ItemState *this);
  void (__fastcall *toNBT)(ItemState *this, CompoundTag *, int);
  bool (__fastcall *fromNBT)(ItemState *this, const CompoundTag *, int *);
};

# ItemInHandRenderer::tick::__l5::<lambda_962ed2fbdd707cdd51990b5110039a81>

struct __cppobj ItemInHandRenderer::tick::__l5::<lambda_962ed2fbdd707cdd51990b5110039a81>
{
  ItemInHandRenderer *const __this;
};

# ItemStateVariant<enum WoodType>_vtbl

struct /*VFT*/ ItemStateVariant<enum WoodType>_vtbl
{
  void (__fastcall *~ItemState)(ItemState *this);
  void (__fastcall *toNBT)(ItemState *this, CompoundTag *, int);
  bool (__fastcall *fromNBT)(ItemState *this, const CompoundTag *, int *);
};

# InheritanceTree<cg::RenderMaterialGroupLoader<std::unordered_map<HashedString,std::shared_ptrmce::RenderMaterialInfo>,mce::RenderMaterial,mce::RenderMaterialInfo,ResourcePackManager>::_loadMaterialSet'::2'::MaterialParent>::InheritanceTreeNode

struct __cppobj __declspec(align(8)) InheritanceTree<`cg::RenderMaterialGroupLoader<std::unordered_map<HashedString,std::shared_ptr<mce::RenderMaterialInfo>>,mce::RenderMaterial,mce::RenderMaterialInfo,ResourcePackManager>::_loadMaterialSet'::`2'::MaterialParent>::InheritanceTreeNode
{
  std::string name;
  cg::RenderMaterialGroupLoader<std::unordered_map<HashedString,std::shared_ptr<mce::RenderMaterialInfo>>,mce::RenderMaterial,mce::RenderMaterialInfo,ResourcePackManager>::_loadMaterialSet::__l2::MaterialParent val;
  std::vector<InheritanceTree<`cg::RenderMaterialGroupLoader<std::unordered_map<HashedString,std::shared_ptr<mce::RenderMaterialInfo>>,mce::RenderMaterial,mce::RenderMaterialInfo,ResourcePackManager>::_loadMaterialSet'::`2'::MaterialParent>::InheritanceTreeNode *,std::allocator<InheritanceTree<`cg::RenderMaterialGroupLoader<std::unordered_map<HashedString,std::shared_ptr<mce::RenderMaterialInfo>>,mce::RenderMaterial,mce::RenderMaterialInfo,ResourcePackManager>::_loadMaterialSet'::`2'::MaterialParent>::InheritanceTreeNode *> > child;
  bool isVisited;
};

# InheritanceTree<cg::RenderMaterialGroupLoader<std::unordered_map<HashedString,std::shared_ptrmce::RenderMaterialInfo>,mce::RenderMaterial,mce::RenderMaterialInfo,ResourcePackManager>::_loadMaterialSet'::2'::MaterialParent>

struct __cppobj InheritanceTree<`cg::RenderMaterialGroupLoader<std::unordered_map<HashedString,std::shared_ptr<mce::RenderMaterialInfo>>,mce::RenderMaterial,mce::RenderMaterialInfo,ResourcePackManager>::_loadMaterialSet'::`2'::MaterialParent>
{
  std::unordered_map<std::string,InheritanceTree<`cg::RenderMaterialGroupLoader<std::unordered_map<HashedString,std::shared_ptr<mce::RenderMaterialInfo>>,mce::RenderMaterial,mce::RenderMaterialInfo,ResourcePackManager>::_loadMaterialSet'::`2'::MaterialParent>::InheritanceTreeNode,std::hash<std::string >,std::equal_to<std::string >,std::allocator<std::pair<std::string const ,InheritanceTree<`cg::RenderMaterialGroupLoader<std::unordered_map<HashedString,std::shared_ptr<mce::RenderMaterialInfo>>,mce::RenderMaterial,mce::RenderMaterialInfo,ResourcePackManager>::_loadMaterialSet'::`2'::MaterialParent>::InheritanceTreeNode> > > mNodes;
  std::recursive_mutex mNodeLock;
};

# imaxdiv_t

struct imaxdiv_t
{
  __int64 quot;
  __int64 rem;
};

# InsideBlockNotifierDefinition

struct __cppobj InsideBlockNotifierDefinition
{
  std::vector<InsideBlockEventMap> mBlockList;
};

# InsideBlockNotifierComponent

struct __cppobj InsideBlockNotifierComponent : IEntityComponent
{
  std::vector<InsideBlockEventMap> mBlockList;
};

# InsideBlockNotifierDefinition::buildSchema::__l2::<lambda_0d6ef42452abe706e46fab342416b474>

struct __cppobj InsideBlockNotifierDefinition::buildSchema::__l2::<lambda_0d6ef42452abe706e46fab342416b474>
{
};

# InsideBlockNotifierDefinition::buildSchema::__l2::<lambda_6d4917e49b04d157ae6db7034c2e9b52>

struct __cppobj InsideBlockNotifierDefinition::buildSchema::__l2::<lambda_6d4917e49b04d157ae6db7034c2e9b52>
{
};

# InstantDespawnDefinition

struct __cppobj InstantDespawnDefinition
{
  bool mRemoveChildActors;
};

# InstantDespawnComponent

struct __cppobj InstantDespawnComponent : IEntityComponent
{
};

# InstantDespawnComponent::_removeChildActors::__l2::<lambda_b115654ba34d739de8046707c5c85e6e>

struct __cppobj InstantDespawnComponent::_removeChildActors::__l2::<lambda_b115654ba34d739de8046707c5c85e6e>
{
};

# IPlayerTickPolicy

struct __cppobj IPlayerTickPolicy
{
  IPlayerTickPolicy_vtbl *__vftable /*VFT*/;
};

# IPlayerTickPolicy_vtbl

struct /*VFT*/ IPlayerTickPolicy_vtbl
{
  void (__fastcall *~IPlayerTickPolicy)(IPlayerTickPolicy *this);
  void (__fastcall *setupTick)(IPlayerTickPolicy *this, PlayerTickComponent *);
  IPlayerTickPolicy::TickAction (__fastcall *shouldTickPlayer)(IPlayerTickPolicy *this, const PlayerTickComponent *);
};

# InsideBlockNotifierSystem

struct __cppobj InsideBlockNotifierSystem : ITickingSystem
{
};

# InsideBlockNotifierSystem_vtbl

struct /*VFT*/ InsideBlockNotifierSystem_vtbl
{
  void (__fastcall *~ITickingSystem)(ITickingSystem *this);
  void (__fastcall *tick)(ITickingSystem *this, EntityRegistry *);
};

# InstantDespawnSystem

struct __cppobj InstantDespawnSystem : ITickingSystem
{
};

# InstantDespawnSystem_vtbl

struct /*VFT*/ InstantDespawnSystem_vtbl
{
  void (__fastcall *~ITickingSystem)(ITickingSystem *this);
  void (__fastcall *tick)(ITickingSystem *this, EntityRegistry *);
};

# ItemComponentPacket::read::__l2::<lambda_f1a5efba8ba8b793d3a354dfef534331>

struct __cppobj ItemComponentPacket::read::__l2::<lambda_f1a5efba8ba8b793d3a354dfef534331>
{
};

# ItemComponentPacket::write::__l2::<lambda_f8b1764a3be4a1f5e4e38f57f969d3c1>

struct __cppobj ItemComponentPacket::write::__l2::<lambda_f8b1764a3be4a1f5e4e38f57f969d3c1>
{
};

# ItemStackRequestActionMineBlock

struct __cppobj __declspec(align(8)) ItemStackRequestActionMineBlock : ItemStackRequestAction
{
  int mPredictedDurability;
  int mSlot;
  ItemStackNetIdVariant mNetIdVariant;
  _BYTE mPreValidationStatus[1];
};

# ItemStackRequestActionMineBlock_vtbl

struct /*VFT*/ ItemStackRequestActionMineBlock_vtbl
{
  void (__fastcall *~ItemStackRequestAction)(ItemStackRequestAction *this);
  const ItemStackRequestActionCraftBase *(__fastcall *getCraftAction)(ItemStackRequestAction *this);
  int (__fastcall *getFilteredStringIndex)(ItemStackRequestAction *this);
  void (__fastcall *_write)(ItemStackRequestAction *this, BinaryStream *);
  bool (__fastcall *_read)(ItemStackRequestAction *this, ReadOnlyBinaryStream *);
};

# ItemStackRequestActionDataless<7>

struct __cppobj ItemStackRequestActionDataless<7> : ItemStackRequestAction
{
};

# ItemStackRequestActionDataless<7>_vtbl

struct /*VFT*/ ItemStackRequestActionDataless<7>_vtbl
{
  void (__fastcall *~ItemStackRequestAction)(ItemStackRequestAction *this);
  const ItemStackRequestActionCraftBase *(__fastcall *getCraftAction)(ItemStackRequestAction *this);
  int (__fastcall *getFilteredStringIndex)(ItemStackRequestAction *this);
  void (__fastcall *_write)(ItemStackRequestAction *this, BinaryStream *);
  bool (__fastcall *_read)(ItemStackRequestAction *this, ReadOnlyBinaryStream *);
};

# IPackStackStorageFileSystem

struct __cppobj IPackStackStorageFileSystem
{
  IPackStackStorageFileSystem_vtbl *__vftable /*VFT*/;
};

# IPackStackStorageFileSystem_vtbl

struct /*VFT*/ IPackStackStorageFileSystem_vtbl
{
  void (__fastcall *~IPackStackStorageFileSystem)(IPackStackStorageFileSystem *this);
  void (__fastcall *clear)(IPackStackStorageFileSystem *this);
  void (__fastcall *deletePack)(IPackStackStorageFileSystem *this, const PackIdVersion *);
  std::unique_ptr<IDataInput> *(__fastcall *tryReadPack)(IPackStackStorageFileSystem *this, std::unique_ptr<IDataInput> *result, const PackIdVersion *);
  std::unique_ptr<IDataOutput> *(__fastcall *tryWritePack)(IPackStackStorageFileSystem *this, std::unique_ptr<IDataOutput> *result, const PackIdVersion *);
  void (__fastcall *setSubdirectory)(IPackStackStorageFileSystem *this, gsl::basic_string_span<char const ,-1>);
};

# IPackStackStorageTelemetry

struct __cppobj IPackStackStorageTelemetry
{
  IPackStackStorageTelemetry_vtbl *__vftable /*VFT*/;
};

# IPackStackStorageTelemetry_vtbl

struct /*VFT*/ IPackStackStorageTelemetry_vtbl
{
  void (__fastcall *~IPackStackStorageTelemetry)(IPackStackStorageTelemetry *this);
  void (__fastcall *fireWriteOptimizedPack)(IPackStackStorageTelemetry *this, const PackStorageMetrics *);
};

# ITaskGroupProxy

struct __cppobj ITaskGroupProxy
{
  ITaskGroupProxy_vtbl *__vftable /*VFT*/;
};

# ITaskGroupProxy_vtbl

struct /*VFT*/ ITaskGroupProxy_vtbl
{
  void (__fastcall *~ITaskGroupProxy)(ITaskGroupProxy *this);
  std::shared_ptr<Bedrock::Threading::IAsyncResult<void> > *(__fastcall *queue)(ITaskGroupProxy *this, std::shared_ptr<Bedrock::Threading::IAsyncResult<void> > *result, TaskStartInfoEx<void>, std::function<TaskResult __cdecl(void)>, std::function<void __cdecl(void)>);
  void (__fastcall *flush)(ITaskGroupProxy *this);
};

# ICRCDataInput

struct __cppobj ICRCDataInput : BytesDataInput
{
};

# ICRCDataInput_vtbl

struct /*VFT*/ ICRCDataInput_vtbl
{
  void (__fastcall *~IDataInput)(IDataInput *this);
  std::string *(__fastcall *readString)(IDataInput *this, std::string *result);
  std::string *(__fastcall *readLongString)(IDataInput *this, std::string *result);
  float (__fastcall *readFloat)(IDataInput *this);
  long double (__fastcall *readDouble)(IDataInput *this);
  char (__fastcall *readByte)(IDataInput *this);
  __int16 (__fastcall *readShort)(IDataInput *this);
  int (__fastcall *readInt)(IDataInput *this);
  __int64 (__fastcall *readLongLong)(IDataInput *this);
  bool (__fastcall *readBytes)(IDataInput *this, void *, unsigned __int64);
  unsigned __int64 (__fastcall *numBytesLeft)(IDataInput *this);
  bool (__fastcall *isOk)(IDataInput *this);
  bool (__fastcall *seek)(IDataInput *this, unsigned __int64);
  unsigned int (__fastcall *getCRC)(ICRCDataInput *this);
};

# IPackStoragePolicy

struct __cppobj IPackStoragePolicy
{
  IPackStoragePolicy_vtbl *__vftable /*VFT*/;
};

# IPackStoragePolicy_vtbl

struct /*VFT*/ IPackStoragePolicy_vtbl
{
  void (__fastcall *~IPackStoragePolicy)(IPackStoragePolicy *this);
  bool (__fastcall *shouldWriteOptimizedPack)(IPackStoragePolicy *this, const PackStorageMetrics *);
  IPackStoragePolicy::CacheInvalidationMode (__fastcall *getCacheInvalidationMode)(IPackStoragePolicy *this);
};

# ICRCDataOutput

struct __cppobj ICRCDataOutput : BytesDataOutput
{
};

# ICRCDataOutput_vtbl

struct /*VFT*/ ICRCDataOutput_vtbl
{
  void (__fastcall *~IDataOutput)(IDataOutput *this);
  void (__fastcall *writeString)(IDataOutput *this, gsl::basic_string_span<char const ,-1>);
  void (__fastcall *writeLongString)(IDataOutput *this, gsl::basic_string_span<char const ,-1>);
  void (__fastcall *writeFloat)(IDataOutput *this, float);
  void (__fastcall *writeDouble)(IDataOutput *this, long double);
  void (__fastcall *writeByte)(IDataOutput *this, char);
  void (__fastcall *writeShort)(IDataOutput *this, __int16);
  void (__fastcall *writeInt)(IDataOutput *this, int);
  void (__fastcall *writeLongLong)(IDataOutput *this, __int64);
  void (__fastcall *writeBytes)(IDataOutput *this, const void *, unsigned __int64);
  bool (__fastcall *isOk)(IDataOutput *this);
  unsigned int (__fastcall *getCRC)(ICRCDataOutput *this);
  void (__fastcall *setCRCSeed)(ICRCDataOutput *this, unsigned int);
};

# ItemStackRequestActionHandler::RequestIdAssignments

struct __cppobj ItemStackRequestActionHandler::RequestIdAssignments
{
  std::chrono::time_point<std::chrono::steady_clock,std::chrono::duration<__int64,std::ratio<1,1000000000> > > mExpireTime;
  std::unordered_map<TypedRuntimeId<ContainerRuntimeIdTag,unsigned int,0>,std::unordered_map<unsigned char,ItemStackRequestActionHandler::RequestSlotIdAssignment>,std::hash<TypedRuntimeId<ContainerRuntimeIdTag,unsigned int,0> >,std::equal_to<TypedRuntimeId<ContainerRuntimeIdTag,unsigned int,0> >,std::allocator<std::pair<TypedRuntimeId<ContainerRuntimeIdTag,unsigned int,0> const ,std::unordered_map<unsigned char,ItemStackRequestActionHandler::RequestSlotIdAssignment> > > > mContainers;
};

# ItemStackRequestActionCraftHandler

struct __cppobj ItemStackRequestActionCraftHandler
{
  ItemStackRequestActionHandler *mRequestActionHandler;
  Player *mPlayer;
  std::unique_ptr<CraftHandlerBase> mCraftHandler;
  SparseContainer *mCreatedOutputSparseContainer;
  std::vector<std::pair<ItemInstance,unsigned int>> mCraftResults;
};

# ItemStackRequestActionTransferBase

struct __cppobj __declspec(align(8)) ItemStackRequestActionTransferBase : ItemStackRequestAction
{
  bool mIsDstSerialized;
  bool mIsAmountSerialized;
  unsigned __int8 mAmount;
  ItemStackRequestSlotInfo mSrc;
  ItemStackRequestSlotInfo mDst;
};

# ItemStackRequestActionTransferBase_vtbl

struct /*VFT*/ ItemStackRequestActionTransferBase_vtbl
{
  void (__fastcall *~ItemStackRequestAction)(ItemStackRequestAction *this);
  const ItemStackRequestActionCraftBase *(__fastcall *getCraftAction)(ItemStackRequestAction *this);
  int (__fastcall *getFilteredStringIndex)(ItemStackRequestAction *this);
  void (__fastcall *_write)(ItemStackRequestAction *this, BinaryStream *);
  bool (__fastcall *_read)(ItemStackRequestAction *this, ReadOnlyBinaryStream *);
};

# ItemStackRequestActionConsume

struct __cppobj ItemStackRequestActionConsume : ItemStackRequestActionTransferBase
{
};

# ItemStackRequestActionConsume_vtbl

struct /*VFT*/ ItemStackRequestActionConsume_vtbl
{
  void (__fastcall *~ItemStackRequestAction)(ItemStackRequestAction *this);
  const ItemStackRequestActionCraftBase *(__fastcall *getCraftAction)(ItemStackRequestAction *this);
  int (__fastcall *getFilteredStringIndex)(ItemStackRequestAction *this);
  void (__fastcall *_write)(ItemStackRequestAction *this, BinaryStream *);
  bool (__fastcall *_read)(ItemStackRequestAction *this, ReadOnlyBinaryStream *);
};

# ItemStackRequestActionCreate

struct __cppobj __declspec(align(8)) ItemStackRequestActionCreate : ItemStackRequestAction
{
  unsigned __int8 mResultsIndex;
};

# ItemStackRequestActionCreate_vtbl

struct /*VFT*/ ItemStackRequestActionCreate_vtbl
{
  void (__fastcall *~ItemStackRequestAction)(ItemStackRequestAction *this);
  const ItemStackRequestActionCraftBase *(__fastcall *getCraftAction)(ItemStackRequestAction *this);
  int (__fastcall *getFilteredStringIndex)(ItemStackRequestAction *this);
  void (__fastcall *_write)(ItemStackRequestAction *this, BinaryStream *);
  bool (__fastcall *_read)(ItemStackRequestAction *this, ReadOnlyBinaryStream *);
};

# ItemStackRequestActionCraftResults_DEPRECATEDASKTYLAING

struct __cppobj __declspec(align(8)) ItemStackRequestActionCraftResults_DEPRECATEDASKTYLAING : ItemStackRequestAction, Bedrock::EnableNonOwnerReferences
{
  std::vector<ItemInstance> mCraftResults;
  unsigned __int8 mNumCrafts;
};

# ItemStackRequestActionCraftResults_DEPRECATEDASKTYLAING_vtbl

struct /*VFT*/ ItemStackRequestActionCraftResults_DEPRECATEDASKTYLAING_vtbl
{
  void (__fastcall *~ItemStackRequestAction)(ItemStackRequestAction *this);
  const ItemStackRequestActionCraftBase *(__fastcall *getCraftAction)(ItemStackRequestAction *this);
  int (__fastcall *getFilteredStringIndex)(ItemStackRequestAction *this);
  void (__fastcall *_write)(ItemStackRequestAction *this, BinaryStream *);
  bool (__fastcall *_read)(ItemStackRequestAction *this, ReadOnlyBinaryStream *);
};

# ItemStackRequestActionTake

struct __cppobj ItemStackRequestActionTake : ItemStackRequestActionTransferBase
{
};

# ItemStackRequestActionTake_vtbl

struct /*VFT*/ ItemStackRequestActionTake_vtbl
{
  void (__fastcall *~ItemStackRequestAction)(ItemStackRequestAction *this);
  const ItemStackRequestActionCraftBase *(__fastcall *getCraftAction)(ItemStackRequestAction *this);
  int (__fastcall *getFilteredStringIndex)(ItemStackRequestAction *this);
  void (__fastcall *_write)(ItemStackRequestAction *this, BinaryStream *);
  bool (__fastcall *_read)(ItemStackRequestAction *this, ReadOnlyBinaryStream *);
};

# ItemStackRequestActionPlace

struct __cppobj ItemStackRequestActionPlace : ItemStackRequestActionTransferBase
{
};

# ItemStackRequestActionPlace_vtbl

struct /*VFT*/ ItemStackRequestActionPlace_vtbl
{
  void (__fastcall *~ItemStackRequestAction)(ItemStackRequestAction *this);
  const ItemStackRequestActionCraftBase *(__fastcall *getCraftAction)(ItemStackRequestAction *this);
  int (__fastcall *getFilteredStringIndex)(ItemStackRequestAction *this);
  void (__fastcall *_write)(ItemStackRequestAction *this, BinaryStream *);
  bool (__fastcall *_read)(ItemStackRequestAction *this, ReadOnlyBinaryStream *);
};

# ItemStackRequestActionSwap

struct __cppobj ItemStackRequestActionSwap : ItemStackRequestActionTransferBase
{
};

# ItemStackRequestActionSwap_vtbl

struct /*VFT*/ ItemStackRequestActionSwap_vtbl
{
  void (__fastcall *~ItemStackRequestAction)(ItemStackRequestAction *this);
  const ItemStackRequestActionCraftBase *(__fastcall *getCraftAction)(ItemStackRequestAction *this);
  int (__fastcall *getFilteredStringIndex)(ItemStackRequestAction *this);
  void (__fastcall *_write)(ItemStackRequestAction *this, BinaryStream *);
  bool (__fastcall *_read)(ItemStackRequestAction *this, ReadOnlyBinaryStream *);
};

# ItemStackRequestActionDrop

struct __cppobj __declspec(align(8)) ItemStackRequestActionDrop : ItemStackRequestActionTransferBase
{
  bool mRandomly;
};

# ItemStackRequestActionDrop_vtbl

struct /*VFT*/ ItemStackRequestActionDrop_vtbl
{
  void (__fastcall *~ItemStackRequestAction)(ItemStackRequestAction *this);
  const ItemStackRequestActionCraftBase *(__fastcall *getCraftAction)(ItemStackRequestAction *this);
  int (__fastcall *getFilteredStringIndex)(ItemStackRequestAction *this);
  void (__fastcall *_write)(ItemStackRequestAction *this, BinaryStream *);
  bool (__fastcall *_read)(ItemStackRequestAction *this, ReadOnlyBinaryStream *);
};

# ItemStackRequestActionDestroy

struct __cppobj ItemStackRequestActionDestroy : ItemStackRequestActionTransferBase
{
};

# ItemStackRequestActionDestroy_vtbl

struct /*VFT*/ ItemStackRequestActionDestroy_vtbl
{
  void (__fastcall *~ItemStackRequestAction)(ItemStackRequestAction *this);
  const ItemStackRequestActionCraftBase *(__fastcall *getCraftAction)(ItemStackRequestAction *this);
  int (__fastcall *getFilteredStringIndex)(ItemStackRequestAction *this);
  void (__fastcall *_write)(ItemStackRequestAction *this, BinaryStream *);
  bool (__fastcall *_read)(ItemStackRequestAction *this, ReadOnlyBinaryStream *);
};

# ItemStackRequestActionCraftRecipeOptional

struct __cppobj ItemStackRequestActionCraftRecipeOptional : ItemStackRequestActionCraftBase
{
  TypedServerNetId<RecipeNetIdTag,unsigned int,0> mRecipeNetId;
  int mFilteredStringIndex;
};

# ItemStackNetResultMap

struct __cppobj ItemStackNetResultMap
{
};

# ItemTransactionPrintStream

struct __cppobj ItemTransactionPrintStream : PrintStream
{
  std::string output;
};

# IconItemComponent

struct __cppobj IconItemComponent : ItemComponent
{
  bool mIsLegacy;
  int mFrame;
  std::string mPath;
  std::string mLegacyTextureID;
  ExpressionNode mFrameExpression;
};

# IconItemComponent_vtbl

struct /*VFT*/ IconItemComponent_vtbl
{
  void (__fastcall *~ItemComponent)(ItemComponent *this);
  bool (__fastcall *checkComponentDataForContentErrors)(ItemComponent *this);
  void (__fastcall *writeSettings)(ItemComponent *this);
  bool (__fastcall *useOn)(ItemComponent *this, ItemStack *, Actor *, const BlockPos *, unsigned __int8, const Vec3 *);
  bool (__fastcall *isNetworkComponent)(ItemComponent *this);
  std::unique_ptr<CompoundTag> *(__fastcall *buildNetworkTag)(ItemComponent *this, std::unique_ptr<CompoundTag> *result);
  void (__fastcall *initializeFromNetwork)(ItemComponent *this, const CompoundTag *);
};

# ItemStackBaseComponentsHelper

struct __cppobj ItemStackBaseComponentsHelper
{
};

# ItemOffsetsJsonMergeStrategy

struct __cppobj ItemOffsetsJsonMergeStrategy : ResourcePackMergeStrategy
{
  std::string mFileName;
  Json::Value *mRoot;
  std::function<bool __cdecl(Json::Value &,Json::Value const &)> mPreMergeCallback;
};

# ItemOffsetsJsonMergeStrategy_vtbl

struct /*VFT*/ ItemOffsetsJsonMergeStrategy_vtbl
{
  void (__fastcall *~ResourcePackMergeStrategy)(ResourcePackMergeStrategy *this);
  void (__fastcall *mergeFiles)(ResourcePackMergeStrategy *this, const std::vector<LoadedResourceData> *);
};

# ItemRegistry::finishedRegistration::__l2::<lambda_70fef6c0759c65221332aaee33e5409c>

struct __cppobj ItemRegistry::finishedRegistration::__l2::<lambda_70fef6c0759c65221332aaee33e5409c>
{
};

# ItemRegistry::initClientData::__l2::<lambda_98bbe0afcea06dfe0f1f934a541bcc7f>

struct __cppobj ItemRegistry::initClientData::__l2::<lambda_98bbe0afcea06dfe0f1f934a541bcc7f>
{
  Json::Value *offsetsList;
};

# ItemRegistry::initClientData::__l2::<lambda_15061cb01a1f23d0b93056d87df630c2>

struct __cppobj ItemRegistry::initClientData::__l2::<lambda_15061cb01a1f23d0b93056d87df630c2>
{
  Json::Value *offsetsList;
};

# ItemRegistry::initClientData::__l2::<lambda_9cdc954b5e1c53038c363585803b3fe6>

struct __cppobj ItemRegistry::initClientData::__l2::<lambda_9cdc954b5e1c53038c363585803b3fe6>
{
  Json::Value *offsetsList;
};

# ItemRegistry::loadCustomTabMod::__l7::<lambda_d16f6ade70b90623c8c247e500f3bfa9>

struct __cppobj ItemRegistry::loadCustomTabMod::__l7::<lambda_d16f6ade70b90623c8c247e500f3bfa9>
{
  std::reverse_iterator<std::_Vector_iterator<std::_Vector_val<std::_Simple_types<PackInstance> > > > *rit;
};

# ItemRegistry::initServerData::__l2::<lambda_29a8be2813e1a1c998ef4f3b11ec0b48>

struct __cppobj ItemRegistry::initServerData::__l2::<lambda_29a8be2813e1a1c998ef4f3b11ec0b48>
{
};

# ImprovedNoise

struct __cppobj ImprovedNoise
{
  Vec3 mOrigin;
  int mNoiseMap[512];
};

# IllagerBeastBlockedComponent

struct __cppobj IllagerBeastBlockedComponent : IEntityComponent
{
};

# InsomniaDefinition

struct InsomniaDefinition
{
  float mDaysUntilInsomnia;
};

# InsomniaComponent

struct __cppobj InsomniaComponent : IEntityComponent
{
  int mTimeSinceRest;
  float mDaysUntilInsomnia;
  int mTicksUntilInsomnia;
};

# Interaction

struct __cppobj Interaction
{
  int mRequiresCoolDown;
  int mCooldownAfterBeingAttacked;
  bool mSwing;
  bool mUseItem;
  bool mBarter;
  bool mAdmire;
  int mHurtItem;
  ItemDefinition mTransformItem;
  std::string mInteractText;
  std::string mAddItemsTable;
  std::string mSpawnItemsTable;
  ParticleType mParticleOnStartType;
  bool mParticleOffsetTowardsInteractor;
  float mParticleOffsetY;
  std::vector<enum LevelSoundEvent> mPlaySounds;
  std::vector<ActorDefinitionIdentifier> mSpawnEntities;
  DefinitionTrigger mOnInteraction;
};

# InteractComponent

struct __cppobj InteractComponent : IEntityComponent
{
  __int16 mCoolDownCounter;
};

# InteractComponent::_runInteraction::__l14::<lambda_ae53782ecca7e04baa21bc96d5a84a07>

struct __cppobj InteractComponent::_runInteraction::__l14::<lambda_ae53782ecca7e04baa21bc96d5a84a07>
{
  Player *player;
  Actor *owner;
  const Interaction desc;
  InteractComponent *const __this;
  VariantParameterList parameters;
};

# ImpactDamageSubcomponent::doOnHitEffect::__l25::<lambda_71a38e2a7af0b559e50815421fb21c41>

struct __cppobj ImpactDamageSubcomponent::doOnHitEffect::__l25::<lambda_71a38e2a7af0b559e50815421fb21c41>
{
  Actor *owner;
  Actor **actor;
};

# InteractSystem

struct __cppobj InteractSystem : ITickingSystem
{
};

# InteractSystem_vtbl

struct /*VFT*/ InteractSystem_vtbl
{
  void (__fastcall *~ITickingSystem)(ITickingSystem *this);
  void (__fastcall *tick)(ITickingSystem *this, EntityRegistry *);
};

# IMinecraftEventingFactory

struct __cppobj IMinecraftEventingFactory
{
  IMinecraftEventingFactory_vtbl *__vftable /*VFT*/;
};

# IMinecraftEventingFactory_vtbl

struct /*VFT*/ IMinecraftEventingFactory_vtbl
{
  void (__fastcall *~IMinecraftEventingFactory)(IMinecraftEventingFactory *this);
  std::unique_ptr<IMinecraftEventing> *(__fastcall *createUnique)(IMinecraftEventingFactory *this, std::unique_ptr<IMinecraftEventing> *result, const Core::Path *);
};

# I18n::_notifyLanguagesLoaded::__l2::<lambda_d875f77c8c2700a9cd40f9949cdf8dfe>

struct __cppobj I18n::_notifyLanguagesLoaded::__l2::<lambda_d875f77c8c2700a9cd40f9949cdf8dfe>
{
};

# I18n::_notifyLanguageKeywordsLoadedFromPack::__l2::<lambda_10396514d14f9101e9d3adb0d44b3328>

struct __cppobj I18n::_notifyLanguageKeywordsLoadedFromPack::__l2::<lambda_10396514d14f9101e9d3adb0d44b3328>
{
  const PackManifest *manifest;
};

# I18n::_notifyLanguageChanged::__l2::<lambda_649e4e9af20f80817f2c20583bb6206e>

struct __cppobj __declspec(align(8)) I18n::_notifyLanguageChanged::__l2::<lambda_649e4e9af20f80817f2c20583bb6206e>
{
  const std::string *code;
  bool languageSystemInitializing;
};

# I18n::loadLanguages::__l2::<lambda_ef3b06a7f71882522ea788568137f891>

struct __cppobj I18n::loadLanguages::__l2::<lambda_ef3b06a7f71882522ea788568137f891>
{
  std::shared_ptr<std::unique_ptr<Localization> > fallbackLanguage;
  ResourcePackManager *resourcePackManager;
};

# I18n::loadLanguages::__l2::<lambda_abe00045961746f1142d5d1f076a1207>::()::__l2::<lambda_bbc05d6f196c1b7aa91fc66275970a9e>

struct __cppobj I18n::loadLanguages::__l2::<lambda_abe00045961746f1142d5d1f076a1207>::()::__l2::<lambda_bbc05d6f196c1b7aa91fc66275970a9e>
{
  std::shared_ptr<std::unique_ptr<Localization> > fallbackLanguage;
};

# I18n::loadLanguages::__l2::<lambda_abe00045961746f1142d5d1f076a1207>::()::__l5::<lambda_4d642274db6ab3c01b159388d78027e6>

struct __cppobj I18n::loadLanguages::__l2::<lambda_abe00045961746f1142d5d1f076a1207>::()::__l5::<lambda_4d642274db6ab3c01b159388d78027e6>
{
  std::shared_ptr<std::unique_ptr<Localization> > initLanguage;
  I18n::loadLanguages::__l2::<lambda_abe00045961746f1142d5d1f076a1207>::()::__l2::<lambda_bbc05d6f196c1b7aa91fc66275970a9e> setFirstLanguageCallback;
};

# I18n::loadLanguages::__l2::<lambda_abe00045961746f1142d5d1f076a1207>::()::__l5::<lambda_a4f82ea2e03c70963f97c4fd77be0240>

struct __cppobj I18n::loadLanguages::__l2::<lambda_abe00045961746f1142d5d1f076a1207>::()::__l5::<lambda_a4f82ea2e03c70963f97c4fd77be0240>
{
  const std::string initLangCode;
  std::shared_ptr<std::unique_ptr<Localization> > initLanguage;
  ResourcePackManager *resourcePackManager;
  std::shared_ptr<std::unique_ptr<Localization> > fallbackLanguage;
};

# ItemStackResponsePacket::read::__l2::<lambda_132ee880768e0161e2e324d24fc7494c>

struct __cppobj ItemStackResponsePacket::read::__l2::<lambda_132ee880768e0161e2e324d24fc7494c>
{
};

# ItemStackResponsePacket::write::__l2::<lambda_020c660e9a5dcf070db80e316c81cfb3>

struct __cppobj ItemStackResponsePacket::write::__l2::<lambda_020c660e9a5dcf070db80e316c81cfb3>
{
};

# InventoryTransactionPacket::read::__l5::<lambda_a574df6f0bdb02f01a2dd1d358a6ca5a>

struct __cppobj InventoryTransactionPacket::read::__l5::<lambda_a574df6f0bdb02f01a2dd1d358a6ca5a>
{
};

# InventoryTransactionPacket::read::__l5::<lambda_a574df6f0bdb02f01a2dd1d358a6ca5a>::()::__l2::<lambda_30e0757f0c2686ee6fe05e87734d4147>

struct __cppobj InventoryTransactionPacket::read::__l5::<lambda_a574df6f0bdb02f01a2dd1d358a6ca5a>::()::__l2::<lambda_30e0757f0c2686ee6fe05e87734d4147>
{
};

# InventoryTransactionPacket::write::__l5::<lambda_d75b9fc3c5fc567ef34b8997fcc45b51>

struct __cppobj InventoryTransactionPacket::write::__l5::<lambda_d75b9fc3c5fc567ef34b8997fcc45b51>
{
};

# InventoryTransactionPacket::write::__l5::<lambda_d75b9fc3c5fc567ef34b8997fcc45b51>::()::__l2::<lambda_d943be3566716386e54ce9adf74ef643>

struct __cppobj InventoryTransactionPacket::write::__l5::<lambda_d75b9fc3c5fc567ef34b8997fcc45b51>::()::__l2::<lambda_d943be3566716386e54ce9adf74ef643>
{
};

# InventoryContentPacket::read::__l2::<lambda_601cbd3a776905082a28dd0e881fb43a>

struct __cppobj InventoryContentPacket::read::__l2::<lambda_601cbd3a776905082a28dd0e881fb43a>
{
};

# InventoryContentPacket::write::__l2::<lambda_4be1d40a9b88abcb4b8a0671dc47c41e>

struct __cppobj InventoryContentPacket::write::__l2::<lambda_4be1d40a9b88abcb4b8a0671dc47c41e>
{
};

# ItemStateVariant<enum AnvilDamage>_vtbl

struct /*VFT*/ ItemStateVariant<enum AnvilDamage>_vtbl
{
  void (__fastcall *~ItemState)(ItemState *this);
  void (__fastcall *toNBT)(ItemState *this, CompoundTag *, int);
  bool (__fastcall *fromNBT)(ItemState *this, const CompoundTag *, int *);
};

# ImmutableWorldCommand

struct __cppobj __declspec(align(8)) ImmutableWorldCommand : Command
{
  bool mValue;
  bool mHaveValue;
};

# ImmutableWorldCommand_vtbl

struct /*VFT*/ ImmutableWorldCommand_vtbl
{
  void (__fastcall *~Command)(Command *this);
  void (__fastcall *execute)(Command *this, const CommandOrigin *, CommandOutput *);
};

# ImmutableWorldCommand::execute::__l7::<lambda_39c29400f835db41300720856abefdd6>

struct __cppobj ImmutableWorldCommand::execute::__l7::<lambda_39c29400f835db41300720856abefdd6>
{
  std::string *message;
  std::vector<std::string> *params;
};

# ImmutableWorldCommand::execute::__l7::<lambda_d8acac27e87ed6a480bfc2cb83421c71>

struct __cppobj ImmutableWorldCommand::execute::__l7::<lambda_d8acac27e87ed6a480bfc2cb83421c71>
{
  Level *level;
};

# ItemAcquisitionMethodMap

struct __cppobj ItemAcquisitionMethodMap
{
};

# ItemUseMethodMap

struct __cppobj ItemUseMethodMap
{
};

# ItemStateVariant<enum DoublePlantType>_vtbl

struct /*VFT*/ ItemStateVariant<enum DoublePlantType>_vtbl
{
  void (__fastcall *~ItemState)(ItemState *this);
  void (__fastcall *toNBT)(ItemState *this, CompoundTag *, int);
  bool (__fastcall *fromNBT)(ItemState *this, const CompoundTag *, int *);
};

# internal_state

struct __declspec(align(8)) internal_state
{
  z_stream_s *strm;
  int status;
  unsigned __int8 *pending_buf;
  unsigned int pending_buf_size;
  unsigned __int8 *pending_out;
  unsigned int pending;
  int wrap;
  gz_header_s *gzhead;
  unsigned int gzindex;
  unsigned __int8 method;
  int last_flush;
  unsigned int w_size;
  unsigned int w_bits;
  unsigned int w_mask;
  unsigned __int8 *window;
  unsigned int window_size;
  wchar_t *prev;
  wchar_t *head;
  unsigned int ins_h;
  unsigned int hash_size;
  unsigned int hash_bits;
  unsigned int hash_mask;
  unsigned int hash_shift;
  int block_start;
  unsigned int match_length;
  unsigned int prev_match;
  int match_available;
  unsigned int strstart;
  unsigned int match_start;
  unsigned int lookahead;
  unsigned int prev_length;
  unsigned int max_chain_length;
  unsigned int max_lazy_match;
  int level;
  int strategy;
  unsigned int good_match;
  int nice_match;
  ct_data_s dyn_ltree[573];
  ct_data_s dyn_dtree[61];
  ct_data_s bl_tree[39];
  tree_desc_s l_desc;
  tree_desc_s d_desc;
  tree_desc_s bl_desc;
  unsigned __int16 bl_count[16];
  int heap[573];
  int heap_len;
  int heap_max;
  unsigned __int8 depth[573];
  unsigned __int8 *l_buf;
  unsigned int lit_bufsize;
  unsigned int last_lit;
  wchar_t *d_buf;
  unsigned int opt_len;
  unsigned int static_len;
  unsigned int matches;
  unsigned int insert;
  unsigned __int16 bi_buf;
  int bi_valid;
  unsigned int high_water;
};

# ItemList

struct __cppobj ItemList
{
  std::vector<short> mIds;
};

# IntellisenseUtils::sortAutoCompleteOptions::__l2::<lambda_a7f31732b241dcd8bb65652214292f57>

struct __cppobj __declspec(align(8)) IntellisenseUtils::sortAutoCompleteOptions::__l2::<lambda_a7f31732b241dcd8bb65652214292f57>
{
  const std::string *match;
  const int matchLength;
};

# IntellisenseUtils::autoCompleteAgentNames::__l18::<lambda_b08d46b8454291fb2ce5c960d84f2b67>

struct __cppobj IntellisenseUtils::autoCompleteAgentNames::__l18::<lambda_b08d46b8454291fb2ce5c960d84f2b67>
{
  const std::string *partialMatch;
  AutoCompleteInformation *info;
};

# ItemListSerializer

struct __cppobj ItemListSerializer
{
};

# IsBabyDefinition

struct __cppobj IsBabyDefinition
{
};

# IsStackableDefinition

struct __cppobj IsStackableDefinition
{
};

# IsChargedDefinition

struct __cppobj IsChargedDefinition
{
};

# IsSaddledDefinition

struct __cppobj IsSaddledDefinition
{
};

# IsChestedDefinition

struct __cppobj IsChestedDefinition
{
};

# IsIllagerCaptainDefinition

struct __cppobj IsIllagerCaptainDefinition
{
};

# IsShakingDefinition

struct __cppobj IsShakingDefinition
{
};

# IsShearedDefinition

struct __cppobj IsShearedDefinition
{
};

# IsHiddenWhenInvisibleDefinition

struct __cppobj IsHiddenWhenInvisibleDefinition
{
};

# IsStunnedDefinition

struct __cppobj IsStunnedDefinition
{
};

# IsTamedDefinition

struct __cppobj IsTamedDefinition
{
};

# ItemStateVariant<enum PortalAxis>_vtbl

struct /*VFT*/ ItemStateVariant<enum PortalAxis>_vtbl
{
  void (__fastcall *~ItemState)(ItemState *this);
  void (__fastcall *toNBT)(ItemState *this, CompoundTag *, int);
  bool (__fastcall *fromNBT)(ItemState *this, const CompoundTag *, int *);
};

# IsIgnitedDefinition

struct __cppobj IsIgnitedDefinition
{
};

# ItemControlDefinition

struct __cppobj ItemControlDefinition
{
  std::set<Item const *> mControlItems;
};

# InverterNode

struct __cppobj InverterNode : BehaviorNode
{
  std::unique_ptr<BehaviorNode> mActiveChild;
};

# InverterNode_vtbl

struct /*VFT*/ InverterNode_vtbl
{
  void (__fastcall *~BehaviorNode)(BehaviorNode *this);
  BehaviorStatus (__fastcall *tick)(BehaviorNode *this, Actor *);
  void (__fastcall *initializeFromDefinition)(BehaviorNode *this, Actor *);
};

# InverterDefinition

struct __cppobj InverterDefinition : DecoratorDefinition
{
};

# InverterDefinition_vtbl

struct /*VFT*/ InverterDefinition_vtbl
{
  void (__fastcall *~BehaviorDefinition)(BehaviorDefinition *this);
  void (__fastcall *load)(BehaviorDefinition *this, Json::Value, const BehaviorFactory *);
  std::unique_ptr<BehaviorNode> *(__fastcall *createNode)(BehaviorDefinition *this, std::unique_ptr<BehaviorNode> *result, Actor *, const BehaviorFactory *, BehaviorNode *, BehaviorData *);
};

# InteractActionNode

struct __cppobj __declspec(align(8)) InteractActionNode : BehaviorNode
{
  int mNumTicksToInteract;
  int mDelayCounter;
  bool mRightMouseDown;
  bool mPreActionDone;
};

# InteractActionNode_vtbl

struct /*VFT*/ InteractActionNode_vtbl
{
  void (__fastcall *~BehaviorNode)(BehaviorNode *this);
  BehaviorStatus (__fastcall *tick)(BehaviorNode *this, Actor *);
  void (__fastcall *initializeFromDefinition)(BehaviorNode *this, Actor *);
};

# InteractActionDefinition

struct __cppobj InteractActionDefinition : BehaviorDefinition
{
  int mInteractTicks;
  std::string mInteractTicksId;
};

# InteractActionDefinition_vtbl

struct /*VFT*/ InteractActionDefinition_vtbl
{
  void (__fastcall *~BehaviorDefinition)(BehaviorDefinition *this);
  void (__fastcall *load)(BehaviorDefinition *this, Json::Value, const BehaviorFactory *);
  std::unique_ptr<BehaviorNode> *(__fastcall *createNode)(BehaviorDefinition *this, std::unique_ptr<BehaviorNode> *result, Actor *, const BehaviorFactory *, BehaviorNode *, BehaviorData *);
};

# ItemActor::playerTouch::__l23::<lambda_d9e454806b848468ea5cde3045678df1>

struct __cppobj ItemActor::playerTouch::__l23::<lambda_d9e454806b848468ea5cde3045678df1>
{
  ItemActor *const __this;
  Player *player;
};

# ItemActor::playerTouch::__l17::<lambda_22609815bb6ea811d5f9518dcc3dcc68>

struct __cppobj ItemActor::playerTouch::__l17::<lambda_22609815bb6ea811d5f9518dcc3dcc68>
{
  Player *player;
  ItemActor *const __this;
  int *modValue;
  std::string *modExtendValue;
};

# ItemActor::playerTouch::__l8::<lambda_454dfbf294d0e6a4acdea366b591995f>

struct __cppobj ItemActor::playerTouch::__l8::<lambda_454dfbf294d0e6a4acdea366b591995f>
{
  Player *player;
  ItemActor *const __this;
  bool *cancel;
};

# ItemStateVariant<enum DirtType>_vtbl

struct /*VFT*/ ItemStateVariant<enum DirtType>_vtbl
{
  void (__fastcall *~ItemState)(ItemState *this);
  void (__fastcall *toNBT)(ItemState *this, CompoundTag *, int);
  bool (__fastcall *fromNBT)(ItemState *this, const CompoundTag *, int *);
};

# ItemStateVariant<enum SandType>_vtbl

struct /*VFT*/ ItemStateVariant<enum SandType>_vtbl
{
  void (__fastcall *~ItemState)(ItemState *this);
  void (__fastcall *toNBT)(ItemState *this, CompoundTag *, int);
  bool (__fastcall *fromNBT)(ItemState *this, const CompoundTag *, int *);
};

# IllagerBeast

struct __cppobj IllagerBeast : Monster
{
};

# ItemStateVariant<enum MonsterEggStoneType>_vtbl

struct /*VFT*/ ItemStateVariant<enum MonsterEggStoneType>_vtbl
{
  void (__fastcall *~ItemState)(ItemState *this);
  void (__fastcall *toNBT)(ItemState *this, CompoundTag *, int);
  bool (__fastcall *fromNBT)(ItemState *this, const CompoundTag *, int *);
};

# ItemReleaseInventoryTransaction

struct __cppobj __declspec(align(8)) ItemReleaseInventoryTransaction : ComplexInventoryTransaction
{
  ItemReleaseInventoryTransaction::ActionType mActionType;
  int mSlot;
  ItemStack mItem;
  Vec3 mFromPos;
};

# ItemReleaseInventoryTransaction_vtbl

struct /*VFT*/ ItemReleaseInventoryTransaction_vtbl
{
  void (__fastcall *~ComplexInventoryTransaction)(ComplexInventoryTransaction *this);
  void (__fastcall *read)(ComplexInventoryTransaction *this, ReadOnlyBinaryStream *);
  void (__fastcall *write)(ComplexInventoryTransaction *this, BinaryStream *);
  InventoryTransactionError (__fastcall *handle)(ComplexInventoryTransaction *this, Player *, bool);
  void (__fastcall *onTransactionError)(ComplexInventoryTransaction *this, Player *, InventoryTransactionError);
};

# Inventory::setItemWithForceBalance::__l2::<lambda_a3707d688b5b0d3dc6fee13b53a3797f>

struct __cppobj __declspec(align(4)) Inventory::setItemWithForceBalance::__l2::<lambda_a3707d688b5b0d3dc6fee13b53a3797f>
{
  Inventory *const __this;
  int slot;
  bool forceBalanced;
};

# ItemStateVariant<enum WallBlockType>_vtbl

struct /*VFT*/ ItemStateVariant<enum WallBlockType>_vtbl
{
  void (__fastcall *~ItemState)(ItemState *this);
  void (__fastcall *toNBT)(ItemState *this, CompoundTag *, int);
  bool (__fastcall *fromNBT)(ItemState *this, const CompoundTag *, int *);
};

# ItemStateVariant<enum StoneSlabType>_vtbl

struct /*VFT*/ ItemStateVariant<enum StoneSlabType>_vtbl
{
  void (__fastcall *~ItemState)(ItemState *this);
  void (__fastcall *toNBT)(ItemState *this, CompoundTag *, int);
  bool (__fastcall *fromNBT)(ItemState *this, const CompoundTag *, int *);
};

# ItemStateVariant<enum SandStoneType>_vtbl

struct /*VFT*/ ItemStateVariant<enum SandStoneType>_vtbl
{
  void (__fastcall *~ItemState)(ItemState *this);
  void (__fastcall *toNBT)(ItemState *this, CompoundTag *, int);
  bool (__fastcall *fromNBT)(ItemState *this, const CompoundTag *, int *);
};

# ItemStateVariant<enum StoneType>_vtbl

struct /*VFT*/ ItemStateVariant<enum StoneType>_vtbl
{
  void (__fastcall *~ItemState)(ItemState *this);
  void (__fastcall *toNBT)(ItemState *this, CompoundTag *, int);
  bool (__fastcall *fromNBT)(ItemState *this, const CompoundTag *, int *);
};

# ItemStateVariant<enum StoneSlabType2>_vtbl

struct /*VFT*/ ItemStateVariant<enum StoneSlabType2>_vtbl
{
  void (__fastcall *~ItemState)(ItemState *this);
  void (__fastcall *toNBT)(ItemState *this, CompoundTag *, int);
  bool (__fastcall *fromNBT)(ItemState *this, const CompoundTag *, int *);
};

# ItemStateVariant<enum OldLogType>_vtbl

struct /*VFT*/ ItemStateVariant<enum OldLogType>_vtbl
{
  void (__fastcall *~ItemState)(ItemState *this);
  void (__fastcall *toNBT)(ItemState *this, CompoundTag *, int);
  bool (__fastcall *fromNBT)(ItemState *this, const CompoundTag *, int *);
};

# ItemStateVariant<enum NewLogType>_vtbl

struct /*VFT*/ ItemStateVariant<enum NewLogType>_vtbl
{
  void (__fastcall *~ItemState)(ItemState *this);
  void (__fastcall *toNBT)(ItemState *this, CompoundTag *, int);
  bool (__fastcall *fromNBT)(ItemState *this, const CompoundTag *, int *);
};

# ItemStackRequestActionCraft<TypedServerNetId<CreativeItemNetIdTag,unsigned int,0>,12>

struct __cppobj __declspec(align(8)) ItemStackRequestActionCraft<TypedServerNetId<CreativeItemNetIdTag,unsigned int,0>,12> : ItemStackRequestActionCraftBase
{
  TypedServerNetId<CreativeItemNetIdTag,unsigned int,0> mRecipeNetId;
};

# ItemStackRequestActionCraft<TypedServerNetId<RecipeNetIdTag,unsigned int,0>,10>

struct __cppobj __declspec(align(8)) ItemStackRequestActionCraft<TypedServerNetId<RecipeNetIdTag,unsigned int,0>,10> : ItemStackRequestActionCraftBase
{
  TypedServerNetId<RecipeNetIdTag,unsigned int,0> mRecipeNetId;
};

# ItemStackRequestActionCraft<TypedServerNetId<RecipeNetIdTag,unsigned int,0>,11>

struct __cppobj __declspec(align(8)) ItemStackRequestActionCraft<TypedServerNetId<RecipeNetIdTag,unsigned int,0>,11> : ItemStackRequestActionCraftBase
{
  TypedServerNetId<RecipeNetIdTag,unsigned int,0> mRecipeNetId;
};

# InventoryContainerModel

struct __cppobj InventoryContainerModel : ContainerModel
{
  Player *mPlayer;
};

# InventoryContainerModel_vtbl

struct /*VFT*/ InventoryContainerModel_vtbl
{
  void (__fastcall *containerContentChanged)(ContainerContentChangeListener *this, int);
  void (__fastcall *~ContainerContentChangeListener)(ContainerContentChangeListener *this);
  void (__fastcall *containerAddCallback)(ContainerContentChangeListener *this, Container *);
  void (__fastcall *containerRemoveCallback)(ContainerContentChangeListener *this, Container *);
  void (__fastcall *postInit)(ContainerModel *this);
  void (__fastcall *releaseResources)(ContainerModel *this);
  int (__fastcall *getContainerSize)(ContainerModel *this);
  int (__fastcall *getFilteredContainerSize)(ContainerModel *this);
  void (__fastcall *tick)(ContainerModel *this, int);
  ContainerWeakRef *(__fastcall *getContainerWeakRef)(ContainerModel *this, ContainerWeakRef *result);
  const ItemStack *(__fastcall *getItemStack)(ContainerModel *this, int);
  const std::vector<ItemStack> *(__fastcall *getItems)(ContainerModel *this);
  const ItemInstance *(__fastcall *getItemInstance)(ContainerModel *this, int);
  const ItemStackBase *(__fastcall *getItemStackBase)(ContainerModel *this, int);
  bool (__fastcall *isItemInstanceBased)(ContainerModel *this);
  void (__fastcall *setItem)(ContainerModel *this, int, const ItemStack *);
  bool (__fastcall *isValid)(ContainerModel *this);
  bool (__fastcall *isItemFiltered)(ContainerModel *this, const ItemStackBase *);
  bool (__fastcall *isExpanableItemFiltered)(ContainerModel *this, int);
  ContainerExpandStatus (__fastcall *getItemExpandStatus)(ContainerModel *this, int);
  const std::string *(__fastcall *getItemGroupName)(ContainerModel *this, int);
  void (__fastcall *switchItemExpando)(ContainerModel *this, int);
  Container *(__fastcall *_getContainer)(ContainerModel *this);
  int (__fastcall *_getContainerOffset)(ContainerModel *this);
  void (__fastcall *_onItemChanged)(ContainerModel *this, int, const ItemStack *, const ItemStack *);
};

# ItemIndexPair

struct __cppobj __declspec(align(8)) ItemIndexPair
{
  ItemStack item;
  int index;
};

# ItemEventCoordinator::onItemSelected::__l2::<lambda_995e70868d082cfc702911b893f9dcf9>

struct __cppobj ItemEventCoordinator::onItemSelected::__l2::<lambda_995e70868d082cfc702911b893f9dcf9>
{
  const ItemStackBase *item;
};

# ItemEventCoordinator::onItemSelectedSlot::__l2::<lambda_88a8cea30fc53fa026d505eca15f17df>

struct __cppobj ItemEventCoordinator::onItemSelectedSlot::__l2::<lambda_88a8cea30fc53fa026d505eca15f17df>
{
  int *slot;
};

# ItemEventCoordinator::onItemModifiedActor::__l2::<lambda_411f7a01f1129b5f639db4213a90c8f8>

struct __cppobj ItemEventCoordinator::onItemModifiedActor::__l2::<lambda_411f7a01f1129b5f639db4213a90c8f8>
{
  const ItemStackBase *item;
  const Actor *modifiedActor;
};

# ItemEventCoordinator::onItemSpawnedActor::__l2::<lambda_a2d164d320e4ffc42485eb70ab2ed315>

struct __cppobj ItemEventCoordinator::onItemSpawnedActor::__l2::<lambda_a2d164d320e4ffc42485eb70ab2ed315>
{
  const ItemStackBase *item;
  const Actor *spawnedActor;
};

# ItemEventCoordinator::onItemSmelted::__l2::<lambda_8c3fb2a35ff6b9e03466a41053f446a9>

struct __cppobj ItemEventCoordinator::onItemSmelted::__l2::<lambda_8c3fb2a35ff6b9e03466a41053f446a9>
{
  Player *player;
  const ItemDescriptor *itemDescriptor;
  const ItemDescriptor *lastFuelItemDescriptor;
};

# ItemEventCoordinator::onRecipeSelected::__l2::<lambda_4da3d845fbbed62989e964698ab8644e>

struct __cppobj ItemEventCoordinator::onRecipeSelected::__l2::<lambda_4da3d845fbbed62989e964698ab8644e>
{
  const ItemStackBase *item;
};

# ItemEventCoordinator::onInventoryItemCraftedAutomaticallyByRecipe::__l2::<lambda_f328e27592a5c6d625c83daaf17d00b3>

struct __cppobj ItemEventCoordinator::onInventoryItemCraftedAutomaticallyByRecipe::__l2::<lambda_f328e27592a5c6d625c83daaf17d00b3>
{
  const ItemStackBase *item;
};

# ItemEventCoordinator::onInventoryLayoutSelected::__l2::<lambda_849047266a25de240f4a4bb04c1d88a3>

struct __cppobj ItemEventCoordinator::onInventoryLayoutSelected::__l2::<lambda_849047266a25de240f4a4bb04c1d88a3>
{
  int activeInventoryLayout;
  int activeInventoryLeftTabIndex;
};

# ItemEventCoordinator::onPreviewItemPopulatedInContainer::__l2::<lambda_3cc6b2de0b175dbcd067f4b91d189afe>

struct __cppobj ItemEventCoordinator::onPreviewItemPopulatedInContainer::__l2::<lambda_3cc6b2de0b175dbcd067f4b91d189afe>
{
  const ItemStackBase *item;
  const std::string *destContainerName;
};

# ItemEventCoordinator::onItemTransferredToContainer::__l2::<lambda_038449db46c985824168aa2705b8a5b6>

struct __cppobj ItemEventCoordinator::onItemTransferredToContainer::__l2::<lambda_038449db46c985824168aa2705b8a5b6>
{
  const ItemStackBase *item;
  const std::string *dstContainerName;
};

# ItemEventCoordinator::onItemTransferredFromContainer::__l2::<lambda_c8b9334e78cab66de6ab296d1d36a039>

struct __cppobj ItemEventCoordinator::onItemTransferredFromContainer::__l2::<lambda_c8b9334e78cab66de6ab296d1d36a039>
{
  const ItemStackBase *item;
  const std::string *srcContainerName;
};

# ItemEventCoordinator::onInventoryItemClosed::__l2::<lambda_9bca14f91308724404e58d31843e40cd>

struct __cppobj ItemEventCoordinator::onInventoryItemClosed::__l2::<lambda_9bca14f91308724404e58d31843e40cd>
{
};

# ItemEventCoordinator::onInventoryItemOpened::__l2::<lambda_6a4329a8f9e873d6804ade70759d9aeb>

struct __cppobj ItemEventCoordinator::onInventoryItemOpened::__l2::<lambda_6a4329a8f9e873d6804ade70759d9aeb>
{
  bool workbench;
};

# ItemUseOnActorInventoryTransaction

struct __cppobj ItemUseOnActorInventoryTransaction : ComplexInventoryTransaction
{
  ActorRuntimeID mRuntimeId;
  ItemUseOnActorInventoryTransaction::ActionType mActionType;
  int mSlot;
  ItemStack mItem;
  Vec3 mFromPos;
  Vec3 mHitPos;
};

# ItemUseOnActorInventoryTransaction_vtbl

struct /*VFT*/ ItemUseOnActorInventoryTransaction_vtbl
{
  void (__fastcall *~ComplexInventoryTransaction)(ComplexInventoryTransaction *this);
  void (__fastcall *read)(ComplexInventoryTransaction *this, ReadOnlyBinaryStream *);
  void (__fastcall *write)(ComplexInventoryTransaction *this, BinaryStream *);
  InventoryTransactionError (__fastcall *handle)(ComplexInventoryTransaction *this, Player *, bool);
  void (__fastcall *onTransactionError)(ComplexInventoryTransaction *this, Player *, InventoryTransactionError);
};

# ItemStackRequestActionCraftNonImplemented_DEPRECATEDASKTYLAING

struct __cppobj ItemStackRequestActionCraftNonImplemented_DEPRECATEDASKTYLAING : ItemStackRequestActionCraftBase
{
};

# ItemStackRequestActionCraftHandler::_setCreatedItemOutputSlot::__l2::<lambda_a66c44148aa5628097213f6881a43e8e>

struct __cppobj ItemStackRequestActionCraftHandler::_setCreatedItemOutputSlot::__l2::<lambda_a66c44148aa5628097213f6881a43e8e>
{
  ItemStack *result;
  ItemStackRequestActionCraftHandler *const __this;
};

# ItemStackNetManagerClient::_endTakeRequest::__l2::<lambda_4b5d140aba8ffad8f0d3f5fabdef6e9c>

struct __cppobj ItemStackNetManagerClient::_endTakeRequest::__l2::<lambda_4b5d140aba8ffad8f0d3f5fabdef6e9c>
{
  ItemStackNetManagerClient *const __this;
};

# ItemStackNetManagerClient::handleItemStackResponse::__l2::<lambda_b9507507e37d9822e2b5c213cd3f2694>

struct __cppobj ItemStackNetManagerClient::handleItemStackResponse::__l2::<lambda_b9507507e37d9822e2b5c213cd3f2694>
{
  ItemStackNetManagerClient *const __this;
};

# ItemStackRequestActionBeaconPayment

struct __cppobj ItemStackRequestActionBeaconPayment : ItemStackRequestAction
{
  int mPrimaryEffectId;
  int mSecondaryEffectId;
};

# ItemStackRequestActionBeaconPayment_vtbl

struct /*VFT*/ ItemStackRequestActionBeaconPayment_vtbl
{
  void (__fastcall *~ItemStackRequestAction)(ItemStackRequestAction *this);
  const ItemStackRequestActionCraftBase *(__fastcall *getCraftAction)(ItemStackRequestAction *this);
  int (__fastcall *getFilteredStringIndex)(ItemStackRequestAction *this);
  void (__fastcall *_write)(ItemStackRequestAction *this, BinaryStream *);
  bool (__fastcall *_read)(ItemStackRequestAction *this, ReadOnlyBinaryStream *);
};

# ItemStackRequestData::read::__l21::<lambda_debb6397f49318e63c85012bffa677fb>

struct __cppobj ItemStackRequestData::read::__l21::<lambda_debb6397f49318e63c85012bffa677fb>
{
};

# ItemStackRequestData::read::__l21::<lambda_51fa3ed410730b78b7a01b041935f57c>

struct __cppobj ItemStackRequestData::read::__l21::<lambda_51fa3ed410730b78b7a01b041935f57c>
{
  bool *success;
};

# ItemStackRequestData::write::__l2::<lambda_9df66a54aaff79fa8f3b389f693dc5e7>

struct __cppobj ItemStackRequestData::write::__l2::<lambda_9df66a54aaff79fa8f3b389f693dc5e7>
{
};

# ItemStackRequestData::write::__l2::<lambda_64131646be946ed397f9586197076e55>

struct __cppobj ItemStackRequestData::write::__l2::<lambda_64131646be946ed397f9586197076e55>
{
};

# ItemStackRequestBatch::read::__l2::<lambda_5b9c12c56a7d0959d0d7abfe654bc1f7>

struct __cppobj ItemStackRequestBatch::read::__l2::<lambda_5b9c12c56a7d0959d0d7abfe654bc1f7>
{
  bool *success;
};

# ItemStackRequestBatch::write::__l2::<lambda_c2f9300c357b923331d360971ca1f3e5>

struct __cppobj ItemStackRequestBatch::write::__l2::<lambda_c2f9300c357b923331d360971ca1f3e5>
{
};

# ItemStackRequestActionHandler::normalTick::__l2::<lambda_7f08f776a9ec2ff7fd0fcae599031290>

struct __cppobj ItemStackRequestActionHandler::normalTick::__l2::<lambda_7f08f776a9ec2ff7fd0fcae599031290>
{
  ItemStackRequestActionHandler *const __this;
  const std::chrono::time_point<std::chrono::steady_clock,std::chrono::duration<__int64,std::ratio<1,1000000000> > > now;
};

# ItemStackNetManagerServer::_retainSetItemStackNetIdVariantScope::__l2::<lambda_3b2a839be3fef68763c711c56ae834cf>

struct __cppobj ItemStackNetManagerServer::_retainSetItemStackNetIdVariantScope::__l2::<lambda_3b2a839be3fef68763c711c56ae834cf>
{
  ItemStackNetManagerServer *const __this;
};

# ItemStackNetManagerClient::handleItemStackResponse::__l14::<lambda_34c7f4c20e42ed3c6fdf3e0010a16e47>

struct __cppobj ItemStackNetManagerClient::handleItemStackResponse::__l14::<lambda_34c7f4c20e42ed3c6fdf3e0010a16e47>
{
  const TypedClientNetId<ItemStackRequestIdTag,int,0> *requestId;
  std::_List_iterator<std::_List_val<std::_List_simple_types<std::pair<TypedClientNetId<ItemStackRequestIdTag,int,0> const ,std::vector<ItemStackNetManagerClient::PredictiveContainer *> > > > > *requestContainerIter;
  ItemStackNetManagerScreen **requestScreen;
};

# ItemStackNetManagerClient::_tryBeginClientLegacyTransactionRequest::__l2::<lambda_e9006c655e9b5659fcf86d9b5b0951f5>

struct __cppobj ItemStackNetManagerClient::_tryBeginClientLegacyTransactionRequest::__l2::<lambda_e9006c655e9b5659fcf86d9b5b0951f5>
{
  ItemStackNetManagerClient *const __this;
  ItemStackNetManagerClient::ClientScreenData *screen;
};

# ItemStackNetManagerClient::_tryBeginClientLegacyTransactionRequest::__l21::<lambda_ef8c8ea32d5ae3e78e8c610038f8f655>

struct __cppobj ItemStackNetManagerClient::_tryBeginClientLegacyTransactionRequest::__l21::<lambda_ef8c8ea32d5ae3e78e8c610038f8f655>
{
};

# ItemStackNetManagerBase::_tryBeginClientLegacyTransactionRequest::__l2::<lambda_e7a4fc017682e823dab09712d5f50e21>

struct __cppobj ItemStackNetManagerBase::_tryBeginClientLegacyTransactionRequest::__l2::<lambda_e7a4fc017682e823dab09712d5f50e21>
{
};

# ItemStackNetManagerBase::_tryBeginClientLegacyTransactionRequest::__l2::<lambda_a834cc4a96ee39ff6e9e7a8155a968ac>

struct __cppobj ItemStackNetManagerBase::_tryBeginClientLegacyTransactionRequest::__l2::<lambda_a834cc4a96ee39ff6e9e7a8155a968ac>
{
};

# ItemStackRequestActionCraftResults_DEPRECATEDASKTYLAING::_read::__l2::<lambda_743d6ec30a4f6bb41f9ad922cfd7bebf>

struct __cppobj ItemStackRequestActionCraftResults_DEPRECATEDASKTYLAING::_read::__l2::<lambda_743d6ec30a4f6bb41f9ad922cfd7bebf>
{
};

# ItemStackRequestActionCraftResults_DEPRECATEDASKTYLAING::_write::__l2::<lambda_44481131c7af6c77951097094a3438d3>

struct __cppobj ItemStackRequestActionCraftResults_DEPRECATEDASKTYLAING::_write::__l2::<lambda_44481131c7af6c77951097094a3438d3>
{
};

# ItemUseOnActorInventoryTransaction::handle::__l2::<lambda_717ddd6c6ff0b10c5dc8dc3be8182175>

struct __cppobj ItemUseOnActorInventoryTransaction::handle::__l2::<lambda_717ddd6c6ff0b10c5dc8dc3be8182175>
{
  const ItemUseOnActorInventoryTransaction *const __this;
  Player *player;
  InventoryTransactionError *error;
  Actor *entity;
};

# ItemUseOnActorInventoryTransaction::handle::__l2::<lambda_33b37cdde6109377ff00b18d86917a97>

struct __cppobj ItemUseOnActorInventoryTransaction::handle::__l2::<lambda_33b37cdde6109377ff00b18d86917a97>
{
  Player *player;
  std::vector<InventoryAction> *checkActions;
  InventoryTransactionError *error;
};

# ItemUseInventoryTransaction::handle::__l2::<lambda_c530ab62820d6493de5d1bccf088a250>

struct __cppobj ItemUseInventoryTransaction::handle::__l2::<lambda_c530ab62820d6493de5d1bccf088a250>
{
  const ItemUseInventoryTransaction *const __this;
  Player *player;
};

# ItemUseInventoryTransaction::handle::__l2::<lambda_21ee3b95f04f276a565a508731dc5fe8>

struct __cppobj ItemUseInventoryTransaction::handle::__l2::<lambda_21ee3b95f04f276a565a508731dc5fe8>
{
  Player *player;
  std::vector<InventoryAction> *checkActions;
  InventoryTransactionError *error;
};

# ItemUseInventoryTransaction::handle::__l2::<lambda_c530ab62820d6493de5d1bccf088a250>::()::__l25::<lambda_d0d29b493f6c040670eb68931ede4841>

struct __cppobj ItemUseInventoryTransaction::handle::__l2::<lambda_c530ab62820d6493de5d1bccf088a250>::()::__l25::<lambda_d0d29b493f6c040670eb68931ede4841>
{
  Player *player;
  NetworkBlockPosition *at;
  unsigned __int8 *face;
  Vec3 *click;
  ItemStack *beforeItem;
};

# ItemUseInventoryTransaction::handle::__l2::<lambda_c530ab62820d6493de5d1bccf088a250>::()::__l8::<lambda_1acf723ceed0ef84c534c898f62791e9>

struct __cppobj ItemUseInventoryTransaction::handle::__l2::<lambda_c530ab62820d6493de5d1bccf088a250>::()::__l8::<lambda_1acf723ceed0ef84c534c898f62791e9>
{
  Player *player;
  ItemStack *beforeItem;
};

# ItemReleaseInventoryTransaction::handle::__l2::<lambda_201c9abca7835df9c509e4df36fdb287>

struct __cppobj ItemReleaseInventoryTransaction::handle::__l2::<lambda_201c9abca7835df9c509e4df36fdb287>
{
  const ItemReleaseInventoryTransaction *const __this;
  Player *player;
};

# ItemReleaseInventoryTransaction::handle::__l2::<lambda_89860fafc721bafcafb85f8b1b23d049>

struct __cppobj ItemReleaseInventoryTransaction::handle::__l2::<lambda_89860fafc721bafcafb85f8b1b23d049>
{
  Player *player;
  std::vector<InventoryAction> *checkActions;
  InventoryTransactionError *error;
};

# InventoryTransaction::deserialize::__l2::<lambda_8717587e6d3fe8d9ce91319c92b41f73>

struct __cppobj InventoryTransaction::deserialize::__l2::<lambda_8717587e6d3fe8d9ce91319c92b41f73>
{
  const bool hasNetIds;
};

# InventoryTransaction::serialize::__l2::<lambda_8688888e39c1700166086d2230ccdd25>

struct __cppobj InventoryTransaction::serialize::__l2::<lambda_8688888e39c1700166086d2230ccdd25>
{
  const bool hasNetIds;
};

# InventoryTransaction::getExecuteFunction::__l2::<lambda_e2f3c6380e29416d189c1fd96154a79b>

struct __cppobj InventoryTransaction::getExecuteFunction::__l2::<lambda_e2f3c6380e29416d189c1fd96154a79b>
{
};

# InventoryTransaction::getExecuteFunction::__l15::<lambda_1806643fee8bf3c9f79292c5e9c75e1b>

struct __cppobj InventoryTransaction::getExecuteFunction::__l15::<lambda_1806643fee8bf3c9f79292c5e9c75e1b>
{
};

# InventoryTransaction::getExecuteFunction::__l14::<lambda_f945a513e5d571fd448cead395be26f1>

struct __cppobj InventoryTransaction::getExecuteFunction::__l14::<lambda_f945a513e5d571fd448cead395be26f1>
{
};

# InventoryTransaction::getExecuteFunction::__l13::<lambda_29a34ac871b37bb0aa35b2cbd1dacddf>

struct __cppobj InventoryTransaction::getExecuteFunction::__l13::<lambda_29a34ac871b37bb0aa35b2cbd1dacddf>
{
};

# InventoryTransaction::getExecuteFunction::__l12::<lambda_21febff26b5753041f51887f876190bc>

struct __cppobj InventoryTransaction::getExecuteFunction::__l12::<lambda_21febff26b5753041f51887f876190bc>
{
};

# InventoryTransaction::getExecuteFunction::__l11::<lambda_9d306609f19934e147428f308bd483cb>

struct __cppobj InventoryTransaction::getExecuteFunction::__l11::<lambda_9d306609f19934e147428f308bd483cb>
{
};

# InventoryTransaction::getExecuteFunction::__l10::<lambda_346bb9b781d478ff2dc31e01ee8b523d>

struct __cppobj InventoryTransaction::getExecuteFunction::__l10::<lambda_346bb9b781d478ff2dc31e01ee8b523d>
{
};

# InventoryTransaction::getExecuteFunction::__l9::<lambda_331a57df1b10ec2c82c19b472df40957>

struct __cppobj InventoryTransaction::getExecuteFunction::__l9::<lambda_331a57df1b10ec2c82c19b472df40957>
{
};

# InventoryTransaction::getExecuteFunction::__l8::<lambda_7b6c4953e0d53e03b29279d6c07acd18>

struct __cppobj InventoryTransaction::getExecuteFunction::__l8::<lambda_7b6c4953e0d53e03b29279d6c07acd18>
{
};

# InventoryTransaction::getVerifyFunction::__l2::<lambda_f6430da3760c5cc851e36cf739b6245e>

struct __cppobj InventoryTransaction::getVerifyFunction::__l2::<lambda_f6430da3760c5cc851e36cf739b6245e>
{
};

# InventoryTransaction::getVerifyFunction::__l15::<lambda_3af4a19cbb01f6f9e18b079cc126cb5f>

struct __cppobj InventoryTransaction::getVerifyFunction::__l15::<lambda_3af4a19cbb01f6f9e18b079cc126cb5f>
{
};

# InventoryTransaction::getVerifyFunction::__l14::<lambda_9459f6fc34beec372400d36bc363bfee>

struct __cppobj InventoryTransaction::getVerifyFunction::__l14::<lambda_9459f6fc34beec372400d36bc363bfee>
{
};

# InventoryTransaction::getVerifyFunction::__l13::<lambda_b988566b3bee1104fa72d3b704dbba1a>

struct __cppobj InventoryTransaction::getVerifyFunction::__l13::<lambda_b988566b3bee1104fa72d3b704dbba1a>
{
};

# InventoryTransaction::getVerifyFunction::__l12::<lambda_b74608a181038386c312b88465086660>

struct __cppobj InventoryTransaction::getVerifyFunction::__l12::<lambda_b74608a181038386c312b88465086660>
{
};

# InventoryTransaction::getVerifyFunction::__l11::<lambda_eed1c6da0de08bc0cbb41bee00c7d216>

struct __cppobj InventoryTransaction::getVerifyFunction::__l11::<lambda_eed1c6da0de08bc0cbb41bee00c7d216>
{
};

# InventoryTransaction::getVerifyFunction::__l10::<lambda_af2ebe3619d2f4bd3bcd2e3572ead292>

struct __cppobj InventoryTransaction::getVerifyFunction::__l10::<lambda_af2ebe3619d2f4bd3bcd2e3572ead292>
{
};

# InventoryTransaction::getVerifyFunction::__l9::<lambda_3c7cbaf3d4e2c074fea0c4e172b0a624>

struct __cppobj InventoryTransaction::getVerifyFunction::__l9::<lambda_3c7cbaf3d4e2c074fea0c4e172b0a624>
{
};

# InventoryTransaction::getVerifyFunction::__l8::<lambda_44b6ed82121b0f8e3c174f086f46bc47>

struct __cppobj InventoryTransaction::getVerifyFunction::__l8::<lambda_44b6ed82121b0f8e3c174f086f46bc47>
{
};

# ItemStateVariant<enum CoralColor>_vtbl

struct /*VFT*/ ItemStateVariant<enum CoralColor>_vtbl
{
  void (__fastcall *~ItemState)(ItemState *this);
  void (__fastcall *toNBT)(ItemState *this, CompoundTag *, int);
  bool (__fastcall *fromNBT)(ItemState *this, const CompoundTag *, int *);
};

# ItemStateVariant<enum StoneSlabType4>_vtbl

struct /*VFT*/ ItemStateVariant<enum StoneSlabType4>_vtbl
{
  void (__fastcall *~ItemState)(ItemState *this);
  void (__fastcall *toNBT)(ItemState *this, CompoundTag *, int);
  bool (__fastcall *fromNBT)(ItemState *this, const CompoundTag *, int *);
};

# ItemStateVariant<enum StoneBrickType>_vtbl

struct /*VFT*/ ItemStateVariant<enum StoneBrickType>_vtbl
{
  void (__fastcall *~ItemState)(ItemState *this);
  void (__fastcall *toNBT)(ItemState *this, CompoundTag *, int);
  bool (__fastcall *fromNBT)(ItemState *this, const CompoundTag *, int *);
};

# ItemStateVariant<enum ChiselType>_vtbl

struct /*VFT*/ ItemStateVariant<enum ChiselType>_vtbl
{
  void (__fastcall *~ItemState)(ItemState *this);
  void (__fastcall *toNBT)(ItemState *this, CompoundTag *, int);
  bool (__fastcall *fromNBT)(ItemState *this, const CompoundTag *, int *);
};

# ItemStateVariant<enum PrismarineBlockType>_vtbl

struct /*VFT*/ ItemStateVariant<enum PrismarineBlockType>_vtbl
{
  void (__fastcall *~ItemState)(ItemState *this);
  void (__fastcall *toNBT)(ItemState *this, CompoundTag *, int);
  bool (__fastcall *fromNBT)(ItemState *this, const CompoundTag *, int *);
};

# ItemStateVariant<enum StoneSlabType3>_vtbl

struct /*VFT*/ ItemStateVariant<enum StoneSlabType3>_vtbl
{
  void (__fastcall *~ItemState)(ItemState *this);
  void (__fastcall *toNBT)(ItemState *this, CompoundTag *, int);
  bool (__fastcall *fromNBT)(ItemState *this, const CompoundTag *, int *);
};

# ItemEnchants::read::__l4::<lambda_73efc413a426f5d8ba8ac13a38db03eb>

struct __cppobj ItemEnchants::read::__l4::<lambda_73efc413a426f5d8ba8ac13a38db03eb>
{
};

# ItemEnchants::write::__l4::<lambda_58eab52bb2c04d2c069d1bbb3d1578e5>

struct __cppobj ItemEnchants::write::__l4::<lambda_58eab52bb2c04d2c069d1bbb3d1578e5>
{
};

# IceBombItem

struct __cppobj IceBombItem : ChemistryItem
{
};

# Item::_addLooseCreativeItemsServer::__l2::<lambda_a5ebcebf009e9e28ea6cc5661ec2b7d5>

struct __cppobj Item::_addLooseCreativeItemsServer::__l2::<lambda_a5ebcebf009e9e28ea6cc5661ec2b7d5>
{
  const BaseGameVersion worldVersion;
};

# ItemStackDescriptor

struct __cppobj ItemStackDescriptor : ItemDescriptorCount
{
  std::unique_ptr<CompoundTag> mUserData;
};

# ItemStack::releaseUsing::__l13::<lambda_5cd60e615ac5b9c58c7c3f72088baaa6>

struct __cppobj ItemStack::releaseUsing::__l13::<lambda_5cd60e615ac5b9c58c7c3f72088baaa6>
{
  Player **player;
  int *durationLeft;
  ItemStack *const __this;
  bool *cancel;
};

# ItemStack::releaseUsing::__l8::<lambda_8bb8acce16e1636ced95022b3cbea7be>

struct __cppobj ItemStack::releaseUsing::__l8::<lambda_8bb8acce16e1636ced95022b3cbea7be>
{
  Player **player;
  int *durationLeft;
  ItemStack *const __this;
  bool *cancel;
};

# ItemStack::use::__l16::<lambda_6e9e37d2b3455fba03f8bba4b639236f>

struct __cppobj ItemStack::use::__l16::<lambda_6e9e37d2b3455fba03f8bba4b639236f>
{
  Player *player;
  ItemStack *const __this;
};

# ItemStack::use::__l16::<lambda_209c5c7cb38417ffcc77163486f8adfa>

struct __cppobj ItemStack::use::__l16::<lambda_209c5c7cb38417ffcc77163486f8adfa>
{
  Player *player;
  ItemStack *const __this;
};

# ItemStack::use::__l11::<lambda_02104a712e56c121189fa84435428a0a>

struct __cppobj ItemStack::use::__l11::<lambda_02104a712e56c121189fa84435428a0a>
{
  Player *player;
  ItemStack *const __this;
};

# ItemStack::use::__l11::<lambda_68cc13ba87fc28d830625732a6851cba>

struct __cppobj ItemStack::use::__l11::<lambda_68cc13ba87fc28d830625732a6851cba>
{
  Player *player;
  ItemStack *const __this;
};

# ItemStateVariant<enum OldLeafType>_vtbl

struct /*VFT*/ ItemStateVariant<enum OldLeafType>_vtbl
{
  void (__fastcall *~ItemState)(ItemState *this);
  void (__fastcall *toNBT)(ItemState *this, CompoundTag *, int);
  bool (__fastcall *fromNBT)(ItemState *this, const CompoundTag *, int *);
};

# ItemStateVariant<enum NewLeafType>_vtbl

struct /*VFT*/ ItemStateVariant<enum NewLeafType>_vtbl
{
  void (__fastcall *~ItemState)(ItemState *this);
  void (__fastcall *toNBT)(ItemState *this, CompoundTag *, int);
  bool (__fastcall *fromNBT)(ItemState *this, const CompoundTag *, int *);
};

# ItemStateVariant<enum SaplingType>_vtbl

struct /*VFT*/ ItemStateVariant<enum SaplingType>_vtbl
{
  void (__fastcall *~ItemState)(ItemState *this);
  void (__fastcall *toNBT)(ItemState *this, CompoundTag *, int);
  bool (__fastcall *fromNBT)(ItemState *this, const CompoundTag *, int *);
};

# ItemStateVariant<enum TallGrassType>_vtbl

struct /*VFT*/ ItemStateVariant<enum TallGrassType>_vtbl
{
  void (__fastcall *~ItemState)(ItemState *this);
  void (__fastcall *toNBT)(ItemState *this, CompoundTag *, int);
  bool (__fastcall *fromNBT)(ItemState *this, const CompoundTag *, int *);
};

# ItemStateVariant<enum FlowerType>_vtbl

struct /*VFT*/ ItemStateVariant<enum FlowerType>_vtbl
{
  void (__fastcall *~ItemState)(ItemState *this);
  void (__fastcall *toNBT)(ItemState *this, CompoundTag *, int);
  bool (__fastcall *fromNBT)(ItemState *this, const CompoundTag *, int *);
};

# ItemStateVariant<enum SpongeType>_vtbl

struct /*VFT*/ ItemStateVariant<enum SpongeType>_vtbl
{
  void (__fastcall *~ItemState)(ItemState *this);
  void (__fastcall *toNBT)(ItemState *this, CompoundTag *, int);
  bool (__fastcall *fromNBT)(ItemState *this, const CompoundTag *, int *);
};

# ItemReactionComponent

struct __cppobj ItemReactionComponent : LabTableReactionComponent
{
  std::unique_ptr<ItemStack> mItem;
};

# ItemReactionComponent_vtbl

struct /*VFT*/ ItemReactionComponent_vtbl
{
  void (__fastcall *~LabTableReactionComponent)(LabTableReactionComponent *this);
  void (__fastcall *_onStart)(LabTableReactionComponent *this, LabTableReaction *, BlockSource *);
  void (__fastcall *_onTick)(LabTableReactionComponent *this, LabTableReaction *, BlockSource *);
  void (__fastcall *_onEnd)(LabTableReactionComponent *this, LabTableReaction *, BlockSource *);
};

# IceBlock

struct __cppobj __declspec(align(8)) IceBlock : BlockLegacy
{
  bool mPacked;
};

# IceBlock_vtbl

struct /*VFT*/ IceBlock_vtbl
{
  void (__fastcall *~BlockLegacy)(BlockLegacy *this);
  const Block *(__fastcall *getStateFromLegacyData)(BlockLegacy *this, unsigned __int16);
  const Block *(__fastcall *getModBlockStateFromLegacyData)(BlockLegacy *this, unsigned __int16);
  std::shared_ptr<BlockActor> *(__fastcall *newBlockEntity)(BlockLegacy *this, std::shared_ptr<BlockActor> *result, const BlockPos *, const Block *);
  const Block *(__fastcall *getNextBlockPermutation)(BlockLegacy *this, const Block *);
  bool (__fastcall *hasTag)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, const std::string *);
  bool (__fastcall *getCollisionShape)(BlockLegacy *this, AABB *, const Block *, BlockSource *, const BlockPos *, Actor *);
  bool (__fastcall *isObstructingChests)(BlockLegacy *this, BlockSource *, const BlockPos *);
  Vec3 *(__fastcall *randomlyModifyPosition)(BlockLegacy *this, Vec3 *result, const BlockPos *);
  Vec3 *(__fastcall *randomlyModifyPosition)(BlockLegacy *this, Vec3 *result, const BlockPos *, int *);
  void (__fastcall *addAABBs)(BlockLegacy *this, const Block *, BlockSource *, const BlockPos *, const AABB *, std::vector<AABB> *);
  const AABB *(__fastcall *getAABB)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, AABB *, bool);
  bool (__fastcall *addCollisionShapes)(BlockLegacy *this, const Block *, BlockSource *, const BlockPos *, const AABB *, std::vector<AABB> *, Actor *);
  const AABB *(__fastcall *getOutline)(BlockLegacy *this, BlockSource *, const BlockPos *, AABB *);
  bool (__fastcall *getLiquidClipVolume)(BlockLegacy *this, BlockSource *, const BlockPos *, AABB *);
  void (__fastcall *onProjectileHit)(BlockLegacy *this, BlockSource *, const BlockPos *, const Actor *);
  bool (__fastcall *liquidCanFlowIntoFromDirection)(BlockLegacy *this, unsigned __int8, const std::function<Block const & __cdecl(BlockPos const &)> *, const BlockPos *);
  bool (__fastcall *hasVariableLighting)(BlockLegacy *this);
  bool (__fastcall *isStrippable)(BlockLegacy *this, const Block *);
  const Block *(__fastcall *getStrippedBlock)(BlockLegacy *this, const Block *);
  bool (__fastcall *canProvideSupport)(BlockLegacy *this, const Block *, unsigned __int8, BlockSupportType);
  bool (__fastcall *canConnect)(BlockLegacy *this, const Block *, unsigned __int8, const Block *);
  void (__fastcall *getConnectedDirections)(BlockLegacy *this, const Block *, const BlockPos *, BlockSource *, bool *, bool *, bool *, bool *);
  bool (__fastcall *isStemBlock)(BlockLegacy *this);
  bool (__fastcall *isContainerBlock)(BlockLegacy *this);
  bool (__fastcall *isCraftingBlock)(BlockLegacy *this);
  bool (__fastcall *isWaterBlocking)(BlockLegacy *this);
  bool (__fastcall *isHurtableBlock)(BlockLegacy *this);
  bool (__fastcall *isFenceBlock)(BlockLegacy *this);
  bool (__fastcall *isFenceGateBlock)(BlockLegacy *this);
  bool (__fastcall *isThinFenceBlock)(BlockLegacy *this);
  bool (__fastcall *isWallBlock)(BlockLegacy *this);
  bool (__fastcall *isStairBlock)(BlockLegacy *this);
  bool (__fastcall *isSlabBlock)(BlockLegacy *this);
  bool (__fastcall *isDoubleSlabBlock)(BlockLegacy *this);
  bool (__fastcall *isDoorBlock)(BlockLegacy *this);
  bool (__fastcall *isRailBlock)(BlockLegacy *this);
  bool (__fastcall *isButtonBlock)(BlockLegacy *this);
  bool (__fastcall *canHurtAndBreakItem)(BlockLegacy *this);
  bool (__fastcall *isSignalSource)(BlockLegacy *this);
  bool (__fastcall *canBeOriginalSurface)(BlockLegacy *this);
  bool (__fastcall *isValidAuxValue)(BlockLegacy *this, int);
  void (__fastcall *setTargetLandBlocks)(BlockLegacy *this, const std::vector<std::string> *);
  bool (__fastcall *canFillAtPos)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *);
  const Block *(__fastcall *sanitizeFillBlock)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *);
  void (__fastcall *onFillBlock)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *);
  int (__fastcall *getDirectSignal)(BlockLegacy *this, BlockSource *, const BlockPos *, int);
  bool (__fastcall *waterSpreadCausesSpawn)(BlockLegacy *this);
  bool (__fastcall *canContainLiquid)(BlockLegacy *this);
  bool (__fastcall *shouldConnectToRedstone)(BlockLegacy *this, BlockSource *, const BlockPos *, int);
  void (__fastcall *handleRain)(BlockLegacy *this, BlockSource *, const BlockPos *, float);
  bool (__fastcall *canBeUsedInCommands)(BlockLegacy *this, const BaseGameVersion *);
  float (__fastcall *getThickness)(BlockLegacy *this);
  float (__fastcall *getFlexibility)(BlockLegacy *this, BlockSource *, const BlockPos *);
  bool (__fastcall *checkIsPathable)(BlockLegacy *this, Actor *, const BlockPos *, const BlockPos *);
  bool (__fastcall *shouldDispense)(BlockLegacy *this, BlockSource *, Container *);
  bool (__fastcall *dispense)(BlockLegacy *this, BlockSource *, Container *, int, const Vec3 *, unsigned __int8);
  void (__fastcall *transformOnFall)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *, float);
  void (__fastcall *onRedstoneUpdate)(BlockLegacy *this, BlockSource *, const BlockPos *, int, bool);
  void (__fastcall *onMove)(BlockLegacy *this, BlockSource *, const BlockPos *, const BlockPos *);
  bool (__fastcall *detachesOnPistonMove)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *movedByPiston)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *onStructureBlockPlace)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *onStructureNeighborBlockPlace)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *setupRedstoneComponent)(BlockLegacy *this, BlockSource *, const BlockPos *);
  bool (__fastcall *specialUse)(BlockLegacy *this, Player *, const BlockPos *, ItemStack *);
  BlockProperty (__fastcall *getRedstoneProperty)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *updateEntityAfterFallOn)(BlockLegacy *this, IActorMovementProxy *);
  bool (__fastcall *isBounceBlock)(BlockLegacy *this);
  bool (__fastcall *ignoreEntitiesOnPistonMove)(BlockLegacy *this, const Block *);
  bool (__fastcall *onFertilized)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *, FertilizerType);
  bool (__fastcall *mayConsumeFertilizer)(BlockLegacy *this, BlockSource *);
  bool (__fastcall *canBeFertilized)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *);
  bool (__fastcall *mayPick)(BlockLegacy *this, BlockSource *, const Block *, bool);
  bool (__fastcall *mayPick)(BlockLegacy *this);
  bool (__fastcall *mayPlace)(BlockLegacy *this, BlockSource *, const BlockPos *);
  bool (__fastcall *mayPlace)(BlockLegacy *this, BlockSource *, const BlockPos *, unsigned __int8);
  bool (__fastcall *mayPlaceOn)(BlockLegacy *this, BlockSource *, const BlockPos *);
  bool (__fastcall *tryToPlace)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, const ActorBlockSyncMessage *);
  bool (__fastcall *breaksFallingBlocks)(BlockLegacy *this, const Block *);
  void (__fastcall *destroy)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, Actor *);
  bool (__fastcall *playerWillDestroy)(BlockLegacy *this, Player *, const BlockPos *, const Block *);
  bool (__fastcall *getIgnoresDestroyPermissions)(BlockLegacy *this, Actor *, const BlockPos *);
  void (__fastcall *neighborChanged)(BlockLegacy *this, BlockSource *, const BlockPos *, const BlockPos *);
  bool (__fastcall *getSecondPart)(BlockLegacy *this, BlockSource *, const BlockPos *, BlockPos *);
  int (__fastcall *getResourceCount)(BlockLegacy *this, Random *, const Block *, int, bool);
  ItemInstance *(__fastcall *getResourceItem)(BlockLegacy *this, ItemInstance *result, Random *, const Block *, int);
  ItemInstance *(__fastcall *asItemInstance)(BlockLegacy *this, ItemInstance *result, BlockSource *, const BlockPos *, const Block *);
  void (__fastcall *spawnResources)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, std::vector<Item const *> *, float, int, bool);
  void (__fastcall *trySpawnResourcesOnExplosion)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, std::vector<Item const *> *, float, int, bool);
  bool (__fastcall *spawnBurnResources)(BlockLegacy *this, BlockSource *, float, float, float);
  const Block *(__fastcall *getPlacementBlock)(BlockLegacy *this, Actor *, const BlockPos *, unsigned __int8, const Vec3 *, int);
  int (__fastcall *calcVariant)(BlockLegacy *this, BlockSource *, const BlockPos *);
  bool (__fastcall *isAttachedTo)(BlockLegacy *this, BlockSource *, const BlockPos *, BlockPos *);
  bool (__fastcall *attack)(BlockLegacy *this, Player *, const BlockPos *);
  void (__fastcall *handleEntityInside)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *, Vec3 *);
  void (__fastcall *entityInside)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *);
  int (__fastcall *getExperienceDrop)(BlockLegacy *this, Random *);
  bool (__fastcall *canBeBuiltOver)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *triggerEvent)(BlockLegacy *this, BlockSource *, const BlockPos *, int, int);
  void (__fastcall *executeEvent)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, const std::string *, Actor *);
  void (__fastcall *executeEvent)(BlockLegacy *this, const std::string *, RenderParams *);
  bool (__fastcall *executeTrigger)(BlockLegacy *this, const DefinitionTrigger *, RenderParams *);
  bool (__fastcall *executeTriggerChain)(BlockLegacy *this, const DefinitionTrigger *, std::vector<std::pair<std::string const ,std::string const >> *, RenderParams *);
  void (__fastcall *forceExecuteTrigger)(BlockLegacy *this, const DefinitionTrigger *, RenderParams *);
  const MobSpawnerData *(__fastcall *getMobToSpawn)(BlockLegacy *this, const SpawnConditions *, BlockSource *);
  bool (__fastcall *shouldStopFalling)(BlockLegacy *this, Actor *);
  bool (__fastcall *pushesUpFallingBlocks)(BlockLegacy *this);
  float (__fastcall *calcGroundFriction)(BlockLegacy *this, Mob *, const BlockPos *);
  bool (__fastcall *canHaveExtraData)(BlockLegacy *this);
  bool (__fastcall *hasComparatorSignal)(BlockLegacy *this);
  int (__fastcall *getComparatorSignal)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, unsigned __int8);
  bool (__fastcall *onDig)(BlockLegacy *this, const Block *, Actor *, ItemStack *, const BlockPos *);
  bool (__fastcall *canSlide)(BlockLegacy *this, BlockSource *, const BlockPos *);
  bool (__fastcall *canSpawnAt)(BlockLegacy *this, const BlockSource *, const BlockPos *);
  void (__fastcall *notifySpawnedAt)(BlockLegacy *this, BlockSource *, const BlockPos *);
  int (__fastcall *getIconYOffset)(BlockLegacy *this);
  std::string *(__fastcall *buildDescriptionId)(BlockLegacy *this, std::string *result, const Block *);
  bool (__fastcall *isAuxValueRelevantForPicking)(BlockLegacy *this);
  int (__fastcall *getColor)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *);
  int (__fastcall *getColor)(BlockLegacy *this, const Block *);
  int (__fastcall *getColorAtPos)(BlockLegacy *this, BlockSource *, const BlockPos *);
  int (__fastcall *getColorForParticle)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *);
  bool (__fastcall *isSeasonTinted)(BlockLegacy *this, const Block *, BlockSource *, const BlockPos *);
  void (__fastcall *onGraphicsModeChanged)(BlockLegacy *this, const BlockGraphicsModeChangeContext *);
  float (__fastcall *getShadeBrightness)(BlockLegacy *this, const Block *);
  const AABB *(__fastcall *getVisualShapeInWorld)(BlockLegacy *this, const Block *, BlockSource *, const BlockPos *, AABB *, bool);
  const AABB *(__fastcall *getVisualShape)(BlockLegacy *this, const Block *, AABB *, bool);
  const AABB *(__fastcall *getUIShape)(BlockLegacy *this, const Block *, AABB *);
  int (__fastcall *telemetryVariant)(BlockLegacy *this, BlockSource *, const BlockPos *);
  int (__fastcall *getVariant)(BlockLegacy *this, const Block *);
  bool (__fastcall *canSpawnOn)(BlockLegacy *this);
  const Block *(__fastcall *getRenderBlock)(BlockLegacy *this);
  unsigned __int8 (__fastcall *getMappedFace)(BlockLegacy *this, unsigned __int8, const Block *);
  bool (__fastcall *renderTwoFaced)(BlockLegacy *this);
  Flip (__fastcall *getFaceFlip)(BlockLegacy *this, unsigned __int8, const Block *);
  void (__fastcall *animateTick)(BlockLegacy *this, BlockSource *, const BlockPos *, Random *);
  BlockLegacy *(__fastcall *init)(BlockLegacy *this);
  BlockLegacy *(__fastcall *setLightBlock)(BlockLegacy *this, Brightness);
  BlockLegacy *(__fastcall *setLightEmission)(BlockLegacy *this, float);
  BlockLegacy *(__fastcall *setExplodeable)(BlockLegacy *this, float);
  BlockLegacy *(__fastcall *setFlammable)(BlockLegacy *this, FlameOdds, BurnOdds);
  BlockLegacy *(__fastcall *setDestroyTime)(BlockLegacy *this, float);
  BlockLegacy *(__fastcall *setFriction)(BlockLegacy *this, float);
  BlockLegacy *(__fastcall *addProperty)(BlockLegacy *this, BlockProperty);
  BlockLegacy *(__fastcall *addState)(BlockLegacy *this, const ItemState *, unsigned __int64);
  BlockLegacy *(__fastcall *addState)(BlockLegacy *this, const ItemState *);
  BlockLegacy *(__fastcall *setAllowsRunes)(BlockLegacy *this, bool);
  BlockLegacy *(__fastcall *setMapColor)(BlockLegacy *this, const mce::Color *);
  bool (__fastcall *canBeSilkTouched)(BlockLegacy *this);
  ItemInstance *(__fastcall *getSilkTouchItemInstance)(BlockLegacy *this, ItemInstance *result, const Block *);
  void (__fastcall *setVisualShape)(BlockLegacy *this, const Vec3 *, const Vec3 *);
  void (__fastcall *setVisualShape)(BlockLegacy *this, const AABB *);
  const Block *(__fastcall *tryLegacyUpgrade)(BlockLegacy *this, unsigned __int16);
  bool (__fastcall *dealsContactDamage)(BlockLegacy *this, const Actor *, const Block *, bool);
  void (__fastcall *onRemove)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *onExploded)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *);
  void (__fastcall *onStandOn)(BlockLegacy *this, Actor *, const BlockPos *);
  void (__fastcall *onStepOn)(BlockLegacy *this, Actor *, const BlockPos *);
  void (__fastcall *onStepOff)(BlockLegacy *this, Actor *, const BlockPos *);
  void (__fastcall *onPlayerPlacing)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *, unsigned __int8);
  void (__fastcall *onPlace)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *onFallOn)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *, float);
  void (__fastcall *playerDestroy)(BlockLegacy *this, Player *, const BlockPos *, const Block *);
  void (__fastcall *tick)(BlockLegacy *this, BlockSource *, const BlockPos *, Random *);
  bool (__fastcall *shouldRandomTick)(BlockLegacy *this);
  bool (__fastcall *isInteractiveBlock)(BlockLegacy *this);
  HitResult *(__fastcall *clip)(BlockLegacy *this, HitResult *result, BlockSource *, const BlockPos *, const Vec3 *, const Vec3 *, bool);
  bool (__fastcall *use)(BlockLegacy *this, Player *, const BlockPos *, unsigned __int8);
  bool (__fastcall *canSurvive)(BlockLegacy *this, BlockSource *, const BlockPos *);
  BlockRenderLayer (__fastcall *getRenderLayer)(BlockLegacy *this, const Block *, BlockSource *, const BlockPos *);
  BlockRenderLayer (__fastcall *getRenderLayer)(BlockLegacy *this);
  int (__fastcall *getExtraRenderLayers)(BlockLegacy *this);
  float (__fastcall *getExplosionResistance)(BlockLegacy *this, Actor *);
  Brightness *(__fastcall *getLightEmission)(BlockLegacy *this, Brightness *result, const Block *);
  mce::Color *(__fastcall *getMapColor)(BlockLegacy *this, mce::Color *result, BlockSource *, const BlockPos *);
  mce::Color *(__fastcall *getMapColor)(BlockLegacy *this, mce::Color *result);
  bool (__fastcall *isCropBlock)(BlockLegacy *this);
  void (__fastcall *_executeEvent)(BlockLegacy *this, const std::string *, std::vector<std::pair<std::string const ,std::string const >> *, RenderParams *);
  bool (__fastcall *_executeTrigger)(BlockLegacy *this, const DefinitionTrigger *, std::vector<std::pair<std::string const ,std::string const >> *, RenderParams *);
  void (__fastcall *_forceExecuteTrigger)(BlockLegacy *this, const DefinitionTrigger *, std::vector<std::pair<std::string const ,std::string const >> *, RenderParams *);
};

# InvisibleBlock

struct __cppobj InvisibleBlock : BlockLegacy
{
};

# InvisibleBlock_vtbl

struct /*VFT*/ InvisibleBlock_vtbl
{
  void (__fastcall *~BlockLegacy)(BlockLegacy *this);
  const Block *(__fastcall *getStateFromLegacyData)(BlockLegacy *this, unsigned __int16);
  const Block *(__fastcall *getModBlockStateFromLegacyData)(BlockLegacy *this, unsigned __int16);
  std::shared_ptr<BlockActor> *(__fastcall *newBlockEntity)(BlockLegacy *this, std::shared_ptr<BlockActor> *result, const BlockPos *, const Block *);
  const Block *(__fastcall *getNextBlockPermutation)(BlockLegacy *this, const Block *);
  bool (__fastcall *hasTag)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, const std::string *);
  bool (__fastcall *getCollisionShape)(BlockLegacy *this, AABB *, const Block *, BlockSource *, const BlockPos *, Actor *);
  bool (__fastcall *isObstructingChests)(BlockLegacy *this, BlockSource *, const BlockPos *);
  Vec3 *(__fastcall *randomlyModifyPosition)(BlockLegacy *this, Vec3 *result, const BlockPos *);
  Vec3 *(__fastcall *randomlyModifyPosition)(BlockLegacy *this, Vec3 *result, const BlockPos *, int *);
  void (__fastcall *addAABBs)(BlockLegacy *this, const Block *, BlockSource *, const BlockPos *, const AABB *, std::vector<AABB> *);
  const AABB *(__fastcall *getAABB)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, AABB *, bool);
  bool (__fastcall *addCollisionShapes)(BlockLegacy *this, const Block *, BlockSource *, const BlockPos *, const AABB *, std::vector<AABB> *, Actor *);
  const AABB *(__fastcall *getOutline)(BlockLegacy *this, BlockSource *, const BlockPos *, AABB *);
  bool (__fastcall *getLiquidClipVolume)(BlockLegacy *this, BlockSource *, const BlockPos *, AABB *);
  void (__fastcall *onProjectileHit)(BlockLegacy *this, BlockSource *, const BlockPos *, const Actor *);
  bool (__fastcall *liquidCanFlowIntoFromDirection)(BlockLegacy *this, unsigned __int8, const std::function<Block const & __cdecl(BlockPos const &)> *, const BlockPos *);
  bool (__fastcall *hasVariableLighting)(BlockLegacy *this);
  bool (__fastcall *isStrippable)(BlockLegacy *this, const Block *);
  const Block *(__fastcall *getStrippedBlock)(BlockLegacy *this, const Block *);
  bool (__fastcall *canProvideSupport)(BlockLegacy *this, const Block *, unsigned __int8, BlockSupportType);
  bool (__fastcall *canConnect)(BlockLegacy *this, const Block *, unsigned __int8, const Block *);
  void (__fastcall *getConnectedDirections)(BlockLegacy *this, const Block *, const BlockPos *, BlockSource *, bool *, bool *, bool *, bool *);
  bool (__fastcall *isStemBlock)(BlockLegacy *this);
  bool (__fastcall *isContainerBlock)(BlockLegacy *this);
  bool (__fastcall *isCraftingBlock)(BlockLegacy *this);
  bool (__fastcall *isWaterBlocking)(BlockLegacy *this);
  bool (__fastcall *isHurtableBlock)(BlockLegacy *this);
  bool (__fastcall *isFenceBlock)(BlockLegacy *this);
  bool (__fastcall *isFenceGateBlock)(BlockLegacy *this);
  bool (__fastcall *isThinFenceBlock)(BlockLegacy *this);
  bool (__fastcall *isWallBlock)(BlockLegacy *this);
  bool (__fastcall *isStairBlock)(BlockLegacy *this);
  bool (__fastcall *isSlabBlock)(BlockLegacy *this);
  bool (__fastcall *isDoubleSlabBlock)(BlockLegacy *this);
  bool (__fastcall *isDoorBlock)(BlockLegacy *this);
  bool (__fastcall *isRailBlock)(BlockLegacy *this);
  bool (__fastcall *isButtonBlock)(BlockLegacy *this);
  bool (__fastcall *canHurtAndBreakItem)(BlockLegacy *this);
  bool (__fastcall *isSignalSource)(BlockLegacy *this);
  bool (__fastcall *canBeOriginalSurface)(BlockLegacy *this);
  bool (__fastcall *isValidAuxValue)(BlockLegacy *this, int);
  void (__fastcall *setTargetLandBlocks)(BlockLegacy *this, const std::vector<std::string> *);
  bool (__fastcall *canFillAtPos)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *);
  const Block *(__fastcall *sanitizeFillBlock)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *);
  void (__fastcall *onFillBlock)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *);
  int (__fastcall *getDirectSignal)(BlockLegacy *this, BlockSource *, const BlockPos *, int);
  bool (__fastcall *waterSpreadCausesSpawn)(BlockLegacy *this);
  bool (__fastcall *canContainLiquid)(BlockLegacy *this);
  bool (__fastcall *shouldConnectToRedstone)(BlockLegacy *this, BlockSource *, const BlockPos *, int);
  void (__fastcall *handleRain)(BlockLegacy *this, BlockSource *, const BlockPos *, float);
  bool (__fastcall *canBeUsedInCommands)(BlockLegacy *this, const BaseGameVersion *);
  float (__fastcall *getThickness)(BlockLegacy *this);
  float (__fastcall *getFlexibility)(BlockLegacy *this, BlockSource *, const BlockPos *);
  bool (__fastcall *checkIsPathable)(BlockLegacy *this, Actor *, const BlockPos *, const BlockPos *);
  bool (__fastcall *shouldDispense)(BlockLegacy *this, BlockSource *, Container *);
  bool (__fastcall *dispense)(BlockLegacy *this, BlockSource *, Container *, int, const Vec3 *, unsigned __int8);
  void (__fastcall *transformOnFall)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *, float);
  void (__fastcall *onRedstoneUpdate)(BlockLegacy *this, BlockSource *, const BlockPos *, int, bool);
  void (__fastcall *onMove)(BlockLegacy *this, BlockSource *, const BlockPos *, const BlockPos *);
  bool (__fastcall *detachesOnPistonMove)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *movedByPiston)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *onStructureBlockPlace)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *onStructureNeighborBlockPlace)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *setupRedstoneComponent)(BlockLegacy *this, BlockSource *, const BlockPos *);
  bool (__fastcall *specialUse)(BlockLegacy *this, Player *, const BlockPos *, ItemStack *);
  BlockProperty (__fastcall *getRedstoneProperty)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *updateEntityAfterFallOn)(BlockLegacy *this, IActorMovementProxy *);
  bool (__fastcall *isBounceBlock)(BlockLegacy *this);
  bool (__fastcall *ignoreEntitiesOnPistonMove)(BlockLegacy *this, const Block *);
  bool (__fastcall *onFertilized)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *, FertilizerType);
  bool (__fastcall *mayConsumeFertilizer)(BlockLegacy *this, BlockSource *);
  bool (__fastcall *canBeFertilized)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *);
  bool (__fastcall *mayPick)(BlockLegacy *this, BlockSource *, const Block *, bool);
  bool (__fastcall *mayPick)(BlockLegacy *this);
  bool (__fastcall *mayPlace)(BlockLegacy *this, BlockSource *, const BlockPos *);
  bool (__fastcall *mayPlace)(BlockLegacy *this, BlockSource *, const BlockPos *, unsigned __int8);
  bool (__fastcall *mayPlaceOn)(BlockLegacy *this, BlockSource *, const BlockPos *);
  bool (__fastcall *tryToPlace)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, const ActorBlockSyncMessage *);
  bool (__fastcall *breaksFallingBlocks)(BlockLegacy *this, const Block *);
  void (__fastcall *destroy)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, Actor *);
  bool (__fastcall *playerWillDestroy)(BlockLegacy *this, Player *, const BlockPos *, const Block *);
  bool (__fastcall *getIgnoresDestroyPermissions)(BlockLegacy *this, Actor *, const BlockPos *);
  void (__fastcall *neighborChanged)(BlockLegacy *this, BlockSource *, const BlockPos *, const BlockPos *);
  bool (__fastcall *getSecondPart)(BlockLegacy *this, BlockSource *, const BlockPos *, BlockPos *);
  int (__fastcall *getResourceCount)(BlockLegacy *this, Random *, const Block *, int, bool);
  ItemInstance *(__fastcall *getResourceItem)(BlockLegacy *this, ItemInstance *result, Random *, const Block *, int);
  ItemInstance *(__fastcall *asItemInstance)(BlockLegacy *this, ItemInstance *result, BlockSource *, const BlockPos *, const Block *);
  void (__fastcall *spawnResources)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, std::vector<Item const *> *, float, int, bool);
  void (__fastcall *trySpawnResourcesOnExplosion)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, std::vector<Item const *> *, float, int, bool);
  bool (__fastcall *spawnBurnResources)(BlockLegacy *this, BlockSource *, float, float, float);
  const Block *(__fastcall *getPlacementBlock)(BlockLegacy *this, Actor *, const BlockPos *, unsigned __int8, const Vec3 *, int);
  int (__fastcall *calcVariant)(BlockLegacy *this, BlockSource *, const BlockPos *);
  bool (__fastcall *isAttachedTo)(BlockLegacy *this, BlockSource *, const BlockPos *, BlockPos *);
  bool (__fastcall *attack)(BlockLegacy *this, Player *, const BlockPos *);
  void (__fastcall *handleEntityInside)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *, Vec3 *);
  void (__fastcall *entityInside)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *);
  int (__fastcall *getExperienceDrop)(BlockLegacy *this, Random *);
  bool (__fastcall *canBeBuiltOver)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *triggerEvent)(BlockLegacy *this, BlockSource *, const BlockPos *, int, int);
  void (__fastcall *executeEvent)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, const std::string *, Actor *);
  void (__fastcall *executeEvent)(BlockLegacy *this, const std::string *, RenderParams *);
  bool (__fastcall *executeTrigger)(BlockLegacy *this, const DefinitionTrigger *, RenderParams *);
  bool (__fastcall *executeTriggerChain)(BlockLegacy *this, const DefinitionTrigger *, std::vector<std::pair<std::string const ,std::string const >> *, RenderParams *);
  void (__fastcall *forceExecuteTrigger)(BlockLegacy *this, const DefinitionTrigger *, RenderParams *);
  const MobSpawnerData *(__fastcall *getMobToSpawn)(BlockLegacy *this, const SpawnConditions *, BlockSource *);
  bool (__fastcall *shouldStopFalling)(BlockLegacy *this, Actor *);
  bool (__fastcall *pushesUpFallingBlocks)(BlockLegacy *this);
  float (__fastcall *calcGroundFriction)(BlockLegacy *this, Mob *, const BlockPos *);
  bool (__fastcall *canHaveExtraData)(BlockLegacy *this);
  bool (__fastcall *hasComparatorSignal)(BlockLegacy *this);
  int (__fastcall *getComparatorSignal)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, unsigned __int8);
  bool (__fastcall *onDig)(BlockLegacy *this, const Block *, Actor *, ItemStack *, const BlockPos *);
  bool (__fastcall *canSlide)(BlockLegacy *this, BlockSource *, const BlockPos *);
  bool (__fastcall *canSpawnAt)(BlockLegacy *this, const BlockSource *, const BlockPos *);
  void (__fastcall *notifySpawnedAt)(BlockLegacy *this, BlockSource *, const BlockPos *);
  int (__fastcall *getIconYOffset)(BlockLegacy *this);
  std::string *(__fastcall *buildDescriptionId)(BlockLegacy *this, std::string *result, const Block *);
  bool (__fastcall *isAuxValueRelevantForPicking)(BlockLegacy *this);
  int (__fastcall *getColor)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *);
  int (__fastcall *getColor)(BlockLegacy *this, const Block *);
  int (__fastcall *getColorAtPos)(BlockLegacy *this, BlockSource *, const BlockPos *);
  int (__fastcall *getColorForParticle)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *);
  bool (__fastcall *isSeasonTinted)(BlockLegacy *this, const Block *, BlockSource *, const BlockPos *);
  void (__fastcall *onGraphicsModeChanged)(BlockLegacy *this, const BlockGraphicsModeChangeContext *);
  float (__fastcall *getShadeBrightness)(BlockLegacy *this, const Block *);
  const AABB *(__fastcall *getVisualShapeInWorld)(BlockLegacy *this, const Block *, BlockSource *, const BlockPos *, AABB *, bool);
  const AABB *(__fastcall *getVisualShape)(BlockLegacy *this, const Block *, AABB *, bool);
  const AABB *(__fastcall *getUIShape)(BlockLegacy *this, const Block *, AABB *);
  int (__fastcall *telemetryVariant)(BlockLegacy *this, BlockSource *, const BlockPos *);
  int (__fastcall *getVariant)(BlockLegacy *this, const Block *);
  bool (__fastcall *canSpawnOn)(BlockLegacy *this);
  const Block *(__fastcall *getRenderBlock)(BlockLegacy *this);
  unsigned __int8 (__fastcall *getMappedFace)(BlockLegacy *this, unsigned __int8, const Block *);
  bool (__fastcall *renderTwoFaced)(BlockLegacy *this);
  Flip (__fastcall *getFaceFlip)(BlockLegacy *this, unsigned __int8, const Block *);
  void (__fastcall *animateTick)(BlockLegacy *this, BlockSource *, const BlockPos *, Random *);
  BlockLegacy *(__fastcall *init)(BlockLegacy *this);
  BlockLegacy *(__fastcall *setLightBlock)(BlockLegacy *this, Brightness);
  BlockLegacy *(__fastcall *setLightEmission)(BlockLegacy *this, float);
  BlockLegacy *(__fastcall *setExplodeable)(BlockLegacy *this, float);
  BlockLegacy *(__fastcall *setFlammable)(BlockLegacy *this, FlameOdds, BurnOdds);
  BlockLegacy *(__fastcall *setDestroyTime)(BlockLegacy *this, float);
  BlockLegacy *(__fastcall *setFriction)(BlockLegacy *this, float);
  BlockLegacy *(__fastcall *addProperty)(BlockLegacy *this, BlockProperty);
  BlockLegacy *(__fastcall *addState)(BlockLegacy *this, const ItemState *, unsigned __int64);
  BlockLegacy *(__fastcall *addState)(BlockLegacy *this, const ItemState *);
  BlockLegacy *(__fastcall *setAllowsRunes)(BlockLegacy *this, bool);
  BlockLegacy *(__fastcall *setMapColor)(BlockLegacy *this, const mce::Color *);
  bool (__fastcall *canBeSilkTouched)(BlockLegacy *this);
  ItemInstance *(__fastcall *getSilkTouchItemInstance)(BlockLegacy *this, ItemInstance *result, const Block *);
  void (__fastcall *setVisualShape)(BlockLegacy *this, const Vec3 *, const Vec3 *);
  void (__fastcall *setVisualShape)(BlockLegacy *this, const AABB *);
  const Block *(__fastcall *tryLegacyUpgrade)(BlockLegacy *this, unsigned __int16);
  bool (__fastcall *dealsContactDamage)(BlockLegacy *this, const Actor *, const Block *, bool);
  void (__fastcall *onRemove)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *onExploded)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *);
  void (__fastcall *onStandOn)(BlockLegacy *this, Actor *, const BlockPos *);
  void (__fastcall *onStepOn)(BlockLegacy *this, Actor *, const BlockPos *);
  void (__fastcall *onStepOff)(BlockLegacy *this, Actor *, const BlockPos *);
  void (__fastcall *onPlayerPlacing)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *, unsigned __int8);
  void (__fastcall *onPlace)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *onFallOn)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *, float);
  void (__fastcall *playerDestroy)(BlockLegacy *this, Player *, const BlockPos *, const Block *);
  void (__fastcall *tick)(BlockLegacy *this, BlockSource *, const BlockPos *, Random *);
  bool (__fastcall *shouldRandomTick)(BlockLegacy *this);
  bool (__fastcall *isInteractiveBlock)(BlockLegacy *this);
  HitResult *(__fastcall *clip)(BlockLegacy *this, HitResult *result, BlockSource *, const BlockPos *, const Vec3 *, const Vec3 *, bool);
  bool (__fastcall *use)(BlockLegacy *this, Player *, const BlockPos *, unsigned __int8);
  bool (__fastcall *canSurvive)(BlockLegacy *this, BlockSource *, const BlockPos *);
  BlockRenderLayer (__fastcall *getRenderLayer)(BlockLegacy *this, const Block *, BlockSource *, const BlockPos *);
  BlockRenderLayer (__fastcall *getRenderLayer)(BlockLegacy *this);
  int (__fastcall *getExtraRenderLayers)(BlockLegacy *this);
  float (__fastcall *getExplosionResistance)(BlockLegacy *this, Actor *);
  Brightness *(__fastcall *getLightEmission)(BlockLegacy *this, Brightness *result, const Block *);
  mce::Color *(__fastcall *getMapColor)(BlockLegacy *this, mce::Color *result, BlockSource *, const BlockPos *);
  mce::Color *(__fastcall *getMapColor)(BlockLegacy *this, mce::Color *result);
  bool (__fastcall *isCropBlock)(BlockLegacy *this);
  void (__fastcall *_executeEvent)(BlockLegacy *this, const std::string *, std::vector<std::pair<std::string const ,std::string const >> *, RenderParams *);
  bool (__fastcall *_executeTrigger)(BlockLegacy *this, const DefinitionTrigger *, std::vector<std::pair<std::string const ,std::string const >> *, RenderParams *);
  void (__fastcall *_forceExecuteTrigger)(BlockLegacy *this, const DefinitionTrigger *, std::vector<std::pair<std::string const ,std::string const >> *, RenderParams *);
};

# ItemFrameBlock::_addMapCollection::__l2::<lambda_1a0bd11cc686ed5c536588a03957062e>

struct __cppobj ItemFrameBlock::_addMapCollection::__l2::<lambda_1a0bd11cc686ed5c536588a03957062e>
{
  const ItemFrameBlock *const __this;
  BlockSource *region;
  std::vector<MapItemSavedData *> *detectionGrid;
  int *mapCount;
  int *addedMaps;
};

# ItemStateVariant<enum StructureVoidType>_vtbl

struct /*VFT*/ ItemStateVariant<enum StructureVoidType>_vtbl
{
  void (__fastcall *~ItemState)(ItemState *this);
  void (__fastcall *toNBT)(ItemState *this, CompoundTag *, int);
  bool (__fastcall *fromNBT)(ItemState *this, const CompoundTag *, int *);
};

# ItemStateVariant<enum StructureBlockType>_vtbl

struct /*VFT*/ ItemStateVariant<enum StructureBlockType>_vtbl
{
  void (__fastcall *~ItemState)(ItemState *this);
  void (__fastcall *toNBT)(ItemState *this, CompoundTag *, int);
  bool (__fastcall *fromNBT)(ItemState *this, const CompoundTag *, int *);
};

# ITreeCanopy

struct __cppobj ITreeCanopy
{
  ITreeCanopy_vtbl *__vftable /*VFT*/;
};

# ITreeCanopy_vtbl

struct /*VFT*/ ITreeCanopy_vtbl
{
  void (__fastcall *~ITreeCanopy)(ITreeCanopy *this);
  std::optional<BlockPos> *(__fastcall *placeCanopy)(ITreeCanopy *this, std::optional<BlockPos> *result, IBlockWorldGenAPI *, const BlockPos *, Random *, RenderParams *, const TreeHelper::TreeParams *);
  bool (__fastcall *parseTreeCanopy)(ITreeCanopy *this, const rapidjson::GenericValue<rapidjson::UTF8<char>,rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator> > *, IWorldRegistriesProvider *);
};

# ITreeTrunk

struct __cppobj ITreeTrunk
{
  ITreeTrunk_vtbl *__vftable /*VFT*/;
};

# ITreeTrunk_vtbl

struct /*VFT*/ ITreeTrunk_vtbl
{
  void (__fastcall *~ITreeTrunk)(ITreeTrunk *this);
  std::optional<BlockPos> *(__fastcall *placeTrunk)(ITreeTrunk *this, std::optional<BlockPos> *result, IBlockWorldGenAPI *, const BlockPos *, Random *, RenderParams *, const TreeHelper::TreeParams *, const ITreeCanopy *);
  bool (__fastcall *parse)(ITreeTrunk *this, const rapidjson::GenericValue<rapidjson::UTF8<char>,rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator> > *, IWorldRegistriesProvider *);
};

# ITreeCanopyWrapper

struct __cppobj ITreeCanopyWrapper
{
  std::unique_ptr<ITreeCanopy> mPtr;
};

# ITreeTrunkWrapper

struct __cppobj ITreeTrunkWrapper
{
  std::unique_ptr<ITreeTrunk> mPtr;
};

# ITreeFeature

struct __cppobj ITreeFeature : IFeature
{
  TreeHelper::TreeParams mTreeParams;
  ITreeTrunkWrapper mTrunk;
  ITreeCanopyWrapper mCanopy;
};

# ITreeFeature_vtbl

struct /*VFT*/ ITreeFeature_vtbl
{
  void (__fastcall *~IFeature)(IFeature *this);
  std::optional<BlockPos> *(__fastcall *place)(IFeature *this, std::optional<BlockPos> *result, IBlockWorldGenAPI *, const BlockPos *, Random *, RenderParams *);
  std::string *(__fastcall *getStructureName)(IFeature *this, std::string *result);
  bool (__fastcall *parse)(IFeature *this, const rapidjson::GenericValue<rapidjson::UTF8<char>,rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator> > *, IWorldRegistriesProvider *);
};

# IStructureConstraint

struct __cppobj IStructureConstraint
{
  IStructureConstraint_vtbl *__vftable /*VFT*/;
};

# IStructureConstraint_vtbl

struct /*VFT*/ IStructureConstraint_vtbl
{
  void (__fastcall *~IStructureConstraint)(IStructureConstraint *this);
  bool (__fastcall *isSatisfied)(IStructureConstraint *this, const IBlockWorldGenAPI *, const BlockPos *, const Rotation *);
};

# IslandLayer

struct __cppobj IslandLayer : RootLayer<enum LayerValues::Terrain>
{
};

# IslandLayer_vtbl

struct /*VFT*/ IslandLayer_vtbl
{
  void (__fastcall *~LayerBase)(LayerDetails::LayerBase *this);
  void (__fastcall *init)(LayerDetails::LayerBase *this, __int64);
  LayerDetails::TransferData<enum LayerValues::Terrain> *(__fastcall *_allocateAndFill)(Layer<enum LayerValues::Terrain> *this, LayerDetails::TransferData<enum LayerValues::Terrain> *result, unsigned __int64, int, int, unsigned int, unsigned int);
  void (__fastcall *_fillArea)(RootLayer<enum LayerValues::Terrain> *this, LayerDetails::WorkingData<enum LayerValues::Terrain,char> *, int, int, int, int);
};

# InMemoryFile

struct __cppobj __declspec(align(8)) InMemoryFile
{
  std::mutex mMutex;
  std::vector<char> mBuffer;
  Core::PathBuffer<std::string > mFilename;
  bool mOpenForWrite;
  int mOpenReadHandles;
  bool mMarkedForDelete;
  bool mMarkedDirty;
};

# InMemoryFileStorage

struct __cppobj InMemoryFileStorage
{
  leveldb::Env *mEnvironment;
  std::mutex mMutex;
  std::vector<std::shared_ptr<InMemoryFile>> mInMemoryFiles;
  std::vector<std::string> mDiskFilesToDelete;
};

# InMemoryEnv

struct __cppobj InMemoryEnv : FlushableEnv
{
  leveldb::Env *mTarget;
  Core::PathBuffer<std::string > mDbPath;
  InMemoryFileStorage mInMemoryStorage;
};

# InMemoryEnv_vtbl

struct /*VFT*/ InMemoryEnv_vtbl
{
  void (__fastcall *~Env)(leveldb::Env *this);
  leveldb::Status *(__fastcall *NewSequentialFile)(leveldb::Env *this, leveldb::Status *result, const std::string *, leveldb::SequentialFile **);
  leveldb::Status *(__fastcall *NewRandomAccessFile)(leveldb::Env *this, leveldb::Status *result, const std::string *, leveldb::RandomAccessFile **);
  leveldb::Status *(__fastcall *NewWritableFile)(leveldb::Env *this, leveldb::Status *result, const std::string *, leveldb::WritableFile **);
  leveldb::Status *(__fastcall *NewAppendableFile)(leveldb::Env *this, leveldb::Status *result, const std::string *, leveldb::WritableFile **);
  bool (__fastcall *FileExists)(leveldb::Env *this, const std::string *);
  leveldb::Status *(__fastcall *GetChildren)(leveldb::Env *this, leveldb::Status *result, const std::string *, std::vector<std::string> *);
  leveldb::Status *(__fastcall *DeleteFileA)(leveldb::Env *this, leveldb::Status *result, const std::string *);
  leveldb::Status *(__fastcall *CreateDir)(leveldb::Env *this, leveldb::Status *result, const std::string *);
  leveldb::Status *(__fastcall *DeleteDir)(leveldb::Env *this, leveldb::Status *result, const std::string *);
  leveldb::Status *(__fastcall *GetFileSize)(leveldb::Env *this, leveldb::Status *result, const std::string *, unsigned __int64 *);
  leveldb::Status *(__fastcall *RenameFile)(leveldb::Env *this, leveldb::Status *result, const std::string *, const std::string *);
  leveldb::Status *(__fastcall *LockFile)(leveldb::Env *this, leveldb::Status *result, const std::string *, leveldb::FileLock **);
  leveldb::Status *(__fastcall *UnlockFile)(leveldb::Env *this, leveldb::Status *result, leveldb::FileLock *);
  void (__fastcall *Schedule)(leveldb::Env *this, void (__fastcall *)(void *), void *);
  void (__fastcall *StartThread)(leveldb::Env *this, void (__fastcall *)(void *), void *);
  leveldb::Status *(__fastcall *GetTestDirectory)(leveldb::Env *this, leveldb::Status *result, std::string *);
  leveldb::Status *(__fastcall *NewLogger)(leveldb::Env *this, leveldb::Status *result, const std::string *, leveldb::Logger **);
  unsigned __int64 (__fastcall *NowMicros)(leveldb::Env *this);
  void (__fastcall *SleepForMicroseconds)(leveldb::Env *this, int);
  void (__fastcall *flushToPermanentStorage)(FlushableEnv *this);
};

# InMemorySequentialFile

struct __cppobj InMemorySequentialFile : leveldb::SequentialFile
{
  std::shared_ptr<InMemoryFile> mFile;
  unsigned __int64 mReadOffset;
};

# InMemorySequentialFile_vtbl

struct /*VFT*/ InMemorySequentialFile_vtbl
{
  void (__fastcall *~SequentialFile)(leveldb::SequentialFile *this);
  leveldb::Status *(__fastcall *Read)(leveldb::SequentialFile *this, leveldb::Status *result, unsigned __int64, leveldb::Slice *, char *);
  leveldb::Status *(__fastcall *Skip)(leveldb::SequentialFile *this, leveldb::Status *result, unsigned __int64);
};

# InMemoryRandomAccessFile

struct __cppobj InMemoryRandomAccessFile : leveldb::RandomAccessFile
{
  std::shared_ptr<InMemoryFile> mFile;
};

# InMemoryRandomAccessFile_vtbl

struct /*VFT*/ InMemoryRandomAccessFile_vtbl
{
  void (__fastcall *~RandomAccessFile)(leveldb::RandomAccessFile *this);
  leveldb::Status *(__fastcall *Read)(leveldb::RandomAccessFile *this, leveldb::Status *result, unsigned __int64, unsigned __int64, leveldb::Slice *, char *);
};

# InMemoryWritableFile

struct __cppobj InMemoryWritableFile : leveldb::WritableFile
{
  std::shared_ptr<InMemoryFile> mFile;
};

# InMemoryWritableFile_vtbl

struct /*VFT*/ InMemoryWritableFile_vtbl
{
  void (__fastcall *~WritableFile)(leveldb::WritableFile *this);
  leveldb::Status *(__fastcall *Append)(leveldb::WritableFile *this, leveldb::Status *result, const leveldb::Slice *);
  leveldb::Status *(__fastcall *Close)(leveldb::WritableFile *this, leveldb::Status *result);
  leveldb::Status *(__fastcall *Flush)(leveldb::WritableFile *this, leveldb::Status *result);
  leveldb::Status *(__fastcall *Sync)(leveldb::WritableFile *this, leveldb::Status *result);
};

# IShellItem

struct __cppobj IShellItem : IUnknown
{
};

# IShellItem_vtbl

struct /*VFT*/ IShellItem_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *BindToHandler)(IShellItem *this, IBindCtx *, const _GUID *, const _GUID *, void **);
  HRESULT (__fastcall *GetParent)(IShellItem *this, IShellItem **);
  HRESULT (__fastcall *GetDisplayName)(IShellItem *this, _SIGDN, wchar_t **);
  HRESULT (__fastcall *GetAttributes)(IShellItem *this, unsigned int, unsigned int *);
  HRESULT (__fastcall *Compare)(IShellItem *this, IShellItem *, unsigned int, int *);
};

# IShellLibrary

struct __cppobj IShellLibrary : IUnknown
{
};

# IShellLibrary_vtbl

struct /*VFT*/ IShellLibrary_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *LoadLibraryFromItem)(IShellLibrary *this, IShellItem *, unsigned int);
  HRESULT (__fastcall *LoadLibraryFromKnownFolder)(IShellLibrary *this, const _GUID *, unsigned int);
  HRESULT (__fastcall *AddFolder)(IShellLibrary *this, IShellItem *);
  HRESULT (__fastcall *RemoveFolder)(IShellLibrary *this, IShellItem *);
  HRESULT (__fastcall *GetFolders)(IShellLibrary *this, LIBRARYFOLDERFILTER, const _GUID *, void **);
  HRESULT (__fastcall *ResolveFolder)(IShellLibrary *this, IShellItem *, unsigned int, const _GUID *, void **);
  HRESULT (__fastcall *GetDefaultSaveFolder)(IShellLibrary *this, DEFAULTSAVEFOLDERTYPE, const _GUID *, void **);
  HRESULT (__fastcall *SetDefaultSaveFolder)(IShellLibrary *this, DEFAULTSAVEFOLDERTYPE, IShellItem *);
  HRESULT (__fastcall *GetOptions)(IShellLibrary *this, LIBRARYOPTIONFLAGS *);
  HRESULT (__fastcall *SetOptions)(IShellLibrary *this, LIBRARYOPTIONFLAGS, LIBRARYOPTIONFLAGS);
  HRESULT (__fastcall *GetFolderType)(IShellLibrary *this, _GUID *);
  HRESULT (__fastcall *SetFolderType)(IShellLibrary *this, const _GUID *);
  HRESULT (__fastcall *GetIcon)(IShellLibrary *this, wchar_t **);
  HRESULT (__fastcall *SetIcon)(IShellLibrary *this, const wchar_t *);
  HRESULT (__fastcall *Commit)(IShellLibrary *this);
  HRESULT (__fastcall *Save)(IShellLibrary *this, IShellItem *, const wchar_t *, LIBRARYSAVEFLAGS, IShellItem **);
  HRESULT (__fastcall *SaveInKnownFolder)(IShellLibrary *this, const _GUID *, const wchar_t *, LIBRARYSAVEFLAGS, IShellItem **);
};

# IXMLHTTPRequest2

struct __cppobj IXMLHTTPRequest2 : IUnknown
{
};

# IXMLHTTPRequest2Callback

struct __cppobj IXMLHTTPRequest2Callback : IUnknown
{
};

# IXMLHTTPRequest2Callback_vtbl

struct /*VFT*/ IXMLHTTPRequest2Callback_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *OnRedirect)(IXMLHTTPRequest2Callback *this, IXMLHTTPRequest2 *, const wchar_t *);
  HRESULT (__fastcall *OnHeadersAvailable)(IXMLHTTPRequest2Callback *this, IXMLHTTPRequest2 *, unsigned int, const wchar_t *);
  HRESULT (__fastcall *OnDataAvailable)(IXMLHTTPRequest2Callback *this, IXMLHTTPRequest2 *, ISequentialStream *);
  HRESULT (__fastcall *OnResponseReceived)(IXMLHTTPRequest2Callback *this, IXMLHTTPRequest2 *, ISequentialStream *);
  HRESULT (__fastcall *OnError)(IXMLHTTPRequest2Callback *this, IXMLHTTPRequest2 *, HRESULT);
};

# IXMLHTTPRequest2_vtbl

struct /*VFT*/ IXMLHTTPRequest2_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *Open)(IXMLHTTPRequest2 *this, const wchar_t *, const wchar_t *, IXMLHTTPRequest2Callback *, const wchar_t *, const wchar_t *, const wchar_t *, const wchar_t *);
  HRESULT (__fastcall *Send)(IXMLHTTPRequest2 *this, ISequentialStream *, unsigned __int64);
  HRESULT (__fastcall *Abort)(IXMLHTTPRequest2 *this);
  HRESULT (__fastcall *SetCookie)(IXMLHTTPRequest2 *this, const tagXHR_COOKIE *, unsigned int *);
  HRESULT (__fastcall *SetCustomResponseStream)(IXMLHTTPRequest2 *this, ISequentialStream *);
  HRESULT (__fastcall *SetProperty)(IXMLHTTPRequest2 *this, _XHR_PROPERTY, unsigned __int64);
  HRESULT (__fastcall *SetRequestHeader)(IXMLHTTPRequest2 *this, const wchar_t *, const wchar_t *);
  HRESULT (__fastcall *GetAllResponseHeaders)(IXMLHTTPRequest2 *this, wchar_t **);
  HRESULT (__fastcall *GetCookie)(IXMLHTTPRequest2 *this, const wchar_t *, const wchar_t *, unsigned int, unsigned int *, tagXHR_COOKIE **);
  HRESULT (__fastcall *GetResponseHeader)(IXMLHTTPRequest2 *this, const wchar_t *, wchar_t **);
};

# IntSeq<0,1,2>

struct __cppobj IntSeq<0,1,2>
{
};

# IntSeq<0,1,2,3>

struct __cppobj IntSeq<0,1,2,3>
{
};

# IntSeq<0,1,2,3,4,5>

struct __cppobj IntSeq<0,1,2,3,4,5>
{
};

# IntSeq<0>

struct __cppobj IntSeq<0>
{
};

# IntSeq<>

struct __cppobj IntSeq<>
{
};

# IntSeq<0,1,2,3,4,5,6>

struct __cppobj IntSeq<0,1,2,3,4,5,6>
{
};

# IntSeq<0,1>

struct __cppobj IntSeq<0,1>
{
};

# IntSeq<0,1,2,3,4>

struct __cppobj IntSeq<0,1,2,3,4>
{
};

# IntSeq<0,1,2,3,4,5,6,7,8,9,10,11>

struct __cppobj IntSeq<0,1,2,3,4,5,6,7,8,9,10,11>
{
};

# IntSeq<0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15>

struct __cppobj IntSeq<0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15>
{
};

# IntSeq<0,1,2,3,4,5,6,7,8>

struct __cppobj IntSeq<0,1,2,3,4,5,6,7,8>
{
};

# IntSeq<0,1,2,3,4,5,6,7,8,9,10>

struct __cppobj IntSeq<0,1,2,3,4,5,6,7,8,9,10>
{
};

# IntSeq<0,1,2,3,4,5,6,7,8,9,10,11,12>

struct __cppobj IntSeq<0,1,2,3,4,5,6,7,8,9,10,11,12>
{
};

# IntSeq<0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16>

struct __cppobj IntSeq<0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16>
{
};

# IntSeq<0,1,2,3,4,5,6,7>

struct __cppobj IntSeq<0,1,2,3,4,5,6,7>
{
};

# IntSeq<0,1,2,3,4,5,6,7,8,9>

struct __cppobj IntSeq<0,1,2,3,4,5,6,7,8,9>
{
};

# IAchievementsListener

struct __cppobj IAchievementsListener : BlockEventListener, ItemEventListener, PlayerEventListener, ActorEventListener
{
};

# IAchievementsListener_vtbl

struct /*VFT*/ IAchievementsListener_vtbl
{
  void (__fastcall *~BlockEventListener)(BlockEventListener *this);
  EventResult (__fastcall *onBlockPlacedByPlayer)(BlockEventListener *this, Player *, const Block *, const BlockPos *, bool);
  EventResult (__fastcall *onBlockDestroyedByPlayer)(BlockEventListener *this, Player *, const std::string, const BlockPos *);
  EventResult (__fastcall *onBlockMovedByPiston)(BlockEventListener *this, const BlockPos *, const BlockPos *, const PistonBlockActor::PistonState);
  EventResult (__fastcall *onBlockDestructionStopped)(BlockEventListener *this, Player *, const BlockPos *, int);
  EventResult (__fastcall *onBlockDestructionStarted)(BlockEventListener *this, Player *, const BlockPos *);
  EventResult (__fastcall *onBlockInteractedWith)(BlockEventListener *this, Player *, const BlockPos *);
  EventResult (__fastcall *onBlockExploded)(BlockEventListener *this, const BlockPos *, const Block *, Actor *);
  EventResult (__fastcall *onBlockModified)(BlockEventListener *this, const BlockPos *, const Block *, const Block *);
  EventResult (__fastcall *onChestBlockTryPaired)(BlockEventListener *this, const ChestBlockTryPairEvent *);
  EventResult (__fastcall *onUnknownBlockReceived)(BlockEventListener *this, Level *, const NewBlockID *, unsigned __int16);
  void (__fastcall *init)(IAchievementsListener *this, std::shared_ptr<Social::User>);
};

# InstallAssetStage::onAwake::__l2::<lambda_5e6ee045361b57f7461ae0d7217802c7>

struct __cppobj InstallAssetStage::onAwake::__l2::<lambda_5e6ee045361b57f7461ae0d7217802c7>
{
  InstallAssetStage *const __this;
};

# InstallAssetStage::onAwake::__l2::<lambda_f2340f4d346c046d6fa4c5aee73dcf18>

struct __cppobj InstallAssetStage::onAwake::__l2::<lambda_f2340f4d346c046d6fa4c5aee73dcf18>
{
  InstallAssetStage *const __this;
};

# IdentifierParser

struct __cppobj IdentifierParser
{
};

# InsomniaSystem

struct __cppobj InsomniaSystem : ITickingSystem
{
};

# InsomniaSystem_vtbl

struct /*VFT*/ InsomniaSystem_vtbl
{
  void (__fastcall *~ITickingSystem)(ITickingSystem *this);
  void (__fastcall *tick)(ITickingSystem *this, EntityRegistry *);
};

# InspectBookshelfGoal

struct __cppobj __declspec(align(4)) InspectBookshelfGoal : BaseMoveToBlockGoal
{
  BlockPos mBookshelfPos;
  bool mRequireSameY;
};

# InspectBookshelfGoal_vtbl

struct /*VFT*/ InspectBookshelfGoal_vtbl
{
  void (__fastcall *~Goal)(Goal *this);
  bool (__fastcall *canUse)(Goal *this);
  bool (__fastcall *canContinueToUse)(Goal *this);
  bool (__fastcall *canBeInterrupted)(Goal *this);
  void (__fastcall *start)(Goal *this);
  void (__fastcall *stop)(Goal *this);
  void (__fastcall *tick)(Goal *this);
  void (__fastcall *appendDebugInfo)(Goal *this, std::string *);
  bool (__fastcall *isTargetGoal)(Goal *this);
  void (__fastcall *onPlayerDimensionChanged)(Goal *this, Player *, AutomaticID<Dimension,int>);
  bool (__fastcall *hasReachedTarget)(BaseMoveToGoal *this);
  bool (__fastcall *isValidTarget)(BaseMoveToGoal *this, BlockSource *, const BlockPos *);
  int (__fastcall *_nextStartTick)(BaseMoveToGoal *this);
  bool (__fastcall *_canReach)(BaseMoveToGoal *this, const BlockPos *);
  void (__fastcall *_moveToBlock)(BaseMoveToGoal *this);
  Vec3 *(__fastcall *_getTargetPosition)(BaseMoveToGoal *this, Vec3 *result);
  unsigned __int64 (__fastcall *_getRepathTime)(BaseMoveToGoal *this);
  bool (__fastcall *findTargetBlock)(BaseMoveToBlockGoal *this);
};

# IdleState

struct __cppobj IdleState : PetSleepWithOwnerState
{
};

# IdleState_vtbl

struct /*VFT*/ IdleState_vtbl
{
  void (__fastcall *~PetSleepWithOwnerState)(PetSleepWithOwnerState *this);
  void (__fastcall *tick)(PetSleepWithOwnerState *this);
  void (__fastcall *start)(PetSleepWithOwnerState *this);
  void (__fastcall *stop)(PetSleepWithOwnerState *this);
};

# IcebergFeature

struct __cppobj IcebergFeature : Feature
{
};

# IcebergFeature_vtbl

struct /*VFT*/ IcebergFeature_vtbl
{
  void (__fastcall *~IFeature)(IFeature *this);
  std::optional<BlockPos> *(__fastcall *place)(IFeature *this, std::optional<BlockPos> *result, IBlockWorldGenAPI *, const BlockPos *, Random *, RenderParams *);
  std::string *(__fastcall *getStructureName)(IFeature *this, std::string *result);
  bool (__fastcall *parse)(IFeature *this, const rapidjson::GenericValue<rapidjson::UTF8<char>,rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator> > *, IWorldRegistriesProvider *);
  bool (__fastcall *place)(Feature *this, BlockSource *, const BlockPos *, Random *);
};

# IcePatchFeature

struct __cppobj __declspec(align(8)) IcePatchFeature : Feature
{
  const Block *mBlock;
  int mRadius;
};

# IcePatchFeature_vtbl

struct /*VFT*/ IcePatchFeature_vtbl
{
  void (__fastcall *~IFeature)(IFeature *this);
  std::optional<BlockPos> *(__fastcall *place)(IFeature *this, std::optional<BlockPos> *result, IBlockWorldGenAPI *, const BlockPos *, Random *, RenderParams *);
  std::string *(__fastcall *getStructureName)(IFeature *this, std::string *result);
  bool (__fastcall *parse)(IFeature *this, const rapidjson::GenericValue<rapidjson::UTF8<char>,rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator> > *, IWorldRegistriesProvider *);
  bool (__fastcall *place)(Feature *this, BlockSource *, const BlockPos *, Random *);
};

# IceSpikeFeature

struct __cppobj IceSpikeFeature : Feature
{
};

# IceSpikeFeature_vtbl

struct /*VFT*/ IceSpikeFeature_vtbl
{
  void (__fastcall *~IFeature)(IFeature *this);
  std::optional<BlockPos> *(__fastcall *place)(IFeature *this, std::optional<BlockPos> *result, IBlockWorldGenAPI *, const BlockPos *, Random *, RenderParams *);
  std::string *(__fastcall *getStructureName)(IFeature *this, std::string *result);
  bool (__fastcall *parse)(IFeature *this, const rapidjson::GenericValue<rapidjson::UTF8<char>,rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator> > *, IWorldRegistriesProvider *);
  bool (__fastcall *place)(Feature *this, BlockSource *, const BlockPos *, Random *);
};

# ITreeFeature::_buildSchema::__l2::<lambda_5dced8e2f63812bbd4f1156cf024eea6>

struct __cppobj ITreeFeature::_buildSchema::__l2::<lambda_5dced8e2f63812bbd4f1156cf024eea6>
{
};

# Igloo

struct __cppobj __declspec(align(8)) Igloo : ScatteredFeaturePiece
{
  LegacyStructureSettings mLabSettings;
  BlockPos mLabPos;
  Vec3 mVillagerPos;
  Vec3 mZombieVillagerPos;
};

# Igloo_vtbl

struct /*VFT*/ Igloo_vtbl
{
  void (__fastcall *~StructurePiece)(StructurePiece *this);
  void (__fastcall *moveBoundingBox)(StructurePiece *this, int, int, int);
  PoolElementStructurePiece *(__fastcall *asPoolElement)(StructurePiece *this);
  StructurePieceType (__fastcall *getType)(StructurePiece *this);
  void (__fastcall *addChildren)(StructurePiece *this, StructurePiece *, std::vector<std::unique_ptr<StructurePiece>> *, Random *);
  bool (__fastcall *postProcess)(StructurePiece *this, BlockSource *, Random *, const BoundingBox *);
  void (__fastcall *postProcessMobsAt)(StructurePiece *this, BlockSource *, Random *, const BoundingBox *);
  int (__fastcall *getWorldX)(StructurePiece *this, int, int);
  int (__fastcall *getWorldZ)(StructurePiece *this, int, int);
  void (__fastcall *placeBlock)(StructurePiece *this, BlockSource *, const Block *, int, int, int, const BoundingBox *);
  void (__fastcall *generateBox)(StructurePiece *this, BlockSource *, const BoundingBox *, int, int, int, int, int, int, const Block *, const Block *, bool);
  void (__fastcall *addHardcodedSpawnAreas)(StructurePiece *this, LevelChunk *);
};

# inflate_state

struct __declspec(align(8)) inflate_state
{
  z_stream_s *strm;
  inflate_mode mode;
  int last;
  int wrap;
  int havedict;
  int flags;
  unsigned int dmax;
  unsigned int check;
  unsigned int total;
  gz_header_s *head;
  unsigned int wbits;
  unsigned int wsize;
  unsigned int whave;
  unsigned int wnext;
  unsigned __int8 *window;
  unsigned int hold;
  unsigned int bits;
  unsigned int length;
  unsigned int offset;
  unsigned int extra;
  const code *lencode;
  const code *distcode;
  unsigned int lenbits;
  unsigned int distbits;
  unsigned int ncode;
  unsigned int nlen;
  unsigned int ndist;
  unsigned int have;
  code *next;
  unsigned __int16 lens[320];
  unsigned __int16 work[288];
  code codes[1444];
  int sane;
  int back;
  unsigned int was;
};

# InternalTaskGroup_vtbl

struct /*VFT*/ InternalTaskGroup_vtbl
{
  void (__fastcall *~ITaskGroup)(ITaskGroup *this);
  void (__fastcall *taskRegister)(ITaskGroup *this, std::shared_ptr<BackgroundTaskBase>);
  void (__fastcall *requeueTask)(ITaskGroup *this, std::shared_ptr<BackgroundTaskBase>, bool);
  TaskGroupState (__fastcall *getState)(ITaskGroup *this);
  void (__fastcall *processCoroutines)(ITaskGroup *this);
  void (__fastcall *taskComplete)(ITaskGroup *this, gsl::not_null<BackgroundTaskBase *>);
};

# inflate_codes_state

struct inflate_codes_state
{
  inflate_codes_mode mode;
  unsigned int len;
  union
  {
    struct __declspec(align(8))
    {
      inflate_huft_s *tree;
      unsigned int need;
    } code;
    unsigned int lit;
    struct
    {
      unsigned int get;
      unsigned int dist;
    } copy;
  } sub;
  unsigned __int8 lbits;
  unsigned __int8 dbits;
  inflate_huft_s *ltree;
  inflate_huft_s *dtree;
};

# inflate_blocks_state

struct __declspec(align(8)) inflate_blocks_state
{
  inflate_block_mode mode;
  union
  {
    unsigned int left;
    struct
    {
      unsigned int table;
      unsigned int index;
      unsigned int *blens;
      unsigned int bb;
      inflate_huft_s *tb;
    } trees;
    struct
    {
      inflate_codes_state *codes;
    } decode;
  } sub;
  unsigned int last;
  unsigned int bitk;
  unsigned int bitb;
  inflate_huft_s *hufts;
  unsigned __int8 *window;
  unsigned __int8 *end;
  unsigned __int8 *read;
  unsigned __int8 *write;
  unsigned int (__fastcall *checkfn)(unsigned int, const unsigned __int8 *, unsigned int);
  unsigned int check;
};

# ImVector<char *>

struct __cppobj ImVector<char *>
{
  int Size;
  int Capacity;
  char **Data;
};

# ImVector<char const *>

struct __cppobj ImVector<char const *>
{
  int Size;
  int Capacity;
  const char **Data;
};

# ImVector<stbrp_rect>

struct __cppobj ImVector<stbrp_rect>
{
  int Size;
  int Capacity;
  stbrp_rect *Data;
};

# ImGuiStb::StbTexteditRow

struct ImGuiStb::StbTexteditRow
{
  float x0;
  float x1;
  float baseline_y_delta;
  float ymin;
  float ymax;
  int num_chars;
};

# ImGuiStb::StbFindState

struct ImGuiStb::StbFindState
{
  float x;
  float y;
  float height;
  int first_char;
  int length;
  int prev_first;
};

# ImGuiPlotArrayGetterData

struct __cppobj __declspec(align(8)) ImGuiPlotArrayGetterData
{
  const float *Values;
  int Stride;
};

# ID3D10Blob

struct __cppobj ID3D10Blob : IUnknown
{
};

# ID3D10Blob_vtbl

struct /*VFT*/ ID3D10Blob_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  void *(__fastcall *GetBufferPointer)(ID3D10Blob *this);
  unsigned __int64 (__fastcall *GetBufferSize)(ID3D10Blob *this);
};

# ID3DInclude

struct __cppobj ID3DInclude
{
  ID3DInclude_vtbl *__vftable /*VFT*/;
};

# ID3DInclude_vtbl

struct /*VFT*/ ID3DInclude_vtbl
{
  HRESULT (__fastcall *Open)(ID3DInclude *this, _D3D_INCLUDE_TYPE, const char *, const void *, const void **, unsigned int *);
  HRESULT (__fastcall *Close)(ID3DInclude *this, const void *);
};

# IOobject

struct IOobject
{
  __int64 ob_refcnt;
  _typeobject *ob_type;
  char *buf;
  __int64 pos;
  __int64 string_size;
};

# Iobject

struct Iobject
{
  __int64 ob_refcnt;
  _typeobject *ob_type;
  char *buf;
  __int64 pos;
  __int64 string_size;
  bufferinfo pbuf;
};

# isliceobject

struct isliceobject
{
  __int64 ob_refcnt;
  _typeobject *ob_type;
  _object *it;
  __int64 next;
  __int64 stop;
  __int64 step;
  __int64 cnt;
};

# izipobject

struct izipobject
{
  __int64 ob_refcnt;
  _typeobject *ob_type;
  __int64 tuplesize;
  _object *ittuple;
  _object *result;
};

# iziplongestobject

struct iziplongestobject
{
  __int64 ob_refcnt;
  _typeobject *ob_type;
  __int64 tuplesize;
  __int64 numactive;
  _object *ittuple;
  _object *result;
  _object *fillvalue;
};

# ifilterobject

struct ifilterobject
{
  __int64 ob_refcnt;
  _typeobject *ob_type;
  _object *func;
  _object *it;
};

# imapobject

struct imapobject
{
  __int64 ob_refcnt;
  _typeobject *ob_type;
  _object *iters;
  _object *func;
};

# ifilterfalseobject

struct ifilterfalseobject
{
  __int64 ob_refcnt;
  _typeobject *ob_type;
  _object *func;
  _object *it;
};

# itemgetterobject

struct itemgetterobject
{
  __int64 ob_refcnt;
  _typeobject *ob_type;
  __int64 nitems;
  _object *item;
};

# iobase

struct iobase
{
  __int64 ob_refcnt;
  _typeobject *ob_type;
  _object *dict;
  _object *weakreflist;
};

# instr

struct __declspec(align(8)) instr
{
  unsigned __int32 i_jabs : 1;
  unsigned __int32 i_jrel : 1;
  unsigned __int32 i_hasarg : 1;
  unsigned __int8 i_opcode;
  int i_oparg;
  basicblock_ *i_target;
  int i_lineno;
};

# ID3D12Object

struct __cppobj ID3D12Object : IUnknown
{
};

# ID3D12Object_vtbl

struct /*VFT*/ ID3D12Object_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *GetPrivateData)(ID3D12Object *this, const _GUID *, unsigned int *, void *);
  HRESULT (__fastcall *SetPrivateData)(ID3D12Object *this, const _GUID *, unsigned int, const void *);
  HRESULT (__fastcall *SetPrivateDataInterface)(ID3D12Object *this, const _GUID *, const IUnknown *);
  HRESULT (__fastcall *SetName)(ID3D12Object *this, const wchar_t *);
};

# ID3D12DeviceChild

struct __cppobj ID3D12DeviceChild : ID3D12Object
{
};

# ID3D12DeviceChild_vtbl

struct /*VFT*/ ID3D12DeviceChild_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *GetPrivateData)(ID3D12Object *this, const _GUID *, unsigned int *, void *);
  HRESULT (__fastcall *SetPrivateData)(ID3D12Object *this, const _GUID *, unsigned int, const void *);
  HRESULT (__fastcall *SetPrivateDataInterface)(ID3D12Object *this, const _GUID *, const IUnknown *);
  HRESULT (__fastcall *SetName)(ID3D12Object *this, const wchar_t *);
  HRESULT (__fastcall *GetDevice)(ID3D12DeviceChild *this, const _GUID *, void **);
};

# ID3D12Pageable_vtbl

struct /*VFT*/ ID3D12Pageable_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *GetPrivateData)(ID3D12Object *this, const _GUID *, unsigned int *, void *);
  HRESULT (__fastcall *SetPrivateData)(ID3D12Object *this, const _GUID *, unsigned int, const void *);
  HRESULT (__fastcall *SetPrivateDataInterface)(ID3D12Object *this, const _GUID *, const IUnknown *);
  HRESULT (__fastcall *SetName)(ID3D12Object *this, const wchar_t *);
  HRESULT (__fastcall *GetDevice)(ID3D12DeviceChild *this, const _GUID *, void **);
};

# ID3D12Pageable

struct __cppobj ID3D12Pageable : ID3D12DeviceChild
{
};

# ID3D12DescriptorHeap

struct __cppobj ID3D12DescriptorHeap : ID3D12Pageable
{
};

# ID3D12DescriptorHeap_vtbl

struct /*VFT*/ ID3D12DescriptorHeap_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *GetPrivateData)(ID3D12Object *this, const _GUID *, unsigned int *, void *);
  HRESULT (__fastcall *SetPrivateData)(ID3D12Object *this, const _GUID *, unsigned int, const void *);
  HRESULT (__fastcall *SetPrivateDataInterface)(ID3D12Object *this, const _GUID *, const IUnknown *);
  HRESULT (__fastcall *SetName)(ID3D12Object *this, const wchar_t *);
  HRESULT (__fastcall *GetDevice)(ID3D12DeviceChild *this, const _GUID *, void **);
  D3D12_DESCRIPTOR_HEAP_DESC *(__fastcall *GetDesc)(ID3D12DescriptorHeap *this, D3D12_DESCRIPTOR_HEAP_DESC *result);
  D3D12_CPU_DESCRIPTOR_HANDLE (__fastcall *GetCPUDescriptorHandleForHeapStart)(ID3D12DescriptorHeap *this);
  D3D12_GPU_DESCRIPTOR_HANDLE (__fastcall *GetGPUDescriptorHandleForHeapStart)(ID3D12DescriptorHeap *this);
};

# ID3D12RootSignature_vtbl

struct /*VFT*/ ID3D12RootSignature_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *GetPrivateData)(ID3D12Object *this, const _GUID *, unsigned int *, void *);
  HRESULT (__fastcall *SetPrivateData)(ID3D12Object *this, const _GUID *, unsigned int, const void *);
  HRESULT (__fastcall *SetPrivateDataInterface)(ID3D12Object *this, const _GUID *, const IUnknown *);
  HRESULT (__fastcall *SetName)(ID3D12Object *this, const wchar_t *);
  HRESULT (__fastcall *GetDevice)(ID3D12DeviceChild *this, const _GUID *, void **);
};

# ID3D12RootSignature

struct __cppobj ID3D12RootSignature : ID3D12DeviceChild
{
};

# ID3D12Heap

struct __cppobj ID3D12Heap : ID3D12Pageable
{
};

# ID3D12Heap_vtbl

struct /*VFT*/ ID3D12Heap_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *GetPrivateData)(ID3D12Object *this, const _GUID *, unsigned int *, void *);
  HRESULT (__fastcall *SetPrivateData)(ID3D12Object *this, const _GUID *, unsigned int, const void *);
  HRESULT (__fastcall *SetPrivateDataInterface)(ID3D12Object *this, const _GUID *, const IUnknown *);
  HRESULT (__fastcall *SetName)(ID3D12Object *this, const wchar_t *);
  HRESULT (__fastcall *GetDevice)(ID3D12DeviceChild *this, const _GUID *, void **);
  D3D12_HEAP_DESC *(__fastcall *GetDesc)(ID3D12Heap *this, D3D12_HEAP_DESC *result);
};

# ID3D12QueryHeap_vtbl

struct /*VFT*/ ID3D12QueryHeap_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *GetPrivateData)(ID3D12Object *this, const _GUID *, unsigned int *, void *);
  HRESULT (__fastcall *SetPrivateData)(ID3D12Object *this, const _GUID *, unsigned int, const void *);
  HRESULT (__fastcall *SetPrivateDataInterface)(ID3D12Object *this, const _GUID *, const IUnknown *);
  HRESULT (__fastcall *SetName)(ID3D12Object *this, const wchar_t *);
  HRESULT (__fastcall *GetDevice)(ID3D12DeviceChild *this, const _GUID *, void **);
};

# ID3D12QueryHeap

struct __cppobj ID3D12QueryHeap : ID3D12Pageable
{
};

# ID3D12CommandList

struct __cppobj ID3D12CommandList : ID3D12DeviceChild
{
};

# ID3D12CommandList_vtbl

struct /*VFT*/ ID3D12CommandList_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *GetPrivateData)(ID3D12Object *this, const _GUID *, unsigned int *, void *);
  HRESULT (__fastcall *SetPrivateData)(ID3D12Object *this, const _GUID *, unsigned int, const void *);
  HRESULT (__fastcall *SetPrivateDataInterface)(ID3D12Object *this, const _GUID *, const IUnknown *);
  HRESULT (__fastcall *SetName)(ID3D12Object *this, const wchar_t *);
  HRESULT (__fastcall *GetDevice)(ID3D12DeviceChild *this, const _GUID *, void **);
  D3D12_COMMAND_LIST_TYPE (__fastcall *GetType)(ID3D12CommandList *this);
};

# ID3D12GraphicsCommandList

struct __cppobj ID3D12GraphicsCommandList : ID3D12CommandList
{
};

# ID3D12CommandAllocator

struct __cppobj ID3D12CommandAllocator : ID3D12Pageable
{
};

# ID3D12CommandAllocator_vtbl

struct /*VFT*/ ID3D12CommandAllocator_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *GetPrivateData)(ID3D12Object *this, const _GUID *, unsigned int *, void *);
  HRESULT (__fastcall *SetPrivateData)(ID3D12Object *this, const _GUID *, unsigned int, const void *);
  HRESULT (__fastcall *SetPrivateDataInterface)(ID3D12Object *this, const _GUID *, const IUnknown *);
  HRESULT (__fastcall *SetName)(ID3D12Object *this, const wchar_t *);
  HRESULT (__fastcall *GetDevice)(ID3D12DeviceChild *this, const _GUID *, void **);
  HRESULT (__fastcall *Reset)(ID3D12CommandAllocator *this);
};

# ID3D12PipelineState

struct __cppobj ID3D12PipelineState : ID3D12Pageable
{
};

# ID3D12PipelineState_vtbl

struct /*VFT*/ ID3D12PipelineState_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *GetPrivateData)(ID3D12Object *this, const _GUID *, unsigned int *, void *);
  HRESULT (__fastcall *SetPrivateData)(ID3D12Object *this, const _GUID *, unsigned int, const void *);
  HRESULT (__fastcall *SetPrivateDataInterface)(ID3D12Object *this, const _GUID *, const IUnknown *);
  HRESULT (__fastcall *SetName)(ID3D12Object *this, const wchar_t *);
  HRESULT (__fastcall *GetDevice)(ID3D12DeviceChild *this, const _GUID *, void **);
  HRESULT (__fastcall *GetCachedBlob)(ID3D12PipelineState *this, ID3D10Blob **);
};

# ID3D12Resource

struct __cppobj ID3D12Resource : ID3D12Pageable
{
};

# ID3D12Resource_vtbl

struct /*VFT*/ ID3D12Resource_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *GetPrivateData)(ID3D12Object *this, const _GUID *, unsigned int *, void *);
  HRESULT (__fastcall *SetPrivateData)(ID3D12Object *this, const _GUID *, unsigned int, const void *);
  HRESULT (__fastcall *SetPrivateDataInterface)(ID3D12Object *this, const _GUID *, const IUnknown *);
  HRESULT (__fastcall *SetName)(ID3D12Object *this, const wchar_t *);
  HRESULT (__fastcall *GetDevice)(ID3D12DeviceChild *this, const _GUID *, void **);
  HRESULT (__fastcall *Map)(ID3D12Resource *this, unsigned int, const D3D12_RANGE *, void **);
  void (__fastcall *Unmap)(ID3D12Resource *this, unsigned int, const D3D12_RANGE *);
  D3D12_RESOURCE_DESC *(__fastcall *GetDesc)(ID3D12Resource *this, D3D12_RESOURCE_DESC *result);
  unsigned __int64 (__fastcall *GetGPUVirtualAddress)(ID3D12Resource *this);
  HRESULT (__fastcall *WriteToSubresource)(ID3D12Resource *this, unsigned int, const D3D12_BOX *, const void *, unsigned int, unsigned int);
  HRESULT (__fastcall *ReadFromSubresource)(ID3D12Resource *this, void *, unsigned int, unsigned int, unsigned int, const D3D12_BOX *);
  HRESULT (__fastcall *GetHeapProperties)(ID3D12Resource *this, D3D12_HEAP_PROPERTIES *, D3D12_HEAP_FLAGS *);
};

# ID3D12CommandSignature_vtbl

struct /*VFT*/ ID3D12CommandSignature_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *GetPrivateData)(ID3D12Object *this, const _GUID *, unsigned int *, void *);
  HRESULT (__fastcall *SetPrivateData)(ID3D12Object *this, const _GUID *, unsigned int, const void *);
  HRESULT (__fastcall *SetPrivateDataInterface)(ID3D12Object *this, const _GUID *, const IUnknown *);
  HRESULT (__fastcall *SetName)(ID3D12Object *this, const wchar_t *);
  HRESULT (__fastcall *GetDevice)(ID3D12DeviceChild *this, const _GUID *, void **);
};

# ID3D12CommandSignature

struct __cppobj ID3D12CommandSignature : ID3D12Pageable
{
};

# IDXGIObject

struct __cppobj IDXGIObject : IUnknown
{
};

# IDXGIObject_vtbl

struct /*VFT*/ IDXGIObject_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *SetPrivateData)(IDXGIObject *this, const _GUID *, unsigned int, const void *);
  HRESULT (__fastcall *SetPrivateDataInterface)(IDXGIObject *this, const _GUID *, const IUnknown *);
  HRESULT (__fastcall *GetPrivateData)(IDXGIObject *this, const _GUID *, unsigned int *, void *);
  HRESULT (__fastcall *GetParent)(IDXGIObject *this, const _GUID *, void **);
};

# IDXGIDeviceSubObject

struct __cppobj IDXGIDeviceSubObject : IDXGIObject
{
};

# IDXGIDeviceSubObject_vtbl

struct /*VFT*/ IDXGIDeviceSubObject_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *SetPrivateData)(IDXGIObject *this, const _GUID *, unsigned int, const void *);
  HRESULT (__fastcall *SetPrivateDataInterface)(IDXGIObject *this, const _GUID *, const IUnknown *);
  HRESULT (__fastcall *GetPrivateData)(IDXGIObject *this, const _GUID *, unsigned int *, void *);
  HRESULT (__fastcall *GetParent)(IDXGIObject *this, const _GUID *, void **);
  HRESULT (__fastcall *GetDevice)(IDXGIDeviceSubObject *this, const _GUID *, void **);
};

# IDXGISwapChain

struct __cppobj IDXGISwapChain : IDXGIDeviceSubObject
{
};

# IDXGIOutput

struct __cppobj IDXGIOutput : IDXGIObject
{
};

# IDXGISurface

struct __cppobj IDXGISurface : IDXGIDeviceSubObject
{
};

# IDXGISurface_vtbl

struct /*VFT*/ IDXGISurface_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *SetPrivateData)(IDXGIObject *this, const _GUID *, unsigned int, const void *);
  HRESULT (__fastcall *SetPrivateDataInterface)(IDXGIObject *this, const _GUID *, const IUnknown *);
  HRESULT (__fastcall *GetPrivateData)(IDXGIObject *this, const _GUID *, unsigned int *, void *);
  HRESULT (__fastcall *GetParent)(IDXGIObject *this, const _GUID *, void **);
  HRESULT (__fastcall *GetDevice)(IDXGIDeviceSubObject *this, const _GUID *, void **);
  HRESULT (__fastcall *GetDesc)(IDXGISurface *this, DXGI_SURFACE_DESC *);
  HRESULT (__fastcall *Map)(IDXGISurface *this, DXGI_MAPPED_RECT *, unsigned int);
  HRESULT (__fastcall *Unmap)(IDXGISurface *this);
};

# IDXGIOutput_vtbl

struct /*VFT*/ IDXGIOutput_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *SetPrivateData)(IDXGIObject *this, const _GUID *, unsigned int, const void *);
  HRESULT (__fastcall *SetPrivateDataInterface)(IDXGIObject *this, const _GUID *, const IUnknown *);
  HRESULT (__fastcall *GetPrivateData)(IDXGIObject *this, const _GUID *, unsigned int *, void *);
  HRESULT (__fastcall *GetParent)(IDXGIObject *this, const _GUID *, void **);
  HRESULT (__fastcall *GetDesc)(IDXGIOutput *this, DXGI_OUTPUT_DESC *);
  HRESULT (__fastcall *GetDisplayModeList)(IDXGIOutput *this, DXGI_FORMAT, unsigned int, unsigned int *, DXGI_MODE_DESC *);
  HRESULT (__fastcall *FindClosestMatchingMode)(IDXGIOutput *this, const DXGI_MODE_DESC *, DXGI_MODE_DESC *, IUnknown *);
  HRESULT (__fastcall *WaitForVBlank)(IDXGIOutput *this);
  HRESULT (__fastcall *TakeOwnership)(IDXGIOutput *this, IUnknown *, int);
  void (__fastcall *ReleaseOwnership)(IDXGIOutput *this);
  HRESULT (__fastcall *GetGammaControlCapabilities)(IDXGIOutput *this, DXGI_GAMMA_CONTROL_CAPABILITIES *);
  HRESULT (__fastcall *SetGammaControl)(IDXGIOutput *this, const DXGI_GAMMA_CONTROL *);
  HRESULT (__fastcall *GetGammaControl)(IDXGIOutput *this, DXGI_GAMMA_CONTROL *);
  HRESULT (__fastcall *SetDisplaySurface)(IDXGIOutput *this, IDXGISurface *);
  HRESULT (__fastcall *GetDisplaySurfaceData)(IDXGIOutput *this, IDXGISurface *);
  HRESULT (__fastcall *GetFrameStatistics)(IDXGIOutput *this, DXGI_FRAME_STATISTICS *);
};

# IDXGISwapChain_vtbl

struct /*VFT*/ IDXGISwapChain_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *SetPrivateData)(IDXGIObject *this, const _GUID *, unsigned int, const void *);
  HRESULT (__fastcall *SetPrivateDataInterface)(IDXGIObject *this, const _GUID *, const IUnknown *);
  HRESULT (__fastcall *GetPrivateData)(IDXGIObject *this, const _GUID *, unsigned int *, void *);
  HRESULT (__fastcall *GetParent)(IDXGIObject *this, const _GUID *, void **);
  HRESULT (__fastcall *GetDevice)(IDXGIDeviceSubObject *this, const _GUID *, void **);
  HRESULT (__fastcall *Present)(IDXGISwapChain *this, unsigned int, unsigned int);
  HRESULT (__fastcall *GetBuffer)(IDXGISwapChain *this, unsigned int, const _GUID *, void **);
  HRESULT (__fastcall *SetFullscreenState)(IDXGISwapChain *this, int, IDXGIOutput *);
  HRESULT (__fastcall *GetFullscreenState)(IDXGISwapChain *this, int *, IDXGIOutput **);
  HRESULT (__fastcall *GetDesc)(IDXGISwapChain *this, DXGI_SWAP_CHAIN_DESC *);
  HRESULT (__fastcall *ResizeBuffers)(IDXGISwapChain *this, unsigned int, unsigned int, unsigned int, DXGI_FORMAT, unsigned int);
  HRESULT (__fastcall *ResizeTarget)(IDXGISwapChain *this, const DXGI_MODE_DESC *);
  HRESULT (__fastcall *GetContainingOutput)(IDXGISwapChain *this, IDXGIOutput **);
  HRESULT (__fastcall *GetFrameStatistics)(IDXGISwapChain *this, DXGI_FRAME_STATISTICS *);
  HRESULT (__fastcall *GetLastPresentCount)(IDXGISwapChain *this, unsigned int *);
};

# IDXGISwapChain1

struct __cppobj IDXGISwapChain1 : IDXGISwapChain
{
};

# IDXGISwapChain1_vtbl

struct /*VFT*/ IDXGISwapChain1_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *SetPrivateData)(IDXGIObject *this, const _GUID *, unsigned int, const void *);
  HRESULT (__fastcall *SetPrivateDataInterface)(IDXGIObject *this, const _GUID *, const IUnknown *);
  HRESULT (__fastcall *GetPrivateData)(IDXGIObject *this, const _GUID *, unsigned int *, void *);
  HRESULT (__fastcall *GetParent)(IDXGIObject *this, const _GUID *, void **);
  HRESULT (__fastcall *GetDevice)(IDXGIDeviceSubObject *this, const _GUID *, void **);
  HRESULT (__fastcall *Present)(IDXGISwapChain *this, unsigned int, unsigned int);
  HRESULT (__fastcall *GetBuffer)(IDXGISwapChain *this, unsigned int, const _GUID *, void **);
  HRESULT (__fastcall *SetFullscreenState)(IDXGISwapChain *this, int, IDXGIOutput *);
  HRESULT (__fastcall *GetFullscreenState)(IDXGISwapChain *this, int *, IDXGIOutput **);
  HRESULT (__fastcall *GetDesc)(IDXGISwapChain *this, DXGI_SWAP_CHAIN_DESC *);
  HRESULT (__fastcall *ResizeBuffers)(IDXGISwapChain *this, unsigned int, unsigned int, unsigned int, DXGI_FORMAT, unsigned int);
  HRESULT (__fastcall *ResizeTarget)(IDXGISwapChain *this, const DXGI_MODE_DESC *);
  HRESULT (__fastcall *GetContainingOutput)(IDXGISwapChain *this, IDXGIOutput **);
  HRESULT (__fastcall *GetFrameStatistics)(IDXGISwapChain *this, DXGI_FRAME_STATISTICS *);
  HRESULT (__fastcall *GetLastPresentCount)(IDXGISwapChain *this, unsigned int *);
  HRESULT (__fastcall *GetDesc1)(IDXGISwapChain1 *this, DXGI_SWAP_CHAIN_DESC1 *);
  HRESULT (__fastcall *GetFullscreenDesc)(IDXGISwapChain1 *this, DXGI_SWAP_CHAIN_FULLSCREEN_DESC *);
  HRESULT (__fastcall *GetHwnd)(IDXGISwapChain1 *this, HWND__ **);
  HRESULT (__fastcall *GetCoreWindow)(IDXGISwapChain1 *this, const _GUID *, void **);
  HRESULT (__fastcall *Present1)(IDXGISwapChain1 *this, unsigned int, unsigned int, const DXGI_PRESENT_PARAMETERS *);
  int (__fastcall *IsTemporaryMonoSupported)(IDXGISwapChain1 *this);
  HRESULT (__fastcall *GetRestrictToOutput)(IDXGISwapChain1 *this, IDXGIOutput **);
  HRESULT (__fastcall *SetBackgroundColor)(IDXGISwapChain1 *this, const _D3DCOLORVALUE *);
  HRESULT (__fastcall *GetBackgroundColor)(IDXGISwapChain1 *this, _D3DCOLORVALUE *);
  HRESULT (__fastcall *SetRotation)(IDXGISwapChain1 *this, DXGI_MODE_ROTATION);
  HRESULT (__fastcall *GetRotation)(IDXGISwapChain1 *this, DXGI_MODE_ROTATION *);
};

# IDXGISwapChain2

struct __cppobj IDXGISwapChain2 : IDXGISwapChain1
{
};

# IDXGISwapChain2_vtbl

struct /*VFT*/ IDXGISwapChain2_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *SetPrivateData)(IDXGIObject *this, const _GUID *, unsigned int, const void *);
  HRESULT (__fastcall *SetPrivateDataInterface)(IDXGIObject *this, const _GUID *, const IUnknown *);
  HRESULT (__fastcall *GetPrivateData)(IDXGIObject *this, const _GUID *, unsigned int *, void *);
  HRESULT (__fastcall *GetParent)(IDXGIObject *this, const _GUID *, void **);
  HRESULT (__fastcall *GetDevice)(IDXGIDeviceSubObject *this, const _GUID *, void **);
  HRESULT (__fastcall *Present)(IDXGISwapChain *this, unsigned int, unsigned int);
  HRESULT (__fastcall *GetBuffer)(IDXGISwapChain *this, unsigned int, const _GUID *, void **);
  HRESULT (__fastcall *SetFullscreenState)(IDXGISwapChain *this, int, IDXGIOutput *);
  HRESULT (__fastcall *GetFullscreenState)(IDXGISwapChain *this, int *, IDXGIOutput **);
  HRESULT (__fastcall *GetDesc)(IDXGISwapChain *this, DXGI_SWAP_CHAIN_DESC *);
  HRESULT (__fastcall *ResizeBuffers)(IDXGISwapChain *this, unsigned int, unsigned int, unsigned int, DXGI_FORMAT, unsigned int);
  HRESULT (__fastcall *ResizeTarget)(IDXGISwapChain *this, const DXGI_MODE_DESC *);
  HRESULT (__fastcall *GetContainingOutput)(IDXGISwapChain *this, IDXGIOutput **);
  HRESULT (__fastcall *GetFrameStatistics)(IDXGISwapChain *this, DXGI_FRAME_STATISTICS *);
  HRESULT (__fastcall *GetLastPresentCount)(IDXGISwapChain *this, unsigned int *);
  HRESULT (__fastcall *GetDesc1)(IDXGISwapChain1 *this, DXGI_SWAP_CHAIN_DESC1 *);
  HRESULT (__fastcall *GetFullscreenDesc)(IDXGISwapChain1 *this, DXGI_SWAP_CHAIN_FULLSCREEN_DESC *);
  HRESULT (__fastcall *GetHwnd)(IDXGISwapChain1 *this, HWND__ **);
  HRESULT (__fastcall *GetCoreWindow)(IDXGISwapChain1 *this, const _GUID *, void **);
  HRESULT (__fastcall *Present1)(IDXGISwapChain1 *this, unsigned int, unsigned int, const DXGI_PRESENT_PARAMETERS *);
  int (__fastcall *IsTemporaryMonoSupported)(IDXGISwapChain1 *this);
  HRESULT (__fastcall *GetRestrictToOutput)(IDXGISwapChain1 *this, IDXGIOutput **);
  HRESULT (__fastcall *SetBackgroundColor)(IDXGISwapChain1 *this, const _D3DCOLORVALUE *);
  HRESULT (__fastcall *GetBackgroundColor)(IDXGISwapChain1 *this, _D3DCOLORVALUE *);
  HRESULT (__fastcall *SetRotation)(IDXGISwapChain1 *this, DXGI_MODE_ROTATION);
  HRESULT (__fastcall *GetRotation)(IDXGISwapChain1 *this, DXGI_MODE_ROTATION *);
  HRESULT (__fastcall *SetSourceSize)(IDXGISwapChain2 *this, unsigned int, unsigned int);
  HRESULT (__fastcall *GetSourceSize)(IDXGISwapChain2 *this, unsigned int *, unsigned int *);
  HRESULT (__fastcall *SetMaximumFrameLatency)(IDXGISwapChain2 *this, unsigned int);
  HRESULT (__fastcall *GetMaximumFrameLatency)(IDXGISwapChain2 *this, unsigned int *);
  void *(__fastcall *GetFrameLatencyWaitableObject)(IDXGISwapChain2 *this);
  HRESULT (__fastcall *SetMatrixTransform)(IDXGISwapChain2 *this, const DXGI_MATRIX_3X2_F *);
  HRESULT (__fastcall *GetMatrixTransform)(IDXGISwapChain2 *this, DXGI_MATRIX_3X2_F *);
};

# IDXGISwapChain3

struct __cppobj IDXGISwapChain3 : IDXGISwapChain2
{
};

# IDXGISwapChain3_vtbl

struct /*VFT*/ IDXGISwapChain3_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *SetPrivateData)(IDXGIObject *this, const _GUID *, unsigned int, const void *);
  HRESULT (__fastcall *SetPrivateDataInterface)(IDXGIObject *this, const _GUID *, const IUnknown *);
  HRESULT (__fastcall *GetPrivateData)(IDXGIObject *this, const _GUID *, unsigned int *, void *);
  HRESULT (__fastcall *GetParent)(IDXGIObject *this, const _GUID *, void **);
  HRESULT (__fastcall *GetDevice)(IDXGIDeviceSubObject *this, const _GUID *, void **);
  HRESULT (__fastcall *Present)(IDXGISwapChain *this, unsigned int, unsigned int);
  HRESULT (__fastcall *GetBuffer)(IDXGISwapChain *this, unsigned int, const _GUID *, void **);
  HRESULT (__fastcall *SetFullscreenState)(IDXGISwapChain *this, int, IDXGIOutput *);
  HRESULT (__fastcall *GetFullscreenState)(IDXGISwapChain *this, int *, IDXGIOutput **);
  HRESULT (__fastcall *GetDesc)(IDXGISwapChain *this, DXGI_SWAP_CHAIN_DESC *);
  HRESULT (__fastcall *ResizeBuffers)(IDXGISwapChain *this, unsigned int, unsigned int, unsigned int, DXGI_FORMAT, unsigned int);
  HRESULT (__fastcall *ResizeTarget)(IDXGISwapChain *this, const DXGI_MODE_DESC *);
  HRESULT (__fastcall *GetContainingOutput)(IDXGISwapChain *this, IDXGIOutput **);
  HRESULT (__fastcall *GetFrameStatistics)(IDXGISwapChain *this, DXGI_FRAME_STATISTICS *);
  HRESULT (__fastcall *GetLastPresentCount)(IDXGISwapChain *this, unsigned int *);
  HRESULT (__fastcall *GetDesc1)(IDXGISwapChain1 *this, DXGI_SWAP_CHAIN_DESC1 *);
  HRESULT (__fastcall *GetFullscreenDesc)(IDXGISwapChain1 *this, DXGI_SWAP_CHAIN_FULLSCREEN_DESC *);
  HRESULT (__fastcall *GetHwnd)(IDXGISwapChain1 *this, HWND__ **);
  HRESULT (__fastcall *GetCoreWindow)(IDXGISwapChain1 *this, const _GUID *, void **);
  HRESULT (__fastcall *Present1)(IDXGISwapChain1 *this, unsigned int, unsigned int, const DXGI_PRESENT_PARAMETERS *);
  int (__fastcall *IsTemporaryMonoSupported)(IDXGISwapChain1 *this);
  HRESULT (__fastcall *GetRestrictToOutput)(IDXGISwapChain1 *this, IDXGIOutput **);
  HRESULT (__fastcall *SetBackgroundColor)(IDXGISwapChain1 *this, const _D3DCOLORVALUE *);
  HRESULT (__fastcall *GetBackgroundColor)(IDXGISwapChain1 *this, _D3DCOLORVALUE *);
  HRESULT (__fastcall *SetRotation)(IDXGISwapChain1 *this, DXGI_MODE_ROTATION);
  HRESULT (__fastcall *GetRotation)(IDXGISwapChain1 *this, DXGI_MODE_ROTATION *);
  HRESULT (__fastcall *SetSourceSize)(IDXGISwapChain2 *this, unsigned int, unsigned int);
  HRESULT (__fastcall *GetSourceSize)(IDXGISwapChain2 *this, unsigned int *, unsigned int *);
  HRESULT (__fastcall *SetMaximumFrameLatency)(IDXGISwapChain2 *this, unsigned int);
  HRESULT (__fastcall *GetMaximumFrameLatency)(IDXGISwapChain2 *this, unsigned int *);
  void *(__fastcall *GetFrameLatencyWaitableObject)(IDXGISwapChain2 *this);
  HRESULT (__fastcall *SetMatrixTransform)(IDXGISwapChain2 *this, const DXGI_MATRIX_3X2_F *);
  HRESULT (__fastcall *GetMatrixTransform)(IDXGISwapChain2 *this, DXGI_MATRIX_3X2_F *);
  unsigned int (__fastcall *GetCurrentBackBufferIndex)(IDXGISwapChain3 *this);
  HRESULT (__fastcall *CheckColorSpaceSupport)(IDXGISwapChain3 *this, DXGI_COLOR_SPACE_TYPE, unsigned int *);
  HRESULT (__fastcall *SetColorSpace1)(IDXGISwapChain3 *this, DXGI_COLOR_SPACE_TYPE);
  HRESULT (__fastcall *ResizeBuffers1)(IDXGISwapChain3 *this, unsigned int, unsigned int, unsigned int, DXGI_FORMAT, unsigned int, const unsigned int *, IUnknown *const *);
};

# ID3D12Fence

struct __cppobj ID3D12Fence : ID3D12Pageable
{
};

# ID3D12Fence_vtbl

struct /*VFT*/ ID3D12Fence_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *GetPrivateData)(ID3D12Object *this, const _GUID *, unsigned int *, void *);
  HRESULT (__fastcall *SetPrivateData)(ID3D12Object *this, const _GUID *, unsigned int, const void *);
  HRESULT (__fastcall *SetPrivateDataInterface)(ID3D12Object *this, const _GUID *, const IUnknown *);
  HRESULT (__fastcall *SetName)(ID3D12Object *this, const wchar_t *);
  HRESULT (__fastcall *GetDevice)(ID3D12DeviceChild *this, const _GUID *, void **);
  unsigned __int64 (__fastcall *GetCompletedValue)(ID3D12Fence *this);
  HRESULT (__fastcall *SetEventOnCompletion)(ID3D12Fence *this, unsigned __int64, void *);
  Signal *Signal;
};

# ID3D12Device

struct __cppobj ID3D12Device : ID3D12Object
{
};

# ID3D12Device_vtbl

struct /*VFT*/ ID3D12Device_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *GetPrivateData)(ID3D12Object *this, const _GUID *, unsigned int *, void *);
  HRESULT (__fastcall *SetPrivateData)(ID3D12Object *this, const _GUID *, unsigned int, const void *);
  HRESULT (__fastcall *SetPrivateDataInterface)(ID3D12Object *this, const _GUID *, const IUnknown *);
  HRESULT (__fastcall *SetName)(ID3D12Object *this, const wchar_t *);
  unsigned int (__fastcall *GetNodeCount)(ID3D12Device *this);
  HRESULT (__fastcall *CreateCommandQueue)(ID3D12Device *this, const D3D12_COMMAND_QUEUE_DESC *, const _GUID *, void **);
  HRESULT (__fastcall *CreateCommandAllocator)(ID3D12Device *this, D3D12_COMMAND_LIST_TYPE, const _GUID *, void **);
  HRESULT (__fastcall *CreateGraphicsPipelineState)(ID3D12Device *this, const D3D12_GRAPHICS_PIPELINE_STATE_DESC *, const _GUID *, void **);
  HRESULT (__fastcall *CreateComputePipelineState)(ID3D12Device *this, const D3D12_COMPUTE_PIPELINE_STATE_DESC *, const _GUID *, void **);
  HRESULT (__fastcall *CreateCommandList)(ID3D12Device *this, unsigned int, D3D12_COMMAND_LIST_TYPE, ID3D12CommandAllocator *, ID3D12PipelineState *, const _GUID *, void **);
  HRESULT (__fastcall *CheckFeatureSupport)(ID3D12Device *this, D3D12_FEATURE, void *, unsigned int);
  HRESULT (__fastcall *CreateDescriptorHeap)(ID3D12Device *this, const D3D12_DESCRIPTOR_HEAP_DESC *, const _GUID *, void **);
  unsigned int (__fastcall *GetDescriptorHandleIncrementSize)(ID3D12Device *this, D3D12_DESCRIPTOR_HEAP_TYPE);
  HRESULT (__fastcall *CreateRootSignature)(ID3D12Device *this, unsigned int, const void *, unsigned __int64, const _GUID *, void **);
  void (__fastcall *CreateConstantBufferView)(ID3D12Device *this, const D3D12_CONSTANT_BUFFER_VIEW_DESC *, D3D12_CPU_DESCRIPTOR_HANDLE);
  void (__fastcall *CreateShaderResourceView)(ID3D12Device *this, ID3D12Resource *, const D3D12_SHADER_RESOURCE_VIEW_DESC *, D3D12_CPU_DESCRIPTOR_HANDLE);
  void (__fastcall *CreateUnorderedAccessView)(ID3D12Device *this, ID3D12Resource *, ID3D12Resource *, const D3D12_UNORDERED_ACCESS_VIEW_DESC *, D3D12_CPU_DESCRIPTOR_HANDLE);
  void (__fastcall *CreateRenderTargetView)(ID3D12Device *this, ID3D12Resource *, const D3D12_RENDER_TARGET_VIEW_DESC *, D3D12_CPU_DESCRIPTOR_HANDLE);
  void (__fastcall *CreateDepthStencilView)(ID3D12Device *this, ID3D12Resource *, const D3D12_DEPTH_STENCIL_VIEW_DESC *, D3D12_CPU_DESCRIPTOR_HANDLE);
  void (__fastcall *CreateSampler)(ID3D12Device *this, const D3D12_SAMPLER_DESC *, D3D12_CPU_DESCRIPTOR_HANDLE);
  void (__fastcall *CopyDescriptors)(ID3D12Device *this, unsigned int, const D3D12_CPU_DESCRIPTOR_HANDLE *, const unsigned int *, unsigned int, const D3D12_CPU_DESCRIPTOR_HANDLE *, const unsigned int *, D3D12_DESCRIPTOR_HEAP_TYPE);
  void (__fastcall *CopyDescriptorsSimple)(ID3D12Device *this, unsigned int, D3D12_CPU_DESCRIPTOR_HANDLE, D3D12_CPU_DESCRIPTOR_HANDLE, D3D12_DESCRIPTOR_HEAP_TYPE);
  D3D12_RESOURCE_ALLOCATION_INFO *(__fastcall *GetResourceAllocationInfo)(ID3D12Device *this, D3D12_RESOURCE_ALLOCATION_INFO *result, unsigned int, unsigned int, const D3D12_RESOURCE_DESC *);
  D3D12_HEAP_PROPERTIES *(__fastcall *GetCustomHeapProperties)(ID3D12Device *this, D3D12_HEAP_PROPERTIES *result, unsigned int, D3D12_HEAP_TYPE);
  HRESULT (__fastcall *CreateCommittedResource)(ID3D12Device *this, const D3D12_HEAP_PROPERTIES *, D3D12_HEAP_FLAGS, const D3D12_RESOURCE_DESC *, D3D12_RESOURCE_STATES, const D3D12_CLEAR_VALUE *, const _GUID *, void **);
  HRESULT (__fastcall *CreateHeap)(ID3D12Device *this, const D3D12_HEAP_DESC *, const _GUID *, void **);
  HRESULT (__fastcall *CreatePlacedResource)(ID3D12Device *this, ID3D12Heap *, unsigned __int64, const D3D12_RESOURCE_DESC *, D3D12_RESOURCE_STATES, const D3D12_CLEAR_VALUE *, const _GUID *, void **);
  HRESULT (__fastcall *CreateReservedResource)(ID3D12Device *this, const D3D12_RESOURCE_DESC *, D3D12_RESOURCE_STATES, const D3D12_CLEAR_VALUE *, const _GUID *, void **);
  HRESULT (__fastcall *CreateSharedHandle)(ID3D12Device *this, ID3D12DeviceChild *, const _SECURITY_ATTRIBUTES *, unsigned int, const wchar_t *, void **);
  HRESULT (__fastcall *OpenSharedHandle)(ID3D12Device *this, void *, const _GUID *, void **);
  HRESULT (__fastcall *OpenSharedHandleByName)(ID3D12Device *this, const wchar_t *, unsigned int, void **);
  HRESULT (__fastcall *MakeResident)(ID3D12Device *this, unsigned int, ID3D12Pageable *const *);
  HRESULT (__fastcall *Evict)(ID3D12Device *this, unsigned int, ID3D12Pageable *const *);
  HRESULT (__fastcall *CreateFence)(ID3D12Device *this, unsigned __int64, D3D12_FENCE_FLAGS, const _GUID *, void **);
  HRESULT (__fastcall *GetDeviceRemovedReason)(ID3D12Device *this);
  void (__fastcall *GetCopyableFootprints)(ID3D12Device *this, const D3D12_RESOURCE_DESC *, unsigned int, unsigned int, unsigned __int64, D3D12_PLACED_SUBRESOURCE_FOOTPRINT *, unsigned int *, unsigned __int64 *, unsigned __int64 *);
  HRESULT (__fastcall *CreateQueryHeap)(ID3D12Device *this, const D3D12_QUERY_HEAP_DESC *, const _GUID *, void **);
  HRESULT (__fastcall *SetStablePowerState)(ID3D12Device *this, int);
  HRESULT (__fastcall *CreateCommandSignature)(ID3D12Device *this, const D3D12_COMMAND_SIGNATURE_DESC *, ID3D12RootSignature *, const _GUID *, void **);
  void (__fastcall *GetResourceTiling)(ID3D12Device *this, ID3D12Resource *, unsigned int *, D3D12_PACKED_MIP_INFO *, D3D12_TILE_SHAPE *, unsigned int *, unsigned int, D3D12_SUBRESOURCE_TILING *);
  _LUID (__fastcall *GetAdapterLuid)(ID3D12Device *this);
};

# ID3D11DeviceChild

struct __cppobj ID3D11DeviceChild : IUnknown
{
};

# ID3D11Resource

struct __cppobj ID3D11Resource : ID3D11DeviceChild
{
};

# ID3D11Buffer

struct __cppobj ID3D11Buffer : ID3D11Resource
{
};

# ID3D11Device

struct __cppobj ID3D11Device : IUnknown
{
};

# ID3D11Texture1D

struct __cppobj ID3D11Texture1D : ID3D11Resource
{
};

# ID3D11Texture2D

struct __cppobj ID3D11Texture2D : ID3D11Resource
{
};

# ID3D11Texture3D

struct __cppobj ID3D11Texture3D : ID3D11Resource
{
};

# ID3D11View

struct __cppobj ID3D11View : ID3D11DeviceChild
{
};

# ID3D11ShaderResourceView

struct __cppobj ID3D11ShaderResourceView : ID3D11View
{
};

# ID3D11UnorderedAccessView

struct __cppobj ID3D11UnorderedAccessView : ID3D11View
{
};

# ID3D11RenderTargetView

struct __cppobj ID3D11RenderTargetView : ID3D11View
{
};

# ID3D11DepthStencilView

struct __cppobj ID3D11DepthStencilView : ID3D11View
{
};

# ID3D11InputLayout

struct __cppobj ID3D11InputLayout : ID3D11DeviceChild
{
};

# ID3D11ClassLinkage

struct __cppobj ID3D11ClassLinkage : ID3D11DeviceChild
{
};

# ID3D11ClassInstance

struct __cppobj ID3D11ClassInstance : ID3D11DeviceChild
{
};

# ID3D11VertexShader

struct __cppobj ID3D11VertexShader : ID3D11DeviceChild
{
};

# ID3D11GeometryShader

struct __cppobj ID3D11GeometryShader : ID3D11DeviceChild
{
};

# ID3D11PixelShader

struct __cppobj ID3D11PixelShader : ID3D11DeviceChild
{
};

# ID3D11HullShader

struct __cppobj ID3D11HullShader : ID3D11DeviceChild
{
};

# ID3D11DomainShader

struct __cppobj ID3D11DomainShader : ID3D11DeviceChild
{
};

# ID3D11ComputeShader

struct __cppobj ID3D11ComputeShader : ID3D11DeviceChild
{
};

# ID3D11BlendState

struct __cppobj ID3D11BlendState : ID3D11DeviceChild
{
};

# ID3D11DepthStencilState

struct __cppobj ID3D11DepthStencilState : ID3D11DeviceChild
{
};

# ID3D11RasterizerState

struct __cppobj ID3D11RasterizerState : ID3D11DeviceChild
{
};

# ID3D11SamplerState

struct __cppobj ID3D11SamplerState : ID3D11DeviceChild
{
};

# ID3D11Asynchronous

struct __cppobj ID3D11Asynchronous : ID3D11DeviceChild
{
};

# ID3D11Query

struct __cppobj ID3D11Query : ID3D11Asynchronous
{
};

# ID3D11Predicate

struct __cppobj ID3D11Predicate : ID3D11Query
{
};

# ID3D11Counter

struct __cppobj ID3D11Counter : ID3D11Asynchronous
{
};

# ID3D11DeviceContext

struct __cppobj ID3D11DeviceContext : ID3D11DeviceChild
{
};

# ID3D11Device_vtbl

struct /*VFT*/ ID3D11Device_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *CreateBuffer)(ID3D11Device *this, const D3D11_BUFFER_DESC *, const D3D11_SUBRESOURCE_DATA *, ID3D11Buffer **);
  HRESULT (__fastcall *CreateTexture1D)(ID3D11Device *this, const D3D11_TEXTURE1D_DESC *, const D3D11_SUBRESOURCE_DATA *, ID3D11Texture1D **);
  HRESULT (__fastcall *CreateTexture2D)(ID3D11Device *this, const D3D11_TEXTURE2D_DESC *, const D3D11_SUBRESOURCE_DATA *, ID3D11Texture2D **);
  HRESULT (__fastcall *CreateTexture3D)(ID3D11Device *this, const D3D11_TEXTURE3D_DESC *, const D3D11_SUBRESOURCE_DATA *, ID3D11Texture3D **);
  HRESULT (__fastcall *CreateShaderResourceView)(ID3D11Device *this, ID3D11Resource *, const D3D11_SHADER_RESOURCE_VIEW_DESC *, ID3D11ShaderResourceView **);
  HRESULT (__fastcall *CreateUnorderedAccessView)(ID3D11Device *this, ID3D11Resource *, const D3D11_UNORDERED_ACCESS_VIEW_DESC *, ID3D11UnorderedAccessView **);
  HRESULT (__fastcall *CreateRenderTargetView)(ID3D11Device *this, ID3D11Resource *, const D3D11_RENDER_TARGET_VIEW_DESC *, ID3D11RenderTargetView **);
  HRESULT (__fastcall *CreateDepthStencilView)(ID3D11Device *this, ID3D11Resource *, const D3D11_DEPTH_STENCIL_VIEW_DESC *, ID3D11DepthStencilView **);
  HRESULT (__fastcall *CreateInputLayout)(ID3D11Device *this, const D3D11_INPUT_ELEMENT_DESC *, unsigned int, const void *, unsigned __int64, ID3D11InputLayout **);
  HRESULT (__fastcall *CreateVertexShader)(ID3D11Device *this, const void *, unsigned __int64, ID3D11ClassLinkage *, ID3D11VertexShader **);
  HRESULT (__fastcall *CreateGeometryShader)(ID3D11Device *this, const void *, unsigned __int64, ID3D11ClassLinkage *, ID3D11GeometryShader **);
  HRESULT (__fastcall *CreateGeometryShaderWithStreamOutput)(ID3D11Device *this, const void *, unsigned __int64, const D3D11_SO_DECLARATION_ENTRY *, unsigned int, const unsigned int *, unsigned int, unsigned int, ID3D11ClassLinkage *, ID3D11GeometryShader **);
  HRESULT (__fastcall *CreatePixelShader)(ID3D11Device *this, const void *, unsigned __int64, ID3D11ClassLinkage *, ID3D11PixelShader **);
  HRESULT (__fastcall *CreateHullShader)(ID3D11Device *this, const void *, unsigned __int64, ID3D11ClassLinkage *, ID3D11HullShader **);
  HRESULT (__fastcall *CreateDomainShader)(ID3D11Device *this, const void *, unsigned __int64, ID3D11ClassLinkage *, ID3D11DomainShader **);
  HRESULT (__fastcall *CreateComputeShader)(ID3D11Device *this, const void *, unsigned __int64, ID3D11ClassLinkage *, ID3D11ComputeShader **);
  HRESULT (__fastcall *CreateClassLinkage)(ID3D11Device *this, ID3D11ClassLinkage **);
  HRESULT (__fastcall *CreateBlendState)(ID3D11Device *this, const D3D11_BLEND_DESC *, ID3D11BlendState **);
  HRESULT (__fastcall *CreateDepthStencilState)(ID3D11Device *this, const D3D11_DEPTH_STENCIL_DESC *, ID3D11DepthStencilState **);
  HRESULT (__fastcall *CreateRasterizerState)(ID3D11Device *this, const D3D11_RASTERIZER_DESC *, ID3D11RasterizerState **);
  HRESULT (__fastcall *CreateSamplerState)(ID3D11Device *this, const D3D11_SAMPLER_DESC *, ID3D11SamplerState **);
  HRESULT (__fastcall *CreateQuery)(ID3D11Device *this, const D3D11_QUERY_DESC *, ID3D11Query **);
  HRESULT (__fastcall *CreatePredicate)(ID3D11Device *this, const D3D11_QUERY_DESC *, ID3D11Predicate **);
  HRESULT (__fastcall *CreateCounter)(ID3D11Device *this, const D3D11_COUNTER_DESC *, ID3D11Counter **);
  HRESULT (__fastcall *CreateDeferredContext)(ID3D11Device *this, unsigned int, ID3D11DeviceContext **);
  HRESULT (__fastcall *OpenSharedResource)(ID3D11Device *this, void *, const _GUID *, void **);
  HRESULT (__fastcall *CheckFormatSupport)(ID3D11Device *this, DXGI_FORMAT, unsigned int *);
  HRESULT (__fastcall *CheckMultisampleQualityLevels)(ID3D11Device *this, DXGI_FORMAT, unsigned int, unsigned int *);
  void (__fastcall *CheckCounterInfo)(ID3D11Device *this, D3D11_COUNTER_INFO *);
  HRESULT (__fastcall *CheckCounter)(ID3D11Device *this, const D3D11_COUNTER_DESC *, D3D11_COUNTER_TYPE *, unsigned int *, char *, unsigned int *, char *, unsigned int *, char *, unsigned int *);
  HRESULT (__fastcall *CheckFeatureSupport)(ID3D11Device *this, D3D11_FEATURE, void *, unsigned int);
  HRESULT (__fastcall *GetPrivateData)(ID3D11Device *this, const _GUID *, unsigned int *, void *);
  HRESULT (__fastcall *SetPrivateData)(ID3D11Device *this, const _GUID *, unsigned int, const void *);
  HRESULT (__fastcall *SetPrivateDataInterface)(ID3D11Device *this, const _GUID *, const IUnknown *);
  D3D_FEATURE_LEVEL (__fastcall *GetFeatureLevel)(ID3D11Device *this);
  unsigned int (__fastcall *GetCreationFlags)(ID3D11Device *this);
  HRESULT (__fastcall *GetDeviceRemovedReason)(ID3D11Device *this);
  void (__fastcall *GetImmediateContext)(ID3D11Device *this, ID3D11DeviceContext **);
  HRESULT (__fastcall *SetExceptionMode)(ID3D11Device *this, unsigned int);
  unsigned int (__fastcall *GetExceptionMode)(ID3D11Device *this);
};

# ID3D11DeviceChild_vtbl

struct /*VFT*/ ID3D11DeviceChild_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  void (__fastcall *GetDevice)(ID3D11DeviceChild *this, ID3D11Device **);
  HRESULT (__fastcall *GetPrivateData)(ID3D11DeviceChild *this, const _GUID *, unsigned int *, void *);
  HRESULT (__fastcall *SetPrivateData)(ID3D11DeviceChild *this, const _GUID *, unsigned int, const void *);
  HRESULT (__fastcall *SetPrivateDataInterface)(ID3D11DeviceChild *this, const _GUID *, const IUnknown *);
};

# ID3D11CommandList

struct __cppobj ID3D11CommandList : ID3D11DeviceChild
{
};

# ID3D11CommandList_vtbl

struct /*VFT*/ ID3D11CommandList_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  void (__fastcall *GetDevice)(ID3D11DeviceChild *this, ID3D11Device **);
  HRESULT (__fastcall *GetPrivateData)(ID3D11DeviceChild *this, const _GUID *, unsigned int *, void *);
  HRESULT (__fastcall *SetPrivateData)(ID3D11DeviceChild *this, const _GUID *, unsigned int, const void *);
  HRESULT (__fastcall *SetPrivateDataInterface)(ID3D11DeviceChild *this, const _GUID *, const IUnknown *);
  unsigned int (__fastcall *GetContextFlags)(ID3D11CommandList *this);
};

# ID3D12CommandQueue

struct __cppobj ID3D12CommandQueue : ID3D12Pageable
{
};

# ID3D12CommandQueue_vtbl

struct /*VFT*/ ID3D12CommandQueue_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *GetPrivateData)(ID3D12Object *this, const _GUID *, unsigned int *, void *);
  HRESULT (__fastcall *SetPrivateData)(ID3D12Object *this, const _GUID *, unsigned int, const void *);
  HRESULT (__fastcall *SetPrivateDataInterface)(ID3D12Object *this, const _GUID *, const IUnknown *);
  HRESULT (__fastcall *SetName)(ID3D12Object *this, const wchar_t *);
  HRESULT (__fastcall *GetDevice)(ID3D12DeviceChild *this, const _GUID *, void **);
  void (__fastcall *UpdateTileMappings)(ID3D12CommandQueue *this, ID3D12Resource *, unsigned int, const D3D12_TILED_RESOURCE_COORDINATE *, const D3D12_TILE_REGION_SIZE *, ID3D12Heap *, unsigned int, const D3D12_TILE_RANGE_FLAGS *, const unsigned int *, const unsigned int *, D3D12_TILE_MAPPING_FLAGS);
  void (__fastcall *CopyTileMappings)(ID3D12CommandQueue *this, ID3D12Resource *, const D3D12_TILED_RESOURCE_COORDINATE *, ID3D12Resource *, const D3D12_TILED_RESOURCE_COORDINATE *, const D3D12_TILE_REGION_SIZE *, D3D12_TILE_MAPPING_FLAGS);
  void (__fastcall *ExecuteCommandLists)(ID3D12CommandQueue *this, unsigned int, ID3D12CommandList *const *);
  void (__fastcall *SetMarker)(ID3D12CommandQueue *this, unsigned int, const void *, unsigned int);
  void (__fastcall *BeginEvent)(ID3D12CommandQueue *this, unsigned int, const void *, unsigned int);
  void (__fastcall *EndEvent)(ID3D12CommandQueue *this);
  Signal *Signal;
  HRESULT (__fastcall *Wait)(ID3D12CommandQueue *this, ID3D12Fence *, unsigned __int64);
  HRESULT (__fastcall *GetTimestampFrequency)(ID3D12CommandQueue *this, unsigned __int64 *);
  HRESULT (__fastcall *GetClockCalibration)(ID3D12CommandQueue *this, unsigned __int64 *, unsigned __int64 *);
  D3D12_COMMAND_QUEUE_DESC *(__fastcall *GetDesc)(ID3D12CommandQueue *this, D3D12_COMMAND_QUEUE_DESC *result);
};

# IDXGIAdapter

struct __cppobj IDXGIAdapter : IDXGIObject
{
};

# IDXGIAdapter_vtbl

struct /*VFT*/ IDXGIAdapter_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *SetPrivateData)(IDXGIObject *this, const _GUID *, unsigned int, const void *);
  HRESULT (__fastcall *SetPrivateDataInterface)(IDXGIObject *this, const _GUID *, const IUnknown *);
  HRESULT (__fastcall *GetPrivateData)(IDXGIObject *this, const _GUID *, unsigned int *, void *);
  HRESULT (__fastcall *GetParent)(IDXGIObject *this, const _GUID *, void **);
  HRESULT (__fastcall *EnumOutputs)(IDXGIAdapter *this, unsigned int, IDXGIOutput **);
  HRESULT (__fastcall *GetDesc)(IDXGIAdapter *this, DXGI_ADAPTER_DESC *);
  HRESULT (__fastcall *CheckInterfaceSupport)(IDXGIAdapter *this, const _GUID *, _LARGE_INTEGER *);
};

# IDXGIFactory

struct __cppobj IDXGIFactory : IDXGIObject
{
};

# IDXGIFactory_vtbl

struct /*VFT*/ IDXGIFactory_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *SetPrivateData)(IDXGIObject *this, const _GUID *, unsigned int, const void *);
  HRESULT (__fastcall *SetPrivateDataInterface)(IDXGIObject *this, const _GUID *, const IUnknown *);
  HRESULT (__fastcall *GetPrivateData)(IDXGIObject *this, const _GUID *, unsigned int *, void *);
  HRESULT (__fastcall *GetParent)(IDXGIObject *this, const _GUID *, void **);
  HRESULT (__fastcall *EnumAdapters)(IDXGIFactory *this, unsigned int, IDXGIAdapter **);
  HRESULT (__fastcall *MakeWindowAssociation)(IDXGIFactory *this, HWND__ *, unsigned int);
  HRESULT (__fastcall *GetWindowAssociation)(IDXGIFactory *this, HWND__ **);
  HRESULT (__fastcall *CreateSwapChain)(IDXGIFactory *this, IUnknown *, DXGI_SWAP_CHAIN_DESC *, IDXGISwapChain **);
  HRESULT (__fastcall *CreateSoftwareAdapter)(IDXGIFactory *this, HINSTANCE__ *, IDXGIAdapter **);
};

# IDXGIAdapter1

struct __cppobj IDXGIAdapter1 : IDXGIAdapter
{
};

# IDXGIAdapter1_vtbl

struct /*VFT*/ IDXGIAdapter1_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *SetPrivateData)(IDXGIObject *this, const _GUID *, unsigned int, const void *);
  HRESULT (__fastcall *SetPrivateDataInterface)(IDXGIObject *this, const _GUID *, const IUnknown *);
  HRESULT (__fastcall *GetPrivateData)(IDXGIObject *this, const _GUID *, unsigned int *, void *);
  HRESULT (__fastcall *GetParent)(IDXGIObject *this, const _GUID *, void **);
  HRESULT (__fastcall *EnumOutputs)(IDXGIAdapter *this, unsigned int, IDXGIOutput **);
  HRESULT (__fastcall *GetDesc)(IDXGIAdapter *this, DXGI_ADAPTER_DESC *);
  HRESULT (__fastcall *CheckInterfaceSupport)(IDXGIAdapter *this, const _GUID *, _LARGE_INTEGER *);
  HRESULT (__fastcall *GetDesc1)(IDXGIAdapter1 *this, DXGI_ADAPTER_DESC1 *);
};

# IDXGIFactory1

struct __cppobj IDXGIFactory1 : IDXGIFactory
{
};

# IDXGIFactory1_vtbl

struct /*VFT*/ IDXGIFactory1_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *SetPrivateData)(IDXGIObject *this, const _GUID *, unsigned int, const void *);
  HRESULT (__fastcall *SetPrivateDataInterface)(IDXGIObject *this, const _GUID *, const IUnknown *);
  HRESULT (__fastcall *GetPrivateData)(IDXGIObject *this, const _GUID *, unsigned int *, void *);
  HRESULT (__fastcall *GetParent)(IDXGIObject *this, const _GUID *, void **);
  HRESULT (__fastcall *EnumAdapters)(IDXGIFactory *this, unsigned int, IDXGIAdapter **);
  HRESULT (__fastcall *MakeWindowAssociation)(IDXGIFactory *this, HWND__ *, unsigned int);
  HRESULT (__fastcall *GetWindowAssociation)(IDXGIFactory *this, HWND__ **);
  HRESULT (__fastcall *CreateSwapChain)(IDXGIFactory *this, IUnknown *, DXGI_SWAP_CHAIN_DESC *, IDXGISwapChain **);
  HRESULT (__fastcall *CreateSoftwareAdapter)(IDXGIFactory *this, HINSTANCE__ *, IDXGIAdapter **);
  HRESULT (__fastcall *EnumAdapters1)(IDXGIFactory1 *this, unsigned int, IDXGIAdapter1 **);
  int (__fastcall *IsCurrent)(IDXGIFactory1 *this);
};

# IDXGIFactory2

struct __cppobj IDXGIFactory2 : IDXGIFactory1
{
};

# IDXGIFactory2_vtbl

struct /*VFT*/ IDXGIFactory2_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *SetPrivateData)(IDXGIObject *this, const _GUID *, unsigned int, const void *);
  HRESULT (__fastcall *SetPrivateDataInterface)(IDXGIObject *this, const _GUID *, const IUnknown *);
  HRESULT (__fastcall *GetPrivateData)(IDXGIObject *this, const _GUID *, unsigned int *, void *);
  HRESULT (__fastcall *GetParent)(IDXGIObject *this, const _GUID *, void **);
  HRESULT (__fastcall *EnumAdapters)(IDXGIFactory *this, unsigned int, IDXGIAdapter **);
  HRESULT (__fastcall *MakeWindowAssociation)(IDXGIFactory *this, HWND__ *, unsigned int);
  HRESULT (__fastcall *GetWindowAssociation)(IDXGIFactory *this, HWND__ **);
  HRESULT (__fastcall *CreateSwapChain)(IDXGIFactory *this, IUnknown *, DXGI_SWAP_CHAIN_DESC *, IDXGISwapChain **);
  HRESULT (__fastcall *CreateSoftwareAdapter)(IDXGIFactory *this, HINSTANCE__ *, IDXGIAdapter **);
  HRESULT (__fastcall *EnumAdapters1)(IDXGIFactory1 *this, unsigned int, IDXGIAdapter1 **);
  int (__fastcall *IsCurrent)(IDXGIFactory1 *this);
  int (__fastcall *IsWindowedStereoEnabled)(IDXGIFactory2 *this);
  HRESULT (__fastcall *CreateSwapChainForHwnd)(IDXGIFactory2 *this, IUnknown *, HWND__ *, const DXGI_SWAP_CHAIN_DESC1 *, const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *, IDXGIOutput *, IDXGISwapChain1 **);
  HRESULT (__fastcall *CreateSwapChainForCoreWindow)(IDXGIFactory2 *this, IUnknown *, IUnknown *, const DXGI_SWAP_CHAIN_DESC1 *, IDXGIOutput *, IDXGISwapChain1 **);
  HRESULT (__fastcall *GetSharedResourceAdapterLuid)(IDXGIFactory2 *this, void *, _LUID *);
  HRESULT (__fastcall *RegisterStereoStatusWindow)(IDXGIFactory2 *this, HWND__ *, unsigned int, unsigned int *);
  HRESULT (__fastcall *RegisterStereoStatusEvent)(IDXGIFactory2 *this, void *, unsigned int *);
  void (__fastcall *UnregisterStereoStatus)(IDXGIFactory2 *this, unsigned int);
  HRESULT (__fastcall *RegisterOcclusionStatusWindow)(IDXGIFactory2 *this, HWND__ *, unsigned int, unsigned int *);
  HRESULT (__fastcall *RegisterOcclusionStatusEvent)(IDXGIFactory2 *this, void *, unsigned int *);
  void (__fastcall *UnregisterOcclusionStatus)(IDXGIFactory2 *this, unsigned int);
  HRESULT (__fastcall *CreateSwapChainForComposition)(IDXGIFactory2 *this, IUnknown *, const DXGI_SWAP_CHAIN_DESC1 *, IDXGIOutput *, IDXGISwapChain1 **);
};

# IDXGIFactory3

struct __cppobj IDXGIFactory3 : IDXGIFactory2
{
};

# IDXGIFactory3_vtbl

struct /*VFT*/ IDXGIFactory3_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *SetPrivateData)(IDXGIObject *this, const _GUID *, unsigned int, const void *);
  HRESULT (__fastcall *SetPrivateDataInterface)(IDXGIObject *this, const _GUID *, const IUnknown *);
  HRESULT (__fastcall *GetPrivateData)(IDXGIObject *this, const _GUID *, unsigned int *, void *);
  HRESULT (__fastcall *GetParent)(IDXGIObject *this, const _GUID *, void **);
  HRESULT (__fastcall *EnumAdapters)(IDXGIFactory *this, unsigned int, IDXGIAdapter **);
  HRESULT (__fastcall *MakeWindowAssociation)(IDXGIFactory *this, HWND__ *, unsigned int);
  HRESULT (__fastcall *GetWindowAssociation)(IDXGIFactory *this, HWND__ **);
  HRESULT (__fastcall *CreateSwapChain)(IDXGIFactory *this, IUnknown *, DXGI_SWAP_CHAIN_DESC *, IDXGISwapChain **);
  HRESULT (__fastcall *CreateSoftwareAdapter)(IDXGIFactory *this, HINSTANCE__ *, IDXGIAdapter **);
  HRESULT (__fastcall *EnumAdapters1)(IDXGIFactory1 *this, unsigned int, IDXGIAdapter1 **);
  int (__fastcall *IsCurrent)(IDXGIFactory1 *this);
  int (__fastcall *IsWindowedStereoEnabled)(IDXGIFactory2 *this);
  HRESULT (__fastcall *CreateSwapChainForHwnd)(IDXGIFactory2 *this, IUnknown *, HWND__ *, const DXGI_SWAP_CHAIN_DESC1 *, const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *, IDXGIOutput *, IDXGISwapChain1 **);
  HRESULT (__fastcall *CreateSwapChainForCoreWindow)(IDXGIFactory2 *this, IUnknown *, IUnknown *, const DXGI_SWAP_CHAIN_DESC1 *, IDXGIOutput *, IDXGISwapChain1 **);
  HRESULT (__fastcall *GetSharedResourceAdapterLuid)(IDXGIFactory2 *this, void *, _LUID *);
  HRESULT (__fastcall *RegisterStereoStatusWindow)(IDXGIFactory2 *this, HWND__ *, unsigned int, unsigned int *);
  HRESULT (__fastcall *RegisterStereoStatusEvent)(IDXGIFactory2 *this, void *, unsigned int *);
  void (__fastcall *UnregisterStereoStatus)(IDXGIFactory2 *this, unsigned int);
  HRESULT (__fastcall *RegisterOcclusionStatusWindow)(IDXGIFactory2 *this, HWND__ *, unsigned int, unsigned int *);
  HRESULT (__fastcall *RegisterOcclusionStatusEvent)(IDXGIFactory2 *this, void *, unsigned int *);
  void (__fastcall *UnregisterOcclusionStatus)(IDXGIFactory2 *this, unsigned int);
  HRESULT (__fastcall *CreateSwapChainForComposition)(IDXGIFactory2 *this, IUnknown *, const DXGI_SWAP_CHAIN_DESC1 *, IDXGIOutput *, IDXGISwapChain1 **);
  unsigned int (__fastcall *GetCreationFlags)(IDXGIFactory3 *this);
};

# IDXGIFactory4

struct __cppobj IDXGIFactory4 : IDXGIFactory3
{
};

# IDXGIFactory4_vtbl

struct /*VFT*/ IDXGIFactory4_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *SetPrivateData)(IDXGIObject *this, const _GUID *, unsigned int, const void *);
  HRESULT (__fastcall *SetPrivateDataInterface)(IDXGIObject *this, const _GUID *, const IUnknown *);
  HRESULT (__fastcall *GetPrivateData)(IDXGIObject *this, const _GUID *, unsigned int *, void *);
  HRESULT (__fastcall *GetParent)(IDXGIObject *this, const _GUID *, void **);
  HRESULT (__fastcall *EnumAdapters)(IDXGIFactory *this, unsigned int, IDXGIAdapter **);
  HRESULT (__fastcall *MakeWindowAssociation)(IDXGIFactory *this, HWND__ *, unsigned int);
  HRESULT (__fastcall *GetWindowAssociation)(IDXGIFactory *this, HWND__ **);
  HRESULT (__fastcall *CreateSwapChain)(IDXGIFactory *this, IUnknown *, DXGI_SWAP_CHAIN_DESC *, IDXGISwapChain **);
  HRESULT (__fastcall *CreateSoftwareAdapter)(IDXGIFactory *this, HINSTANCE__ *, IDXGIAdapter **);
  HRESULT (__fastcall *EnumAdapters1)(IDXGIFactory1 *this, unsigned int, IDXGIAdapter1 **);
  int (__fastcall *IsCurrent)(IDXGIFactory1 *this);
  int (__fastcall *IsWindowedStereoEnabled)(IDXGIFactory2 *this);
  HRESULT (__fastcall *CreateSwapChainForHwnd)(IDXGIFactory2 *this, IUnknown *, HWND__ *, const DXGI_SWAP_CHAIN_DESC1 *, const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *, IDXGIOutput *, IDXGISwapChain1 **);
  HRESULT (__fastcall *CreateSwapChainForCoreWindow)(IDXGIFactory2 *this, IUnknown *, IUnknown *, const DXGI_SWAP_CHAIN_DESC1 *, IDXGIOutput *, IDXGISwapChain1 **);
  HRESULT (__fastcall *GetSharedResourceAdapterLuid)(IDXGIFactory2 *this, void *, _LUID *);
  HRESULT (__fastcall *RegisterStereoStatusWindow)(IDXGIFactory2 *this, HWND__ *, unsigned int, unsigned int *);
  HRESULT (__fastcall *RegisterStereoStatusEvent)(IDXGIFactory2 *this, void *, unsigned int *);
  void (__fastcall *UnregisterStereoStatus)(IDXGIFactory2 *this, unsigned int);
  HRESULT (__fastcall *RegisterOcclusionStatusWindow)(IDXGIFactory2 *this, HWND__ *, unsigned int, unsigned int *);
  HRESULT (__fastcall *RegisterOcclusionStatusEvent)(IDXGIFactory2 *this, void *, unsigned int *);
  void (__fastcall *UnregisterOcclusionStatus)(IDXGIFactory2 *this, unsigned int);
  HRESULT (__fastcall *CreateSwapChainForComposition)(IDXGIFactory2 *this, IUnknown *, const DXGI_SWAP_CHAIN_DESC1 *, IDXGIOutput *, IDXGISwapChain1 **);
  unsigned int (__fastcall *GetCreationFlags)(IDXGIFactory3 *this);
  HRESULT (__fastcall *EnumAdapterByLuid)(IDXGIFactory4 *this, _LUID, const _GUID *, void **);
  HRESULT (__fastcall *EnumWarpAdapter)(IDXGIFactory4 *this, const _GUID *, void **);
};

# IDXGIFactory5

struct __cppobj IDXGIFactory5 : IDXGIFactory4
{
};

# IDXGIFactory5_vtbl

struct /*VFT*/ IDXGIFactory5_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *SetPrivateData)(IDXGIObject *this, const _GUID *, unsigned int, const void *);
  HRESULT (__fastcall *SetPrivateDataInterface)(IDXGIObject *this, const _GUID *, const IUnknown *);
  HRESULT (__fastcall *GetPrivateData)(IDXGIObject *this, const _GUID *, unsigned int *, void *);
  HRESULT (__fastcall *GetParent)(IDXGIObject *this, const _GUID *, void **);
  HRESULT (__fastcall *EnumAdapters)(IDXGIFactory *this, unsigned int, IDXGIAdapter **);
  HRESULT (__fastcall *MakeWindowAssociation)(IDXGIFactory *this, HWND__ *, unsigned int);
  HRESULT (__fastcall *GetWindowAssociation)(IDXGIFactory *this, HWND__ **);
  HRESULT (__fastcall *CreateSwapChain)(IDXGIFactory *this, IUnknown *, DXGI_SWAP_CHAIN_DESC *, IDXGISwapChain **);
  HRESULT (__fastcall *CreateSoftwareAdapter)(IDXGIFactory *this, HINSTANCE__ *, IDXGIAdapter **);
  HRESULT (__fastcall *EnumAdapters1)(IDXGIFactory1 *this, unsigned int, IDXGIAdapter1 **);
  int (__fastcall *IsCurrent)(IDXGIFactory1 *this);
  int (__fastcall *IsWindowedStereoEnabled)(IDXGIFactory2 *this);
  HRESULT (__fastcall *CreateSwapChainForHwnd)(IDXGIFactory2 *this, IUnknown *, HWND__ *, const DXGI_SWAP_CHAIN_DESC1 *, const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *, IDXGIOutput *, IDXGISwapChain1 **);
  HRESULT (__fastcall *CreateSwapChainForCoreWindow)(IDXGIFactory2 *this, IUnknown *, IUnknown *, const DXGI_SWAP_CHAIN_DESC1 *, IDXGIOutput *, IDXGISwapChain1 **);
  HRESULT (__fastcall *GetSharedResourceAdapterLuid)(IDXGIFactory2 *this, void *, _LUID *);
  HRESULT (__fastcall *RegisterStereoStatusWindow)(IDXGIFactory2 *this, HWND__ *, unsigned int, unsigned int *);
  HRESULT (__fastcall *RegisterStereoStatusEvent)(IDXGIFactory2 *this, void *, unsigned int *);
  void (__fastcall *UnregisterStereoStatus)(IDXGIFactory2 *this, unsigned int);
  HRESULT (__fastcall *RegisterOcclusionStatusWindow)(IDXGIFactory2 *this, HWND__ *, unsigned int, unsigned int *);
  HRESULT (__fastcall *RegisterOcclusionStatusEvent)(IDXGIFactory2 *this, void *, unsigned int *);
  void (__fastcall *UnregisterOcclusionStatus)(IDXGIFactory2 *this, unsigned int);
  HRESULT (__fastcall *CreateSwapChainForComposition)(IDXGIFactory2 *this, IUnknown *, const DXGI_SWAP_CHAIN_DESC1 *, IDXGIOutput *, IDXGISwapChain1 **);
  unsigned int (__fastcall *GetCreationFlags)(IDXGIFactory3 *this);
  HRESULT (__fastcall *EnumAdapterByLuid)(IDXGIFactory4 *this, _LUID, const _GUID *, void **);
  HRESULT (__fastcall *EnumWarpAdapter)(IDXGIFactory4 *this, const _GUID *, void **);
  HRESULT (__fastcall *CheckFeatureSupport)(IDXGIFactory5 *this, DXGI_FEATURE, void *, unsigned int);
};

# IDXGIAdapter2

struct __cppobj IDXGIAdapter2 : IDXGIAdapter1
{
};

# IDXGIAdapter2_vtbl

struct /*VFT*/ IDXGIAdapter2_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *SetPrivateData)(IDXGIObject *this, const _GUID *, unsigned int, const void *);
  HRESULT (__fastcall *SetPrivateDataInterface)(IDXGIObject *this, const _GUID *, const IUnknown *);
  HRESULT (__fastcall *GetPrivateData)(IDXGIObject *this, const _GUID *, unsigned int *, void *);
  HRESULT (__fastcall *GetParent)(IDXGIObject *this, const _GUID *, void **);
  HRESULT (__fastcall *EnumOutputs)(IDXGIAdapter *this, unsigned int, IDXGIOutput **);
  HRESULT (__fastcall *GetDesc)(IDXGIAdapter *this, DXGI_ADAPTER_DESC *);
  HRESULT (__fastcall *CheckInterfaceSupport)(IDXGIAdapter *this, const _GUID *, _LARGE_INTEGER *);
  HRESULT (__fastcall *GetDesc1)(IDXGIAdapter1 *this, DXGI_ADAPTER_DESC1 *);
  HRESULT (__fastcall *GetDesc2)(IDXGIAdapter2 *this, DXGI_ADAPTER_DESC2 *);
};

# IDXGIAdapter3

struct __cppobj IDXGIAdapter3 : IDXGIAdapter2
{
};

# IDXGIAdapter3_vtbl

struct /*VFT*/ IDXGIAdapter3_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *SetPrivateData)(IDXGIObject *this, const _GUID *, unsigned int, const void *);
  HRESULT (__fastcall *SetPrivateDataInterface)(IDXGIObject *this, const _GUID *, const IUnknown *);
  HRESULT (__fastcall *GetPrivateData)(IDXGIObject *this, const _GUID *, unsigned int *, void *);
  HRESULT (__fastcall *GetParent)(IDXGIObject *this, const _GUID *, void **);
  HRESULT (__fastcall *EnumOutputs)(IDXGIAdapter *this, unsigned int, IDXGIOutput **);
  HRESULT (__fastcall *GetDesc)(IDXGIAdapter *this, DXGI_ADAPTER_DESC *);
  HRESULT (__fastcall *CheckInterfaceSupport)(IDXGIAdapter *this, const _GUID *, _LARGE_INTEGER *);
  HRESULT (__fastcall *GetDesc1)(IDXGIAdapter1 *this, DXGI_ADAPTER_DESC1 *);
  HRESULT (__fastcall *GetDesc2)(IDXGIAdapter2 *this, DXGI_ADAPTER_DESC2 *);
  HRESULT (__fastcall *RegisterHardwareContentProtectionTeardownStatusEvent)(IDXGIAdapter3 *this, void *, unsigned int *);
  void (__fastcall *UnregisterHardwareContentProtectionTeardownStatus)(IDXGIAdapter3 *this, unsigned int);
  HRESULT (__fastcall *QueryVideoMemoryInfo)(IDXGIAdapter3 *this, unsigned int, DXGI_MEMORY_SEGMENT_GROUP, DXGI_QUERY_VIDEO_MEMORY_INFO *);
  HRESULT (__fastcall *SetVideoMemoryReservation)(IDXGIAdapter3 *this, unsigned int, DXGI_MEMORY_SEGMENT_GROUP, unsigned __int64);
  HRESULT (__fastcall *RegisterVideoMemoryBudgetChangeNotificationEvent)(IDXGIAdapter3 *this, void *, unsigned int *);
  void (__fastcall *UnregisterVideoMemoryBudgetChangeNotification)(IDXGIAdapter3 *this, unsigned int);
};

# ID3D12InfoQueue

struct __cppobj ID3D12InfoQueue : IUnknown
{
};

# ID3D12InfoQueue_vtbl

struct /*VFT*/ ID3D12InfoQueue_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *SetMessageCountLimit)(ID3D12InfoQueue *this, unsigned __int64);
  void (__fastcall *ClearStoredMessages)(ID3D12InfoQueue *this);
  HRESULT (__fastcall *GetMessageA)(ID3D12InfoQueue *this, unsigned __int64, D3D12_MESSAGE *, unsigned __int64 *);
  unsigned __int64 (__fastcall *GetNumMessagesAllowedByStorageFilter)(ID3D12InfoQueue *this);
  unsigned __int64 (__fastcall *GetNumMessagesDeniedByStorageFilter)(ID3D12InfoQueue *this);
  unsigned __int64 (__fastcall *GetNumStoredMessages)(ID3D12InfoQueue *this);
  unsigned __int64 (__fastcall *GetNumStoredMessagesAllowedByRetrievalFilter)(ID3D12InfoQueue *this);
  unsigned __int64 (__fastcall *GetNumMessagesDiscardedByMessageCountLimit)(ID3D12InfoQueue *this);
  unsigned __int64 (__fastcall *GetMessageCountLimit)(ID3D12InfoQueue *this);
  HRESULT (__fastcall *AddStorageFilterEntries)(ID3D12InfoQueue *this, D3D12_INFO_QUEUE_FILTER *);
  HRESULT (__fastcall *GetStorageFilter)(ID3D12InfoQueue *this, D3D12_INFO_QUEUE_FILTER *, unsigned __int64 *);
  void (__fastcall *ClearStorageFilter)(ID3D12InfoQueue *this);
  HRESULT (__fastcall *PushEmptyStorageFilter)(ID3D12InfoQueue *this);
  HRESULT (__fastcall *PushCopyOfStorageFilter)(ID3D12InfoQueue *this);
  HRESULT (__fastcall *PushStorageFilter)(ID3D12InfoQueue *this, D3D12_INFO_QUEUE_FILTER *);
  void (__fastcall *PopStorageFilter)(ID3D12InfoQueue *this);
  unsigned int (__fastcall *GetStorageFilterStackSize)(ID3D12InfoQueue *this);
  HRESULT (__fastcall *AddRetrievalFilterEntries)(ID3D12InfoQueue *this, D3D12_INFO_QUEUE_FILTER *);
  HRESULT (__fastcall *GetRetrievalFilter)(ID3D12InfoQueue *this, D3D12_INFO_QUEUE_FILTER *, unsigned __int64 *);
  void (__fastcall *ClearRetrievalFilter)(ID3D12InfoQueue *this);
  HRESULT (__fastcall *PushEmptyRetrievalFilter)(ID3D12InfoQueue *this);
  HRESULT (__fastcall *PushCopyOfRetrievalFilter)(ID3D12InfoQueue *this);
  HRESULT (__fastcall *PushRetrievalFilter)(ID3D12InfoQueue *this, D3D12_INFO_QUEUE_FILTER *);
  void (__fastcall *PopRetrievalFilter)(ID3D12InfoQueue *this);
  unsigned int (__fastcall *GetRetrievalFilterStackSize)(ID3D12InfoQueue *this);
  HRESULT (__fastcall *AddMessage)(ID3D12InfoQueue *this, D3D12_MESSAGE_CATEGORY, D3D12_MESSAGE_SEVERITY, D3D12_MESSAGE_ID, const char *);
  HRESULT (__fastcall *AddApplicationMessage)(ID3D12InfoQueue *this, D3D12_MESSAGE_SEVERITY, const char *);
  HRESULT (__fastcall *SetBreakOnCategory)(ID3D12InfoQueue *this, D3D12_MESSAGE_CATEGORY, int);
  HRESULT (__fastcall *SetBreakOnSeverity)(ID3D12InfoQueue *this, D3D12_MESSAGE_SEVERITY, int);
  HRESULT (__fastcall *SetBreakOnID)(ID3D12InfoQueue *this, D3D12_MESSAGE_ID, int);
  int (__fastcall *GetBreakOnCategory)(ID3D12InfoQueue *this, D3D12_MESSAGE_CATEGORY);
  int (__fastcall *GetBreakOnSeverity)(ID3D12InfoQueue *this, D3D12_MESSAGE_SEVERITY);
  int (__fastcall *GetBreakOnID)(ID3D12InfoQueue *this, D3D12_MESSAGE_ID);
  void (__fastcall *SetMuteDebugOutput)(ID3D12InfoQueue *this, int);
  int (__fastcall *GetMuteDebugOutput)(ID3D12InfoQueue *this);
};

# ID3DX12PipelineParserCallbacks

struct __cppobj ID3DX12PipelineParserCallbacks
{
  ID3DX12PipelineParserCallbacks_vtbl *__vftable /*VFT*/;
};

# ID3DX12PipelineParserCallbacks_vtbl

struct /*VFT*/ ID3DX12PipelineParserCallbacks_vtbl
{
  void (__fastcall *FlagsCb)(ID3DX12PipelineParserCallbacks *this, D3D12_PIPELINE_STATE_FLAGS);
  void (__fastcall *NodeMaskCb)(ID3DX12PipelineParserCallbacks *this, unsigned int);
  void (__fastcall *RootSignatureCb)(ID3DX12PipelineParserCallbacks *this, ID3D12RootSignature *);
  void (__fastcall *InputLayoutCb)(ID3DX12PipelineParserCallbacks *this, const D3D12_INPUT_LAYOUT_DESC *);
  void (__fastcall *IBStripCutValueCb)(ID3DX12PipelineParserCallbacks *this, D3D12_INDEX_BUFFER_STRIP_CUT_VALUE);
  void (__fastcall *PrimitiveTopologyTypeCb)(ID3DX12PipelineParserCallbacks *this, D3D12_PRIMITIVE_TOPOLOGY_TYPE);
  void (__fastcall *VSCb)(ID3DX12PipelineParserCallbacks *this, const D3D12_SHADER_BYTECODE *);
  void (__fastcall *GSCb)(ID3DX12PipelineParserCallbacks *this, const D3D12_SHADER_BYTECODE *);
  void (__fastcall *StreamOutputCb)(ID3DX12PipelineParserCallbacks *this, const D3D12_STREAM_OUTPUT_DESC *);
  void (__fastcall *HSCb)(ID3DX12PipelineParserCallbacks *this, const D3D12_SHADER_BYTECODE *);
  void (__fastcall *DSCb)(ID3DX12PipelineParserCallbacks *this, const D3D12_SHADER_BYTECODE *);
  void (__fastcall *PSCb)(ID3DX12PipelineParserCallbacks *this, const D3D12_SHADER_BYTECODE *);
  void (__fastcall *CSCb)(ID3DX12PipelineParserCallbacks *this, const D3D12_SHADER_BYTECODE *);
  void (__fastcall *BlendStateCb)(ID3DX12PipelineParserCallbacks *this, const D3D12_BLEND_DESC *);
  void (__fastcall *DepthStencilStateCb)(ID3DX12PipelineParserCallbacks *this, const D3D12_DEPTH_STENCIL_DESC *);
  void (__fastcall *DepthStencilState1Cb)(ID3DX12PipelineParserCallbacks *this, const D3D12_DEPTH_STENCIL_DESC1 *);
  void (__fastcall *DSVFormatCb)(ID3DX12PipelineParserCallbacks *this, DXGI_FORMAT);
  void (__fastcall *RasterizerStateCb)(ID3DX12PipelineParserCallbacks *this, const D3D12_RASTERIZER_DESC *);
  void (__fastcall *RTVFormatsCb)(ID3DX12PipelineParserCallbacks *this, const D3D12_RT_FORMAT_ARRAY *);
  void (__fastcall *SampleDescCb)(ID3DX12PipelineParserCallbacks *this, const DXGI_SAMPLE_DESC *);
  void (__fastcall *SampleMaskCb)(ID3DX12PipelineParserCallbacks *this, unsigned int);
  void (__fastcall *ViewInstancingCb)(ID3DX12PipelineParserCallbacks *this, const D3D12_VIEW_INSTANCING_DESC *);
  void (__fastcall *CachedPSOCb)(ID3DX12PipelineParserCallbacks *this, const D3D12_CACHED_PIPELINE_STATE *);
  void (__fastcall *ErrorBadInputParameter)(ID3DX12PipelineParserCallbacks *this, unsigned int);
  void (__fastcall *ErrorDuplicateSubobject)(ID3DX12PipelineParserCallbacks *this, D3D12_PIPELINE_STATE_SUBOBJECT_TYPE);
  void (__fastcall *ErrorUnknownSubobject)(ID3DX12PipelineParserCallbacks *this, unsigned int);
};

# IDXGIOutput1

struct __cppobj IDXGIOutput1 : IDXGIOutput
{
};

# IDXGIResource

struct __cppobj IDXGIResource : IDXGIDeviceSubObject
{
};

# IDXGIResource_vtbl

struct /*VFT*/ IDXGIResource_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *SetPrivateData)(IDXGIObject *this, const _GUID *, unsigned int, const void *);
  HRESULT (__fastcall *SetPrivateDataInterface)(IDXGIObject *this, const _GUID *, const IUnknown *);
  HRESULT (__fastcall *GetPrivateData)(IDXGIObject *this, const _GUID *, unsigned int *, void *);
  HRESULT (__fastcall *GetParent)(IDXGIObject *this, const _GUID *, void **);
  HRESULT (__fastcall *GetDevice)(IDXGIDeviceSubObject *this, const _GUID *, void **);
  HRESULT (__fastcall *GetSharedHandle)(IDXGIResource *this, void **);
  HRESULT (__fastcall *GetUsage)(IDXGIResource *this, unsigned int *);
  HRESULT (__fastcall *SetEvictionPriority)(IDXGIResource *this, unsigned int);
  HRESULT (__fastcall *GetEvictionPriority)(IDXGIResource *this, unsigned int *);
};

# IDXGIOutputDuplication

struct __cppobj IDXGIOutputDuplication : IDXGIObject
{
};

# IDXGIOutputDuplication_vtbl

struct /*VFT*/ IDXGIOutputDuplication_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *SetPrivateData)(IDXGIObject *this, const _GUID *, unsigned int, const void *);
  HRESULT (__fastcall *SetPrivateDataInterface)(IDXGIObject *this, const _GUID *, const IUnknown *);
  HRESULT (__fastcall *GetPrivateData)(IDXGIObject *this, const _GUID *, unsigned int *, void *);
  HRESULT (__fastcall *GetParent)(IDXGIObject *this, const _GUID *, void **);
  void (__fastcall *GetDesc)(IDXGIOutputDuplication *this, DXGI_OUTDUPL_DESC *);
  HRESULT (__fastcall *AcquireNextFrame)(IDXGIOutputDuplication *this, unsigned int, DXGI_OUTDUPL_FRAME_INFO *, IDXGIResource **);
  HRESULT (__fastcall *GetFrameDirtyRects)(IDXGIOutputDuplication *this, unsigned int, tagRECT *, unsigned int *);
  HRESULT (__fastcall *GetFrameMoveRects)(IDXGIOutputDuplication *this, unsigned int, DXGI_OUTDUPL_MOVE_RECT *, unsigned int *);
  HRESULT (__fastcall *GetFramePointerShape)(IDXGIOutputDuplication *this, unsigned int, void *, unsigned int *, DXGI_OUTDUPL_POINTER_SHAPE_INFO *);
  HRESULT (__fastcall *MapDesktopSurface)(IDXGIOutputDuplication *this, DXGI_MAPPED_RECT *);
  HRESULT (__fastcall *UnMapDesktopSurface)(IDXGIOutputDuplication *this);
  HRESULT (__fastcall *ReleaseFrame)(IDXGIOutputDuplication *this);
};

# IDXGIOutput1_vtbl

struct /*VFT*/ IDXGIOutput1_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *SetPrivateData)(IDXGIObject *this, const _GUID *, unsigned int, const void *);
  HRESULT (__fastcall *SetPrivateDataInterface)(IDXGIObject *this, const _GUID *, const IUnknown *);
  HRESULT (__fastcall *GetPrivateData)(IDXGIObject *this, const _GUID *, unsigned int *, void *);
  HRESULT (__fastcall *GetParent)(IDXGIObject *this, const _GUID *, void **);
  HRESULT (__fastcall *GetDesc)(IDXGIOutput *this, DXGI_OUTPUT_DESC *);
  HRESULT (__fastcall *GetDisplayModeList)(IDXGIOutput *this, DXGI_FORMAT, unsigned int, unsigned int *, DXGI_MODE_DESC *);
  HRESULT (__fastcall *FindClosestMatchingMode)(IDXGIOutput *this, const DXGI_MODE_DESC *, DXGI_MODE_DESC *, IUnknown *);
  HRESULT (__fastcall *WaitForVBlank)(IDXGIOutput *this);
  HRESULT (__fastcall *TakeOwnership)(IDXGIOutput *this, IUnknown *, int);
  void (__fastcall *ReleaseOwnership)(IDXGIOutput *this);
  HRESULT (__fastcall *GetGammaControlCapabilities)(IDXGIOutput *this, DXGI_GAMMA_CONTROL_CAPABILITIES *);
  HRESULT (__fastcall *SetGammaControl)(IDXGIOutput *this, const DXGI_GAMMA_CONTROL *);
  HRESULT (__fastcall *GetGammaControl)(IDXGIOutput *this, DXGI_GAMMA_CONTROL *);
  HRESULT (__fastcall *SetDisplaySurface)(IDXGIOutput *this, IDXGISurface *);
  HRESULT (__fastcall *GetDisplaySurfaceData)(IDXGIOutput *this, IDXGISurface *);
  HRESULT (__fastcall *GetFrameStatistics)(IDXGIOutput *this, DXGI_FRAME_STATISTICS *);
  HRESULT (__fastcall *GetDisplayModeList1)(IDXGIOutput1 *this, DXGI_FORMAT, unsigned int, unsigned int *, DXGI_MODE_DESC1 *);
  HRESULT (__fastcall *FindClosestMatchingMode1)(IDXGIOutput1 *this, const DXGI_MODE_DESC1 *, DXGI_MODE_DESC1 *, IUnknown *);
  HRESULT (__fastcall *GetDisplaySurfaceData1)(IDXGIOutput1 *this, IDXGIResource *);
  HRESULT (__fastcall *DuplicateOutput)(IDXGIOutput1 *this, IUnknown *, IDXGIOutputDuplication **);
};

# IDXGIOutput2

struct __cppobj IDXGIOutput2 : IDXGIOutput1
{
};

# IDXGIOutput2_vtbl

struct /*VFT*/ IDXGIOutput2_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *SetPrivateData)(IDXGIObject *this, const _GUID *, unsigned int, const void *);
  HRESULT (__fastcall *SetPrivateDataInterface)(IDXGIObject *this, const _GUID *, const IUnknown *);
  HRESULT (__fastcall *GetPrivateData)(IDXGIObject *this, const _GUID *, unsigned int *, void *);
  HRESULT (__fastcall *GetParent)(IDXGIObject *this, const _GUID *, void **);
  HRESULT (__fastcall *GetDesc)(IDXGIOutput *this, DXGI_OUTPUT_DESC *);
  HRESULT (__fastcall *GetDisplayModeList)(IDXGIOutput *this, DXGI_FORMAT, unsigned int, unsigned int *, DXGI_MODE_DESC *);
  HRESULT (__fastcall *FindClosestMatchingMode)(IDXGIOutput *this, const DXGI_MODE_DESC *, DXGI_MODE_DESC *, IUnknown *);
  HRESULT (__fastcall *WaitForVBlank)(IDXGIOutput *this);
  HRESULT (__fastcall *TakeOwnership)(IDXGIOutput *this, IUnknown *, int);
  void (__fastcall *ReleaseOwnership)(IDXGIOutput *this);
  HRESULT (__fastcall *GetGammaControlCapabilities)(IDXGIOutput *this, DXGI_GAMMA_CONTROL_CAPABILITIES *);
  HRESULT (__fastcall *SetGammaControl)(IDXGIOutput *this, const DXGI_GAMMA_CONTROL *);
  HRESULT (__fastcall *GetGammaControl)(IDXGIOutput *this, DXGI_GAMMA_CONTROL *);
  HRESULT (__fastcall *SetDisplaySurface)(IDXGIOutput *this, IDXGISurface *);
  HRESULT (__fastcall *GetDisplaySurfaceData)(IDXGIOutput *this, IDXGISurface *);
  HRESULT (__fastcall *GetFrameStatistics)(IDXGIOutput *this, DXGI_FRAME_STATISTICS *);
  HRESULT (__fastcall *GetDisplayModeList1)(IDXGIOutput1 *this, DXGI_FORMAT, unsigned int, unsigned int *, DXGI_MODE_DESC1 *);
  HRESULT (__fastcall *FindClosestMatchingMode1)(IDXGIOutput1 *this, const DXGI_MODE_DESC1 *, DXGI_MODE_DESC1 *, IUnknown *);
  HRESULT (__fastcall *GetDisplaySurfaceData1)(IDXGIOutput1 *this, IDXGIResource *);
  HRESULT (__fastcall *DuplicateOutput)(IDXGIOutput1 *this, IUnknown *, IDXGIOutputDuplication **);
  int (__fastcall *SupportsOverlays)(IDXGIOutput2 *this);
};

# IDXGIOutput3

struct __cppobj IDXGIOutput3 : IDXGIOutput2
{
};

# IDXGIOutput3_vtbl

struct /*VFT*/ IDXGIOutput3_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *SetPrivateData)(IDXGIObject *this, const _GUID *, unsigned int, const void *);
  HRESULT (__fastcall *SetPrivateDataInterface)(IDXGIObject *this, const _GUID *, const IUnknown *);
  HRESULT (__fastcall *GetPrivateData)(IDXGIObject *this, const _GUID *, unsigned int *, void *);
  HRESULT (__fastcall *GetParent)(IDXGIObject *this, const _GUID *, void **);
  HRESULT (__fastcall *GetDesc)(IDXGIOutput *this, DXGI_OUTPUT_DESC *);
  HRESULT (__fastcall *GetDisplayModeList)(IDXGIOutput *this, DXGI_FORMAT, unsigned int, unsigned int *, DXGI_MODE_DESC *);
  HRESULT (__fastcall *FindClosestMatchingMode)(IDXGIOutput *this, const DXGI_MODE_DESC *, DXGI_MODE_DESC *, IUnknown *);
  HRESULT (__fastcall *WaitForVBlank)(IDXGIOutput *this);
  HRESULT (__fastcall *TakeOwnership)(IDXGIOutput *this, IUnknown *, int);
  void (__fastcall *ReleaseOwnership)(IDXGIOutput *this);
  HRESULT (__fastcall *GetGammaControlCapabilities)(IDXGIOutput *this, DXGI_GAMMA_CONTROL_CAPABILITIES *);
  HRESULT (__fastcall *SetGammaControl)(IDXGIOutput *this, const DXGI_GAMMA_CONTROL *);
  HRESULT (__fastcall *GetGammaControl)(IDXGIOutput *this, DXGI_GAMMA_CONTROL *);
  HRESULT (__fastcall *SetDisplaySurface)(IDXGIOutput *this, IDXGISurface *);
  HRESULT (__fastcall *GetDisplaySurfaceData)(IDXGIOutput *this, IDXGISurface *);
  HRESULT (__fastcall *GetFrameStatistics)(IDXGIOutput *this, DXGI_FRAME_STATISTICS *);
  HRESULT (__fastcall *GetDisplayModeList1)(IDXGIOutput1 *this, DXGI_FORMAT, unsigned int, unsigned int *, DXGI_MODE_DESC1 *);
  HRESULT (__fastcall *FindClosestMatchingMode1)(IDXGIOutput1 *this, const DXGI_MODE_DESC1 *, DXGI_MODE_DESC1 *, IUnknown *);
  HRESULT (__fastcall *GetDisplaySurfaceData1)(IDXGIOutput1 *this, IDXGIResource *);
  HRESULT (__fastcall *DuplicateOutput)(IDXGIOutput1 *this, IUnknown *, IDXGIOutputDuplication **);
  int (__fastcall *SupportsOverlays)(IDXGIOutput2 *this);
  HRESULT (__fastcall *CheckOverlaySupport)(IDXGIOutput3 *this, DXGI_FORMAT, IUnknown *, unsigned int *);
};

# IDXGIDevice

struct __cppobj IDXGIDevice : IDXGIObject
{
};

# IDXGIDevice_vtbl

struct /*VFT*/ IDXGIDevice_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *SetPrivateData)(IDXGIObject *this, const _GUID *, unsigned int, const void *);
  HRESULT (__fastcall *SetPrivateDataInterface)(IDXGIObject *this, const _GUID *, const IUnknown *);
  HRESULT (__fastcall *GetPrivateData)(IDXGIObject *this, const _GUID *, unsigned int *, void *);
  HRESULT (__fastcall *GetParent)(IDXGIObject *this, const _GUID *, void **);
  HRESULT (__fastcall *GetAdapter)(IDXGIDevice *this, IDXGIAdapter **);
  HRESULT (__fastcall *CreateSurface)(IDXGIDevice *this, const DXGI_SURFACE_DESC *, unsigned int, unsigned int, const DXGI_SHARED_RESOURCE *, IDXGISurface **);
  HRESULT (__fastcall *QueryResourceResidency)(IDXGIDevice *this, IUnknown *const *, DXGI_RESIDENCY *, unsigned int);
  HRESULT (__fastcall *SetGPUThreadPriority)(IDXGIDevice *this, int);
  HRESULT (__fastcall *GetGPUThreadPriority)(IDXGIDevice *this, int *);
};

# IDXGIDevice1

struct __cppobj IDXGIDevice1 : IDXGIDevice
{
};

# IDXGIDevice1_vtbl

struct /*VFT*/ IDXGIDevice1_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *SetPrivateData)(IDXGIObject *this, const _GUID *, unsigned int, const void *);
  HRESULT (__fastcall *SetPrivateDataInterface)(IDXGIObject *this, const _GUID *, const IUnknown *);
  HRESULT (__fastcall *GetPrivateData)(IDXGIObject *this, const _GUID *, unsigned int *, void *);
  HRESULT (__fastcall *GetParent)(IDXGIObject *this, const _GUID *, void **);
  HRESULT (__fastcall *GetAdapter)(IDXGIDevice *this, IDXGIAdapter **);
  HRESULT (__fastcall *CreateSurface)(IDXGIDevice *this, const DXGI_SURFACE_DESC *, unsigned int, unsigned int, const DXGI_SHARED_RESOURCE *, IDXGISurface **);
  HRESULT (__fastcall *QueryResourceResidency)(IDXGIDevice *this, IUnknown *const *, DXGI_RESIDENCY *, unsigned int);
  HRESULT (__fastcall *SetGPUThreadPriority)(IDXGIDevice *this, int);
  HRESULT (__fastcall *GetGPUThreadPriority)(IDXGIDevice *this, int *);
  HRESULT (__fastcall *SetMaximumFrameLatency)(IDXGIDevice1 *this, unsigned int);
  HRESULT (__fastcall *GetMaximumFrameLatency)(IDXGIDevice1 *this, unsigned int *);
};

# IDXGIDevice2

struct __cppobj IDXGIDevice2 : IDXGIDevice1
{
};

# IDXGIDevice2_vtbl

struct /*VFT*/ IDXGIDevice2_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *SetPrivateData)(IDXGIObject *this, const _GUID *, unsigned int, const void *);
  HRESULT (__fastcall *SetPrivateDataInterface)(IDXGIObject *this, const _GUID *, const IUnknown *);
  HRESULT (__fastcall *GetPrivateData)(IDXGIObject *this, const _GUID *, unsigned int *, void *);
  HRESULT (__fastcall *GetParent)(IDXGIObject *this, const _GUID *, void **);
  HRESULT (__fastcall *GetAdapter)(IDXGIDevice *this, IDXGIAdapter **);
  HRESULT (__fastcall *CreateSurface)(IDXGIDevice *this, const DXGI_SURFACE_DESC *, unsigned int, unsigned int, const DXGI_SHARED_RESOURCE *, IDXGISurface **);
  HRESULT (__fastcall *QueryResourceResidency)(IDXGIDevice *this, IUnknown *const *, DXGI_RESIDENCY *, unsigned int);
  HRESULT (__fastcall *SetGPUThreadPriority)(IDXGIDevice *this, int);
  HRESULT (__fastcall *GetGPUThreadPriority)(IDXGIDevice *this, int *);
  HRESULT (__fastcall *SetMaximumFrameLatency)(IDXGIDevice1 *this, unsigned int);
  HRESULT (__fastcall *GetMaximumFrameLatency)(IDXGIDevice1 *this, unsigned int *);
  HRESULT (__fastcall *OfferResources)(IDXGIDevice2 *this, unsigned int, IDXGIResource *const *, _DXGI_OFFER_RESOURCE_PRIORITY);
  HRESULT (__fastcall *ReclaimResources)(IDXGIDevice2 *this, unsigned int, IDXGIResource *const *, int *);
  HRESULT (__fastcall *EnqueueSetEvent)(IDXGIDevice2 *this, void *);
};

# IDXGIDevice3

struct __cppobj IDXGIDevice3 : IDXGIDevice2
{
};

# IDXGIDevice3_vtbl

struct /*VFT*/ IDXGIDevice3_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *SetPrivateData)(IDXGIObject *this, const _GUID *, unsigned int, const void *);
  HRESULT (__fastcall *SetPrivateDataInterface)(IDXGIObject *this, const _GUID *, const IUnknown *);
  HRESULT (__fastcall *GetPrivateData)(IDXGIObject *this, const _GUID *, unsigned int *, void *);
  HRESULT (__fastcall *GetParent)(IDXGIObject *this, const _GUID *, void **);
  HRESULT (__fastcall *GetAdapter)(IDXGIDevice *this, IDXGIAdapter **);
  HRESULT (__fastcall *CreateSurface)(IDXGIDevice *this, const DXGI_SURFACE_DESC *, unsigned int, unsigned int, const DXGI_SHARED_RESOURCE *, IDXGISurface **);
  HRESULT (__fastcall *QueryResourceResidency)(IDXGIDevice *this, IUnknown *const *, DXGI_RESIDENCY *, unsigned int);
  HRESULT (__fastcall *SetGPUThreadPriority)(IDXGIDevice *this, int);
  HRESULT (__fastcall *GetGPUThreadPriority)(IDXGIDevice *this, int *);
  HRESULT (__fastcall *SetMaximumFrameLatency)(IDXGIDevice1 *this, unsigned int);
  HRESULT (__fastcall *GetMaximumFrameLatency)(IDXGIDevice1 *this, unsigned int *);
  HRESULT (__fastcall *OfferResources)(IDXGIDevice2 *this, unsigned int, IDXGIResource *const *, _DXGI_OFFER_RESOURCE_PRIORITY);
  HRESULT (__fastcall *ReclaimResources)(IDXGIDevice2 *this, unsigned int, IDXGIResource *const *, int *);
  HRESULT (__fastcall *EnqueueSetEvent)(IDXGIDevice2 *this, void *);
  void (__fastcall *Trim)(IDXGIDevice3 *this);
};

# IDXGIOutput4

struct __cppobj IDXGIOutput4 : IDXGIOutput3
{
};

# IDXGIOutput4_vtbl

struct /*VFT*/ IDXGIOutput4_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *SetPrivateData)(IDXGIObject *this, const _GUID *, unsigned int, const void *);
  HRESULT (__fastcall *SetPrivateDataInterface)(IDXGIObject *this, const _GUID *, const IUnknown *);
  HRESULT (__fastcall *GetPrivateData)(IDXGIObject *this, const _GUID *, unsigned int *, void *);
  HRESULT (__fastcall *GetParent)(IDXGIObject *this, const _GUID *, void **);
  HRESULT (__fastcall *GetDesc)(IDXGIOutput *this, DXGI_OUTPUT_DESC *);
  HRESULT (__fastcall *GetDisplayModeList)(IDXGIOutput *this, DXGI_FORMAT, unsigned int, unsigned int *, DXGI_MODE_DESC *);
  HRESULT (__fastcall *FindClosestMatchingMode)(IDXGIOutput *this, const DXGI_MODE_DESC *, DXGI_MODE_DESC *, IUnknown *);
  HRESULT (__fastcall *WaitForVBlank)(IDXGIOutput *this);
  HRESULT (__fastcall *TakeOwnership)(IDXGIOutput *this, IUnknown *, int);
  void (__fastcall *ReleaseOwnership)(IDXGIOutput *this);
  HRESULT (__fastcall *GetGammaControlCapabilities)(IDXGIOutput *this, DXGI_GAMMA_CONTROL_CAPABILITIES *);
  HRESULT (__fastcall *SetGammaControl)(IDXGIOutput *this, const DXGI_GAMMA_CONTROL *);
  HRESULT (__fastcall *GetGammaControl)(IDXGIOutput *this, DXGI_GAMMA_CONTROL *);
  HRESULT (__fastcall *SetDisplaySurface)(IDXGIOutput *this, IDXGISurface *);
  HRESULT (__fastcall *GetDisplaySurfaceData)(IDXGIOutput *this, IDXGISurface *);
  HRESULT (__fastcall *GetFrameStatistics)(IDXGIOutput *this, DXGI_FRAME_STATISTICS *);
  HRESULT (__fastcall *GetDisplayModeList1)(IDXGIOutput1 *this, DXGI_FORMAT, unsigned int, unsigned int *, DXGI_MODE_DESC1 *);
  HRESULT (__fastcall *FindClosestMatchingMode1)(IDXGIOutput1 *this, const DXGI_MODE_DESC1 *, DXGI_MODE_DESC1 *, IUnknown *);
  HRESULT (__fastcall *GetDisplaySurfaceData1)(IDXGIOutput1 *this, IDXGIResource *);
  HRESULT (__fastcall *DuplicateOutput)(IDXGIOutput1 *this, IUnknown *, IDXGIOutputDuplication **);
  int (__fastcall *SupportsOverlays)(IDXGIOutput2 *this);
  HRESULT (__fastcall *CheckOverlaySupport)(IDXGIOutput3 *this, DXGI_FORMAT, IUnknown *, unsigned int *);
  HRESULT (__fastcall *CheckOverlayColorSpaceSupport)(IDXGIOutput4 *this, DXGI_FORMAT, DXGI_COLOR_SPACE_TYPE, IUnknown *, unsigned int *);
};

# IDXGIOutput5

struct __cppobj IDXGIOutput5 : IDXGIOutput4
{
};

# IDXGIOutput5_vtbl

struct /*VFT*/ IDXGIOutput5_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *SetPrivateData)(IDXGIObject *this, const _GUID *, unsigned int, const void *);
  HRESULT (__fastcall *SetPrivateDataInterface)(IDXGIObject *this, const _GUID *, const IUnknown *);
  HRESULT (__fastcall *GetPrivateData)(IDXGIObject *this, const _GUID *, unsigned int *, void *);
  HRESULT (__fastcall *GetParent)(IDXGIObject *this, const _GUID *, void **);
  HRESULT (__fastcall *GetDesc)(IDXGIOutput *this, DXGI_OUTPUT_DESC *);
  HRESULT (__fastcall *GetDisplayModeList)(IDXGIOutput *this, DXGI_FORMAT, unsigned int, unsigned int *, DXGI_MODE_DESC *);
  HRESULT (__fastcall *FindClosestMatchingMode)(IDXGIOutput *this, const DXGI_MODE_DESC *, DXGI_MODE_DESC *, IUnknown *);
  HRESULT (__fastcall *WaitForVBlank)(IDXGIOutput *this);
  HRESULT (__fastcall *TakeOwnership)(IDXGIOutput *this, IUnknown *, int);
  void (__fastcall *ReleaseOwnership)(IDXGIOutput *this);
  HRESULT (__fastcall *GetGammaControlCapabilities)(IDXGIOutput *this, DXGI_GAMMA_CONTROL_CAPABILITIES *);
  HRESULT (__fastcall *SetGammaControl)(IDXGIOutput *this, const DXGI_GAMMA_CONTROL *);
  HRESULT (__fastcall *GetGammaControl)(IDXGIOutput *this, DXGI_GAMMA_CONTROL *);
  HRESULT (__fastcall *SetDisplaySurface)(IDXGIOutput *this, IDXGISurface *);
  HRESULT (__fastcall *GetDisplaySurfaceData)(IDXGIOutput *this, IDXGISurface *);
  HRESULT (__fastcall *GetFrameStatistics)(IDXGIOutput *this, DXGI_FRAME_STATISTICS *);
  HRESULT (__fastcall *GetDisplayModeList1)(IDXGIOutput1 *this, DXGI_FORMAT, unsigned int, unsigned int *, DXGI_MODE_DESC1 *);
  HRESULT (__fastcall *FindClosestMatchingMode1)(IDXGIOutput1 *this, const DXGI_MODE_DESC1 *, DXGI_MODE_DESC1 *, IUnknown *);
  HRESULT (__fastcall *GetDisplaySurfaceData1)(IDXGIOutput1 *this, IDXGIResource *);
  HRESULT (__fastcall *DuplicateOutput)(IDXGIOutput1 *this, IUnknown *, IDXGIOutputDuplication **);
  int (__fastcall *SupportsOverlays)(IDXGIOutput2 *this);
  HRESULT (__fastcall *CheckOverlaySupport)(IDXGIOutput3 *this, DXGI_FORMAT, IUnknown *, unsigned int *);
  HRESULT (__fastcall *CheckOverlayColorSpaceSupport)(IDXGIOutput4 *this, DXGI_FORMAT, DXGI_COLOR_SPACE_TYPE, IUnknown *, unsigned int *);
  HRESULT (__fastcall *DuplicateOutput1)(IDXGIOutput5 *this, IUnknown *, unsigned int, unsigned int, const DXGI_FORMAT *, IDXGIOutputDuplication **);
};

# IDXGIOutput6

struct __cppobj IDXGIOutput6 : IDXGIOutput5
{
};

# IDXGIOutput6_vtbl

struct /*VFT*/ IDXGIOutput6_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *SetPrivateData)(IDXGIObject *this, const _GUID *, unsigned int, const void *);
  HRESULT (__fastcall *SetPrivateDataInterface)(IDXGIObject *this, const _GUID *, const IUnknown *);
  HRESULT (__fastcall *GetPrivateData)(IDXGIObject *this, const _GUID *, unsigned int *, void *);
  HRESULT (__fastcall *GetParent)(IDXGIObject *this, const _GUID *, void **);
  HRESULT (__fastcall *GetDesc)(IDXGIOutput *this, DXGI_OUTPUT_DESC *);
  HRESULT (__fastcall *GetDisplayModeList)(IDXGIOutput *this, DXGI_FORMAT, unsigned int, unsigned int *, DXGI_MODE_DESC *);
  HRESULT (__fastcall *FindClosestMatchingMode)(IDXGIOutput *this, const DXGI_MODE_DESC *, DXGI_MODE_DESC *, IUnknown *);
  HRESULT (__fastcall *WaitForVBlank)(IDXGIOutput *this);
  HRESULT (__fastcall *TakeOwnership)(IDXGIOutput *this, IUnknown *, int);
  void (__fastcall *ReleaseOwnership)(IDXGIOutput *this);
  HRESULT (__fastcall *GetGammaControlCapabilities)(IDXGIOutput *this, DXGI_GAMMA_CONTROL_CAPABILITIES *);
  HRESULT (__fastcall *SetGammaControl)(IDXGIOutput *this, const DXGI_GAMMA_CONTROL *);
  HRESULT (__fastcall *GetGammaControl)(IDXGIOutput *this, DXGI_GAMMA_CONTROL *);
  HRESULT (__fastcall *SetDisplaySurface)(IDXGIOutput *this, IDXGISurface *);
  HRESULT (__fastcall *GetDisplaySurfaceData)(IDXGIOutput *this, IDXGISurface *);
  HRESULT (__fastcall *GetFrameStatistics)(IDXGIOutput *this, DXGI_FRAME_STATISTICS *);
  HRESULT (__fastcall *GetDisplayModeList1)(IDXGIOutput1 *this, DXGI_FORMAT, unsigned int, unsigned int *, DXGI_MODE_DESC1 *);
  HRESULT (__fastcall *FindClosestMatchingMode1)(IDXGIOutput1 *this, const DXGI_MODE_DESC1 *, DXGI_MODE_DESC1 *, IUnknown *);
  HRESULT (__fastcall *GetDisplaySurfaceData1)(IDXGIOutput1 *this, IDXGIResource *);
  HRESULT (__fastcall *DuplicateOutput)(IDXGIOutput1 *this, IUnknown *, IDXGIOutputDuplication **);
  int (__fastcall *SupportsOverlays)(IDXGIOutput2 *this);
  HRESULT (__fastcall *CheckOverlaySupport)(IDXGIOutput3 *this, DXGI_FORMAT, IUnknown *, unsigned int *);
  HRESULT (__fastcall *CheckOverlayColorSpaceSupport)(IDXGIOutput4 *this, DXGI_FORMAT, DXGI_COLOR_SPACE_TYPE, IUnknown *, unsigned int *);
  HRESULT (__fastcall *DuplicateOutput1)(IDXGIOutput5 *this, IUnknown *, unsigned int, unsigned int, const DXGI_FORMAT *, IDXGIOutputDuplication **);
  HRESULT (__fastcall *GetDesc1)(IDXGIOutput6 *this, DXGI_OUTPUT_DESC1 *);
  HRESULT (__fastcall *CheckHardwareCompositionSupport)(IDXGIOutput6 *this, unsigned int *);
};

# ID3DUserDefinedAnnotation

struct __cppobj ID3DUserDefinedAnnotation : IUnknown
{
};

# ID3DUserDefinedAnnotation_vtbl

struct /*VFT*/ ID3DUserDefinedAnnotation_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  int (__fastcall *BeginEvent)(ID3DUserDefinedAnnotation *this, const wchar_t *);
  int (__fastcall *EndEvent)(ID3DUserDefinedAnnotation *this);
  void (__fastcall *SetMarker)(ID3DUserDefinedAnnotation *this, const wchar_t *);
  int (__fastcall *GetStatus)(ID3DUserDefinedAnnotation *this);
};

# ID3D11InfoQueue

struct __cppobj ID3D11InfoQueue : IUnknown
{
};

# ID3D11InfoQueue_vtbl

struct /*VFT*/ ID3D11InfoQueue_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *SetMessageCountLimit)(ID3D11InfoQueue *this, unsigned __int64);
  void (__fastcall *ClearStoredMessages)(ID3D11InfoQueue *this);
  HRESULT (__fastcall *GetMessageA)(ID3D11InfoQueue *this, unsigned __int64, D3D11_MESSAGE *, unsigned __int64 *);
  unsigned __int64 (__fastcall *GetNumMessagesAllowedByStorageFilter)(ID3D11InfoQueue *this);
  unsigned __int64 (__fastcall *GetNumMessagesDeniedByStorageFilter)(ID3D11InfoQueue *this);
  unsigned __int64 (__fastcall *GetNumStoredMessages)(ID3D11InfoQueue *this);
  unsigned __int64 (__fastcall *GetNumStoredMessagesAllowedByRetrievalFilter)(ID3D11InfoQueue *this);
  unsigned __int64 (__fastcall *GetNumMessagesDiscardedByMessageCountLimit)(ID3D11InfoQueue *this);
  unsigned __int64 (__fastcall *GetMessageCountLimit)(ID3D11InfoQueue *this);
  HRESULT (__fastcall *AddStorageFilterEntries)(ID3D11InfoQueue *this, D3D11_INFO_QUEUE_FILTER *);
  HRESULT (__fastcall *GetStorageFilter)(ID3D11InfoQueue *this, D3D11_INFO_QUEUE_FILTER *, unsigned __int64 *);
  void (__fastcall *ClearStorageFilter)(ID3D11InfoQueue *this);
  HRESULT (__fastcall *PushEmptyStorageFilter)(ID3D11InfoQueue *this);
  HRESULT (__fastcall *PushCopyOfStorageFilter)(ID3D11InfoQueue *this);
  HRESULT (__fastcall *PushStorageFilter)(ID3D11InfoQueue *this, D3D11_INFO_QUEUE_FILTER *);
  void (__fastcall *PopStorageFilter)(ID3D11InfoQueue *this);
  unsigned int (__fastcall *GetStorageFilterStackSize)(ID3D11InfoQueue *this);
  HRESULT (__fastcall *AddRetrievalFilterEntries)(ID3D11InfoQueue *this, D3D11_INFO_QUEUE_FILTER *);
  HRESULT (__fastcall *GetRetrievalFilter)(ID3D11InfoQueue *this, D3D11_INFO_QUEUE_FILTER *, unsigned __int64 *);
  void (__fastcall *ClearRetrievalFilter)(ID3D11InfoQueue *this);
  HRESULT (__fastcall *PushEmptyRetrievalFilter)(ID3D11InfoQueue *this);
  HRESULT (__fastcall *PushCopyOfRetrievalFilter)(ID3D11InfoQueue *this);
  HRESULT (__fastcall *PushRetrievalFilter)(ID3D11InfoQueue *this, D3D11_INFO_QUEUE_FILTER *);
  void (__fastcall *PopRetrievalFilter)(ID3D11InfoQueue *this);
  unsigned int (__fastcall *GetRetrievalFilterStackSize)(ID3D11InfoQueue *this);
  HRESULT (__fastcall *AddMessage)(ID3D11InfoQueue *this, D3D11_MESSAGE_CATEGORY, D3D11_MESSAGE_SEVERITY, D3D11_MESSAGE_ID, const char *);
  HRESULT (__fastcall *AddApplicationMessage)(ID3D11InfoQueue *this, D3D11_MESSAGE_SEVERITY, const char *);
  HRESULT (__fastcall *SetBreakOnCategory)(ID3D11InfoQueue *this, D3D11_MESSAGE_CATEGORY, int);
  HRESULT (__fastcall *SetBreakOnSeverity)(ID3D11InfoQueue *this, D3D11_MESSAGE_SEVERITY, int);
  HRESULT (__fastcall *SetBreakOnID)(ID3D11InfoQueue *this, D3D11_MESSAGE_ID, int);
  int (__fastcall *GetBreakOnCategory)(ID3D11InfoQueue *this, D3D11_MESSAGE_CATEGORY);
  int (__fastcall *GetBreakOnSeverity)(ID3D11InfoQueue *this, D3D11_MESSAGE_SEVERITY);
  int (__fastcall *GetBreakOnID)(ID3D11InfoQueue *this, D3D11_MESSAGE_ID);
  void (__fastcall *SetMuteDebugOutput)(ID3D11InfoQueue *this, int);
  int (__fastcall *GetMuteDebugOutput)(ID3D11InfoQueue *this);
};

# ID3D11DeviceContext1

struct __cppobj ID3D11DeviceContext1 : ID3D11DeviceContext
{
};

# ID3DDeviceContextState_vtbl

struct /*VFT*/ ID3DDeviceContextState_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  void (__fastcall *GetDevice)(ID3D11DeviceChild *this, ID3D11Device **);
  HRESULT (__fastcall *GetPrivateData)(ID3D11DeviceChild *this, const _GUID *, unsigned int *, void *);
  HRESULT (__fastcall *SetPrivateData)(ID3D11DeviceChild *this, const _GUID *, unsigned int, const void *);
  HRESULT (__fastcall *SetPrivateDataInterface)(ID3D11DeviceChild *this, const _GUID *, const IUnknown *);
};

# ID3DDeviceContextState

struct __cppobj ID3DDeviceContextState : ID3D11DeviceChild
{
};

# ID3D11DeviceContext2

struct __cppobj ID3D11DeviceContext2 : ID3D11DeviceContext1
{
};

# ID3D11DeviceContext3

struct __cppobj ID3D11DeviceContext3 : ID3D11DeviceContext2
{
};

# ID3D11ShaderResourceView1

struct __cppobj ID3D11ShaderResourceView1 : ID3D11ShaderResourceView
{
};

# ID3D11UnorderedAccessView1

struct __cppobj ID3D11UnorderedAccessView1 : ID3D11UnorderedAccessView
{
};

# ID3D11Query1

struct __cppobj ID3D11Query1 : ID3D11Query
{
};

# ID3D11Texture3D1

struct __cppobj ID3D11Texture3D1 : ID3D11Texture3D
{
};

# ID3D11Device1

struct __cppobj ID3D11Device1 : ID3D11Device
{
};

# ID3D11BlendState1

struct __cppobj ID3D11BlendState1 : ID3D11BlendState
{
};

# ID3D11RasterizerState1

struct __cppobj ID3D11RasterizerState1 : ID3D11RasterizerState
{
};

# ID3D11Device1_vtbl

struct /*VFT*/ ID3D11Device1_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *CreateBuffer)(ID3D11Device *this, const D3D11_BUFFER_DESC *, const D3D11_SUBRESOURCE_DATA *, ID3D11Buffer **);
  HRESULT (__fastcall *CreateTexture1D)(ID3D11Device *this, const D3D11_TEXTURE1D_DESC *, const D3D11_SUBRESOURCE_DATA *, ID3D11Texture1D **);
  HRESULT (__fastcall *CreateTexture2D)(ID3D11Device *this, const D3D11_TEXTURE2D_DESC *, const D3D11_SUBRESOURCE_DATA *, ID3D11Texture2D **);
  HRESULT (__fastcall *CreateTexture3D)(ID3D11Device *this, const D3D11_TEXTURE3D_DESC *, const D3D11_SUBRESOURCE_DATA *, ID3D11Texture3D **);
  HRESULT (__fastcall *CreateShaderResourceView)(ID3D11Device *this, ID3D11Resource *, const D3D11_SHADER_RESOURCE_VIEW_DESC *, ID3D11ShaderResourceView **);
  HRESULT (__fastcall *CreateUnorderedAccessView)(ID3D11Device *this, ID3D11Resource *, const D3D11_UNORDERED_ACCESS_VIEW_DESC *, ID3D11UnorderedAccessView **);
  HRESULT (__fastcall *CreateRenderTargetView)(ID3D11Device *this, ID3D11Resource *, const D3D11_RENDER_TARGET_VIEW_DESC *, ID3D11RenderTargetView **);
  HRESULT (__fastcall *CreateDepthStencilView)(ID3D11Device *this, ID3D11Resource *, const D3D11_DEPTH_STENCIL_VIEW_DESC *, ID3D11DepthStencilView **);
  HRESULT (__fastcall *CreateInputLayout)(ID3D11Device *this, const D3D11_INPUT_ELEMENT_DESC *, unsigned int, const void *, unsigned __int64, ID3D11InputLayout **);
  HRESULT (__fastcall *CreateVertexShader)(ID3D11Device *this, const void *, unsigned __int64, ID3D11ClassLinkage *, ID3D11VertexShader **);
  HRESULT (__fastcall *CreateGeometryShader)(ID3D11Device *this, const void *, unsigned __int64, ID3D11ClassLinkage *, ID3D11GeometryShader **);
  HRESULT (__fastcall *CreateGeometryShaderWithStreamOutput)(ID3D11Device *this, const void *, unsigned __int64, const D3D11_SO_DECLARATION_ENTRY *, unsigned int, const unsigned int *, unsigned int, unsigned int, ID3D11ClassLinkage *, ID3D11GeometryShader **);
  HRESULT (__fastcall *CreatePixelShader)(ID3D11Device *this, const void *, unsigned __int64, ID3D11ClassLinkage *, ID3D11PixelShader **);
  HRESULT (__fastcall *CreateHullShader)(ID3D11Device *this, const void *, unsigned __int64, ID3D11ClassLinkage *, ID3D11HullShader **);
  HRESULT (__fastcall *CreateDomainShader)(ID3D11Device *this, const void *, unsigned __int64, ID3D11ClassLinkage *, ID3D11DomainShader **);
  HRESULT (__fastcall *CreateComputeShader)(ID3D11Device *this, const void *, unsigned __int64, ID3D11ClassLinkage *, ID3D11ComputeShader **);
  HRESULT (__fastcall *CreateClassLinkage)(ID3D11Device *this, ID3D11ClassLinkage **);
  HRESULT (__fastcall *CreateBlendState)(ID3D11Device *this, const D3D11_BLEND_DESC *, ID3D11BlendState **);
  HRESULT (__fastcall *CreateDepthStencilState)(ID3D11Device *this, const D3D11_DEPTH_STENCIL_DESC *, ID3D11DepthStencilState **);
  HRESULT (__fastcall *CreateRasterizerState)(ID3D11Device *this, const D3D11_RASTERIZER_DESC *, ID3D11RasterizerState **);
  HRESULT (__fastcall *CreateSamplerState)(ID3D11Device *this, const D3D11_SAMPLER_DESC *, ID3D11SamplerState **);
  HRESULT (__fastcall *CreateQuery)(ID3D11Device *this, const D3D11_QUERY_DESC *, ID3D11Query **);
  HRESULT (__fastcall *CreatePredicate)(ID3D11Device *this, const D3D11_QUERY_DESC *, ID3D11Predicate **);
  HRESULT (__fastcall *CreateCounter)(ID3D11Device *this, const D3D11_COUNTER_DESC *, ID3D11Counter **);
  HRESULT (__fastcall *CreateDeferredContext)(ID3D11Device *this, unsigned int, ID3D11DeviceContext **);
  HRESULT (__fastcall *OpenSharedResource)(ID3D11Device *this, void *, const _GUID *, void **);
  HRESULT (__fastcall *CheckFormatSupport)(ID3D11Device *this, DXGI_FORMAT, unsigned int *);
  HRESULT (__fastcall *CheckMultisampleQualityLevels)(ID3D11Device *this, DXGI_FORMAT, unsigned int, unsigned int *);
  void (__fastcall *CheckCounterInfo)(ID3D11Device *this, D3D11_COUNTER_INFO *);
  HRESULT (__fastcall *CheckCounter)(ID3D11Device *this, const D3D11_COUNTER_DESC *, D3D11_COUNTER_TYPE *, unsigned int *, char *, unsigned int *, char *, unsigned int *, char *, unsigned int *);
  HRESULT (__fastcall *CheckFeatureSupport)(ID3D11Device *this, D3D11_FEATURE, void *, unsigned int);
  HRESULT (__fastcall *GetPrivateData)(ID3D11Device *this, const _GUID *, unsigned int *, void *);
  HRESULT (__fastcall *SetPrivateData)(ID3D11Device *this, const _GUID *, unsigned int, const void *);
  HRESULT (__fastcall *SetPrivateDataInterface)(ID3D11Device *this, const _GUID *, const IUnknown *);
  D3D_FEATURE_LEVEL (__fastcall *GetFeatureLevel)(ID3D11Device *this);
  unsigned int (__fastcall *GetCreationFlags)(ID3D11Device *this);
  HRESULT (__fastcall *GetDeviceRemovedReason)(ID3D11Device *this);
  void (__fastcall *GetImmediateContext)(ID3D11Device *this, ID3D11DeviceContext **);
  HRESULT (__fastcall *SetExceptionMode)(ID3D11Device *this, unsigned int);
  unsigned int (__fastcall *GetExceptionMode)(ID3D11Device *this);
  void (__fastcall *GetImmediateContext1)(ID3D11Device1 *this, ID3D11DeviceContext1 **);
  HRESULT (__fastcall *CreateDeferredContext1)(ID3D11Device1 *this, unsigned int, ID3D11DeviceContext1 **);
  HRESULT (__fastcall *CreateBlendState1)(ID3D11Device1 *this, const D3D11_BLEND_DESC1 *, ID3D11BlendState1 **);
  HRESULT (__fastcall *CreateRasterizerState1)(ID3D11Device1 *this, const D3D11_RASTERIZER_DESC1 *, ID3D11RasterizerState1 **);
  HRESULT (__fastcall *CreateDeviceContextState)(ID3D11Device1 *this, unsigned int, const D3D_FEATURE_LEVEL *, unsigned int, unsigned int, const _GUID *, D3D_FEATURE_LEVEL *, ID3DDeviceContextState **);
  HRESULT (__fastcall *OpenSharedResource1)(ID3D11Device1 *this, void *, const _GUID *, void **);
  HRESULT (__fastcall *OpenSharedResourceByName)(ID3D11Device1 *this, const wchar_t *, unsigned int, const _GUID *, void **);
};

# ID3D11Device2

struct __cppobj ID3D11Device2 : ID3D11Device1
{
};

# ID3D11Device2_vtbl

struct /*VFT*/ ID3D11Device2_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *CreateBuffer)(ID3D11Device *this, const D3D11_BUFFER_DESC *, const D3D11_SUBRESOURCE_DATA *, ID3D11Buffer **);
  HRESULT (__fastcall *CreateTexture1D)(ID3D11Device *this, const D3D11_TEXTURE1D_DESC *, const D3D11_SUBRESOURCE_DATA *, ID3D11Texture1D **);
  HRESULT (__fastcall *CreateTexture2D)(ID3D11Device *this, const D3D11_TEXTURE2D_DESC *, const D3D11_SUBRESOURCE_DATA *, ID3D11Texture2D **);
  HRESULT (__fastcall *CreateTexture3D)(ID3D11Device *this, const D3D11_TEXTURE3D_DESC *, const D3D11_SUBRESOURCE_DATA *, ID3D11Texture3D **);
  HRESULT (__fastcall *CreateShaderResourceView)(ID3D11Device *this, ID3D11Resource *, const D3D11_SHADER_RESOURCE_VIEW_DESC *, ID3D11ShaderResourceView **);
  HRESULT (__fastcall *CreateUnorderedAccessView)(ID3D11Device *this, ID3D11Resource *, const D3D11_UNORDERED_ACCESS_VIEW_DESC *, ID3D11UnorderedAccessView **);
  HRESULT (__fastcall *CreateRenderTargetView)(ID3D11Device *this, ID3D11Resource *, const D3D11_RENDER_TARGET_VIEW_DESC *, ID3D11RenderTargetView **);
  HRESULT (__fastcall *CreateDepthStencilView)(ID3D11Device *this, ID3D11Resource *, const D3D11_DEPTH_STENCIL_VIEW_DESC *, ID3D11DepthStencilView **);
  HRESULT (__fastcall *CreateInputLayout)(ID3D11Device *this, const D3D11_INPUT_ELEMENT_DESC *, unsigned int, const void *, unsigned __int64, ID3D11InputLayout **);
  HRESULT (__fastcall *CreateVertexShader)(ID3D11Device *this, const void *, unsigned __int64, ID3D11ClassLinkage *, ID3D11VertexShader **);
  HRESULT (__fastcall *CreateGeometryShader)(ID3D11Device *this, const void *, unsigned __int64, ID3D11ClassLinkage *, ID3D11GeometryShader **);
  HRESULT (__fastcall *CreateGeometryShaderWithStreamOutput)(ID3D11Device *this, const void *, unsigned __int64, const D3D11_SO_DECLARATION_ENTRY *, unsigned int, const unsigned int *, unsigned int, unsigned int, ID3D11ClassLinkage *, ID3D11GeometryShader **);
  HRESULT (__fastcall *CreatePixelShader)(ID3D11Device *this, const void *, unsigned __int64, ID3D11ClassLinkage *, ID3D11PixelShader **);
  HRESULT (__fastcall *CreateHullShader)(ID3D11Device *this, const void *, unsigned __int64, ID3D11ClassLinkage *, ID3D11HullShader **);
  HRESULT (__fastcall *CreateDomainShader)(ID3D11Device *this, const void *, unsigned __int64, ID3D11ClassLinkage *, ID3D11DomainShader **);
  HRESULT (__fastcall *CreateComputeShader)(ID3D11Device *this, const void *, unsigned __int64, ID3D11ClassLinkage *, ID3D11ComputeShader **);
  HRESULT (__fastcall *CreateClassLinkage)(ID3D11Device *this, ID3D11ClassLinkage **);
  HRESULT (__fastcall *CreateBlendState)(ID3D11Device *this, const D3D11_BLEND_DESC *, ID3D11BlendState **);
  HRESULT (__fastcall *CreateDepthStencilState)(ID3D11Device *this, const D3D11_DEPTH_STENCIL_DESC *, ID3D11DepthStencilState **);
  HRESULT (__fastcall *CreateRasterizerState)(ID3D11Device *this, const D3D11_RASTERIZER_DESC *, ID3D11RasterizerState **);
  HRESULT (__fastcall *CreateSamplerState)(ID3D11Device *this, const D3D11_SAMPLER_DESC *, ID3D11SamplerState **);
  HRESULT (__fastcall *CreateQuery)(ID3D11Device *this, const D3D11_QUERY_DESC *, ID3D11Query **);
  HRESULT (__fastcall *CreatePredicate)(ID3D11Device *this, const D3D11_QUERY_DESC *, ID3D11Predicate **);
  HRESULT (__fastcall *CreateCounter)(ID3D11Device *this, const D3D11_COUNTER_DESC *, ID3D11Counter **);
  HRESULT (__fastcall *CreateDeferredContext)(ID3D11Device *this, unsigned int, ID3D11DeviceContext **);
  HRESULT (__fastcall *OpenSharedResource)(ID3D11Device *this, void *, const _GUID *, void **);
  HRESULT (__fastcall *CheckFormatSupport)(ID3D11Device *this, DXGI_FORMAT, unsigned int *);
  HRESULT (__fastcall *CheckMultisampleQualityLevels)(ID3D11Device *this, DXGI_FORMAT, unsigned int, unsigned int *);
  void (__fastcall *CheckCounterInfo)(ID3D11Device *this, D3D11_COUNTER_INFO *);
  HRESULT (__fastcall *CheckCounter)(ID3D11Device *this, const D3D11_COUNTER_DESC *, D3D11_COUNTER_TYPE *, unsigned int *, char *, unsigned int *, char *, unsigned int *, char *, unsigned int *);
  HRESULT (__fastcall *CheckFeatureSupport)(ID3D11Device *this, D3D11_FEATURE, void *, unsigned int);
  HRESULT (__fastcall *GetPrivateData)(ID3D11Device *this, const _GUID *, unsigned int *, void *);
  HRESULT (__fastcall *SetPrivateData)(ID3D11Device *this, const _GUID *, unsigned int, const void *);
  HRESULT (__fastcall *SetPrivateDataInterface)(ID3D11Device *this, const _GUID *, const IUnknown *);
  D3D_FEATURE_LEVEL (__fastcall *GetFeatureLevel)(ID3D11Device *this);
  unsigned int (__fastcall *GetCreationFlags)(ID3D11Device *this);
  HRESULT (__fastcall *GetDeviceRemovedReason)(ID3D11Device *this);
  void (__fastcall *GetImmediateContext)(ID3D11Device *this, ID3D11DeviceContext **);
  HRESULT (__fastcall *SetExceptionMode)(ID3D11Device *this, unsigned int);
  unsigned int (__fastcall *GetExceptionMode)(ID3D11Device *this);
  void (__fastcall *GetImmediateContext1)(ID3D11Device1 *this, ID3D11DeviceContext1 **);
  HRESULT (__fastcall *CreateDeferredContext1)(ID3D11Device1 *this, unsigned int, ID3D11DeviceContext1 **);
  HRESULT (__fastcall *CreateBlendState1)(ID3D11Device1 *this, const D3D11_BLEND_DESC1 *, ID3D11BlendState1 **);
  HRESULT (__fastcall *CreateRasterizerState1)(ID3D11Device1 *this, const D3D11_RASTERIZER_DESC1 *, ID3D11RasterizerState1 **);
  HRESULT (__fastcall *CreateDeviceContextState)(ID3D11Device1 *this, unsigned int, const D3D_FEATURE_LEVEL *, unsigned int, unsigned int, const _GUID *, D3D_FEATURE_LEVEL *, ID3DDeviceContextState **);
  HRESULT (__fastcall *OpenSharedResource1)(ID3D11Device1 *this, void *, const _GUID *, void **);
  HRESULT (__fastcall *OpenSharedResourceByName)(ID3D11Device1 *this, const wchar_t *, unsigned int, const _GUID *, void **);
  void (__fastcall *GetImmediateContext2)(ID3D11Device2 *this, ID3D11DeviceContext2 **);
  HRESULT (__fastcall *CreateDeferredContext2)(ID3D11Device2 *this, unsigned int, ID3D11DeviceContext2 **);
  void (__fastcall *GetResourceTiling)(ID3D11Device2 *this, ID3D11Resource *, unsigned int *, D3D11_PACKED_MIP_DESC *, D3D11_TILE_SHAPE *, unsigned int *, unsigned int, D3D11_SUBRESOURCE_TILING *);
  HRESULT (__fastcall *CheckMultisampleQualityLevels1)(ID3D11Device2 *this, DXGI_FORMAT, unsigned int, unsigned int, unsigned int *);
};

# ID3D11Texture2D1

struct __cppobj ID3D11Texture2D1 : ID3D11Texture2D
{
};

# ID3D11Device3

struct __cppobj ID3D11Device3 : ID3D11Device2
{
};

# ID3D11RasterizerState2

struct __cppobj ID3D11RasterizerState2 : ID3D11RasterizerState1
{
};

# ID3D11RenderTargetView1

struct __cppobj ID3D11RenderTargetView1 : ID3D11RenderTargetView
{
};

# ID3D11Device3_vtbl

struct /*VFT*/ ID3D11Device3_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *CreateBuffer)(ID3D11Device *this, const D3D11_BUFFER_DESC *, const D3D11_SUBRESOURCE_DATA *, ID3D11Buffer **);
  HRESULT (__fastcall *CreateTexture1D)(ID3D11Device *this, const D3D11_TEXTURE1D_DESC *, const D3D11_SUBRESOURCE_DATA *, ID3D11Texture1D **);
  HRESULT (__fastcall *CreateTexture2D)(ID3D11Device *this, const D3D11_TEXTURE2D_DESC *, const D3D11_SUBRESOURCE_DATA *, ID3D11Texture2D **);
  HRESULT (__fastcall *CreateTexture3D)(ID3D11Device *this, const D3D11_TEXTURE3D_DESC *, const D3D11_SUBRESOURCE_DATA *, ID3D11Texture3D **);
  HRESULT (__fastcall *CreateShaderResourceView)(ID3D11Device *this, ID3D11Resource *, const D3D11_SHADER_RESOURCE_VIEW_DESC *, ID3D11ShaderResourceView **);
  HRESULT (__fastcall *CreateUnorderedAccessView)(ID3D11Device *this, ID3D11Resource *, const D3D11_UNORDERED_ACCESS_VIEW_DESC *, ID3D11UnorderedAccessView **);
  HRESULT (__fastcall *CreateRenderTargetView)(ID3D11Device *this, ID3D11Resource *, const D3D11_RENDER_TARGET_VIEW_DESC *, ID3D11RenderTargetView **);
  HRESULT (__fastcall *CreateDepthStencilView)(ID3D11Device *this, ID3D11Resource *, const D3D11_DEPTH_STENCIL_VIEW_DESC *, ID3D11DepthStencilView **);
  HRESULT (__fastcall *CreateInputLayout)(ID3D11Device *this, const D3D11_INPUT_ELEMENT_DESC *, unsigned int, const void *, unsigned __int64, ID3D11InputLayout **);
  HRESULT (__fastcall *CreateVertexShader)(ID3D11Device *this, const void *, unsigned __int64, ID3D11ClassLinkage *, ID3D11VertexShader **);
  HRESULT (__fastcall *CreateGeometryShader)(ID3D11Device *this, const void *, unsigned __int64, ID3D11ClassLinkage *, ID3D11GeometryShader **);
  HRESULT (__fastcall *CreateGeometryShaderWithStreamOutput)(ID3D11Device *this, const void *, unsigned __int64, const D3D11_SO_DECLARATION_ENTRY *, unsigned int, const unsigned int *, unsigned int, unsigned int, ID3D11ClassLinkage *, ID3D11GeometryShader **);
  HRESULT (__fastcall *CreatePixelShader)(ID3D11Device *this, const void *, unsigned __int64, ID3D11ClassLinkage *, ID3D11PixelShader **);
  HRESULT (__fastcall *CreateHullShader)(ID3D11Device *this, const void *, unsigned __int64, ID3D11ClassLinkage *, ID3D11HullShader **);
  HRESULT (__fastcall *CreateDomainShader)(ID3D11Device *this, const void *, unsigned __int64, ID3D11ClassLinkage *, ID3D11DomainShader **);
  HRESULT (__fastcall *CreateComputeShader)(ID3D11Device *this, const void *, unsigned __int64, ID3D11ClassLinkage *, ID3D11ComputeShader **);
  HRESULT (__fastcall *CreateClassLinkage)(ID3D11Device *this, ID3D11ClassLinkage **);
  HRESULT (__fastcall *CreateBlendState)(ID3D11Device *this, const D3D11_BLEND_DESC *, ID3D11BlendState **);
  HRESULT (__fastcall *CreateDepthStencilState)(ID3D11Device *this, const D3D11_DEPTH_STENCIL_DESC *, ID3D11DepthStencilState **);
  HRESULT (__fastcall *CreateRasterizerState)(ID3D11Device *this, const D3D11_RASTERIZER_DESC *, ID3D11RasterizerState **);
  HRESULT (__fastcall *CreateSamplerState)(ID3D11Device *this, const D3D11_SAMPLER_DESC *, ID3D11SamplerState **);
  HRESULT (__fastcall *CreateQuery)(ID3D11Device *this, const D3D11_QUERY_DESC *, ID3D11Query **);
  HRESULT (__fastcall *CreatePredicate)(ID3D11Device *this, const D3D11_QUERY_DESC *, ID3D11Predicate **);
  HRESULT (__fastcall *CreateCounter)(ID3D11Device *this, const D3D11_COUNTER_DESC *, ID3D11Counter **);
  HRESULT (__fastcall *CreateDeferredContext)(ID3D11Device *this, unsigned int, ID3D11DeviceContext **);
  HRESULT (__fastcall *OpenSharedResource)(ID3D11Device *this, void *, const _GUID *, void **);
  HRESULT (__fastcall *CheckFormatSupport)(ID3D11Device *this, DXGI_FORMAT, unsigned int *);
  HRESULT (__fastcall *CheckMultisampleQualityLevels)(ID3D11Device *this, DXGI_FORMAT, unsigned int, unsigned int *);
  void (__fastcall *CheckCounterInfo)(ID3D11Device *this, D3D11_COUNTER_INFO *);
  HRESULT (__fastcall *CheckCounter)(ID3D11Device *this, const D3D11_COUNTER_DESC *, D3D11_COUNTER_TYPE *, unsigned int *, char *, unsigned int *, char *, unsigned int *, char *, unsigned int *);
  HRESULT (__fastcall *CheckFeatureSupport)(ID3D11Device *this, D3D11_FEATURE, void *, unsigned int);
  HRESULT (__fastcall *GetPrivateData)(ID3D11Device *this, const _GUID *, unsigned int *, void *);
  HRESULT (__fastcall *SetPrivateData)(ID3D11Device *this, const _GUID *, unsigned int, const void *);
  HRESULT (__fastcall *SetPrivateDataInterface)(ID3D11Device *this, const _GUID *, const IUnknown *);
  D3D_FEATURE_LEVEL (__fastcall *GetFeatureLevel)(ID3D11Device *this);
  unsigned int (__fastcall *GetCreationFlags)(ID3D11Device *this);
  HRESULT (__fastcall *GetDeviceRemovedReason)(ID3D11Device *this);
  void (__fastcall *GetImmediateContext)(ID3D11Device *this, ID3D11DeviceContext **);
  HRESULT (__fastcall *SetExceptionMode)(ID3D11Device *this, unsigned int);
  unsigned int (__fastcall *GetExceptionMode)(ID3D11Device *this);
  void (__fastcall *GetImmediateContext1)(ID3D11Device1 *this, ID3D11DeviceContext1 **);
  HRESULT (__fastcall *CreateDeferredContext1)(ID3D11Device1 *this, unsigned int, ID3D11DeviceContext1 **);
  HRESULT (__fastcall *CreateBlendState1)(ID3D11Device1 *this, const D3D11_BLEND_DESC1 *, ID3D11BlendState1 **);
  HRESULT (__fastcall *CreateRasterizerState1)(ID3D11Device1 *this, const D3D11_RASTERIZER_DESC1 *, ID3D11RasterizerState1 **);
  HRESULT (__fastcall *CreateDeviceContextState)(ID3D11Device1 *this, unsigned int, const D3D_FEATURE_LEVEL *, unsigned int, unsigned int, const _GUID *, D3D_FEATURE_LEVEL *, ID3DDeviceContextState **);
  HRESULT (__fastcall *OpenSharedResource1)(ID3D11Device1 *this, void *, const _GUID *, void **);
  HRESULT (__fastcall *OpenSharedResourceByName)(ID3D11Device1 *this, const wchar_t *, unsigned int, const _GUID *, void **);
  void (__fastcall *GetImmediateContext2)(ID3D11Device2 *this, ID3D11DeviceContext2 **);
  HRESULT (__fastcall *CreateDeferredContext2)(ID3D11Device2 *this, unsigned int, ID3D11DeviceContext2 **);
  void (__fastcall *GetResourceTiling)(ID3D11Device2 *this, ID3D11Resource *, unsigned int *, D3D11_PACKED_MIP_DESC *, D3D11_TILE_SHAPE *, unsigned int *, unsigned int, D3D11_SUBRESOURCE_TILING *);
  HRESULT (__fastcall *CheckMultisampleQualityLevels1)(ID3D11Device2 *this, DXGI_FORMAT, unsigned int, unsigned int, unsigned int *);
  HRESULT (__fastcall *CreateTexture2D1)(ID3D11Device3 *this, const D3D11_TEXTURE2D_DESC1 *, const D3D11_SUBRESOURCE_DATA *, ID3D11Texture2D1 **);
  HRESULT (__fastcall *CreateTexture3D1)(ID3D11Device3 *this, const D3D11_TEXTURE3D_DESC1 *, const D3D11_SUBRESOURCE_DATA *, ID3D11Texture3D1 **);
  HRESULT (__fastcall *CreateRasterizerState2)(ID3D11Device3 *this, const D3D11_RASTERIZER_DESC2 *, ID3D11RasterizerState2 **);
  HRESULT (__fastcall *CreateShaderResourceView1)(ID3D11Device3 *this, ID3D11Resource *, const D3D11_SHADER_RESOURCE_VIEW_DESC1 *, ID3D11ShaderResourceView1 **);
  HRESULT (__fastcall *CreateUnorderedAccessView1)(ID3D11Device3 *this, ID3D11Resource *, const D3D11_UNORDERED_ACCESS_VIEW_DESC1 *, ID3D11UnorderedAccessView1 **);
  HRESULT (__fastcall *CreateRenderTargetView1)(ID3D11Device3 *this, ID3D11Resource *, const D3D11_RENDER_TARGET_VIEW_DESC1 *, ID3D11RenderTargetView1 **);
  HRESULT (__fastcall *CreateQuery1)(ID3D11Device3 *this, const D3D11_QUERY_DESC1 *, ID3D11Query1 **);
  void (__fastcall *GetImmediateContext3)(ID3D11Device3 *this, ID3D11DeviceContext3 **);
  HRESULT (__fastcall *CreateDeferredContext3)(ID3D11Device3 *this, unsigned int, ID3D11DeviceContext3 **);
  void (__fastcall *WriteToSubresource)(ID3D11Device3 *this, ID3D11Resource *, unsigned int, const D3D11_BOX *, const void *, unsigned int, unsigned int);
  void (__fastcall *ReadFromSubresource)(ID3D11Device3 *this, void *, unsigned int, unsigned int, ID3D11Resource *, unsigned int, const D3D11_BOX *);
};

# ID3D12DeviceRemovedExtendedData

struct __cppobj ID3D12DeviceRemovedExtendedData : IUnknown
{
};

# ID3D12DeviceRemovedExtendedData_vtbl

struct /*VFT*/ ID3D12DeviceRemovedExtendedData_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *GetAutoBreadcrumbsOutput)(ID3D12DeviceRemovedExtendedData *this, D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT *);
  HRESULT (__fastcall *GetPageFaultAllocationOutput)(ID3D12DeviceRemovedExtendedData *this, D3D12_DRED_PAGE_FAULT_OUTPUT *);
};

# ID3D12Debug1

struct __cppobj ID3D12Debug1 : IUnknown
{
};

# ID3D12Debug1_vtbl

struct /*VFT*/ ID3D12Debug1_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  void (__fastcall *EnableDebugLayer)(ID3D12Debug1 *this);
  void (__fastcall *SetEnableGPUBasedValidation)(ID3D12Debug1 *this, int);
  void (__fastcall *SetEnableSynchronizedCommandQueueValidation)(ID3D12Debug1 *this, int);
};

# ID3D12DeviceRemovedExtendedDataSettings

struct __cppobj ID3D12DeviceRemovedExtendedDataSettings : IUnknown
{
};

# ID3D12DeviceRemovedExtendedDataSettings_vtbl

struct /*VFT*/ ID3D12DeviceRemovedExtendedDataSettings_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  void (__fastcall *SetAutoBreadcrumbsEnablement)(ID3D12DeviceRemovedExtendedDataSettings *this, D3D12_DRED_ENABLEMENT);
  void (__fastcall *SetPageFaultEnablement)(ID3D12DeviceRemovedExtendedDataSettings *this, D3D12_DRED_ENABLEMENT);
  void (__fastcall *SetWatsonDumpEnablement)(ID3D12DeviceRemovedExtendedDataSettings *this, D3D12_DRED_ENABLEMENT);
};

# ID3D12DebugDevice

struct __cppobj ID3D12DebugDevice : IUnknown
{
};

# ID3D12DebugDevice_vtbl

struct /*VFT*/ ID3D12DebugDevice_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *SetFeatureMask)(ID3D12DebugDevice *this, D3D12_DEBUG_FEATURE);
  D3D12_DEBUG_FEATURE (__fastcall *GetFeatureMask)(ID3D12DebugDevice *this);
  HRESULT (__fastcall *ReportLiveDeviceObjects)(ID3D12DebugDevice *this, D3D12_RLDO_FLAGS);
};

# ID3D12Debug

struct __cppobj ID3D12Debug : IUnknown
{
};

# ID3D12Debug_vtbl

struct /*VFT*/ ID3D12Debug_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  void (__fastcall *EnableDebugLayer)(ID3D12Debug *this);
};

# ID3D12Device1

struct __cppobj ID3D12Device1 : ID3D12Device
{
};

# ID3D12Device1_vtbl

struct /*VFT*/ ID3D12Device1_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *GetPrivateData)(ID3D12Object *this, const _GUID *, unsigned int *, void *);
  HRESULT (__fastcall *SetPrivateData)(ID3D12Object *this, const _GUID *, unsigned int, const void *);
  HRESULT (__fastcall *SetPrivateDataInterface)(ID3D12Object *this, const _GUID *, const IUnknown *);
  HRESULT (__fastcall *SetName)(ID3D12Object *this, const wchar_t *);
  unsigned int (__fastcall *GetNodeCount)(ID3D12Device *this);
  HRESULT (__fastcall *CreateCommandQueue)(ID3D12Device *this, const D3D12_COMMAND_QUEUE_DESC *, const _GUID *, void **);
  HRESULT (__fastcall *CreateCommandAllocator)(ID3D12Device *this, D3D12_COMMAND_LIST_TYPE, const _GUID *, void **);
  HRESULT (__fastcall *CreateGraphicsPipelineState)(ID3D12Device *this, const D3D12_GRAPHICS_PIPELINE_STATE_DESC *, const _GUID *, void **);
  HRESULT (__fastcall *CreateComputePipelineState)(ID3D12Device *this, const D3D12_COMPUTE_PIPELINE_STATE_DESC *, const _GUID *, void **);
  HRESULT (__fastcall *CreateCommandList)(ID3D12Device *this, unsigned int, D3D12_COMMAND_LIST_TYPE, ID3D12CommandAllocator *, ID3D12PipelineState *, const _GUID *, void **);
  HRESULT (__fastcall *CheckFeatureSupport)(ID3D12Device *this, D3D12_FEATURE, void *, unsigned int);
  HRESULT (__fastcall *CreateDescriptorHeap)(ID3D12Device *this, const D3D12_DESCRIPTOR_HEAP_DESC *, const _GUID *, void **);
  unsigned int (__fastcall *GetDescriptorHandleIncrementSize)(ID3D12Device *this, D3D12_DESCRIPTOR_HEAP_TYPE);
  HRESULT (__fastcall *CreateRootSignature)(ID3D12Device *this, unsigned int, const void *, unsigned __int64, const _GUID *, void **);
  void (__fastcall *CreateConstantBufferView)(ID3D12Device *this, const D3D12_CONSTANT_BUFFER_VIEW_DESC *, D3D12_CPU_DESCRIPTOR_HANDLE);
  void (__fastcall *CreateShaderResourceView)(ID3D12Device *this, ID3D12Resource *, const D3D12_SHADER_RESOURCE_VIEW_DESC *, D3D12_CPU_DESCRIPTOR_HANDLE);
  void (__fastcall *CreateUnorderedAccessView)(ID3D12Device *this, ID3D12Resource *, ID3D12Resource *, const D3D12_UNORDERED_ACCESS_VIEW_DESC *, D3D12_CPU_DESCRIPTOR_HANDLE);
  void (__fastcall *CreateRenderTargetView)(ID3D12Device *this, ID3D12Resource *, const D3D12_RENDER_TARGET_VIEW_DESC *, D3D12_CPU_DESCRIPTOR_HANDLE);
  void (__fastcall *CreateDepthStencilView)(ID3D12Device *this, ID3D12Resource *, const D3D12_DEPTH_STENCIL_VIEW_DESC *, D3D12_CPU_DESCRIPTOR_HANDLE);
  void (__fastcall *CreateSampler)(ID3D12Device *this, const D3D12_SAMPLER_DESC *, D3D12_CPU_DESCRIPTOR_HANDLE);
  void (__fastcall *CopyDescriptors)(ID3D12Device *this, unsigned int, const D3D12_CPU_DESCRIPTOR_HANDLE *, const unsigned int *, unsigned int, const D3D12_CPU_DESCRIPTOR_HANDLE *, const unsigned int *, D3D12_DESCRIPTOR_HEAP_TYPE);
  void (__fastcall *CopyDescriptorsSimple)(ID3D12Device *this, unsigned int, D3D12_CPU_DESCRIPTOR_HANDLE, D3D12_CPU_DESCRIPTOR_HANDLE, D3D12_DESCRIPTOR_HEAP_TYPE);
  D3D12_RESOURCE_ALLOCATION_INFO *(__fastcall *GetResourceAllocationInfo)(ID3D12Device *this, D3D12_RESOURCE_ALLOCATION_INFO *result, unsigned int, unsigned int, const D3D12_RESOURCE_DESC *);
  D3D12_HEAP_PROPERTIES *(__fastcall *GetCustomHeapProperties)(ID3D12Device *this, D3D12_HEAP_PROPERTIES *result, unsigned int, D3D12_HEAP_TYPE);
  HRESULT (__fastcall *CreateCommittedResource)(ID3D12Device *this, const D3D12_HEAP_PROPERTIES *, D3D12_HEAP_FLAGS, const D3D12_RESOURCE_DESC *, D3D12_RESOURCE_STATES, const D3D12_CLEAR_VALUE *, const _GUID *, void **);
  HRESULT (__fastcall *CreateHeap)(ID3D12Device *this, const D3D12_HEAP_DESC *, const _GUID *, void **);
  HRESULT (__fastcall *CreatePlacedResource)(ID3D12Device *this, ID3D12Heap *, unsigned __int64, const D3D12_RESOURCE_DESC *, D3D12_RESOURCE_STATES, const D3D12_CLEAR_VALUE *, const _GUID *, void **);
  HRESULT (__fastcall *CreateReservedResource)(ID3D12Device *this, const D3D12_RESOURCE_DESC *, D3D12_RESOURCE_STATES, const D3D12_CLEAR_VALUE *, const _GUID *, void **);
  HRESULT (__fastcall *CreateSharedHandle)(ID3D12Device *this, ID3D12DeviceChild *, const _SECURITY_ATTRIBUTES *, unsigned int, const wchar_t *, void **);
  HRESULT (__fastcall *OpenSharedHandle)(ID3D12Device *this, void *, const _GUID *, void **);
  HRESULT (__fastcall *OpenSharedHandleByName)(ID3D12Device *this, const wchar_t *, unsigned int, void **);
  HRESULT (__fastcall *MakeResident)(ID3D12Device *this, unsigned int, ID3D12Pageable *const *);
  HRESULT (__fastcall *Evict)(ID3D12Device *this, unsigned int, ID3D12Pageable *const *);
  HRESULT (__fastcall *CreateFence)(ID3D12Device *this, unsigned __int64, D3D12_FENCE_FLAGS, const _GUID *, void **);
  HRESULT (__fastcall *GetDeviceRemovedReason)(ID3D12Device *this);
  void (__fastcall *GetCopyableFootprints)(ID3D12Device *this, const D3D12_RESOURCE_DESC *, unsigned int, unsigned int, unsigned __int64, D3D12_PLACED_SUBRESOURCE_FOOTPRINT *, unsigned int *, unsigned __int64 *, unsigned __int64 *);
  HRESULT (__fastcall *CreateQueryHeap)(ID3D12Device *this, const D3D12_QUERY_HEAP_DESC *, const _GUID *, void **);
  HRESULT (__fastcall *SetStablePowerState)(ID3D12Device *this, int);
  HRESULT (__fastcall *CreateCommandSignature)(ID3D12Device *this, const D3D12_COMMAND_SIGNATURE_DESC *, ID3D12RootSignature *, const _GUID *, void **);
  void (__fastcall *GetResourceTiling)(ID3D12Device *this, ID3D12Resource *, unsigned int *, D3D12_PACKED_MIP_INFO *, D3D12_TILE_SHAPE *, unsigned int *, unsigned int, D3D12_SUBRESOURCE_TILING *);
  _LUID (__fastcall *GetAdapterLuid)(ID3D12Device *this);
  HRESULT (__fastcall *CreatePipelineLibrary)(ID3D12Device1 *this, const void *, unsigned __int64, const _GUID *, void **);
  HRESULT (__fastcall *SetEventOnMultipleFenceCompletion)(ID3D12Device1 *this, ID3D12Fence *const *, const unsigned __int64 *, unsigned int, D3D12_MULTIPLE_FENCE_WAIT_FLAGS, void *);
  HRESULT (__fastcall *SetResidencyPriority)(ID3D12Device1 *this, unsigned int, ID3D12Pageable *const *, const D3D12_RESIDENCY_PRIORITY *);
};

# ID3D12Device2

struct __cppobj ID3D12Device2 : ID3D12Device1
{
};

# ID3D12Device2_vtbl

struct /*VFT*/ ID3D12Device2_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *GetPrivateData)(ID3D12Object *this, const _GUID *, unsigned int *, void *);
  HRESULT (__fastcall *SetPrivateData)(ID3D12Object *this, const _GUID *, unsigned int, const void *);
  HRESULT (__fastcall *SetPrivateDataInterface)(ID3D12Object *this, const _GUID *, const IUnknown *);
  HRESULT (__fastcall *SetName)(ID3D12Object *this, const wchar_t *);
  unsigned int (__fastcall *GetNodeCount)(ID3D12Device *this);
  HRESULT (__fastcall *CreateCommandQueue)(ID3D12Device *this, const D3D12_COMMAND_QUEUE_DESC *, const _GUID *, void **);
  HRESULT (__fastcall *CreateCommandAllocator)(ID3D12Device *this, D3D12_COMMAND_LIST_TYPE, const _GUID *, void **);
  HRESULT (__fastcall *CreateGraphicsPipelineState)(ID3D12Device *this, const D3D12_GRAPHICS_PIPELINE_STATE_DESC *, const _GUID *, void **);
  HRESULT (__fastcall *CreateComputePipelineState)(ID3D12Device *this, const D3D12_COMPUTE_PIPELINE_STATE_DESC *, const _GUID *, void **);
  HRESULT (__fastcall *CreateCommandList)(ID3D12Device *this, unsigned int, D3D12_COMMAND_LIST_TYPE, ID3D12CommandAllocator *, ID3D12PipelineState *, const _GUID *, void **);
  HRESULT (__fastcall *CheckFeatureSupport)(ID3D12Device *this, D3D12_FEATURE, void *, unsigned int);
  HRESULT (__fastcall *CreateDescriptorHeap)(ID3D12Device *this, const D3D12_DESCRIPTOR_HEAP_DESC *, const _GUID *, void **);
  unsigned int (__fastcall *GetDescriptorHandleIncrementSize)(ID3D12Device *this, D3D12_DESCRIPTOR_HEAP_TYPE);
  HRESULT (__fastcall *CreateRootSignature)(ID3D12Device *this, unsigned int, const void *, unsigned __int64, const _GUID *, void **);
  void (__fastcall *CreateConstantBufferView)(ID3D12Device *this, const D3D12_CONSTANT_BUFFER_VIEW_DESC *, D3D12_CPU_DESCRIPTOR_HANDLE);
  void (__fastcall *CreateShaderResourceView)(ID3D12Device *this, ID3D12Resource *, const D3D12_SHADER_RESOURCE_VIEW_DESC *, D3D12_CPU_DESCRIPTOR_HANDLE);
  void (__fastcall *CreateUnorderedAccessView)(ID3D12Device *this, ID3D12Resource *, ID3D12Resource *, const D3D12_UNORDERED_ACCESS_VIEW_DESC *, D3D12_CPU_DESCRIPTOR_HANDLE);
  void (__fastcall *CreateRenderTargetView)(ID3D12Device *this, ID3D12Resource *, const D3D12_RENDER_TARGET_VIEW_DESC *, D3D12_CPU_DESCRIPTOR_HANDLE);
  void (__fastcall *CreateDepthStencilView)(ID3D12Device *this, ID3D12Resource *, const D3D12_DEPTH_STENCIL_VIEW_DESC *, D3D12_CPU_DESCRIPTOR_HANDLE);
  void (__fastcall *CreateSampler)(ID3D12Device *this, const D3D12_SAMPLER_DESC *, D3D12_CPU_DESCRIPTOR_HANDLE);
  void (__fastcall *CopyDescriptors)(ID3D12Device *this, unsigned int, const D3D12_CPU_DESCRIPTOR_HANDLE *, const unsigned int *, unsigned int, const D3D12_CPU_DESCRIPTOR_HANDLE *, const unsigned int *, D3D12_DESCRIPTOR_HEAP_TYPE);
  void (__fastcall *CopyDescriptorsSimple)(ID3D12Device *this, unsigned int, D3D12_CPU_DESCRIPTOR_HANDLE, D3D12_CPU_DESCRIPTOR_HANDLE, D3D12_DESCRIPTOR_HEAP_TYPE);
  D3D12_RESOURCE_ALLOCATION_INFO *(__fastcall *GetResourceAllocationInfo)(ID3D12Device *this, D3D12_RESOURCE_ALLOCATION_INFO *result, unsigned int, unsigned int, const D3D12_RESOURCE_DESC *);
  D3D12_HEAP_PROPERTIES *(__fastcall *GetCustomHeapProperties)(ID3D12Device *this, D3D12_HEAP_PROPERTIES *result, unsigned int, D3D12_HEAP_TYPE);
  HRESULT (__fastcall *CreateCommittedResource)(ID3D12Device *this, const D3D12_HEAP_PROPERTIES *, D3D12_HEAP_FLAGS, const D3D12_RESOURCE_DESC *, D3D12_RESOURCE_STATES, const D3D12_CLEAR_VALUE *, const _GUID *, void **);
  HRESULT (__fastcall *CreateHeap)(ID3D12Device *this, const D3D12_HEAP_DESC *, const _GUID *, void **);
  HRESULT (__fastcall *CreatePlacedResource)(ID3D12Device *this, ID3D12Heap *, unsigned __int64, const D3D12_RESOURCE_DESC *, D3D12_RESOURCE_STATES, const D3D12_CLEAR_VALUE *, const _GUID *, void **);
  HRESULT (__fastcall *CreateReservedResource)(ID3D12Device *this, const D3D12_RESOURCE_DESC *, D3D12_RESOURCE_STATES, const D3D12_CLEAR_VALUE *, const _GUID *, void **);
  HRESULT (__fastcall *CreateSharedHandle)(ID3D12Device *this, ID3D12DeviceChild *, const _SECURITY_ATTRIBUTES *, unsigned int, const wchar_t *, void **);
  HRESULT (__fastcall *OpenSharedHandle)(ID3D12Device *this, void *, const _GUID *, void **);
  HRESULT (__fastcall *OpenSharedHandleByName)(ID3D12Device *this, const wchar_t *, unsigned int, void **);
  HRESULT (__fastcall *MakeResident)(ID3D12Device *this, unsigned int, ID3D12Pageable *const *);
  HRESULT (__fastcall *Evict)(ID3D12Device *this, unsigned int, ID3D12Pageable *const *);
  HRESULT (__fastcall *CreateFence)(ID3D12Device *this, unsigned __int64, D3D12_FENCE_FLAGS, const _GUID *, void **);
  HRESULT (__fastcall *GetDeviceRemovedReason)(ID3D12Device *this);
  void (__fastcall *GetCopyableFootprints)(ID3D12Device *this, const D3D12_RESOURCE_DESC *, unsigned int, unsigned int, unsigned __int64, D3D12_PLACED_SUBRESOURCE_FOOTPRINT *, unsigned int *, unsigned __int64 *, unsigned __int64 *);
  HRESULT (__fastcall *CreateQueryHeap)(ID3D12Device *this, const D3D12_QUERY_HEAP_DESC *, const _GUID *, void **);
  HRESULT (__fastcall *SetStablePowerState)(ID3D12Device *this, int);
  HRESULT (__fastcall *CreateCommandSignature)(ID3D12Device *this, const D3D12_COMMAND_SIGNATURE_DESC *, ID3D12RootSignature *, const _GUID *, void **);
  void (__fastcall *GetResourceTiling)(ID3D12Device *this, ID3D12Resource *, unsigned int *, D3D12_PACKED_MIP_INFO *, D3D12_TILE_SHAPE *, unsigned int *, unsigned int, D3D12_SUBRESOURCE_TILING *);
  _LUID (__fastcall *GetAdapterLuid)(ID3D12Device *this);
  HRESULT (__fastcall *CreatePipelineLibrary)(ID3D12Device1 *this, const void *, unsigned __int64, const _GUID *, void **);
  HRESULT (__fastcall *SetEventOnMultipleFenceCompletion)(ID3D12Device1 *this, ID3D12Fence *const *, const unsigned __int64 *, unsigned int, D3D12_MULTIPLE_FENCE_WAIT_FLAGS, void *);
  HRESULT (__fastcall *SetResidencyPriority)(ID3D12Device1 *this, unsigned int, ID3D12Pageable *const *, const D3D12_RESIDENCY_PRIORITY *);
  HRESULT (__fastcall *CreatePipelineState)(ID3D12Device2 *this, const D3D12_PIPELINE_STATE_STREAM_DESC *, const _GUID *, void **);
};

# ID3D12Device3

struct __cppobj ID3D12Device3 : ID3D12Device2
{
};

# ID3D12Device3_vtbl

struct /*VFT*/ ID3D12Device3_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *GetPrivateData)(ID3D12Object *this, const _GUID *, unsigned int *, void *);
  HRESULT (__fastcall *SetPrivateData)(ID3D12Object *this, const _GUID *, unsigned int, const void *);
  HRESULT (__fastcall *SetPrivateDataInterface)(ID3D12Object *this, const _GUID *, const IUnknown *);
  HRESULT (__fastcall *SetName)(ID3D12Object *this, const wchar_t *);
  unsigned int (__fastcall *GetNodeCount)(ID3D12Device *this);
  HRESULT (__fastcall *CreateCommandQueue)(ID3D12Device *this, const D3D12_COMMAND_QUEUE_DESC *, const _GUID *, void **);
  HRESULT (__fastcall *CreateCommandAllocator)(ID3D12Device *this, D3D12_COMMAND_LIST_TYPE, const _GUID *, void **);
  HRESULT (__fastcall *CreateGraphicsPipelineState)(ID3D12Device *this, const D3D12_GRAPHICS_PIPELINE_STATE_DESC *, const _GUID *, void **);
  HRESULT (__fastcall *CreateComputePipelineState)(ID3D12Device *this, const D3D12_COMPUTE_PIPELINE_STATE_DESC *, const _GUID *, void **);
  HRESULT (__fastcall *CreateCommandList)(ID3D12Device *this, unsigned int, D3D12_COMMAND_LIST_TYPE, ID3D12CommandAllocator *, ID3D12PipelineState *, const _GUID *, void **);
  HRESULT (__fastcall *CheckFeatureSupport)(ID3D12Device *this, D3D12_FEATURE, void *, unsigned int);
  HRESULT (__fastcall *CreateDescriptorHeap)(ID3D12Device *this, const D3D12_DESCRIPTOR_HEAP_DESC *, const _GUID *, void **);
  unsigned int (__fastcall *GetDescriptorHandleIncrementSize)(ID3D12Device *this, D3D12_DESCRIPTOR_HEAP_TYPE);
  HRESULT (__fastcall *CreateRootSignature)(ID3D12Device *this, unsigned int, const void *, unsigned __int64, const _GUID *, void **);
  void (__fastcall *CreateConstantBufferView)(ID3D12Device *this, const D3D12_CONSTANT_BUFFER_VIEW_DESC *, D3D12_CPU_DESCRIPTOR_HANDLE);
  void (__fastcall *CreateShaderResourceView)(ID3D12Device *this, ID3D12Resource *, const D3D12_SHADER_RESOURCE_VIEW_DESC *, D3D12_CPU_DESCRIPTOR_HANDLE);
  void (__fastcall *CreateUnorderedAccessView)(ID3D12Device *this, ID3D12Resource *, ID3D12Resource *, const D3D12_UNORDERED_ACCESS_VIEW_DESC *, D3D12_CPU_DESCRIPTOR_HANDLE);
  void (__fastcall *CreateRenderTargetView)(ID3D12Device *this, ID3D12Resource *, const D3D12_RENDER_TARGET_VIEW_DESC *, D3D12_CPU_DESCRIPTOR_HANDLE);
  void (__fastcall *CreateDepthStencilView)(ID3D12Device *this, ID3D12Resource *, const D3D12_DEPTH_STENCIL_VIEW_DESC *, D3D12_CPU_DESCRIPTOR_HANDLE);
  void (__fastcall *CreateSampler)(ID3D12Device *this, const D3D12_SAMPLER_DESC *, D3D12_CPU_DESCRIPTOR_HANDLE);
  void (__fastcall *CopyDescriptors)(ID3D12Device *this, unsigned int, const D3D12_CPU_DESCRIPTOR_HANDLE *, const unsigned int *, unsigned int, const D3D12_CPU_DESCRIPTOR_HANDLE *, const unsigned int *, D3D12_DESCRIPTOR_HEAP_TYPE);
  void (__fastcall *CopyDescriptorsSimple)(ID3D12Device *this, unsigned int, D3D12_CPU_DESCRIPTOR_HANDLE, D3D12_CPU_DESCRIPTOR_HANDLE, D3D12_DESCRIPTOR_HEAP_TYPE);
  D3D12_RESOURCE_ALLOCATION_INFO *(__fastcall *GetResourceAllocationInfo)(ID3D12Device *this, D3D12_RESOURCE_ALLOCATION_INFO *result, unsigned int, unsigned int, const D3D12_RESOURCE_DESC *);
  D3D12_HEAP_PROPERTIES *(__fastcall *GetCustomHeapProperties)(ID3D12Device *this, D3D12_HEAP_PROPERTIES *result, unsigned int, D3D12_HEAP_TYPE);
  HRESULT (__fastcall *CreateCommittedResource)(ID3D12Device *this, const D3D12_HEAP_PROPERTIES *, D3D12_HEAP_FLAGS, const D3D12_RESOURCE_DESC *, D3D12_RESOURCE_STATES, const D3D12_CLEAR_VALUE *, const _GUID *, void **);
  HRESULT (__fastcall *CreateHeap)(ID3D12Device *this, const D3D12_HEAP_DESC *, const _GUID *, void **);
  HRESULT (__fastcall *CreatePlacedResource)(ID3D12Device *this, ID3D12Heap *, unsigned __int64, const D3D12_RESOURCE_DESC *, D3D12_RESOURCE_STATES, const D3D12_CLEAR_VALUE *, const _GUID *, void **);
  HRESULT (__fastcall *CreateReservedResource)(ID3D12Device *this, const D3D12_RESOURCE_DESC *, D3D12_RESOURCE_STATES, const D3D12_CLEAR_VALUE *, const _GUID *, void **);
  HRESULT (__fastcall *CreateSharedHandle)(ID3D12Device *this, ID3D12DeviceChild *, const _SECURITY_ATTRIBUTES *, unsigned int, const wchar_t *, void **);
  HRESULT (__fastcall *OpenSharedHandle)(ID3D12Device *this, void *, const _GUID *, void **);
  HRESULT (__fastcall *OpenSharedHandleByName)(ID3D12Device *this, const wchar_t *, unsigned int, void **);
  HRESULT (__fastcall *MakeResident)(ID3D12Device *this, unsigned int, ID3D12Pageable *const *);
  HRESULT (__fastcall *Evict)(ID3D12Device *this, unsigned int, ID3D12Pageable *const *);
  HRESULT (__fastcall *CreateFence)(ID3D12Device *this, unsigned __int64, D3D12_FENCE_FLAGS, const _GUID *, void **);
  HRESULT (__fastcall *GetDeviceRemovedReason)(ID3D12Device *this);
  void (__fastcall *GetCopyableFootprints)(ID3D12Device *this, const D3D12_RESOURCE_DESC *, unsigned int, unsigned int, unsigned __int64, D3D12_PLACED_SUBRESOURCE_FOOTPRINT *, unsigned int *, unsigned __int64 *, unsigned __int64 *);
  HRESULT (__fastcall *CreateQueryHeap)(ID3D12Device *this, const D3D12_QUERY_HEAP_DESC *, const _GUID *, void **);
  HRESULT (__fastcall *SetStablePowerState)(ID3D12Device *this, int);
  HRESULT (__fastcall *CreateCommandSignature)(ID3D12Device *this, const D3D12_COMMAND_SIGNATURE_DESC *, ID3D12RootSignature *, const _GUID *, void **);
  void (__fastcall *GetResourceTiling)(ID3D12Device *this, ID3D12Resource *, unsigned int *, D3D12_PACKED_MIP_INFO *, D3D12_TILE_SHAPE *, unsigned int *, unsigned int, D3D12_SUBRESOURCE_TILING *);
  _LUID (__fastcall *GetAdapterLuid)(ID3D12Device *this);
  HRESULT (__fastcall *CreatePipelineLibrary)(ID3D12Device1 *this, const void *, unsigned __int64, const _GUID *, void **);
  HRESULT (__fastcall *SetEventOnMultipleFenceCompletion)(ID3D12Device1 *this, ID3D12Fence *const *, const unsigned __int64 *, unsigned int, D3D12_MULTIPLE_FENCE_WAIT_FLAGS, void *);
  HRESULT (__fastcall *SetResidencyPriority)(ID3D12Device1 *this, unsigned int, ID3D12Pageable *const *, const D3D12_RESIDENCY_PRIORITY *);
  HRESULT (__fastcall *CreatePipelineState)(ID3D12Device2 *this, const D3D12_PIPELINE_STATE_STREAM_DESC *, const _GUID *, void **);
  HRESULT (__fastcall *OpenExistingHeapFromAddress)(ID3D12Device3 *this, const void *, const _GUID *, void **);
  HRESULT (__fastcall *OpenExistingHeapFromFileMapping)(ID3D12Device3 *this, void *, const _GUID *, void **);
  HRESULT (__fastcall *EnqueueMakeResident)(ID3D12Device3 *this, D3D12_RESIDENCY_FLAGS, unsigned int, ID3D12Pageable *const *, ID3D12Fence *, unsigned __int64);
};

# ID3D12Device4

struct __cppobj ID3D12Device4 : ID3D12Device3
{
};

# ID3D12ProtectedSession

struct __cppobj ID3D12ProtectedSession : ID3D12DeviceChild
{
};

# ID3D12ProtectedSession_vtbl

struct /*VFT*/ ID3D12ProtectedSession_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *GetPrivateData)(ID3D12Object *this, const _GUID *, unsigned int *, void *);
  HRESULT (__fastcall *SetPrivateData)(ID3D12Object *this, const _GUID *, unsigned int, const void *);
  HRESULT (__fastcall *SetPrivateDataInterface)(ID3D12Object *this, const _GUID *, const IUnknown *);
  HRESULT (__fastcall *SetName)(ID3D12Object *this, const wchar_t *);
  HRESULT (__fastcall *GetDevice)(ID3D12DeviceChild *this, const _GUID *, void **);
  HRESULT (__fastcall *GetStatusFence)(ID3D12ProtectedSession *this, const _GUID *, void **);
  D3D12_PROTECTED_SESSION_STATUS (__fastcall *GetSessionStatus)(ID3D12ProtectedSession *this);
};

# ID3D12ProtectedResourceSession

struct __cppobj ID3D12ProtectedResourceSession : ID3D12ProtectedSession
{
};

# ID3D12ProtectedResourceSession_vtbl

struct /*VFT*/ ID3D12ProtectedResourceSession_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *GetPrivateData)(ID3D12Object *this, const _GUID *, unsigned int *, void *);
  HRESULT (__fastcall *SetPrivateData)(ID3D12Object *this, const _GUID *, unsigned int, const void *);
  HRESULT (__fastcall *SetPrivateDataInterface)(ID3D12Object *this, const _GUID *, const IUnknown *);
  HRESULT (__fastcall *SetName)(ID3D12Object *this, const wchar_t *);
  HRESULT (__fastcall *GetDevice)(ID3D12DeviceChild *this, const _GUID *, void **);
  HRESULT (__fastcall *GetStatusFence)(ID3D12ProtectedSession *this, const _GUID *, void **);
  D3D12_PROTECTED_SESSION_STATUS (__fastcall *GetSessionStatus)(ID3D12ProtectedSession *this);
  D3D12_PROTECTED_RESOURCE_SESSION_DESC (__fastcall *GetDesc)(ID3D12ProtectedResourceSession *this);
};

# ID3D12Device4_vtbl

struct /*VFT*/ ID3D12Device4_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *GetPrivateData)(ID3D12Object *this, const _GUID *, unsigned int *, void *);
  HRESULT (__fastcall *SetPrivateData)(ID3D12Object *this, const _GUID *, unsigned int, const void *);
  HRESULT (__fastcall *SetPrivateDataInterface)(ID3D12Object *this, const _GUID *, const IUnknown *);
  HRESULT (__fastcall *SetName)(ID3D12Object *this, const wchar_t *);
  unsigned int (__fastcall *GetNodeCount)(ID3D12Device *this);
  HRESULT (__fastcall *CreateCommandQueue)(ID3D12Device *this, const D3D12_COMMAND_QUEUE_DESC *, const _GUID *, void **);
  HRESULT (__fastcall *CreateCommandAllocator)(ID3D12Device *this, D3D12_COMMAND_LIST_TYPE, const _GUID *, void **);
  HRESULT (__fastcall *CreateGraphicsPipelineState)(ID3D12Device *this, const D3D12_GRAPHICS_PIPELINE_STATE_DESC *, const _GUID *, void **);
  HRESULT (__fastcall *CreateComputePipelineState)(ID3D12Device *this, const D3D12_COMPUTE_PIPELINE_STATE_DESC *, const _GUID *, void **);
  HRESULT (__fastcall *CreateCommandList)(ID3D12Device *this, unsigned int, D3D12_COMMAND_LIST_TYPE, ID3D12CommandAllocator *, ID3D12PipelineState *, const _GUID *, void **);
  HRESULT (__fastcall *CheckFeatureSupport)(ID3D12Device *this, D3D12_FEATURE, void *, unsigned int);
  HRESULT (__fastcall *CreateDescriptorHeap)(ID3D12Device *this, const D3D12_DESCRIPTOR_HEAP_DESC *, const _GUID *, void **);
  unsigned int (__fastcall *GetDescriptorHandleIncrementSize)(ID3D12Device *this, D3D12_DESCRIPTOR_HEAP_TYPE);
  HRESULT (__fastcall *CreateRootSignature)(ID3D12Device *this, unsigned int, const void *, unsigned __int64, const _GUID *, void **);
  void (__fastcall *CreateConstantBufferView)(ID3D12Device *this, const D3D12_CONSTANT_BUFFER_VIEW_DESC *, D3D12_CPU_DESCRIPTOR_HANDLE);
  void (__fastcall *CreateShaderResourceView)(ID3D12Device *this, ID3D12Resource *, const D3D12_SHADER_RESOURCE_VIEW_DESC *, D3D12_CPU_DESCRIPTOR_HANDLE);
  void (__fastcall *CreateUnorderedAccessView)(ID3D12Device *this, ID3D12Resource *, ID3D12Resource *, const D3D12_UNORDERED_ACCESS_VIEW_DESC *, D3D12_CPU_DESCRIPTOR_HANDLE);
  void (__fastcall *CreateRenderTargetView)(ID3D12Device *this, ID3D12Resource *, const D3D12_RENDER_TARGET_VIEW_DESC *, D3D12_CPU_DESCRIPTOR_HANDLE);
  void (__fastcall *CreateDepthStencilView)(ID3D12Device *this, ID3D12Resource *, const D3D12_DEPTH_STENCIL_VIEW_DESC *, D3D12_CPU_DESCRIPTOR_HANDLE);
  void (__fastcall *CreateSampler)(ID3D12Device *this, const D3D12_SAMPLER_DESC *, D3D12_CPU_DESCRIPTOR_HANDLE);
  void (__fastcall *CopyDescriptors)(ID3D12Device *this, unsigned int, const D3D12_CPU_DESCRIPTOR_HANDLE *, const unsigned int *, unsigned int, const D3D12_CPU_DESCRIPTOR_HANDLE *, const unsigned int *, D3D12_DESCRIPTOR_HEAP_TYPE);
  void (__fastcall *CopyDescriptorsSimple)(ID3D12Device *this, unsigned int, D3D12_CPU_DESCRIPTOR_HANDLE, D3D12_CPU_DESCRIPTOR_HANDLE, D3D12_DESCRIPTOR_HEAP_TYPE);
  D3D12_RESOURCE_ALLOCATION_INFO *(__fastcall *GetResourceAllocationInfo)(ID3D12Device *this, D3D12_RESOURCE_ALLOCATION_INFO *result, unsigned int, unsigned int, const D3D12_RESOURCE_DESC *);
  D3D12_HEAP_PROPERTIES *(__fastcall *GetCustomHeapProperties)(ID3D12Device *this, D3D12_HEAP_PROPERTIES *result, unsigned int, D3D12_HEAP_TYPE);
  HRESULT (__fastcall *CreateCommittedResource)(ID3D12Device *this, const D3D12_HEAP_PROPERTIES *, D3D12_HEAP_FLAGS, const D3D12_RESOURCE_DESC *, D3D12_RESOURCE_STATES, const D3D12_CLEAR_VALUE *, const _GUID *, void **);
  HRESULT (__fastcall *CreateHeap)(ID3D12Device *this, const D3D12_HEAP_DESC *, const _GUID *, void **);
  HRESULT (__fastcall *CreatePlacedResource)(ID3D12Device *this, ID3D12Heap *, unsigned __int64, const D3D12_RESOURCE_DESC *, D3D12_RESOURCE_STATES, const D3D12_CLEAR_VALUE *, const _GUID *, void **);
  HRESULT (__fastcall *CreateReservedResource)(ID3D12Device *this, const D3D12_RESOURCE_DESC *, D3D12_RESOURCE_STATES, const D3D12_CLEAR_VALUE *, const _GUID *, void **);
  HRESULT (__fastcall *CreateSharedHandle)(ID3D12Device *this, ID3D12DeviceChild *, const _SECURITY_ATTRIBUTES *, unsigned int, const wchar_t *, void **);
  HRESULT (__fastcall *OpenSharedHandle)(ID3D12Device *this, void *, const _GUID *, void **);
  HRESULT (__fastcall *OpenSharedHandleByName)(ID3D12Device *this, const wchar_t *, unsigned int, void **);
  HRESULT (__fastcall *MakeResident)(ID3D12Device *this, unsigned int, ID3D12Pageable *const *);
  HRESULT (__fastcall *Evict)(ID3D12Device *this, unsigned int, ID3D12Pageable *const *);
  HRESULT (__fastcall *CreateFence)(ID3D12Device *this, unsigned __int64, D3D12_FENCE_FLAGS, const _GUID *, void **);
  HRESULT (__fastcall *GetDeviceRemovedReason)(ID3D12Device *this);
  void (__fastcall *GetCopyableFootprints)(ID3D12Device *this, const D3D12_RESOURCE_DESC *, unsigned int, unsigned int, unsigned __int64, D3D12_PLACED_SUBRESOURCE_FOOTPRINT *, unsigned int *, unsigned __int64 *, unsigned __int64 *);
  HRESULT (__fastcall *CreateQueryHeap)(ID3D12Device *this, const D3D12_QUERY_HEAP_DESC *, const _GUID *, void **);
  HRESULT (__fastcall *SetStablePowerState)(ID3D12Device *this, int);
  HRESULT (__fastcall *CreateCommandSignature)(ID3D12Device *this, const D3D12_COMMAND_SIGNATURE_DESC *, ID3D12RootSignature *, const _GUID *, void **);
  void (__fastcall *GetResourceTiling)(ID3D12Device *this, ID3D12Resource *, unsigned int *, D3D12_PACKED_MIP_INFO *, D3D12_TILE_SHAPE *, unsigned int *, unsigned int, D3D12_SUBRESOURCE_TILING *);
  _LUID (__fastcall *GetAdapterLuid)(ID3D12Device *this);
  HRESULT (__fastcall *CreatePipelineLibrary)(ID3D12Device1 *this, const void *, unsigned __int64, const _GUID *, void **);
  HRESULT (__fastcall *SetEventOnMultipleFenceCompletion)(ID3D12Device1 *this, ID3D12Fence *const *, const unsigned __int64 *, unsigned int, D3D12_MULTIPLE_FENCE_WAIT_FLAGS, void *);
  HRESULT (__fastcall *SetResidencyPriority)(ID3D12Device1 *this, unsigned int, ID3D12Pageable *const *, const D3D12_RESIDENCY_PRIORITY *);
  HRESULT (__fastcall *CreatePipelineState)(ID3D12Device2 *this, const D3D12_PIPELINE_STATE_STREAM_DESC *, const _GUID *, void **);
  HRESULT (__fastcall *OpenExistingHeapFromAddress)(ID3D12Device3 *this, const void *, const _GUID *, void **);
  HRESULT (__fastcall *OpenExistingHeapFromFileMapping)(ID3D12Device3 *this, void *, const _GUID *, void **);
  HRESULT (__fastcall *EnqueueMakeResident)(ID3D12Device3 *this, D3D12_RESIDENCY_FLAGS, unsigned int, ID3D12Pageable *const *, ID3D12Fence *, unsigned __int64);
  HRESULT (__fastcall *CreateCommandList1)(ID3D12Device4 *this, unsigned int, D3D12_COMMAND_LIST_TYPE, D3D12_COMMAND_LIST_FLAGS, const _GUID *, void **);
  HRESULT (__fastcall *CreateProtectedResourceSession)(ID3D12Device4 *this, const D3D12_PROTECTED_RESOURCE_SESSION_DESC *, const _GUID *, void **);
  HRESULT (__fastcall *CreateCommittedResource1)(ID3D12Device4 *this, const D3D12_HEAP_PROPERTIES *, D3D12_HEAP_FLAGS, const D3D12_RESOURCE_DESC *, D3D12_RESOURCE_STATES, const D3D12_CLEAR_VALUE *, ID3D12ProtectedResourceSession *, const _GUID *, void **);
  HRESULT (__fastcall *CreateHeap1)(ID3D12Device4 *this, const D3D12_HEAP_DESC *, ID3D12ProtectedResourceSession *, const _GUID *, void **);
  HRESULT (__fastcall *CreateReservedResource1)(ID3D12Device4 *this, const D3D12_RESOURCE_DESC *, D3D12_RESOURCE_STATES, const D3D12_CLEAR_VALUE *, ID3D12ProtectedResourceSession *, const _GUID *, void **);
  D3D12_RESOURCE_ALLOCATION_INFO *(__fastcall *GetResourceAllocationInfo1)(ID3D12Device4 *this, D3D12_RESOURCE_ALLOCATION_INFO *result, unsigned int, unsigned int, const D3D12_RESOURCE_DESC *, D3D12_RESOURCE_ALLOCATION_INFO1 *);
};

# ID3D12LifetimeOwner

struct __cppobj ID3D12LifetimeOwner : IUnknown
{
};

# ID3D12LifetimeOwner_vtbl

struct /*VFT*/ ID3D12LifetimeOwner_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  void (__fastcall *LifetimeStateUpdated)(ID3D12LifetimeOwner *this, D3D12_LIFETIME_STATE);
};

# ID3D12Device5

struct __cppobj ID3D12Device5 : ID3D12Device4
{
};

# ID3D12Device5_vtbl

struct /*VFT*/ ID3D12Device5_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *GetPrivateData)(ID3D12Object *this, const _GUID *, unsigned int *, void *);
  HRESULT (__fastcall *SetPrivateData)(ID3D12Object *this, const _GUID *, unsigned int, const void *);
  HRESULT (__fastcall *SetPrivateDataInterface)(ID3D12Object *this, const _GUID *, const IUnknown *);
  HRESULT (__fastcall *SetName)(ID3D12Object *this, const wchar_t *);
  unsigned int (__fastcall *GetNodeCount)(ID3D12Device *this);
  HRESULT (__fastcall *CreateCommandQueue)(ID3D12Device *this, const D3D12_COMMAND_QUEUE_DESC *, const _GUID *, void **);
  HRESULT (__fastcall *CreateCommandAllocator)(ID3D12Device *this, D3D12_COMMAND_LIST_TYPE, const _GUID *, void **);
  HRESULT (__fastcall *CreateGraphicsPipelineState)(ID3D12Device *this, const D3D12_GRAPHICS_PIPELINE_STATE_DESC *, const _GUID *, void **);
  HRESULT (__fastcall *CreateComputePipelineState)(ID3D12Device *this, const D3D12_COMPUTE_PIPELINE_STATE_DESC *, const _GUID *, void **);
  HRESULT (__fastcall *CreateCommandList)(ID3D12Device *this, unsigned int, D3D12_COMMAND_LIST_TYPE, ID3D12CommandAllocator *, ID3D12PipelineState *, const _GUID *, void **);
  HRESULT (__fastcall *CheckFeatureSupport)(ID3D12Device *this, D3D12_FEATURE, void *, unsigned int);
  HRESULT (__fastcall *CreateDescriptorHeap)(ID3D12Device *this, const D3D12_DESCRIPTOR_HEAP_DESC *, const _GUID *, void **);
  unsigned int (__fastcall *GetDescriptorHandleIncrementSize)(ID3D12Device *this, D3D12_DESCRIPTOR_HEAP_TYPE);
  HRESULT (__fastcall *CreateRootSignature)(ID3D12Device *this, unsigned int, const void *, unsigned __int64, const _GUID *, void **);
  void (__fastcall *CreateConstantBufferView)(ID3D12Device *this, const D3D12_CONSTANT_BUFFER_VIEW_DESC *, D3D12_CPU_DESCRIPTOR_HANDLE);
  void (__fastcall *CreateShaderResourceView)(ID3D12Device *this, ID3D12Resource *, const D3D12_SHADER_RESOURCE_VIEW_DESC *, D3D12_CPU_DESCRIPTOR_HANDLE);
  void (__fastcall *CreateUnorderedAccessView)(ID3D12Device *this, ID3D12Resource *, ID3D12Resource *, const D3D12_UNORDERED_ACCESS_VIEW_DESC *, D3D12_CPU_DESCRIPTOR_HANDLE);
  void (__fastcall *CreateRenderTargetView)(ID3D12Device *this, ID3D12Resource *, const D3D12_RENDER_TARGET_VIEW_DESC *, D3D12_CPU_DESCRIPTOR_HANDLE);
  void (__fastcall *CreateDepthStencilView)(ID3D12Device *this, ID3D12Resource *, const D3D12_DEPTH_STENCIL_VIEW_DESC *, D3D12_CPU_DESCRIPTOR_HANDLE);
  void (__fastcall *CreateSampler)(ID3D12Device *this, const D3D12_SAMPLER_DESC *, D3D12_CPU_DESCRIPTOR_HANDLE);
  void (__fastcall *CopyDescriptors)(ID3D12Device *this, unsigned int, const D3D12_CPU_DESCRIPTOR_HANDLE *, const unsigned int *, unsigned int, const D3D12_CPU_DESCRIPTOR_HANDLE *, const unsigned int *, D3D12_DESCRIPTOR_HEAP_TYPE);
  void (__fastcall *CopyDescriptorsSimple)(ID3D12Device *this, unsigned int, D3D12_CPU_DESCRIPTOR_HANDLE, D3D12_CPU_DESCRIPTOR_HANDLE, D3D12_DESCRIPTOR_HEAP_TYPE);
  D3D12_RESOURCE_ALLOCATION_INFO *(__fastcall *GetResourceAllocationInfo)(ID3D12Device *this, D3D12_RESOURCE_ALLOCATION_INFO *result, unsigned int, unsigned int, const D3D12_RESOURCE_DESC *);
  D3D12_HEAP_PROPERTIES *(__fastcall *GetCustomHeapProperties)(ID3D12Device *this, D3D12_HEAP_PROPERTIES *result, unsigned int, D3D12_HEAP_TYPE);
  HRESULT (__fastcall *CreateCommittedResource)(ID3D12Device *this, const D3D12_HEAP_PROPERTIES *, D3D12_HEAP_FLAGS, const D3D12_RESOURCE_DESC *, D3D12_RESOURCE_STATES, const D3D12_CLEAR_VALUE *, const _GUID *, void **);
  HRESULT (__fastcall *CreateHeap)(ID3D12Device *this, const D3D12_HEAP_DESC *, const _GUID *, void **);
  HRESULT (__fastcall *CreatePlacedResource)(ID3D12Device *this, ID3D12Heap *, unsigned __int64, const D3D12_RESOURCE_DESC *, D3D12_RESOURCE_STATES, const D3D12_CLEAR_VALUE *, const _GUID *, void **);
  HRESULT (__fastcall *CreateReservedResource)(ID3D12Device *this, const D3D12_RESOURCE_DESC *, D3D12_RESOURCE_STATES, const D3D12_CLEAR_VALUE *, const _GUID *, void **);
  HRESULT (__fastcall *CreateSharedHandle)(ID3D12Device *this, ID3D12DeviceChild *, const _SECURITY_ATTRIBUTES *, unsigned int, const wchar_t *, void **);
  HRESULT (__fastcall *OpenSharedHandle)(ID3D12Device *this, void *, const _GUID *, void **);
  HRESULT (__fastcall *OpenSharedHandleByName)(ID3D12Device *this, const wchar_t *, unsigned int, void **);
  HRESULT (__fastcall *MakeResident)(ID3D12Device *this, unsigned int, ID3D12Pageable *const *);
  HRESULT (__fastcall *Evict)(ID3D12Device *this, unsigned int, ID3D12Pageable *const *);
  HRESULT (__fastcall *CreateFence)(ID3D12Device *this, unsigned __int64, D3D12_FENCE_FLAGS, const _GUID *, void **);
  HRESULT (__fastcall *GetDeviceRemovedReason)(ID3D12Device *this);
  void (__fastcall *GetCopyableFootprints)(ID3D12Device *this, const D3D12_RESOURCE_DESC *, unsigned int, unsigned int, unsigned __int64, D3D12_PLACED_SUBRESOURCE_FOOTPRINT *, unsigned int *, unsigned __int64 *, unsigned __int64 *);
  HRESULT (__fastcall *CreateQueryHeap)(ID3D12Device *this, const D3D12_QUERY_HEAP_DESC *, const _GUID *, void **);
  HRESULT (__fastcall *SetStablePowerState)(ID3D12Device *this, int);
  HRESULT (__fastcall *CreateCommandSignature)(ID3D12Device *this, const D3D12_COMMAND_SIGNATURE_DESC *, ID3D12RootSignature *, const _GUID *, void **);
  void (__fastcall *GetResourceTiling)(ID3D12Device *this, ID3D12Resource *, unsigned int *, D3D12_PACKED_MIP_INFO *, D3D12_TILE_SHAPE *, unsigned int *, unsigned int, D3D12_SUBRESOURCE_TILING *);
  _LUID (__fastcall *GetAdapterLuid)(ID3D12Device *this);
  HRESULT (__fastcall *CreatePipelineLibrary)(ID3D12Device1 *this, const void *, unsigned __int64, const _GUID *, void **);
  HRESULT (__fastcall *SetEventOnMultipleFenceCompletion)(ID3D12Device1 *this, ID3D12Fence *const *, const unsigned __int64 *, unsigned int, D3D12_MULTIPLE_FENCE_WAIT_FLAGS, void *);
  HRESULT (__fastcall *SetResidencyPriority)(ID3D12Device1 *this, unsigned int, ID3D12Pageable *const *, const D3D12_RESIDENCY_PRIORITY *);
  HRESULT (__fastcall *CreatePipelineState)(ID3D12Device2 *this, const D3D12_PIPELINE_STATE_STREAM_DESC *, const _GUID *, void **);
  HRESULT (__fastcall *OpenExistingHeapFromAddress)(ID3D12Device3 *this, const void *, const _GUID *, void **);
  HRESULT (__fastcall *OpenExistingHeapFromFileMapping)(ID3D12Device3 *this, void *, const _GUID *, void **);
  HRESULT (__fastcall *EnqueueMakeResident)(ID3D12Device3 *this, D3D12_RESIDENCY_FLAGS, unsigned int, ID3D12Pageable *const *, ID3D12Fence *, unsigned __int64);
  HRESULT (__fastcall *CreateCommandList1)(ID3D12Device4 *this, unsigned int, D3D12_COMMAND_LIST_TYPE, D3D12_COMMAND_LIST_FLAGS, const _GUID *, void **);
  HRESULT (__fastcall *CreateProtectedResourceSession)(ID3D12Device4 *this, const D3D12_PROTECTED_RESOURCE_SESSION_DESC *, const _GUID *, void **);
  HRESULT (__fastcall *CreateCommittedResource1)(ID3D12Device4 *this, const D3D12_HEAP_PROPERTIES *, D3D12_HEAP_FLAGS, const D3D12_RESOURCE_DESC *, D3D12_RESOURCE_STATES, const D3D12_CLEAR_VALUE *, ID3D12ProtectedResourceSession *, const _GUID *, void **);
  HRESULT (__fastcall *CreateHeap1)(ID3D12Device4 *this, const D3D12_HEAP_DESC *, ID3D12ProtectedResourceSession *, const _GUID *, void **);
  HRESULT (__fastcall *CreateReservedResource1)(ID3D12Device4 *this, const D3D12_RESOURCE_DESC *, D3D12_RESOURCE_STATES, const D3D12_CLEAR_VALUE *, ID3D12ProtectedResourceSession *, const _GUID *, void **);
  D3D12_RESOURCE_ALLOCATION_INFO *(__fastcall *GetResourceAllocationInfo1)(ID3D12Device4 *this, D3D12_RESOURCE_ALLOCATION_INFO *result, unsigned int, unsigned int, const D3D12_RESOURCE_DESC *, D3D12_RESOURCE_ALLOCATION_INFO1 *);
  HRESULT (__fastcall *CreateLifetimeTracker)(ID3D12Device5 *this, ID3D12LifetimeOwner *, const _GUID *, void **);
  void (__fastcall *RemoveDevice)(ID3D12Device5 *this);
  HRESULT (__fastcall *EnumerateMetaCommands)(ID3D12Device5 *this, unsigned int *, D3D12_META_COMMAND_DESC *);
  HRESULT (__fastcall *EnumerateMetaCommandParameters)(ID3D12Device5 *this, const _GUID *, D3D12_META_COMMAND_PARAMETER_STAGE, unsigned int *, unsigned int *, D3D12_META_COMMAND_PARAMETER_DESC *);
  HRESULT (__fastcall *CreateMetaCommand)(ID3D12Device5 *this, const _GUID *, unsigned int, const void *, unsigned __int64, const _GUID *, void **);
  HRESULT (__fastcall *CreateStateObject)(ID3D12Device5 *this, const D3D12_STATE_OBJECT_DESC *, const _GUID *, void **);
  void (__fastcall *GetRaytracingAccelerationStructurePrebuildInfo)(ID3D12Device5 *this, const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *, D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *);
  D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS (__fastcall *CheckDriverMatchingIdentifier)(ID3D12Device5 *this, D3D12_SERIALIZED_DATA_TYPE, const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *);
};

# IDxcBlob_vtbl

struct /*VFT*/ IDxcBlob_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  void *(__fastcall *GetBufferPointer)(IDxcBlob *this);
  unsigned __int64 (__fastcall *GetBufferSize)(IDxcBlob *this);
};

# ID3D12StateObject_vtbl

struct /*VFT*/ ID3D12StateObject_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *GetPrivateData)(ID3D12Object *this, const _GUID *, unsigned int *, void *);
  HRESULT (__fastcall *SetPrivateData)(ID3D12Object *this, const _GUID *, unsigned int, const void *);
  HRESULT (__fastcall *SetPrivateDataInterface)(ID3D12Object *this, const _GUID *, const IUnknown *);
  HRESULT (__fastcall *SetName)(ID3D12Object *this, const wchar_t *);
  HRESULT (__fastcall *GetDevice)(ID3D12DeviceChild *this, const _GUID *, void **);
};

# ID3D12StateObject

struct __cppobj ID3D12StateObject : ID3D12Pageable
{
};

# ID3D12StateObjectProperties

struct __cppobj ID3D12StateObjectProperties : IUnknown
{
};

# ID3D12StateObjectProperties_vtbl

struct /*VFT*/ ID3D12StateObjectProperties_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  void *(__fastcall *GetShaderIdentifier)(ID3D12StateObjectProperties *this, const wchar_t *);
  unsigned __int64 (__fastcall *GetShaderStackSize)(ID3D12StateObjectProperties *this, const wchar_t *);
  unsigned __int64 (__fastcall *GetPipelineStackSize)(ID3D12StateObjectProperties *this);
  void (__fastcall *SetPipelineStackSize)(ID3D12StateObjectProperties *this, unsigned __int64);
};

# ID3D12GraphicsCommandList1

struct __cppobj ID3D12GraphicsCommandList1 : ID3D12GraphicsCommandList
{
};

# ID3D12GraphicsCommandList2

struct __cppobj ID3D12GraphicsCommandList2 : ID3D12GraphicsCommandList1
{
};

# ID3D12GraphicsCommandList3

struct __cppobj ID3D12GraphicsCommandList3 : ID3D12GraphicsCommandList2
{
};

# ID3D12GraphicsCommandList4

struct __cppobj ID3D12GraphicsCommandList4 : ID3D12GraphicsCommandList3
{
};

# ID3D12MetaCommand

struct __cppobj ID3D12MetaCommand : ID3D12Pageable
{
};

# ID3D12MetaCommand_vtbl

struct /*VFT*/ ID3D12MetaCommand_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *GetPrivateData)(ID3D12Object *this, const _GUID *, unsigned int *, void *);
  HRESULT (__fastcall *SetPrivateData)(ID3D12Object *this, const _GUID *, unsigned int, const void *);
  HRESULT (__fastcall *SetPrivateDataInterface)(ID3D12Object *this, const _GUID *, const IUnknown *);
  HRESULT (__fastcall *SetName)(ID3D12Object *this, const wchar_t *);
  HRESULT (__fastcall *GetDevice)(ID3D12DeviceChild *this, const _GUID *, void **);
  unsigned __int64 (__fastcall *GetRequiredParameterResourceSize)(ID3D12MetaCommand *this, D3D12_META_COMMAND_PARAMETER_STAGE, unsigned int);
};

# IDirect3D9

struct __cppobj IDirect3D9 : IUnknown
{
};

# IDirect3DDevice9

struct __cppobj IDirect3DDevice9 : IUnknown
{
};

# IDirect3DResource9

struct __cppobj IDirect3DResource9 : IUnknown
{
};

# IDirect3DResource9_vtbl

struct /*VFT*/ IDirect3DResource9_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *GetDevice)(IDirect3DResource9 *this, IDirect3DDevice9 **);
  HRESULT (__fastcall *SetPrivateData)(IDirect3DResource9 *this, const _GUID *, const void *, unsigned int, unsigned int);
  HRESULT (__fastcall *GetPrivateData)(IDirect3DResource9 *this, const _GUID *, void *, unsigned int *);
  HRESULT (__fastcall *FreePrivateData)(IDirect3DResource9 *this, const _GUID *);
  unsigned int (__fastcall *SetPriority)(IDirect3DResource9 *this, unsigned int);
  unsigned int (__fastcall *GetPriority)(IDirect3DResource9 *this);
  void (__fastcall *PreLoad)(IDirect3DResource9 *this);
  _D3DRESOURCETYPE (__fastcall *GetType)(IDirect3DResource9 *this);
};

# IDirect3DSurface9

struct __cppobj IDirect3DSurface9 : IDirect3DResource9
{
};

# IDirect3DSurface9_vtbl

struct /*VFT*/ IDirect3DSurface9_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *GetDevice)(IDirect3DResource9 *this, IDirect3DDevice9 **);
  HRESULT (__fastcall *SetPrivateData)(IDirect3DResource9 *this, const _GUID *, const void *, unsigned int, unsigned int);
  HRESULT (__fastcall *GetPrivateData)(IDirect3DResource9 *this, const _GUID *, void *, unsigned int *);
  HRESULT (__fastcall *FreePrivateData)(IDirect3DResource9 *this, const _GUID *);
  unsigned int (__fastcall *SetPriority)(IDirect3DResource9 *this, unsigned int);
  unsigned int (__fastcall *GetPriority)(IDirect3DResource9 *this);
  void (__fastcall *PreLoad)(IDirect3DResource9 *this);
  _D3DRESOURCETYPE (__fastcall *GetType)(IDirect3DResource9 *this);
  HRESULT (__fastcall *GetContainer)(IDirect3DSurface9 *this, const _GUID *, void **);
  HRESULT (__fastcall *GetDesc)(IDirect3DSurface9 *this, _D3DSURFACE_DESC *);
  HRESULT (__fastcall *LockRect)(IDirect3DSurface9 *this, _D3DLOCKED_RECT *, const tagRECT *, unsigned int);
  HRESULT (__fastcall *UnlockRect)(IDirect3DSurface9 *this);
  HRESULT (__fastcall *GetDC)(IDirect3DSurface9 *this, HDC__ **);
  HRESULT (__fastcall *ReleaseDC)(IDirect3DSurface9 *this, HDC__ *);
};

# IDirect3DSwapChain9

struct __cppobj IDirect3DSwapChain9 : IUnknown
{
};

# IDirect3DSwapChain9_vtbl

struct /*VFT*/ IDirect3DSwapChain9_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *Present)(IDirect3DSwapChain9 *this, const tagRECT *, const tagRECT *, HWND__ *, const _RGNDATA *, unsigned int);
  HRESULT (__fastcall *GetFrontBufferData)(IDirect3DSwapChain9 *this, IDirect3DSurface9 *);
  HRESULT (__fastcall *GetBackBuffer)(IDirect3DSwapChain9 *this, unsigned int, _D3DBACKBUFFER_TYPE, IDirect3DSurface9 **);
  HRESULT (__fastcall *GetRasterStatus)(IDirect3DSwapChain9 *this, _D3DRASTER_STATUS *);
  HRESULT (__fastcall *GetDisplayMode)(IDirect3DSwapChain9 *this, _D3DDISPLAYMODE *);
  HRESULT (__fastcall *GetDevice)(IDirect3DSwapChain9 *this, IDirect3DDevice9 **);
  HRESULT (__fastcall *GetPresentParameters)(IDirect3DSwapChain9 *this, _D3DPRESENT_PARAMETERS_ *);
};

# IDirect3DBaseTexture9

struct __cppobj IDirect3DBaseTexture9 : IDirect3DResource9
{
};

# IDirect3DBaseTexture9_vtbl

struct /*VFT*/ IDirect3DBaseTexture9_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *GetDevice)(IDirect3DResource9 *this, IDirect3DDevice9 **);
  HRESULT (__fastcall *SetPrivateData)(IDirect3DResource9 *this, const _GUID *, const void *, unsigned int, unsigned int);
  HRESULT (__fastcall *GetPrivateData)(IDirect3DResource9 *this, const _GUID *, void *, unsigned int *);
  HRESULT (__fastcall *FreePrivateData)(IDirect3DResource9 *this, const _GUID *);
  unsigned int (__fastcall *SetPriority)(IDirect3DResource9 *this, unsigned int);
  unsigned int (__fastcall *GetPriority)(IDirect3DResource9 *this);
  void (__fastcall *PreLoad)(IDirect3DResource9 *this);
  _D3DRESOURCETYPE (__fastcall *GetType)(IDirect3DResource9 *this);
  unsigned int (__fastcall *SetLOD)(IDirect3DBaseTexture9 *this, unsigned int);
  unsigned int (__fastcall *GetLOD)(IDirect3DBaseTexture9 *this);
  unsigned int (__fastcall *GetLevelCount)(IDirect3DBaseTexture9 *this);
  HRESULT (__fastcall *SetAutoGenFilterType)(IDirect3DBaseTexture9 *this, _D3DTEXTUREFILTERTYPE);
  _D3DTEXTUREFILTERTYPE (__fastcall *GetAutoGenFilterType)(IDirect3DBaseTexture9 *this);
  void (__fastcall *GenerateMipSubLevels)(IDirect3DBaseTexture9 *this);
};

# IDirect3DTexture9

struct __cppobj IDirect3DTexture9 : IDirect3DBaseTexture9
{
};

# IDirect3DTexture9_vtbl

struct /*VFT*/ IDirect3DTexture9_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *GetDevice)(IDirect3DResource9 *this, IDirect3DDevice9 **);
  HRESULT (__fastcall *SetPrivateData)(IDirect3DResource9 *this, const _GUID *, const void *, unsigned int, unsigned int);
  HRESULT (__fastcall *GetPrivateData)(IDirect3DResource9 *this, const _GUID *, void *, unsigned int *);
  HRESULT (__fastcall *FreePrivateData)(IDirect3DResource9 *this, const _GUID *);
  unsigned int (__fastcall *SetPriority)(IDirect3DResource9 *this, unsigned int);
  unsigned int (__fastcall *GetPriority)(IDirect3DResource9 *this);
  void (__fastcall *PreLoad)(IDirect3DResource9 *this);
  _D3DRESOURCETYPE (__fastcall *GetType)(IDirect3DResource9 *this);
  unsigned int (__fastcall *SetLOD)(IDirect3DBaseTexture9 *this, unsigned int);
  unsigned int (__fastcall *GetLOD)(IDirect3DBaseTexture9 *this);
  unsigned int (__fastcall *GetLevelCount)(IDirect3DBaseTexture9 *this);
  HRESULT (__fastcall *SetAutoGenFilterType)(IDirect3DBaseTexture9 *this, _D3DTEXTUREFILTERTYPE);
  _D3DTEXTUREFILTERTYPE (__fastcall *GetAutoGenFilterType)(IDirect3DBaseTexture9 *this);
  void (__fastcall *GenerateMipSubLevels)(IDirect3DBaseTexture9 *this);
  HRESULT (__fastcall *GetLevelDesc)(IDirect3DTexture9 *this, unsigned int, _D3DSURFACE_DESC *);
  HRESULT (__fastcall *GetSurfaceLevel)(IDirect3DTexture9 *this, unsigned int, IDirect3DSurface9 **);
  HRESULT (__fastcall *LockRect)(IDirect3DTexture9 *this, unsigned int, _D3DLOCKED_RECT *, const tagRECT *, unsigned int);
  HRESULT (__fastcall *UnlockRect)(IDirect3DTexture9 *this, unsigned int);
  HRESULT (__fastcall *AddDirtyRect)(IDirect3DTexture9 *this, const tagRECT *);
};

# IDirect3DVolumeTexture9

struct __cppobj IDirect3DVolumeTexture9 : IDirect3DBaseTexture9
{
};

# IDirect3DVolume9

struct __cppobj IDirect3DVolume9 : IUnknown
{
};

# IDirect3DVolume9_vtbl

struct /*VFT*/ IDirect3DVolume9_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *GetDevice)(IDirect3DVolume9 *this, IDirect3DDevice9 **);
  HRESULT (__fastcall *SetPrivateData)(IDirect3DVolume9 *this, const _GUID *, const void *, unsigned int, unsigned int);
  HRESULT (__fastcall *GetPrivateData)(IDirect3DVolume9 *this, const _GUID *, void *, unsigned int *);
  HRESULT (__fastcall *FreePrivateData)(IDirect3DVolume9 *this, const _GUID *);
  HRESULT (__fastcall *GetContainer)(IDirect3DVolume9 *this, const _GUID *, void **);
  HRESULT (__fastcall *GetDesc)(IDirect3DVolume9 *this, _D3DVOLUME_DESC *);
  HRESULT (__fastcall *LockBox)(IDirect3DVolume9 *this, _D3DLOCKED_BOX *, const _D3DBOX *, unsigned int);
  HRESULT (__fastcall *UnlockBox)(IDirect3DVolume9 *this);
};

# IDirect3DVolumeTexture9_vtbl

struct /*VFT*/ IDirect3DVolumeTexture9_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *GetDevice)(IDirect3DResource9 *this, IDirect3DDevice9 **);
  HRESULT (__fastcall *SetPrivateData)(IDirect3DResource9 *this, const _GUID *, const void *, unsigned int, unsigned int);
  HRESULT (__fastcall *GetPrivateData)(IDirect3DResource9 *this, const _GUID *, void *, unsigned int *);
  HRESULT (__fastcall *FreePrivateData)(IDirect3DResource9 *this, const _GUID *);
  unsigned int (__fastcall *SetPriority)(IDirect3DResource9 *this, unsigned int);
  unsigned int (__fastcall *GetPriority)(IDirect3DResource9 *this);
  void (__fastcall *PreLoad)(IDirect3DResource9 *this);
  _D3DRESOURCETYPE (__fastcall *GetType)(IDirect3DResource9 *this);
  unsigned int (__fastcall *SetLOD)(IDirect3DBaseTexture9 *this, unsigned int);
  unsigned int (__fastcall *GetLOD)(IDirect3DBaseTexture9 *this);
  unsigned int (__fastcall *GetLevelCount)(IDirect3DBaseTexture9 *this);
  HRESULT (__fastcall *SetAutoGenFilterType)(IDirect3DBaseTexture9 *this, _D3DTEXTUREFILTERTYPE);
  _D3DTEXTUREFILTERTYPE (__fastcall *GetAutoGenFilterType)(IDirect3DBaseTexture9 *this);
  void (__fastcall *GenerateMipSubLevels)(IDirect3DBaseTexture9 *this);
  HRESULT (__fastcall *GetLevelDesc)(IDirect3DVolumeTexture9 *this, unsigned int, _D3DVOLUME_DESC *);
  HRESULT (__fastcall *GetVolumeLevel)(IDirect3DVolumeTexture9 *this, unsigned int, IDirect3DVolume9 **);
  HRESULT (__fastcall *LockBox)(IDirect3DVolumeTexture9 *this, unsigned int, _D3DLOCKED_BOX *, const _D3DBOX *, unsigned int);
  HRESULT (__fastcall *UnlockBox)(IDirect3DVolumeTexture9 *this, unsigned int);
  HRESULT (__fastcall *AddDirtyBox)(IDirect3DVolumeTexture9 *this, const _D3DBOX *);
};

# IDirect3DCubeTexture9

struct __cppobj IDirect3DCubeTexture9 : IDirect3DBaseTexture9
{
};

# IDirect3DCubeTexture9_vtbl

struct /*VFT*/ IDirect3DCubeTexture9_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *GetDevice)(IDirect3DResource9 *this, IDirect3DDevice9 **);
  HRESULT (__fastcall *SetPrivateData)(IDirect3DResource9 *this, const _GUID *, const void *, unsigned int, unsigned int);
  HRESULT (__fastcall *GetPrivateData)(IDirect3DResource9 *this, const _GUID *, void *, unsigned int *);
  HRESULT (__fastcall *FreePrivateData)(IDirect3DResource9 *this, const _GUID *);
  unsigned int (__fastcall *SetPriority)(IDirect3DResource9 *this, unsigned int);
  unsigned int (__fastcall *GetPriority)(IDirect3DResource9 *this);
  void (__fastcall *PreLoad)(IDirect3DResource9 *this);
  _D3DRESOURCETYPE (__fastcall *GetType)(IDirect3DResource9 *this);
  unsigned int (__fastcall *SetLOD)(IDirect3DBaseTexture9 *this, unsigned int);
  unsigned int (__fastcall *GetLOD)(IDirect3DBaseTexture9 *this);
  unsigned int (__fastcall *GetLevelCount)(IDirect3DBaseTexture9 *this);
  HRESULT (__fastcall *SetAutoGenFilterType)(IDirect3DBaseTexture9 *this, _D3DTEXTUREFILTERTYPE);
  _D3DTEXTUREFILTERTYPE (__fastcall *GetAutoGenFilterType)(IDirect3DBaseTexture9 *this);
  void (__fastcall *GenerateMipSubLevels)(IDirect3DBaseTexture9 *this);
  HRESULT (__fastcall *GetLevelDesc)(IDirect3DCubeTexture9 *this, unsigned int, _D3DSURFACE_DESC *);
  HRESULT (__fastcall *GetCubeMapSurface)(IDirect3DCubeTexture9 *this, _D3DCUBEMAP_FACES, unsigned int, IDirect3DSurface9 **);
  HRESULT (__fastcall *LockRect)(IDirect3DCubeTexture9 *this, _D3DCUBEMAP_FACES, unsigned int, _D3DLOCKED_RECT *, const tagRECT *, unsigned int);
  HRESULT (__fastcall *UnlockRect)(IDirect3DCubeTexture9 *this, _D3DCUBEMAP_FACES, unsigned int);
  HRESULT (__fastcall *AddDirtyRect)(IDirect3DCubeTexture9 *this, _D3DCUBEMAP_FACES, const tagRECT *);
};

# IDirect3DVertexBuffer9

struct __cppobj IDirect3DVertexBuffer9 : IDirect3DResource9
{
};

# IDirect3DVertexBuffer9_vtbl

struct /*VFT*/ IDirect3DVertexBuffer9_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *GetDevice)(IDirect3DResource9 *this, IDirect3DDevice9 **);
  HRESULT (__fastcall *SetPrivateData)(IDirect3DResource9 *this, const _GUID *, const void *, unsigned int, unsigned int);
  HRESULT (__fastcall *GetPrivateData)(IDirect3DResource9 *this, const _GUID *, void *, unsigned int *);
  HRESULT (__fastcall *FreePrivateData)(IDirect3DResource9 *this, const _GUID *);
  unsigned int (__fastcall *SetPriority)(IDirect3DResource9 *this, unsigned int);
  unsigned int (__fastcall *GetPriority)(IDirect3DResource9 *this);
  void (__fastcall *PreLoad)(IDirect3DResource9 *this);
  _D3DRESOURCETYPE (__fastcall *GetType)(IDirect3DResource9 *this);
  HRESULT (__fastcall *Lock)(IDirect3DVertexBuffer9 *this, unsigned int, unsigned int, void **, unsigned int);
  HRESULT (__fastcall *Unlock)(IDirect3DVertexBuffer9 *this);
  HRESULT (__fastcall *GetDesc)(IDirect3DVertexBuffer9 *this, _D3DVERTEXBUFFER_DESC *);
};

# IDirect3DIndexBuffer9

struct __cppobj IDirect3DIndexBuffer9 : IDirect3DResource9
{
};

# IDirect3DIndexBuffer9_vtbl

struct /*VFT*/ IDirect3DIndexBuffer9_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *GetDevice)(IDirect3DResource9 *this, IDirect3DDevice9 **);
  HRESULT (__fastcall *SetPrivateData)(IDirect3DResource9 *this, const _GUID *, const void *, unsigned int, unsigned int);
  HRESULT (__fastcall *GetPrivateData)(IDirect3DResource9 *this, const _GUID *, void *, unsigned int *);
  HRESULT (__fastcall *FreePrivateData)(IDirect3DResource9 *this, const _GUID *);
  unsigned int (__fastcall *SetPriority)(IDirect3DResource9 *this, unsigned int);
  unsigned int (__fastcall *GetPriority)(IDirect3DResource9 *this);
  void (__fastcall *PreLoad)(IDirect3DResource9 *this);
  _D3DRESOURCETYPE (__fastcall *GetType)(IDirect3DResource9 *this);
  HRESULT (__fastcall *Lock)(IDirect3DIndexBuffer9 *this, unsigned int, unsigned int, void **, unsigned int);
  HRESULT (__fastcall *Unlock)(IDirect3DIndexBuffer9 *this);
  HRESULT (__fastcall *GetDesc)(IDirect3DIndexBuffer9 *this, _D3DINDEXBUFFER_DESC *);
};

# IDirect3DStateBlock9

struct __cppobj IDirect3DStateBlock9 : IUnknown
{
};

# IDirect3DStateBlock9_vtbl

struct /*VFT*/ IDirect3DStateBlock9_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *GetDevice)(IDirect3DStateBlock9 *this, IDirect3DDevice9 **);
  HRESULT (__fastcall *Capture)(IDirect3DStateBlock9 *this);
  HRESULT (__fastcall *Apply)(IDirect3DStateBlock9 *this);
};

# IDirect3DVertexDeclaration9

struct __cppobj IDirect3DVertexDeclaration9 : IUnknown
{
};

# IDirect3DVertexDeclaration9_vtbl

struct /*VFT*/ IDirect3DVertexDeclaration9_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *GetDevice)(IDirect3DVertexDeclaration9 *this, IDirect3DDevice9 **);
  HRESULT (__fastcall *GetDeclaration)(IDirect3DVertexDeclaration9 *this, _D3DVERTEXELEMENT9 *, unsigned int *);
};

# IDirect3DVertexShader9

struct __cppobj IDirect3DVertexShader9 : IUnknown
{
};

# IDirect3DVertexShader9_vtbl

struct /*VFT*/ IDirect3DVertexShader9_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *GetDevice)(IDirect3DVertexShader9 *this, IDirect3DDevice9 **);
  HRESULT (__fastcall *GetFunction)(IDirect3DVertexShader9 *this, void *, unsigned int *);
};

# IDirect3DPixelShader9

struct __cppobj IDirect3DPixelShader9 : IUnknown
{
};

# IDirect3DPixelShader9_vtbl

struct /*VFT*/ IDirect3DPixelShader9_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *GetDevice)(IDirect3DPixelShader9 *this, IDirect3DDevice9 **);
  HRESULT (__fastcall *GetFunction)(IDirect3DPixelShader9 *this, void *, unsigned int *);
};

# IDirect3DQuery9

struct __cppobj IDirect3DQuery9 : IUnknown
{
};

# IDirect3DQuery9_vtbl

struct /*VFT*/ IDirect3DQuery9_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *GetDevice)(IDirect3DQuery9 *this, IDirect3DDevice9 **);
  _D3DQUERYTYPE (__fastcall *GetType)(IDirect3DQuery9 *this);
  unsigned int (__fastcall *GetDataSize)(IDirect3DQuery9 *this);
  HRESULT (__fastcall *Issue)(IDirect3DQuery9 *this, unsigned int);
  HRESULT (__fastcall *GetData)(IDirect3DQuery9 *this, void *, unsigned int, unsigned int);
};

# IDirect3DDevice9_vtbl

struct /*VFT*/ IDirect3DDevice9_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *TestCooperativeLevel)(IDirect3DDevice9 *this);
  unsigned int (__fastcall *GetAvailableTextureMem)(IDirect3DDevice9 *this);
  HRESULT (__fastcall *EvictManagedResources)(IDirect3DDevice9 *this);
  HRESULT (__fastcall *GetDirect3D)(IDirect3DDevice9 *this, IDirect3D9 **);
  HRESULT (__fastcall *GetDeviceCaps)(IDirect3DDevice9 *this, _D3DCAPS9 *);
  HRESULT (__fastcall *GetDisplayMode)(IDirect3DDevice9 *this, unsigned int, _D3DDISPLAYMODE *);
  HRESULT (__fastcall *GetCreationParameters)(IDirect3DDevice9 *this, _D3DDEVICE_CREATION_PARAMETERS *);
  HRESULT (__fastcall *SetCursorProperties)(IDirect3DDevice9 *this, unsigned int, unsigned int, IDirect3DSurface9 *);
  void (__fastcall *SetCursorPosition)(IDirect3DDevice9 *this, int, int, unsigned int);
  int (__fastcall *ShowCursor)(IDirect3DDevice9 *this, int);
  HRESULT (__fastcall *CreateAdditionalSwapChain)(IDirect3DDevice9 *this, _D3DPRESENT_PARAMETERS_ *, IDirect3DSwapChain9 **);
  HRESULT (__fastcall *GetSwapChain)(IDirect3DDevice9 *this, unsigned int, IDirect3DSwapChain9 **);
  unsigned int (__fastcall *GetNumberOfSwapChains)(IDirect3DDevice9 *this);
  HRESULT (__fastcall *Reset)(IDirect3DDevice9 *this, _D3DPRESENT_PARAMETERS_ *);
  HRESULT (__fastcall *Present)(IDirect3DDevice9 *this, const tagRECT *, const tagRECT *, HWND__ *, const _RGNDATA *);
  HRESULT (__fastcall *GetBackBuffer)(IDirect3DDevice9 *this, unsigned int, unsigned int, _D3DBACKBUFFER_TYPE, IDirect3DSurface9 **);
  HRESULT (__fastcall *GetRasterStatus)(IDirect3DDevice9 *this, unsigned int, _D3DRASTER_STATUS *);
  HRESULT (__fastcall *SetDialogBoxMode)(IDirect3DDevice9 *this, int);
  void (__fastcall *SetGammaRamp)(IDirect3DDevice9 *this, unsigned int, unsigned int, const _D3DGAMMARAMP *);
  void (__fastcall *GetGammaRamp)(IDirect3DDevice9 *this, unsigned int, _D3DGAMMARAMP *);
  HRESULT (__fastcall *CreateTexture)(IDirect3DDevice9 *this, unsigned int, unsigned int, unsigned int, unsigned int, _D3DFORMAT, _D3DPOOL, IDirect3DTexture9 **, void **);
  HRESULT (__fastcall *CreateVolumeTexture)(IDirect3DDevice9 *this, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, _D3DFORMAT, _D3DPOOL, IDirect3DVolumeTexture9 **, void **);
  HRESULT (__fastcall *CreateCubeTexture)(IDirect3DDevice9 *this, unsigned int, unsigned int, unsigned int, _D3DFORMAT, _D3DPOOL, IDirect3DCubeTexture9 **, void **);
  HRESULT (__fastcall *CreateVertexBuffer)(IDirect3DDevice9 *this, unsigned int, unsigned int, unsigned int, _D3DPOOL, IDirect3DVertexBuffer9 **, void **);
  HRESULT (__fastcall *CreateIndexBuffer)(IDirect3DDevice9 *this, unsigned int, unsigned int, _D3DFORMAT, _D3DPOOL, IDirect3DIndexBuffer9 **, void **);
  HRESULT (__fastcall *CreateRenderTarget)(IDirect3DDevice9 *this, unsigned int, unsigned int, _D3DFORMAT, _D3DMULTISAMPLE_TYPE, unsigned int, int, IDirect3DSurface9 **, void **);
  HRESULT (__fastcall *CreateDepthStencilSurface)(IDirect3DDevice9 *this, unsigned int, unsigned int, _D3DFORMAT, _D3DMULTISAMPLE_TYPE, unsigned int, int, IDirect3DSurface9 **, void **);
  HRESULT (__fastcall *UpdateSurface)(IDirect3DDevice9 *this, IDirect3DSurface9 *, const tagRECT *, IDirect3DSurface9 *, const tagPOINT *);
  HRESULT (__fastcall *UpdateTexture)(IDirect3DDevice9 *this, IDirect3DBaseTexture9 *, IDirect3DBaseTexture9 *);
  HRESULT (__fastcall *GetRenderTargetData)(IDirect3DDevice9 *this, IDirect3DSurface9 *, IDirect3DSurface9 *);
  HRESULT (__fastcall *GetFrontBufferData)(IDirect3DDevice9 *this, unsigned int, IDirect3DSurface9 *);
  HRESULT (__fastcall *StretchRect)(IDirect3DDevice9 *this, IDirect3DSurface9 *, const tagRECT *, IDirect3DSurface9 *, const tagRECT *, _D3DTEXTUREFILTERTYPE);
  HRESULT (__fastcall *ColorFill)(IDirect3DDevice9 *this, IDirect3DSurface9 *, const tagRECT *, unsigned int);
  HRESULT (__fastcall *CreateOffscreenPlainSurface)(IDirect3DDevice9 *this, unsigned int, unsigned int, _D3DFORMAT, _D3DPOOL, IDirect3DSurface9 **, void **);
  HRESULT (__fastcall *SetRenderTarget)(IDirect3DDevice9 *this, unsigned int, IDirect3DSurface9 *);
  HRESULT (__fastcall *GetRenderTarget)(IDirect3DDevice9 *this, unsigned int, IDirect3DSurface9 **);
  HRESULT (__fastcall *SetDepthStencilSurface)(IDirect3DDevice9 *this, IDirect3DSurface9 *);
  HRESULT (__fastcall *GetDepthStencilSurface)(IDirect3DDevice9 *this, IDirect3DSurface9 **);
  HRESULT (__fastcall *BeginScene)(IDirect3DDevice9 *this);
  HRESULT (__fastcall *EndScene)(IDirect3DDevice9 *this);
  HRESULT (__fastcall *Clear)(IDirect3DDevice9 *this, unsigned int, const _D3DRECT *, unsigned int, unsigned int, float, unsigned int);
  HRESULT (__fastcall *SetTransform)(IDirect3DDevice9 *this, _D3DTRANSFORMSTATETYPE, const _D3DMATRIX *);
  HRESULT (__fastcall *GetTransform)(IDirect3DDevice9 *this, _D3DTRANSFORMSTATETYPE, _D3DMATRIX *);
  HRESULT (__fastcall *MultiplyTransform)(IDirect3DDevice9 *this, _D3DTRANSFORMSTATETYPE, const _D3DMATRIX *);
  HRESULT (__fastcall *SetViewport)(IDirect3DDevice9 *this, const _D3DVIEWPORT9 *);
  HRESULT (__fastcall *GetViewport)(IDirect3DDevice9 *this, _D3DVIEWPORT9 *);
  HRESULT (__fastcall *SetMaterial)(IDirect3DDevice9 *this, const _D3DMATERIAL9 *);
  HRESULT (__fastcall *GetMaterial)(IDirect3DDevice9 *this, _D3DMATERIAL9 *);
  HRESULT (__fastcall *SetLight)(IDirect3DDevice9 *this, unsigned int, const _D3DLIGHT9 *);
  HRESULT (__fastcall *GetLight)(IDirect3DDevice9 *this, unsigned int, _D3DLIGHT9 *);
  HRESULT (__fastcall *LightEnable)(IDirect3DDevice9 *this, unsigned int, int);
  HRESULT (__fastcall *GetLightEnable)(IDirect3DDevice9 *this, unsigned int, int *);
  HRESULT (__fastcall *SetClipPlane)(IDirect3DDevice9 *this, unsigned int, const float *);
  HRESULT (__fastcall *GetClipPlane)(IDirect3DDevice9 *this, unsigned int, float *);
  HRESULT (__fastcall *SetRenderState)(IDirect3DDevice9 *this, _D3DRENDERSTATETYPE, unsigned int);
  HRESULT (__fastcall *GetRenderState)(IDirect3DDevice9 *this, _D3DRENDERSTATETYPE, unsigned int *);
  HRESULT (__fastcall *CreateStateBlock)(IDirect3DDevice9 *this, _D3DSTATEBLOCKTYPE, IDirect3DStateBlock9 **);
  HRESULT (__fastcall *BeginStateBlock)(IDirect3DDevice9 *this);
  HRESULT (__fastcall *EndStateBlock)(IDirect3DDevice9 *this, IDirect3DStateBlock9 **);
  HRESULT (__fastcall *SetClipStatus)(IDirect3DDevice9 *this, const _D3DCLIPSTATUS9 *);
  HRESULT (__fastcall *GetClipStatus)(IDirect3DDevice9 *this, _D3DCLIPSTATUS9 *);
  HRESULT (__fastcall *GetTexture)(IDirect3DDevice9 *this, unsigned int, IDirect3DBaseTexture9 **);
  HRESULT (__fastcall *SetTexture)(IDirect3DDevice9 *this, unsigned int, IDirect3DBaseTexture9 *);
  HRESULT (__fastcall *GetTextureStageState)(IDirect3DDevice9 *this, unsigned int, _D3DTEXTURESTAGESTATETYPE, unsigned int *);
  HRESULT (__fastcall *SetTextureStageState)(IDirect3DDevice9 *this, unsigned int, _D3DTEXTURESTAGESTATETYPE, unsigned int);
  HRESULT (__fastcall *GetSamplerState)(IDirect3DDevice9 *this, unsigned int, _D3DSAMPLERSTATETYPE, unsigned int *);
  HRESULT (__fastcall *SetSamplerState)(IDirect3DDevice9 *this, unsigned int, _D3DSAMPLERSTATETYPE, unsigned int);
  HRESULT (__fastcall *ValidateDevice)(IDirect3DDevice9 *this, unsigned int *);
  HRESULT (__fastcall *SetPaletteEntries)(IDirect3DDevice9 *this, unsigned int, const tagPALETTEENTRY *);
  HRESULT (__fastcall *GetPaletteEntries)(IDirect3DDevice9 *this, unsigned int, tagPALETTEENTRY *);
  HRESULT (__fastcall *SetCurrentTexturePalette)(IDirect3DDevice9 *this, unsigned int);
  HRESULT (__fastcall *GetCurrentTexturePalette)(IDirect3DDevice9 *this, unsigned int *);
  HRESULT (__fastcall *SetScissorRect)(IDirect3DDevice9 *this, const tagRECT *);
  HRESULT (__fastcall *GetScissorRect)(IDirect3DDevice9 *this, tagRECT *);
  HRESULT (__fastcall *SetSoftwareVertexProcessing)(IDirect3DDevice9 *this, int);
  int (__fastcall *GetSoftwareVertexProcessing)(IDirect3DDevice9 *this);
  HRESULT (__fastcall *SetNPatchMode)(IDirect3DDevice9 *this, float);
  float (__fastcall *GetNPatchMode)(IDirect3DDevice9 *this);
  HRESULT (__fastcall *DrawPrimitive)(IDirect3DDevice9 *this, _D3DPRIMITIVETYPE, unsigned int, unsigned int);
  HRESULT (__fastcall *DrawIndexedPrimitive)(IDirect3DDevice9 *this, _D3DPRIMITIVETYPE, int, unsigned int, unsigned int, unsigned int, unsigned int);
  HRESULT (__fastcall *DrawPrimitiveUP)(IDirect3DDevice9 *this, _D3DPRIMITIVETYPE, unsigned int, const void *, unsigned int);
  HRESULT (__fastcall *DrawIndexedPrimitiveUP)(IDirect3DDevice9 *this, _D3DPRIMITIVETYPE, unsigned int, unsigned int, unsigned int, const void *, _D3DFORMAT, const void *, unsigned int);
  HRESULT (__fastcall *ProcessVertices)(IDirect3DDevice9 *this, unsigned int, unsigned int, unsigned int, IDirect3DVertexBuffer9 *, IDirect3DVertexDeclaration9 *, unsigned int);
  HRESULT (__fastcall *CreateVertexDeclaration)(IDirect3DDevice9 *this, const _D3DVERTEXELEMENT9 *, IDirect3DVertexDeclaration9 **);
  HRESULT (__fastcall *SetVertexDeclaration)(IDirect3DDevice9 *this, IDirect3DVertexDeclaration9 *);
  HRESULT (__fastcall *GetVertexDeclaration)(IDirect3DDevice9 *this, IDirect3DVertexDeclaration9 **);
  HRESULT (__fastcall *SetFVF)(IDirect3DDevice9 *this, unsigned int);
  HRESULT (__fastcall *GetFVF)(IDirect3DDevice9 *this, unsigned int *);
  HRESULT (__fastcall *CreateVertexShader)(IDirect3DDevice9 *this, const unsigned int *, IDirect3DVertexShader9 **);
  HRESULT (__fastcall *SetVertexShader)(IDirect3DDevice9 *this, IDirect3DVertexShader9 *);
  HRESULT (__fastcall *GetVertexShader)(IDirect3DDevice9 *this, IDirect3DVertexShader9 **);
  HRESULT (__fastcall *SetVertexShaderConstantF)(IDirect3DDevice9 *this, unsigned int, const float *, unsigned int);
  HRESULT (__fastcall *GetVertexShaderConstantF)(IDirect3DDevice9 *this, unsigned int, float *, unsigned int);
  HRESULT (__fastcall *SetVertexShaderConstantI)(IDirect3DDevice9 *this, unsigned int, const int *, unsigned int);
  HRESULT (__fastcall *GetVertexShaderConstantI)(IDirect3DDevice9 *this, unsigned int, int *, unsigned int);
  HRESULT (__fastcall *SetVertexShaderConstantB)(IDirect3DDevice9 *this, unsigned int, const int *, unsigned int);
  HRESULT (__fastcall *GetVertexShaderConstantB)(IDirect3DDevice9 *this, unsigned int, int *, unsigned int);
  HRESULT (__fastcall *SetStreamSource)(IDirect3DDevice9 *this, unsigned int, IDirect3DVertexBuffer9 *, unsigned int, unsigned int);
  HRESULT (__fastcall *GetStreamSource)(IDirect3DDevice9 *this, unsigned int, IDirect3DVertexBuffer9 **, unsigned int *, unsigned int *);
  HRESULT (__fastcall *SetStreamSourceFreq)(IDirect3DDevice9 *this, unsigned int, unsigned int);
  HRESULT (__fastcall *GetStreamSourceFreq)(IDirect3DDevice9 *this, unsigned int, unsigned int *);
  HRESULT (__fastcall *SetIndices)(IDirect3DDevice9 *this, IDirect3DIndexBuffer9 *);
  HRESULT (__fastcall *GetIndices)(IDirect3DDevice9 *this, IDirect3DIndexBuffer9 **);
  HRESULT (__fastcall *CreatePixelShader)(IDirect3DDevice9 *this, const unsigned int *, IDirect3DPixelShader9 **);
  HRESULT (__fastcall *SetPixelShader)(IDirect3DDevice9 *this, IDirect3DPixelShader9 *);
  HRESULT (__fastcall *GetPixelShader)(IDirect3DDevice9 *this, IDirect3DPixelShader9 **);
  HRESULT (__fastcall *SetPixelShaderConstantF)(IDirect3DDevice9 *this, unsigned int, const float *, unsigned int);
  HRESULT (__fastcall *GetPixelShaderConstantF)(IDirect3DDevice9 *this, unsigned int, float *, unsigned int);
  HRESULT (__fastcall *SetPixelShaderConstantI)(IDirect3DDevice9 *this, unsigned int, const int *, unsigned int);
  HRESULT (__fastcall *GetPixelShaderConstantI)(IDirect3DDevice9 *this, unsigned int, int *, unsigned int);
  HRESULT (__fastcall *SetPixelShaderConstantB)(IDirect3DDevice9 *this, unsigned int, const int *, unsigned int);
  HRESULT (__fastcall *GetPixelShaderConstantB)(IDirect3DDevice9 *this, unsigned int, int *, unsigned int);
  HRESULT (__fastcall *DrawRectPatch)(IDirect3DDevice9 *this, unsigned int, const float *, const _D3DRECTPATCH_INFO *);
  HRESULT (__fastcall *DrawTriPatch)(IDirect3DDevice9 *this, unsigned int, const float *, const _D3DTRIPATCH_INFO *);
  HRESULT (__fastcall *DeletePatch)(IDirect3DDevice9 *this, unsigned int);
  HRESULT (__fastcall *CreateQuery)(IDirect3DDevice9 *this, _D3DQUERYTYPE, IDirect3DQuery9 **);
};

# IDirect3D9_vtbl

struct /*VFT*/ IDirect3D9_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *RegisterSoftwareDevice)(IDirect3D9 *this, void *);
  unsigned int (__fastcall *GetAdapterCount)(IDirect3D9 *this);
  HRESULT (__fastcall *GetAdapterIdentifier)(IDirect3D9 *this, unsigned int, unsigned int, _D3DADAPTER_IDENTIFIER9 *);
  unsigned int (__fastcall *GetAdapterModeCount)(IDirect3D9 *this, unsigned int, _D3DFORMAT);
  HRESULT (__fastcall *EnumAdapterModes)(IDirect3D9 *this, unsigned int, _D3DFORMAT, unsigned int, _D3DDISPLAYMODE *);
  HRESULT (__fastcall *GetAdapterDisplayMode)(IDirect3D9 *this, unsigned int, _D3DDISPLAYMODE *);
  HRESULT (__fastcall *CheckDeviceType)(IDirect3D9 *this, unsigned int, _D3DDEVTYPE, _D3DFORMAT, _D3DFORMAT, int);
  HRESULT (__fastcall *CheckDeviceFormat)(IDirect3D9 *this, unsigned int, _D3DDEVTYPE, _D3DFORMAT, unsigned int, _D3DRESOURCETYPE, _D3DFORMAT);
  HRESULT (__fastcall *CheckDeviceMultiSampleType)(IDirect3D9 *this, unsigned int, _D3DDEVTYPE, _D3DFORMAT, int, _D3DMULTISAMPLE_TYPE, unsigned int *);
  HRESULT (__fastcall *CheckDepthStencilMatch)(IDirect3D9 *this, unsigned int, _D3DDEVTYPE, _D3DFORMAT, _D3DFORMAT, _D3DFORMAT);
  HRESULT (__fastcall *CheckDeviceFormatConversion)(IDirect3D9 *this, unsigned int, _D3DDEVTYPE, _D3DFORMAT, _D3DFORMAT);
  HRESULT (__fastcall *GetDeviceCaps)(IDirect3D9 *this, unsigned int, _D3DDEVTYPE, _D3DCAPS9 *);
  HMONITOR__ *(__fastcall *GetAdapterMonitor)(IDirect3D9 *this, unsigned int);
  HRESULT (__fastcall *CreateDevice)(IDirect3D9 *this, unsigned int, _D3DDEVTYPE, HWND__ *, unsigned int, _D3DPRESENT_PARAMETERS_ *, IDirect3DDevice9 **);
};

# IDirect3D9Ex

struct __cppobj IDirect3D9Ex : IDirect3D9
{
};

# IDirect3DDevice9Ex

struct __cppobj IDirect3DDevice9Ex : IDirect3DDevice9
{
};

# IDirect3DDevice9Ex_vtbl

struct /*VFT*/ IDirect3DDevice9Ex_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *TestCooperativeLevel)(IDirect3DDevice9 *this);
  unsigned int (__fastcall *GetAvailableTextureMem)(IDirect3DDevice9 *this);
  HRESULT (__fastcall *EvictManagedResources)(IDirect3DDevice9 *this);
  HRESULT (__fastcall *GetDirect3D)(IDirect3DDevice9 *this, IDirect3D9 **);
  HRESULT (__fastcall *GetDeviceCaps)(IDirect3DDevice9 *this, _D3DCAPS9 *);
  HRESULT (__fastcall *GetDisplayMode)(IDirect3DDevice9 *this, unsigned int, _D3DDISPLAYMODE *);
  HRESULT (__fastcall *GetCreationParameters)(IDirect3DDevice9 *this, _D3DDEVICE_CREATION_PARAMETERS *);
  HRESULT (__fastcall *SetCursorProperties)(IDirect3DDevice9 *this, unsigned int, unsigned int, IDirect3DSurface9 *);
  void (__fastcall *SetCursorPosition)(IDirect3DDevice9 *this, int, int, unsigned int);
  int (__fastcall *ShowCursor)(IDirect3DDevice9 *this, int);
  HRESULT (__fastcall *CreateAdditionalSwapChain)(IDirect3DDevice9 *this, _D3DPRESENT_PARAMETERS_ *, IDirect3DSwapChain9 **);
  HRESULT (__fastcall *GetSwapChain)(IDirect3DDevice9 *this, unsigned int, IDirect3DSwapChain9 **);
  unsigned int (__fastcall *GetNumberOfSwapChains)(IDirect3DDevice9 *this);
  HRESULT (__fastcall *Reset)(IDirect3DDevice9 *this, _D3DPRESENT_PARAMETERS_ *);
  HRESULT (__fastcall *Present)(IDirect3DDevice9 *this, const tagRECT *, const tagRECT *, HWND__ *, const _RGNDATA *);
  HRESULT (__fastcall *GetBackBuffer)(IDirect3DDevice9 *this, unsigned int, unsigned int, _D3DBACKBUFFER_TYPE, IDirect3DSurface9 **);
  HRESULT (__fastcall *GetRasterStatus)(IDirect3DDevice9 *this, unsigned int, _D3DRASTER_STATUS *);
  HRESULT (__fastcall *SetDialogBoxMode)(IDirect3DDevice9 *this, int);
  void (__fastcall *SetGammaRamp)(IDirect3DDevice9 *this, unsigned int, unsigned int, const _D3DGAMMARAMP *);
  void (__fastcall *GetGammaRamp)(IDirect3DDevice9 *this, unsigned int, _D3DGAMMARAMP *);
  HRESULT (__fastcall *CreateTexture)(IDirect3DDevice9 *this, unsigned int, unsigned int, unsigned int, unsigned int, _D3DFORMAT, _D3DPOOL, IDirect3DTexture9 **, void **);
  HRESULT (__fastcall *CreateVolumeTexture)(IDirect3DDevice9 *this, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, _D3DFORMAT, _D3DPOOL, IDirect3DVolumeTexture9 **, void **);
  HRESULT (__fastcall *CreateCubeTexture)(IDirect3DDevice9 *this, unsigned int, unsigned int, unsigned int, _D3DFORMAT, _D3DPOOL, IDirect3DCubeTexture9 **, void **);
  HRESULT (__fastcall *CreateVertexBuffer)(IDirect3DDevice9 *this, unsigned int, unsigned int, unsigned int, _D3DPOOL, IDirect3DVertexBuffer9 **, void **);
  HRESULT (__fastcall *CreateIndexBuffer)(IDirect3DDevice9 *this, unsigned int, unsigned int, _D3DFORMAT, _D3DPOOL, IDirect3DIndexBuffer9 **, void **);
  HRESULT (__fastcall *CreateRenderTarget)(IDirect3DDevice9 *this, unsigned int, unsigned int, _D3DFORMAT, _D3DMULTISAMPLE_TYPE, unsigned int, int, IDirect3DSurface9 **, void **);
  HRESULT (__fastcall *CreateDepthStencilSurface)(IDirect3DDevice9 *this, unsigned int, unsigned int, _D3DFORMAT, _D3DMULTISAMPLE_TYPE, unsigned int, int, IDirect3DSurface9 **, void **);
  HRESULT (__fastcall *UpdateSurface)(IDirect3DDevice9 *this, IDirect3DSurface9 *, const tagRECT *, IDirect3DSurface9 *, const tagPOINT *);
  HRESULT (__fastcall *UpdateTexture)(IDirect3DDevice9 *this, IDirect3DBaseTexture9 *, IDirect3DBaseTexture9 *);
  HRESULT (__fastcall *GetRenderTargetData)(IDirect3DDevice9 *this, IDirect3DSurface9 *, IDirect3DSurface9 *);
  HRESULT (__fastcall *GetFrontBufferData)(IDirect3DDevice9 *this, unsigned int, IDirect3DSurface9 *);
  HRESULT (__fastcall *StretchRect)(IDirect3DDevice9 *this, IDirect3DSurface9 *, const tagRECT *, IDirect3DSurface9 *, const tagRECT *, _D3DTEXTUREFILTERTYPE);
  HRESULT (__fastcall *ColorFill)(IDirect3DDevice9 *this, IDirect3DSurface9 *, const tagRECT *, unsigned int);
  HRESULT (__fastcall *CreateOffscreenPlainSurface)(IDirect3DDevice9 *this, unsigned int, unsigned int, _D3DFORMAT, _D3DPOOL, IDirect3DSurface9 **, void **);
  HRESULT (__fastcall *SetRenderTarget)(IDirect3DDevice9 *this, unsigned int, IDirect3DSurface9 *);
  HRESULT (__fastcall *GetRenderTarget)(IDirect3DDevice9 *this, unsigned int, IDirect3DSurface9 **);
  HRESULT (__fastcall *SetDepthStencilSurface)(IDirect3DDevice9 *this, IDirect3DSurface9 *);
  HRESULT (__fastcall *GetDepthStencilSurface)(IDirect3DDevice9 *this, IDirect3DSurface9 **);
  HRESULT (__fastcall *BeginScene)(IDirect3DDevice9 *this);
  HRESULT (__fastcall *EndScene)(IDirect3DDevice9 *this);
  HRESULT (__fastcall *Clear)(IDirect3DDevice9 *this, unsigned int, const _D3DRECT *, unsigned int, unsigned int, float, unsigned int);
  HRESULT (__fastcall *SetTransform)(IDirect3DDevice9 *this, _D3DTRANSFORMSTATETYPE, const _D3DMATRIX *);
  HRESULT (__fastcall *GetTransform)(IDirect3DDevice9 *this, _D3DTRANSFORMSTATETYPE, _D3DMATRIX *);
  HRESULT (__fastcall *MultiplyTransform)(IDirect3DDevice9 *this, _D3DTRANSFORMSTATETYPE, const _D3DMATRIX *);
  HRESULT (__fastcall *SetViewport)(IDirect3DDevice9 *this, const _D3DVIEWPORT9 *);
  HRESULT (__fastcall *GetViewport)(IDirect3DDevice9 *this, _D3DVIEWPORT9 *);
  HRESULT (__fastcall *SetMaterial)(IDirect3DDevice9 *this, const _D3DMATERIAL9 *);
  HRESULT (__fastcall *GetMaterial)(IDirect3DDevice9 *this, _D3DMATERIAL9 *);
  HRESULT (__fastcall *SetLight)(IDirect3DDevice9 *this, unsigned int, const _D3DLIGHT9 *);
  HRESULT (__fastcall *GetLight)(IDirect3DDevice9 *this, unsigned int, _D3DLIGHT9 *);
  HRESULT (__fastcall *LightEnable)(IDirect3DDevice9 *this, unsigned int, int);
  HRESULT (__fastcall *GetLightEnable)(IDirect3DDevice9 *this, unsigned int, int *);
  HRESULT (__fastcall *SetClipPlane)(IDirect3DDevice9 *this, unsigned int, const float *);
  HRESULT (__fastcall *GetClipPlane)(IDirect3DDevice9 *this, unsigned int, float *);
  HRESULT (__fastcall *SetRenderState)(IDirect3DDevice9 *this, _D3DRENDERSTATETYPE, unsigned int);
  HRESULT (__fastcall *GetRenderState)(IDirect3DDevice9 *this, _D3DRENDERSTATETYPE, unsigned int *);
  HRESULT (__fastcall *CreateStateBlock)(IDirect3DDevice9 *this, _D3DSTATEBLOCKTYPE, IDirect3DStateBlock9 **);
  HRESULT (__fastcall *BeginStateBlock)(IDirect3DDevice9 *this);
  HRESULT (__fastcall *EndStateBlock)(IDirect3DDevice9 *this, IDirect3DStateBlock9 **);
  HRESULT (__fastcall *SetClipStatus)(IDirect3DDevice9 *this, const _D3DCLIPSTATUS9 *);
  HRESULT (__fastcall *GetClipStatus)(IDirect3DDevice9 *this, _D3DCLIPSTATUS9 *);
  HRESULT (__fastcall *GetTexture)(IDirect3DDevice9 *this, unsigned int, IDirect3DBaseTexture9 **);
  HRESULT (__fastcall *SetTexture)(IDirect3DDevice9 *this, unsigned int, IDirect3DBaseTexture9 *);
  HRESULT (__fastcall *GetTextureStageState)(IDirect3DDevice9 *this, unsigned int, _D3DTEXTURESTAGESTATETYPE, unsigned int *);
  HRESULT (__fastcall *SetTextureStageState)(IDirect3DDevice9 *this, unsigned int, _D3DTEXTURESTAGESTATETYPE, unsigned int);
  HRESULT (__fastcall *GetSamplerState)(IDirect3DDevice9 *this, unsigned int, _D3DSAMPLERSTATETYPE, unsigned int *);
  HRESULT (__fastcall *SetSamplerState)(IDirect3DDevice9 *this, unsigned int, _D3DSAMPLERSTATETYPE, unsigned int);
  HRESULT (__fastcall *ValidateDevice)(IDirect3DDevice9 *this, unsigned int *);
  HRESULT (__fastcall *SetPaletteEntries)(IDirect3DDevice9 *this, unsigned int, const tagPALETTEENTRY *);
  HRESULT (__fastcall *GetPaletteEntries)(IDirect3DDevice9 *this, unsigned int, tagPALETTEENTRY *);
  HRESULT (__fastcall *SetCurrentTexturePalette)(IDirect3DDevice9 *this, unsigned int);
  HRESULT (__fastcall *GetCurrentTexturePalette)(IDirect3DDevice9 *this, unsigned int *);
  HRESULT (__fastcall *SetScissorRect)(IDirect3DDevice9 *this, const tagRECT *);
  HRESULT (__fastcall *GetScissorRect)(IDirect3DDevice9 *this, tagRECT *);
  HRESULT (__fastcall *SetSoftwareVertexProcessing)(IDirect3DDevice9 *this, int);
  int (__fastcall *GetSoftwareVertexProcessing)(IDirect3DDevice9 *this);
  HRESULT (__fastcall *SetNPatchMode)(IDirect3DDevice9 *this, float);
  float (__fastcall *GetNPatchMode)(IDirect3DDevice9 *this);
  HRESULT (__fastcall *DrawPrimitive)(IDirect3DDevice9 *this, _D3DPRIMITIVETYPE, unsigned int, unsigned int);
  HRESULT (__fastcall *DrawIndexedPrimitive)(IDirect3DDevice9 *this, _D3DPRIMITIVETYPE, int, unsigned int, unsigned int, unsigned int, unsigned int);
  HRESULT (__fastcall *DrawPrimitiveUP)(IDirect3DDevice9 *this, _D3DPRIMITIVETYPE, unsigned int, const void *, unsigned int);
  HRESULT (__fastcall *DrawIndexedPrimitiveUP)(IDirect3DDevice9 *this, _D3DPRIMITIVETYPE, unsigned int, unsigned int, unsigned int, const void *, _D3DFORMAT, const void *, unsigned int);
  HRESULT (__fastcall *ProcessVertices)(IDirect3DDevice9 *this, unsigned int, unsigned int, unsigned int, IDirect3DVertexBuffer9 *, IDirect3DVertexDeclaration9 *, unsigned int);
  HRESULT (__fastcall *CreateVertexDeclaration)(IDirect3DDevice9 *this, const _D3DVERTEXELEMENT9 *, IDirect3DVertexDeclaration9 **);
  HRESULT (__fastcall *SetVertexDeclaration)(IDirect3DDevice9 *this, IDirect3DVertexDeclaration9 *);
  HRESULT (__fastcall *GetVertexDeclaration)(IDirect3DDevice9 *this, IDirect3DVertexDeclaration9 **);
  HRESULT (__fastcall *SetFVF)(IDirect3DDevice9 *this, unsigned int);
  HRESULT (__fastcall *GetFVF)(IDirect3DDevice9 *this, unsigned int *);
  HRESULT (__fastcall *CreateVertexShader)(IDirect3DDevice9 *this, const unsigned int *, IDirect3DVertexShader9 **);
  HRESULT (__fastcall *SetVertexShader)(IDirect3DDevice9 *this, IDirect3DVertexShader9 *);
  HRESULT (__fastcall *GetVertexShader)(IDirect3DDevice9 *this, IDirect3DVertexShader9 **);
  HRESULT (__fastcall *SetVertexShaderConstantF)(IDirect3DDevice9 *this, unsigned int, const float *, unsigned int);
  HRESULT (__fastcall *GetVertexShaderConstantF)(IDirect3DDevice9 *this, unsigned int, float *, unsigned int);
  HRESULT (__fastcall *SetVertexShaderConstantI)(IDirect3DDevice9 *this, unsigned int, const int *, unsigned int);
  HRESULT (__fastcall *GetVertexShaderConstantI)(IDirect3DDevice9 *this, unsigned int, int *, unsigned int);
  HRESULT (__fastcall *SetVertexShaderConstantB)(IDirect3DDevice9 *this, unsigned int, const int *, unsigned int);
  HRESULT (__fastcall *GetVertexShaderConstantB)(IDirect3DDevice9 *this, unsigned int, int *, unsigned int);
  HRESULT (__fastcall *SetStreamSource)(IDirect3DDevice9 *this, unsigned int, IDirect3DVertexBuffer9 *, unsigned int, unsigned int);
  HRESULT (__fastcall *GetStreamSource)(IDirect3DDevice9 *this, unsigned int, IDirect3DVertexBuffer9 **, unsigned int *, unsigned int *);
  HRESULT (__fastcall *SetStreamSourceFreq)(IDirect3DDevice9 *this, unsigned int, unsigned int);
  HRESULT (__fastcall *GetStreamSourceFreq)(IDirect3DDevice9 *this, unsigned int, unsigned int *);
  HRESULT (__fastcall *SetIndices)(IDirect3DDevice9 *this, IDirect3DIndexBuffer9 *);
  HRESULT (__fastcall *GetIndices)(IDirect3DDevice9 *this, IDirect3DIndexBuffer9 **);
  HRESULT (__fastcall *CreatePixelShader)(IDirect3DDevice9 *this, const unsigned int *, IDirect3DPixelShader9 **);
  HRESULT (__fastcall *SetPixelShader)(IDirect3DDevice9 *this, IDirect3DPixelShader9 *);
  HRESULT (__fastcall *GetPixelShader)(IDirect3DDevice9 *this, IDirect3DPixelShader9 **);
  HRESULT (__fastcall *SetPixelShaderConstantF)(IDirect3DDevice9 *this, unsigned int, const float *, unsigned int);
  HRESULT (__fastcall *GetPixelShaderConstantF)(IDirect3DDevice9 *this, unsigned int, float *, unsigned int);
  HRESULT (__fastcall *SetPixelShaderConstantI)(IDirect3DDevice9 *this, unsigned int, const int *, unsigned int);
  HRESULT (__fastcall *GetPixelShaderConstantI)(IDirect3DDevice9 *this, unsigned int, int *, unsigned int);
  HRESULT (__fastcall *SetPixelShaderConstantB)(IDirect3DDevice9 *this, unsigned int, const int *, unsigned int);
  HRESULT (__fastcall *GetPixelShaderConstantB)(IDirect3DDevice9 *this, unsigned int, int *, unsigned int);
  HRESULT (__fastcall *DrawRectPatch)(IDirect3DDevice9 *this, unsigned int, const float *, const _D3DRECTPATCH_INFO *);
  HRESULT (__fastcall *DrawTriPatch)(IDirect3DDevice9 *this, unsigned int, const float *, const _D3DTRIPATCH_INFO *);
  HRESULT (__fastcall *DeletePatch)(IDirect3DDevice9 *this, unsigned int);
  HRESULT (__fastcall *CreateQuery)(IDirect3DDevice9 *this, _D3DQUERYTYPE, IDirect3DQuery9 **);
  HRESULT (__fastcall *SetConvolutionMonoKernel)(IDirect3DDevice9Ex *this, unsigned int, unsigned int, float *, float *);
  HRESULT (__fastcall *ComposeRects)(IDirect3DDevice9Ex *this, IDirect3DSurface9 *, IDirect3DSurface9 *, IDirect3DVertexBuffer9 *, unsigned int, IDirect3DVertexBuffer9 *, _D3DCOMPOSERECTSOP, int, int);
  HRESULT (__fastcall *PresentEx)(IDirect3DDevice9Ex *this, const tagRECT *, const tagRECT *, HWND__ *, const _RGNDATA *, unsigned int);
  HRESULT (__fastcall *GetGPUThreadPriority)(IDirect3DDevice9Ex *this, int *);
  HRESULT (__fastcall *SetGPUThreadPriority)(IDirect3DDevice9Ex *this, int);
  HRESULT (__fastcall *WaitForVBlank)(IDirect3DDevice9Ex *this, unsigned int);
  HRESULT (__fastcall *CheckResourceResidency)(IDirect3DDevice9Ex *this, IDirect3DResource9 **, unsigned int);
  HRESULT (__fastcall *SetMaximumFrameLatency)(IDirect3DDevice9Ex *this, unsigned int);
  HRESULT (__fastcall *GetMaximumFrameLatency)(IDirect3DDevice9Ex *this, unsigned int *);
  HRESULT (__fastcall *CheckDeviceState)(IDirect3DDevice9Ex *this, HWND__ *);
  HRESULT (__fastcall *CreateRenderTargetEx)(IDirect3DDevice9Ex *this, unsigned int, unsigned int, _D3DFORMAT, _D3DMULTISAMPLE_TYPE, unsigned int, int, IDirect3DSurface9 **, void **, unsigned int);
  HRESULT (__fastcall *CreateOffscreenPlainSurfaceEx)(IDirect3DDevice9Ex *this, unsigned int, unsigned int, _D3DFORMAT, _D3DPOOL, IDirect3DSurface9 **, void **, unsigned int);
  HRESULT (__fastcall *CreateDepthStencilSurfaceEx)(IDirect3DDevice9Ex *this, unsigned int, unsigned int, _D3DFORMAT, _D3DMULTISAMPLE_TYPE, unsigned int, int, IDirect3DSurface9 **, void **, unsigned int);
  HRESULT (__fastcall *ResetEx)(IDirect3DDevice9Ex *this, _D3DPRESENT_PARAMETERS_ *, D3DDISPLAYMODEEX *);
  HRESULT (__fastcall *GetDisplayModeEx)(IDirect3DDevice9Ex *this, unsigned int, D3DDISPLAYMODEEX *, D3DDISPLAYROTATION *);
};

# IDirect3D9Ex_vtbl

struct /*VFT*/ IDirect3D9Ex_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  HRESULT (__fastcall *RegisterSoftwareDevice)(IDirect3D9 *this, void *);
  unsigned int (__fastcall *GetAdapterCount)(IDirect3D9 *this);
  HRESULT (__fastcall *GetAdapterIdentifier)(IDirect3D9 *this, unsigned int, unsigned int, _D3DADAPTER_IDENTIFIER9 *);
  unsigned int (__fastcall *GetAdapterModeCount)(IDirect3D9 *this, unsigned int, _D3DFORMAT);
  HRESULT (__fastcall *EnumAdapterModes)(IDirect3D9 *this, unsigned int, _D3DFORMAT, unsigned int, _D3DDISPLAYMODE *);
  HRESULT (__fastcall *GetAdapterDisplayMode)(IDirect3D9 *this, unsigned int, _D3DDISPLAYMODE *);
  HRESULT (__fastcall *CheckDeviceType)(IDirect3D9 *this, unsigned int, _D3DDEVTYPE, _D3DFORMAT, _D3DFORMAT, int);
  HRESULT (__fastcall *CheckDeviceFormat)(IDirect3D9 *this, unsigned int, _D3DDEVTYPE, _D3DFORMAT, unsigned int, _D3DRESOURCETYPE, _D3DFORMAT);
  HRESULT (__fastcall *CheckDeviceMultiSampleType)(IDirect3D9 *this, unsigned int, _D3DDEVTYPE, _D3DFORMAT, int, _D3DMULTISAMPLE_TYPE, unsigned int *);
  HRESULT (__fastcall *CheckDepthStencilMatch)(IDirect3D9 *this, unsigned int, _D3DDEVTYPE, _D3DFORMAT, _D3DFORMAT, _D3DFORMAT);
  HRESULT (__fastcall *CheckDeviceFormatConversion)(IDirect3D9 *this, unsigned int, _D3DDEVTYPE, _D3DFORMAT, _D3DFORMAT);
  HRESULT (__fastcall *GetDeviceCaps)(IDirect3D9 *this, unsigned int, _D3DDEVTYPE, _D3DCAPS9 *);
  HMONITOR__ *(__fastcall *GetAdapterMonitor)(IDirect3D9 *this, unsigned int);
  HRESULT (__fastcall *CreateDevice)(IDirect3D9 *this, unsigned int, _D3DDEVTYPE, HWND__ *, unsigned int, _D3DPRESENT_PARAMETERS_ *, IDirect3DDevice9 **);
  unsigned int (__fastcall *GetAdapterModeCountEx)(IDirect3D9Ex *this, unsigned int, const D3DDISPLAYMODEFILTER *);
  HRESULT (__fastcall *EnumAdapterModesEx)(IDirect3D9Ex *this, unsigned int, const D3DDISPLAYMODEFILTER *, unsigned int, D3DDISPLAYMODEEX *);
  HRESULT (__fastcall *GetAdapterDisplayModeEx)(IDirect3D9Ex *this, unsigned int, D3DDISPLAYMODEEX *, D3DDISPLAYROTATION *);
  HRESULT (__fastcall *CreateDeviceEx)(IDirect3D9Ex *this, unsigned int, _D3DDEVTYPE, HWND__ *, unsigned int, _D3DPRESENT_PARAMETERS_ *, D3DDISPLAYMODEEX *, IDirect3DDevice9Ex **);
  HRESULT (__fastcall *GetAdapterLUID)(IDirect3D9Ex *this, unsigned int, _LUID *);
};

# initializeClientSkin::__l85::<lambda_41c435ec2c01b4e5f998c1f4ac020f69>::()::__l2::Literal

struct __cppobj initializeClientSkin::__l85::<lambda_41c435ec2c01b4e5f998c1f4ac020f69>::()::__l2::Literal
{
};

# initializeClientSkin::__l85::<lambda_41c435ec2c01b4e5f998c1f4ac020f69>

struct __cppobj initializeClientSkin::__l85::<lambda_41c435ec2c01b4e5f998c1f4ac020f69>
{
};

# InviteScreenController::_sortRealmsDataList::__l2::<lambda_53b98786cce98d23c07102e9a02dd71f>

struct __cppobj InviteScreenController::_sortRealmsDataList::__l2::<lambda_53b98786cce98d23c07102e9a02dd71f>
{
};

# InviteScreenController::_sortRealmsDataList::__l2::<lambda_9fb108fc5bf350a5abe9abf700c4423a>

struct __cppobj InviteScreenController::_sortRealmsDataList::__l2::<lambda_9fb108fc5bf350a5abe9abf700c4423a>
{
};

# InviteScreenController::_sortRealmsDataList::__l2::<lambda_e66ad7849b8504c499fe0ee2b18e9026>

struct __cppobj InviteScreenController::_sortRealmsDataList::__l2::<lambda_e66ad7849b8504c499fe0ee2b18e9026>
{
};

# InviteScreenController::_sortDataList::__l2::<lambda_d2e5f147707d9bf3d43a6e6319c9e03d>

struct __cppobj InviteScreenController::_sortDataList::__l2::<lambda_d2e5f147707d9bf3d43a6e6319c9e03d>
{
};

# InviteScreenController::_sortDataList::__l2::<lambda_24faee8289bc7aef328978413b864c61>

struct __cppobj InviteScreenController::_sortDataList::__l2::<lambda_24faee8289bc7aef328978413b864c61>
{
};

# InviteScreenController::_sortDataList::__l2::<lambda_4bcfea1fecbb52e6dc32fb1b353e85ec>

struct __cppobj InviteScreenController::_sortDataList::__l2::<lambda_4bcfea1fecbb52e6dc32fb1b353e85ec>
{
};

# InviteScreenController::_sortDataList::__l2::<lambda_b919504b39dadbf4121568926b9616de>

struct __cppobj InviteScreenController::_sortDataList::__l2::<lambda_b919504b39dadbf4121568926b9616de>
{
};

# InviteScreenController::_sortDataList::__l6::<lambda_02c008e6c60abb55ff1fc78c526ba598>

struct __cppobj InviteScreenController::_sortDataList::__l6::<lambda_02c008e6c60abb55ff1fc78c526ba598>
{
  std::string *xuid;
};

# InviteScreenController::_sortDataList::__l10::<lambda_b4d0f883e52decb716c11caf1e779121>

struct __cppobj InviteScreenController::_sortDataList::__l10::<lambda_b4d0f883e52decb716c11caf1e779121>
{
  std::string *id;
};

# InviteScreenController::onOpen::__l5::<lambda_5472e4ee8d31a04a75f36b4c2914495e>

struct __cppobj InviteScreenController::onOpen::__l5::<lambda_5472e4ee8d31a04a75f36b4c2914495e>
{
  InviteScreenController *const __this;
  const GamePadRemappingLayout *gamepadRemapping;
};

# IPJoinScreenController::_registerEventHandlers::__l2::<lambda_e056cbadf0a7035ff2af55f2a256273d>

struct __cppobj IPJoinScreenController::_registerEventHandlers::__l2::<lambda_e056cbadf0a7035ff2af55f2a256273d>
{
  IPJoinScreenController *const __this;
};

# IPJoinScreenController::_registerBindings::__l2::<lambda_f3345f5be781d2b7103700d9c39dabbd>

struct __cppobj IPJoinScreenController::_registerBindings::__l2::<lambda_f3345f5be781d2b7103700d9c39dabbd>
{
  IPJoinScreenController *const __this;
};

# InGamePlayScreen::_renderItemInHand::__l2::<lambda_d462a38e9a44a20e09ee4bdcbc27d63c>::()::__l2::Literal

struct __cppobj InGamePlayScreen::_renderItemInHand::__l2::<lambda_d462a38e9a44a20e09ee4bdcbc27d63c>::()::__l2::Literal
{
};

# InGamePlayScreen::_renderItemInHand::__l2::<lambda_d462a38e9a44a20e09ee4bdcbc27d63c>

struct __cppobj InGamePlayScreen::_renderItemInHand::__l2::<lambda_d462a38e9a44a20e09ee4bdcbc27d63c>
{
};

# ItemRenderer::forceGraphicsLoad::__l5::<lambda_9761bc8fb0c096378e079e03fd85b79d>

struct __cppobj ItemRenderer::forceGraphicsLoad::__l5::<lambda_9761bc8fb0c096378e079e03fd85b79d>
{
  ItemRenderer *const __this;
  mce::TexturePtr *terrainAtlasTexture;
  mce::TexturePtr *itemAtlasTexture;
};

# ItemInHandRenderer::render::__l16::<lambda_1965926061c8c6e08e188984ec5dfca0>::()::__l2::Literal

struct __cppobj ItemInHandRenderer::render::__l16::<lambda_1965926061c8c6e08e188984ec5dfca0>::()::__l2::Literal
{
};

# ItemInHandRenderer::render::__l16::<lambda_af0c265d48ae36c7af4038e3b7059940>::()::__l2::Literal

struct __cppobj ItemInHandRenderer::render::__l16::<lambda_af0c265d48ae36c7af4038e3b7059940>::()::__l2::Literal
{
};

# ItemInHandRenderer::render::__l16::<lambda_cda8ca5fcaaaace6ad1fbd92ed0214d2>::()::__l2::Literal

struct __cppobj ItemInHandRenderer::render::__l16::<lambda_cda8ca5fcaaaace6ad1fbd92ed0214d2>::()::__l2::Literal
{
};

# ItemInHandRenderer::render::__l16::<lambda_5423a86d849c6cf4aad6c4f394b81bbe>::()::__l2::Literal

struct __cppobj ItemInHandRenderer::render::__l16::<lambda_5423a86d849c6cf4aad6c4f394b81bbe>::()::__l2::Literal
{
};

# ItemInHandRenderer::render::__l16::<lambda_10e53858192cb5a77d813a92ee73041b>::()::__l2::Literal

struct __cppobj ItemInHandRenderer::render::__l16::<lambda_10e53858192cb5a77d813a92ee73041b>::()::__l2::Literal
{
};

# ItemInHandRenderer::render::__l16::<lambda_34d6492716c77f0db986e99c96472079>::()::__l2::Literal

struct __cppobj ItemInHandRenderer::render::__l16::<lambda_34d6492716c77f0db986e99c96472079>::()::__l2::Literal
{
};

# ItemInHandRenderer::render::__l16::<lambda_4aa14fbe97eb67ccb27bcca0adbc623b>::()::__l2::Literal

struct __cppobj ItemInHandRenderer::render::__l16::<lambda_4aa14fbe97eb67ccb27bcca0adbc623b>::()::__l2::Literal
{
};

# ItemInHandRenderer::render::__l16::<lambda_6dbd6cb1922ab3f8d717664b6a9cdaff>::()::__l2::Literal

struct __cppobj ItemInHandRenderer::render::__l16::<lambda_6dbd6cb1922ab3f8d717664b6a9cdaff>::()::__l2::Literal
{
};

# ItemInHandRenderer::render::__l50::<lambda_72d55ff3ae9174f658c580487a762f3e>::()::__l2::Literal

struct __cppobj ItemInHandRenderer::render::__l50::<lambda_72d55ff3ae9174f658c580487a762f3e>::()::__l2::Literal
{
};

# ItemInHandRenderer::render::__l50::<lambda_e907b6551c4fd1b71cb9e9e52dfd5b7f>::()::__l2::Literal

struct __cppobj ItemInHandRenderer::render::__l50::<lambda_e907b6551c4fd1b71cb9e9e52dfd5b7f>::()::__l2::Literal
{
};

# ItemInHandRenderer::render::__l16::<lambda_f09a974c74fd15a9d7f11f86b3b981ab>::()::__l2::Literal

struct __cppobj ItemInHandRenderer::render::__l16::<lambda_f09a974c74fd15a9d7f11f86b3b981ab>::()::__l2::Literal
{
};

# ItemInHandRenderer::render::__l25::<lambda_7975bfe1f1bd8ef9749788a7133acf5a>::()::__l2::Literal

struct __cppobj ItemInHandRenderer::render::__l25::<lambda_7975bfe1f1bd8ef9749788a7133acf5a>::()::__l2::Literal
{
};

# ItemInHandRenderer::render::__l29::<lambda_b5dbff7b13694cfdb517506c89a66c7d>::()::__l2::Literal

struct __cppobj ItemInHandRenderer::render::__l29::<lambda_b5dbff7b13694cfdb517506c89a66c7d>::()::__l2::Literal
{
};

# ItemInHandRenderer::render::__l16::<lambda_10e53858192cb5a77d813a92ee73041b>

struct __cppobj ItemInHandRenderer::render::__l16::<lambda_10e53858192cb5a77d813a92ee73041b>
{
};

# ItemInHandRenderer::render::__l16::<lambda_1965926061c8c6e08e188984ec5dfca0>

struct __cppobj ItemInHandRenderer::render::__l16::<lambda_1965926061c8c6e08e188984ec5dfca0>
{
};

# ItemInHandRenderer::render::__l16::<lambda_34d6492716c77f0db986e99c96472079>

struct __cppobj ItemInHandRenderer::render::__l16::<lambda_34d6492716c77f0db986e99c96472079>
{
};

# ItemInHandRenderer::render::__l16::<lambda_4aa14fbe97eb67ccb27bcca0adbc623b>

struct __cppobj ItemInHandRenderer::render::__l16::<lambda_4aa14fbe97eb67ccb27bcca0adbc623b>
{
};

# ItemInHandRenderer::render::__l16::<lambda_5423a86d849c6cf4aad6c4f394b81bbe>

struct __cppobj ItemInHandRenderer::render::__l16::<lambda_5423a86d849c6cf4aad6c4f394b81bbe>
{
};

# ItemInHandRenderer::render::__l16::<lambda_6dbd6cb1922ab3f8d717664b6a9cdaff>

struct __cppobj ItemInHandRenderer::render::__l16::<lambda_6dbd6cb1922ab3f8d717664b6a9cdaff>
{
};

# ItemInHandRenderer::render::__l50::<lambda_72d55ff3ae9174f658c580487a762f3e>

struct __cppobj ItemInHandRenderer::render::__l50::<lambda_72d55ff3ae9174f658c580487a762f3e>
{
};

# ItemInHandRenderer::render::__l25::<lambda_7975bfe1f1bd8ef9749788a7133acf5a>

struct __cppobj ItemInHandRenderer::render::__l25::<lambda_7975bfe1f1bd8ef9749788a7133acf5a>
{
};

# ItemInHandRenderer::render::__l16::<lambda_af0c265d48ae36c7af4038e3b7059940>

struct __cppobj ItemInHandRenderer::render::__l16::<lambda_af0c265d48ae36c7af4038e3b7059940>
{
};

# ItemInHandRenderer::render::__l29::<lambda_b5dbff7b13694cfdb517506c89a66c7d>

struct __cppobj ItemInHandRenderer::render::__l29::<lambda_b5dbff7b13694cfdb517506c89a66c7d>
{
};

# ItemInHandRenderer::render::__l16::<lambda_cda8ca5fcaaaace6ad1fbd92ed0214d2>

struct __cppobj ItemInHandRenderer::render::__l16::<lambda_cda8ca5fcaaaace6ad1fbd92ed0214d2>
{
};

# ItemInHandRenderer::render::__l50::<lambda_e907b6551c4fd1b71cb9e9e52dfd5b7f>

struct __cppobj ItemInHandRenderer::render::__l50::<lambda_e907b6551c4fd1b71cb9e9e52dfd5b7f>
{
};

# ItemInHandRenderer::render::__l16::<lambda_f09a974c74fd15a9d7f11f86b3b981ab>

struct __cppobj ItemInHandRenderer::render::__l16::<lambda_f09a974c74fd15a9d7f11f86b3b981ab>
{
};

# ImmersiveReaderUtils::sanitizeImmersiveReaderString::__l2::<lambda_9764d9c2cdc14baf90839926f50b868c>

struct __cppobj ImmersiveReaderUtils::sanitizeImmersiveReaderString::__l2::<lambda_9764d9c2cdc14baf90839926f50b868c>
{
};

# ItemStackNetManagerScreenStack::getScreenForRequest::__l2::<lambda_733f3b0567118d93861adc5b5bbbd044>

struct __cppobj ItemStackNetManagerScreenStack::getScreenForRequest::__l2::<lambda_733f3b0567118d93861adc5b5bbbd044>
{
};

# I18n::_getLocaleCodeFor::__l2::<lambda_128b4d7eaa16f8a5bf1a1d505f51860d>

struct __cppobj I18n::_getLocaleCodeFor::__l2::<lambda_128b4d7eaa16f8a5bf1a1d505f51860d>
{
  std::string *languageCode;
};

# IntOption::_validate::__l11::<lambda_4564f4e06ed652f1d9a6938e73cdfb40>

struct __cppobj IntOption::_validate::__l11::<lambda_4564f4e06ed652f1d9a6938e73cdfb40>
{
};

# IronGolem::updateEntitySpecificMolangVariables::__l2::<lambda_e76811cdbd7d88952405cb186477c853>::()::__l2::Literal

struct __cppobj IronGolem::updateEntitySpecificMolangVariables::__l2::<lambda_e76811cdbd7d88952405cb186477c853>::()::__l2::Literal
{
};

# IronGolem::updateEntitySpecificMolangVariables::__l2::<lambda_968832547388ff9aa937606666d01d36>::()::__l2::Literal

struct __cppobj IronGolem::updateEntitySpecificMolangVariables::__l2::<lambda_968832547388ff9aa937606666d01d36>::()::__l2::Literal
{
};

# IronGolem::updateEntitySpecificMolangVariables::__l2::<lambda_968832547388ff9aa937606666d01d36>

struct __cppobj IronGolem::updateEntitySpecificMolangVariables::__l2::<lambda_968832547388ff9aa937606666d01d36>
{
};

# IronGolem::updateEntitySpecificMolangVariables::__l2::<lambda_e76811cdbd7d88952405cb186477c853>

struct __cppobj IronGolem::updateEntitySpecificMolangVariables::__l2::<lambda_e76811cdbd7d88952405cb186477c853>
{
};

# ItemTransferRequest::_addOutputsAsDestinations::__l7::<lambda_02df90b5549e938ea7cf57d25a2e90a6>

struct __cppobj ItemTransferRequest::_addOutputsAsDestinations::__l7::<lambda_02df90b5549e938ea7cf57d25a2e90a6>
{
  const SlotData slot;
};

# ItemStackRequestData::tryFindAction::__l2::<lambda_f6a0fa2f6a407997536ebc2be626aede>

struct __cppobj ItemStackRequestData::tryFindAction::__l2::<lambda_f6a0fa2f6a407997536ebc2be626aede>
{
  _BYTE type[1];
};

# ItemStackRequestActionHandler::_addResponseSlotInfo::__l2::<lambda_c7afdd17375602e0122fc3ee20786973>

struct __cppobj ItemStackRequestActionHandler::_addResponseSlotInfo::__l2::<lambda_c7afdd17375602e0122fc3ee20786973>
{
  const ItemStackRequestHandlerSlotInfo *slotInfo;
};

# ItemUseInventoryTransaction::resendBlocksAroundArea::__l2::<lambda_ce5a0eadff39cc0a3dfd539376863b41>

struct __cppobj ItemUseInventoryTransaction::resendBlocksAroundArea::__l2::<lambda_ce5a0eadff39cc0a3dfd539376863b41>
{
  Player *player;
  BlockSource *region;
};

# ItemStackBase::_loadComponents::__l2::<lambda_8386f980b80a5f28fd0bd55e1c7a1018>

struct __cppobj ItemStackBase::_loadComponents::__l2::<lambda_8386f980b80a5f28fd0bd55e1c7a1018>
{
};

# InMemoryFileStorage::deleteFile::__l2::<lambda_8ec86977a24a8143d5198f37b116d297>

struct __cppobj InMemoryFileStorage::deleteFile::__l2::<lambda_8ec86977a24a8143d5198f37b116d297>
{
  const Core::Path fileName;
};

# InMemoryFileStorage::findFile::__l2::<lambda_99e64ab995817ad78e6fd61b0b0f70e3>

struct __cppobj InMemoryFileStorage::findFile::__l2::<lambda_99e64ab995817ad78e6fd61b0b0f70e3>
{
  const Core::Path fileName;
};

# insertIntoEntries::__l2::<lambda_2a050f187d39fd7c053794b5c7c2e0e5>

struct __cppobj insertIntoEntries::__l2::<lambda_2a050f187d39fd7c053794b5c7c2e0e5>
{
  const CircuitTrackingInfo *info;
  const int dampeningClamped;
  const int distanceClamped;
};

# ID3D11Asynchronous_vtbl

struct /*VFT*/ ID3D11Asynchronous_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  void (__fastcall *GetDevice)(ID3D11DeviceChild *this, ID3D11Device **);
  HRESULT (__fastcall *GetPrivateData)(ID3D11DeviceChild *this, const _GUID *, unsigned int *, void *);
  HRESULT (__fastcall *SetPrivateData)(ID3D11DeviceChild *this, const _GUID *, unsigned int, const void *);
  HRESULT (__fastcall *SetPrivateDataInterface)(ID3D11DeviceChild *this, const _GUID *, const IUnknown *);
  unsigned int (__fastcall *GetDataSize)(ID3D11Asynchronous *this);
};

# ID3D11BlendState_vtbl

struct /*VFT*/ ID3D11BlendState_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  void (__fastcall *GetDevice)(ID3D11DeviceChild *this, ID3D11Device **);
  HRESULT (__fastcall *GetPrivateData)(ID3D11DeviceChild *this, const _GUID *, unsigned int *, void *);
  HRESULT (__fastcall *SetPrivateData)(ID3D11DeviceChild *this, const _GUID *, unsigned int, const void *);
  HRESULT (__fastcall *SetPrivateDataInterface)(ID3D11DeviceChild *this, const _GUID *, const IUnknown *);
  void (__fastcall *GetDesc)(ID3D11BlendState *this, D3D11_BLEND_DESC *);
};

# ID3D11ClassInstance_vtbl

struct /*VFT*/ ID3D11ClassInstance_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  void (__fastcall *GetDevice)(ID3D11DeviceChild *this, ID3D11Device **);
  HRESULT (__fastcall *GetPrivateData)(ID3D11DeviceChild *this, const _GUID *, unsigned int *, void *);
  HRESULT (__fastcall *SetPrivateData)(ID3D11DeviceChild *this, const _GUID *, unsigned int, const void *);
  HRESULT (__fastcall *SetPrivateDataInterface)(ID3D11DeviceChild *this, const _GUID *, const IUnknown *);
  void (__fastcall *GetClassLinkage)(ID3D11ClassInstance *this, ID3D11ClassLinkage **);
  void (__fastcall *GetDesc)(ID3D11ClassInstance *this, D3D11_CLASS_INSTANCE_DESC *);
  void (__fastcall *GetInstanceName)(ID3D11ClassInstance *this, char *, unsigned __int64 *);
  void (__fastcall *GetTypeName)(ID3D11ClassInstance *this, char *, unsigned __int64 *);
};

# ID3D11ClassLinkage_vtbl

struct /*VFT*/ ID3D11ClassLinkage_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  void (__fastcall *GetDevice)(ID3D11DeviceChild *this, ID3D11Device **);
  HRESULT (__fastcall *GetPrivateData)(ID3D11DeviceChild *this, const _GUID *, unsigned int *, void *);
  HRESULT (__fastcall *SetPrivateData)(ID3D11DeviceChild *this, const _GUID *, unsigned int, const void *);
  HRESULT (__fastcall *SetPrivateDataInterface)(ID3D11DeviceChild *this, const _GUID *, const IUnknown *);
  HRESULT (__fastcall *GetClassInstance)(ID3D11ClassLinkage *this, const char *, unsigned int, ID3D11ClassInstance **);
  HRESULT (__fastcall *CreateClassInstance)(ID3D11ClassLinkage *this, const char *, unsigned int, unsigned int, unsigned int, unsigned int, ID3D11ClassInstance **);
};

# ID3D11Counter_vtbl

struct /*VFT*/ ID3D11Counter_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  void (__fastcall *GetDevice)(ID3D11DeviceChild *this, ID3D11Device **);
  HRESULT (__fastcall *GetPrivateData)(ID3D11DeviceChild *this, const _GUID *, unsigned int *, void *);
  HRESULT (__fastcall *SetPrivateData)(ID3D11DeviceChild *this, const _GUID *, unsigned int, const void *);
  HRESULT (__fastcall *SetPrivateDataInterface)(ID3D11DeviceChild *this, const _GUID *, const IUnknown *);
  unsigned int (__fastcall *GetDataSize)(ID3D11Asynchronous *this);
  void (__fastcall *GetDesc)(ID3D11Counter *this, D3D11_COUNTER_DESC *);
};

# ID3D11DepthStencilState_vtbl

struct /*VFT*/ ID3D11DepthStencilState_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  void (__fastcall *GetDevice)(ID3D11DeviceChild *this, ID3D11Device **);
  HRESULT (__fastcall *GetPrivateData)(ID3D11DeviceChild *this, const _GUID *, unsigned int *, void *);
  HRESULT (__fastcall *SetPrivateData)(ID3D11DeviceChild *this, const _GUID *, unsigned int, const void *);
  HRESULT (__fastcall *SetPrivateDataInterface)(ID3D11DeviceChild *this, const _GUID *, const IUnknown *);
  void (__fastcall *GetDesc)(ID3D11DepthStencilState *this, D3D11_DEPTH_STENCIL_DESC *);
};

# ID3D11Query_vtbl

struct /*VFT*/ ID3D11Query_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  void (__fastcall *GetDevice)(ID3D11DeviceChild *this, ID3D11Device **);
  HRESULT (__fastcall *GetPrivateData)(ID3D11DeviceChild *this, const _GUID *, unsigned int *, void *);
  HRESULT (__fastcall *SetPrivateData)(ID3D11DeviceChild *this, const _GUID *, unsigned int, const void *);
  HRESULT (__fastcall *SetPrivateDataInterface)(ID3D11DeviceChild *this, const _GUID *, const IUnknown *);
  unsigned int (__fastcall *GetDataSize)(ID3D11Asynchronous *this);
  void (__fastcall *GetDesc)(ID3D11Query *this, D3D11_QUERY_DESC *);
};

# ID3D11RasterizerState_vtbl

struct /*VFT*/ ID3D11RasterizerState_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  void (__fastcall *GetDevice)(ID3D11DeviceChild *this, ID3D11Device **);
  HRESULT (__fastcall *GetPrivateData)(ID3D11DeviceChild *this, const _GUID *, unsigned int *, void *);
  HRESULT (__fastcall *SetPrivateData)(ID3D11DeviceChild *this, const _GUID *, unsigned int, const void *);
  HRESULT (__fastcall *SetPrivateDataInterface)(ID3D11DeviceChild *this, const _GUID *, const IUnknown *);
  void (__fastcall *GetDesc)(ID3D11RasterizerState *this, D3D11_RASTERIZER_DESC *);
};

# ID3D11Resource_vtbl

struct /*VFT*/ ID3D11Resource_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  void (__fastcall *GetDevice)(ID3D11DeviceChild *this, ID3D11Device **);
  HRESULT (__fastcall *GetPrivateData)(ID3D11DeviceChild *this, const _GUID *, unsigned int *, void *);
  HRESULT (__fastcall *SetPrivateData)(ID3D11DeviceChild *this, const _GUID *, unsigned int, const void *);
  HRESULT (__fastcall *SetPrivateDataInterface)(ID3D11DeviceChild *this, const _GUID *, const IUnknown *);
  void (__fastcall *GetType)(ID3D11Resource *this, D3D11_RESOURCE_DIMENSION *);
  void (__fastcall *SetEvictionPriority)(ID3D11Resource *this, unsigned int);
  unsigned int (__fastcall *GetEvictionPriority)(ID3D11Resource *this);
};

# ID3D11SamplerState_vtbl

struct /*VFT*/ ID3D11SamplerState_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  void (__fastcall *GetDevice)(ID3D11DeviceChild *this, ID3D11Device **);
  HRESULT (__fastcall *GetPrivateData)(ID3D11DeviceChild *this, const _GUID *, unsigned int *, void *);
  HRESULT (__fastcall *SetPrivateData)(ID3D11DeviceChild *this, const _GUID *, unsigned int, const void *);
  HRESULT (__fastcall *SetPrivateDataInterface)(ID3D11DeviceChild *this, const _GUID *, const IUnknown *);
  void (__fastcall *GetDesc)(ID3D11SamplerState *this, D3D11_SAMPLER_DESC *);
};

# ID3D11Texture1D_vtbl

struct /*VFT*/ ID3D11Texture1D_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  void (__fastcall *GetDevice)(ID3D11DeviceChild *this, ID3D11Device **);
  HRESULT (__fastcall *GetPrivateData)(ID3D11DeviceChild *this, const _GUID *, unsigned int *, void *);
  HRESULT (__fastcall *SetPrivateData)(ID3D11DeviceChild *this, const _GUID *, unsigned int, const void *);
  HRESULT (__fastcall *SetPrivateDataInterface)(ID3D11DeviceChild *this, const _GUID *, const IUnknown *);
  void (__fastcall *GetType)(ID3D11Resource *this, D3D11_RESOURCE_DIMENSION *);
  void (__fastcall *SetEvictionPriority)(ID3D11Resource *this, unsigned int);
  unsigned int (__fastcall *GetEvictionPriority)(ID3D11Resource *this);
  void (__fastcall *GetDesc)(ID3D11Texture1D *this, D3D11_TEXTURE1D_DESC *);
};

# ID3D11Texture2D_vtbl

struct /*VFT*/ ID3D11Texture2D_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  void (__fastcall *GetDevice)(ID3D11DeviceChild *this, ID3D11Device **);
  HRESULT (__fastcall *GetPrivateData)(ID3D11DeviceChild *this, const _GUID *, unsigned int *, void *);
  HRESULT (__fastcall *SetPrivateData)(ID3D11DeviceChild *this, const _GUID *, unsigned int, const void *);
  HRESULT (__fastcall *SetPrivateDataInterface)(ID3D11DeviceChild *this, const _GUID *, const IUnknown *);
  void (__fastcall *GetType)(ID3D11Resource *this, D3D11_RESOURCE_DIMENSION *);
  void (__fastcall *SetEvictionPriority)(ID3D11Resource *this, unsigned int);
  unsigned int (__fastcall *GetEvictionPriority)(ID3D11Resource *this);
  void (__fastcall *GetDesc)(ID3D11Texture2D *this, D3D11_TEXTURE2D_DESC *);
};

# ID3D11Texture3D_vtbl

struct /*VFT*/ ID3D11Texture3D_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  void (__fastcall *GetDevice)(ID3D11DeviceChild *this, ID3D11Device **);
  HRESULT (__fastcall *GetPrivateData)(ID3D11DeviceChild *this, const _GUID *, unsigned int *, void *);
  HRESULT (__fastcall *SetPrivateData)(ID3D11DeviceChild *this, const _GUID *, unsigned int, const void *);
  HRESULT (__fastcall *SetPrivateDataInterface)(ID3D11DeviceChild *this, const _GUID *, const IUnknown *);
  void (__fastcall *GetType)(ID3D11Resource *this, D3D11_RESOURCE_DIMENSION *);
  void (__fastcall *SetEvictionPriority)(ID3D11Resource *this, unsigned int);
  unsigned int (__fastcall *GetEvictionPriority)(ID3D11Resource *this);
  void (__fastcall *GetDesc)(ID3D11Texture3D *this, D3D11_TEXTURE3D_DESC *);
};

# ID3D11View_vtbl

struct /*VFT*/ ID3D11View_vtbl
{
  HRESULT (__fastcall *QueryInterface)(IUnknown *this, const _GUID *, void **);
  unsigned int (__fastcall *AddRef)(IUnknown *this);
  unsigned int (__fastcall *Release)(IUnknown *this);
  void (__fastcall *GetDevice)(ID3D11DeviceChild *this, ID3D11Device **);
  HRESULT (__fastcall *GetPrivateData)(ID3D11DeviceChild *this, const _GUID *, unsigned int *, void *);
  HRESULT (__fastcall *SetPrivateData)(ID3D11DeviceChild *this, const _GUID *, unsigned int, const void *);
  HRESULT (__fastcall *SetPrivateDataInterface)(ID3D11DeviceChild *this, const _GUID *, const IUnknown *);
  void (__fastcall *GetResource)(ID3D11View *this, ID3D11Resource **);
};

# IMobMovementProxy_vtbl

struct /*VFT*/ IMobMovementProxy_vtbl
{
  void (__fastcall *~IActorMovementProxy)(IActorMovementProxy *this);
  float (__fastcall *getGravity)(IActorMovementProxy *this);
  float (__fastcall *getLevelGravity)(IActorMovementProxy *this);
  bool (__fastcall *isRiding)(IActorMovementProxy *this);
  bool (__fastcall *isClientSide)(IActorMovementProxy *this);
  bool (__fastcall *isCreative)(IActorMovementProxy *this);
  bool (__fastcall *isInWater)(IActorMovementProxy *this);
  bool (__fastcall *isInLava)(IActorMovementProxy *this);
  bool (__fastcall *isInScaffolding)(IActorMovementProxy *this);
  bool (__fastcall *isOverScaffolding)(IActorMovementProxy *this);
  bool (__fastcall *isSwimming)(IActorMovementProxy *this);
  bool (__fastcall *isImmersedInWater)(IActorMovementProxy *this);
  bool (__fastcall *onClimbableBlock)(IActorMovementProxy *this);
  bool (__fastcall *onHoverableBlock)(IActorMovementProxy *this);
  bool (__fastcall *isHeadInWater)(IActorMovementProxy *this);
  bool (__fastcall *canBeginOrContinueClimbingLadder)(IActorMovementProxy *this);
  bool (__fastcall *isSwimmer)(IActorMovementProxy *this);
  bool (__fastcall *isImmobile)(IActorMovementProxy *this);
  bool (__fastcall *isControlledByLocalInstance)(IActorMovementProxy *this);
  bool (__fastcall *hasTeleported)(IActorMovementProxy *this);
  bool (__fastcall *usesOneWayCollision)(IActorMovementProxy *this);
  bool (__fastcall *isStuckInCollider)(IActorMovementProxy *this);
  void (__fastcall *setStuckInCollider)(IActorMovementProxy *this, bool);
  bool (__fastcall *isStuckItem)(IActorMovementProxy *this);
  const std::vector<AABB> *(__fastcall *getOnewayPhysicsBlocks)(IActorMovementProxy *this);
  bool (__fastcall *wasPenetratingLastFrame)(IActorMovementProxy *this);
  void (__fastcall *setWasPenetratingLastFrame)(IActorMovementProxy *this, bool);
  bool (__fastcall *isPrimaryLocalPlayer)(IActorMovementProxy *this);
  const std::vector<AABB> *(__fastcall *getSubAABBs)(IActorMovementProxy *this);
  void (__fastcall *setSubAABBs)(IActorMovementProxy *this, const std::vector<AABB> *);
  bool (__fastcall *isStackable)(IActorMovementProxy *this);
  void (__fastcall *testForEntityStacking)(IActorMovementProxy *this, const AABB *, std::vector<AABB> *);
  bool (__fastcall *getCollidableMobNear)(IActorMovementProxy *this);
  void (__fastcall *setCollidableMobNear)(IActorMovementProxy *this, bool);
  void (__fastcall *testForCollidableMobs)(IActorMovementProxy *this, const AABB *, std::vector<AABB> *);
  float (__fastcall *getWalkDist)(IActorMovementProxy *this);
  void (__fastcall *setWalkDist)(IActorMovementProxy *this, float);
  bool (__fastcall *isOnGround)(IActorMovementProxy *this);
  void (__fastcall *setOnGround)(IActorMovementProxy *this, bool);
  bool (__fastcall *wasOnGround)(IActorMovementProxy *this);
  void (__fastcall *setWasOnGround)(IActorMovementProxy *this, bool);
  int (__fastcall *getHealth)(IActorMovementProxy *this);
  bool (__fastcall *getHorizontalCollision)(IActorMovementProxy *this);
  void (__fastcall *setHorizontalCollision)(IActorMovementProxy *this, bool);
  bool (__fastcall *getVerticalCollision)(IActorMovementProxy *this);
  void (__fastcall *setVerticalCollision)(IActorMovementProxy *this, bool);
  bool (__fastcall *getCollision)(IActorMovementProxy *this);
  void (__fastcall *setCollision)(IActorMovementProxy *this, bool);
  float (__fastcall *getUserDefineMaxAutoStep)(IActorMovementProxy *this);
  float (__fastcall *getMaxAutoStep)(IActorMovementProxy *this);
  bool (__fastcall *isFree)(IActorMovementProxy *this, const Vec3 *);
  float (__fastcall *getHeightOffset)(IActorMovementProxy *this);
  Vec2 *(__fastcall *getSlideOffset)(IActorMovementProxy *this, Vec2 *result);
  void (__fastcall *setSlideOffset)(IActorMovementProxy *this, const Vec2 *);
  void (__fastcall *setTerrainSurfaceOffset)(IActorMovementProxy *this, float);
  const Vec3 *(__fastcall *getBlockMovementSlowdownMultiplier)(IActorMovementProxy *this);
  void (__fastcall *setBlockMovementSlowdownMultiplier)(IActorMovementProxy *this, const Vec3 *);
  float (__fastcall *getCurrentSwimAmount)(IActorMovementProxy *this);
  const WaterMovementComponent *(__fastcall *tryGetWaterMovementComponent)(IActorMovementProxy *this);
  const AttributeInstance *(__fastcall *getAttribute)(IActorMovementProxy *this, const Attribute *);
  bool (__fastcall *hasEffect)(IActorMovementProxy *this, const MobEffect *);
  const MobEffectInstance *(__fastcall *getEffect)(IActorMovementProxy *this, const MobEffect *);
  int (__fastcall *getActiveEffectCount)(IActorMovementProxy *this);
  const SynchedActorData *(__fastcall *getEntityData)(IActorMovementProxy *this);
  void (__fastcall *setStatusFlag)(IActorMovementProxy *this, ActorFlags, bool);
  bool (__fastcall *getStatusFlag)(IActorMovementProxy *this, ActorFlags);
  bool (__fastcall *hasCategory)(IActorMovementProxy *this, ActorCategory);
  bool (__fastcall *isType)(IActorMovementProxy *this, ActorType);
  Vec3 *(__fastcall *getPosition)(IActorMovementProxy *this, Vec3 *result);
  void (__fastcall *setPosition)(IActorMovementProxy *this, const Vec3 *);
  Vec2 *(__fastcall *getRotation)(IActorMovementProxy *this, Vec2 *result);
  void (__fastcall *setRotation)(IActorMovementProxy *this, const Vec2 *);
  const StateVectorComponent *(__fastcall *getStateVectorComponent)(IActorMovementProxy *this);
  StateVectorComponent *(__fastcall *getStateVectorComponentNonConst)(IActorMovementProxy *this);
  const AABBShapeComponent *(__fastcall *getAABBShapeComponent)(IActorMovementProxy *this);
  AABBShapeComponent *(__fastcall *getAABBShapeComponentNonConst)(IActorMovementProxy *this);
  void (__fastcall *setFallDistance)(IActorMovementProxy *this, float);
  bool (__fastcall *isSneaking)(IActorMovementProxy *this);
  void (__fastcall *setSneaking)(IActorMovementProxy *this, bool);
  Vec3 *(__fastcall *getHeadLookVector)(IActorMovementProxy *this, Vec3 *result, float);
  Vec3 *(__fastcall *getViewVector)(IActorMovementProxy *this, Vec3 *result, float);
  const BlockSource *(__fastcall *getRegion)(IActorMovementProxy *this);
  BlockSource *(__fastcall *getRegion)(IActorMovementProxy *this);
  std::vector<AABB> *(__fastcall *fetchCollisionShapes)(IActorMovementProxy *this, const AABB *, float *, bool, IActorMovementProxy *);
  const std::vector<std::shared_ptr<IActorMovementProxy>> *(__fastcall *fetchEntities)(IActorMovementProxy *this, const IActorMovementProxy *, const AABB *);
  bool (__fastcall *hasRegion)(IActorMovementProxy *this);
  IActorMovementProxy *(__fastcall *getRide)(IActorMovementProxy *this);
  bool (__fastcall *isWASDControlled)(IActorMovementProxy *this);
  int (__fastcall *getControllingSeat)(IActorMovementProxy *this);
  int (__fastcall *getRiderIndex)(IActorMovementProxy *this, const IActorMovementProxy *);
  IBoatMovementProxy *(__fastcall *tryAsBoat)(IActorMovementProxy *this);
  IMobMovementProxy *(__fastcall *tryAsMob)(IActorMovementProxy *this);
  IPlayerMovementProxy *(__fastcall *tryAsPlayer)(IActorMovementProxy *this);
  const std::vector<ActorUniqueID> *(__fastcall *getRiderIDs)(IActorMovementProxy *this);
  const ActorUniqueID *(__fastcall *getUniqueID)(IActorMovementProxy *this);
  ActorRuntimeID *(__fastcall *getRuntimeID)(IActorMovementProxy *this, ActorRuntimeID *result);
  AABB *(__fastcall *getHandleWaterAABB)(IActorMovementProxy *this, AABB *result);
  BlockPos *(__fastcall *getBlockPosCurrentlyStandingOn)(IActorMovementProxy *this, BlockPos *result, IActorMovementProxy *);
  void (__fastcall *blockOnStandOn)(IActorMovementProxy *this, const Block *, const BlockPos *);
  bool (__fastcall *_containsSneakCollisionShapes)(IActorMovementProxy *this, const AABB *);
  void (__fastcall *move)(IActorMovementProxy *this, const Vec3 *);
  void (__fastcall *moveBBs)(IActorMovementProxy *this, const Vec3 *);
  void (__fastcall *checkFallDamage)(IActorMovementProxy *this, float, bool);
  void (__fastcall *onBounceStarted)(IActorMovementProxy *this, const BlockPos *, const Block *);
  void (__fastcall *updatePrevPosRot)(IActorMovementProxy *this);
  void (__fastcall *sendActorMove)(IActorMovementProxy *this, const Vec3 *);
  void (__fastcall *_teleportTo)(IActorMovementProxy *this, const Vec3 *, bool, int, int);
  Actor *(__fastcall *_getActor)(IActorMovementProxy *this);
  const Actor *(__fastcall *_getRawActor)(IActorMovementProxy *this);
  Actor *(__fastcall *_getRawActor)(IActorMovementProxy *this);
  SynchedActorData *(__fastcall *_getEntityData)(IActorMovementProxy *this);
  const Vec2 *(__fastcall *_getRotPrev)(IActorMovementProxy *this);
  void (__fastcall *_setRotPrev)(IActorMovementProxy *this, const Vec2 *);
  void (__fastcall *_setPreviousPosRot)(IActorMovementProxy *this, const Vec3 *, const Vec2 *);
  void (__fastcall *_setHasTeleported)(IActorMovementProxy *this, bool);
  gsl::not_null<BaseAttributeMap *> *(__fastcall *_getAttributes)(IActorMovementProxy *this, gsl::not_null<BaseAttributeMap *> *result);
  void (__fastcall *_applySnapshot)(IActorMovementProxy *this, const PlayerSnapshot *);
  std::unique_ptr<PlayerSnapshot> *(__fastcall *_createSnapshot)(IActorMovementProxy *this, std::unique_ptr<PlayerSnapshot> *result);
  AdvanceFrameResult (__fastcall *_advanceLiveFrame)(IActorMovementProxy *this, const IReplayableActorInput *);
  bool (__fastcall *isSetWaterSpeed)(IMobMovementProxy *this);
  float (__fastcall *getWaterSpeed)(IMobMovementProxy *this);
  bool (__fastcall *isDisableGravityInLiquid)(IMobMovementProxy *this);
  int (__fastcall *getNoJumpDelay)(IMobMovementProxy *this);
  void (__fastcall *setNoJumpDelay)(IMobMovementProxy *this, int);
  bool (__fastcall *isJumping)(IMobMovementProxy *this);
  void (__fastcall *setJumping)(IMobMovementProxy *this, bool);
  bool (__fastcall *getJumpVelRedux)(IMobMovementProxy *this);
  void (__fastcall *setJumpVelRedux)(IMobMovementProxy *this, bool);
  Vec3 *(__fastcall *getJumpStartPos)(IMobMovementProxy *this, Vec3 *result);
  void (__fastcall *setJumpStartPos)(IMobMovementProxy *this, const Vec3 *);
  float (__fastcall *getJumpPower)(IMobMovementProxy *this);
  int (__fastcall *getJumpTicks)(IMobMovementProxy *this);
  void (__fastcall *setJumpTicks)(IMobMovementProxy *this, int);
  void (__fastcall *_endJump)(IMobMovementProxy *this);
  void (__fastcall *onPlayerJump)(IMobMovementProxy *this, int);
  float (__fastcall *getSpeed)(IMobMovementProxy *this);
  void (__fastcall *setSpeed)(IMobMovementProxy *this, float);
  bool (__fastcall *isSprinting)(IMobMovementProxy *this);
  void (__fastcall *setSprinting)(IMobMovementProxy *this, bool);
  bool (__fastcall *discardFriction)(IMobMovementProxy *this);
  const NavigationComponent *(__fastcall *tryGetNavigationComponent)(IMobMovementProxy *this);
  float (__fastcall *getTilt)(IMobMovementProxy *this);
  void (__fastcall *setTilt)(IMobMovementProxy *this, float);
  bool (__fastcall *_allowAscendingScaffolding)(IMobMovementProxy *this);
  void (__fastcall *ascendScaffolding)(IMobMovementProxy *this);
  void (__fastcall *descendScaffolding)(IMobMovementProxy *this);
  void (__fastcall *ascendLadder)(IMobMovementProxy *this);
  void (__fastcall *jumpFromGround)(IMobMovementProxy *this);
  bool (__fastcall *isGliding)(IMobMovementProxy *this);
  Vec3 *(__fastcall *getLocalMoveVelocity)(IMobMovementProxy *this, Vec3 *result);
  void (__fastcall *setLocalMoveVelocity)(IMobMovementProxy *this, const Vec3 *);
  float (__fastcall *getYRotA)(IMobMovementProxy *this);
  void (__fastcall *setYRotA)(IMobMovementProxy *this, float);
  bool (__fastcall *useNewAi)(IMobMovementProxy *this);
  void (__fastcall *newServerAiStep)(IMobMovementProxy *this);
  void (__fastcall *updateAi)(IMobMovementProxy *this);
  void (__fastcall *aiStep)(IMobMovementProxy *this);
  void (__fastcall *updateAttackAnim)(IMobMovementProxy *this);
  int (__fastcall *getNoActionTime)(IMobMovementProxy *this);
  void (__fastcall *setNoActionTime)(IMobMovementProxy *this, int);
  float (__fastcall *getYHeadRot)(IMobMovementProxy *this);
  void (__fastcall *setYHeadRot)(IMobMovementProxy *this, float);
  float (__fastcall *getSwimSpeedMultiplier)(IMobMovementProxy *this);
  void (__fastcall *setSwimSpeedMultiplier)(IMobMovementProxy *this, float);
  void (__fastcall *pushActors)(IMobMovementProxy *this);
  void (__fastcall *updateGliding)(IMobMovementProxy *this);
  void (__fastcall *travel)(IMobMovementProxy *this, float, float, float);
  void (__fastcall *playJumpSound)(IMobMovementProxy *this);
  void (__fastcall *emitJumpPreventedEvent)(IMobMovementProxy *this, const BlockPos *);
  float (__fastcall *getWaterWalkerEnchant)(IMobMovementProxy *this);
  float (__fastcall *calcGroundFriction)(IMobMovementProxy *this, const Block *, const BlockPos *);
  float (__fastcall *getFlyingSpeed)(IMobMovementProxy *this);
  void (__fastcall *setFlyingSpeed)(IMobMovementProxy *this, float);
  void (__fastcall *applyFinalFriction)(IMobMovementProxy *this, float, bool);
  bool (__fastcall *shouldApplyWaterGravity)(IMobMovementProxy *this);
  float (__fastcall *getFrictionModifier)(IMobMovementProxy *this);
  void (__fastcall *setFrictionModifier)(IMobMovementProxy *this, float);
  Mob *(__fastcall *_getMob)(IMobMovementProxy *this);
  float (__fastcall *_getYHeadRotOld)(IMobMovementProxy *this);
  void (__fastcall *_setYHeadRotOld)(IMobMovementProxy *this, float);
  MovementInterpolator *(__fastcall *_getInterpolation)(IMobMovementProxy *this);
};

# IPlayerMovementProxy_vtbl

struct /*VFT*/ IPlayerMovementProxy_vtbl
{
  void (__fastcall *~IActorMovementProxy)(IActorMovementProxy *this);
  float (__fastcall *getGravity)(IActorMovementProxy *this);
  float (__fastcall *getLevelGravity)(IActorMovementProxy *this);
  bool (__fastcall *isRiding)(IActorMovementProxy *this);
  bool (__fastcall *isClientSide)(IActorMovementProxy *this);
  bool (__fastcall *isCreative)(IActorMovementProxy *this);
  bool (__fastcall *isInWater)(IActorMovementProxy *this);
  bool (__fastcall *isInLava)(IActorMovementProxy *this);
  bool (__fastcall *isInScaffolding)(IActorMovementProxy *this);
  bool (__fastcall *isOverScaffolding)(IActorMovementProxy *this);
  bool (__fastcall *isSwimming)(IActorMovementProxy *this);
  bool (__fastcall *isImmersedInWater)(IActorMovementProxy *this);
  bool (__fastcall *onClimbableBlock)(IActorMovementProxy *this);
  bool (__fastcall *onHoverableBlock)(IActorMovementProxy *this);
  bool (__fastcall *isHeadInWater)(IActorMovementProxy *this);
  bool (__fastcall *canBeginOrContinueClimbingLadder)(IActorMovementProxy *this);
  bool (__fastcall *isSwimmer)(IActorMovementProxy *this);
  bool (__fastcall *isImmobile)(IActorMovementProxy *this);
  bool (__fastcall *isControlledByLocalInstance)(IActorMovementProxy *this);
  bool (__fastcall *hasTeleported)(IActorMovementProxy *this);
  bool (__fastcall *usesOneWayCollision)(IActorMovementProxy *this);
  bool (__fastcall *isStuckInCollider)(IActorMovementProxy *this);
  void (__fastcall *setStuckInCollider)(IActorMovementProxy *this, bool);
  bool (__fastcall *isStuckItem)(IActorMovementProxy *this);
  const std::vector<AABB> *(__fastcall *getOnewayPhysicsBlocks)(IActorMovementProxy *this);
  bool (__fastcall *wasPenetratingLastFrame)(IActorMovementProxy *this);
  void (__fastcall *setWasPenetratingLastFrame)(IActorMovementProxy *this, bool);
  bool (__fastcall *isPrimaryLocalPlayer)(IActorMovementProxy *this);
  const std::vector<AABB> *(__fastcall *getSubAABBs)(IActorMovementProxy *this);
  void (__fastcall *setSubAABBs)(IActorMovementProxy *this, const std::vector<AABB> *);
  bool (__fastcall *isStackable)(IActorMovementProxy *this);
  void (__fastcall *testForEntityStacking)(IActorMovementProxy *this, const AABB *, std::vector<AABB> *);
  bool (__fastcall *getCollidableMobNear)(IActorMovementProxy *this);
  void (__fastcall *setCollidableMobNear)(IActorMovementProxy *this, bool);
  void (__fastcall *testForCollidableMobs)(IActorMovementProxy *this, const AABB *, std::vector<AABB> *);
  float (__fastcall *getWalkDist)(IActorMovementProxy *this);
  void (__fastcall *setWalkDist)(IActorMovementProxy *this, float);
  bool (__fastcall *isOnGround)(IActorMovementProxy *this);
  void (__fastcall *setOnGround)(IActorMovementProxy *this, bool);
  bool (__fastcall *wasOnGround)(IActorMovementProxy *this);
  void (__fastcall *setWasOnGround)(IActorMovementProxy *this, bool);
  int (__fastcall *getHealth)(IActorMovementProxy *this);
  bool (__fastcall *getHorizontalCollision)(IActorMovementProxy *this);
  void (__fastcall *setHorizontalCollision)(IActorMovementProxy *this, bool);
  bool (__fastcall *getVerticalCollision)(IActorMovementProxy *this);
  void (__fastcall *setVerticalCollision)(IActorMovementProxy *this, bool);
  bool (__fastcall *getCollision)(IActorMovementProxy *this);
  void (__fastcall *setCollision)(IActorMovementProxy *this, bool);
  float (__fastcall *getUserDefineMaxAutoStep)(IActorMovementProxy *this);
  float (__fastcall *getMaxAutoStep)(IActorMovementProxy *this);
  bool (__fastcall *isFree)(IActorMovementProxy *this, const Vec3 *);
  float (__fastcall *getHeightOffset)(IActorMovementProxy *this);
  Vec2 *(__fastcall *getSlideOffset)(IActorMovementProxy *this, Vec2 *result);
  void (__fastcall *setSlideOffset)(IActorMovementProxy *this, const Vec2 *);
  void (__fastcall *setTerrainSurfaceOffset)(IActorMovementProxy *this, float);
  const Vec3 *(__fastcall *getBlockMovementSlowdownMultiplier)(IActorMovementProxy *this);
  void (__fastcall *setBlockMovementSlowdownMultiplier)(IActorMovementProxy *this, const Vec3 *);
  float (__fastcall *getCurrentSwimAmount)(IActorMovementProxy *this);
  const WaterMovementComponent *(__fastcall *tryGetWaterMovementComponent)(IActorMovementProxy *this);
  const AttributeInstance *(__fastcall *getAttribute)(IActorMovementProxy *this, const Attribute *);
  bool (__fastcall *hasEffect)(IActorMovementProxy *this, const MobEffect *);
  const MobEffectInstance *(__fastcall *getEffect)(IActorMovementProxy *this, const MobEffect *);
  int (__fastcall *getActiveEffectCount)(IActorMovementProxy *this);
  const SynchedActorData *(__fastcall *getEntityData)(IActorMovementProxy *this);
  void (__fastcall *setStatusFlag)(IActorMovementProxy *this, ActorFlags, bool);
  bool (__fastcall *getStatusFlag)(IActorMovementProxy *this, ActorFlags);
  bool (__fastcall *hasCategory)(IActorMovementProxy *this, ActorCategory);
  bool (__fastcall *isType)(IActorMovementProxy *this, ActorType);
  Vec3 *(__fastcall *getPosition)(IActorMovementProxy *this, Vec3 *result);
  void (__fastcall *setPosition)(IActorMovementProxy *this, const Vec3 *);
  Vec2 *(__fastcall *getRotation)(IActorMovementProxy *this, Vec2 *result);
  void (__fastcall *setRotation)(IActorMovementProxy *this, const Vec2 *);
  const StateVectorComponent *(__fastcall *getStateVectorComponent)(IActorMovementProxy *this);
  StateVectorComponent *(__fastcall *getStateVectorComponentNonConst)(IActorMovementProxy *this);
  const AABBShapeComponent *(__fastcall *getAABBShapeComponent)(IActorMovementProxy *this);
  AABBShapeComponent *(__fastcall *getAABBShapeComponentNonConst)(IActorMovementProxy *this);
  void (__fastcall *setFallDistance)(IActorMovementProxy *this, float);
  bool (__fastcall *isSneaking)(IActorMovementProxy *this);
  void (__fastcall *setSneaking)(IActorMovementProxy *this, bool);
  Vec3 *(__fastcall *getHeadLookVector)(IActorMovementProxy *this, Vec3 *result, float);
  Vec3 *(__fastcall *getViewVector)(IActorMovementProxy *this, Vec3 *result, float);
  const BlockSource *(__fastcall *getRegion)(IActorMovementProxy *this);
  BlockSource *(__fastcall *getRegion)(IActorMovementProxy *this);
  std::vector<AABB> *(__fastcall *fetchCollisionShapes)(IActorMovementProxy *this, const AABB *, float *, bool, IActorMovementProxy *);
  const std::vector<std::shared_ptr<IActorMovementProxy>> *(__fastcall *fetchEntities)(IActorMovementProxy *this, const IActorMovementProxy *, const AABB *);
  bool (__fastcall *hasRegion)(IActorMovementProxy *this);
  IActorMovementProxy *(__fastcall *getRide)(IActorMovementProxy *this);
  bool (__fastcall *isWASDControlled)(IActorMovementProxy *this);
  int (__fastcall *getControllingSeat)(IActorMovementProxy *this);
  int (__fastcall *getRiderIndex)(IActorMovementProxy *this, const IActorMovementProxy *);
  IBoatMovementProxy *(__fastcall *tryAsBoat)(IActorMovementProxy *this);
  IMobMovementProxy *(__fastcall *tryAsMob)(IActorMovementProxy *this);
  IPlayerMovementProxy *(__fastcall *tryAsPlayer)(IActorMovementProxy *this);
  const std::vector<ActorUniqueID> *(__fastcall *getRiderIDs)(IActorMovementProxy *this);
  const ActorUniqueID *(__fastcall *getUniqueID)(IActorMovementProxy *this);
  ActorRuntimeID *(__fastcall *getRuntimeID)(IActorMovementProxy *this, ActorRuntimeID *result);
  AABB *(__fastcall *getHandleWaterAABB)(IActorMovementProxy *this, AABB *result);
  BlockPos *(__fastcall *getBlockPosCurrentlyStandingOn)(IActorMovementProxy *this, BlockPos *result, IActorMovementProxy *);
  void (__fastcall *blockOnStandOn)(IActorMovementProxy *this, const Block *, const BlockPos *);
  bool (__fastcall *_containsSneakCollisionShapes)(IActorMovementProxy *this, const AABB *);
  void (__fastcall *move)(IActorMovementProxy *this, const Vec3 *);
  void (__fastcall *moveBBs)(IActorMovementProxy *this, const Vec3 *);
  void (__fastcall *checkFallDamage)(IActorMovementProxy *this, float, bool);
  void (__fastcall *onBounceStarted)(IActorMovementProxy *this, const BlockPos *, const Block *);
  void (__fastcall *updatePrevPosRot)(IActorMovementProxy *this);
  void (__fastcall *sendActorMove)(IActorMovementProxy *this, const Vec3 *);
  void (__fastcall *_teleportTo)(IActorMovementProxy *this, const Vec3 *, bool, int, int);
  Actor *(__fastcall *_getActor)(IActorMovementProxy *this);
  const Actor *(__fastcall *_getRawActor)(IActorMovementProxy *this);
  Actor *(__fastcall *_getRawActor)(IActorMovementProxy *this);
  SynchedActorData *(__fastcall *_getEntityData)(IActorMovementProxy *this);
  const Vec2 *(__fastcall *_getRotPrev)(IActorMovementProxy *this);
  void (__fastcall *_setRotPrev)(IActorMovementProxy *this, const Vec2 *);
  void (__fastcall *_setPreviousPosRot)(IActorMovementProxy *this, const Vec3 *, const Vec2 *);
  void (__fastcall *_setHasTeleported)(IActorMovementProxy *this, bool);
  gsl::not_null<BaseAttributeMap *> *(__fastcall *_getAttributes)(IActorMovementProxy *this, gsl::not_null<BaseAttributeMap *> *result);
  void (__fastcall *_applySnapshot)(IActorMovementProxy *this, const PlayerSnapshot *);
  std::unique_ptr<PlayerSnapshot> *(__fastcall *_createSnapshot)(IActorMovementProxy *this, std::unique_ptr<PlayerSnapshot> *result);
  AdvanceFrameResult (__fastcall *_advanceLiveFrame)(IActorMovementProxy *this, const IReplayableActorInput *);
  bool (__fastcall *isSetWaterSpeed)(IMobMovementProxy *this);
  float (__fastcall *getWaterSpeed)(IMobMovementProxy *this);
  bool (__fastcall *isDisableGravityInLiquid)(IMobMovementProxy *this);
  int (__fastcall *getNoJumpDelay)(IMobMovementProxy *this);
  void (__fastcall *setNoJumpDelay)(IMobMovementProxy *this, int);
  bool (__fastcall *isJumping)(IMobMovementProxy *this);
  void (__fastcall *setJumping)(IMobMovementProxy *this, bool);
  bool (__fastcall *getJumpVelRedux)(IMobMovementProxy *this);
  void (__fastcall *setJumpVelRedux)(IMobMovementProxy *this, bool);
  Vec3 *(__fastcall *getJumpStartPos)(IMobMovementProxy *this, Vec3 *result);
  void (__fastcall *setJumpStartPos)(IMobMovementProxy *this, const Vec3 *);
  float (__fastcall *getJumpPower)(IMobMovementProxy *this);
  int (__fastcall *getJumpTicks)(IMobMovementProxy *this);
  void (__fastcall *setJumpTicks)(IMobMovementProxy *this, int);
  void (__fastcall *_endJump)(IMobMovementProxy *this);
  void (__fastcall *onPlayerJump)(IMobMovementProxy *this, int);
  float (__fastcall *getSpeed)(IMobMovementProxy *this);
  void (__fastcall *setSpeed)(IMobMovementProxy *this, float);
  bool (__fastcall *isSprinting)(IMobMovementProxy *this);
  void (__fastcall *setSprinting)(IMobMovementProxy *this, bool);
  bool (__fastcall *discardFriction)(IMobMovementProxy *this);
  const NavigationComponent *(__fastcall *tryGetNavigationComponent)(IMobMovementProxy *this);
  float (__fastcall *getTilt)(IMobMovementProxy *this);
  void (__fastcall *setTilt)(IMobMovementProxy *this, float);
  bool (__fastcall *_allowAscendingScaffolding)(IMobMovementProxy *this);
  void (__fastcall *ascendScaffolding)(IMobMovementProxy *this);
  void (__fastcall *descendScaffolding)(IMobMovementProxy *this);
  void (__fastcall *ascendLadder)(IMobMovementProxy *this);
  void (__fastcall *jumpFromGround)(IMobMovementProxy *this);
  bool (__fastcall *isGliding)(IMobMovementProxy *this);
  Vec3 *(__fastcall *getLocalMoveVelocity)(IMobMovementProxy *this, Vec3 *result);
  void (__fastcall *setLocalMoveVelocity)(IMobMovementProxy *this, const Vec3 *);
  float (__fastcall *getYRotA)(IMobMovementProxy *this);
  void (__fastcall *setYRotA)(IMobMovementProxy *this, float);
  bool (__fastcall *useNewAi)(IMobMovementProxy *this);
  void (__fastcall *newServerAiStep)(IMobMovementProxy *this);
  void (__fastcall *updateAi)(IMobMovementProxy *this);
  void (__fastcall *aiStep)(IMobMovementProxy *this);
  void (__fastcall *updateAttackAnim)(IMobMovementProxy *this);
  int (__fastcall *getNoActionTime)(IMobMovementProxy *this);
  void (__fastcall *setNoActionTime)(IMobMovementProxy *this, int);
  float (__fastcall *getYHeadRot)(IMobMovementProxy *this);
  void (__fastcall *setYHeadRot)(IMobMovementProxy *this, float);
  float (__fastcall *getSwimSpeedMultiplier)(IMobMovementProxy *this);
  void (__fastcall *setSwimSpeedMultiplier)(IMobMovementProxy *this, float);
  void (__fastcall *pushActors)(IMobMovementProxy *this);
  void (__fastcall *updateGliding)(IMobMovementProxy *this);
  void (__fastcall *travel)(IMobMovementProxy *this, float, float, float);
  void (__fastcall *playJumpSound)(IMobMovementProxy *this);
  void (__fastcall *emitJumpPreventedEvent)(IMobMovementProxy *this, const BlockPos *);
  float (__fastcall *getWaterWalkerEnchant)(IMobMovementProxy *this);
  float (__fastcall *calcGroundFriction)(IMobMovementProxy *this, const Block *, const BlockPos *);
  float (__fastcall *getFlyingSpeed)(IMobMovementProxy *this);
  void (__fastcall *setFlyingSpeed)(IMobMovementProxy *this, float);
  void (__fastcall *applyFinalFriction)(IMobMovementProxy *this, float, bool);
  bool (__fastcall *shouldApplyWaterGravity)(IMobMovementProxy *this);
  float (__fastcall *getFrictionModifier)(IMobMovementProxy *this);
  void (__fastcall *setFrictionModifier)(IMobMovementProxy *this, float);
  Mob *(__fastcall *_getMob)(IMobMovementProxy *this);
  float (__fastcall *_getYHeadRotOld)(IMobMovementProxy *this);
  void (__fastcall *_setYHeadRotOld)(IMobMovementProxy *this, float);
  MovementInterpolator *(__fastcall *_getInterpolation)(IMobMovementProxy *this);
  bool (__fastcall *canJump)(IPlayerMovementProxy *this);
  std::optional<AABB> *(__fastcall *getHead)(IPlayerMovementProxy *this, std::optional<AABB> *result);
  void (__fastcall *setHead)(IPlayerMovementProxy *this, std::optional<AABB>);
  std::optional<AABB> *(__fastcall *getOther)(IPlayerMovementProxy *this, std::optional<AABB> *result);
  void (__fastcall *setOther)(IPlayerMovementProxy *this, std::optional<AABB>);
  bool (__fastcall *getCamereDeparted)(IPlayerMovementProxy *this);
  bool (__fastcall *getThirdPersonPerspective)(IPlayerMovementProxy *this);
  Vec2 *(__fastcall *getRotationToCamera)(IPlayerMovementProxy *this, Vec2 *result);
  bool (__fastcall *canMove)(IPlayerMovementProxy *this);
  bool (__fastcall *canButtonJump)(IPlayerMovementProxy *this);
  bool (__fastcall *canButtonInAir)(IPlayerMovementProxy *this);
  bool (__fastcall *isSlowedByItemUse)(IPlayerMovementProxy *this);
  void (__fastcall *startGliding)(IPlayerMovementProxy *this);
  void (__fastcall *stopGliding)(IPlayerMovementProxy *this);
  bool (__fastcall *isFlying)(IPlayerMovementProxy *this);
  bool (__fastcall *isUsingItem)(IPlayerMovementProxy *this);
  bool (__fastcall *isSleeping)(IPlayerMovementProxy *this);
  bool (__fastcall *isServerAuthoritativeMovement)(IPlayerMovementProxy *this);
  bool (__fastcall *isAutoJumping)(IPlayerMovementProxy *this);
  void (__fastcall *setAutoJumping)(IPlayerMovementProxy *this, bool);
  bool (__fastcall *isAutoJumpEnabled)(IPlayerMovementProxy *this);
  bool (__fastcall *wasAutoJumping)(IPlayerMovementProxy *this);
  void (__fastcall *setWasAutoJumping)(IPlayerMovementProxy *this, bool);
  bool (__fastcall *isAdventureSettingsAutoJump)(IPlayerMovementProxy *this);
  void (__fastcall *setHasMoveInput)(IPlayerMovementProxy *this, bool);
  bool (__fastcall *hasMoveInput)(IPlayerMovementProxy *this);
  bool (__fastcall *isLocalPlayer)(IPlayerMovementProxy *this);
  float (__fastcall *getBob)(IPlayerMovementProxy *this);
  void (__fastcall *setBob)(IPlayerMovementProxy *this, float);
  float (__fastcall *getLastBob)(IPlayerMovementProxy *this);
  void (__fastcall *setLastBob)(IPlayerMovementProxy *this, float);
  void (__fastcall *setLastLookBob)(IPlayerMovementProxy *this, const Vec2 *);
  Vec2 *(__fastcall *getLookBob)(IPlayerMovementProxy *this, Vec2 *result);
  void (__fastcall *setLookBob)(IPlayerMovementProxy *this, const Vec2 *);
  ReplayStateComponent *(__fastcall *tryGetReplayComponent)(IPlayerMovementProxy *this);
  PlayerActionComponent *(__fastcall *tryGetPlayerActionComponent)(IPlayerMovementProxy *this);
  const Tick *(__fastcall *getCurrentTick)(IPlayerMovementProxy *this);
  const IClientInstanceProxy *(__fastcall *getClientInstance)(IPlayerMovementProxy *this);
  IClientInstanceProxy *(__fastcall *getClientInstance)(IPlayerMovementProxy *this);
  MoveInputHandler *(__fastcall *getMoveInputHandler)(IPlayerMovementProxy *this);
  int (__fastcall *getGlidingTicks)(IPlayerMovementProxy *this);
  InputMode (__fastcall *getInputMode)(IPlayerMovementProxy *this);
  ClientPlayMode (__fastcall *getPlayMode)(IPlayerMovementProxy *this);
  float (__fastcall *getVRMoveAdjustAngle)(IPlayerMovementProxy *this);
  float (__fastcall *getPlayerPaddleForce)(IPlayerMovementProxy *this, Side);
  void (__fastcall *setPlayerPaddleForce)(IPlayerMovementProxy *this, Side, float);
  bool (__fastcall *isPaddling)(IPlayerMovementProxy *this, Side);
  bool (__fastcall *areHandsBusy)(IPlayerMovementProxy *this);
  void (__fastcall *setHandsBusy)(IPlayerMovementProxy *this, bool);
  bool (__fastcall *getAbilityBool)(IPlayerMovementProxy *this, AbilitiesIndex);
  void (__fastcall *setAbilityBool)(IPlayerMovementProxy *this, AbilitiesIndex, bool);
  float (__fastcall *getAbilityFloat)(IPlayerMovementProxy *this, AbilitiesIndex);
  void (__fastcall *setAbilityFloat)(IPlayerMovementProxy *this, AbilitiesIndex, float);
  void (__fastcall *updateClientPlayerInputState)(IPlayerMovementProxy *this);
  bool (__fastcall *isEmoting)(IPlayerMovementProxy *this);
  void (__fastcall *setEmotingStatus)(IPlayerMovementProxy *this, bool);
  void (__fastcall *setEmotePlayedEndedEarly)(IPlayerMovementProxy *this, bool);
  void (__fastcall *fireEventPersonaEmotePlayed)(IPlayerMovementProxy *this);
  void (__fastcall *sendPacket)(IPlayerMovementProxy *this, RiderJumpPacket *);
  void (__fastcall *sendPacket)(IPlayerMovementProxy *this, PlayerActionPacket *);
  void (__fastcall *sendAdventureSettingsPacket)(IPlayerMovementProxy *this);
  bool (__fastcall *isArmorFlyEnabled)(IPlayerMovementProxy *this);
  void (__fastcall *setJumpRidingScale)(IPlayerMovementProxy *this, float);
  float (__fastcall *getJumpRidingScale)(IPlayerMovementProxy *this);
  void (__fastcall *registerFramewiseActionOrStop)(IPlayerMovementProxy *this);
  LoadingState (__fastcall *getLoadingState)(IPlayerMovementProxy *this);
  void (__fastcall *setCurrentLocalMoveVelocity)(IPlayerMovementProxy *this, const Vec2 *);
  void (__fastcall *setLastPos)(IPlayerMovementProxy *this, const Vec3 *);
  Vec3 *(__fastcall *getLastPos)(IPlayerMovementProxy *this, Vec3 *result);
  void (__fastcall *setLastDelta)(IPlayerMovementProxy *this, const Vec3 *);
  Vec3 *(__fastcall *getLastDelta)(IPlayerMovementProxy *this, Vec3 *result);
  void (__fastcall *sendPlayerInput)(IPlayerMovementProxy *this);
  void (__fastcall *sendInput)(IPlayerMovementProxy *this);
  void (__fastcall *sendClientAuthInput)(IPlayerMovementProxy *this);
  bool (__fastcall *shouldSendPosition)(IPlayerMovementProxy *this);
  void (__fastcall *sendPosition)(IPlayerMovementProxy *this);
  void (__fastcall *checkMovementStats)(IPlayerMovementProxy *this, const Vec3 *);
  void (__fastcall *sendPlayerMove)(IPlayerMovementProxy *this);
  bool (__fastcall *checkMaterial)(IPlayerMovementProxy *this, const AABB *, MaterialType);
  bool (__fastcall *checkNeedAutoJump)(IPlayerMovementProxy *this, float, float);
  Player *(__fastcall *_getPlayer)(IPlayerMovementProxy *this);
  void (__fastcall *_setPositionMode)(IPlayerMovementProxy *this, int);
  void (__fastcall *_onMovePlayerPacketNormal)(IPlayerMovementProxy *this, const Vec3 *, const Vec2 *, float);
  void (__fastcall *_resetPos)(IPlayerMovementProxy *this, bool);
  const std::vector<MobEffectInstance> *(__fastcall *_getAllEffects)(IPlayerMovementProxy *this);
  Vec2 *(__fastcall *_getCurrentLocalMoveVelocity)(IPlayerMovementProxy *this, Vec2 *result);
  const Abilities *(__fastcall *_getAbilities)(IPlayerMovementProxy *this);
  const AdventureSettings *(__fastcall *_getAdventureSettings)(IPlayerMovementProxy *this);
};