I understand that LPDIRECT3DTEXTURE9 is just a IDirect3DTexture9*
Then to stop using LPDIRECT3DTEXTURE9, you just have to find-replace-in-files with IDirect3DTexture9* and you're done
does LPDIRECT3DTEXTURE9 have these?
There's no difference between LPDIRECT3DTEXTURE9 and IDirect3DTexture9*, so yes, they both have al the same stuff as each other.
I don't know what pass in for DWORD usage, D3DFORMAT format, D3DPOOL Pool?
Also there doesn't seem do be a file name parameter for IDirect3DTexture9 so how would I create a IDirect3DTexture9 from a file?
D3D is just a graphics API, it doesn't (and shouldn't!) know anything about file systems (D3DX is the helper layer to make writing simple programs easier, so it has file-system and image-format helpers). If you're not using D3DX to load your files, then you've got to load the file yourself, decode the file-format (PNG, BMP, etc) and generate an array of bytes that contain the pixel values, which you'll pass to CreateTexture. There's plenty of image loading libraries out there to help with the decoding steps (no need to write your own PNG/etc decoder).
For format, the most common will be D3DFMT_A8B8G8R8 -- the regular 32bpp format with red, green, blue and alpha channels. If you're loading a 24bpp image file, you'll have to convert it to 32bpp by adding an alpha channel to it.
For usage, most textures will use 0 (no flags).
If you want to write to it constantly from the CPU (for streaming video, etc), you'd use D3DUSAGE_DYNAMIC. If you want to draw to it using the GPU, you'd use D3DUSAGE_RENDERTARGET. If you're creating a depth-buffer texture (e.g. with format=D3DFMT_D24S8), you'd use D3DUSAGE_DEPTHSTENCIL.
For the pool, regular textures usually use D3DPOOL_MANAGED. Dynamic, render-target, and depth-buffer textures can't go in that pool though, so for them you'd use D3DPOOL_DEFAULT.