   Linking together different components.
  This is always a problem I end up back at, I haven't figured out a good system for it as well. The render class I have creates the window and sets up the device, when the window changes from windowed to full screen or vice versa the window is destroyed then recreated.Is there a good method to reset DirectSound and DirectInput without supplying the Render class to get the current hWnd?   
  You should not be totally destroying the window when you change from fullscreen to windowed (or the opposite).  When you are changing to fullscreen, all you have to do is fill out your D3DPRESENT_PARAMETERS structure appropriately and reset the device.  When you are changing to windowed, fill out your presentation params again (of course, set the Windowed member to true this time).  Depending on the current window size, you may need to re-adjust it using standard Win32 APIs.   