First thing to understand: even though the term "extension" is often used,
there is no extensions in modern file systems like NTFS. This is no more than a tradition to classify the files by the types of their applications by their file name ending in the form of dot followed by three (sometimes more) other characters. In older file systems, the "extension" was an attribute of a file.
Now, the option "hide extension for known file types" is related only to one program: Windows Explorer. If you change this option, it
won't change anything at all, not even Shell behavior: if you use some other program using exact same Shall API as Explorer does, nothing will change if this option is changed.
So, there is no such problem per se. You probably have some different problem not related to what you think it is related. This is some problem: you should ask question without using your idea on how it should be solved your might be preoccupied with. You should always explain your ultimate goals and describe the behavior you want to implement and why. In this case, if you explain how your filtering should work and what's the purpose of this filtering, you can get a change to receive some positive advice. I cannot give you such advice as I don't know what exactly you want to achieve.
[EDIT]
Just a hint. You may need to learn how file types are registered in the system Registry. See this discussion:
http://social.msdn.microsoft.com/Forums/en/netfxbcl/thread/630ed1d9-73f1-4cc0-bc84-04f29cffc13b[
^].
—SA