I believe that the following is going to be my claim to fame.

Every Visual C++ developer has a pet peeve about CE documentation convoluting their help experience. There is no hack free foolproof way to get rid of CE documentation, but the following comes asymptotically close.

Short Answer: - For people who use the “no filter” configuration.

  • Start Visual Studio and do Help->Edit Filters.
  • Click “New”.
  • In the filter definition, copy and paste the following: -

("Locale"="kbEnglish") NOT "TargetOS"="WinCE"

  • Click “Save As” and save it as “No CE” (or whatever name you like).
  • Open Help->Index and change the filter to “No CE”.
  • Type “GetWindowText” and hit enter. What happens next is left as an exercise.

Update: - Simon pointed out that MFC topics still appear with the filter. Ivan Towlson mentioned that above filter removed some C# documentation. Here is an updated filter that fixes these two issues. Note that this filter does not filter CE documentation from C# documentation. However, I believe that it is not a big issue, as CE does not bite C# documentation.

((("Locale"="kbEnglish") NOT "TargetOS"="WinCE") NOT "Technology"="MFC") OR ("DocSet" = "C#")

Long Answer: - Following is a suggestion that I received while I was searching for hacks/ways to get rid of CE documentation.

You can get rid of WindowCE topics in VS7 and Everett (VS 7.1) by editing your existing filters or creating a new filter (Help->Edit Filters). Try putting an existing filter in parens and then adding NOT "TargetOS"="WinCE" to the end of it. For example, the Visual C++ filter is:

"DevLang" = "C" OR "DevLang" = "C++" OR "Product" = "VC" OR "DocSet" = "PSDK" OR "DocSet" = "NETFramework" OR ("DocSet" = "kbmsdn" AND "ProductVers" = "kbVC700")

Modify it to look like:

("DevLang" = "C" OR "DevLang" = "C++" OR "Product" = "VC" OR "DocSet" = "PSDK" OR "DocSet" = "NETFramework" OR ("DocSet" = "kbmsdn" AND "ProductVers" = "kbVC700")) NOT "TargetOS"="WinCE"

This isn’t 100% since not all topics are appropriately annotated, but it’s a start. The most accurate attribute type is “DocSet”. If you look at the existing filters, this will be what you see used the most.

Note that the NOT operator is a binary operator and not a UNARY operator.

VS 2005: - The ability to edit filters was removed in VS 2005 using a web page (partly due to IE 6 SP2 changes). For now, the only way to add a new filter is through Help Studio Lite. It is distributed as part of Visual Studio 2005 SDK (it is 185 MB download though:(). With Help Studio Lite on the machine, one can add a filter using the following command line.

InnovaHxReg.exe /R /F /NameSpace:ms.VSCC.v80 /FilterName:"No CE" /FilterQuery:"((((\"Locale\"=\"kbEnglish\") NOT \"TargetOS\"=\"WinCE
\") NOT \"Technology\"=\"MFC\") NOT \"Technology\"=\"kbPocketPC\") OR (\"DocSet\" = \"C#\")"