<?xml version="1.0" encoding="UTF-8" standalone="no"?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" version="2.0"><channel><title>Kurik's Blog</title><description></description><managingEditor>noreply@blogger.com (kurikv)</managingEditor><pubDate>Fri, 1 Nov 2024 12:36:26 +0200</pubDate><generator>Blogger http://www.blogger.com</generator><openSearch:totalResults xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">13</openSearch:totalResults><openSearch:startIndex xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">1</openSearch:startIndex><openSearch:itemsPerPage xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">25</openSearch:itemsPerPage><link>http://vladimir-kurka.blogspot.com/</link><language>en-us</language><item><title>How to create symbols storage.</title><link>http://vladimir-kurka.blogspot.com/2011/04/how-to-create-symbols-storage.html</link><author>noreply@blogger.com (kurikv)</author><pubDate>Tue, 26 Apr 2011 18:10:00 +0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4753170291414805489.post-3838452615306123534</guid><description>&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;With this post I want to start a series of articles about WinDbg and how to analyze dump files. As you known the secret of effective debugging is using the correct symbols. If you are writing managed code, without symbols debugging is not be possible. Working without symbols over unmanaged code, you may not get clear call stacks - it requires FPO data from the PDB file.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;a href="http://msdn.microsoft.com/"&gt;MSDN&lt;/a&gt;&amp;nbsp;contains information about how to create symbols server, but&amp;nbsp;&amp;nbsp;there not discuss the most important: how to fill the server&amp;nbsp;characters and binary files.&amp;nbsp;If you want to arrive nirvana you need make next actions.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;You should have server with access of any person working on your project. You will probably want to call the server as &lt;b&gt;\\SYMBOLS&lt;/b&gt;. :) I will use this mane of server. Create two shared folders titled OSSYMBOLS and PRODUCTSYMBOLS.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Next step - install "Debuging Tools for Windows". After installing&amp;nbsp;Debugging Tools for Windows you should create environment variable&amp;nbsp;_NT_SYMBOL_PATH and assign it the next value:&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;div style="text-align: center;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;SRV*\\Symbols\OSSymbols*http://msdl.microsoft.com/download/symbols;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;SRV*\\Symbols\ProductSymbols&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjpKvyNZMT6s__50AOedVAVj8mlt2_jjSN1j4A5jGW6xYLycVwCz0jSkZvAER0keV4GjDRyVKLKb91KMXQjQZFaKr_-IZ1BHFQYDJTSg4v2c3rMmmoJDLRblE00TLtyDRqj4vO_YDXSzHY/s1600/environment.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjpKvyNZMT6s__50AOedVAVj8mlt2_jjSN1j4A5jGW6xYLycVwCz0jSkZvAER0keV4GjDRyVKLKb91KMXQjQZFaKr_-IZ1BHFQYDJTSg4v2c3rMmmoJDLRblE00TLtyDRqj4vO_YDXSzHY/s1600/environment.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;_NT_SYMBOL_PATH&amp;nbsp;will be indicate WinDBG, where to look for the symbols. In this string we have two symbol servers, separated by semi: one for the symbols of the OS and another for the symbols of your program. SRV letters at the beginning of both parts of the line &amp;nbsp;indicate the debugger to load library SYMSRV.dll and pass it a value placed after the SRV.&amp;nbsp;In the case of the first symbol server you are reporting SYMSRV.DLL, that the symbols OS will be stored in the directory \\Symbols\OSSymbols;&amp;nbsp;after next star is the HTTP address, which SYMSRV.DLL will be used to load any symbols that are absent in the symbol server.&amp;nbsp;This section of the variable _NT_SYMBOL_PATH provides updated symbols of OS.&amp;nbsp;The second part of the variable _NT_SYMBOL_PATH said library SYMSRV.DLL that the specific symbols of your program should be sought only in the shared directory \\Symbols\ProductSymbols.&amp;nbsp;If you want to specify different search paths, you can add them to a _NT_SYMBOL_PATH, separated by semi.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;So, the next string indicates that the search for your programs symbols also occurs in the system folder System32:&lt;/span&gt;&lt;br /&gt;
&lt;div style="text-align: center;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;SRV*\\Symbols\OSSymbols*http://msdl.microsoft.com/download/symbols;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;SRV*\\Symbols\ProductSymbols;c:\windows\system32&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;span class="Apple-style-span"&gt;&lt;span class="hps" title="Нажмите, чтобы увидеть альтернативный перевод"&gt;Symbol&lt;/span&gt;&amp;nbsp;&lt;span class="hps" title="Нажмите, чтобы увидеть альтернативный перевод"&gt;server&lt;/span&gt;&amp;nbsp;&lt;span class="hps" title="Нажмите, чтобы увидеть альтернативный перевод"&gt;is a&lt;/span&gt;&amp;nbsp;&lt;span class="hps" title="Нажмите, чтобы увидеть альтернативный перевод"&gt;database&lt;/span&gt;&amp;nbsp;&lt;span class="hps" title="Нажмите, чтобы увидеть альтернативный перевод"&gt;that&lt;/span&gt;&amp;nbsp;&lt;span class="hps" title="Нажмите, чтобы увидеть альтернативный перевод"&gt;uses&lt;/span&gt;&amp;nbsp;&lt;span class="hps" title="Нажмите, чтобы увидеть альтернативный перевод"&gt;file&lt;/span&gt;&amp;nbsp;&lt;span class="hps" title="Нажмите, чтобы увидеть альтернативный перевод"&gt;system&lt;/span&gt;&amp;nbsp;&lt;span class="hps" title="Нажмите, чтобы увидеть альтернативный перевод"&gt;to find&lt;/span&gt;&amp;nbsp;&lt;span class="hps" title="Нажмите, чтобы увидеть альтернативный перевод"&gt;files&lt;/span&gt;&lt;/span&gt;.&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: white;" title="Корневой каталог называется OSSymbols, и все файлы символов, такие как ADVAPI32.PDB, находятся на первом уровне."&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;The root directory is called OSSymbols, and all the symbol files, such as ADVAPI32.PDB, located on the first level.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-color: white; font-family: Verdana, sans-serif;" title="Под именем каждого файла символов находится каталог, название которого соответствует дате/времени, сигнатуре и прочей информации, необходимой для полного определения конкретной версии файла символов."&gt;Under the name of each file is a directory whose name matches the date/time stamp, signature and other information necessary to definition a specific version of a file.&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: white; font-family: Verdana, sans-serif;" title="Помните: при наличии нескольких вариантов файла (например, ADVAPI32.PDB) для различных версий ОС, у вас будет и несколько каталогов, соответствующих каждому варианту."&gt;Remember: if you have multiple options file (for example, ADVAPI32.PDB) for different OS versions, you will have a few directories that correspond to each option.&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white; font-family: Verdana, sans-serif;" title="Помните: при наличии нескольких вариантов файла (например, ADVAPI32.PDB) для различных версий ОС, у вас будет и несколько каталогов, соответствующих каждому варианту."&gt;&lt;span class="hps" title="Нажмите, чтобы увидеть альтернативный перевод"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;In the next&lt;/span&gt;&amp;nbsp;&lt;span class="hps" title="Нажмите, чтобы увидеть альтернативный перевод"&gt;article&lt;/span&gt;&amp;nbsp;&lt;span class="hps" title="Нажмите, чтобы увидеть альтернативный перевод"&gt;I&lt;/span&gt;&amp;nbsp;&lt;span class="hps" title="Нажмите, чтобы увидеть альтернативный перевод"&gt;will talk about&lt;/span&gt;&amp;nbsp;&lt;span class="hps" title="Нажмите, чтобы увидеть альтернативный перевод"&gt;how&lt;/span&gt;&amp;nbsp;&lt;span class="hps" title="Нажмите, чтобы увидеть альтернативный перевод"&gt;you can&lt;/span&gt;&amp;nbsp;&lt;span class="hps" title="Нажмите, чтобы увидеть альтернативный перевод"&gt;fill&lt;/span&gt;&amp;nbsp;&lt;span class="hps" title="Нажмите, чтобы увидеть альтернативный перевод"&gt;your&lt;/span&gt;&amp;nbsp;&lt;span class="hps" title="Нажмите, чтобы увидеть альтернативный перевод"&gt;symbol server.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjpKvyNZMT6s__50AOedVAVj8mlt2_jjSN1j4A5jGW6xYLycVwCz0jSkZvAER0keV4GjDRyVKLKb91KMXQjQZFaKr_-IZ1BHFQYDJTSg4v2c3rMmmoJDLRblE00TLtyDRqj4vO_YDXSzHY/s72-c/environment.png" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Implementation of the ICommand interface for reuse.</title><link>http://vladimir-kurka.blogspot.com/2010/11/implementation-of-icommand-interface.html</link><category>C#</category><category>WPF</category><author>noreply@blogger.com (kurikv)</author><pubDate>Mon, 15 Nov 2010 20:13:00 +0200</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4753170291414805489.post-9215346067586621837</guid><description>&lt;div style="text-align: justify;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;If you use MVVM (model-view-viewmodel) pattern, the most commonly used mechanism is the binding to action in the View using commands. To assignment the command needed to implement an interface ICommand. It's simple, but it will need to do again and again.&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;The idea - creating a universal command that takes two delegates: one is called when ICommand.Execute (object param) invoked, the second checks the status of whether you can execute the command (ICommand.CanExecute (object param)).&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Requires the method to switching event CanExecuteChanged. It is called from the user interface elements for switching the state CanExecute () command.&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;public&lt;/span&gt;&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;class&lt;/span&gt;&lt;/span&gt; &lt;span class="Apple-style-span" style="color: #3d85c6;"&gt;ModelCommand&lt;/span&gt; &lt;span style="color: #808030;"&gt;:&lt;/span&gt; &lt;span class="Apple-style-span" style="color: #3d85c6;"&gt;ICommand&lt;/span&gt;
&lt;span style="color: purple;"&gt;{&lt;/span&gt;
    &lt;span class="Apple-style-span" style="color: blue;"&gt;#region&lt;/span&gt; Constructors

    &lt;span style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;public&lt;/span&gt;&lt;/span&gt; ModelCommand&lt;span style="color: #808030;"&gt;(&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #3d85c6;"&gt;Action&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #808030;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;object&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="color: #808030;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt; execute&lt;span style="color: #808030;"&gt;)&lt;/span&gt;
        &lt;span style="color: #808030;"&gt;:&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;this&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #808030;"&gt;(&lt;/span&gt;execute&lt;span style="color: #808030;"&gt;,&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;null&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #808030;"&gt;)&lt;/span&gt; &lt;span style="color: purple;"&gt;{&lt;/span&gt; &lt;span style="color: purple;"&gt;}&lt;/span&gt;

    &lt;span style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;public&lt;/span&gt;&lt;/span&gt; ModelCommand&lt;span style="color: #808030;"&gt;(&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #3d85c6;"&gt;Action&lt;/span&gt;&lt;span style="color: #808030;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;object&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="color: #808030;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt; execute&lt;span style="color: #808030;"&gt;,&lt;/span&gt; &lt;span class="Apple-style-span" style="color: #3d85c6;"&gt;Predicate&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #808030;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;object&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="color: #808030;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt; canExecute&lt;span style="color: #808030;"&gt;)&lt;/span&gt;
    &lt;span style="color: purple;"&gt;{&lt;/span&gt;
        _execute &lt;span style="color: #808030;"&gt;=&lt;/span&gt; execute&lt;span style="color: purple;"&gt;;&lt;/span&gt;
        _canExecute &lt;span style="color: #808030;"&gt;=&lt;/span&gt; canExecute&lt;span style="color: purple;"&gt;;&lt;/span&gt;
    &lt;span style="color: purple;"&gt;}&lt;/span&gt;

    &lt;span class="Apple-style-span" style="color: blue;"&gt;#endregion&lt;/span&gt;

    &lt;span class="Apple-style-span" style="color: blue;"&gt;#region&lt;/span&gt; ICommand Members

    &lt;span style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;public&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt; &lt;span style="font-weight: bold;"&gt;event&lt;/span&gt;&lt;/span&gt; &lt;span class="Apple-style-span" style="color: #3d85c6;"&gt;EventHandler&lt;/span&gt; CanExecuteChanged&lt;span style="color: purple;"&gt;;&lt;/span&gt;

    &lt;span style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;public&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt; &lt;span style="font-weight: bold;"&gt;bool&lt;/span&gt;&lt;/span&gt; CanExecute&lt;span style="color: #808030;"&gt;(&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;object&lt;/span&gt;&lt;/span&gt; parameter&lt;span style="color: #808030;"&gt;)&lt;/span&gt;
    &lt;span style="color: purple;"&gt;{&lt;/span&gt;
        &lt;span style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;return&lt;/span&gt;&lt;/span&gt; _canExecute &lt;span style="color: #808030;"&gt;!&lt;/span&gt;&lt;span style="color: #808030;"&gt;=&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;null&lt;/span&gt;&lt;/span&gt; ? _canExecute&lt;span style="color: #808030;"&gt;(&lt;/span&gt;parameter&lt;span style="color: #808030;"&gt;)&lt;/span&gt; &lt;span style="color: #808030;"&gt;:&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;true&lt;/span&gt;&lt;/span&gt;&lt;span style="color: purple;"&gt;;&lt;/span&gt;
    &lt;span style="color: purple;"&gt;}&lt;/span&gt;

    &lt;span style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;public&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt; &lt;span style="font-weight: bold;"&gt;void&lt;/span&gt;&lt;/span&gt; Execute&lt;span style="color: #808030;"&gt;(&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;object&lt;/span&gt;&lt;/span&gt; parameter&lt;span style="color: #808030;"&gt;)&lt;/span&gt;
    &lt;span style="color: purple;"&gt;{&lt;/span&gt;
        &lt;span style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;if&lt;/span&gt;&lt;/span&gt; &lt;span style="color: #808030;"&gt;(&lt;/span&gt;_execute &lt;span style="color: #808030;"&gt;!&lt;/span&gt;&lt;span style="color: #808030;"&gt;=&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;null&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #808030;"&gt;)&lt;/span&gt;
            _execute&lt;span style="color: #808030;"&gt;(&lt;/span&gt;parameter&lt;span style="color: #808030;"&gt;)&lt;/span&gt;&lt;span style="color: purple;"&gt;;&lt;/span&gt;
    &lt;span style="color: purple;"&gt;}&lt;/span&gt;

    &lt;span style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;public&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt; &lt;span style="font-weight: bold;"&gt;void&lt;/span&gt;&lt;/span&gt; OnCanExecuteChanged&lt;span style="color: #808030;"&gt;(&lt;/span&gt;&lt;span style="color: #808030;"&gt;)&lt;/span&gt;
    &lt;span style="color: purple;"&gt;{&lt;/span&gt;
        CanExecuteChanged&lt;span style="color: #808030;"&gt;(&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;this&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #808030;"&gt;,&lt;/span&gt; &lt;span class="Apple-style-span" style="color: #3d85c6;"&gt;EventArgs&lt;/span&gt;&lt;span style="color: #808030;"&gt;.&lt;/span&gt;Empty&lt;span style="color: #808030;"&gt;)&lt;/span&gt;&lt;span style="color: purple;"&gt;;&lt;/span&gt;
    &lt;span style="color: purple;"&gt;}&lt;/span&gt;

    &lt;span class="Apple-style-span" style="color: blue;"&gt;#endregion&lt;/span&gt;

    &lt;span style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;private&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt; &lt;span style="font-weight: bold;"&gt;readonly&lt;/span&gt;&lt;/span&gt; &lt;span class="Apple-style-span" style="color: #3d85c6;"&gt;Action&lt;/span&gt;&lt;span style="color: #808030;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;object&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #808030;"&gt;&amp;gt;&lt;/span&gt; _execute &lt;span style="color: #808030;"&gt;=&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;null&lt;/span&gt;&lt;/span&gt;&lt;span style="color: purple;"&gt;;&lt;/span&gt;
    &lt;span style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;private&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt; &lt;span style="font-weight: bold;"&gt;readonly&lt;/span&gt;&lt;/span&gt; &lt;span class="Apple-style-span" style="color: #3d85c6;"&gt;Predicate&lt;/span&gt;&lt;span style="color: #808030;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;object&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #808030;"&gt;&amp;gt;&lt;/span&gt; _canExecute &lt;span style="color: #808030;"&gt;=&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;null&lt;/span&gt;&lt;/span&gt;&lt;span style="color: purple;"&gt;;&lt;/span&gt;
&lt;span style="color: purple;"&gt;}&lt;/span&gt;
&lt;/pre&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total></item><item><title>Microsoft Ribbon for WPF</title><link>http://vladimir-kurka.blogspot.com/2010/08/microsoft-ribbon-for-wpf.html</link><category>WPF</category><author>noreply@blogger.com (kurikv)</author><pubDate>Wed, 4 Aug 2010 00:02:00 +0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4753170291414805489.post-693888541422808957</guid><description>&lt;span class="Apple-style-span" style="line-height: 25px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;I am pleased to inform you of the final release of Microsoft Ribbon for WPF.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 21px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;You can download the installer for this release&amp;nbsp;&lt;/span&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=2bfc3187-74aa-4154-a670-76ef8bc2a0b4" style="outline-color: initial; outline-style: none; outline-width: medium; text-decoration: none;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="color: #0b5394;"&gt;here&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmYksdRLWzMaPBrmaHZ-RumvOvnIEANz2jh_bDmUfq2K0MasWsnbcAwzry5YbcO0vad0kQm2qib-uc56q2G0ShUZFFblx-Owl09ofq7QNVRhjciQWh7TPUKrgQ5zIzemVesSl8Gqqp8Crc/s1600/Ribbon.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmYksdRLWzMaPBrmaHZ-RumvOvnIEANz2jh_bDmUfq2K0MasWsnbcAwzry5YbcO0vad0kQm2qib-uc56q2G0ShUZFFblx-Owl09ofq7QNVRhjciQWh7TPUKrgQ5zIzemVesSl8Gqqp8Crc/s1600/Ribbon.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;&lt;i&gt;&lt;br /&gt;
&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="line-height: 21px;"&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="margin-top: 12px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;This is&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;great news for Windows developers looking to build rich, fluent user experiences&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;. From the&amp;nbsp;&lt;/span&gt;&lt;a href="http://msdn.microsoft.com/library/ff799534.aspx" style="outline-color: initial; outline-style: none; outline-width: medium; text-decoration: none;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="color: #0b5394;"&gt;MSDN documentation&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;:&lt;/span&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div style="margin-top: 12px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;The ribbon is a command bar that organizes the features of an application into a series of tabs at the top of the application window. The ribbon user interface (UI) increases discoverability of features and functions, enables quicker learning of the application, and makes users feel more in control of their experience with the application. The ribbon replaces the traditional menu bar and toolbars.&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div style="margin-top: 12px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;In short, this control library gives you the ability to incorporate a ribbon user experience in your applications&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;today&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;.&lt;/span&gt;&lt;/div&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;i&gt;&lt;br /&gt;
&lt;/i&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="line-height: 21px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;For Windows developers, the ribbon provides a rich experience that you can incorporate quickly and easily for your WPF applications. What’s particularly cool about the Microsoft Ribbon for WPF is that it’s a control library that’s built 100% in pure WPF goodness.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="line-height: 25px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="line-height: 21px;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style="margin-top: 12px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;File → New Project...&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 12px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;After downloading and installing the Microsoft Ribbon for WPF, you’ll find the&amp;nbsp;WPF Ribbon Application&amp;nbsp;project template listed for both Visual C# and Visual Basic:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 12px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;&lt;i&gt;&lt;br /&gt;
&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfq7jQoiwDgdMFzw2OlQ1-9HGocVcbSjpjg8AQdbw6LOUYiM-Fc-x7fyeXKqBr1UAJDwWSCpp5rKT6rm9tryFbiWJ7-zROXuAsIXkssGJm5v7yQ7oAjLcQrPKnp-wnfhKsRlcpd4ZhOlHQ/s1600/Ribbon1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfq7jQoiwDgdMFzw2OlQ1-9HGocVcbSjpjg8AQdbw6LOUYiM-Fc-x7fyeXKqBr1UAJDwWSCpp5rKT6rm9tryFbiWJ7-zROXuAsIXkssGJm5v7yQ7oAjLcQrPKnp-wnfhKsRlcpd4ZhOlHQ/s1600/Ribbon1.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;&lt;i&gt;&lt;br /&gt;
&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;&lt;i&gt;&lt;br /&gt;
&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;This project template provides you with a very simple example to help get you started:&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilLjIwkRgUIkKvexN_QfWMbjIh7rWncbO41gGqZzIeQ9Ew0FMs0jXiN1dILQ9N_bCnop9e8Bh8By8CbH-Ar2-KTJdoOdH4MUOISajsGqOc4anvkf-qUP_AUh2wOxkVyTKSwmK5nyB1312p/s1600/Ribbon2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilLjIwkRgUIkKvexN_QfWMbjIh7rWncbO41gGqZzIeQ9Ew0FMs0jXiN1dILQ9N_bCnop9e8Bh8By8CbH-Ar2-KTJdoOdH4MUOISajsGqOc4anvkf-qUP_AUh2wOxkVyTKSwmK5nyB1312p/s1600/Ribbon2.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;&lt;i&gt;&lt;br /&gt;
&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;&lt;i&gt;&lt;br /&gt;
&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 12px;"&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;div style="margin-top: 12px; text-align: justify;"&gt;For a deeper examination of the XAML and control library that’s used to build this application, I strongly recommend that you read Pete Brown’s excellent summary of this release in a post entitled,&lt;a href="http://10rem.net/blog/2010/08/02/announcing-microsoft-ribbon-for-wpf-rtw" style="outline-color: initial; outline-style: none; outline-width: medium; text-decoration: none;"&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;Announcing: &lt;/span&gt;&lt;span class="Apple-style-span" style="color: #0b5394;"&gt;Microsoft Ribbon for WPF&lt;/span&gt;&lt;/a&gt;. Pete also provides an important point (with emphasis added):&lt;/div&gt;&lt;blockquote&gt;&lt;div style="margin-top: 12px;"&gt;The new&amp;nbsp;ribbon control is compatible with WPF 3.5sp1 and WPF 4. This is a 100% WPF implementation, not a wrapper around native code. That means&amp;nbsp;you get all the great WPF styling capabilities&amp;nbsp;for the new control.&lt;/div&gt;&lt;/blockquote&gt;&lt;div style="margin-top: 12px; text-align: justify;"&gt;This fact cannot be underscored enough. A true WPF implementation means that you can incorporate styling and rely on assumed WPF functionality (i.e.&amp;nbsp;RibbonButton&amp;nbsp;support the&amp;nbsp;ICommand&amp;nbsp;interface – wahoo!). Having built my fair share of WPF applications in the past – in some cases, wrestling with control interop and styling issues – I love this news.&lt;/div&gt;&lt;div style="margin-top: 12px; text-align: justify;"&gt;So, what are you waiting for? Download&amp;nbsp;Microsoft Ribbon for WPF&amp;nbsp;today and start incorporating it into your applications!&lt;/div&gt;&lt;div style="margin-top: 12px; text-align: justify;"&gt;Related Links&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=2bfc3187-74aa-4154-a670-76ef8bc2a0b4" style="outline-color: initial; outline-style: none; outline-width: medium; text-decoration: none;"&gt;&lt;span class="Apple-style-span" style="color: #0b5394;"&gt;Ribbon Download&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/library/ff799534.aspx" style="outline-color: initial; outline-style: none; outline-width: medium; text-decoration: none;"&gt;&lt;span class="Apple-style-span" style="color: #0b5394;"&gt;Ribbon Documentation from MSDN&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div style="margin-top: 12px; text-align: justify;"&gt;PS: If you building applications with&amp;nbsp;Windows Forms, check out&amp;nbsp;&lt;a href="http://windowsribbon.codeplex.com/" style="outline-color: initial; outline-style: none; outline-width: medium; text-decoration: none;"&gt;&lt;span class="Apple-style-span" style="color: #0b5394;"&gt;Windows Ribbon for WinForms&lt;/span&gt;&lt;/a&gt;&amp;nbsp;project on&amp;nbsp;&lt;a href="http://www.codeplex.com/" style="outline-color: initial; outline-style: none; outline-width: medium; text-decoration: none;"&gt;&lt;span class="Apple-style-span" style="color: #0b5394;"&gt;CodePlex&lt;/span&gt;&lt;/a&gt;.&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmYksdRLWzMaPBrmaHZ-RumvOvnIEANz2jh_bDmUfq2K0MasWsnbcAwzry5YbcO0vad0kQm2qib-uc56q2G0ShUZFFblx-Owl09ofq7QNVRhjciQWh7TPUKrgQ5zIzemVesSl8Gqqp8Crc/s72-c/Ribbon.png" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></item><item><title>Debugging WPF Binding</title><link>http://vladimir-kurka.blogspot.com/2010/07/debugging-wpf-binding.html</link><category>Binding</category><category>C#</category><category>WPF</category><author>noreply@blogger.com (kurikv)</author><pubDate>Sat, 24 Jul 2010 14:58:00 +0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4753170291414805489.post-9183453594531273057</guid><description>&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;WPF implements the mapping of data models using {Binding} expression. However in some cases there may be difficulties with understanding that the value was received as a result of binding. In this article I want to talk about a possible decision to enable the debug mode to see the used values. The solution is not new and probably many about it know, but for those who started working with WPF it might be useful. The essence of solution lies in the fact that the binding is carried out not directly but through a simple converter that does nothing to transform, but allows you to set Breakpoint while debugging and see the value of object that used.&lt;br /&gt;
&lt;blockquote&gt;&lt;code&gt;&lt;span style="color: black;"&gt;&lt;span style="color: blue;"&gt;using&lt;/span&gt; System;&lt;br /&gt;
&lt;span style="color: blue;"&gt;using&lt;/span&gt; System.Windows.Data;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: blue;"&gt;namespace&lt;/span&gt; WpfApplication&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;class&lt;/span&gt; EmptyConverter : IValueConverter&lt;br /&gt;
&amp;nbsp;&amp;nbsp;{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;object&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;Convert&lt;/span&gt;(&lt;span style="color: blue;"&gt;object&lt;/span&gt; &lt;span style="color: blue;"&gt;value&lt;/span&gt;, Type targetType, &lt;span style="color: blue;"&gt;object&lt;/span&gt; parameter, CultureInfo culture)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;return&lt;/span&gt; &lt;span style="color: blue;"&gt;value&lt;/span&gt;;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;object&lt;/span&gt; ConvertBack(&lt;span style="color: blue;"&gt;object&lt;/span&gt; &lt;span style="color: blue;"&gt;value&lt;/span&gt;, Type targetType, &lt;span style="color: blue;"&gt;object&lt;/span&gt; parameter, CultureInfo culture)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;return&lt;/span&gt; &lt;span style="color: blue;"&gt;value&lt;/span&gt;;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
}&lt;/span&gt;&lt;br /&gt;
&lt;/code&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;This is how data binding is implemented to the element. It creates an object converter and used in the {Binding} expression.&lt;br /&gt;
&lt;blockquote&gt;&lt;code&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: x-small;"&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;Window&lt;/span&gt; &lt;span style="color: red;"&gt;x:Class&lt;/span&gt;&lt;span style="color: blue;"&gt;="WpfApplication.TestWindow"&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: red;"&gt;xmlns&lt;/span&gt;&lt;span style="color: blue;"&gt;="http://schemas.microsoft.com/winfx/2006/xaml/presentation"&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: red;"&gt;xmlns:x&lt;/span&gt;&lt;span style="color: blue;"&gt;="http://schemas.microsoft.com/winfx/2006/xaml"&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: red;"&gt;xmlns:local&lt;/span&gt;&lt;span style="color: blue;"&gt;="clr-namespace:WpfApplication"&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: red;"&gt;x:Name&lt;/span&gt;&lt;span style="color: blue;"&gt;="Window"&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;Window.Resources&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;local:EmptyConverter&lt;/span&gt; &lt;span style="color: red;"&gt;x:Key&lt;/span&gt;&lt;span style="color: blue;"&gt;="EmptyConverter"&lt;/span&gt;&lt;span style="color: blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: maroon;"&gt;Window.Resources&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;Label &lt;/span&gt;&lt;span style="color: red;"&gt;Content&lt;/span&gt;&lt;span style="color: blue;"&gt;="{Binding Path=TestField, ElementName=Window, Converter={StaticResource EmptyConverter}}" &lt;/span&gt;&lt;span style="color: blue;"&gt;/&amp;gt;&lt;/span&gt;&amp;nbsp;&lt;br /&gt;
&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: maroon;"&gt;Window&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;/code&gt;&lt;/blockquote&gt;&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>NullToBoolValueConverter for WPF</title><link>http://vladimir-kurka.blogspot.com/2010/07/nulltoboolvalueconverter-for-wpf.html</link><category>C#</category><category>WPF</category><category>XAML</category><author>noreply@blogger.com (kurikv)</author><pubDate>Tue, 13 Jul 2010 23:47:00 +0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4753170291414805489.post-4279880879026218738</guid><description>&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;You can enable or disable WPF elements based on if they are null or not. This is not supported, but you can create a simple value converter.&lt;br /&gt;
&lt;blockquote&gt;&lt;code&gt;&lt;span style="color: black;"&gt; &amp;nbsp;&amp;nbsp;&lt;span style="color: green;"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;span style="color: green;"&gt;/// Converts null to boolean. &lt;/span&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;span style="color: green;"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;span style="color: green;"&gt;/// &amp;lt;remarks&amp;gt;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;span style="color: green;"&gt;/// If parameter is not specified or specified with null:&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;span style="color: green;"&gt;/// if passed value is null then true is returned, otherwise false. &lt;/span&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;span style="color: green;"&gt;/// If parameter is specified then inversion is done:&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;span style="color: green;"&gt;/// if passed value is null then false is returned, otherwise true.&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;span style="color: green;"&gt;/// &amp;lt;/remarks&amp;gt;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;[ValueConversion(&lt;span style="color: blue;"&gt;typeof&lt;/span&gt;(&lt;span style="color: blue;"&gt;object&lt;/span&gt;), &lt;span style="color: blue;"&gt;typeof&lt;/span&gt;(&lt;span style="color: blue;"&gt;bool&lt;/span&gt;))]&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;class&lt;/span&gt; NullToBoolValueConverter : IValueConverter&lt;br /&gt;
&amp;nbsp;&amp;nbsp;{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;object&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;Convert&lt;/span&gt;(&lt;span style="color: blue;"&gt;object&lt;/span&gt; &lt;span style="color: blue;"&gt;value&lt;/span&gt;, Type targetType, &lt;span style="color: blue;"&gt;object&lt;/span&gt; parameter, CultureInfo culture)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;bool&lt;/span&gt; result = &lt;span style="color: blue;"&gt;value&lt;/span&gt; == &lt;span style="color: blue;"&gt;null&lt;/span&gt; ? &lt;span style="color: blue;"&gt;true&lt;/span&gt; : &lt;span style="color: blue;"&gt;false&lt;/span&gt;;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;if&lt;/span&gt; (parameter != &lt;span style="color: blue;"&gt;null&lt;/span&gt;)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;return&lt;/span&gt; !result;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;return&lt;/span&gt; result;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;object&lt;/span&gt; ConvertBack(&lt;span style="color: blue;"&gt;object&lt;/span&gt; &lt;span style="color: blue;"&gt;value&lt;/span&gt;, Type targetType, &lt;span style="color: blue;"&gt;object&lt;/span&gt; parameter, CultureInfo culture)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;return&lt;/span&gt; &lt;span style="color: blue;"&gt;value&lt;/span&gt;;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;br /&gt;
&lt;/code&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;This value converter allows me to bind to any property taking a boolean argument with the following syntax in XAML.&lt;br /&gt;
&lt;blockquote&gt;&lt;code&gt;&lt;span style="color: black;"&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;local:NullToBoolValueConverter&lt;/span&gt; &lt;span style="color: red;"&gt;x:Key&lt;/span&gt;&lt;span style="color: blue;"&gt;="NullToBoolValueConverter"&lt;/span&gt;&lt;span style="color: blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;ComboBox.IsEnabled&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;Binding&amp;nbsp;&lt;/span&gt;&lt;span style="color: red;"&gt;ElementName&lt;/span&gt;&lt;span style="color: blue;"&gt;="TetsComboBox"&amp;nbsp;&lt;/span&gt;&lt;span style="color: red;"&gt;Path&lt;/span&gt;&lt;span style="color: blue;"&gt;="SelectedItem"&amp;nbsp;&lt;/span&gt;&lt;span style="color: red;"&gt;Converter&lt;/span&gt;&lt;span style="color: blue;"&gt;="{StaticResource NullToBoolValueConverter}"&amp;nbsp;&lt;/span&gt;&lt;span style="color: red;"&gt;ConverterParameter&lt;/span&gt;&lt;span style="color: blue;"&gt;="true"&lt;/span&gt; &lt;span style="color: blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: maroon;"&gt;ComboBox.IsEnabled&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;/code&gt;&lt;/blockquote&gt;&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total></item><item><title>WPF show or hide element based on CheckBox</title><link>http://vladimir-kurka.blogspot.com/2010/04/wpf-showhide-element-based-on.html</link><category>WPF</category><category>XAML</category><author>noreply@blogger.com (kurikv)</author><pubDate>Fri, 2 Apr 2010 19:29:00 +0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4753170291414805489.post-7233496879136915192</guid><description>&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;Today I had to do the task for showing or hiding elements based the value of a checkbox.&amp;nbsp;In WinForms 2.0 for this purpose it was necessary to subscribe to event &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.forms.checkbox.checkedchanged(v=VS.90).aspx"&gt;CheckedChanged&lt;/a&gt; and in his handler write the code:&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;&lt;span style="color: black; font-family: 'Courier New';"&gt;&lt;span style="color: blue;"&gt;private&lt;/span&gt; &lt;span style="color: blue;"&gt;void&amp;nbsp;&lt;/span&gt;myCheckBox_CheckedChanged(&lt;span style="color: blue;"&gt;object&lt;/span&gt; sender, &lt;span style="color: #2b91af;"&gt;EventArgs&lt;/span&gt; e)&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;myTextBox.Visible = myCheckBox.Checked;&lt;br /&gt;
}&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;With the new &lt;a href="http://msdn2.microsoft.com/en-us/library/system.windows.visibility.aspx"&gt;Visibility Enum in WPF&lt;/a&gt;, this becomes a bit trickier. To accomplish this, you can use converter &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.booleantovisibilityconverter.aspx"&gt;BooleanToVisibilityConverter&lt;/a&gt; that accept a boolean value and return a visibility value. Now we can cleanly show or hide an element based on a checkbox using just XAML code. The XAML code to use this is below:&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New';"&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;Window&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;&lt;span style="color: black; font-family: 'Courier New';"&gt; &amp;nbsp;&amp;nbsp;&lt;span style="color: red;"&gt;x:Class&lt;/span&gt;&lt;span style="color: blue;"&gt;="MyTest.XamlOnly"&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;span style="color: red;"&gt;xmlns&lt;/span&gt;&lt;span style="color: blue;"&gt;="http://schemas.microsoft.com/winfx/2006/xaml/presentation"&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;span style="color: red;"&gt;xmlns:x&lt;/span&gt;&lt;span style="color: blue;"&gt;="http://schemas.microsoft.com/winfx/2006/xaml"&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;span style="color: red;"&gt;Title&lt;/span&gt;&lt;span style="color: blue;"&gt;="XamlOnly"&lt;/span&gt; &lt;span style="color: red;"&gt;Height&lt;/span&gt;&lt;span style="color: blue;"&gt;="300"&lt;/span&gt; &lt;span style="color: red;"&gt;Width&lt;/span&gt;&lt;span style="color: blue;"&gt;="300"&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;Window.Resources&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;BooleanToVisibilityConverter&lt;/span&gt; &lt;span style="color: red;"&gt;x:Key&lt;/span&gt;&lt;span style="color: blue;"&gt;="BoolToVisConverter"&lt;/span&gt; &lt;span style="color: blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: maroon;"&gt;Window.Resources&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;StackPanel&lt;/span&gt; &lt;span style="color: red;"&gt;Orientation&lt;/span&gt;&lt;span style="color: blue;"&gt;="Vertical"&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;CheckBox&lt;/span&gt; &lt;span style="color: red;"&gt;Content&lt;/span&gt;&lt;span style="color: blue;"&gt;="Check to show text box below me"&lt;/span&gt; &lt;span style="color: red;"&gt;Name&lt;/span&gt;&lt;span style="color: blue;"&gt;="checkViewTextBox"&lt;/span&gt;&lt;span style="color: blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;TextBox&lt;/span&gt; &lt;span style="color: red;"&gt;Text&lt;/span&gt;&lt;span style="color: blue;"&gt;="only seen when above checkbox is checked"&lt;/span&gt; &lt;span style="color: red;"&gt;Visibility&lt;/span&gt;&lt;span style="color: blue;"&gt;="{Binding Path=IsChecked, ElementName=checkViewTextBox, Converter={StaticResource BoolToVisConverter}}"&lt;/span&gt;&lt;span style="color: blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: maroon;"&gt;StackPanel&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New';"&gt;&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: maroon;"&gt;Window&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total></item><item><title>Execute Javascript function after updating UpdatePanel</title><link>http://vladimir-kurka.blogspot.com/2010/01/execute-javascript-of-function-after.html</link><category>.NET</category><category>ASP.NET</category><category>C#</category><author>noreply@blogger.com (kurikv)</author><pubDate>Tue, 5 Jan 2010 16:12:00 +0200</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4753170291414805489.post-1669265409150137768</guid><description>&lt;a href="http://msdn.microsoft.com/en-us/library/system.web.ui.updatepanel.aspx"&gt;&lt;span style="font-family: Georgia, 'Times New Roman', serif;"&gt;UpdatePanel&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Georgia, 'Times New Roman', serif;"&gt; is Control of Microsoft ASP.NET AJAX which allows to integrate conveniently enough AJAX into your application. In this article I wish to show as to execute client JavaScript on end of the next updating of this panel. We add EndRequestHandler in request manager:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #333333; font-family: 'Lucida Grande', Verdana, Arial, sans-serif; font-size: small; line-height: 16px;"&gt;Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Georgia, 'Times New Roman', serif;"&gt;Here the example of the web form with two TextBox where you enter the text, and a server returns length of the text and displays it in the second TextBox:&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: blue; font-family: 'Courier New'; font-size: small;"&gt;&lt;blockquote&gt;&lt;code&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&amp;lt;%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %&amp;gt;&lt;br /&gt;
&lt;/span&gt;  &lt;span style="color: blue;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&amp;lt;!&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;DOCTYPE&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;html&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;PUBLIC&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;"-//W3C//DTD XHTML 1.0 Transitional//EN"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt; &lt;span style="color: blue;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;html&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;xmlns&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;="http://www.w3.org/1999/xhtml"&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt; &lt;span style="color: blue;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;head&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;runat&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;="server"&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;title&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;title&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;/span&gt; &lt;span style="color: blue;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;script&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;type&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;="text/javascript"&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;function&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt; EndRequestHandler(sender, args) {&lt;br /&gt;
&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;if&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt; (args.get_error() == undefined)&lt;br /&gt;
&amp;nbsp;alert(&lt;/span&gt;&lt;span style="color: #a31515;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;"Your text has: "&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt; + &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;document&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;.getElementById(&lt;/span&gt;&lt;span style="color: #a31515;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;"txtLength"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;).value + &lt;/span&gt;&lt;span style="color: #a31515;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;" character(s)"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;);&lt;br /&gt;
&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;else&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&amp;nbsp;alert(&lt;/span&gt;&lt;span style="color: #a31515;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;"There was an error"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt; + args.get_error().message);&lt;br /&gt;
&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;function&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt; load() {&lt;br /&gt;
&amp;nbsp;Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);&lt;br /&gt;
&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&amp;lt;/&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;script&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;  &lt;span style="color: blue;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&amp;lt;/&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;head&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt; &lt;span style="color: blue;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;body&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;onload&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;="load();"&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;form&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;id&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;="form1"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;runat&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;="server"&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;asp:ScriptManager&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;ID&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;="_scriptManager"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;runat&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;="server"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;asp:UpdatePanel&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;ID&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;="UpdatePanel1"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;runat&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;="server"&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;ContentTemplate&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Write something:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;asp:TextBox&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;ID&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;="txtData"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;runat&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;="server"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;AutoPostBack&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;="true"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;OnTextChanged&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;="txtDataOnChange"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;br&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Server says the length is:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;asp:TextBox&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;ID&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;="txtLength"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;runat&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;="server"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;AutoPostBack&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;="true"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&amp;lt;/&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;ContentTemplate&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&amp;lt;/&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;asp:UpdatePanel&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&amp;lt;/&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;form&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt; &lt;span style="color: blue;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&amp;lt;/&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;body&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt; &lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&amp;lt;/&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;html&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/blockquote&gt;&lt;/span&gt;&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Obfuscators for .NET</title><link>http://vladimir-kurka.blogspot.com/2009/11/obfuscators-for-net.html</link><category>.NET</category><author>noreply@blogger.com (kurikv)</author><pubDate>Mon, 9 Nov 2009 10:49:00 +0200</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4753170291414805489.post-2497969248988061255</guid><description>&lt;span style="-webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;"&gt;&lt;span style="font-family: Georgia, 'Times New Roman', serif;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;From the compiled assemblies (exe and dll) for the platform .NET can easily restore the code to high-level languages (C#, VB.net). This means that your source code can be copied. To protect themselves against such threats, most commercial software developers use various obfuscators.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="-webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;"&gt;&lt;span style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;br /&gt;
&lt;/span&gt; &lt;span style="font-family: Georgia, 'Times New Roman', serif;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="-webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;"&gt;&lt;b&gt;&lt;span style="font-family: Georgia, 'Times New Roman', serif;"&gt;Why and&amp;nbsp;of who is protected?&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="-webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;"&gt;&lt;b&gt;&lt;span style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;br /&gt;
&lt;/span&gt; &lt;span style="font-family: Georgia, 'Times New Roman', serif;"&gt; &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="-webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;"&gt;&lt;b&gt;&lt;span style="font-family: Georgia, 'Times New Roman', serif;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="font-weight: normal;"&gt;&lt;span style="font-family: Georgia, 'Times New Roman', serif;"&gt;O&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal;"&gt;&lt;span style="font-family: Georgia, 'Times New Roman', serif;"&gt;bfuscation as one of the stages is relevant only for the protection of commercial software. Can be used as protection against a variety of industrial espionage. Here all&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="-webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;"&gt;&lt;span style="font-family: Georgia, 'Times New Roman', serif;"&gt;easy: simply delete the metadata and confuse the rest of the program so that a competitor will be cheaper to write a program from scratch than to disassemble your. Usually for viewing metadata assembly is used &lt;/span&gt;&lt;a href="http://www.red-gate.com/products/reflector"&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Georgia, 'Times New Roman', serif;"&gt;.NET Reflector&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Georgia, 'Times New Roman', serif;"&gt;. It has a simple and intuitive interface, as well as the opportunity to expand the functionality of plug-ins. There are also several commercial browsers and assemblies decompiler(trial versions understand only half of the assembly, and "happy owners" licensed version reported is not very large differences from the reflector).&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;&lt;span style="-webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;"&gt;&lt;span style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;br /&gt;
&lt;/span&gt; &lt;span style="font-family: Georgia, 'Times New Roman', serif;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;span style="-webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;"&gt;&lt;b&gt;&lt;span style="font-family: Georgia, 'Times New Roman', serif;"&gt;Obfuscators and packers&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;span style="-webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;"&gt;&lt;b&gt;&lt;span style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;br /&gt;
&lt;/span&gt; &lt;span style="font-family: Georgia, 'Times New Roman', serif;"&gt; &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;span style="-webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;"&gt;&lt;b&gt;&lt;span style="font-weight: normal;"&gt;&lt;span style="font-family: Georgia, 'Times New Roman', serif;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;.NET-applications are trying to protect the two main methods: direct obfuscation&amp;nbsp;IL-code (when the output is almost is valid .Net-assembly, and it can perform&amp;nbsp;on nemodfitsirovannom MS.NET or mono).&amp;nbsp;And the packaging - a modification of the assembly so that the output is obtained winapi-application&amp;nbsp;contains in itself unpacked module and IL-packed code.&amp;nbsp;With obfuscation like everything is clear: given as input. Net assembly, we get the output .Net&amp;nbsp;assembly, it works in much the same. No extra "hidden" data, everything is&amp;nbsp;on the spot, only confused and changed its name to something useless.&amp;nbsp;In the case of a packer, we will face some problems:&lt;br /&gt;
&lt;/span&gt; &lt;span style="font-family: Georgia, 'Times New Roman', serif;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="-webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; font-family: monospace;"&gt;&lt;b&gt;&lt;span style="font-size: x-large;"&gt;&lt;span style="font-size: 16px; font-weight: normal;"&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;&lt;span style="font-weight: normal;"&gt;&lt;span style="font-size: medium;"&gt;&lt;span style="font-family: Georgia, 'Times New Roman', serif;"&gt;Our assembly is now done only under the WIND (or accurately tuned mono + wine)&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span style="font-weight: normal;"&gt;&lt;span style="font-size: medium;"&gt;&lt;span style="font-family: Georgia, 'Times New Roman', serif;"&gt;Packer, who passes the input mscoree original assembly was withdrawn for 1&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="font-weight: normal;"&gt;&lt;span style="font-size: medium;"&gt;&lt;span style="font-family: Georgia, 'Times New Roman', serif;"&gt;minute, and it makes no sense for the defense. Packers that intercept the internal&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="font-weight: normal;"&gt;&lt;span style="font-size: medium;"&gt;&lt;span style="font-family: Georgia, 'Times New Roman', serif;"&gt;function mscoree strongly depend on the version of the framework, and cause some antivirus false positive reaction. Interception of internal functions in general a delicate and thankless.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span style="font-weight: normal;"&gt;&lt;span style="font-size: medium;"&gt;&lt;span style="font-family: Georgia, 'Times New Roman', serif;"&gt;Packers are native-programs, and do not give compile your application&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="font-weight: normal;"&gt;&lt;span style="font-size: medium;"&gt;&lt;span style="font-family: Georgia, 'Times New Roman', serif;"&gt;in the x86-64 code, where it is available (and in some cases, this gives a large increase&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="font-weight: normal;"&gt;&lt;span style="font-size: medium;"&gt;&lt;span style="font-family: Georgia, 'Times New Roman', serif;"&gt;performance)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span style="font-weight: normal;"&gt;&lt;span style="font-size: medium;"&gt;&lt;span style="font-family: Georgia, 'Times New Roman', serif;"&gt;For the normal execution environment .Net in any case require access to the original&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="font-weight: normal;"&gt;&lt;span style="font-size: medium;"&gt;&lt;span style="font-family: Georgia, 'Times New Roman', serif;"&gt;IL-bytecode. And even preJITted-assembly should it contain in itself. And this means that to get&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="font-weight: normal;"&gt;&lt;span style="font-size: medium;"&gt;&lt;span style="font-family: Georgia, 'Times New Roman', serif;"&gt;This bytecode is also realistic.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></item><item><title>Quick Reference Guide for PostgreSQL 8.3</title><link>http://vladimir-kurka.blogspot.com/2009/11/quick-reference-guide-for-postgresql-83.html</link><category>PostgreSQL</category><author>noreply@blogger.com (kurikv)</author><pubDate>Fri, 6 Nov 2009 15:47:00 +0200</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4753170291414805489.post-3980119736954928414</guid><description>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.postgresonline.com/images/journal/postgresql83_cheatsheet_thumb.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://www.postgresonline.com/images/journal/postgresql83_cheatsheet_thumb.png" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;span style="-webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; font-family: monospace; font-size: 16px;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span style="-webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;"&gt;&lt;span style="font-family: Georgia, 'Times New Roman', serif;"&gt;Brief guide to work with PostgreSQL 8.3.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="-webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;"&gt;&lt;a href="http://www.postgresonline.com/special_feature.php?sf_name=postgresql83_cheatsheet&amp;amp;outputformat=a4pdf"&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Georgia, 'Times New Roman', serif;"&gt;Download in PDF&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;a href="http://www.postgresonline.com/special_feature.php?sf_name=postgresql83_cheatsheet&amp;amp;outputformat=html"&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Georgia, 'Times New Roman', serif;"&gt;Download in HTML&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Get SPListItem from SPList</title><link>http://vladimir-kurka.blogspot.com/2009/10/get-splistitem-from-splist.html</link><category>SharePoint</category><author>noreply@blogger.com (kurikv)</author><pubDate>Wed, 14 Oct 2009 10:18:00 +0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4753170291414805489.post-544836150461505851</guid><description>&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US" style="color: black;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Working with &lt;/span&gt;&lt;b&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.splist.aspx"&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;SPList&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/b&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;was found that upon receipt of a list item on &lt;/span&gt;&lt;b&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Guid&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; of &lt;/span&gt;&lt;b&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;SPListItemCollection.this [Guid]&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; took a lot of time on a large collection.&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="color: black;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="color: black;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt; &lt;span style="font-family: Verdana, sans-serif;"&gt; &lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;It looked like this:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: black;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: black;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: black;"&gt;&lt;blockquote&gt;&lt;code&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&lt;ol&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; &lt;/span&gt;
&lt;li&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;var&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; uniqId = &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: #2b91af;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Guid&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;(&lt;/span&gt;&lt;span style="color: green;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;/* get GUID somehow */&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;); &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;SPList list = &lt;/span&gt;&lt;span style="color: green;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;/* get list somehow */&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;; &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;SPListItem anItem = list.Items[uniqId];&lt;/span&gt;&lt;/li&gt;
&lt;/span&gt;&lt;/ol&gt;&lt;/code&gt;&lt;code&gt;&lt;span style="color: grey;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;* This source code was highlighted with &lt;/span&gt;&lt;a href="http://virtser.net/blog/post/source-code-highlighter.aspx"&gt;&lt;span style="color: grey;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Source Code Highlighter&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;
&lt;/blockquote&gt;&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US" style="color: black;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;But it turns out, there is another way to get a list item &lt;/span&gt;&lt;b&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;SPList.GetItemByUniqueId(Guid uniqueId)&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;. Using this method does not arise for the delay in large collections. To determine the differences we use the reflector, and see how to implement a method to obtain an element in the collection for &lt;/span&gt;&lt;b&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.splistitemcollection.aspx"&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;SPListItemCollection&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="color: black;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;in&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="color: black;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; &lt;/span&gt;&lt;b&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Microsoft.SharePoint.dll&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;. That's what we see in &lt;/span&gt;&lt;b&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;SPListItemCollection.this[Guid]&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span lang="EN-US" style="color: black;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span lang="EN-US" style="color: black;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span lang="EN-US" style="color: black;"&gt;&lt;blockquote&gt;&lt;code&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&lt;ol&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; &lt;/span&gt;
&lt;li&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;public&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; SPListItem &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;this&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;[&lt;/span&gt;&lt;span style="color: #2b91af;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Guid&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; uniqueId]&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;{&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;get&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;{&amp;nbsp; &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;this&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;.EnsureListItemsData();&amp;nbsp; &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;this&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;.EnsureFieldMap();&amp;nbsp; &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;int&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; iIndex = 0;&amp;nbsp; &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;int&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; columnNumber = &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;this&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;.m_mapFields.GetColumnNumber(&lt;/span&gt;&lt;span style="color: #a31515;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;"UniqueId"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;);&amp;nbsp; &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;string&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; str2 = uniqueId.ToString(&lt;/span&gt;&lt;span style="color: #a31515;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;"B"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;).ToLower();&amp;nbsp; &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;while&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; (&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;true&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;)&amp;nbsp; &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;if&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; (iIndex &amp;amp;gt;= &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;this&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;.m_iRowCount)&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;throw&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; ArgumentException();&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;string&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; str = ((&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;string&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;) &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;this&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;.m_arrItemsData[columnNumber, iIndex]).ToLower();&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;int&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; num3 = SPUtility.StsBinaryCompareIndexOf(str, &lt;/span&gt;&lt;span style="color: #a31515;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;";#"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;);&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;if&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; ((num3 &amp;amp;gt; 0) &amp;amp;amp;&amp;amp;amp; (str.Substring(num3 + 2) == str2))&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;this&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;.EnsureListItemIsValid(iIndex);&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;if&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; (&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;this&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;.m_iColection == &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;null&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;)&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;return&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; SPListItem(&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;this&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;, iIndex);&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;return&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;this&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;.m_iColection.ItemFactory(iIndex);&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;iIndex++;&amp;nbsp; &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;} &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;}&lt;/span&gt;&lt;/li&gt;
&lt;/span&gt;&lt;/ol&gt;&lt;/code&gt;&lt;code&gt;&lt;span style="color: grey;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;* This source code was highlighted with &lt;/span&gt;&lt;a href="http://virtser.net/blog/post/source-code-highlighter.aspx"&gt;&lt;span style="color: grey;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Source Code Highlighter&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;
&lt;/blockquote&gt;&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US" style="color: black;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;As we can see the contents of the entire collection moves an element by element, each element is calculated with a given match GUID'a. More collection - the longer work.&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="color: black;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US" style="color: black;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; &lt;br /&gt;
&lt;/span&gt; &lt;span style="font-family: Verdana, sans-serif;"&gt; &lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="color: black;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;And now look at the implementation of the method &lt;/span&gt;&lt;b&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.splist.getitembyuniqueid.aspx"&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;GetItemByUniqueId&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;for&lt;/span&gt;&lt;b&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.splist.aspx"&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;SPList&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/b&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;:&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span lang="EN-US" style="color: black;"&gt;&lt;b&gt;&lt;span style="font-weight: normal;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span lang="EN-US" style="color: black;"&gt;&lt;b&gt;&lt;span style="font-weight: normal;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span lang="EN-US" style="color: black;"&gt;&lt;b&gt;&lt;span style="font-weight: normal;"&gt;&lt;blockquote&gt;&lt;code&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&lt;ol&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; &lt;/span&gt;
&lt;li&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;public&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; SPListItem GetItemByUniqueId(&lt;/span&gt;&lt;span style="color: #2b91af;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Guid&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; uniqueId) &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;{ &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;SPQuery query = &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; SPQuery(); &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;query.Query = &lt;/span&gt;&lt;span style="color: #a31515;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;"&amp;amp;lt;Where&amp;amp;gt;&amp;amp;lt;Eq&amp;amp;gt;&amp;amp;lt;FieldRef Name=\"UniqueId\"&amp;amp;gt;&amp;amp;lt;/FieldRef&amp;amp;gt;&amp;amp;lt;Value Type=\"Guid\"&amp;amp;gt;"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; + uniqueId.ToString(&lt;/span&gt;&lt;span style="color: #a31515;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;"B"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;) + &lt;/span&gt;&lt;span style="color: #a31515;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;"&amp;amp;lt;/Value&amp;amp;gt;&amp;amp;lt;/Eq&amp;amp;gt;&amp;amp;lt;/Where&amp;amp;gt;"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;; &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;query.ViewAttributes = &lt;/span&gt;&lt;span style="color: #a31515;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;"Scope=\"RecursiveAll\" ModerationType=\"Moderator\""&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;; &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;query.MeetingInstanceId = -2; &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;query.QueryOpt = SPQuery.SPQueryOpt.None | SPQuery.SPQueryOpt.UniqueId; &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;SPListItemCollection items = &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;this&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;.GetItems(query); &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;if&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; (items.Count != 0) &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;{ &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;return&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; items[0]; &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;} &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;while&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; (!(&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;this&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;.ID == &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;this&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;.Lists.Web.UserInfoListId)) &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;{ &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;throw&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; ArgumentException(); &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;} &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;throw&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; ArgumentException(SPResource.GetString(&lt;/span&gt;&lt;span style="color: #a31515;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;"CannotFindUser"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;, &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;object&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;[0])); &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;}&lt;/span&gt;&lt;/li&gt;
&lt;/span&gt;&lt;/ol&gt;&lt;/code&gt;&lt;code&gt;&lt;span style="color: grey;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;* This source code was highlighted with &lt;/span&gt;&lt;a href="http://virtser.net/blog/post/source-code-highlighter.aspx"&gt;&lt;span style="color: grey;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Source Code Highlighter&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;
&lt;/blockquote&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US" style="color: black;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Here, using &lt;/span&gt;&lt;b&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;SPQuery&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;, we obtain directly the very record without sorting the collection.&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="color: black;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;span lang="EN-US" style="color: black;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Conclusion: The use of large lists &lt;/span&gt;&lt;b&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;SPList.Items[Guid]&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; - long, unproductive. &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Better to use &lt;/span&gt;&lt;b&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;SPList.getItemByUniqueId(Guid)&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;;&lt;/span&gt;&lt;/span&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Using P/Invoke</title><link>http://vladimir-kurka.blogspot.com/2009/09/using-pinvoke.html</link><category>.NET</category><category>C#</category><author>noreply@blogger.com (kurikv)</author><pubDate>Thu, 3 Sep 2009 16:19:00 +0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4753170291414805489.post-5343608749322033695</guid><description>&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;I want to show a good example showing the possibility of unmanaged code - we will hide the Start button and Taskbar. For the first time the possibility to use the Windows system functions in their programs, I learned when studying C#. If the C++ call is transparent to the programmer, then for C# is required to declare the desired function. In fact, the example does not have any practical purchase, but the example gives some idea of the organization Windows, and gives a more complete conception of the used functions. Let's start with the theory. First, the Start button, taskbar, system tray, and area of the clock - it is all windows. So, having access to this window, you can change habitual behavior of the interface element. Second - all these windows belong to specified classes. On behalf of the classes can be found descriptors required us windows to do experiments on them. Here are the names of classes:&lt;/div&gt;&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;&amp;nbsp;&amp;nbsp;&lt;span style="font-family: Verdana, sans-serif;"&gt;Shell_TrayWnd&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; - Taskbar &lt;/span&gt;&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;&amp;nbsp;&amp;nbsp;&lt;span style="font-family: Verdana, sans-serif;"&gt;Button &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;- Start Button &lt;/span&gt;&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;&amp;nbsp;&amp;nbsp;&lt;span style="font-family: Verdana, sans-serif;"&gt;TrayNotifyWnd &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;- the notification area with icons and a clock &lt;/span&gt;&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;&amp;nbsp;&amp;nbsp;&lt;span style="font-family: Verdana, sans-serif;"&gt;TrayClockWClass &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;- Clock&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;Now on to functions. For our purposes, we need the function &lt;a href="http://www.pinvoke.net/default.aspx/user32.FindWindow"&gt;FindWindow&lt;/a&gt;, &lt;a href="http://www.pinvoke.net/default.aspx/user32.FindWindowEx"&gt;FindWindowEx&lt;/a&gt; and &lt;a href="http://www.pinvoke.net/default.aspx/user32.ShowWindow"&gt;ShowWindow&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;&lt;code&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;[DllImport(&lt;/span&gt;&lt;span style="color: #a31515;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;"user32.dll"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;)]&lt;br /&gt;
&lt;/span&gt; &lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;private&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;static&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;extern&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: #2b91af;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;IntPtr&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; FindWindow(&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;string&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; ClassName, &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;string&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; WindowName);&lt;br /&gt;
&lt;br /&gt;
[DllImport(&lt;/span&gt; &lt;span style="color: #a31515;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;"user32.dll"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;)]&lt;br /&gt;
&lt;/span&gt; &lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;private&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;static&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;extern&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: #2b91af;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;IntPtr&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; FindWindowEx(&lt;/span&gt;&lt;span style="color: #2b91af;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;IntPtr&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; hwndParent, &lt;/span&gt;&lt;span style="color: #2b91af;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;IntPtr&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; hwndChildAfter, &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;string&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; className, &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;string&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; windowName);&lt;br /&gt;
&lt;br /&gt;
[DllImport(&lt;/span&gt; &lt;span style="color: #a31515;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;"user32.dll"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;)]&lt;br /&gt;
&lt;/span&gt; &lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;private&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;static&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;extern&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;bool&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; ShowWindow(&lt;/span&gt;&lt;span style="color: #2b91af;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;IntPtr&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; hWnd, &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;int&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; nCmdShow);&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;  &lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;const&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;int&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; SW_HIDE = 0;&lt;br /&gt;
&lt;/span&gt; &lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;const&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;int&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; SW_SHOW = 5;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;  &lt;span style="color: grey;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;* This source code was highlighted with &lt;/span&gt;&lt;a href="http://virtser.net/blog/post/source-code-highlighter.aspx"&gt;&lt;span style="color: grey;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Source Code Highlighter&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/blockquote&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;And then everything is easy. With the functions &lt;a href="http://www.pinvoke.net/default.aspx/user32.FindWindow"&gt;FindWindow&lt;/a&gt; and &lt;a href="http://www.pinvoke.net/default.aspx/user32.FindWindowEx"&gt;FindWindowEx&lt;/a&gt; on behalf of the class are required descriptors, which are then used in the function &lt;a href="http://www.pinvoke.net/default.aspx/user32.ShowWindow"&gt;ShowWindow&lt;/a&gt; to hide or show the element.&lt;/div&gt;&lt;br /&gt;
&lt;blockquote&gt;&lt;code&gt;&lt;span style="color: black;"&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;bool&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; show = &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;false&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;;&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;  &lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;private&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;void&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; butHideTaskbar_Click(&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;object&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; sender, &lt;/span&gt;&lt;span style="color: #2b91af;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;EventArgs&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; e)&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp;&lt;/span&gt;&lt;span style="color: #2b91af;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;IntPtr&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; taskBarWnd = FindWindow(&lt;/span&gt;&lt;span style="color: #a31515;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;"Shell_TrayWnd"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;, &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;null&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;);&lt;br /&gt;
&amp;nbsp;&lt;/span&gt;&lt;span style="color: #2b91af;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;IntPtr&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;startWnd = FindWindow(taskBarWnd,&amp;nbsp;&lt;span class="Apple-style-span" style="color: #2b91af;"&gt;IntPtr&lt;/span&gt;.Zero,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;"Button"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;, &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;null&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;);&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&lt;/span&gt; &lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;if&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; (startWnd != &lt;/span&gt;&lt;span style="color: #2b91af;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;IntPtr&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;.Zero)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;ShowWindow(startWnd, show ? SW_SHOW : SW_HIDE);&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;show = !show;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;   &lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;private&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;void&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; butHide_Click(&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;object&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; sender, &lt;/span&gt;&lt;span style="color: #2b91af;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;EventArgs&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; e)&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp;&lt;/span&gt;&lt;span style="color: #2b91af;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;IntPtr&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; taskBarWnd = FindWindow(&lt;/span&gt;&lt;span style="color: #a31515;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;"Shell_TrayWnd"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;, &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;null&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;);&lt;br /&gt;
&amp;nbsp;&lt;/span&gt;&lt;span style="color: #2b91af;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;IntPtr&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; tray = FindWindowEx(taskBarWnd, &lt;/span&gt;&lt;span style="color: #2b91af;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;IntPtr&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;.Zero, &lt;/span&gt;&lt;span style="color: #a31515;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;"TrayNotifyWnd"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;, &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;null&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;);&lt;br /&gt;
&amp;nbsp;&lt;/span&gt;&lt;span style="color: #2b91af;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;IntPtr&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; trayclock = FindWindowEx(tray, &lt;/span&gt;&lt;span style="color: #2b91af;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;IntPtr&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;.Zero, &lt;/span&gt;&lt;span style="color: #a31515;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;"TrayClockWClass"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;, &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;null&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;);&lt;br /&gt;
&amp;nbsp;ShowWindow(trayclock, SW_HIDE);&lt;br /&gt;
}&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;  &lt;span style="color: grey;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;* This source code was highlighted with &lt;/span&gt;&lt;a href="http://virtser.net/blog/post/source-code-highlighter.aspx"&gt;&lt;span style="color: grey;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Source Code Highlighter&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/blockquote&gt;&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Hook windows messages.</title><link>http://vladimir-kurka.blogspot.com/2009/09/hook-windows-messages.html</link><category>.NET</category><category>C#</category><author>noreply@blogger.com (kurikv)</author><pubDate>Wed, 2 Sep 2009 16:15:00 +0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4753170291414805489.post-3996193153942485972</guid><description>&lt;span style="font-family: Verdana, sans-serif;"&gt;Today I would like to talk about how in C# you can hook messages that come to the application. For this we use the &lt;/span&gt;&lt;a href="http://www.pinvoke.net/default.aspx/user32.SetWindowsHookEx"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;SetWindowsHookEx&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; function from user32.dll. The &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;SetWindowsHookEx&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; function installs an application-defined hook procedure into a hook chain. You would install a hook procedure to monitor the system for certain types of events. These events are associated either with a specific thread or with all threads in the same desktop as the calling thread. &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;WH_GETMESSAGE &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;installs a hook procedure that monitors messages posted to a message queue.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;blockquote&gt;&lt;code&gt;&lt;span style="color: black;"&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;public&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;static&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;partial&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;class&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; HookManager&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;private&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;const&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;int&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; WH_GETMESSAGE = 3;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;private&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;const&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;int&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; WM_KEYDOWN = 0x100;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;[DllImport(&lt;/span&gt; &lt;span style="color: #a31515;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;"user32.dll"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;, CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;private&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;static&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;extern&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;int&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; CallNextHookEx(&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;int&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; idHook, &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;int&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; nCode, &lt;/span&gt;&lt;span style="color: #2b91af;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;IntPtr&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; wParam, &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;ref&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; MSG lParam);&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;[DllImport(&lt;/span&gt; &lt;span style="color: #a31515;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;"user32.dll"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;, CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall, SetLastError = &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;true&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;)]&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;private&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;static&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;extern&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;int&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; SetWindowsHookEx(&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;int&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; idHook, CallbackPtr lpfn, &lt;/span&gt;&lt;span style="color: #2b91af;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;IntPtr&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; hMod, &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;int&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; dwThreadId);&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;[DllImport(&lt;/span&gt; &lt;span style="color: #a31515;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;"user32.dll"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;, CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall, SetLastError = &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;true&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;)]&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;private&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;static&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;extern&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;int&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; UnhookWindowsHookEx(&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;int&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; idHook);&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;[DllImport(&lt;/span&gt; &lt;span style="color: #a31515;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;"kernel32.dll"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;)]&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;public&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;static&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;extern&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;int&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; GetCurrentThreadId();&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;/span&gt;  &lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;public&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;static&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;void&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; Init()&lt;br /&gt;
&amp;nbsp;&amp;nbsp;{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;if&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; (m_hHook != 0) &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;return&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;m_callBack = &lt;/span&gt; &lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; CallbackPtr(CallBack);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;m_hHook = SetWindowsHookEx(WH_GETMESSAGE, m_callBack, &lt;/span&gt;&lt;span style="color: #2b91af;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;IntPtr&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;.Zero, GetCurrentThreadId());&lt;br /&gt;
&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;/span&gt; &lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;public&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;static&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;void&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; Dispose()&lt;br /&gt;
&amp;nbsp;&amp;nbsp;{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;if&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; (m_hHook == 0) &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;return&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;UnhookWindowsHookEx(m_hHook);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;m_hHook = 0;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;/span&gt;  &lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;private&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;static&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;int&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; CallBack(&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;int&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; code, &lt;/span&gt;&lt;span style="color: #2b91af;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;IntPtr&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; wParam, &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;ref&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; MSG lParam)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;{&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt; &lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;if&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; (lParam.msg == WM_KEYDOWN &amp;amp;&amp;amp; !m_bInHook)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;m_bInHook = &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;true&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;try&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;...&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;catch&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; (Exception ex)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;m_log.Fatal(&lt;/span&gt;&lt;span style="color: #a31515;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;"UNHANDLED!"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;, ex);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;finally&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;m_bInHook = &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;false&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt; &lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;return&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; CallNextHookEx(m_hHook, code, wParam, &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;ref&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; lParam);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;/span&gt; &lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;private&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;static&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; CallbackPtr m_callBack;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;private&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;delegate&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;int&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; CallbackPtr(&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;int&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; code, &lt;/span&gt;&lt;span style="color: #2b91af;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;IntPtr&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; wp, &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;ref&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; MSG lp);&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;/span&gt; &lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;private&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;static&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;int&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; m_hHook;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;private&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;static&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;bool&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; m_bInHook = &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;false&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;;&lt;br /&gt;
}&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;  &lt;span style="color: grey;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;* This source code was highlighted with &lt;/span&gt;&lt;a href="http://virtser.net/blog/post/source-code-highlighter.aspx"&gt;&lt;span style="color: grey;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Source Code Highlighter&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/blockquote&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></item><item><title>Google Desktop Actions</title><link>http://vladimir-kurka.blogspot.com/2008/07/google-desktop-actions.html</link><category>C#</category><category>Google</category><author>noreply@blogger.com (kurikv)</author><pubDate>Wed, 30 Jul 2008 01:01:00 +0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4753170291414805489.post-7455105285657840326</guid><description>&lt;span style="font-family: Verdana, sans-serif;"&gt;To implement Custom Actions and integrate your application with Google Desktop you will need, in addition to the information in this document:&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;* Sufficient access to write a plug-in for your application and an installer for it.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;* Programming knowledge of the Microsoft Windows Component Object Model (COM). &lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;The Action API consists of a COM interface, which must be exposed by plug-ins wishing to implement custom actions.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;blockquote&gt;&lt;code&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&lt;ol&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; &lt;/span&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;[ComVisible(&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;true&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;)]&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;[GuidAttribute(&lt;/span&gt;&lt;span style="color: #a31515;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;"E5A04D23-6921-4ef6-B19B-6C6AA89A46AA"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;)]&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;public&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;interface&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; IGoogleDesktopCustomAction&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;{&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;[DispId(1)]&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;void&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; QueryInterest(&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[In] &lt;/span&gt;&lt;span style="color: #2b91af;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Guid&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; location,&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[In] &lt;/span&gt;&lt;span style="color: #2b91af;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Guid&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; action,&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[In, MarshalAs(UnmanagedType.BStr)] &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;string&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; query_string,&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[In, MarshalAs(UnmanagedType.IUnknown)] &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;object&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; item,&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[In, Out, MarshalAs(UnmanagedType.BStr)] &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;ref&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;string&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; actionTitle,&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[Out, MarshalAs(UnmanagedType.BStr)] &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;out&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;string&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; actionCookie,&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[Out] &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;out&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; ActionHandling handling);&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;[DispId(2)]&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;void&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; HandleAction(&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[In] &lt;/span&gt;&lt;span style="color: #2b91af;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Guid&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; location,&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[In] &lt;/span&gt;&lt;span style="color: #2b91af;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Guid&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; action,&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[In, MarshalAs(UnmanagedType.BStr)] &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;string&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; query_string,&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[In, MarshalAs(UnmanagedType.IUnknown)] &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;object&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; item,&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[In, MarshalAs(UnmanagedType.BStr)] &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;string&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; action_cookie);&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;}&lt;/span&gt;&lt;/li&gt;
&lt;/span&gt;&lt;/ol&gt;&lt;/code&gt;&lt;code&gt;&lt;span style="color: grey;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;* This source code was highlighted with &lt;/span&gt;&lt;a href="http://virtser.net/blog/post/source-code-highlighter.aspx"&gt;&lt;span style="color: grey;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Source Code Highlighter&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;
&lt;/blockquote&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;The following sample demonstrates how a component can implement the methods on the IGoogleDesktopCustomAction interface.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;QueryInterest is invoked when search results are displayed in browser and HandleAction is invoked when you are opening specific item of search result.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;blockquote&gt;&lt;code&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&lt;ol&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; &lt;/span&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;[ComVisible(&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;true&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;)]&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;[GuidAttribute(&lt;/span&gt;&lt;span style="color: #a31515;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;"YOU-GUID"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;)]&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;public&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;class&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; SearchActions : IGoogleDesktopCustomAction&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;{&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;#region&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; IGoogleDesktopCustomAction Members&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;public&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;void&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; HandleAction(&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #2b91af;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Guid&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; location, &lt;/span&gt;&lt;span style="color: #2b91af;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Guid&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; action, &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;string&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; query, &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;object&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; item, &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;string&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; actionCookie)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;{&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;try&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;string&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; uri = ((IGoogleDesktopNotifyEvent)item).GetProperty(&lt;/span&gt;&lt;span style="color: #a31515;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;"uri"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;).ToString();&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.Diagnostics.Process.Start(uri);&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;catch&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; (COMException ex)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ } &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;public&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;void&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; QueryInterest(&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #2b91af;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Guid&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; location, &lt;/span&gt;&lt;span style="color: #2b91af;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Guid&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; action, &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;string&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; query, &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;object&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; item, &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;ref&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;string&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; actionTitle, &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;out&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;string&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; actionCookie, &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;out&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; ActionHandling handling)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;{&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;string&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; extension = uri.Substring(uri.LastIndexOf(&lt;/span&gt;&lt;span style="color: #a31515;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;'.'&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;) + 1);&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;if&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; (extension == &lt;/span&gt;&lt;span style="color: #a31515;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;"txt"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;handling = ActionHandling.ACTION_HANDLING_OVERRIDE;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;else&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;handling = ActionHandling.ACTION_HANDLING_DEFAULT;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;}&lt;/span&gt;&lt;/li&gt;
&lt;/span&gt;&lt;/ol&gt;&lt;/code&gt;&lt;code&gt;&lt;span style="color: grey;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;* This source code was highlighted with &lt;/span&gt;&lt;a href="http://virtser.net/blog/post/source-code-highlighter.aspx"&gt;&lt;span style="color: grey;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Source Code Highlighter&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;
&lt;/blockquote&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></item></channel></rss>