Invalid line:
pD3DDevice->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_ADD);
Your intention is probably that the alpha blender should do ADD, but the D3DTSS_COLOROP parameter does not affect the final blender, instead it installs a texture compiler. You set it to add something (the result of the previous / next stage or something like that) to the color you selected from the texture, which is incorrect. D3DTOP_SELECTARG1 or, by default, D3DTOP_MODULATE should complete the task.
Instead, you need to write:
pD3DDevice->SetRenderState(D3DBLENDOP, D3DBLENDOP_ADD);
source share