Alexandre Julliard (@julliard) commented about include/d3dx9anim.h:
#define INTERFACE ID3DXLoadUserData DECLARE_INTERFACE(ID3DXLoadUserData) { - STDMETHOD(LoadTopLevelData)(ID3DXFileData *child_data) PURE; - STDMETHOD(LoadFrameChildData)(D3DXFRAME *frame, ID3DXFileData *child_data) PURE; - STDMETHOD(LoadMeshChildData)(D3DXMESHCONTAINER *mesh_container, ID3DXFileData *child_data) PURE; + /* MS DirectX SDK headers define these methodes without 'this' parameter but tests show that it is wrong. */ + STDMETHOD(LoadTopLevelData)(THIS_ ID3DXFileData *child_data) PURE; + STDMETHOD(LoadFrameChildData)(THIS_ D3DXFRAME *frame, ID3DXFileData *child_data) PURE; + STDMETHOD(LoadMeshChildData)(THIS_ D3DXMESHCONTAINER *mesh_container, ID3DXFileData *child_data) PURE; You should probably fix ID3DXSaveUserData too while you're at it.
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/4459#note_53705