What do you mean "direct access?"
If your compiler doesn't have PlaySound() or the other WinAPI (or DirectX) functions, you probably need an up to date compiler! In any case, your hardware, drivers, operating system, and compiler must be compatable.
Normally, the Windows programmer accesses the sound card via the Windows API:
User Program -> WinAPI -> Manufacturer's Driver -> Hardware.
Your soundcard may be "Soundblaster compatable." If so, I think you can use a generic DOS driver.
The hardware (and firmware) for each sound card is different, and the manufacturers don't seem to publish any information on how they work internally. The sound card manufacturer supplies a driver which communicates between the proprietary hardware and the published Windows (or other OS) interface.
The PC's internal system speaker is connected to a couple of multivibrators which allow you to set frequency & duration of a tone. (There is no D/A converter). You cannot send a wave file to it, and you can't control the volume.