Instead of implementing D3DXCreateMeshFVF, wouldn't it be better to implement D3DXCreateMesh and call the latter from D3DXCreateMeshFVF by previously using D3DXDeclaratorFromFVF?
D3DXCreateMeshFVF would be pretty straight then: 1. get the const LPD3DVERTEXELEMENT9 *pDeclaration from the supplied FVF 2. call D3DXCreateMesh
BTW, D3DXGetFVFVertexSize could then also be forwarded to D3DXGetDeclVertexSize and the code simplified.