C++是怎么读取不同格式的多媒体文件

C++是如何读取不同格式的多媒体文件
用C++编程时,比如要读取bmp,gif,(avi,MPEG,rm,wmv;mp3,wav,wma)或者其他的图片(视频,音频)文件,有的直接用特殊的函数就可以读取,但是特殊函数只支持很少的图片(视频或声音)格式啊,总不能多一种格式微软就多给一个函数吧。
是不是对多媒体的操作有一般性的底层一点的通用函数,只是好多代码要自己写
是不是C++对未知格式的文件有一般的操作啊,能举例说说么?

------解决方案--------------------
一般常见的格式都会有相关的库,使用这些库来进行开发。
而这些库就是按照这些多媒体格式的标准或者协议从底层开发的。