You can do all this by accessing the Windows Media Player Control Library through COM communication (the IWMPCdromRip interface covers, for example, CD breaks). It is not very beautiful and does not look very manageable (you give it a list of tracks to copy, talk about it, copy them and put them into the WMP library, which you can then automate and pull tracks out of), but it will work from end to end, including request for track data and album art. Take a look at http://msdn.microsoft.com/en-us/library/bb262437(VS.85).aspx to get started.
Fast Google also found a link to a CodeProject article in which the authors created a library for copying CDs by switching to the low-level IOCTL APIs and interacting directly with the CD drive. This can be a good starting point for creating your own - find it at http://www.codeproject.com/KB/cs/csharpripper.aspx .
The same author put together a C # encoder using LAME, although you can just connect to LAME.EXE, which could be simpler. See http://www.codeproject.com/KB/audio-video/MP3Compressor.aspx .
The CDDB request (or, most likely, FREEDB) is not rocket science, it is a simple ist-HTTP interface (although curiously there is no web service I could find). Easy to do with WebRequest .
You would think that someone would put together a simple C # library for this, but this seems like an unusual request. Maybe time for a side project ...
Neil hewitt
source share