couple years ago, I tested DirectX9 to do some hobby programming, I don't know if the recent ver., still can compile within PellesC. anyway, you still can use DirectX in C, just one thing you need to know.
DirectX is COM, so C uses virtual-tables or marcos to access :
in C++ : pD3D->GetDeviceCaps(&D3DCaps);
in C : pD3D->lpVtbl->GetDeviceCaps(pD3D, &D3DCaps);
or : IDirect3DDevice9_GetDeviceCaps(pD3D, &D3DCaps);
pre-defined macro can found in D3d9.h.
I was able to link M$ DX9 lib, if you cannot link recent DX9 lib with PellesC, maybe you really need to consider to use VC++ express version (which is free).