<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet href='http://feed.feedsky.com/styles/temp01.xsl' type='text/xsl' ?><!--这是一个由Feedsy提供技术支持的Feed，为了提高读者阅读的体验，以及满足用户美化自己Feed的需要，我们设计了多种精美的Feed模板，提供给大家选择，所有最终呈现出来的样式，皆由用户自愿选择使用，未经许可，任何团体和个人，请不要擅自修改样式或者盗用，这是对于用户选择权的尊重。--><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:fs="http://www.feedsky.com/namespace/feed" version="2.0"><channel><atom:link href="http://feed.feedsky.com/bosswin" type="application/rss+xml" ref="self"></atom:link><lastBuildDate>Tue, 07 Aug 2007 01:53:49 GMT</lastBuildDate><title>代码小猪</title><description>Bosswin</description><link>http://blog.mobilelook.cn/</link><language>zh-CN</language><copyright>Copyright 2006-2007 www.mobilelook.cn. Some Rights Reserved.&amp;lt;script src='http://s110.cnzz.com/stat.php?id=531321&amp;amp;web_id=531321&amp;amp;show=pic1' language='JavaScript' charset='gb2312'&amp;gt;&amp;lt;/script&amp;gt;&amp;lt;script language=&amp;quot;javascript&amp;quot; type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;http://js.users.51.la/1149645.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;</copyright><pubDate>Tue, 07 Aug 2007 01:54:32 GMT</pubDate><dc:date>2007-08-07T01:54:32Z</dc:date><dc:language>zh-CN</dc:language><dc:rights>Copyright 2006-2007 www.mobilelook.cn. Some Rights Reserved.&amp;lt;script src='http://s110.cnzz.com/stat.php?id=531321&amp;amp;web_id=531321&amp;amp;show=pic1' language='JavaScript' charset='gb2312'&amp;gt;&amp;lt;/script&amp;gt;&amp;lt;script language=&amp;quot;javascript&amp;quot; type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;http://js.users.51.la/1149645.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;</dc:rights><item><title>Knowledge Base Home</title><link>http://item.feedsky.com/~feedsky/bosswin/~1482727/15322375/1503640/1/item.html</link><wfw:comment>http://blog.mobilelook.cn/</wfw:comment><wfw:commentRss>http://blog.mobilelook.cn/sydication.asp?cmt=73</wfw:commentRss><trackback:ping>http://blog.mobilelook.cn/cmd.asp?act=tb&amp;id=73&amp;key=f4eaf1b2</trackback:ping><description>&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; background=&quot;&quot; border=&quot;0&quot;&gt;    &lt;tbody&gt;        &lt;tr&gt;            &lt;!--            &lt;td width=&quot;153&quot;&gt;            &lt;img height=1 width=&quot;153&quot; src=&quot;&quot; alt=&quot;&quot;&gt;            &lt;/td&gt;            --&gt;            &lt;td class=&quot;topic_body&quot; valign=&quot;top&quot; width=&quot;90%&quot;&gt;            &lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; width=&quot;100%&quot; border=&quot;0&quot;&gt;                &lt;tbody&gt;                    &lt;tr&gt;                        &lt;td class=&quot;sectiontitle&quot;&gt;&lt;strong&gt;Google Code&lt;/strong&gt;&lt;/td&gt;                    &lt;/tr&gt;                    &lt;tr&gt;                        &lt;td valign=&quot;top&quot;&gt;                        &lt;ul class=&quot;section&quot;&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/answer.py?answer=56458&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;What is code.google.com? &lt;/font&gt;&lt;/a&gt;&lt;/li&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/answer.py?answer=56459&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;Who are the people behind code.google.com? &lt;/font&gt;&lt;/a&gt;&lt;/li&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/answer.py?answer=56497&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;In what other ways does Google share its knowledge with external developers? &lt;/font&gt;&lt;/a&gt;&lt;/li&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/answer.py?answer=56489&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;What if I have questions about code.google.com? &lt;/font&gt;&lt;/a&gt;&lt;/li&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/answer.py?answer=56485&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;What APIs, file format information and feeds does Google offer for external developers who wish to code solutions that use Google services? &lt;/font&gt;&lt;/a&gt;&lt;/li&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/topic.py?topic=10435&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;More...&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;                        &lt;/ul&gt;                        &lt;/td&gt;                    &lt;/tr&gt;                    &lt;tr&gt;                        &lt;td&gt;&lt;br /&gt;                        &lt;/td&gt;                    &lt;/tr&gt;                    &lt;tr&gt;                        &lt;td class=&quot;sectiontitle&quot;&gt;&lt;strong&gt;Open Source&lt;/strong&gt;&lt;/td&gt;                    &lt;/tr&gt;                    &lt;tr&gt;                        &lt;td valign=&quot;top&quot;&gt;                        &lt;ul class=&quot;section&quot;&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/topic.py?topic=10441&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;Google Code Search&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/topic.py?topic=10442&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;Google Summer of Code&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/topic.py?topic=10437&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;Google's Open Source Projects&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/topic.py?topic=10380&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;Project Hosting&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;                        &lt;/ul&gt;                        &lt;/td&gt;                    &lt;/tr&gt;                    &lt;tr&gt;                        &lt;td&gt;&lt;br /&gt;                        &lt;/td&gt;                    &lt;/tr&gt;                    &lt;tr&gt;                        &lt;td class=&quot;sectiontitle&quot;&gt;&lt;strong&gt;Reach Google Users&lt;/strong&gt;&lt;/td&gt;                    &lt;/tr&gt;                    &lt;tr&gt;                        &lt;td valign=&quot;top&quot;&gt;                        &lt;ul class=&quot;section&quot;&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/topic.py?topic=10033&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;Google Desktop Gadgets API&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/topic.py?topic=10027&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;Google Gadgets API&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/topic.py?topic=10037&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;Google Toolbar API&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/topic.py?topic=10426&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;KML in Google Earth&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;                        &lt;/ul&gt;                        &lt;/td&gt;                    &lt;/tr&gt;                    &lt;tr&gt;                        &lt;td&gt;&lt;br /&gt;                        &lt;/td&gt;                    &lt;/tr&gt;                    &lt;tr&gt;                        &lt;td class=&quot;sectiontitle&quot;&gt;&lt;strong&gt;Enhance Your Web Site&lt;/strong&gt;&lt;/td&gt;                    &lt;/tr&gt;                    &lt;tr&gt;                        &lt;td valign=&quot;top&quot;&gt;                        &lt;ul class=&quot;section&quot;&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/topic.py?topic=11330&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;AJAX Feed API&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/topic.py?topic=10021&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;AJAX Search API&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/topic.py?topic=11715&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;Custom Search Engines&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/topic.py?topic=10043&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;Google Gadgets for your page&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/topic.py?topic=11628&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;Google Gears&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/topic.py?topic=10034&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;Google Web Toolkit&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/topic.py?topic=10028&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;Maps API&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/topic.py?topic=10042&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;Sitemaps&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;                        &lt;/ul&gt;                        &lt;/td&gt;                    &lt;/tr&gt;                    &lt;tr&gt;                        &lt;td&gt;&lt;br /&gt;                        &lt;/td&gt;                    &lt;/tr&gt;                    &lt;tr&gt;                        &lt;td class=&quot;sectiontitle&quot;&gt;&lt;strong&gt;Integrate With Google&lt;/strong&gt;&lt;/td&gt;                    &lt;/tr&gt;                    &lt;tr&gt;                        &lt;td valign=&quot;top&quot;&gt;                        &lt;ul class=&quot;section&quot;&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/topic.py?topic=10019&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;AdSense API&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/topic.py?topic=10020&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;AdWords API&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/topic.py?topic=10024&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;Base Data API&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/topic.py?topic=10022&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;Blogger Data API&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/topic.py?topic=10023&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;Calendar Data API&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/topic.py?topic=11279&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;Google Apps APIs&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/topic.py?topic=10026&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;Google Checkout API&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/topic.py?topic=11558&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;Google Mashup Editor&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/topic.py?topic=11908&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;Google Safe Browsing API&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/topic.py?topic=10031&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;Google Talk&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/topic.py?topic=10949&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;Picasa Web Albums Data API&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/topic.py?topic=10708&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;Docs Data APIs&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;                        &lt;/ul&gt;                        &lt;/td&gt;                    &lt;/tr&gt;                    &lt;tr&gt;                        &lt;td&gt;&lt;br /&gt;                        &lt;/td&gt;                    &lt;/tr&gt;                    &lt;tr&gt;                        &lt;td class=&quot;sectiontitle&quot;&gt;&lt;strong&gt;Articles &amp;amp; Tutorials&lt;/strong&gt;&lt;/td&gt;                    &lt;/tr&gt;                    &lt;tr&gt;                        &lt;td valign=&quot;top&quot;&gt;                        &lt;ul class=&quot;section&quot;&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/answer.py?answer=73977&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;Meeting User Expectations: Interacting With Items &lt;/font&gt;&lt;/a&gt;&lt;/li&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/answer.py?answer=73921&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;Getting Started with the .NET Client Library &lt;/font&gt;&lt;/a&gt;&lt;/li&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/answer.py?answer=73041&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;Building an Extensive Maps Mashup &lt;/font&gt;&lt;/a&gt;&lt;/li&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/answer.py?answer=72765&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;Google Mashup Editor and Yahoo! Pipes: Friend, not Foe &lt;/font&gt;&lt;/a&gt;&lt;/li&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/answer.py?answer=72674&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;Simple XML Parsing &lt;/font&gt;&lt;/a&gt;&lt;/li&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/topic.py?topic=11369&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;More...&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/topic.py?topic=12141&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;External Contributions&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;                        &lt;/ul&gt;                        &lt;/td&gt;                    &lt;/tr&gt;                &lt;/tbody&gt;            &lt;/table&gt;            &lt;/td&gt;        &lt;/tr&gt;    &lt;/tbody&gt;&lt;/table&gt;</description><category>『GOOGLE开发』</category><pubDate>Tue, 07 Aug 2007 09:53:49 +0800</pubDate><author>a@b.com (bosswin)</author><guid isPermaLink="false">http://blog.mobilelook.cn/GoogleDevelopment/200708/73.html</guid><dc:creator>a@b.com (bosswin)</dc:creator><dc:date>2007-08-07T01:53:49Z</dc:date><fs:srclink>http://blog.mobilelook.cn/GoogleDevelopment/200708/73.html</fs:srclink><fs:srcfeed>http://blog.mobilelook.cn/rss.xml</fs:srcfeed><fs:itemid>feedsky/bosswin/~1482727/15322375/1503640</fs:itemid></item><item><title>Google Summer of Code</title><link>http://item.feedsky.com/~feedsky/bosswin/~1482727/15226854/1503640/1/item.html</link><wfw:comment>http://blog.mobilelook.cn/</wfw:comment><wfw:commentRss>http://blog.mobilelook.cn/sydication.asp?cmt=72</wfw:commentRss><trackback:ping>http://blog.mobilelook.cn/cmd.asp?act=tb&amp;id=72&amp;key=7c22d1df</trackback:ping><description>&lt;h1&gt;Google Summer of Code&amp;trade;&lt;/h1&gt;&lt;p&gt;Accepted student applications for &lt;em&gt;Google Summer of Code&lt;/em&gt; have been announced! We accepted over 900 student applicants from a pool of nearly 6,200 applications.&lt;/p&gt;&lt;p&gt;All the mentoring organizations that will participate in &lt;em&gt;Google Summer of Code&lt;/em&gt; 2007 are listed below. You can learn more about the accepted students and their projects by visiting each organization's &amp;quot;about&amp;quot; page.&lt;/p&gt;&lt;p&gt;You might also be interested in keeping up with news about the program on the &lt;a href=&quot;http://googlesummerofcode.blogspot.com/&quot;&gt;Google Summer of Code Blog&lt;/a&gt;. And, you can still hang out with us in &lt;tt&gt;#summer-discuss&lt;/tt&gt; on &lt;a href=&quot;http://www.slashnet.org/&quot;&gt;Slashnet&lt;/a&gt; or in the &lt;a href=&quot;http://groups.google.com/group/google-summer-of-code-discuss&quot;&gt;program discussion group&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;&lt;big&gt;&lt;strong&gt;&lt;a href=&quot;http://code.google.com/soc/2007/student_home.html&quot;&gt;&lt;font size=&quot;4&quot;&gt;Registered Student Login&lt;/font&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/big&gt;&lt;/p&gt;&lt;p&gt;&lt;big&gt;&lt;strong&gt;&lt;a href=&quot;http://code.google.com/soc/2007/mentor_home.html&quot;&gt;&lt;font size=&quot;4&quot;&gt;Registered Mentor Login&lt;/font&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/big&gt;&lt;/p&gt;&lt;p&gt;You can still take a look at all the organizations' ideas pages to learn more about what help they need from new contributors.&lt;/p&gt;&lt;h3&gt;Mentoring Organizations Participating in &lt;em&gt;Google Summer of Code&lt;/em&gt; 2007&lt;/h3&gt;&lt;table style=&quot;POSITION: relative&quot; class=&quot;organizations&quot;&gt;    &lt;tbody&gt;        &lt;tr&gt;            &lt;td&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/abisource/about.html&quot; rel=&quot;nofollow&quot;&gt;AbiSource&lt;/a&gt; (&lt;a href=&quot;http://www.abisource.com/twiki/bin/view/Abiword/SummerOfCode2007&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/adium/about.html&quot; rel=&quot;nofollow&quot;&gt;Adium&lt;/a&gt; (&lt;a href=&quot;http://trac.adiumx.com/wiki/SummerOfCode&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/asf/about.html&quot; rel=&quot;nofollow&quot;&gt;The Apache Software Foundation&lt;/a&gt; (&lt;a href=&quot;http://wiki.apache.org/general/SummerOfCode2007&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/aqsis/about.html&quot; rel=&quot;nofollow&quot;&gt;Aqsis Team&lt;/a&gt; (&lt;a href=&quot;http://wiki.aqsis.org/dev/soc_2007&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/ardour/about.html&quot; rel=&quot;nofollow&quot;&gt;Ardour&lt;/a&gt; (&lt;a href=&quot;http://ardour.org/summerofcode2007&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/argouml/about.html&quot; rel=&quot;nofollow&quot;&gt;ArgoUML&lt;/a&gt; (&lt;a href=&quot;http://argouml.tigris.org/googlessoc2007.html&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/amp/about.html&quot; rel=&quot;nofollow&quot;&gt;Audacious Media Player&lt;/a&gt; (&lt;a href=&quot;http://audacious-media-player.org/Summer_of_Code&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/bzr/about.html&quot; rel=&quot;nofollow&quot;&gt;Bazaar&lt;/a&gt; (&lt;a href=&quot;http://bazaar-vcs.org/SummerOfCode&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/bbc/about.html&quot; rel=&quot;nofollow&quot;&gt;BBC Research&lt;/a&gt; (&lt;a href=&quot;http://kamaelia.sourceforge.net/SummerOfCode2007&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/beagle/about.html&quot; rel=&quot;nofollow&quot;&gt;Beagle&lt;/a&gt; (&lt;a href=&quot;http://beagle-project.org/Summer_Of_Code_2007&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/blender/about.html&quot; rel=&quot;nofollow&quot;&gt;Blender Foundation&lt;/a&gt; (&lt;a href=&quot;http://wiki.blender.org/index.php/BlenderDev/GSOC_2007_Ideas&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/boost/about.html&quot; rel=&quot;nofollow&quot;&gt;Boost C++&lt;/a&gt; (&lt;a href=&quot;http://www.crystalclearsoftware.com/cgi-bin/boost_wiki/wiki.pl?Google_Summer_Of_Code_2007&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/bzflag/about.html&quot; rel=&quot;nofollow&quot;&gt;BZFlag&lt;/a&gt; (&lt;a href=&quot;http://my.bzflag.org/w/Google_Summer_of_Code&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/cscs/about.html&quot; rel=&quot;nofollow&quot;&gt;Center for the Study of Complex Systems (CSCS), University of Michigan&lt;/a&gt; (&lt;a href=&quot;http://cscs.umich.edu/~rlr/SoC/index.php?n=Main.Soc2007&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/clam/about.html&quot; rel=&quot;nofollow&quot;&gt;CLAM ( at the Universitat Pompeu Fabra)&lt;/a&gt; (&lt;a href=&quot;http://iua-share.upf.edu/wikis/clam/index.php/SoC_ideas&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/codehaus/about.html&quot; rel=&quot;nofollow&quot;&gt;The Codehaus&lt;/a&gt; (&lt;a href=&quot;http://gsoc.codehaus.org/Ideas&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/cpsr/about.html&quot; rel=&quot;nofollow&quot;&gt;Computer Professionals for Social Responsibility&lt;/a&gt; (&lt;a href=&quot;http://www.insecure.org/cpsr&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/coppermine/about.html&quot; rel=&quot;nofollow&quot;&gt;Coppermine Photo Gallery&lt;/a&gt; (&lt;a href=&quot;http://docs.google.com/Doc?id=d3kbkz4_44gn9cf6&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/coresystems/about.html&quot; rel=&quot;nofollow&quot;&gt;coresystems GmbH&lt;/a&gt; (&lt;a href=&quot;http://linuxbios.org/GSoC&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/cc/about.html&quot; rel=&quot;nofollow&quot;&gt;Creative Commons&lt;/a&gt; (&lt;a href=&quot;http://wiki.creativecommons.org/Summer_of_Code&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/crystal/about.html&quot; rel=&quot;nofollow&quot;&gt;Crystal Space&lt;/a&gt; (&lt;a href=&quot;http://trac.crystalspace3d.org/trac/CS/wiki/SoC%20Ideas&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/daisy/about.html&quot; rel=&quot;nofollow&quot;&gt;Daisy CMS&lt;/a&gt; (&lt;a href=&quot;http://cocoondev.org/daisyscratchpad/291-cd.html&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/debian/about.html&quot; rel=&quot;nofollow&quot;&gt;Debian&lt;/a&gt; (&lt;a href=&quot;http://wiki.debian.org/SummerOfCode2007&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/detached/about.html&quot; rel=&quot;nofollow&quot;&gt;Detached Solutions&lt;/a&gt; (&lt;a href=&quot;http://www.detachedsolutions.com/soc/2007/&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/django/about.html&quot; rel=&quot;nofollow&quot;&gt;Django (Lawrence-Journal World)&lt;/a&gt; (&lt;a href=&quot;http://code.djangoproject.com/wiki/SummerOfCode2007&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/dojo/about.html&quot; rel=&quot;nofollow&quot;&gt;Dojo Foundation&lt;/a&gt; (&lt;a href=&quot;http://dojo.jot.com/SummerOfCode/&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/drupal/about.html&quot; rel=&quot;nofollow&quot;&gt;Drupal&lt;/a&gt; (&lt;a href=&quot;http://drupal.org/node/110703&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/dspace/about.html&quot; rel=&quot;nofollow&quot;&gt;DSpace&lt;/a&gt; (&lt;a href=&quot;http://wiki.dspace.org/index.php/Summer_of_Code_Ideas&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/eclipse/about.html&quot; rel=&quot;nofollow&quot;&gt;Eclipse&lt;/a&gt; (&lt;a href=&quot;http://wiki.eclipse.org/index.php/Google_Summer_of_Code_2007_Ideas&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/eff/about.html&quot; rel=&quot;nofollow&quot;&gt;The Electronic Frontier Foundation&lt;/a&gt; (&lt;a href=&quot;http://tor.eff.org/volunteer.html.en#Coding&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/etherboot/about.html&quot; rel=&quot;nofollow&quot;&gt;Etherboot Project&lt;/a&gt; (&lt;a href=&quot;http://etherboot.org/wiki/soc/&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/exist/about.html&quot; rel=&quot;nofollow&quot;&gt;eXist&lt;/a&gt; (&lt;a href=&quot;http://exist-db.org/summer.html&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/fann/about.html&quot; rel=&quot;nofollow&quot;&gt;FANN - The Fast Artificial Neural Network Library&lt;/a&gt; (&lt;a href=&quot;http://leenissen.dk/fann/index.php?p=gsoc.php&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/fedora/about.html&quot; rel=&quot;nofollow&quot;&gt;The Fedora Project&lt;/a&gt; (&lt;a href=&quot;http://fedoraproject.org/wiki/FedoraBounties&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/ffmpeg/about.html&quot; rel=&quot;nofollow&quot;&gt;FFmpeg&lt;/a&gt; (&lt;a href=&quot;http://wiki.multimedia.cx/index.php?title=Summer_Of_Code_2007&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/fityk/about.html&quot; rel=&quot;nofollow&quot;&gt;Fityk&lt;/a&gt; (&lt;a href=&quot;http://fityk.svn.sourceforge.net/viewvc/*checkout*/fityk/trunk/TODO&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/fsijp/about.html&quot; rel=&quot;nofollow&quot;&gt;The Free Software Initiative of Japan&lt;/a&gt; (&lt;a href=&quot;https://members.fsij.org/trac/soc2007/wiki/Ideas&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/freebsd/about.html&quot; rel=&quot;nofollow&quot;&gt;FreeBSD&lt;/a&gt; (&lt;a href=&quot;http://www.freebsd.org/projects/summerofcode.html&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/freenet/about.html&quot; rel=&quot;nofollow&quot;&gt;Freenet Project Inc&lt;/a&gt; (&lt;a href=&quot;http://wiki.freenetproject.org/SummerOfCode2007&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/freevo/about.html&quot; rel=&quot;nofollow&quot;&gt;Freevo&lt;/a&gt; (&lt;a href=&quot;http://freevo.sourceforge.net/cgi-bin/freevo-2.0/SoC2007&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/gallery/about.html&quot; rel=&quot;nofollow&quot;&gt;Gallery&lt;/a&gt; (&lt;a href=&quot;http://gallery.menalto.com/summer_of_code/2007/ideas&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/gcc/about.html&quot; rel=&quot;nofollow&quot;&gt;GCC&lt;/a&gt; (&lt;a href=&quot;http://gcc.gnu.org/wiki/SummerOfCode&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/geda/about.html&quot; rel=&quot;nofollow&quot;&gt;The gEDA Project&lt;/a&gt; (&lt;a href=&quot;http://geda.seul.org/gsoc/projects.html&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/geeklog/about.html&quot; rel=&quot;nofollow&quot;&gt;Geeklog&lt;/a&gt; (&lt;a href=&quot;http://wiki.geeklog.net/wiki/index.php/Google_Summer_of_Code&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/genmapp/about.html&quot; rel=&quot;nofollow&quot;&gt;GenMAPP&lt;/a&gt; (&lt;a href=&quot;http://conklinwolf.ucsf.edu/genmappwiki/Google_Summer_of_Code_2007&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/gentoo/about.html&quot; rel=&quot;nofollow&quot;&gt;Gentoo Foundation&lt;/a&gt; (&lt;a href=&quot;http://gentoo.org/proj/en/userrel/soc&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/ggi/about.html&quot; rel=&quot;nofollow&quot;&gt;The GGI Project&lt;/a&gt; (&lt;a href=&quot;http://www.ggi-project.org/soc.html&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/git/about.html&quot; rel=&quot;nofollow&quot;&gt;Git Development Community&lt;/a&gt; (&lt;a href=&quot;http://git.or.cz/gitwiki/SoC2007Ideas&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/gnome/about.html&quot; rel=&quot;nofollow&quot;&gt;GNOME&lt;/a&gt; (&lt;a href=&quot;http://live.gnome.org/SummerOfCode2007/Ideas&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/gnu/about.html&quot; rel=&quot;nofollow&quot;&gt;GNU Project&lt;/a&gt; (&lt;a href=&quot;http://www.gnu.org/software/soc-projects/ideas.html&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/gnucash/about.html&quot; rel=&quot;nofollow&quot;&gt;GnuCash&lt;/a&gt; (&lt;a href=&quot;http://wiki.gnucash.org/wiki/SoC2007&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/gnustep/about.html&quot; rel=&quot;nofollow&quot;&gt;GNUstep&lt;/a&gt; (&lt;a href=&quot;http://wiki.gnustep.org/index.php?title=Summer_Of_Code_2007&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/google/about.html&quot; rel=&quot;nofollow&quot;&gt;Google&lt;/a&gt; (&lt;a href=&quot;http://code.google.com/p/google-web-toolkit/wiki/GWT_GSoC&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/haiku/about.html&quot; rel=&quot;nofollow&quot;&gt;Haiku&lt;/a&gt; (&lt;a href=&quot;http://www.haiku-os.org/community/gsoc2007/ideas&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/handhelds/about.html&quot; rel=&quot;nofollow&quot;&gt;Handhelds.org&lt;/a&gt; (&lt;a href=&quot;http://www.handhelds.org/moin/moin.cgi/SummerOfCode&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/haskell/about.html&quot; rel=&quot;nofollow&quot;&gt;Haskell.org&lt;/a&gt; (&lt;a href=&quot;http://hackage.haskell.org/trac/summer-of-code/query?status=new&amp;amp;status=assigned&amp;amp;status=reopened&amp;amp;group=topic&amp;amp;type=proposed-project&amp;amp;order=priority&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/pano/about.html&quot; rel=&quot;nofollow&quot;&gt;hugin / panotools&lt;/a&gt; (&lt;a href=&quot;http://wiki.panotools.org/SoC2007_projects&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/iem/about.html&quot; rel=&quot;nofollow&quot;&gt;IEM - Institute of Electronic Music and Acoustics, Graz&lt;/a&gt; (&lt;a href=&quot;http://puredata.info/dev/summer-of-code&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/ikiwiki/about.html&quot; rel=&quot;nofollow&quot;&gt;ikiwiki&lt;/a&gt; (&lt;a href=&quot;http://ikiwiki.info/soc.html&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/inkscape/about.html&quot; rel=&quot;nofollow&quot;&gt;Inkscape&lt;/a&gt; (&lt;a href=&quot;http://wiki.inkscape.org/wiki/index.php/Googles_Summer_Of_Code_2007&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/internet2/about.html&quot; rel=&quot;nofollow&quot;&gt;Internet2&lt;/a&gt; (&lt;a href=&quot;http://www.internet2.edu/soc2007/ideas.html&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/jikesrvm/about.html&quot; rel=&quot;nofollow&quot;&gt;Jikes RVM&lt;/a&gt; (&lt;a href=&quot;http://docs.codehaus.org/display/RVM/Project+Proposals&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/joomla/about.html&quot; rel=&quot;nofollow&quot;&gt;Joomla!&lt;/a&gt; (&lt;a href=&quot;http://dev.joomla.org/content/view/2334/99/&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/k3d/about.html&quot; rel=&quot;nofollow&quot;&gt;K-3D&lt;/a&gt; (&lt;a href=&quot;http://www.k-3d.org/wiki/Google_Summer_of_Code_2007&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/kde/about.html&quot; rel=&quot;nofollow&quot;&gt;KDE&lt;/a&gt; (&lt;a href=&quot;http://techbase.kde.org/Projects/Summer_of_Code/2007&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/lanka/about.html&quot; rel=&quot;nofollow&quot;&gt;Lanka Software Foundation&lt;/a&gt; (&lt;a href=&quot;http://www.opensource.lk/&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/liblime/about.html&quot; rel=&quot;nofollow&quot;&gt;Liblime&lt;/a&gt; (&lt;a href=&quot;http://wiki.liblime.com/doku.php?id=googlesummerofcodeideas&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/lispnyc/about.html&quot; rel=&quot;nofollow&quot;&gt;LispNYC.org&lt;/a&gt; (&lt;a href=&quot;http://lispnyc.org/soc2007.clp&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;/td&gt;            &lt;td&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/llvm/about.html&quot; rel=&quot;nofollow&quot;&gt;LLVM Compiler Infrastructure&lt;/a&gt; (&lt;a href=&quot;http://llvm.org/OpenProjects.html&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/macports/about.html&quot; rel=&quot;nofollow&quot;&gt;MacPorts&lt;/a&gt; (&lt;a href=&quot;http://trac.macosforge.org/projects/macports/wiki/SummerOfCode&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/maemo/about.html&quot; rel=&quot;nofollow&quot;&gt;maemo&lt;/a&gt; (&lt;a href=&quot;http://maemo.org/maemowiki/GoogleSoC2007&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/metabrainz/about.html&quot; rel=&quot;nofollow&quot;&gt;MetaBrainz Foundation&lt;/a&gt; (&lt;a href=&quot;http://wiki.musicbrainz.org/SummerOfCodeIdeas&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/mixxx/about.html&quot; rel=&quot;nofollow&quot;&gt;Mixxx&lt;/a&gt; (&lt;a href=&quot;http://mixxx.sourceforge.net/wiki/index.php/GSoC_2007&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/moin/about.html&quot; rel=&quot;nofollow&quot;&gt;MoinMoin Wiki Project&lt;/a&gt; (&lt;a href=&quot;http://moinmoin.wikiwikiweb.de/GoogleSoc2007&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/mono/about.html&quot; rel=&quot;nofollow&quot;&gt;Mono Project&lt;/a&gt; (&lt;a href=&quot;http://www.mono-project.com/StudentProjects&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/moodle/about.html&quot; rel=&quot;nofollow&quot;&gt;Moodle&lt;/a&gt; (&lt;a href=&quot;http://docs.moodle.org/en/Student_projects&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/mozilla/about.html&quot; rel=&quot;nofollow&quot;&gt;Mozilla Foundation&lt;/a&gt; (&lt;a href=&quot;http://wiki.mozilla.org/Community:SummerOfCode07&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/mysql/about.html&quot; rel=&quot;nofollow&quot;&gt;MySQL AB&lt;/a&gt; (&lt;a href=&quot;http://forge.mysql.com/wiki/SummerOfCode&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/nescent/about.html&quot; rel=&quot;nofollow&quot;&gt;National Evolutionary Synthesis Center (NESCent), Phyloinformatics Group&lt;/a&gt; (&lt;a href=&quot;http://phyloinformatics.net/Phyloinformatics_Summer_of_Code_2007&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/netbsd/about.html&quot; rel=&quot;nofollow&quot;&gt;NetBSD&lt;/a&gt; (&lt;a href=&quot;http://www.netbsd.org/contrib/soc-projects.html&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/neuros/about.html&quot; rel=&quot;nofollow&quot;&gt;Neuros Technology&lt;/a&gt; (&lt;a href=&quot;http://wiki.neurostechnology.com/index.php/Summer_of_Code&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/nmap/about.html&quot; rel=&quot;nofollow&quot;&gt;Nmap Security Scanner&lt;/a&gt; (&lt;a href=&quot;http://insecure.org/nmap/GoogleGrants.html&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/ogre/about.html&quot; rel=&quot;nofollow&quot;&gt;OGRE&lt;/a&gt; (&lt;a href=&quot;http://www.ogre3d.org/wiki/index.php/HelpRequested&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/olpc/about.html&quot; rel=&quot;nofollow&quot;&gt;One Laptop Per Child&lt;/a&gt; (&lt;a href=&quot;http://wiki.laptop.org/wiki/OLPC_Google_Summer_of_Code&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/osvdb/about.html&quot; rel=&quot;nofollow&quot;&gt;Open Security Foundation (OSVDB)&lt;/a&gt; (&lt;a href=&quot;http://osvdb.org/summerofcode.php&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/osaf/about.html&quot; rel=&quot;nofollow&quot;&gt;Open Source Applications Foundation&lt;/a&gt; (&lt;a href=&quot;http://wiki.osafoundation.org/Journal/TedLeung20060127&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/openicc/about.html&quot; rel=&quot;nofollow&quot;&gt;OpenICC&lt;/a&gt; (&lt;a href=&quot;http://freedesktop.org/wiki/OpenIccForGoogleSoC2007&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/openmoko/about.html&quot; rel=&quot;nofollow&quot;&gt;OpenMoko&lt;/a&gt; (&lt;a href=&quot;http://wiki.openmoko.org/wiki/Summer_of_code&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/openmrs/about.html&quot; rel=&quot;nofollow&quot;&gt;OpenMRS&lt;/a&gt; (&lt;a href=&quot;http://soc2007.openmrs.org/&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/ooo/about.html&quot; rel=&quot;nofollow&quot;&gt;OpenOffice.org&lt;/a&gt; (&lt;a href=&quot;http://wiki.services.openoffice.org/wiki/Summer_of_Code_2007&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/opensolaris/about.html&quot; rel=&quot;nofollow&quot;&gt;OpenSolaris&lt;/a&gt; (&lt;a href=&quot;http://www.opensolaris.org/os/project/summerofcode/projects/&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/osuosl/about.html&quot; rel=&quot;nofollow&quot;&gt;Oregon State University Open Source Lab (OSU OSL)&lt;/a&gt; (&lt;a href=&quot;http://wiki.osuosl.org/display/LNX/Google+Summer+of+Code+2007+Ideas&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/oscar/about.html&quot; rel=&quot;nofollow&quot;&gt;OSCAR&lt;/a&gt; (&lt;a href=&quot;http://oscar.openclustergroup.org/GSoC2007&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/osgeo/about.html&quot; rel=&quot;nofollow&quot;&gt;OSGeo&lt;/a&gt; (&lt;a href=&quot;http://wiki.osgeo.org/index.php/2007_SoC_Merged_Ideas&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/php/about.html&quot; rel=&quot;nofollow&quot;&gt;PHP&lt;/a&gt; (&lt;a href=&quot;http://de.php.net/ideas.php&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/gaim/about.html&quot; rel=&quot;nofollow&quot;&gt;Pidgin&lt;/a&gt; (&lt;a href=&quot;http://pidgin.im/summerofcode/&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/p9/about.html&quot; rel=&quot;nofollow&quot;&gt;Plan 9 from Bell Labs&lt;/a&gt; (&lt;a href=&quot;http://gsoc.cat-v.org/projects/&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/planetmath/about.html&quot; rel=&quot;nofollow&quot;&gt;PlanetMath&lt;/a&gt; (&lt;a href=&quot;http://planetx.cc.vt.edu/AsteroidMeta//2007_PM_Summer_of_Code_Coordination&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/plone/about.html&quot; rel=&quot;nofollow&quot;&gt;Plone Foundation&lt;/a&gt; (&lt;a href=&quot;http://plone.org/products/plone/releases/SoC-2007&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/psu/about.html&quot; rel=&quot;nofollow&quot;&gt;Portland State University&lt;/a&gt; (&lt;a href=&quot;http://summer.cs.pdx.edu/ideas&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/postgres/about.html&quot; rel=&quot;nofollow&quot;&gt;PostgreSQL project&lt;/a&gt; (&lt;a href=&quot;http://www.postgresql.org/developer/summerofcode&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/psf/about.html&quot; rel=&quot;nofollow&quot;&gt;Python Software Foundation&lt;/a&gt; (&lt;a href=&quot;http://wiki.python.org/moin/SummerOfCode&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/lurie/about.html&quot; rel=&quot;nofollow&quot;&gt;Robert H. Lurie Comprehensive Cancer Center of Northwestern University&lt;/a&gt; (&lt;a href=&quot;http://www.basic.northwestern.edu/projects/SoC07/index.html&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/rockbox/about.html&quot; rel=&quot;nofollow&quot;&gt;Rockbox&lt;/a&gt; (&lt;a href=&quot;http://www.rockbox.org/twiki/bin/view/Main/SummerOfCode&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/ruby/about.html&quot; rel=&quot;nofollow&quot;&gt;Ruby Central, Inc.&lt;/a&gt; (&lt;a href=&quot;http://www.rubycentral.org/projects/soc2007/ideas&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/samba/about.html&quot; rel=&quot;nofollow&quot;&gt;Samba&lt;/a&gt; (&lt;a href=&quot;http://wiki.samba.org/index.php/SoC&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/scons/about.html&quot; rel=&quot;nofollow&quot;&gt;SCons Foundation: Next-Generation Build Tool&lt;/a&gt; (&lt;a href=&quot;http://www.scons.org/wiki/GSoC2007&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/scribus/about.html&quot; rel=&quot;nofollow&quot;&gt;Scribus Development Team&lt;/a&gt; (&lt;a href=&quot;http://wiki.scribus.net/index.php/SoC2007_ideas&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/scummvm/about.html&quot; rel=&quot;nofollow&quot;&gt;ScummVM&lt;/a&gt; (&lt;a href=&quot;http://wiki.scummvm.org/index.php/OpenTasks&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/silverstripe/about.html&quot; rel=&quot;nofollow&quot;&gt;SilverStripe CMS &amp;amp; Framework&lt;/a&gt; (&lt;a href=&quot;http://www.silverstripe.com/google-summer-of-code-2007-project-ideas/&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/sipcomm/about.html&quot; rel=&quot;nofollow&quot;&gt;SIP Communicator&lt;/a&gt; (&lt;a href=&quot;http://sip-communicator.org/gsoc&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/stsci/about.html&quot; rel=&quot;nofollow&quot;&gt;The Space Telescope Science Institute&lt;/a&gt; (&lt;a href=&quot;http://www.stsci.edu/~aconti/GSoC.htm&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/sparse/about.html&quot; rel=&quot;nofollow&quot;&gt;Sparse&lt;/a&gt; (&lt;a href=&quot;http://kernel.org/pub/software/devel/sparse/soc.html&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/squeak/about.html&quot; rel=&quot;nofollow&quot;&gt;Squeak&lt;/a&gt; (&lt;a href=&quot;http://wiki.squeak.org/squeak/5936&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/squirrel/about.html&quot; rel=&quot;nofollow&quot;&gt;SquirrelMail&lt;/a&gt; (&lt;a href=&quot;http://www.squirrelmail.org/wiki/SummerOfCode2007&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/svn/about.html&quot; rel=&quot;nofollow&quot;&gt;Subversion&lt;/a&gt; (&lt;a href=&quot;http://subversion.tigris.org/project_tasks.html&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/swarm/about.html&quot; rel=&quot;nofollow&quot;&gt;Swarm Development Group&lt;/a&gt; (&lt;a href=&quot;http://www.swarm.org/wiki/Swarm:_IdeasList&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/smc/about.html&quot; rel=&quot;nofollow&quot;&gt;Swathanthra Malayalam Computing&lt;/a&gt; (&lt;a href=&quot;http://fci.wikia.com/wiki/SMC/SoC/2007&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/taste/about.html&quot; rel=&quot;nofollow&quot;&gt;Taste&lt;/a&gt; (&lt;a href=&quot;http://sourceforge.net/forum/message.php?msg_id=4198871&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/parsec/about.html&quot; rel=&quot;nofollow&quot;&gt;Thousand Parsec&lt;/a&gt; (&lt;a href=&quot;http://www.thousandparsec.net/tp/google-summer-of-code-2007.php&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/ubuntu/about.html&quot; rel=&quot;nofollow&quot;&gt;Ubuntu&lt;/a&gt; (&lt;a href=&quot;https://wiki.ubuntu.com/GoogleSoC2007&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/umit/about.html&quot; rel=&quot;nofollow&quot;&gt;Umit Project&lt;/a&gt; (&lt;a href=&quot;http://umit.sourceforge.net/umit_proposals_2007&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/videolan/about.html&quot; rel=&quot;nofollow&quot;&gt;VideoLAN&lt;/a&gt; (&lt;a href=&quot;http://wiki.videolan.org/SoC_2007&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/vim/about.html&quot; rel=&quot;nofollow&quot;&gt;Vim&lt;/a&gt; (&lt;a href=&quot;http://www.vim.org/soc/ideas.php&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/wikimedia/about.html&quot; rel=&quot;nofollow&quot;&gt;Wikimedia Foundation&lt;/a&gt; (&lt;a href=&quot;http://meta.wikimedia.org/wiki/Summer_of_Code_2007&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/wine/about.html&quot; rel=&quot;nofollow&quot;&gt;The Wine Project&lt;/a&gt; (&lt;a href=&quot;http://wiki.winehq.org/SummerOfCode&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/winlibre/about.html&quot; rel=&quot;nofollow&quot;&gt;WinLibre&lt;/a&gt; (&lt;a href=&quot;http://www.winlibre.com/wiki/doku.php?id=winlibre_soc_2007:proposals_for_the_google_summer_of_code_program_2007&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/wordpress/about.html&quot; rel=&quot;nofollow&quot;&gt;WordPress&lt;/a&gt; (&lt;a href=&quot;http://codex.wordpress.org/GSoC2007&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/wxpython/about.html&quot; rel=&quot;nofollow&quot;&gt;wxPython&lt;/a&gt; (&lt;a href=&quot;http://wiki.wxpython.org/index.cgi/Google_SoC_Project_Ideas&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/wxwidgets/about.html&quot; rel=&quot;nofollow&quot;&gt;wxWidgets&lt;/a&gt; (&lt;a href=&quot;http://www.wxwidgets.org/wiki/index.php/Development:_Student_Projects&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/xorg/about.html&quot; rel=&quot;nofollow&quot;&gt;X.Org&lt;/a&gt; (&lt;a href=&quot;http://xorg.freedesktop.org/wiki/SummerOfCodeIdeas&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/xiph/about.html&quot; rel=&quot;nofollow&quot;&gt;Xiph.org Foundation&lt;/a&gt; (&lt;a href=&quot;http://wiki.xiph.org/index.php/Summer_of_Code&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/xmms2/about.html&quot; rel=&quot;nofollow&quot;&gt;XMMS2&lt;/a&gt; (&lt;a href=&quot;http://wiki.xmms2.xmms.se/index.php/Summer_of_Code_2007/Proposed_projects&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/xmpp/about.html&quot; rel=&quot;nofollow&quot;&gt;XMPP Standards Foundation&lt;/a&gt; (&lt;a href=&quot;http://wiki.jabber.org/index.php/Summer_of_Code_2007&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/xwiki/about.html&quot; rel=&quot;nofollow&quot;&gt;XWiki&lt;/a&gt; (&lt;a href=&quot;http://www.xwiki.org/xwiki/bin/view/GoogleSummerOfCode/&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/zope/about.html&quot; rel=&quot;nofollow&quot;&gt;Zope Foundation, Inc&lt;/a&gt; (&lt;a href=&quot;http://wiki.zope.org/zope3/SummerOfCode2007&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;/td&gt;        &lt;/tr&gt;    &lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;We are no longer accepting applications from open source organizations.&lt;/p&gt;&lt;p&gt;If you're feeling nostalgic, you can still access the &lt;a href=&quot;http://code.google.com/soc/2005/&quot;&gt;&lt;em&gt;Google Summer of Code&lt;/em&gt; 2005&lt;/a&gt; and &lt;a href=&quot;http://code.google.com/soc/2006/&quot;&gt;&lt;em&gt;Google Summer of Code&lt;/em&gt; 2006&lt;/a&gt; pages. We've also created a &lt;a href=&quot;http://code.google.com/soc/soc_map.kml&quot;&gt;map&lt;/a&gt; (requires &lt;a href=&quot;http://earth.google.com/&quot;&gt;Google Earth&lt;/a&gt;) of all 2006 mentors and student participants for your perusal.&lt;/p&gt;&lt;h3&gt;Questions?&lt;/h3&gt;&lt;p&gt;Please peruse our &lt;a href=&quot;http://code.google.com/support/bin/topic.py?topic=10442&quot;&gt;FAQ&lt;/a&gt; and &lt;a href=&quot;http://code.google.com/soc/tos.html&quot;&gt;Terms of Service&lt;/a&gt; for more information about the program. If you still have questions, email us for &lt;a href=&quot;mailto:gsoc@google.com&quot;&gt;support&lt;/a&gt;&lt;/p&gt;</description><category>『GOOGLE开发』</category><pubDate>Mon, 06 Aug 2007 18:09:06 +0800</pubDate><author>a@b.com (bosswin)</author><guid isPermaLink="false">http://blog.mobilelook.cn/GoogleDevelopment/200708/72.html</guid><dc:creator>a@b.com (bosswin)</dc:creator><dc:date>2007-08-06T10:09:06Z</dc:date><fs:srclink>http://blog.mobilelook.cn/GoogleDevelopment/200708/72.html</fs:srclink><fs:srcfeed>http://blog.mobilelook.cn/rss.xml</fs:srcfeed><fs:itemid>feedsky/bosswin/~1482727/15226854/1503640</fs:itemid></item><item><title>Query API Developer Guide</title><link>http://item.feedsky.com/~feedsky/bosswin/~1482727/15091840/1503640/1/item.html</link><wfw:comment>http://blog.mobilelook.cn/</wfw:comment><wfw:commentRss>http://blog.mobilelook.cn/sydication.asp?cmt=71</wfw:commentRss><trackback:ping>http://blog.mobilelook.cn/cmd.asp?act=tb&amp;id=71&amp;key=d068f12e</trackback:ping><description>&lt;h1 id=&quot;page_title&quot;&gt;Query API Developer Guide&lt;/h1&gt;&lt;p&gt;Google Desktop indexes, caches, and searches content on your computer. Through the Google Desktop Query API, your applications can send search queries directly to Google Desktop and process its search results.&lt;/p&gt;&lt;h3&gt;Contents&lt;/h3&gt;&lt;ol class=&quot;toc&quot;&gt;    &lt;li&gt;&lt;a href=&quot;#gettingstarted&quot;&gt;&lt;font color=&quot;#551a8b&quot;&gt;Getting Started&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;#registering&quot;&gt;&lt;font color=&quot;#551a8b&quot;&gt;Registering With the Query API&lt;/font&gt;&lt;/a&gt;    &lt;ol&gt;        &lt;li&gt;&lt;a href=&quot;#registeringnative&quot;&gt;&lt;font color=&quot;#551a8b&quot;&gt;Native Plug-in Registration&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;        &lt;li&gt;&lt;a href=&quot;#registeringscript&quot;&gt;&lt;font color=&quot;#551a8b&quot;&gt;Script Plug-in Registration&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;    &lt;/ol&gt;    &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;#queryobjects&quot;&gt;&lt;font color=&quot;#551a8b&quot;&gt;Query Objects&lt;/font&gt;&lt;/a&gt;    &lt;ol&gt;        &lt;li&gt;&lt;a href=&quot;#querynative&quot;&gt;&lt;font color=&quot;#551a8b&quot;&gt;Query Methods for Native Plug- Ins&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;        &lt;li&gt;&lt;a href=&quot;#queryscript&quot;&gt;&lt;font color=&quot;#551a8b&quot;&gt;Query Methods for Script Plug- Ins&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;    &lt;/ol&gt;    &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;#queryex&quot;&gt;&lt;font color=&quot;#551a8b&quot;&gt;QueryEx Query Objects&lt;/font&gt;&lt;/a&gt;    &lt;ol&gt;        &lt;li&gt;&lt;a href=&quot;#queryexnative&quot;&gt;&lt;font color=&quot;#551a8b&quot;&gt;QueryEx for Native Plug-Ins&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;        &lt;li&gt;&lt;a href=&quot;#queryexscript&quot;&gt;&lt;font color=&quot;#551a8b&quot;&gt;QueryEx for Script Plug-Ins&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;    &lt;/ol&gt;    &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;#resultobjects&quot;&gt;&lt;font color=&quot;#551a8b&quot;&gt;Result Objects&lt;/font&gt;&lt;/a&gt;    &lt;ol&gt;        &lt;li&gt;&lt;a href=&quot;#resultobjectsnative&quot;&gt;&lt;font color=&quot;#551a8b&quot;&gt;Result Objects for Native Plug- Ins&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;        &lt;li&gt;&lt;a href=&quot;#resultobjectsscript&quot;&gt;&lt;font color=&quot;#551a8b&quot;&gt;Result Objects for Script Plug- Ins&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;    &lt;/ol&gt;    &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;#individualresult&quot;&gt;&lt;font color=&quot;#551a8b&quot;&gt;Individual Search Result Objects&lt;/font&gt;&lt;/a&gt;    &lt;ol&gt;        &lt;li&gt;&lt;a href=&quot;#individualresultnative&quot;&gt;&lt;font color=&quot;#551a8b&quot;&gt;Individual Search Result Objects for Native Plug-Ins&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;        &lt;li&gt;&lt;a href=&quot;#individualresultscript&quot;&gt;&lt;font color=&quot;#551a8b&quot;&gt;Individual Search Result Objects for Script Plug-Ins&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;    &lt;/ol&gt;    &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;#itemversions&quot;&gt;&lt;font color=&quot;#551a8b&quot;&gt;Item Versions&lt;/font&gt;&lt;/a&gt;    &lt;ol&gt;        &lt;li&gt;&lt;a href=&quot;#itemversionsnative&quot;&gt;&lt;font color=&quot;#551a8b&quot;&gt;Item Versions for Native Plug- Ins&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;        &lt;li&gt;&lt;a href=&quot;#itemversionsscript&quot;&gt;&lt;font color=&quot;#551a8b&quot;&gt;Item Versions for Script Plug- Ins&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;    &lt;/ol&gt;    &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;#httpxml&quot;&gt;&lt;font color=&quot;#551a8b&quot;&gt;HTTP/XML-Based Query API&lt;/font&gt;&lt;/a&gt;    &lt;ol&gt;        &lt;li&gt;&lt;a href=&quot;#gettingstarted2&quot;&gt;&lt;font color=&quot;#551a8b&quot;&gt;Getting Started&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;        &lt;li&gt;&lt;a href=&quot;#requesting&quot;&gt;&lt;font color=&quot;#551a8b&quot;&gt;Requesting a Desktop Search&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;        &lt;li&gt;&lt;a href=&quot;#searchurl&quot;&gt;&lt;font color=&quot;#551a8b&quot;&gt;Getting the Stored Query URL&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;        &lt;li&gt;&lt;a href=&quot;#results&quot;&gt;&lt;font color=&quot;#551a8b&quot;&gt;Desktop Search Results&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;    &lt;/ol&gt;    &lt;/li&gt;&lt;/ol&gt;&lt;a name=&quot;gettingstarted&quot;&gt;&lt;/a&gt;&lt;h1&gt;Getting Started&lt;/h1&gt;&lt;p&gt;The Query API described in the first part of this document was introduced with Google Desktop 3. We cover how to use it with both native plug-ins and script-based plug-ins, and assume that you are familiar with the general principles of how to write Desktop plug-ins.&lt;/p&gt;&lt;p&gt;The latter part of this document describes methods for issuing Desktop search queries using HTTP and XML. This XML-based API is supported by both the Windows and Mac OS X versions of Google Desktop. Mac OS X support was added in Google Desktop Mac 1.0.3. &lt;/p&gt;&lt;p class=&quot;backtotop&quot;&gt;&lt;a href=&quot;#top&quot;&gt;&lt;font color=&quot;#551a8b&quot;&gt;Back to top&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;&lt;a name=&quot;registering&quot;&gt;&lt;/a&gt;&lt;h1&gt;Registering With the Query API&lt;/h1&gt;&lt;p&gt;You can only use the Query API if you have registered with it and thus obtained a Query API registration cookie. Note that this is in addition to the general registration of your plug-in with Google Desktop.&lt;/p&gt;&lt;p&gt;There are two types of Query API registration cookies, &lt;em&gt;read-only&lt;/em&gt; and &lt;em&gt;read- write&lt;/em&gt;. Usually, you'll only need a read-only cookie. The read-write cookie is only needed when you remove an item from the Google Desktop index.&lt;/p&gt;&lt;p&gt;We recommend that your plug-in encrypt the registration cookie when it saves it, and, of course, be able to decrypt it when you pass it to the various Query API methods and objects.&lt;/p&gt;&lt;p&gt;You'll need a global identifier (GUID) for your plug-in to pass to the registration method. You can use a tool such as &lt;code&gt;guidgen.exe&lt;/code&gt; to generate one.&lt;/p&gt;&lt;a name=&quot;registeringnative&quot;&gt;&lt;/a&gt;&lt;h2&gt;Native Plug-in Registration&lt;/h2&gt;&lt;p&gt;If you are writing a native plug-in, the following summarizes the registration interface and its method. All method return values are of type &lt;code&gt;HRESULT&lt;/code&gt;.&lt;/p&gt;&lt;h3&gt;&lt;code&gt;interface IGoogleDesktopRegisterQueryPlugin: IDispatch&lt;/code&gt;&lt;/h3&gt;&lt;p class=&quot;note&quot;&gt;&lt;strong&gt;Note: &lt;/strong&gt;Components are required to call this interface to register themselves with the Google Desktop Query API before they can make use of that API. &lt;/p&gt;&lt;ul&gt;    &lt;li&gt;&lt;code&gt;RegisterPlugin&lt;/code&gt;: Must be invoked by any component to register with the Query API.    &lt;ul&gt;        &lt;li&gt;&lt;em&gt;Arguments&lt;/em&gt;:        &lt;ul&gt;            &lt;li&gt;&lt;code&gt;BSTR plugin_class&lt;/code&gt;: The component's GUID or ProgID. &lt;/li&gt;            &lt;li&gt;&lt;code&gt;VARIANT_BOOL read_only&lt;/code&gt;: If &lt;code&gt;true&lt;/code&gt;, you can do search queries but cannot delete items from the index. A &lt;code&gt;false&lt;/code&gt; value gives you both read and write access, allowing you to delete index items. &lt;/li&gt;            &lt;li&gt;&lt;code&gt;[out, retval] long* cookie&lt;/code&gt; : Returns the registration cookie. Save this value, as you will have to use it whenever you make a query or remove an item from the Desktop index via the Query API. &lt;/li&gt;        &lt;/ul&gt;        &lt;/li&gt;        &lt;li&gt;&lt;em&gt;Returns&lt;/em&gt;:        &lt;ul&gt;            &lt;li&gt;&lt;code&gt;S_OK&lt;/code&gt; if successful. &lt;/li&gt;            &lt;li&gt;Appropriate error on failure, such as an unregistered component classID or appID, component prohibited by policy, etc. &lt;/li&gt;        &lt;/ul&gt;        &lt;/li&gt;    &lt;/ul&gt;    &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;a name=&quot;registeringscript&quot;&gt;&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;Script Plug-in Registration&lt;/h2&gt;&lt;p&gt;If you are writing a script-based plug-in, see &lt;code&gt;register_script_sample.js&lt;/code&gt; for a complete example of registering with the Query API using JavaScript. The gist is the following code: &lt;/p&gt;&lt;p&gt;try { // Instantiate the Google Desktop registrar component by creating // an ActiveX registration object. var registrar = new ActiveXObject(&amp;quot;GoogleDesktop.Registrar&amp;quot;); // Give it our plug-in GUID and description registrar.StartComponentRegistration(g_scriptSampleId, componentDescription); // Ask for the specific registration object that gives us Query API access. var regObj = registrar.GetRegistrationInterface (&amp;quot;GoogleDesktop.QueryRegistration&amp;quot;); // Now ask that registration object to give us a cookie representing // our Query API access. Note the read_only flag argument here; // if false, then we're asking for read-write access instead of // just read-only access. cookie = regObj.RegisterPlugin(g_scriptSampleId, read_only); // Now submit and hope the user will accept this component. // If not, then an error will be thrown registrar.FinishComponentRegistration ();} catch (e) { // We hit an error message(&amp;quot;Couldn't register the script samples.\n&amp;quot; + new String(e.number) + &amp;quot;\n&amp;quot; + e.description); return 0;}&lt;/p&gt;&lt;p&gt;Note that you need to save the cookie value, as you will have to use it whenever you make a query or remove an item from the Desktop index via the Query API.&lt;/p&gt;&lt;p class=&quot;backtotop&quot;&gt;&lt;a href=&quot;#top&quot;&gt;&lt;font color=&quot;#551a8b&quot;&gt;Back to top&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;&lt;h1&gt;&lt;a id=&quot;queryobjects&quot; name=&quot;queryobjects&quot;&gt;&lt;/a&gt;Query Objects&lt;/h1&gt;&lt;p&gt;The Query API has one root object, &lt;code&gt;IGoogleDesktopQueryAPI&lt;/code&gt; for native plug-ins, &lt;code&gt;GoogleDesktop.QueryAPI&lt;/code&gt; for script plug-ins, that supports two methods: &lt;/p&gt;&lt;ul&gt;    &lt;li&gt;&lt;code&gt;Query&lt;/code&gt;: Immediately executes the specified desktop search query and returns a result object that contains all the search results for the query. &lt;/li&gt;    &lt;li&gt;&lt;code&gt;QueryEx&lt;/code&gt;: Returns a query object which does not (yet) actually execute the query. Instead, you can tweak some custom parameters first, then execute the revised query. When executed, it returns the same type of result object as &lt;code&gt;Query&lt;/code&gt;. &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;The &lt;code&gt;Query&lt;/code&gt; and &lt;code&gt;QueryEx&lt;/code&gt; root object methods both take the following arguments: &lt;/p&gt;&lt;ul&gt;    &lt;li&gt;&lt;code&gt;cookie&lt;/code&gt;: The security cookie created when you registered your plug-in with the Query API. &lt;/li&gt;    &lt;li&gt;&lt;code&gt;query&lt;/code&gt;: The search query string, which can include the &lt;a href=&quot;http://desktop.google.com/features.html#advancedsearch&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;same set of query operators&lt;/font&gt;&lt;/a&gt; that you could use in a query typed into a Google Desktop search box. &lt;/li&gt;    &lt;li&gt;&lt;code&gt;category&lt;/code&gt;: Optional string argument that lets you restrict results to those of a particular type. Valid values are &lt;code&gt;email&lt;/code&gt;, &lt;code&gt;web&lt;/code&gt;, &lt;code&gt;im&lt;/code&gt;, &lt;code&gt;file&lt;/code&gt;, &lt;code&gt;contact&lt;/code&gt;, &lt;code&gt;calendar&lt;/code&gt;, &lt;code&gt;task&lt;/code&gt;, &lt;code&gt;note&lt;/code&gt;, or &lt;code&gt;journal&lt;/code&gt;. &lt;/li&gt;    &lt;li&gt;&lt;code&gt;ranking&lt;/code&gt;: Optional numeric argument specifying whether the search results will be ranked by date (&lt;code&gt;RECENCY_RANKING&lt;/code&gt; = 1), the default, or by relevance (&lt;code&gt;RELEVANCE_RANKING&lt;/code&gt; = 0). &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;a name=&quot;querynative&quot;&gt;&lt;/a&gt;&lt;h2&gt;Query Methods for Native Plug-Ins&lt;/h2&gt;&lt;h3&gt;&lt;code&gt;interface IGoogleDesktopQueryAPI: IDispatch&lt;/code&gt;&lt;/h3&gt;&lt;ul&gt;    &lt;li&gt;&lt;code&gt;Query&lt;/code&gt;: Immediately takes the specified search query and executes it with default option values.    &lt;ul&gt;        &lt;li&gt;&lt;em&gt;Arguments&lt;/em&gt;:        &lt;ul&gt;            &lt;li&gt;&lt;code&gt;long cookie&lt;/code&gt;: The component's Query API security cookie. &lt;/li&gt;            &lt;li&gt;&lt;code&gt;BSTR query&lt;/code&gt;: The search query string, which can contain any of &lt;a href=&quot;http://desktop.google.com/features.html#advancedsearch&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;the allowed Desktop search operators&lt;/font&gt;&lt;/a&gt;. &lt;/li&gt;            &lt;li&gt;&lt;code&gt;VARIANT category&lt;/code&gt;: [Optional] &lt;/li&gt;            &lt;li&gt;&lt;code&gt;VARIANT ranking&lt;/code&gt;: [Optional] &lt;/li&gt;            &lt;li&gt;&lt;code&gt;[out, retval] IGoogleDesktopQueryResultSet** results&lt;/code&gt;: The search results from having automatically executed a desktop search for the search query. &lt;/li&gt;        &lt;/ul&gt;        &lt;/li&gt;        &lt;li&gt;&lt;em&gt;Returns&lt;/em&gt;:        &lt;ul&gt;            &lt;li&gt;&lt;code&gt;S_OK&lt;/code&gt; if successful. &lt;/li&gt;            &lt;li&gt;Appropriate error on failure. &lt;/li&gt;        &lt;/ul&gt;        &lt;/li&gt;    &lt;/ul&gt;    &lt;br /&gt;    &lt;/li&gt;    &lt;li&gt;&lt;code&gt;QueryEx&lt;/code&gt;: Returns a query object that does not automatically execute a search. Instead, you can alter the query's properties and exert finer control over the search, and then execute the query.    &lt;ul&gt;        &lt;li&gt;&lt;em&gt;Arguments&lt;/em&gt;:        &lt;ul&gt;            &lt;li&gt;&lt;code&gt;long cookie&lt;/code&gt;: The component's Query API security cookie. &lt;/li&gt;            &lt;li&gt;&lt;code&gt;BSTR query&lt;/code&gt;: The search query string, which can contain any of &lt;a href=&quot;http://desktop.google.com/features.html#advancedsearch&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;the allowed Desktop search operators&lt;/font&gt;&lt;/a&gt;. &lt;/li&gt;            &lt;li&gt;&lt;code&gt;VARIANT category&lt;/code&gt;: [Optional] &lt;/li&gt;            &lt;li&gt;&lt;code&gt;VARIANT ranking&lt;/code&gt;: [Optional] &lt;/li&gt;            &lt;li&gt;&lt;code&gt;[out, retval] IGoogleDesktopQuery** q)&lt;/code&gt; : An unexecuted query object, which you can alter the default properites and parameters of before running a search on its search query. &lt;/li&gt;        &lt;/ul&gt;        &lt;/li&gt;        &lt;li&gt;&lt;em&gt;Returns&lt;/em&gt;:        &lt;ul&gt;            &lt;li&gt;&lt;code&gt;S_OK&lt;/code&gt; if successful. &lt;/li&gt;            &lt;li&gt;Appropriate error on failure. &lt;/li&gt;        &lt;/ul&gt;        &lt;/li&gt;    &lt;/ul&gt;    &lt;/li&gt;&lt;/ul&gt;&lt;a name=&quot;queryscript&quot;&gt;&lt;/a&gt;&lt;h2&gt;Query Methods for Script Plug-Ins&lt;/h2&gt;&lt;p&gt;In JavaScript, you just create the base object and then create and run the Query in one step. &lt;/p&gt;&lt;p&gt;// Instantiate the main query api objectvar qapi = new ActiveXObject (&amp;quot;GoogleDesktop.QueryAPI&amp;quot;);// Perform the query and get a recordset object back containing the// search results.var set = qapi.Query(cookie, search_string);&lt;/p&gt;&lt;p&gt;See the &lt;code&gt;simple_query.js &lt;/code&gt;example for a detailed example.&lt;/p&gt;&lt;p class=&quot;backtotop&quot;&gt;&lt;a href=&quot;#top&quot;&gt;&lt;font color=&quot;#551a8b&quot;&gt;Back to top&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;&lt;a name=&quot;queryex&quot;&gt;&lt;/a&gt;&lt;h1&gt;QueryEx Query Objects&lt;/h1&gt;&lt;p&gt;If you run the &lt;code&gt;QueryEx()&lt;/code&gt; method, it returns a Query object for which you can change any or all of these four options before executing the query: &lt;/p&gt;&lt;ul&gt;    &lt;li&gt;&lt;code&gt;async&lt;/code&gt;: By setting this to &lt;code&gt;false&lt;/code&gt;, all result items are fetched before the &lt;code&gt;Execute()&lt;/code&gt; method completes. The default value is &lt;code&gt;true&lt;/code&gt;. &lt;/li&gt;    &lt;li&gt;&lt;code&gt;filter_duplicates&lt;/code&gt;: By setting to &lt;code&gt;false&lt;/code&gt;, you'll get all the items that match, including any duplicates of already matched items. Default is &lt;code&gt;true&lt;/code&gt;. &lt;/li&gt;    &lt;li&gt;&lt;code&gt;match_all_terms&lt;/code&gt;: When set to &lt;code&gt;false&lt;/code&gt;, if there are multiple query terms, any item matching just one of the query terms is returned. Otherwise, a result must match all of the query terms. Default is &lt;code&gt;true&lt;/code&gt;. &lt;/li&gt;    &lt;li&gt;&lt;code&gt;blacklisting&lt;/code&gt;: By setting to &lt;code&gt;false&lt;/code&gt;, items in the search results do not go through the default blacklisting filters. Default is &lt;code&gt;true&lt;/code&gt;. If you turn this off, you'll most likely see spam email, secure content, bad urls such as about:, res:, etc. in addition to your good results. &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;To change an option value, use the &lt;code&gt;SetOption()&lt;/code&gt; method, one of four methods associated with Query objects. These are: &lt;/p&gt;&lt;ul&gt;    &lt;li&gt;&lt;code&gt;SetOption&lt;/code&gt;: Takes arguments, in this order, of what option to set and what value to set it to. &lt;/li&gt;    &lt;li&gt;&lt;code&gt;GetOption&lt;/code&gt;: Takes an option name, returns its value. &lt;/li&gt;    &lt;li&gt;&lt;code&gt;query&lt;/code&gt;: Takes no arguments, returns a string containing the search query. &lt;/li&gt;    &lt;li&gt;&lt;code&gt;Execute&lt;/code&gt;: Once you've finished setting the Query object's options, run this method to actually run the search. Returns a query result set. &lt;/li&gt;&lt;/ul&gt;&lt;a name=&quot;queryexnative&quot;&gt;&lt;/a&gt;&lt;h2&gt;QueryEx for Native Plug-Ins&lt;/h2&gt;&lt;p&gt;&lt;code&gt;QueryEx&lt;/code&gt;'s returned object, &lt;code&gt;IGoogleDektopQuery&lt;/code&gt;, has the following interface: &lt;/p&gt;&lt;h3&gt;&lt;code&gt;interface IGoogleDesktopQuery: IDispatch&lt;/code&gt;&lt;/h3&gt;&lt;ul&gt;    &lt;li&gt;&lt;code&gt;SetOption&lt;/code&gt;: Set an option value.    &lt;ul&gt;        &lt;li&gt;&lt;em&gt;Arguments&lt;/em&gt;:        &lt;ul&gt;            &lt;li&gt;&lt;code&gt;BSTR name&lt;/code&gt;: Which option to set. &lt;/li&gt;            &lt;li&gt;&lt;code&gt;VARIANT value&lt;/code&gt;: What value to set the option to. &lt;/li&gt;        &lt;/ul&gt;        &lt;/li&gt;        &lt;li&gt;&lt;em&gt;Returns&lt;/em&gt;:        &lt;ul&gt;            &lt;li&gt;&lt;code&gt;S_OK&lt;/code&gt; if successful. &lt;/li&gt;            &lt;li&gt;Appropriate error on failure. &lt;/li&gt;        &lt;/ul&gt;        &lt;/li&gt;    &lt;/ul&gt;    &lt;/li&gt;    &lt;li&gt;&lt;code&gt;GetOption&lt;/code&gt;: Get an option value.    &lt;ul&gt;        &lt;li&gt;&lt;em&gt;Arguments&lt;/em&gt;:        &lt;ul&gt;            &lt;li&gt;&lt;code&gt;BSTR name&lt;/code&gt;: Which option to get the value of. &lt;/li&gt;            &lt;li&gt;&lt;code&gt;[out, retval] VARIANT* value&lt;/code&gt;: The option's value. &lt;/li&gt;        &lt;/ul&gt;        &lt;/li&gt;        &lt;li&gt;&lt;em&gt;Returns&lt;/em&gt;:        &lt;ul&gt;            &lt;li&gt;&lt;code&gt;S_OK&lt;/code&gt; if successful. &lt;/li&gt;            &lt;li&gt;Appropriate error on failure. &lt;/li&gt;        &lt;/ul&gt;        &lt;/li&gt;    &lt;/ul&gt;    &lt;/li&gt;    &lt;li&gt;&lt;code&gt;query&lt;/code&gt;: Get the search query string.    &lt;ul&gt;        &lt;li&gt;&lt;em&gt;Arguments&lt;/em&gt;:        &lt;ul&gt;            &lt;li&gt;&lt;code&gt;[out, retval] BSTR* ret&lt;/code&gt;: The search query string. &lt;/li&gt;        &lt;/ul&gt;        &lt;/li&gt;        &lt;li&gt;&lt;em&gt;Returns&lt;/em&gt;:        &lt;ul&gt;            &lt;li&gt;&lt;code&gt;S_OK&lt;/code&gt; if successful. &lt;/li&gt;            &lt;li&gt;Appropriate error on failure. &lt;/li&gt;        &lt;/ul&gt;        &lt;/li&gt;    &lt;/ul&gt;    &lt;/li&gt;    &lt;li&gt;&lt;code&gt;Execute&lt;/code&gt;: Execute the search as specified by the QueryEx object's query string and option values.    &lt;ul&gt;        &lt;li&gt;&lt;em&gt;Arguments&lt;/em&gt;:        &lt;ul&gt;            &lt;li&gt;&lt;code&gt;[out, retval] IGoogleDesktopQueryResultSet** results&lt;/code&gt;: Results from the search. &lt;/li&gt;        &lt;/ul&gt;        &lt;/li&gt;        &lt;li&gt;&lt;em&gt;Returns&lt;/em&gt;:        &lt;ul&gt;            &lt;li&gt;&lt;code&gt;S_OK&lt;/code&gt; if successful. &lt;/li&gt;            &lt;li&gt;Appropriate error on failure. &lt;/li&gt;        &lt;/ul&gt;        &lt;/li&gt;    &lt;/ul&gt;    &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;a name=&quot;queryexscript&quot;&gt;&lt;/a&gt;&lt;h2&gt;QueryEx for Script Plug-Ins&lt;/h2&gt;&lt;p&gt;The following code using &lt;code&gt;QueryEx&lt;/code&gt; comes from the &lt;code&gt;item_count.js&lt;/code&gt; example. It shows the usual series of events when using &lt;code&gt;QueryEx&lt;/code&gt;; call &lt;code&gt;QueryEx&lt;/code&gt; on the base Query API object to get a Query object, set Query object options with &lt;code&gt;SetOption()&lt;/code&gt;, then call &lt;code&gt;Execute()&lt;/code&gt; on the Query object and get back a recordset of the search results. &lt;/p&gt;&lt;p&gt;var q = new ActiveXObject(&amp;quot;GoogleDesktop.QueryAPI&amp;quot;);// Call the QueryEx method so that we can turn off the asynchronous// loading of record items.var qx = q.QueryEx (g_securityCookie, query);// Turn off the default asynchronous behavior.qx.SetOption (&amp;quot;async&amp;quot;, false);// Execute the query synchronously and get back a recordset objectvar set = qx.Execute();&lt;/p&gt;&lt;p class=&quot;backtotop&quot;&gt;&lt;a href=&quot;#top&quot;&gt;&lt;font color=&quot;#551a8b&quot;&gt;Back to top&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;&lt;a name=&quot;resultobjects&quot;&gt;&lt;/a&gt;&lt;h1&gt;Result Objects&lt;/h1&gt;&lt;p&gt;When you execute a &lt;code&gt;Query&lt;/code&gt; or &lt;code&gt;QueryEx&lt;/code&gt;, it returns a result set object. This object contains individual result item objects, each of which represents a single search result.&lt;/p&gt;&lt;p&gt;Unless you used &lt;code&gt;QueryEx&lt;/code&gt; and changed the default value of the Query object's &lt;code&gt;async&lt;/code&gt; option to &lt;code&gt;false&lt;/code&gt; from its default value &lt;code&gt;true&lt;/code&gt; before executing the query, you can access search results before the search has completely finished. To find out if a search has completed, check the resultset's &lt;code&gt;readystate&lt;/code&gt; property, which can have three values: &lt;/p&gt;&lt;ul&gt;    &lt;li&gt;&lt;code&gt;GD_QRS_UNITIALIZED = 0&lt;/code&gt;: Search has not yet started. &lt;/li&gt;    &lt;li&gt;&lt;code&gt;GD_QRS_LOADING = 1&lt;/code&gt;: Search is still in progress. &lt;/li&gt;    &lt;li&gt;&lt;code&gt;GD_QRS_COMPLETE = 2&lt;/code&gt;: Search is complete, with all results received and in the resultset. &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;There are four methods associated with result set objects: &lt;/p&gt;&lt;ul&gt;    &lt;li&gt;&lt;code&gt;readystate&lt;/code&gt;: Takes no arguments, returns the current &lt;code&gt;readystate&lt;/code&gt; value. &lt;/li&gt;    &lt;li&gt;&lt;code&gt;count&lt;/code&gt;: Takes no arguments, returns the total number of individual search result items in the recordset. Note that this number will change as long as results are still arriving. Until &lt;code&gt;readystate&lt;/code&gt; is &lt;code&gt;GD_QRS_COMPLETE&lt;/code&gt;, this value is an estimate. &lt;/li&gt;    &lt;li&gt;&lt;code&gt;Next&lt;/code&gt;: Takes no arguments, returns the next individual search result in the set. If results are still arriving and &lt;code&gt;Next()&lt;/code&gt; is at the end of the current results, it will wait until the next result arrives. If you reach the end of the results after all results are in the recordset, &lt;code&gt;Next()&lt;/code&gt; returns &lt;code&gt;null&lt;/code&gt;. &lt;/li&gt;    &lt;li&gt;&lt;code&gt;available_count&lt;/code&gt;: Takes no arguments, returns how many individual results can be fetched via calls to &lt;code&gt;next()&lt;/code&gt; without it blocking while waiting for more results. &lt;/li&gt;&lt;/ul&gt;&lt;a name=&quot;resultobjectsnative&quot;&gt;&lt;/a&gt;&lt;h2&gt;Result Objects for Native Plug-Ins&lt;/h2&gt;&lt;h3&gt;&lt;code&gt;interface IGoogleDesktopQueryResultSet: IDispatch&lt;/code&gt;&lt;/h3&gt;&lt;ul&gt;    &lt;li&gt;&lt;code&gt;Next&lt;/code&gt;: Returns the next individual search result in the set. If results are still arriving, it waits for the next result to arrive before returning it. If called after reaching the final result, it returns &lt;code&gt;S_FALSE&lt;/code&gt; and &lt;code&gt;null&lt;/code&gt;.    &lt;ul&gt;        &lt;li&gt;&lt;em&gt;Arguments&lt;/em&gt;:        &lt;ul&gt;            &lt;li&gt;&lt;code&gt;[out, retval] IGoogleDesktopQueryResultItem** next&lt;/code&gt;: An individual search result. &lt;/li&gt;        &lt;/ul&gt;        &lt;/li&gt;        &lt;li&gt;&lt;em&gt;Returns&lt;/em&gt;:        &lt;ul&gt;            &lt;li&gt;&lt;code&gt;S_OK&lt;/code&gt; if successful. &lt;/li&gt;            &lt;li&gt;&lt;code&gt;S_FALSE&lt;/code&gt; and &lt;code&gt;null&lt;/code&gt; if called after the last result has already been returned. &lt;/li&gt;            &lt;li&gt;Appropriate error on failure. &lt;/li&gt;        &lt;/ul&gt;        &lt;/li&gt;    &lt;/ul&gt;    &lt;/li&gt;    &lt;li&gt;&lt;code&gt;readystate&lt;/code&gt;: Returns the current &lt;code&gt;readystate&lt;/code&gt; value, which can be    &lt;ul&gt;        &lt;li&gt;&lt;code&gt;GD_QRS_UNINITIALIZED = 0&lt;/code&gt; &lt;/li&gt;        &lt;li&gt;&lt;code&gt;GD_QRS_LOADING = 1&lt;/code&gt; (Still receiving results) &lt;/li&gt;        &lt;li&gt;&lt;code&gt;GD_QRS_COMPLETE = 2&lt;/code&gt; (All results received) &lt;/li&gt;    &lt;/ul&gt;    &lt;ul&gt;        &lt;li&gt;&lt;em&gt;Arguments&lt;/em&gt;:        &lt;ul&gt;            &lt;li&gt;&lt;code&gt;[out, retval] QRSReadyState* state&lt;/code&gt;: &lt;code&gt;readystate&lt;/code&gt;'s value. &lt;/li&gt;        &lt;/ul&gt;        &lt;/li&gt;        &lt;li&gt;&lt;em&gt;Returns&lt;/em&gt;:        &lt;ul&gt;            &lt;li&gt;&lt;code&gt;S_OK&lt;/code&gt; if successful. &lt;/li&gt;            &lt;li&gt;Appropriate error on failure. &lt;/li&gt;        &lt;/ul&gt;        &lt;/li&gt;    &lt;/ul&gt;    &lt;/li&gt;    &lt;li&gt;&lt;code&gt;count&lt;/code&gt;: Returns the total number of individual search result items. Note that this number will change so long as individual results are still arriving. Until the &lt;code&gt;readystate&lt;/code&gt; value becomes &lt;code&gt;GD_QRS_COMPLETE&lt;/code&gt;, this value is an estimate. After that, it is the exact and total number of individual search results.    &lt;ul&gt;        &lt;li&gt;&lt;em&gt;Arguments&lt;/em&gt;:        &lt;ul&gt;            &lt;li&gt;&lt;code&gt;[out, retval] long* ret&lt;/code&gt;: &lt;code&gt;Number of results&lt;/code&gt; &lt;/li&gt;        &lt;/ul&gt;        &lt;/li&gt;        &lt;li&gt;&lt;em&gt;Returns&lt;/em&gt;:        &lt;ul&gt;            &lt;li&gt;&lt;code&gt;S_OK&lt;/code&gt; if successful. &lt;/li&gt;            &lt;li&gt;Appropriate error on failure. &lt;/li&gt;        &lt;/ul&gt;        &lt;/li&gt;    &lt;/ul&gt;    &lt;/li&gt;    &lt;li&gt;&lt;code&gt;available_count&lt;/code&gt;: Returns the value of how many individual results can currently be fetched via calls to &lt;code&gt;next()&lt;/code&gt; without blocking.    &lt;ul&gt;        &lt;li&gt;&lt;em&gt;Arguments&lt;/em&gt;:        &lt;ul&gt;            &lt;li&gt;&lt;code&gt;[out, retval] long* available_count&lt;/code&gt; : Current remaining number of available search results. &lt;/li&gt;        &lt;/ul&gt;        &lt;/li&gt;        &lt;li&gt;&lt;em&gt;Returns&lt;/em&gt;:        &lt;ul&gt;            &lt;li&gt;&lt;code&gt;S_OK&lt;/code&gt; if successful. &lt;/li&gt;            &lt;li&gt;Appropriate error on failure. &lt;/li&gt;        &lt;/ul&gt;        &lt;/li&gt;    &lt;/ul&gt;    &lt;/li&gt;&lt;/ul&gt;&lt;a name=&quot;resultobjectsscript&quot;&gt;&lt;/a&gt;&lt;h2&gt;Result Objects for Script Plug-Ins&lt;/h2&gt;&lt;p&gt;To iterate through a result set's individual results in JavaScript, you'd write something like: &lt;/p&gt;&lt;p&gt;var item;while ((item = results.Next()) != null) { // process item here}&lt;/p&gt;&lt;p class=&quot;backtotop&quot;&gt;&lt;a href=&quot;#top&quot;&gt;&lt;font color=&quot;#551a8b&quot;&gt;Back to top&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;&lt;a name=&quot;individualresult&quot;&gt;&lt;/a&gt;&lt;h1&gt;Individual Search Result Objects&lt;/h1&gt;&lt;p&gt;Result item objects each contain a single search result. The key method is &lt;code&gt;GetProperty&lt;/code&gt;, which takes a property name and returns its value for the result. The complete list of valid property names is quite long; the ones you'll probably use most often are &lt;code&gt;content&lt;/code&gt;, &lt;code&gt;uri&lt;/code&gt;, &lt;code&gt;summary&lt;/code&gt;, and for email &lt;code&gt;from&lt;/code&gt;, &lt;code&gt;to&lt;/code&gt;, and &lt;code&gt;subject&lt;/code&gt;. &lt;/p&gt;&lt;p&gt;To avoid errors due to trying to get a value for a property that doesn't exist for a result type (for example, a file doesn't have a &lt;code&gt;from&lt;/code&gt; property), you should first use the &lt;code&gt;schema&lt;/code&gt; method to determine the result's type. The following schemas are defined in the Desktop SDK IDL: &lt;/p&gt;&lt;ul&gt;&lt;code&gt;    &lt;li&gt;&amp;quot;web&amp;quot; &lt;/li&gt;    &lt;li&gt;&amp;quot;text&amp;quot; &lt;/li&gt;    &lt;li&gt;&amp;quot;media&amp;quot; &lt;/li&gt;    &lt;li&gt;&amp;quot;office&amp;quot; &lt;/li&gt;    &lt;li&gt;&amp;quot;file&amp;quot; &lt;/li&gt;    &lt;li&gt;&amp;quot;calendar&amp;quot; &lt;/li&gt;    &lt;li&gt;&amp;quot;contact&amp;quot; &lt;/li&gt;    &lt;li&gt;&amp;quot;email&amp;quot; &lt;/li&gt;    &lt;li&gt;&amp;quot;im&amp;quot; &lt;/li&gt;    &lt;li&gt;&amp;quot;note&amp;quot; &lt;/li&gt;    &lt;li&gt;&amp;quot;journal&amp;quot; &lt;/li&gt;    &lt;li&gt;&amp;quot;task&amp;quot; &lt;/li&gt;    &lt;li&gt;&amp;quot;shortcut&amp;quot; &lt;/li&gt;    &lt;/code&gt;&lt;/ul&gt;    &lt;p&gt;&amp;nbsp;&lt;/p&gt;    &lt;p&gt;If you try to get a value for a property the result doesn't have, an error is returned. For scripts, that means an exception is thrown, so remember to use exception handling in your script plug-ins.&lt;/p&gt;    &lt;p&gt;There are four methods associated with result item objects: &lt;/p&gt;    &lt;ul&gt;        &lt;li&gt;&lt;code&gt;GetProperty&lt;/code&gt;: Takes a property name argument, returns that property's value. &lt;/li&gt;        &lt;li&gt;&lt;code&gt;schema&lt;/code&gt;: Takes no arguments, returns the name of the item's schema. &lt;/li&gt;        &lt;li&gt;&lt;code&gt;versions&lt;/code&gt;: Takes no arguments, returns either a list of emails in this item's thread (if the item is an email) or a list of all file versions (if the item is a file) in the Desktop index. These are returned as a document versions object. &lt;/li&gt;        &lt;li&gt;&lt;code&gt;RemoveFromIndex&lt;/code&gt;: Takes one argument, which if &lt;code&gt;true&lt;/code&gt; (the default value) removes this item and all its versions from the Desktop index. If &lt;code&gt;false&lt;/code&gt;, only this individual item is removed. Remember, you must have a read-write Query API registration cookie for this method to work. If you don't have one, you'll get an &amp;quot;Access Denied&amp;quot; error. &lt;/li&gt;    &lt;/ul&gt;    &lt;p&gt;&amp;nbsp;&lt;/p&gt;    &lt;p&gt;The complete property set is: &lt;/p&gt;    &lt;table class=&quot;columns&quot;&gt;        &lt;tbody&gt;            &lt;tr&gt;                &lt;td&gt;                &lt;ul class=&quot;nolist&quot;&gt;                    &lt;li&gt;actual_work &lt;/li&gt;                    &lt;li&gt;album_title &lt;/li&gt;                    &lt;li&gt;artist &lt;/li&gt;                    &lt;li&gt;assistant &lt;/li&gt;                    &lt;li&gt;attendees &lt;/li&gt;                    &lt;li&gt;author &lt;/li&gt;                    &lt;li&gt;bcc &lt;/li&gt;                    &lt;li&gt;birthday &lt;/li&gt;                    &lt;li&gt;bit_rate &lt;/li&gt;                    &lt;li&gt;bookmarked &lt;/li&gt;                    &lt;li&gt;buddy_name &lt;/li&gt;                    &lt;li&gt;business_address &lt;/li&gt;                    &lt;li&gt;business_fax &lt;/li&gt;                    &lt;li&gt;business_home_page &lt;/li&gt;                    &lt;li&gt;business_phone &lt;/li&gt;                    &lt;li&gt;categories &lt;/li&gt;                    &lt;li&gt;cc &lt;/li&gt;                    &lt;li&gt;channels &lt;/li&gt;                    &lt;li&gt;children_names &lt;/li&gt;                    &lt;li&gt;comment &lt;/li&gt;                    &lt;li&gt;companies &lt;/li&gt;                    &lt;li&gt;company &lt;/li&gt;                    &lt;li&gt;company_name &lt;/li&gt;                &lt;/ul&gt;                &lt;/td&gt;                &lt;td style=&quot;PADDING-LEFT: 1em&quot;&gt;                &lt;ul class=&quot;nolist&quot; style=&quot;PADDING-LEFT: 0px&quot;&gt;                    &lt;li&gt;company_phone &lt;/li&gt;                    &lt;li&gt;component_guid &lt;/li&gt;                    &lt;li&gt;component_id &lt;/li&gt;                    &lt;li&gt;content &lt;/li&gt;                    &lt;li&gt;conversation_id &lt;/li&gt;                    &lt;li&gt;cookie &lt;/li&gt;                    &lt;li&gt;cookie_raw &lt;/li&gt;                    &lt;li&gt;country &lt;/li&gt;                    &lt;li&gt;data_rate &lt;/li&gt;                    &lt;li&gt;date &lt;/li&gt;                    &lt;li&gt;date_completed &lt;/li&gt;                    &lt;li&gt;department &lt;/li&gt;                    &lt;li&gt;display_name &lt;/li&gt;                    &lt;li&gt;doc_id &lt;/li&gt;                    &lt;li&gt;due_date &lt;/li&gt;                    &lt;li&gt;duration &lt;/li&gt;                    &lt;li&gt;email1 &lt;/li&gt;                    &lt;li&gt;email2 &lt;/li&gt;                    &lt;li&gt;email3 &lt;/li&gt;                    &lt;li&gt;end_date &lt;/li&gt;                    &lt;li&gt;event_id &lt;/li&gt;                    &lt;li&gt;extra_binary_data &lt;/li&gt;                    &lt;li&gt;extra_data &lt;/li&gt;                &lt;/ul&gt;                &lt;/td&gt;                &lt;td style=&quot;PADDING-LEFT: 1em&quot;&gt;                &lt;ul class=&quot;nolist&quot; style=&quot;PADDING-LEFT: 0px&quot;&gt;                    &lt;li&gt;flags &lt;/li&gt;                    &lt;li&gt;folder_name &lt;/li&gt;                    &lt;li&gt;format &lt;/li&gt;                    &lt;li&gt;from &lt;/li&gt;                    &lt;li&gt;genre &lt;/li&gt;                    &lt;li&gt;height &lt;/li&gt;                    &lt;li&gt;hobbies &lt;/li&gt;                    &lt;li&gt;home_address &lt;/li&gt;                    &lt;li&gt;home_fax &lt;/li&gt;                    &lt;li&gt;home_phone &lt;/li&gt;                    &lt;li&gt;im_address &lt;/li&gt;                    &lt;li&gt;importance &lt;/li&gt;                    &lt;li&gt;info_tip &lt;/li&gt;                    &lt;li&gt;interaction_period &lt;/li&gt;                    &lt;li&gt;internet_shortcut_name &lt;/li&gt;                    &lt;li&gt;job_title &lt;/li&gt;                    &lt;li&gt;keywords &lt;/li&gt;                    &lt;li&gt;language &lt;/li&gt;                    &lt;li&gt;last_modified_time &lt;/li&gt;                    &lt;li&gt;length &lt;/li&gt;                    &lt;li&gt;location &lt;/li&gt;                    &lt;li&gt;lyrics &lt;/li&gt;                    &lt;li&gt;machine_name &lt;/li&gt;                &lt;/ul&gt;                &lt;/td&gt;                &lt;td style=&quot;PADDING-LEFT: 1em&quot;&gt;                &lt;ul class=&quot;nolist&quot; style=&quot;PADDING-LEFT: 0px&quot;&gt;                    &lt;li&gt;mail_flags &lt;/li&gt;                    &lt;li&gt;mail_header &lt;/li&gt;                    &lt;li&gt;mail_id &lt;/li&gt;                    &lt;li&gt;manager_name &lt;/li&gt;                    &lt;li&gt;message_time &lt;/li&gt;                    &lt;li&gt;mobile_phone &lt;/li&gt;                    &lt;li&gt;native_size &lt;/li&gt;                    &lt;li&gt;nickname &lt;/li&gt;                    &lt;li&gt;office_location &lt;/li&gt;                    &lt;li&gt;organizer &lt;/li&gt;                    &lt;li&gt;original_date &lt;/li&gt;                    &lt;li&gt;other_address &lt;/li&gt;                    &lt;li&gt;other_phone &lt;/li&gt;                    &lt;li&gt;owner &lt;/li&gt;                    &lt;li&gt;pager &lt;/li&gt;                    &lt;li&gt;participants &lt;/li&gt;                    &lt;li&gt;percent_complete &lt;/li&gt;                    &lt;li&gt;personal_home_page &lt;/li&gt;                    &lt;li&gt;primary_fax &lt;/li&gt;                    &lt;li&gt;primary_phone &lt;/li&gt;                    &lt;li&gt;profession &lt;/li&gt;                    &lt;li&gt;received &lt;/li&gt;                    &lt;li&gt;recurrence_pattern &lt;/li&gt;                &lt;/ul&gt;                &lt;/td&gt;                &lt;td style=&quot;PADDING-LEFT: 1em&quot;&gt;                &lt;ul class=&quot;nolist&quot; style=&quot;PADDING-LEFT: 0px&quot;&gt;                    &lt;li&gt;replyto &lt;/li&gt;                    &lt;li&gt;shortcut_target &lt;/li&gt;                    &lt;li&gt;spouse &lt;/li&gt;                    &lt;li&gt;start_date &lt;/li&gt;                    &lt;li&gt;start_time &lt;/li&gt;                    &lt;li&gt;status &lt;/li&gt;                    &lt;li&gt;subject &lt;/li&gt;                    &lt;li&gt;text_content &lt;/li&gt;                    &lt;li&gt;thumbnail &lt;/li&gt;                    &lt;li&gt;thumbnail_format &lt;/li&gt;                    &lt;li&gt;timestamp &lt;/li&gt;                    &lt;li&gt;title &lt;/li&gt;                    &lt;li&gt;to &lt;/li&gt;                    &lt;li&gt;total_work &lt;/li&gt;                    &lt;li&gt;track_number &lt;/li&gt;                    &lt;li&gt;type &lt;/li&gt;                    &lt;li&gt;uri &lt;/li&gt;                    &lt;li&gt;user_name &lt;/li&gt;                    &lt;li&gt;web_page &lt;/li&gt;                    &lt;li&gt;wedding_anniversary &lt;/li&gt;                    &lt;li&gt;width &lt;/li&gt;                    &lt;li&gt;year_published &lt;/li&gt;                &lt;/ul&gt;                &lt;/td&gt;            &lt;/tr&gt;        &lt;/tbody&gt;    &lt;/table&gt;    &lt;a name=&quot;individualresultnative&quot;&gt;&lt;/a&gt;    &lt;h2&gt;Individual Search Result Items for Native Plug-ins&lt;/h2&gt;    &lt;p&gt;The following is the interface for &lt;code&gt;IGoogleDesktopQueryResultItem&lt;/code&gt;, the native plug-in individual result item.&lt;/p&gt;    &lt;h3&gt;&lt;code&gt;interface IGoogleDesktopQueryResultItem: IDispatch&lt;/code&gt;&lt;/h3&gt;    &lt;ul&gt;        &lt;li&gt;&lt;code&gt;GetProperty&lt;/code&gt;: Looks up and returns property values.        &lt;ul&gt;            &lt;li&gt;&lt;em&gt;Arguments&lt;/em&gt;:            &lt;ul&gt;                &lt;li&gt;&lt;code&gt;BSTR prop_name&lt;/code&gt;: Property name to look up the value of. &lt;/li&gt;                &lt;li&gt;&lt;code&gt;[out, retval] VARIANT* value&lt;/code&gt; : Value of the property argument for this result. &lt;/li&gt;            &lt;/ul&gt;            &lt;/li&gt;            &lt;li&gt;&lt;em&gt;Returns&lt;/em&gt;:            &lt;ul&gt;                &lt;li&gt;&lt;code&gt;S_OK&lt;/code&gt; if successful. &lt;/li&gt;                &lt;li&gt;Appropriate error on failure. &lt;/li&gt;            &lt;/ul&gt;            &lt;/li&gt;        &lt;/ul&gt;        &lt;/li&gt;        &lt;li&gt;&lt;code&gt;RemoveFromIndex&lt;/code&gt;: Removes either only this item or all versions of this item from the Desktop index (for email items, the latter means removing all messages in its thread). Note that you must have a read-write Query API registration cookie for this method to work; if not you'll get an &amp;quot;Access Denied&amp;quot; error.        &lt;ul&gt;            &lt;li&gt;&lt;em&gt;Arguments&lt;/em&gt;:            &lt;ul&gt;                &lt;li&gt;&lt;code&gt;VARIANT_BOOL remove_all_related_versions&lt;/code&gt; : If &lt;code&gt;VARIANT_TRUE&lt;/code&gt;, all versions are removed. If &lt;code&gt;VARIANT_FALSE&lt;/code&gt;, only this single item is removed. &lt;/li&gt;            &lt;/ul&gt;            &lt;/li&gt;            &lt;li&gt;&lt;em&gt;Returns&lt;/em&gt;:            &lt;ul&gt;                &lt;li&gt;&lt;code&gt;S_OK&lt;/code&gt; if successful. &lt;/li&gt;                &lt;li&gt;Appropriate error on failure. &lt;/li&gt;            &lt;/ul&gt;            &lt;/li&gt;        &lt;/ul&gt;        &lt;/li&gt;        &lt;li&gt;&lt;code&gt;schema&lt;/code&gt;: Returns the name of the item's schema.        &lt;ul&gt;            &lt;li&gt;&lt;em&gt;Arguments&lt;/em&gt;:            &lt;ul&gt;                &lt;li&gt;&lt;code&gt;[out, retval] BSTR* schema_name&lt;/code&gt; : Name of this item's schema &lt;/li&gt;            &lt;/ul&gt;            &lt;/li&gt;            &lt;li&gt;&lt;em&gt;Returns&lt;/em&gt;:            &lt;ul&gt;                &lt;li&gt;&lt;code&gt;S_OK&lt;/code&gt; if successful. &lt;/li&gt;                &lt;li&gt;Appropriate error on failure. &lt;/li&gt;            &lt;/ul&gt;            &lt;/li&gt;        &lt;/ul&gt;        &lt;/li&gt;        &lt;li&gt;&lt;code&gt;versions&lt;/code&gt;: Returns either a list of emails in this item's thread (if the item is an email) or a list of all file versions (if the item is a file) in the Desktop index.        &lt;ul&gt;            &lt;li&gt;&lt;em&gt;Arguments&lt;/em&gt;:            &lt;ul&gt;                &lt;li&gt;&lt;code&gt;[out, retval] IGoogleDesktopDocumentVersions** ret&lt;/code&gt;: List of item's versions or other messages in its thread. &lt;/li&gt;            &lt;/ul&gt;            &lt;/li&gt;            &lt;li&gt;&lt;em&gt;Returns&lt;/em&gt;:            &lt;ul&gt;                &lt;li&gt;&lt;code&gt;S_OK&lt;/code&gt; if successful. &lt;/li&gt;                &lt;li&gt;Appropriate error on failure. &lt;/li&gt;            &lt;/ul&gt;            &lt;/li&gt;        &lt;/ul&gt;        &lt;/li&gt;    &lt;/ul&gt;    &lt;a name=&quot;individualresultscript&quot;&gt;&lt;/a&gt;    &lt;h2&gt;Individual Search Result Items for Script Plug-ins&lt;/h2&gt;    &lt;p&gt;The following code from the &lt;code&gt;lucky.js&lt;/code&gt; example shows how to get various properties from each individual result item in a result set. The &lt;code&gt;message()&lt;/code&gt; method is a basic output method defined early in the script.&lt;/p&gt;    &lt;p&gt;//Get the next individual search result item from the recordset var item = set.Next()if (item != null) { // First output the URI of the item we found message(item(&amp;quot;uri&amp;quot;)); // Now output the text representation of the content message(item(&amp;quot;text_content&amp;quot;)); // Alternatively, we could output the content in its native form // message(item (&amp;quot;content&amp;quot;));} else { message(&amp;quot;no item found!&amp;quot;);}&lt;/p&gt;    &lt;p&gt;The &lt;code&gt;remove_from_index.js&lt;/code&gt; example shows first how to build a query whose results are restricted by being a specific filename in a specific folder, as well as a script that removes from the Desktop index all result items from a search query.&lt;/p&gt;    &lt;p class=&quot;backtotop&quot;&gt;&lt;a href=&quot;#top&quot;&gt;&lt;font color=&quot;#551a8b&quot;&gt;Back to top&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;    &lt;a name=&quot;itemversions&quot;&gt;&lt;/a&gt;    &lt;h1&gt;Item Versions&lt;/h1&gt;    &lt;p&gt;The result item's &lt;code&gt;version&lt;/code&gt; property requires a bit of explanation. Its value is a document versions object, which is a collection of individual query result items. These are the same individual result items described in the previous section; in other words, an individual search result object can contain other individual result objects in its &lt;code&gt;version&lt;/code&gt; property.&lt;/p&gt;    &lt;p&gt;For an email message, its version contents are the other email messages in the same thread. For a file, its version contents are any other versions of that file, either from an earlier or a later time, indexed by Desktop.&lt;/p&gt;    &lt;p&gt;The method of accessing individual versions is different from how individual results are gotten from a search result recordset. The &lt;code&gt;count&lt;/code&gt; property's value is the number of versions in the document versions object. The &lt;code&gt;Item()&lt;/code&gt; method takes a 0-based index value and returns the result item object at that location. Note that the versions are not ordered other than by their index value; version 0 is not necessarily the earliest or latest version, version 1 may be earlier or later than version 0, etc.&lt;/p&gt;    &lt;a name=&quot;itemversionsnative&quot;&gt;&lt;/a&gt;    &lt;h2&gt;Item Versions in Native Plug-ins&lt;/h2&gt;    &lt;h3&gt;&lt;code&gt;interface IGoogleDesktopDocumentVersions: IDispatch&lt;/code&gt;&lt;/h3&gt;    &lt;ul&gt;        &lt;li&gt;&lt;code&gt;count&lt;/code&gt;: Number of separate versions in this object.        &lt;ul&gt;            &lt;li&gt;&lt;em&gt;Arguments&lt;/em&gt;:            &lt;ul&gt;                &lt;li&gt;&lt;code&gt;[out, retval] long* ret&lt;/code&gt; : Number of indexed versions of this item. &lt;/li&gt;            &lt;/ul&gt;            &lt;/li&gt;            &lt;li&gt;&lt;em&gt;Returns&lt;/em&gt;:            &lt;ul&gt;                &lt;li&gt;&lt;code&gt;S_OK&lt;/code&gt; if successful. &lt;/li&gt;                &lt;li&gt;Appropriate error on failure. &lt;/li&gt;            &lt;/ul&gt;            &lt;/li&gt;        &lt;/ul&gt;        &lt;/li&gt;        &lt;li&gt;&lt;code&gt;Item&lt;/code&gt;: Takes an index value and returns the result item stored at that location in the document versions list.        &lt;ul&gt;            &lt;li&gt;&lt;em&gt;Arguments&lt;/em&gt;:            &lt;ul&gt;                &lt;li&gt;&lt;code&gt;long index&lt;/code&gt; : Index value of the version to be returned. &lt;/li&gt;                &lt;li&gt;&lt;code&gt;[out, retval] IGoogleDesktopQueryResultItem** ret&lt;/code&gt;: The item at the position provided by the &lt;code&gt;index&lt;/code&gt; argument. &lt;/li&gt;            &lt;/ul&gt;            &lt;/li&gt;            &lt;li&gt;&lt;em&gt;Returns&lt;/em&gt;:            &lt;ul&gt;                &lt;li&gt;&lt;code&gt;S_OK&lt;/code&gt; if successful. &lt;/li&gt;                &lt;li&gt;Appropriate error on failure. &lt;/li&gt;            &lt;/ul&gt;            &lt;/li&gt;        &lt;/ul&gt;        &lt;/li&gt;    &lt;/ul&gt;    &lt;a name=&quot;itemversionsscript&quot;&gt;&lt;/a&gt;    &lt;h2&gt;Item Versions in Script Plug-ins&lt;/h2&gt;    &lt;p&gt;The versions collection has one function, &lt;code&gt;Item(index)&lt;/code&gt; and one property, &lt;code&gt;count&lt;/code&gt;, which function as described above.&lt;/p&gt;    &lt;p class=&quot;backtotop&quot;&gt;&lt;a href=&quot;#top&quot;&gt;&lt;font color=&quot;#551a8b&quot;&gt;Back to top&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;    &lt;a name=&quot;httpxml&quot;&gt;&lt;/a&gt;    &lt;h1&gt;HTTP/XML-Based Query API&lt;/h1&gt;    &lt;h2&gt;&lt;a id=&quot;gettingstarted2&quot; name=&quot;gettingstarted2&quot;&gt;&lt;/a&gt;Getting Started&lt;/h2&gt;    &lt;p&gt;From here to the end of the document, we cover how to use the HTTP/XML-based Query API. &lt;/p&gt;    &lt;p&gt;To issue Google Desktop HTTP/XML search queries you will need to know, in addition to the information in this document: &lt;/p&gt;    &lt;ul&gt;        &lt;li&gt;How to issue an HTTP request. &lt;/li&gt;        &lt;li&gt;How to process an XML-format HTTP response. &lt;/li&gt;    &lt;/ul&gt;    &lt;h2&gt;&lt;a id=&quot;requesting&quot; name=&quot;requesting&quot;&gt;&lt;/a&gt;Requesting a Desktop Search&lt;/h2&gt;    &lt;p&gt;Your application requests a desktop search by sending an HTTP request that includes a &lt;code&gt;&amp;amp;format=xml&lt;/code&gt; parameter to Google Desktop. For example, to search for &amp;quot;Google&amp;quot; you'd send something like:&lt;br /&gt;    &lt;br /&gt;    &lt;code&gt;http://127.0.0.1:4664/search&amp;amp;s=1ftR7c_hVZKYvuYS-RWnFHk91Z0? q=Google&amp;amp;format=xml&lt;/code&gt;&lt;/p&gt;    &lt;p&gt;To break this down: &lt;/p&gt;    &lt;ul&gt;        &lt;li&gt;&lt;code&gt;http://127.0.0.1:4664/&lt;/code&gt; is the localhost address and Google Desktop port. &lt;/li&gt;        &lt;li&gt;&lt;code&gt;search&amp;amp;s=1ftR7c_hVZKYvuYS-RWnFHk91Z0&lt;/code&gt; is the search command and a security token. &lt;/li&gt;        &lt;li&gt;&lt;code&gt;?q=Google&lt;/code&gt; is the query term(s) parameter.        &lt;ul&gt;            &lt;li&gt;If you want to search for more than one term, separate the terms with &lt;code&gt;+&lt;/code&gt;s. For example, to search for both &amp;quot;Google&amp;quot; and &amp;quot;Desktop&amp;quot;, use:&lt;br /&gt;            &lt;code&gt;?q=Google+Desktop&lt;/code&gt;&lt;br /&gt;            &lt;/li&gt;            &lt;li&gt;If you want to search for a specific phrase, separate the terms with &lt;code&gt;+&lt;/code&gt;s and surround the phrase with &lt;code&gt;%22&lt;/code&gt;s. For example, to search for the phrase &amp;quot;Google Desktop&amp;quot;, use:&lt;br /&gt;            &lt;code&gt;?q=%22Google+Desktop%22&lt;/code&gt; &lt;br /&gt;            &lt;br /&gt;            To search for the two phrases &amp;quot;Google Desktop&amp;quot; and &amp;quot;Copyright 2007&amp;quot;, use: &lt;br /&gt;            &lt;code&gt;?q=%22Google+Desktop%22+%22Copyright+2007%22&lt;/code&gt;. &lt;/li&gt;        &lt;/ul&gt;        &lt;/li&gt;        &lt;li&gt;&lt;code&gt;&amp;amp;format=xml&lt;/code&gt; specifies that the HTTP response returns the search results in XML format, as described in the next section. &lt;/li&gt;    &lt;/ul&gt;    &lt;p class=&quot;note&quot;&gt;&lt;strong&gt;Note:&lt;/strong&gt; These requests perform &lt;em&gt;only&lt;/em&gt; a desktop search, not both a web and desktop search. &lt;/p&gt;    &lt;p&gt;By default, an HTTP search response will only return the first ten results. You can specify a larger number by appending the &lt;code&gt;&amp;amp;num=&lt;/code&gt; parameter, followed by the maximum number of results you'd like returned, to your query. There is no problem if the maximum number argument value is greater than the total number of search results; only the total number of results is returned, with no null &amp;quot;results&amp;quot;.&lt;/p&gt;    &lt;p&gt;You can also specify at what point in the results the returned ones start. For example, if you're using the default value of 10 returned results and want to get back results 11-20 instead of the default results 1-10, append the &lt;code&gt;&amp;amp;start=&lt;/code&gt; parameter, followed by the position you want the results to start from. In this example, you'd specify &lt;code&gt;&amp;amp;start=1&lt;/code&gt;&lt;code&gt;0&lt;/code&gt; to indicate you want your returned results to start with the one after overall result 10. The &lt;code&gt;&amp;amp;start=&lt;/code&gt; and &lt;code&gt;&amp;amp;num=&lt;/code&gt; parameters can both be used in a single query.&lt;/p&gt;    &lt;p&gt;To create a query, first get the query URL that Google Desktop stores. Then append your query terms, any optional parameters, and the &lt;code&gt;&amp;amp;format=xml&lt;/code&gt; parameter. &lt;/p&gt;    &lt;p class=&quot;backtotop&quot;&gt;&lt;a href=&quot;#top&quot;&gt;&lt;font color=&quot;#551a8b&quot;&gt;Back to top&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;    &lt;h2&gt;&lt;a name=&quot;searchurl&quot;&gt;&lt;/a&gt;Getting the Stored Query URL&lt;/h2&gt;    &lt;p&gt;The stored query URL has the first part of the URL that you need to perform any Google Desktop query. It looks something like the following: &lt;/p&gt;    &lt;p&gt;http://127.0.0.1:4664/search&amp;amp;s=1ftR7c_hVZKYvuYS-RWnFHk91Z0?q=&lt;/p&gt;    &lt;p&gt;How you get the stored query URL depends on whether your code is running on Windows or Mac OS X. &lt;/p&gt;    &lt;h3&gt;Windows&lt;/h3&gt;    &lt;p&gt;Get the query URL from the registry using the following value name: &lt;/p&gt;    &lt;p&gt;HKEY_CURRENT_USER\Software\Google\Google Desktop\API\search_url&lt;/p&gt;    &lt;h3&gt;Mac OS X&lt;/h3&gt;    &lt;p&gt;Use CFPreferences to fetch the stored query URL from the user preferences domain &lt;code&gt;com.google.Desktop.WebServer&lt;/code&gt; using the key &lt;code&gt;search_url&lt;/code&gt;. For example: &lt;/p&gt;    &lt;p&gt;CFStringRef val = CFPreferencesCopyValue( CFSTR(&amp;quot;search_url&amp;quot;), CFSTR (&amp;quot;com.google.Desktop.WebServer&amp;quot;), kCFPreferencesCurrentUser, kCFPreferencesAnyHost);if (val) { // act on the value CFRelease(val);}&lt;/p&gt;    &lt;p class=&quot;backtotop&quot;&gt;&lt;a href=&quot;#top&quot;&gt;&lt;font color=&quot;#551a8b&quot;&gt;Back to top&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;    &lt;h2&gt;&lt;a id=&quot;results&quot; name=&quot;results&quot;&gt;&lt;/a&gt;&lt;strong&gt;Desktop Search Results&lt;/strong&gt;&lt;/h2&gt;    &lt;p&gt;When a search request has the &lt;code&gt;&amp;amp;format=xml&lt;/code&gt; parameter, Google Desktop returns results in an XML format. For example:&lt;/p&gt;    &lt;p&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;yes&amp;quot; ? &amp;gt;&amp;lt;results count=&amp;quot;24945&amp;quot;&amp;gt;&amp;lt;result&amp;gt; &amp;lt;category&amp;gt;web&amp;lt;/category&amp;gt; &amp;lt;!-- ... optional internal, implementation-specific elements such as ids and flags... --&amp;gt; &amp;lt;title&amp;gt;Developer Knowledge Base - Read the Google Desktop blog&amp;lt;/title&amp;gt; &amp;lt;url&amp;gt;http://code.google.com/support/bin/answer.py?answer=66869&amp;amp;topic=10434&amp;lt;/url&amp;gt; &amp;lt;time&amp;gt;128243290079530000&amp;lt;/time&amp;gt; &amp;lt;snippet&amp;gt;Desktop engineers regularly post development articles and announce updates to the &amp;amp;lt;b&amp;amp;gt;SDK&amp;amp;lt;/b&amp;amp;gt; and documentation. Here are some interesting posts from the past: New&amp;lt;/snippet&amp;gt; &amp;lt;thumbnail&amp;gt;/thumbnail?id=6% 5Fvwps3QA4FIYGAAAA&amp;amp;s=wgQCmjGl0VEzw3KVhm3mxBG_x48&amp;lt;/thumbnail&amp;gt; &amp;lt;icon&amp;gt;/icon? id=http%3A%2F%2Fcode%2Egoogle%2Ecom%2F&amp;amp;s=kKR1by-QXDMlb5vEhxkDZhCv3eE&amp;lt;/icon&amp;gt; &amp;lt;cache_url&amp;gt;http://127.0.0.1:4664/...&amp;lt;/cache_url&amp;gt; &amp;lt;/result&amp;gt;...&amp;lt;/results&amp;gt;&lt;/p&gt;    &lt;p&gt;The one meta-results tag is &lt;code&gt;&amp;lt;results&amp;gt;&lt;/code&gt;, which contains the total number of items that matched the query as the value of a &lt;code&gt;count&lt;/code&gt; parameter; e.g. &lt;code&gt;&amp;lt;results count=42&amp;gt;&lt;/code&gt;. This will be the largest number of possible &lt;code&gt;&amp;lt;result&amp;gt;&lt;/code&gt;...&lt;code&gt;&amp;lt;/result&amp;gt;&lt;/code&gt; entries in the &lt;code&gt;&amp;lt;results&amp;gt;&lt;/code&gt; element. However, if the number of returned results (which defaults to at most 10 if you don't specify an &lt;code&gt;&amp;amp;num=&lt;/code&gt; parameter with a larger value) is different from the &lt;code&gt;count&lt;/code&gt; value, the number of returned &lt;code&gt;&amp;lt;result&amp;gt;&lt;/code&gt;...&lt;code&gt;&amp;lt;/result&amp;gt;&lt;/code&gt; entries will be the smaller of the two conflicting values. &lt;/p&gt;    &lt;p&gt;For example, let's say the &lt;code&gt;&amp;lt;count&amp;gt;&lt;/code&gt; value is 42. But you didn't give an &lt;code&gt;&amp;amp;num=&lt;/code&gt; argument in the query. So, despite there being 42 items that matched the query, the XML response will only contain 10 &lt;code&gt;&amp;lt;result&amp;gt;&lt;/code&gt;...&lt;code&gt;&amp;lt;/result&amp;gt;&lt;/code&gt; entries. If the &lt;code&gt;&amp;lt;count&amp;gt;&lt;/code&gt; value was 6, which is smaller than the default 10 value, the XML response will only contain 6 &lt;code&gt;&amp;lt;result&amp;gt;&lt;/code&gt;...&lt;code&gt;&amp;lt;/result&amp;gt;&lt;/code&gt; entries.&lt;/p&gt;    &lt;p&gt;If you want to be sure to obtain all search results, your component will have to parse out the &lt;code&gt;&amp;lt;count&amp;gt;&lt;/code&gt; value and then issue additional HTTP Google Desktop search requests to retrieve that many results via use of either the &lt;code&gt;&amp;amp;start=&lt;/code&gt; or &lt;code&gt;&amp;amp;num=&lt;/code&gt; parameters.&lt;/p&gt;    &lt;p&gt;Each &lt;code&gt;&amp;lt;result&amp;gt;&lt;/code&gt; may include the following fields, which may appear in any order. Which fields appear will depend on the result type; for example, the &lt;code&gt;&amp;lt;from&amp;gt;&lt;/code&gt; entry should only show up in email or chat results. Each tag will contain a value; any tags not containing a value are not shown. &lt;/p&gt;    &lt;ul&gt;        &lt;li&gt;&lt;code&gt;&amp;lt;cache_url&amp;gt;&lt;/code&gt; is the Google Desktop-relative URL of this result's internal cache page. &lt;/li&gt;        &lt;li&gt;&lt;code&gt;&amp;lt;category&amp;gt;&lt;/code&gt; contains the result's type. The following table shows the possible result types for each platform.        &lt;table&gt;            &lt;tbody&gt;                &lt;tr&gt;                    &lt;th&gt;Result Type&lt;/th&gt;                    &lt;th&gt;                    &lt;div align=&quot;center&quot;&gt;Windows&lt;/div&gt;                    &lt;/th&gt;                    &lt;th&gt;                    &lt;div align=&quot;center&quot;&gt;Mac OS X&lt;/div&gt;                    &lt;/th&gt;                &lt;/tr&gt;                &lt;tr&gt;                    &lt;td&gt;application&lt;/td&gt;                    &lt;td&gt;                    &lt;div align=&quot;center&quot;&gt;&lt;/div&gt;                    &lt;/td&gt;                    &lt;td&gt;                    &lt;div align=&quot;center&quot;&gt;&lt;img style=&quot;BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN: 0px; BORDER-RIGHT-WIDTH: 0px&quot; alt=&quot;YES&quot; src=&quot;http://desktop.google.com/dev/images/checkbox.png&quot; /&gt;&lt;/div&gt;                    &lt;/td&gt;                &lt;/tr&gt;                &lt;tr&gt;                    &lt;td&gt;bookmark&lt;/td&gt;                    &lt;td&gt;                    &lt;div align=&quot;center&quot;&gt;&lt;/div&gt;                    &lt;/td&gt;                    &lt;td&gt;                    &lt;div align=&quot;center&quot;&gt;&lt;img style=&quot;BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN: 0px; BORDER-RIGHT-WIDTH: 0px&quot; alt=&quot;YES&quot; src=&quot;http://desktop.google.com/dev/images/checkbox.png&quot; /&gt;&lt;/div&gt;                    &lt;/td&gt;                &lt;/tr&gt;                &lt;tr&gt;                    &lt;td&gt;calendar&lt;/td&gt;                    &lt;td&gt;                    &lt;div align=&quot;center&quot;&gt;&lt;img style=&quot;BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN: 0px; BORDER-RIGHT-WIDTH: 0px&quot; alt=&quot;YES&quot; src=&quot;http://desktop.google.com/dev/images/checkbox.png&quot; /&gt;&lt;/div&gt;                    &lt;/td&gt;                    &lt;td&gt;                    &lt;div align=&quot;center&quot;&gt;&lt;img style=&quot;BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN: 0px; BORDER-RIGHT-WIDTH: 0px&quot; alt=&quot;YES&quot; src=&quot;http://desktop.google.com/dev/images/checkbox.png&quot; /&gt;&lt;/div&gt;                    &lt;/td&gt;                &lt;/tr&gt;                &lt;tr&gt;                    &lt;td&gt;chat&lt;/td&gt;                    &lt;td&gt;                    &lt;div align=&quot;center&quot;&gt;&lt;img style=&quot;BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN: 0px; BORDER-RIGHT-WIDTH: 0px&quot; alt=&quot;YES&quot; src=&quot;http://desktop.google.com/dev/images/checkbox.png&quot; /&gt;&lt;/div&gt;                    &lt;/td&gt;                    &lt;td&gt;                    &lt;div align=&quot;center&quot;&gt;&lt;/div&gt;                    &lt;/td&gt;                &lt;/tr&gt;                &lt;tr&gt;                    &lt;td&gt;contact&lt;/td&gt;                    &lt;td&gt;                    &lt;div align=&quot;center&quot;&gt;&lt;img style=&quot;BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN: 0px; BORDER-RIGHT-WIDTH: 0px&quot; alt=&quot;YES&quot; src=&quot;http://desktop.google.com/dev/images/checkbox.png&quot; /&gt;&lt;/div&gt;                    &lt;/td&gt;                    &lt;td&gt;                    &lt;div align=&quot;center&quot;&gt;&lt;img style=&quot;BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN: 0px; BORDER-RIGHT-WIDTH: 0px&quot; alt=&quot;YES&quot; src=&quot;http://desktop.google.com/dev/images/checkbox.png&quot; /&gt;&lt;/div&gt;                    &lt;/td&gt;                &lt;/tr&gt;                &lt;tr&gt;                    &lt;td&gt;email&lt;/td&gt;                    &lt;td&gt;                    &lt;div align=&quot;center&quot;&gt;&lt;img style=&quot;BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN: 0px; BORDER-RIGHT-WIDTH: 0px&quot; alt=&quot;YES&quot; src=&quot;http://desktop.google.com/dev/images/checkbox.png&quot; /&gt;&lt;/div&gt;                    &lt;/td&gt;                    &lt;td&gt;                    &lt;div align=&quot;center&quot;&gt;&lt;img style=&quot;BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN: 0px; BORDER-RIGHT-WIDTH: 0px&quot; alt=&quot;YES&quot; src=&quot;http://desktop.google.com/dev/images/checkbox.png&quot; /&gt;&lt;/div&gt;                    &lt;/td&gt;                &lt;/tr&gt;                &lt;tr&gt;                    &lt;td&gt;file&lt;/td&gt;                    &lt;td&gt;                    &lt;div align=&quot;center&quot;&gt;&lt;img style=&quot;BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN: 0px; BORDER-RIGHT-WIDTH: 0px&quot; alt=&quot;YES&quot; src=&quot;http://desktop.google.com/dev/images/checkbox.png&quot; /&gt;&lt;/div&gt;                    &lt;/td&gt;                    &lt;td&gt;                    &lt;div align=&quot;center&quot;&gt;&lt;img style=&quot;BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN: 0px; BORDER-RIGHT-WIDTH: 0px&quot; alt=&quot;YES&quot; src=&quot;http://desktop.google.com/dev/images/checkbox.png&quot; /&gt;&lt;/div&gt;                    &lt;/td&gt;                &lt;/tr&gt;                &lt;tr&gt;                    &lt;td&gt;journal&lt;/td&gt;                    &lt;td&gt;                    &lt;div align=&quot;center&quot;&gt;&lt;img style=&quot;BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN: 0px; BORDER-RIGHT-WIDTH: 0px&quot; alt=&quot;YES&quot; src=&quot;http://desktop.google.com/dev/images/checkbox.png&quot; /&gt;&lt;/div&gt;                    &lt;/td&gt;                    &lt;td&gt;                    &lt;div align=&quot;center&quot;&gt;&lt;/div&gt;                    &lt;/td&gt;                &lt;/tr&gt;                &lt;tr&gt;                    &lt;td&gt;media_file&lt;/td&gt;                    &lt;td&gt;                    &lt;div align=&quot;center&quot;&gt;&lt;/div&gt;                    &lt;/td&gt;                    &lt;td&gt;                    &lt;div align=&quot;center&quot;&gt;&lt;img style=&quot;BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN: 0px; BORDER-RIGHT-WIDTH: 0px&quot; alt=&quot;YES&quot; src=&quot;http://desktop.google.com/dev/images/checkbox.png&quot; /&gt;&lt;/div&gt;                    &lt;/td&gt;                &lt;/tr&gt;                &lt;tr&gt;                    &lt;td&gt;note&lt;/td&gt;                    &lt;td&gt;                    &lt;div align=&quot;center&quot;&gt;&lt;img style=&quot;BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN: 0px; BORDER-RIGHT-WIDTH: 0px&quot; alt=&quot;YES&quot; src=&quot;http://desktop.google.com/dev/images/checkbox.png&quot; /&gt;&lt;/div&gt;                    &lt;/td&gt;                    &lt;td&gt;                    &lt;div align=&quot;center&quot;&gt;&lt;/div&gt;                    &lt;/td&gt;                &lt;/tr&gt;                &lt;tr&gt;                    &lt;td&gt;task&lt;/td&gt;                    &lt;td&gt;                    &lt;div align=&quot;center&quot;&gt;&lt;img style=&quot;BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN: 0px; BORDER-RIGHT-WIDTH: 0px&quot; alt=&quot;YES&quot; src=&quot;http://desktop.google.com/dev/images/checkbox.png&quot; /&gt;&lt;/div&gt;                    &lt;/td&gt;                    &lt;td&gt;                    &lt;div align=&quot;center&quot;&gt;&lt;/div&gt;                    &lt;/td&gt;                &lt;/tr&gt;                &lt;tr&gt;                    &lt;td&gt;web&lt;/td&gt;                    &lt;td&gt;                    &lt;div align=&quot;center&quot;&gt;&lt;img style=&quot;BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN: 0px; BORDER-RIGHT-WIDTH: 0px&quot; alt=&quot;YES&quot; src=&quot;http://desktop.google.com/dev/images/checkbox.png&quot; /&gt;&lt;/div&gt;                    &lt;/td&gt;                    &lt;td&gt;                    &lt;div align=&quot;center&quot;&gt;&lt;img style=&quot;BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN: 0px; BORDER-RIGHT-WIDTH: 0px&quot; alt=&quot;YES&quot; src=&quot;http://desktop.google.com/dev/images/checkbox.png&quot; /&gt;&lt;/div&gt;                    &lt;/td&gt;                &lt;/tr&gt;            &lt;/tbody&gt;        &lt;/table&gt;        &lt;/li&gt;        &lt;li&gt;&lt;code&gt;&amp;lt;folder&amp;gt;&lt;/code&gt; is the name of the folder containing an email message. This field is not used on Mac OS X. &lt;/li&gt;        &lt;li&gt;&lt;code&gt;&amp;lt;from&amp;gt;&lt;/code&gt; is the name of either the person an email message was from, or the other party in an Instant Message chat. &lt;/li&gt;        &lt;li&gt;&lt;code&gt;&amp;lt;icon&amp;gt;&lt;/code&gt; is a Google Desktop-relative URL to an icon representing this result or its type. This will either be one of the standard Google Desktop Search result type icons (envelope for email, Word icon for a Word file, etc.) or a favicon obtained from a website. &lt;/li&gt;        &lt;li&gt;&lt;code&gt;&amp;lt;snippet&amp;gt;&lt;/code&gt; is a snippet from the result's content that contains at least one of the search terms. &lt;/li&gt;        &lt;li&gt;&lt;code&gt;&amp;lt;thumbnail&amp;gt;&lt;/code&gt; is a relative URL to the icon for this result at the Google Desktop webserver &lt;/li&gt;        &lt;li&gt;&lt;code&gt;&amp;lt;time&amp;gt;&lt;/code&gt; is the time value from the event that put this content into Google Desktop. Usually this will be the time the content was indexed by Google Desktop, but, for example, it could also be a file's last modified time. The format is per the Windows FILETIME structure; the number of 100-nanosecond intervals since January 1, 1601 represented as a 64-bit number. &lt;/li&gt;        &lt;li&gt;&lt;code&gt;&amp;lt;title&amp;gt;&lt;/code&gt;&amp;nbsp; is the result's title, which varies depending on its type, for example:        &lt;ul&gt;            &lt;li&gt;Web page: the page's title. &lt;/li&gt;            &lt;li&gt;Email: the message's Subject:. &lt;/li&gt;            &lt;li&gt;File: its filename. &lt;/li&gt;            &lt;li&gt;Chat: a line from the chat. &lt;/li&gt;        &lt;/ul&gt;        &lt;/li&gt;        &lt;li&gt;&lt;code&gt;&amp;lt;url&amp;gt;&lt;/code&gt; is the result's URL. For files and web pages, this is the usual path to the result. For chats and email messages, Google Desktop generates a URL for the location where it has stored its cached copy. &lt;/li&gt;    &lt;/ul&gt;    &lt;p&gt;If you want to experiment with queries to see what their XML format results look like, just do a desktop search from the browser. Then append &lt;code&gt;?format=xml&lt;/code&gt; to the result's URL, hit Enter, and the same results will display in XML format in the browser. Two caveats: first, only the number of results that originally appeared on one results page will show up in the browser in XML. So, for example, if only 10 HTML format results show up in the browser on one results page, only 10 XML format results will appear in the browser, even if the value of the &lt;code&gt;&amp;lt;results&amp;gt;&lt;/code&gt; tag's &lt;code&gt;count&lt;/code&gt; parameter is, say, 42. Second, your browser must include an XML viewer, which IE and Firefox do by default.&lt;/p&gt;    &lt;p&gt;Finally, note that the XML results do &lt;em&gt;not&lt;/em&gt; include the search terms. If your application wants to also make use of the search terms, as well as the results, it will have to keep track of what they were.&lt;/p&gt;</description><category>『GOOGLE开发』</category><pubDate>Sun, 05 Aug 2007 10:55:45 +0800</pubDate><author>a@b.com (bosswin)</author><guid isPermaLink="false">http://blog.mobilelook.cn/GoogleDevelopment/200708/71.html</guid><dc:creator>a@b.com (bosswin)</dc:creator><dc:date>2007-08-05T02:55:45Z</dc:date><fs:srclink>http://blog.mobilelook.cn/GoogleDevelopment/200708/71.html</fs:srclink><fs:srcfeed>http://blog.mobilelook.cn/rss.xml</fs:srcfeed><fs:itemid>feedsky/bosswin/~1482727/15091840/1503640</fs:itemid></item><item><title>.Net反编译工具Reflector</title><link>http://item.feedsky.com/~feedsky/bosswin/~1482727/12486178/1503640/1/item.html</link><wfw:comment>http://blog.mobilelook.cn/</wfw:comment><wfw:commentRss>http://blog.mobilelook.cn/sydication.asp?cmt=70</wfw:commentRss><trackback:ping>http://blog.mobilelook.cn/cmd.asp?act=tb&amp;id=70&amp;key=ab998dc0</trackback:ping><description>&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .Net非常不错的反编译工具Reflector，用它打开.exe.mcl.dll文件可以查看到这些文件的源代码（要.NET开发的哦）&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://blog.mobilelook.cn/upload/200707051316534523.JPG&quot; rel=&quot;gb_imageset[nice_pics]&quot; title=&quot;&quot;&gt;&lt;img onload=&quot;ResizeImage(this,520)&quot; src=&quot;http://blog.mobilelook.cn/upload/200707051316534523.JPG&quot; alt=&quot;&quot; title=&quot;&quot;/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://blog.mobilelook.cn/upload/200707051319033314.JPG&quot; rel=&quot;gb_imageset[nice_pics]&quot; title=&quot;&quot;&gt;&lt;img onload=&quot;ResizeImage(this,520)&quot; src=&quot;http://blog.mobilelook.cn/upload/200707051319033314.JPG&quot; alt=&quot;&quot; title=&quot;&quot;/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;下载地址：&lt;a class=&quot;l&quot; href=&quot;/upload/Reflector.rar&quot;&gt;Reflector&lt;/a&gt;&lt;/p&gt;</description><category>『.Net』</category><pubDate>Thu, 05 Jul 2007 13:21:56 +0800</pubDate><author>a@b.com (bosswin)</author><guid isPermaLink="false">http://blog.mobilelook.cn/DotNet/200707/70.html</guid><dc:creator>a@b.com (bosswin)</dc:creator><dc:date>2007-07-05T05:21:56Z</dc:date><fs:srclink>http://blog.mobilelook.cn/DotNet/200707/70.html</fs:srclink><fs:srcfeed>http://blog.mobilelook.cn/rss.xml</fs:srcfeed><fs:itemid>feedsky/bosswin/~1482727/12486178/1503640</fs:itemid></item><item><title>.NET模板引擎 (代码生成器 静态页生成 生成HTML 模板)</title><link>http://item.feedsky.com/~feedsky/bosswin/~1