Saurabh's Blog

Help Integration | Windows Forms | Managed VSIP Integration | Random Rants

Relief from CE Documentation

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#\")"

Published Monday, March 08, 2004 2:47 AM by saurabhjain

Comments

 

Tony Schreiner said:

Great tip, I never noticed you can create and edit the filters.
March 8, 2004 9:13 AM
 

Sean Gephardt said:

I'm glad someone uses that feature of the Visual Studio .NET (& MSDN) IDE, that one of my first projects with MSDN, starting back in the "alpha" days of .NET...
March 10, 2004 12:12 AM
 

Sean Gephardt said:

ouch! :)
March 10, 2004 12:13 AM
 

Zoe said:

Thank you for this filter, it works fine and makes the help system so much nicer to use.
April 17, 2004 2:44 PM
 

Flatlander said:

Ian Griffiths points to a cunning ruse for excluding that annoying Windows CE documentation from MSDN. Unfortunately, Ian missed the bit at the top where Saurabh says "Visual C developer." Saurabh's fix almost works for the general case... but it
April 27, 2004 11:21 AM
 

Simon said:

Great, this has been killing me! Now, can I get the help system to not show me help for MFC classes? I just want to jump straight to the winapi stuff...

Any help here would really be appreciated!
April 27, 2004 10:01 AM
 

Saurabh Jain said:

You can set your filter to something like

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

Note that this will result in hiding of all MFC topics.
April 27, 2004 11:50 AM
 

Ramblings of a Code Monkey said:

Just like Ian Griffiths said, I'm more than familiar with getting hits from MSDN's WinCE docs instead of what I was actually looking for - the Win32 docs. Almost two months ago, Ned Batchelder came up with a way of...
April 27, 2004 8:20 PM
 

Simon said:

Thanks, that helps. It doesn't seem to affect the lookup set used by F1 though - is there any way to filter that too?
April 28, 2004 1:27 AM
 

Ivan Towlson said:

I feel like a dreadful moaner for saying this, but the latest version of the filter appears to exclude MFC for desktop Windows (as Simon wanted), but still leaves MFC for CE in. (Using the April 2004 MSDN Library.) For myself, I've removed the MFC exclude as I do need MFC once in a while and I don't find the MFC/CE help intrusive -- so I'm happy anyway!

The C# fix is looking good. Thanks Saurabh!
April 28, 2004 8:48 AM
 

Drazen Dotlic said:

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

This must be some new kind of logic operator specific to Microsoft :) Now I know why my previous attempts to get rid of CE topics failed miserably ;) Thanks for the great tip!
April 30, 2004 2:42 AM
 

Michael Teper said:

May 4, 2004 6:23 PM
 

Larry Osterman's WebLog said:

July 11, 2004 10:12 PM
 

Relief from CE Documentation said:

November 26, 2007 2:17 PM
 

Saurabh s Blog Relief from CE Documentation | Quick Diets said:

June 9, 2009 11:26 PM
Anonymous comments are disabled

© 2009 Microsoft Corporation. All rights reserved. Terms of Use  |  Trademarks  |  Privacy Statement
Microsoft
Page view tracker