文字列が、Windowsのファイル名として適当なものであるかを判定する関数ってあるでしょうか?

hoge("filename.cpp");  //true
hoge("text");       //true
hoge(".");         //「.」一文字はファイル名にならないのでfalse
hoge("2005\\03\\05");  //「\」をファイル名に使うことはできないのでfalse

こんなことができないかなと・・・