> am I right in thinking the DirectX library only exports a single function and _everything_ else is through DX interfaces
Yup! That's why I didn't have to create a gazillion passthrough functions.
The original DLL in my modern Windows installation has these 8 exports:
DirectInputCreateA
DirectInputCreateEx
DirectInputCreateW
DllCanUnloadNow
DllGetClassObject
DllRegisterServer
DllUnregisterServer
The game only calls DirectInputCreateA, and the rest happens via the COM object that that function creates.