Sven B is right. Vertices with an FVF of 274 don't have a diffuse color. However, 274 is now the default FVF. It was changed a while ago and the help files weren't updated to reflect it.
From my own research, the FVF tag is a collection of flags (each bit of the tag is a different flag). It seems that only the first two bytes are used, but here's my best guess at the meanings of each flag:
Bit Meaning
0 Unused?
1 Contains vertex position (XYZ) in model space
2 Contains vertex position (XYZ) already transformed
3 Contains vertex position (XYZW) already transformed and clipped
4 Contains vertex normal
5 ???
6 Contains diffuse color
7 Contains specular information
8-15 Contains texture coordinates for texture stages 0-7
Using the "table" above, we can see that 274 is:
Bit 15 Bit 0
| |
0000000100010010
which means that each vertex contains its position in model space, its normal, and it's UV coordinates for the first texture stage.
Also, 338 is:
Bit 15 Bit 0
| |
0000000101010010
which is exactly the same, but includes a diffuse color, just like the help file says.
Anyway, you just need to put the data into the memblock end to end, in the order that they appear in the FVF tag. So, using 274, write three floats to the memblock for the X, Y, and Z coordinates, followed by another three floats for the X, Y, and Z components of the vertex normal, and finally, another two floats for the U and V coordinates of the first texture stage.
Does that help?