<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-503467692687064057</id><updated>2026-02-28T17:43:20.926+05:00</updated><category term="CMS"/><category term="Umbraco"/><category term="ASP.NET"/><category term="XML"/><category term="XPath"/><category term="XSLT"/><category term="Visual C++"/><title type='text'>Muneeb&#39;s Blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://muneeblog.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/503467692687064057/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://muneeblog.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Dost</name><uri>http://www.blogger.com/profile/07524982612160818255</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>8</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-503467692687064057.post-8533151607161192749</id><published>2011-07-21T20:17:00.218+05:00</published><updated>2018-02-18T05:59:32.882+05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ASP.NET"/><category scheme="http://www.blogger.com/atom/ns#" term="CMS"/><category scheme="http://www.blogger.com/atom/ns#" term="Umbraco"/><title type='text'>Learning Umbraco in a week - Day VI</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; font-family: inherit; text-align: center;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiffvCcUp2w5rdq-5cW0rpGG7YRZ5_KhCFvr1YMbSwYjf3NnAcCxWQEgheWc1DbAifwNEHGHvxRgzJ9abbjga-sZ7gXzEAj9Z7nO5HXJkQ4oL8di9ScIZs8l-RQnmZlYeKaye0yJPoKHNc8/s1600/Umbraco.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiffvCcUp2w5rdq-5cW0rpGG7YRZ5_KhCFvr1YMbSwYjf3NnAcCxWQEgheWc1DbAifwNEHGHvxRgzJ9abbjga-sZ7gXzEAj9Z7nO5HXJkQ4oL8di9ScIZs8l-RQnmZlYeKaye0yJPoKHNc8/s1600/Umbraco.jpg&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; font-family: inherit; text-align: justify;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; font-family: inherit; text-align: justify;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;This is my sixth post of the &quot;Learning Umbraco in a week&quot; series. The main agenda of this post is listed below. &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: inherit; text-align: justify;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ul style=&quot;font-family: inherit; text-align: justify;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;Introduction to Umbraco API&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;Working with the Umbraco Document API&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;Working with the Umbraco Node Factory&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Introduction to Umbraco Events&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Working with Umbraco Member API &lt;/span&gt;&lt;/li&gt;
&lt;span style=&quot;font-size: small;&quot;&gt; &lt;/span&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Working with Umbraco User API&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Working with Umbraco Relationship API &lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;font-family: inherit;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: inherit;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;Introduction to Umbraco API&lt;/span&gt;&lt;/b&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: inherit;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;The Umbraco API give you programmatic access to everything in the Umbraco CMS.&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt; There are many ways to interact with the Umbraco API. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;From creating user-generated content from your web front-end via the Document API. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;To manage complex content relationships via the Relationship API.&lt;/span&gt; &lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;You can even represent the API as REST-Full Web Service Endpoints for use by your custom HTML Forms or web services.&lt;/span&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;Working with the Umbraco Document API&lt;/span&gt;&lt;/b&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;The Umbraco Document API provides &lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;programmatic &lt;/span&gt;access to Umbraco CMS Documents. The API provides the Document data which is stored inside the database.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;1. &lt;b&gt;Using the Umbraco Document API&lt;/b&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;For using the Umbraco Document API, add the cms.dll, businesslogic.dll and umbraco.dll to your project.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;Then add references to the following namespaces at the top of your .cs file.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; using umbraco.BusinessLogic;&lt;br /&gt;
&amp;nbsp; using umbraco.cms.businesslogic.web;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;2. &lt;b&gt;Creating an Umbraco Document&lt;/b&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;The following Code Snippet creates an Umbraco Document and publish it.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; //First of all, we need to get the appropriate Document Type&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: inherit; text-align: justify;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; DocumentType docType = DocumentType.GetByAlias(&quot;Home&quot;);&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; // Here we will get the appropriate creator of the Document. &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; User author = User.GetUser(0);&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; //For creating a Document we also need to mention the parent node&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; //As this is the root document, we will use&amp;nbsp; -1&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; Document doc = Document.MakeNew(&quot;Hello World&quot;, docType , author, -1);&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; //The Document has been created&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; // We will now publish the Document&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; doc.Publish(author);&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; //We will ask Umbraco to update the Document Cache&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; umbraco.library.UpdateDocumentCache(doc.Id);&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;3. &lt;b&gt;Modifying Document Properties&lt;/b&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;The following Code Snippet get an Umbraco Document, modifies its properties and publish it.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; //First of all, we will get the appropriate Document&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; Document doc = new Document(786);&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; //Get the appropriate properties and modify the values&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; doc.getProperty(&quot;bodyText&quot;).Value = &quot;&amp;lt;p&amp;gt;Hello World!&amp;lt;/p&amp;gt;&quot;;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; //The Document has been modified&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; // We will now publish the Document&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; User author = User.GetUser(0); &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; doc.Publish(author);&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; //We will ask Umbraco to update the Document Cache&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; umbraco.library.UpdateDocumentCache(doc.Id);&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;4. &lt;b&gt;Enumerating Documents Children&lt;/b&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;The following Code Snippet get an Umbraco Document and enumerates its children.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; //First of all, we will get the appropriate Document&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; Document doc = new Document(786);&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; //We will check the Document&#39;s HasChildren property&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; //before enumerating through the Children array&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; if (doc.HasChildren) {&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Now we will enumerate through the Children array&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Document[] children = doc.Children;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach (Document childDoc in children) {&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Response.Write(childDoc.Text);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; }&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;5. &lt;b&gt;Attaching Document Event Handlers&lt;/b&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;The following Code Snippet attach to the Document beforePublish event.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; protected void Page_Load(object sender, EventArgs e) {&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Document.BeforePublish +=&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; new Document.PublishEventHandler( Document_BeforePublish );&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; }&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; void Document_BeforePublish(&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Document sender, umbraco.cms.businesslogic.PublishEventArgs e ) {&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Response.Write(sender.Text + &quot; is being published&quot;);&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //We will set the EventArgs.Cancel = true, i.e. for cancelling the event&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; e.Cancel = true;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; }&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;6. &lt;b&gt;Moving a Document&lt;/b&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;The following Code Snippet moves an Umbraco Document beforePublish event.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; //First of all, we will get the appropriate Document&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; Document doc = new Document(786);&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; //Move the document the new Parent Node&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; int newParentNode = 1234;&amp;nbsp;&amp;nbsp;&amp;nbsp;  doc.Move(newParentNode);&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; //We will ask Umbraco to update the Document Cache&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; umbraco.library.RefreshContent();&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;Working with the Umbraco Node Factory&lt;/span&gt;&lt;/b&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;The Umbraco Node Factory is a strongly type presentation of the in Memory XML Cache optimized for reading (it&#39;s read-only). Which means it&#39;s very fast and only includes published content. The API provides the Node data which is published (and stored inside the Umbraco.config).&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;1. &lt;b&gt;Using the Umbraco Node Factory&lt;/b&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;For using the Umbraco Node Factory, add the interfaces.dll, cms.dll, businesslogic.dll and umbraco.dll to your project.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;Then add references to the following namespaces at the top of your .cs file.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; using using umbraco.NodeFactory&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;2. &lt;b&gt;Retrieving an Umbraco Node&lt;/b&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;The following Code Snippet retrieves an Umbraco Node.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; Node node= new Node(786); &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; //Use Node.GetCurrent() method to get the Current Node&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; string bodyText= node.GetProperty(&quot;bodyText&quot;).Value;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;  string nodeName = node.Name; &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; DateTime nodeCreationDate = node.CreateDate; &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; string nodeUrl = node.NiceUrl;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;Introduction to Umbraco Events&lt;/b&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;For registering events in Umbraco, ApplicationBase class is used, as it is called automatically when Umbraco loads.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;1. &lt;b&gt;Using the Umbraco Events&lt;/b&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;For using the Umbraco Events, add the cms.dll, businesslogic.dll and umbraco.dll to your project.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;Then add references to the following namespaces at the top of your .cs file.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; using umbraco.BusinessLogic;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; using umbraco.cms.businesslogic;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt; &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; using umbraco.cms.businesslogic.web;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;2. &lt;b&gt;Registering Events in Umbraco&lt;/b&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;The following Code Snippet extends the ApplicationBase class and registers the event in the default constructor.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; public class AppBase : umbraco.BusinessLogic.ApplicationBase {&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public AppBase() {&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Document.BeforePublish +=&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; new Document.PublishEventHandler(Document_BeforePublish);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; void Document_BeforePublish(Document sender, PublishEventArgs e) {&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //TODO&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp; }&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;3. &lt;b&gt;Overview of All Events&lt;/b&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;Events can be attached with the following Umbraco objects.&lt;/span&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Document &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Access&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;DocumentType&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Domain&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;StyleSheet&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;StyleSheetProperty&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Member&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;MemberGroup&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;MemberType&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;CMSNode&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Dictionary&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Media&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;MediaType&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;DataTypeDefinition&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Language&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Macro&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;CreatedPackage&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;InstalledPackage&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Template&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;ContentControl&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;BaseTree&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;User&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Content&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: inherit; text-align: justify;&quot;&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;Working with the Umbraco Member API&lt;/span&gt;&lt;/b&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;A Member in Umbraco is an external person, who has a profile on the website. Members are distinct from Umbraco Users, meaning that a Member do not have access to the Umbraco back-end. &lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;The Member API provides access to the Members data which is stored inside the database.&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;1. &lt;b&gt;Using the Umbraco Member API&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;For using the Umbraco Member API, add the umbraco.dll to your project.&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;Then add references to the following namespaces at the top of your .cs file.&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; using umbraco.cms.businesslogic.member;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;2. &lt;b&gt;Creating a Member&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;font-family: inherit;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;The following Code Snippet creates an Umbraco Member and sets a property.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; //First of all we will have to select the appropriate Member Type &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; MemberType memberType = MemberType.GetByAlias(&quot;standard&quot;);&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: inherit; text-align: justify;&quot;&gt;
&lt;div style=&quot;font-family: inherit;&quot;&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; //Create a member &lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: inherit;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; Member member =&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: inherit;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Member.MakeNew(&quot;Awan&quot;, memberType, new umbraco.BusinessLogic.User(0));&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: inherit;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: inherit;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; //Set a property value on the member &lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: inherit;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; member.getProperty(&quot;city&quot;).Value = &quot;London&quot;;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: inherit;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: inherit;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; //We will ask Umbraco to update the Member Cache&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: inherit;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt; &amp;nbsp; member.XmlGenerate(new System.Xml.XmlDocument());&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;font-family: inherit;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; //Save the Member&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: inherit;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; member.Save();&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: inherit;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: inherit;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;3. &lt;b&gt;Adding Member&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt; to a Group&lt;/b&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: inherit;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;The following Code Snippet add an Umbraco Member to a Group and then removes it.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: inherit;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: inherit;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; //First of all we will have to select the appropriate Member&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: inherit;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; Member member = Member.GetMemberFromEmail(&quot;muneeb@email.com&quot;);&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: inherit;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: inherit;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; //Get the appropriate Member Group&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: inherit;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; MemberGroup memberGroup = MemberGroup.GetByName(&quot;admin&quot;);&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: inherit;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: inherit;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; //Add Member to the Group&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: inherit;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; member.AddGroup(memberGroup.Id);&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: inherit;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: inherit;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; //Remove Member from the Group&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; member.RemoveGroup(&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;memberGroup&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;.Id);&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;font-family: inherit;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;Working with the Umbraco User API&lt;/span&gt;&lt;/b&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: inherit;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;Umbraco provides access of Umbraco Back-End via Umbraco User API for writers, translators, editors and administrators.&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: inherit;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: inherit;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;1. &lt;b&gt;Using the Umbraco User API&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: inherit;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;For using the Umbraco User API, add the umbraco.dll to your project.&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: inherit;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: inherit;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;Then add references to the following namespaces at the top of your .cs file.&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: inherit;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: inherit;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; using umbraco.BusinessLogic;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: inherit;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: inherit;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;2. &lt;b&gt;Creating a User and allow Access to Umbraco Section&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: inherit;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;The following Code Snippet creates an Umbraco User and sets a property.&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&amp;nbsp; //First of all we will get the appropriate User Type&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;UserType userType = UserType.GetUserType(123);&lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&amp;nbsp; //Create a new User&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;User.MakeNew(&quot;Awan&quot;, &quot;awan&quot;, &quot;secrectPass&quot;, userType);&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;//Get the User via Login&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;User user = new User(&quot;awan&quot;);&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;//Add User Email&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;user.Email = &quot;muneeb@email.com&quot;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;//Allow access to Umbraco Section&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;user.addApplication(&quot;settings&quot;);&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;//Save the User&lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&amp;nbsp; user.Save();&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: inherit;&quot;&gt;
&lt;br /&gt;
&lt;div style=&quot;font-family: inherit;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;Working with the Umbraco Relationship API&lt;/span&gt;&lt;/b&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: inherit;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;The Umbraco Relationship API enables associations or links between Typed NodeIds be defined. For example, you may wish to make a connection between Members and Email (Document) etc.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;font-family: inherit;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;1. &lt;b&gt;Using the Umbraco Relationship API&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: inherit;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;For using the Umbraco Relationship API, add the umbraco.dll to your project.&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt; Then we need to defien an Umbraco Relation Type&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;A row first needs to be added into the UmbracoRelationType Table in the Database (Detail available below).&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;The Relation Types Package can used to define a type of link.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: inherit;&quot;&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;It&#39;s then possible to progmatically add / remove and quickly select relationships between typed Ids.&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt; We can now add references to the following namespaces at the top of your .cs file.&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: inherit;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: inherit;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;using cms.businesslogic.relations&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: inherit;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: inherit;&quot;&gt;
&lt;div style=&quot;font-family: inherit;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;2. &lt;b&gt;Object GUIDs for Creating Relation Types&lt;/b&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: inherit;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;To setup a RelationType in Umbraco, we will need the exact GUID of the appropriate Types, e.g, Document to Member, Member to Media, Media to Media.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: inherit;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: inherit;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;A list of all the built Object Types and their GUIDs is below.&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;table style=&quot;font-family: inherit;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td style=&quot;background-color: #eeeeee;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;ObjectType&lt;/b&gt;&lt;/span&gt;&lt;/td&gt; &lt;td style=&quot;background-color: #eeeeee;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;Description&lt;/b&gt;&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;&lt;span style=&quot;font-size: small;&quot;&gt;C66BA18E-EAF3-4CFF-8A22-41B16D66A972&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/td&gt; &lt;td&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Document&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;&lt;span style=&quot;font-size: small;&quot;&gt;B796F64C-1F99-4FFB-B886-4BF4BC011A9C&lt;/span&gt;&lt;/td&gt; &lt;td&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Media&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;&lt;span style=&quot;font-size: small;&quot;&gt;6FBDE604-4178-42CE-A10B-8A2600A2F07D&lt;/span&gt;&lt;/td&gt; &lt;td&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Template&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;&lt;span style=&quot;font-size: small;&quot;&gt;39EB0F98-B348-42A1-8662-E7EB18487560&lt;/span&gt;&lt;/td&gt; &lt;td&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Member&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;&lt;span style=&quot;font-size: small;&quot;&gt;A2CB7800-F571-4787-9638-BC48539A0EFB&lt;/span&gt;&lt;/td&gt; &lt;td&gt;&lt;span style=&quot;font-size: small;&quot;&gt;DocumentType&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;&lt;span style=&quot;font-size: small;&quot;&gt;366E63B9-880F-4E13-A61C-98069B029728&lt;/span&gt;&lt;/td&gt; &lt;td&gt;&lt;span style=&quot;font-size: small;&quot;&gt;MemberGroup&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;br style=&quot;font-family: inherit;&quot; /&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt; For a complete his list of Object Types please visit, &lt;/span&gt;&lt;a href=&quot;http://blog.hendyracher.co.uk/&quot; style=&quot;font-family: inherit;&quot;&gt;Hendy Rachers Blog&lt;/a&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;.&lt;/span&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;That&#39;s all for this post, in the next post (&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;Learning Umbraco in a week - Day VII&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;) we will have a look at LINQ to Umbraco.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://muneeblog.blogspot.com/feeds/8533151607161192749/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://muneeblog.blogspot.com/2011/07/learning-umbraco-in-week-day-vi.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/503467692687064057/posts/default/8533151607161192749'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/503467692687064057/posts/default/8533151607161192749'/><link rel='alternate' type='text/html' href='http://muneeblog.blogspot.com/2011/07/learning-umbraco-in-week-day-vi.html' title='Learning Umbraco in a week - Day VI'/><author><name>Dost</name><uri>http://www.blogger.com/profile/07524982612160818255</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiffvCcUp2w5rdq-5cW0rpGG7YRZ5_KhCFvr1YMbSwYjf3NnAcCxWQEgheWc1DbAifwNEHGHvxRgzJ9abbjga-sZ7gXzEAj9Z7nO5HXJkQ4oL8di9ScIZs8l-RQnmZlYeKaye0yJPoKHNc8/s72-c/Umbraco.jpg" height="72" width="72"/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-503467692687064057.post-7903093991322036083</id><published>2011-07-21T20:17:00.022+05:00</published><updated>2011-09-08T11:30:51.873+05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ASP.NET"/><category scheme="http://www.blogger.com/atom/ns#" term="CMS"/><category scheme="http://www.blogger.com/atom/ns#" term="Umbraco"/><title type='text'>Learning Umbraco in a week - Day V</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; font-family: inherit; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; font-family: inherit; text-align: center;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiffvCcUp2w5rdq-5cW0rpGG7YRZ5_KhCFvr1YMbSwYjf3NnAcCxWQEgheWc1DbAifwNEHGHvxRgzJ9abbjga-sZ7gXzEAj9Z7nO5HXJkQ4oL8di9ScIZs8l-RQnmZlYeKaye0yJPoKHNc8/s1600/Umbraco.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiffvCcUp2w5rdq-5cW0rpGG7YRZ5_KhCFvr1YMbSwYjf3NnAcCxWQEgheWc1DbAifwNEHGHvxRgzJ9abbjga-sZ7gXzEAj9Z7nO5HXJkQ4oL8di9ScIZs8l-RQnmZlYeKaye0yJPoKHNc8/s1600/Umbraco.jpg&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; font-family: inherit; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; font-family: inherit; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;This is my fifth post of the &quot;Learning Umbraco in a week&quot; series. The main agenda of this post is listed below. &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: inherit; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul style=&quot;font-family: inherit; text-align: justify;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;What are .Net Macros in Umbraco?&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;How to use .Net User Controls in Umbraco?&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;How to Parametrize a Macro?&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;Communication between Umbraco and User Control &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;How to Debug a Macro in Umbraco?&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;How to Cache Macro result in Umbraco?&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;What are .Net Macros in Umbraco?&lt;/span&gt;&lt;/b&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;.Net Macros are Umbraco&#39;s means of inserting .Net Controls into templates or content, to start. They are also the carrier for custom .NET controls.&lt;/span&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;How to use .Net User Controls in Umbraco?&lt;/span&gt;&lt;/b&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;Using .Net Controls in Umbraco is a two phase process, the phase are listed below.&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;b&gt;Phase 1&lt;/b&gt; - Copying Files&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul style=&quot;font-family: inherit; text-align: justify;&quot;&gt;&lt;/ul&gt;&lt;div style=&quot;font-family: inherit; text-align: justify;&quot;&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;First you need to copy your control. Whether it’s a User Control or a Custom Control you’ll need to copy the assembly (dll) into the /bin folder of your Umbraco installation.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;If it’s a User Control you’ll need to copy the .ascx file as well.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;Your installation already contains a / User Controls folder which is recommend to be used, but you’re free to place them anywhere in your application.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;div style=&quot;font-family: inherit; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: inherit; text-align: justify;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJeZ7hMbL7p0lIMjIozQG0wpBalCZxKJtFmEoBAFYmIjbVKDLsirkLIaz_jUsai6oyeTUZnya1mRFOAAooeZ09bnaw7494xz6OT4G4Pe_9GylckffyXURbDdfC2y4mhZv0C9MPsgssaffd/s1600/Umbraco+User+Controls+folder.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;248&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJeZ7hMbL7p0lIMjIozQG0wpBalCZxKJtFmEoBAFYmIjbVKDLsirkLIaz_jUsai6oyeTUZnya1mRFOAAooeZ09bnaw7494xz6OT4G4Pe_9GylckffyXURbDdfC2y4mhZv0C9MPsgssaffd/s400/Umbraco+User+Controls+folder.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;b&gt;Phase 2&lt;/b&gt; - Registering a .Net User Control as Macro&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;Go to Umbraco Default Page (Admin Page) &amp;gt; Sections &amp;gt; Developer &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;Right click on the Macros folder, and select Create.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;You will receive a dialog where you can specify the name of the Macro to be created.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;Specify the name of the new Macro, check Create Macro. Click Create.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;Now select the macro from the list &quot;Browse usercontrols on server…&quot;.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;You have now created the Macro for rendering the content.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjP2X4rNqWM1znZunK0ZcaW_EF-6lkDQNQSRNeJIXLmTTV4UKmrPp4Az2o5e5PjiQ2ZG009wX7y5g8oWEpOp1drU987bKlqoJSjz4Teg5zHFjBDUPuQUU-l5AhR6OLSqxeKxg1HlAB51W0Y/s1600/Creating+.Net+Macro+in+Umbraco.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;171&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjP2X4rNqWM1znZunK0ZcaW_EF-6lkDQNQSRNeJIXLmTTV4UKmrPp4Az2o5e5PjiQ2ZG009wX7y5g8oWEpOp1drU987bKlqoJSjz4Teg5zHFjBDUPuQUU-l5AhR6OLSqxeKxg1HlAB51W0Y/s400/Creating+.Net+Macro+in+Umbraco.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: inherit; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;How to Parametrize a Macro?&lt;/span&gt;&lt;/b&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;It is possible to pass values from to a Macro in Umbraco. Values can be passed through the following ways.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;ol style=&quot;font-family: inherit; text-align: justify;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Current Page node&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Request collection&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Cookies&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;To pass the Current Page&#39;s property with the alias &quot;bodyText&quot;, the following syntax is used.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;lt;umbraco:macro alias = &quot;RenderProperties&quot; pagevalue = &quot;[#bodyText]&quot; runat = &quot;server&quot;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;Syntax for passing parameters through different ways is as follows.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ol style=&quot;font-family: inherit; text-align: justify;&quot;&gt;&lt;/ol&gt;&lt;div style=&quot;font-family: inherit; text-align: justify;&quot;&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;To insert page value:&amp;nbsp;[#propertyAlias]&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;To insert recursive page value:&amp;nbsp;[$propertyAlias]&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;To insert cookie value:&amp;nbsp;[%cookieValueKey]&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;To insert value from request collection:&amp;nbsp;[@requestValueKey]&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;For passing multiple values&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt; &amp;lt;umbraco:macro value = &quot;[#propertyAlias], [#propertyAlias2], my static string&quot; /&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: inherit; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;Communication between Umbraco and User Control&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: inherit; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Communication between Umbraco and User Control is done by creating Public Properties in your control and match them with Macro elements. Umbraco will even create the UI when inserting the Macro.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: inherit; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: inherit; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;It’s important to note that the Alias of your Macro element matches the Name of your Public Property. Moreover, be aware of case sensitivity.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: inherit; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; font-family: inherit; text-align: center;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivRjaZrxRIygMmH_db23qnILooNS2ilP0kChqqr_9_ZeZcGlXzyThEofE2B4nSDeDRjdYwfn5rkJCdoL9XCxE958AnISA33_iDpIvo5CxB-cw3C6XLThkCXjP0TnCTNPG5lycrlfaKcebd/s1600/Creating+Parameters+in+Umbraco+.Net+Macro.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;135&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivRjaZrxRIygMmH_db23qnILooNS2ilP0kChqqr_9_ZeZcGlXzyThEofE2B4nSDeDRjdYwfn5rkJCdoL9XCxE958AnISA33_iDpIvo5CxB-cw3C6XLThkCXjP0TnCTNPG5lycrlfaKcebd/s400/Creating+Parameters+in+Umbraco+.Net+Macro.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: inherit; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: inherit; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;How to Debug a Macro in Umbraco?&lt;/span&gt;&lt;/b&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;NET controls are wrapped in Umbraco Macros and suddenly is out of the hands of Visual Studio doesn&#39;t mean you cannot use your favorite debugging practices, i.e. you can always utilize the Microsoft Visual Studio &quot;Attach to Process&quot; feature and debug .Net Macro.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;For example, if Umbraco is hosted on Microsoft IIS then you will have to attach to &quot;w3wp.exe&quot;, and if Umbraco is hosted on Microsoft WebMatrix then you will have to attach to &quot;WebMatrix.exe&quot;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigatd_07AnXYpknwIFd6ThnhSmTVO256jypTqqggcFvJXvknfZqP9OIfTWPT2LgA2SaFK_unzfv6kHCsXLS9l4J4tBXtfeJfhjWtGZyt9wXkdN9DVpuWD1R_1iWGh_BCC0ixK5wcyzwrGf/s1600/Debugging+Umbraco+.Net+Macro+using+Visual+Studio+Attach+to+Process.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;267&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigatd_07AnXYpknwIFd6ThnhSmTVO256jypTqqggcFvJXvknfZqP9OIfTWPT2LgA2SaFK_unzfv6kHCsXLS9l4J4tBXtfeJfhjWtGZyt9wXkdN9DVpuWD1R_1iWGh_BCC0ixK5wcyzwrGf/s400/Debugging+Umbraco+.Net+Macro+using+Visual+Studio+Attach+to+Process.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;How to Cache Macro result in Umbraco?&lt;/span&gt;&lt;/b&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;If  you are using a User Control or XSLT, and have the Macro set to cache,  it will cache the results of the control for the determined time.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: inherit; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; font-family: inherit; text-align: center;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJaCJzKzTKFsbiqKlyzAll42VCYErjff1J_NtxR-fjDVfk-THQXdPrQpfQJkGrsmGiALIwfRChQegpzKQLfknxb7Oa6ZVIKn76kMI-J99Ved52_nTK9QQurj6ikJAIszM205jKzxTLH60N/s1600/Caching+Macro+result+in+Umbraco.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;267&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJaCJzKzTKFsbiqKlyzAll42VCYErjff1J_NtxR-fjDVfk-THQXdPrQpfQJkGrsmGiALIwfRChQegpzKQLfknxb7Oa6ZVIKn76kMI-J99Ved52_nTK9QQurj6ikJAIszM205jKzxTLH60N/s400/Caching+Macro+result+in+Umbraco.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: inherit; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: inherit; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;That&#39;s all for this post, in the next post (&lt;/span&gt;&lt;a href=&quot;http://muneeblog.blogspot.com/2011/07/learning-umbraco-in-week-day-vi.html&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;Learning Umbraco in a week - Day VI&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;) we will have a look at the Umbraco API.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://muneeblog.blogspot.com/feeds/7903093991322036083/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://muneeblog.blogspot.com/2011/07/learning-umbraco-in-week-day-v.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/503467692687064057/posts/default/7903093991322036083'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/503467692687064057/posts/default/7903093991322036083'/><link rel='alternate' type='text/html' href='http://muneeblog.blogspot.com/2011/07/learning-umbraco-in-week-day-v.html' title='Learning Umbraco in a week - Day V'/><author><name>Dost</name><uri>http://www.blogger.com/profile/07524982612160818255</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiffvCcUp2w5rdq-5cW0rpGG7YRZ5_KhCFvr1YMbSwYjf3NnAcCxWQEgheWc1DbAifwNEHGHvxRgzJ9abbjga-sZ7gXzEAj9Z7nO5HXJkQ4oL8di9ScIZs8l-RQnmZlYeKaye0yJPoKHNc8/s72-c/Umbraco.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-503467692687064057.post-91196248311113329</id><published>2011-07-21T20:16:00.200+05:00</published><updated>2011-09-17T09:42:33.954+05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="CMS"/><category scheme="http://www.blogger.com/atom/ns#" term="Umbraco"/><category scheme="http://www.blogger.com/atom/ns#" term="XML"/><category scheme="http://www.blogger.com/atom/ns#" term="XPath"/><category scheme="http://www.blogger.com/atom/ns#" term="XSLT"/><title type='text'>Learning Umbraco in a week - Day III</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div style=&quot;font-family: inherit; text-align: justify;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiffvCcUp2w5rdq-5cW0rpGG7YRZ5_KhCFvr1YMbSwYjf3NnAcCxWQEgheWc1DbAifwNEHGHvxRgzJ9abbjga-sZ7gXzEAj9Z7nO5HXJkQ4oL8di9ScIZs8l-RQnmZlYeKaye0yJPoKHNc8/s1600/Umbraco.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiffvCcUp2w5rdq-5cW0rpGG7YRZ5_KhCFvr1YMbSwYjf3NnAcCxWQEgheWc1DbAifwNEHGHvxRgzJ9abbjga-sZ7gXzEAj9Z7nO5HXJkQ4oL8di9ScIZs8l-RQnmZlYeKaye0yJPoKHNc8/s1600/Umbraco.jpg&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;This is my fifth post of the &quot;Learning Umbraco in a week&quot; series. The main agenda of this post is listed below. &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;font-family: inherit; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul style=&quot;font-family: inherit; text-align: justify;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;Introduction to XSLT&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;Introduction to XPath&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;Basic Structure of XSLT&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;How to link XSL Stylesheet to an XML Document&lt;/span&gt;?&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;How to apply XSL Transform?&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;Introduction to XSLT&lt;/b&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;XSLT is a document that is applied programmatically to an XML Document to manipulate the data. However, the structure of XSLT resembles that of XML, and contains specialized tags to perform specific actions to the data.&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;Introduction to XPath&lt;/span&gt;&lt;/b&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;XPath is a language for navigating in XML documents. Moreover, XPath is used by XSLT to find information in an XML document.&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;b&gt;Basic Structure of XSLT&lt;/b&gt;&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;The structure of XSLT resembles that of XML, and contains specialized tags to perform specific actions to the data.&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;1. &lt;b&gt;Top Declarations&lt;/b&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: inherit; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;  &amp;lt;!DOCTYPE xsl:stylesheet [ &amp;lt;!ENTITY nbsp &quot;&amp;amp;#x00A0;&quot;&amp;gt; ]&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsl:stylesheet &amp;nbsp; &amp;nbsp; version=&quot;1.0&quot; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns:xsl=&quot;http://www.w3.org/1999/XSL/Transform&quot; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns:msxml=&quot;urn:schemas-microsoft-com:xslt&quot; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; xmlns:umbraco.library=&quot;urn:umbraco.library&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; exclude-result-prefixes=&quot;msxml umbraco.library&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  &amp;lt;xsl:output method=&quot;xml&quot; omit-xml-declaration=&quot;yes&quot; /&amp;gt;&lt;br /&gt;
&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;2. &lt;b&gt;The XML declaration&lt;/b&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. &lt;b&gt;The root element that declares the document to be an XSL style sheet is &amp;lt;xsl:stylesheet&amp;gt; or &amp;lt;xsl:transform&amp;gt;.&lt;/b&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsl:stylesheet version=&quot;1.0&quot; xmlns:xsl=&quot;http://www.w3.org/1999/XSL/Transform&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; or&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsl:transform version=&quot;1.0&quot; xmlns:xsl=&quot;http://www.w3.org/1999/XSL/Transform&quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. &lt;b&gt;Parameter Declaration&lt;/b&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; This is optional but a very important declaration, as it is the default link to the content published in the site.&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsl:param name=&quot;currentParam&quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5. &lt;b&gt;Template Declaration&lt;/b&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; This is the portion that is responsible for the processing and the output.&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsl:template match=&quot;/&quot;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;  …&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/xsl:template&amp;gt; &lt;br /&gt;
&lt;br /&gt;
6. &lt;b&gt;Closing the Style Sheet&lt;/b&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; We close out the stylesheet, since this is XML, everything must be properly structured.&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/xsl:stylesheet&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; or&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/ xsl:transform &amp;gt;&lt;/span&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;How to link XSL Stylesheet to an XML Document&lt;/span&gt;?&lt;/b&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;To link XSL Stylesheet to an XML Document, add the XSL style sheet reference to the XML document, e.g. &quot;sample.xml&quot;.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;?xml-stylesheet type=&quot;text/xsl&quot; href=“sample.xsl&quot;?&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;How to apply XSL Transform?&lt;/b&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;The most easiest way to apply XSL Transforms over an XML Document or Node is by using the Template Element.&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;A sample XML Document or Node used in the examples.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot;?&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;  &amp;lt;catalog&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;cd&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;title&amp;gt;Empire Burlesque&amp;lt;/title&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;artist&amp;gt;Bob Dylan&amp;lt;/artist&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;country&amp;gt;USA&amp;lt;/country&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;company&amp;gt;Columbia&amp;lt;/company&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;price&amp;gt;10.90&amp;lt;/price&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;year&amp;gt;1985&amp;lt;/year&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/cd&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; . . .&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;  &amp;lt;/catalog&amp;gt;&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;A list of XSL Elements commonly used in Transformations are listed below.&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;1. &lt;b&gt;The &amp;lt;xsl:template&amp;gt; Element&lt;/b&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;A template contains rules to apply when a specified node is matched. The match attribute is used to associate a template with an XML element. The match attribute can also be used to define a template for the entire XML document. The value of the match attribute is an XPath expression (i.e. match=&quot;/&quot; defines the whole document).&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;For example&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsl:template match=&quot;/&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;h2&amp;gt;My CD Collection&amp;lt;/h2&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;table border=&quot;1&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;tr bgcolor=&quot;#9acd32&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;th&amp;gt;Title&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;th&amp;gt;Artist&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/tr&amp;gt;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; …&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/table&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/xsl:template&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;2. &lt;b&gt;The &amp;lt;xsl:value-of&amp;gt; Element&lt;/b&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;The &amp;lt;xsl:value-of&amp;gt; element is used to extract the value of a selected node. The select attribute contains an XPath expression. An XPath expression works like navigating a file system; a forward slash (/) selects subdirectories.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;For example&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsl:template match=&quot;/&quot;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;h2&amp;gt;My CD Collection&amp;lt;/h2&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;table border=&quot;1&quot;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;tr bgcolor=&quot;#9acd32&quot;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;th&amp;gt;Title&amp;lt;/th&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;th&amp;gt;Artist&amp;lt;/th&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/tr&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;tr&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsl:value-of select=&quot;catalog/cd/title&quot;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/td&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsl:value-of select=&quot;catalog/cd/artist&quot;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/td&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/tr&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/table&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;  &amp;lt;/xsl:template&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;3. &lt;b&gt;The &amp;lt;xsl:for-each&amp;gt; Element&lt;/b&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;The &amp;lt;xsl:for-each&amp;gt; element allows you to do looping in XSLT. Filtering the output by adding a criterion to the select attribute in the &amp;lt;xsl:for-each&amp;gt; element.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;xsl:for-each select=&quot;catalog/cd[artist=&#39;Bob Dylan&#39;]&quot;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;Legal filter operators in XSLT are listed below.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;=&amp;nbsp; (equal)&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;!= (not equal)&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;amp;lt; less than&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;amp;gt; greater than&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;For example&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsl:template match=&quot;/&quot;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;h2&amp;gt;My CD Collection&amp;lt;/h2&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;table border=&quot;1&quot;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;tr bgcolor=&quot;#9acd32&quot;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;th&amp;gt;Title&amp;lt;/th&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;th&amp;gt;Artist&amp;lt;/th&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/tr&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsl:for-each select=&quot;catalog/cd&quot;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;tr&amp;gt; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&quot;title&quot;/&amp;gt;&amp;lt;/td&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&quot;artist&quot;/&amp;gt;&amp;lt;/td&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/tr&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/xsl:for-each&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/table&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;  &amp;lt;/xsl:template&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;4. &lt;b&gt;The &amp;lt;xsl:sort&amp;gt; Element&lt;/b&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;The &amp;lt;xsl:sort&amp;gt; element is used to sort the output. To sort the output, simply add an &amp;lt;xsl:sort&amp;gt; element inside the &amp;lt;xsl:for-each&amp;gt; element. The select attribute indicates what XML element to sort on.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;For example&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsl:template match=&quot;/&quot;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;h2&amp;gt;My CD Collection&amp;lt;/h2&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;table border=&quot;1&quot;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;tr bgcolor=&quot;#9acd32&quot;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;th&amp;gt;Title&amp;lt;/th&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;th&amp;gt;Artist&amp;lt;/th&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/tr&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsl:for-each select=&quot;catalog/cd&quot;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsl:sort select=&quot;artist&quot;/&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;tr&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&quot;title&quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&quot;artist&quot;/&amp;gt;&amp;lt;/td&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/tr&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;lt;/xsl:sort&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/xsl:for-each&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/table&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;  &amp;lt;/xsl:template&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;5. &lt;b&gt;The &amp;lt;xsl:if&amp;gt; Element&lt;/b&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;The &amp;lt;xsl:if&amp;gt; element is used to put a conditional test against the content of the XML.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;lt;xsl:if test=&quot;expression&quot;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ...some output if the expression is true...&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt; &amp;lt;/xsl:if&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;The value of the required test attribute contains the expression to be evaluated.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;For example&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsl:template match=&quot;/&quot;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;h2&amp;gt;My CD Collection&amp;lt;/h2&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;table border=&quot;1&quot;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;tr bgcolor=&quot;#9acd32&quot;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;th&amp;gt;Title&amp;lt;/th&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;th&amp;gt;Artist&amp;lt;/th&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;lt;/tr&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsl:for-each select=&quot;catalog/cd&quot;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsl:if test=&quot;price &amp;amp;gt; 10&quot;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;tr&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&quot;title&quot;/&amp;gt;&amp;lt;/td&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&quot;artist&quot;/&amp;gt;&amp;lt;/td&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/tr&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/xsl:if&amp;gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/xsl:for-each&amp;gt; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/table&amp;gt; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;  &amp;lt;/xsl:template&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;6. &lt;b&gt;The &amp;lt;xsl:choose&amp;gt; Element&lt;/b&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;The &amp;lt;xsl:choose&amp;gt; element is used in conjunction with &amp;lt;xsl:when&amp;gt; and &amp;lt;xsl:otherwise&amp;gt; to express multiple conditional tests.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;br /&gt;
&amp;lt;xsl:choose&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsl:when test=&quot;expression&quot;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ... some output ... &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/xsl:when&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsl:otherwise&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ... some output ....&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/xsl:otherwise&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;lt;/xsl:choose&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;The value of the required test attribute contains the expression to be evaluated.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;For example&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsl:template match=&quot;/&quot;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;h2&amp;gt;My CD Collection&amp;lt;/h2&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;table border=&quot;1&quot;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; …&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsl:for-each select=&quot;catalog/cd&quot;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;tr&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&quot;title&quot;/&amp;gt;&amp;lt;/td&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsl:choose&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsl:when test=&quot;price &amp;amp;gt; 10&quot;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td bgcolor=&quot;#ff00ff&quot;&amp;gt;&amp;lt;xsl:value-of select=&quot;artist&quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/xsl:when&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;lt;xsl:otherwise&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&quot;artist&quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;lt;/xsl:otherwise&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;lt;/xsl:choose&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/tr&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/xsl:for-each&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/table&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/xsl:template&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;7. &lt;b&gt;The &amp;lt;xsl:apply-templates&amp;gt; Element&lt;/b&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;The &amp;lt;xsl:apply-templates&amp;gt; element applies a template to the current element or to the current element&#39;s child nodes. If we add a select attribute to the &amp;lt;xsl:apply-templates&amp;gt; element it will process only the child element that matches the value of the attribute. We can use the select attribute to specify the order in which the child nodes are processed.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;For xample&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;xsl:template match=&quot;/&quot;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;html&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;body&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;h2&amp;gt;My CD Collection&amp;lt;/h2&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsl:apply-templates/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/body&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/html&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/xsl:template&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;   &amp;lt;xsl:template match=&quot;cd&quot;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;p&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsl:apply-templates select=&quot;title&quot;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsl:apply-templates select=&quot;artist&quot;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/p&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/xsl:template&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsl:template match=&quot;title&quot;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Title: &amp;lt;span style=&quot;color:#ff0000&quot;&amp;gt;&amp;lt;xsl:value-of select=&quot;.&quot;/&amp;gt;&amp;lt;/span&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;br /&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/xsl:template&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;  &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsl:template match=&quot;artist&quot;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Artist: &amp;lt;span style=&quot;color:#00ff00&quot;&amp;gt; &amp;lt;xsl:value-of select=&quot;.&quot;/&amp;gt;&amp;lt;/span&amp;gt; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;br /&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;  &amp;lt;/xsl:template&amp;gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;That&#39;s all for this post, in the next post (&lt;/span&gt;&lt;a href=&quot;http://muneeblog.blogspot.com/2011/07/learning-umbraco-in-week-day-iv.html&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;Learning Umbraco in a week - Day IV&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;) we will have a look at the XSLT Macros in Umbraco.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://muneeblog.blogspot.com/feeds/91196248311113329/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://muneeblog.blogspot.com/2011/07/learning-umbraco-in-week-day-iii.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/503467692687064057/posts/default/91196248311113329'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/503467692687064057/posts/default/91196248311113329'/><link rel='alternate' type='text/html' href='http://muneeblog.blogspot.com/2011/07/learning-umbraco-in-week-day-iii.html' title='Learning Umbraco in a week - Day III'/><author><name>Dost</name><uri>http://www.blogger.com/profile/07524982612160818255</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiffvCcUp2w5rdq-5cW0rpGG7YRZ5_KhCFvr1YMbSwYjf3NnAcCxWQEgheWc1DbAifwNEHGHvxRgzJ9abbjga-sZ7gXzEAj9Z7nO5HXJkQ4oL8di9ScIZs8l-RQnmZlYeKaye0yJPoKHNc8/s72-c/Umbraco.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-503467692687064057.post-9179237179393821672</id><published>2011-07-21T20:16:00.170+05:00</published><updated>2011-09-08T12:57:52.067+05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ASP.NET"/><category scheme="http://www.blogger.com/atom/ns#" term="CMS"/><category scheme="http://www.blogger.com/atom/ns#" term="Umbraco"/><category scheme="http://www.blogger.com/atom/ns#" term="XML"/><category scheme="http://www.blogger.com/atom/ns#" term="XPath"/><category scheme="http://www.blogger.com/atom/ns#" term="XSLT"/><title type='text'>Learning Umbraco in a week - Day IV</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; font-family: inherit; text-align: center;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiffvCcUp2w5rdq-5cW0rpGG7YRZ5_KhCFvr1YMbSwYjf3NnAcCxWQEgheWc1DbAifwNEHGHvxRgzJ9abbjga-sZ7gXzEAj9Z7nO5HXJkQ4oL8di9ScIZs8l-RQnmZlYeKaye0yJPoKHNc8/s1600/Umbraco.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiffvCcUp2w5rdq-5cW0rpGG7YRZ5_KhCFvr1YMbSwYjf3NnAcCxWQEgheWc1DbAifwNEHGHvxRgzJ9abbjga-sZ7gXzEAj9Z7nO5HXJkQ4oL8di9ScIZs8l-RQnmZlYeKaye0yJPoKHNc8/s1600/Umbraco.jpg&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;h3 style=&quot;font-family: inherit; font-weight: normal; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h3 style=&quot;font-family: inherit; font-weight: normal; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;This is my fourth post of the &quot;Learning Umbraco in a week&quot; series. The main agenda of this post is listed below. &lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;div style=&quot;font-family: inherit; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul style=&quot;font-family: inherit; text-align: justify;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;What are Umbraco Macros?&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;How to use Macros as building blocks in Umbraco?&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;How Umbraco uses XSLT?&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;Creating XSLT Macro&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;Understanding the &quot;currentPage&quot; parameter&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;Understanding the XML Document Schema &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt; (v4.7)&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;XPATH Axes in Umbraco &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;A look at XSLT Macro Snippets&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div style=&quot;font-family: inherit; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;
&lt;b&gt;What are Umbraco Macros?&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: inherit; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Macros  are used to get and display data from Umbraco. For example,  site  maps, navigation, and news lists. This can be done using XSLT.  Umbraco  includes several pre-built XSLT Macros, and you can also create  your  own.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;Umbraco Macros can also be used to wrap .NET user controls or custom controls, to include those in your Web Page.&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;How to use Macros as building blocks in Umbraco?&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: inherit; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;In Umbraco, Macros are small building blocks of functionality that can be dropped into an editor. Each Macro encompasses a piece of functionality, and provides a simple interface to be able to modify the macro to you requirements. Importantly, Macros can be placed in transforms, templates, and rich-text, and the Umbraco GUI provides a button for this in the relevant section.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjV16OV60fOkallVzRKkaaswJ-eahaQk9uwJiVAPX1KHH3yVJiK2P9dY0i1Vo52UGA_wKQIvE77IPQuH7CVXf1QCv-xwnfQfi0OGC3rarBCLK34ibGm2BUZ-nA0qTBRmY8IxhIb5Ly8xpsi/s1600/Macros+-+Building+blocks+in+Umbraco.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;198&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjV16OV60fOkallVzRKkaaswJ-eahaQk9uwJiVAPX1KHH3yVJiK2P9dY0i1Vo52UGA_wKQIvE77IPQuH7CVXf1QCv-xwnfQfi0OGC3rarBCLK34ibGm2BUZ-nA0qTBRmY8IxhIb5Ly8xpsi/s400/Macros+-+Building+blocks+in+Umbraco.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;How Umbraco uses XSLT?&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;Umbraco utilizes XSLT to dynamically render content such as navigational structures, lists, and nearly anything you can dream of. This is accomplished through the use of Macros.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXIq2EGNxg0zVcVGKN7DSVMuHI4VpH3aje7hYkul8to5j8pSZbq1EJnbOQTGr6KVjBSbJXnDhQe87gOUQA0in8U5gTZ3KM17MAvXYpuukozb8XxvrPSO0n2a4Bxwv50KW03vst3uTGmGB-/s1600/Using+XSLT+Macros+in+Umbraco.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;138&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXIq2EGNxg0zVcVGKN7DSVMuHI4VpH3aje7hYkul8to5j8pSZbq1EJnbOQTGr6KVjBSbJXnDhQe87gOUQA0in8U5gTZ3KM17MAvXYpuukozb8XxvrPSO0n2a4Bxwv50KW03vst3uTGmGB-/s400/Using+XSLT+Macros+in+Umbraco.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;Creating XSLT Macro&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;Creating a Macro in Umbraco is very easy.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRfd8a_tS4D-V1_35ZIFJEKzX89AcnXlqZ3NE7aL3ufFwCR2nXrNgIafbGqDANih5o_nfENA4FXNrftvnxjLP8ElOKwgi0X-OUGgFuj0cAnjNZOmIWnkBvQvJHjQXF70yv5aQtFErGLHdP/s1600/Creating+Macros+in+Umbraco.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;193&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRfd8a_tS4D-V1_35ZIFJEKzX89AcnXlqZ3NE7aL3ufFwCR2nXrNgIafbGqDANih5o_nfENA4FXNrftvnxjLP8ElOKwgi0X-OUGgFuj0cAnjNZOmIWnkBvQvJHjQXF70yv5aQtFErGLHdP/s400/Creating+Macros+in+Umbraco.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;For creating an XSLT Macro in Umbraco, follow the steps below.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Go to Umbraco Default Page (Admin Page) &amp;gt; Sections &amp;gt; Developer &amp;gt; XSLT Files.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;Right click on the XSLT Files node, and select create.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;You will receive a dialog where you can specify the name, select an XSLT template, and specify if you want to automatically create the Macro for this template.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;Specify the name of the new XSLT file, check Create Macro, and select a template if you desire. Click Create.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;You have now created the XSLT file and the Macro for rendering the Content.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;br /&gt;
&lt;ol&gt;&lt;/ol&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhckIwggQTSk8z1h4eycBArTO-Is-DJvcriYJ35871iWiVTGETHCwHV0xmHp18c8MFtiuY88VYurCpG02PzjTa5nhB5XIisIIYOrTcw91RLx6T4ojXuIQSW7MwOVywE34GW9BOT3mkmP3-s/s1600/Creating+XSLT+Macro+in+Umbraco.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;135&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhckIwggQTSk8z1h4eycBArTO-Is-DJvcriYJ35871iWiVTGETHCwHV0xmHp18c8MFtiuY88VYurCpG02PzjTa5nhB5XIisIIYOrTcw91RLx6T4ojXuIQSW7MwOVywE34GW9BOT3mkmP3-s/s400/Creating+XSLT+Macro+in+Umbraco.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;Understanding the &quot;currentPage&quot; parameter&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: inherit; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;The currentPage parameter is the complete XML document of the published site, and is how we reference the data stored in each document.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;It is important to note that, by default, the context of the XML document is set to the requested Web Page. The XML document, as mentioned before, contains all the content of the published documents. This data is stored in the XML document structured in the same manner as your tree is laid out in Umbraco. So, documents are nested to create the hierarchy that we can easily use.&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;An Umbraco Node (The &quot;currentPage&quot; parameter) consists of several common pieces of data, and they are listed below.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;ol style=&quot;font-family: inherit; text-align: left;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;id&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt; version&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt; parentID&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt; level&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt; writerID &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;creatorID&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt; nodeType &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;template sortOrder&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt; createDate &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;updateDate&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt; nodeName&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt; urlName &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;writerName &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;creatorName &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;nodeType&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;Alias path&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;div style=&quot;font-family: inherit; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;All these are store as Attributes of the Document (Also called &quot;Node&quot;).&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;Moreover, the Properties that are added to the Document in Umbraco, and what the user edits are referenced as &quot;Data&quot;. Data consists of a couple common pieces of data, which are Attributes on the data elements.&amp;nbsp; These are listed below.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;alias&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt; versionID&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;&lt;div style=&quot;font-family: inherit; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;Understanding the XML Document Schema (v4.7)&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: inherit; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;In Umbraco, each Document Type has it&#39;s own Node using the Document Type alias - &amp;lt;Home&amp;gt; as opposed to the previous convention &amp;lt;node documentTypeAlias=&quot;home&quot;&amp;gt;.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;Each Property has it&#39;s own Node underneath the Document Type node &amp;lt;umbracoNaviHide&amp;gt; as opposed to the previous convention &amp;lt;data alias=&quot;umbracoNaviHide&quot;&amp;gt;.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;It is important to note that, the difference between a Document Type Node and a Property Node is that the Document Type Node has the blank attribute isDoc &amp;lt;home isDoc&quot;&quot;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: inherit; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; font-family: inherit; text-align: center;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiypZIS6ndaO6PVEOwSeP3j_zfSHtLTUPYM9azMuZsehninC3kGYP3B4UMKuhcpG36P2vOXGK_Wm89l0f1IwivUxX0qBQpOjHGsfQZYT8wi8W4VbECMcZGMo03zQ2IfQlHPCWbZwm9x_3gE/s1600/Sample+Umbraco+XML+Document+Schema.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;135&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiypZIS6ndaO6PVEOwSeP3j_zfSHtLTUPYM9azMuZsehninC3kGYP3B4UMKuhcpG36P2vOXGK_Wm89l0f1IwivUxX0qBQpOjHGsfQZYT8wi8W4VbECMcZGMo03zQ2IfQlHPCWbZwm9x_3gE/s400/Sample+Umbraco+XML+Document+Schema.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: inherit; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: inherit; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;XPATH Axes in Umbraco&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;XPATH works on the premise of Axes, which is how the data relates to the Current Node in Umbraco as well.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8jIep3GeC0_bDqjgn6Xm3GoIb5_kCRSqWLqngiN4w_t0vsJOlu_I9u0JBdhKIgICmAOzwGoX00UaOwttMPKKM5TPOJ5rN4lJyY-tfjplnr7H67J09XMceJV4NUiQoLU11POc0-KvfGgq4/s1600/XPATH+Axes.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;306&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8jIep3GeC0_bDqjgn6Xm3GoIb5_kCRSqWLqngiN4w_t0vsJOlu_I9u0JBdhKIgICmAOzwGoX00UaOwttMPKKM5TPOJ5rN4lJyY-tfjplnr7H67J09XMceJV4NUiQoLU11POc0-KvfGgq4/s400/XPATH+Axes.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;b&gt;Self Axis&lt;/b&gt; -&lt;/span&gt; While it is rarely used, the self axis actually returns the node in reference.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $currentPage/self::node&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;b&gt;Child Axis&lt;/b&gt; -&lt;/span&gt; The child axis select the nodes immediately below the node in reference. While the verbose method is rarely used, it is here for reference.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;$currentPage/child::node&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;$currentPage/node&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;b&gt;Parent Axis&lt;/b&gt; - The parent axis allows us to see the node immediately above the node in reference.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;$currentPage/parent::node&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;$currentPage/../&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;b&gt;Descendant Axis&lt;/b&gt; -&lt;/span&gt; The descendant axis retrieves all nodes below the node in reference no matter the depth.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;$currentPage/descendant::node&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;$currentPage//node&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;b&gt;Descendant-or-Self Axis&lt;/b&gt; -&lt;/span&gt; The descendant-or-self axis returns all nodes below the current node, but also returns the node in reference to the command..&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;$currentPage/ descendant-or- self::node&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;b&gt;Ancestor Axis&lt;/b&gt; - The ancestor axis selects all nodes that are ancestors, or the parent, and the parent&#39;s parent, and so on, to the node in reference..&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;$currentPage/ancestor::node&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;b&gt;Ancestor-or-Self Axis&lt;/b&gt; -&lt;/span&gt; The ancestor-or-self axis selects all nodes that are ancestors, or the parent, and the parent&#39;s parent, and so on, including the node in reference.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;$currentPage/ancestor-or-self::node&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;b&gt;Preceding Axis&lt;/b&gt; -&lt;/span&gt; The preceding axis selects all nodes no matter the depth, that are located on parent-level and who are also located before (preceding) its parent of the node in reference.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;$currentPage/preceding::node&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;b&gt;Preceding-Sibling Axis&lt;/b&gt; -&lt;/span&gt; The preceding-sibling axis selects all nodes that are located on the same level who are also located before (preceding) the node in reference..&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;$currentPage/ preceding-sibling ::node&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;b&gt;Following Axis&lt;/b&gt; -&lt;/span&gt; The following axis selects all nodes no matter the depth, that are located on parent-level and who are also located after (following) its parent of the node in reference.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;$currentPage/following::node&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;b&gt;Following-Sibling Axis&lt;/b&gt; -&lt;/span&gt; The following-sibling axis selects all nodes that are located on the same level who are also located before (following) the node in reference.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;$currentPage/following-sibling::node&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;A look at XSLT Macro Snippets&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;For a practical understanding of XSLT Macros, a list of XSLT Macro snippets is provided below.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;1. &lt;b&gt;For each child Node of a specific Document Type Alias&lt;/b&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;lt;xsl:for-each select=&quot;$currentPage/NewsItem&quot;&amp;gt; &amp;lt;/xsl:for-each&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;However for whatever reason if you want to have a document type alias and a document type property with the same alias it would select both.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;lt;xsl:for-each select=&quot;$currentPage/NewsItem [@isDoc]&quot;&amp;gt; &amp;lt;/xsl:for-each&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;2. &lt;b&gt;For each child Node excluding a specific Document Type Alias&lt;/b&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;lt;xsl:for-each select = &quot;$currentPage/*[not(self::NewsItem)]&quot; &amp;gt; &amp;lt;/xsl:for-each&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;3. &lt;b&gt;For each child Node&lt;/b&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;lt;xsl:for-each select=&quot;$currentPage/* [@isDoc]&quot;&amp;gt; &amp;lt;/xsl:for-each&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;This example selects all xml nodes underneath the currentPage item using the * selector.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;However without the [@isDoc] section it would select all nodes including those which are just document type properties.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;4. &lt;b&gt;For each child Node via a selectable source&lt;/b&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;This example shows you how to list childnodes from the nodeID of the contentpicker.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;lt;xsl:param name=&quot;Source&quot; select = &quot;$currentPage/mySource&quot; /&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;lt;xsl:for-each select = &quot;umbraco.library:GetXmlNodeById($Source)/DocType&quot;&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;lt;/xsl:for-each&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;5. &lt;b&gt;For Each node of a specific Document Type Alias&lt;/b&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;lt;xsl:for-each select=&quot;$currentPage/ancestor-or-self::Home//MyDocumentType [@isDoc]&quot;&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;lt;/xsl:for-each&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;This example walks upto the top level node/dcoument type with the alias of Home. So this is a fairly expensive XPath call.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;Then it looks through all the child nodes no matter how deep to find the node (document type) with the alias of MyDocumentType.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;6. &lt;b&gt;Using a Macro parameter to get a Document Type Property&lt;/b&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;lt;xsl:value-of select=&quot;$currentPage/* [name() = $myMacroParameter and not(@isDoc)]&quot; /&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;This example selects the child node where it&#39;s name matches the value in myMacroParameter and checks to see if that it does not have the isDoc attribute.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;7. &lt;b&gt;Using GetMedia Umbraco Method to load Images&lt;/b&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;This code loops through the images in a media folder as specified by a media picker.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;lt;xsl:for-each select=&quot;umbraco.library:GetMedia($images, true())/Image&quot;&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsl:variable name=&quot;picFile&quot; select=&quot;umbracoFile&quot;/&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsl:variable name=&quot;picW&quot; select=&quot;umbracoWidth&quot;/&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsl:variable name=&quot;picH&quot; select=&quot;umbracoHeight&quot;/&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;img &amp;gt; &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsl:attribute name=&quot;src&quot;&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsl:value-of select = &quot;$picFile&quot;/&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/xsl:attribute&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/img&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;lt;/xsl:for-each&amp;gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;That&#39;s all for this post, in the next post (&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;http://muneeblog.blogspot.com/2011/07/learning-umbraco-in-week-day-v.html&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;Learning Umbraco in a week - Day V&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;) we will have a look at .Net Macros in Umbraco.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: inherit; text-align: justify;&quot;&gt;&lt;ul&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://muneeblog.blogspot.com/feeds/9179237179393821672/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://muneeblog.blogspot.com/2011/07/learning-umbraco-in-week-day-iv.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/503467692687064057/posts/default/9179237179393821672'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/503467692687064057/posts/default/9179237179393821672'/><link rel='alternate' type='text/html' href='http://muneeblog.blogspot.com/2011/07/learning-umbraco-in-week-day-iv.html' title='Learning Umbraco in a week - Day IV'/><author><name>Dost</name><uri>http://www.blogger.com/profile/07524982612160818255</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiffvCcUp2w5rdq-5cW0rpGG7YRZ5_KhCFvr1YMbSwYjf3NnAcCxWQEgheWc1DbAifwNEHGHvxRgzJ9abbjga-sZ7gXzEAj9Z7nO5HXJkQ4oL8di9ScIZs8l-RQnmZlYeKaye0yJPoKHNc8/s72-c/Umbraco.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-503467692687064057.post-6865484228647047088</id><published>2011-07-21T20:15:00.192+05:00</published><updated>2011-09-08T11:17:31.464+05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ASP.NET"/><category scheme="http://www.blogger.com/atom/ns#" term="CMS"/><category scheme="http://www.blogger.com/atom/ns#" term="Umbraco"/><title type='text'>Learning Umbraco in a week - Day II</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div style=&quot;font-family: inherit; text-align: justify;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiffvCcUp2w5rdq-5cW0rpGG7YRZ5_KhCFvr1YMbSwYjf3NnAcCxWQEgheWc1DbAifwNEHGHvxRgzJ9abbjga-sZ7gXzEAj9Z7nO5HXJkQ4oL8di9ScIZs8l-RQnmZlYeKaye0yJPoKHNc8/s1600/Umbraco.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiffvCcUp2w5rdq-5cW0rpGG7YRZ5_KhCFvr1YMbSwYjf3NnAcCxWQEgheWc1DbAifwNEHGHvxRgzJ9abbjga-sZ7gXzEAj9Z7nO5HXJkQ4oL8di9ScIZs8l-RQnmZlYeKaye0yJPoKHNc8/s1600/Umbraco.jpg&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;This is my second post of the &quot;Learning Umbraco in a week&quot; series. The main agenda of this post is listed below. &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;Introduction to Umbraco Document Types&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;Creating Umbraco Document Type&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;Setting up Umbraco Document Type&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;Introduction to Umbraco Content &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;How to create a Web Page or Content in Umbraco?&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;How to Templatize&lt;/span&gt; &lt;span class=&quot;Apple-style-span&quot;&gt;Umbraco?&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;Introduction to Umbraco Data Types&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;span style=&quot;font-size: small;&quot;&gt; &lt;/span&gt;&lt;/ul&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;Introduction to Umbraco Document Types&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Before creating a web page in Umbraco, you must first create a   Document Type. Then when you do create the web page, you will specify   which Document Type it is based on.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;Document Types are the heart of the content structure of Umbraco and they define which properties the content elements have in detail and the data that a web page will use. It also defines the interface you will see when creating the web page. A Document Type specifies which kind of data, fields (web controls), and content can go on the web page. Document Type have nothing to do with web page presentation or layout - that is handled in Templates. Document Types can be accessed by following the steps below.&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;Go to  Umbraco Default Page (Admin Page) &amp;gt; Sections &amp;gt; Settings &amp;gt;  Document  Types.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiHglKpUuv0io0CEhIfIqpq5NtiDS4UhPKd750MuPZlpEbJwJGMxfqhRzQHObj42uy-aRzBcBCtvCMsI3SU6keqJ8llcz25CW22m51B-mNGpx3PcmV16kE6eU5Uv2FOZddrvT0UHddJx3i/s1600/Umbraco+Document+Types+Node.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiHglKpUuv0io0CEhIfIqpq5NtiDS4UhPKd750MuPZlpEbJwJGMxfqhRzQHObj42uy-aRzBcBCtvCMsI3SU6keqJ8llcz25CW22m51B-mNGpx3PcmV16kE6eU5Uv2FOZddrvT0UHddJx3i/s400/Umbraco+Document+Types+Node.png&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style=&quot;font-size: small;&quot;&gt; &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;Creating Umbraco Document Type&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt; &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;To create a Document Type in Umbraco follow the steps below.&lt;/span&gt;&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Go to &lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Umbraco Default Page (Admin Page)&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt; &amp;gt; Sections &amp;gt; Settings.&lt;/span&gt;&lt;/li&gt;
&lt;span style=&quot;font-size: small;&quot;&gt; &lt;/span&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Right-click on the Document Types folder and enter any name.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;&lt;div style=&quot;font-family: inherit; text-align: justify;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdgZEHuyFljsthG_7IGPD2QBijtj98olfnVFNVpi6U65nvUQGjPtHgKljcgR0w2Tspa05S_lTRcUruQWA2yrirXjWsXR5oBfWqNwWUFlmcQUkMlABxWQ0GqB2x50QEewtto53fFBCbuVFi/s1600/Creating+Umbraco+Document+Type.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;230&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdgZEHuyFljsthG_7IGPD2QBijtj98olfnVFNVpi6U65nvUQGjPtHgKljcgR0w2Tspa05S_lTRcUruQWA2yrirXjWsXR5oBfWqNwWUFlmcQUkMlABxWQ0GqB2x50QEewtto53fFBCbuVFi/s400/Creating+Umbraco+Document+Type.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;Setting up Umbraco Document Type&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;To set up a Document Type in Umbraco, access the Document Type follow the steps below.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;Go to &lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Umbraco Default Page (Admin Page)&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt; &amp;gt; Sections &amp;gt; Settings&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjE-ImH9HDXxax7nsSTVJBj4QX0eEWJlED8exBjZJuJWY9k1EuxnT1VegHO99kysOiiXrxtnoHmLkkjnxiPMqmau8lrMfhzYviWpCCmcSlVfINpE7X-zFOdNWrWF9xd8ktg0ySKr_sqFpwe/s1600/Umbraco+Document+Type+Tabs.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;243&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjE-ImH9HDXxax7nsSTVJBj4QX0eEWJlED8exBjZJuJWY9k1EuxnT1VegHO99kysOiiXrxtnoHmLkkjnxiPMqmau8lrMfhzYviWpCCmcSlVfINpE7X-zFOdNWrWF9xd8ktg0ySKr_sqFpwe/s400/Umbraco+Document+Type+Tabs.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;In the Main Panel (on  the right in your browser)  you will see the tabs where you define that  type.&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;Info&amp;nbsp;&lt;/b&gt;- Info tab primarily entails the display options for the Document Type, and which templates can be used.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;Structure&amp;nbsp;&lt;/b&gt;- The Structure tab is where you control the hierarchy of your site by creating child documents.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;Generic Properties&lt;/b&gt; - The Generic Properties tab is  where you specify what  kind of content can go on web pages that are  based on this Document  Type. These Properties determine which fields and  controls can appear  on your web page.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;Tabs&lt;/b&gt; - Tabs tab is where you specify  the tabs that will  show up when you create a web page based on this  Document Type. After  you create a tab, you can assign Properties to it  in the Properties  tab.&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-E5TIY0hdM52FK-kz436-_jlLBgWNgYaOKHmWNE6Xjfy2XLp1nY9WRTtrKrwKlgLUC9bwK05fCHtvv-6YJkDcbBAvvOEHttyoiuqxRilBj4vwYoZ2fuVxX5tBxxPHLPfycuK-0OqEYpwR/s1600/Umbraco+Document+Type+Generic+Properties+Tab.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;205&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-E5TIY0hdM52FK-kz436-_jlLBgWNgYaOKHmWNE6Xjfy2XLp1nY9WRTtrKrwKlgLUC9bwK05fCHtvv-6YJkDcbBAvvOEHttyoiuqxRilBj4vwYoZ2fuVxX5tBxxPHLPfycuK-0OqEYpwR/s400/Umbraco+Document+Type+Generic+Properties+Tab.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;font-family: inherit; text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;font-family: inherit; text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;font-family: inherit; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;Introduction to Umbraco Content&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;font-family: inherit; text-align: justify;&quot;&gt;&lt;div style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Content or Web Pages in Umbraco are based on Document Types, i.e. before you can create a Content or Web Page, you must have a Document Type for the   type of page you want. The Content or Web Pages can be accessed by following the steps below.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;Go to &lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Umbraco Default Page (Admin Page)&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt; &amp;gt; Sections &amp;gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt; Content.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJUpdYRPJZEiE5mJ3ao3zEWzCrkP4Z1K_Mn3hyUrJ9P7I2VfmcmYnnSUZBZMq9IgWVejd-E7ON-EWr1zPPuQDfmCVLbybzlTwrHVTfmlqpIQ_YdfVNZ7xP0mAlzvMS9Z6HeatOWptaRO6r/s1600/Umbraco+Web+Pages+or+Content.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;225&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJUpdYRPJZEiE5mJ3ao3zEWzCrkP4Z1K_Mn3hyUrJ9P7I2VfmcmYnnSUZBZMq9IgWVejd-E7ON-EWr1zPPuQDfmCVLbybzlTwrHVTfmlqpIQ_YdfVNZ7xP0mAlzvMS9Z6HeatOWptaRO6r/s400/Umbraco+Web+Pages+or+Content.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;How to create a Web Page or Content in Umbraco?&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-size: small;&quot;&gt; &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;To create a Web Page or Content in Umbraco follow the steps below.&lt;/span&gt;&lt;/div&gt;&lt;ol style=&quot;font-family: inherit;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;If you do not yet have any Web Pages or Content, create one by right-clicking on Content and choosing Create.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Enter a name for the Web Page and click Create. The page  will show up  under the Content folder (refresh your browser page if you  need to).&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Click on your new Web Page. In the right panel, you will  see the tabs  that allow you to set the Content that will appear on the  page.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Enter the Content for the Web Page, by entering Content  in the tabs in  the main panel. If you want your Web Page to contain more  types of Content  than are allowed here, you must edit the Document  Template which is used  by the page. To see which Document Type the page  uses, go to the  Properties tab for the Web Page.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;When you’re done, click the &quot;Save and Publish&quot; button in the tool bar.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;To see how your Web Page looks in Umbraco, go to the  Properties tab for  that page, then click the &quot;Link to Document&quot; url at  the bottom of the  tab.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;&lt;div style=&quot;font-family: inherit; text-align: justify;&quot;&gt;&lt;div style=&quot;font-family: inherit;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZdRUvglkG2IuSuSt76P8_X6hF7PSPDQAXTwhw95rVf5FAGKQfIATLGUWr9LKs2pLrYo8JUOfRATqobLBNxJljzmMmqRknxQuIIBnkIeLTBY1uszb8CwxOy-MDJApiqJ0pYqZY01A2qzJS/s1600/Creating+Umbraco+Web+Pages+or+Content.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;191&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZdRUvglkG2IuSuSt76P8_X6hF7PSPDQAXTwhw95rVf5FAGKQfIATLGUWr9LKs2pLrYo8JUOfRATqobLBNxJljzmMmqRknxQuIIBnkIeLTBY1uszb8CwxOy-MDJApiqJ0pYqZY01A2qzJS/s400/Creating+Umbraco+Web+Pages+or+Content.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;How to Templatize&lt;/span&gt; &lt;/b&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;b&gt;Umbraco? &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Templates  define the layout and presentation of a web page.&amp;nbsp;Templates  are where  you define the design and layout, which CSS to use for the  page, etc. By default, when you create a Document Type, a Template is also created for that Document Type, unless it is not desired. To access Umbraco Templates follow the steps below.&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Go to &lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Umbraco Default Page (Admin Page)&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt; &amp;gt; Sections &amp;gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt; Settings &amp;gt; Templates.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmSAGuKAiTqrUbX96Yv6L-YdaK0picRQ_Y7qlZC2o73ryfU7F7lRdo6DB2e5wy77u-U3qEEFf_atXBiiGuni0rmaENVJEPkAT_sVuM_LEK7C6EFp4zp6j8A8D1GC2bvKq9Rk3PdWSSPNVf/s1600/Umbraco+Templates.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmSAGuKAiTqrUbX96Yv6L-YdaK0picRQ_Y7qlZC2o73ryfU7F7lRdo6DB2e5wy77u-U3qEEFf_atXBiiGuni0rmaENVJEPkAT_sVuM_LEK7C6EFp4zp6j8A8D1GC2bvKq9Rk3PdWSSPNVf/s400/Umbraco+Templates.png&quot; width=&quot;235&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;Templates  are actually ASP .NET Master Pages. Moreover, nesting of Templates is same is nesting Master Pages in ASP .NET, i.e. Templates can be based on other templates.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGdaQTtdiP0DStNEn31Z5zucTtxxHezifoQgYzoZjRAwVDtxZI0cmnWWSur5Dii2EUzX4Axf41lr9LFNeTZmUfC1sA2cKRLah52RuiKbL8f8uutYppUqAD93SBx-jOjsCerOpxl5JbTYrS/s1600/Umbraco+Master+Pages+or+Templates.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;173&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGdaQTtdiP0DStNEn31Z5zucTtxxHezifoQgYzoZjRAwVDtxZI0cmnWWSur5Dii2EUzX4Axf41lr9LFNeTZmUfC1sA2cKRLah52RuiKbL8f8uutYppUqAD93SBx-jOjsCerOpxl5JbTYrS/s400/Umbraco+Master+Pages+or+Templates.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;Introduction to Umbraco Data Types&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;A Data Type in Umbraco is an editor type associated to the Property. Data Types are not the same as those in computer programming.&lt;br /&gt;
&lt;br /&gt;
A common Type used is &quot;Rich Text Editor&quot;, selecting this type will display a rich text editing control to the user during content editing of this Property.&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;To access Umbraco Data Types follow the steps below.&lt;/span&gt; &lt;br /&gt;
&lt;div style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Go to &lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Umbraco Default Page (Admin Page)&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt; &amp;gt; Sections &amp;gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt; Developer &amp;gt; Data Types.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8j7kY-f3sAIAIx9ca3b8Brgk71KK7AElkYc6x5rlLSq-hoFTeWdLE2fWyW45Rk3HvAlJqufhYYXrpGq57_SYXuna9kUC7LNugmuJvgHk1YUwp-gQAINHyy7boQ35bRM6wLIGjvJGhW0r8/s1600/Umbraco+Data+Types.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8j7kY-f3sAIAIx9ca3b8Brgk71KK7AElkYc6x5rlLSq-hoFTeWdLE2fWyW45Rk3HvAlJqufhYYXrpGq57_SYXuna9kUC7LNugmuJvgHk1YUwp-gQAINHyy7boQ35bRM6wLIGjvJGhW0r8/s400/Umbraco+Data+Types.png&quot; width=&quot;235&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;That&#39;s all for this post, in the next post (&lt;/span&gt;&lt;a href=&quot;http://muneeblog.blogspot.com/2011/07/learning-umbraco-in-week-day-iii.html&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;Learning Umbraco in a week - Day III&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;) we will go through XSLT &amp;amp; XPATH.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://muneeblog.blogspot.com/feeds/6865484228647047088/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://muneeblog.blogspot.com/2011/07/learning-umbraco-in-week-day-ii.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/503467692687064057/posts/default/6865484228647047088'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/503467692687064057/posts/default/6865484228647047088'/><link rel='alternate' type='text/html' href='http://muneeblog.blogspot.com/2011/07/learning-umbraco-in-week-day-ii.html' title='Learning Umbraco in a week - Day II'/><author><name>Dost</name><uri>http://www.blogger.com/profile/07524982612160818255</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiffvCcUp2w5rdq-5cW0rpGG7YRZ5_KhCFvr1YMbSwYjf3NnAcCxWQEgheWc1DbAifwNEHGHvxRgzJ9abbjga-sZ7gXzEAj9Z7nO5HXJkQ4oL8di9ScIZs8l-RQnmZlYeKaye0yJPoKHNc8/s72-c/Umbraco.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-503467692687064057.post-4753815078730053485</id><published>2011-07-21T20:14:00.037+05:00</published><updated>2011-09-08T11:17:31.465+05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ASP.NET"/><category scheme="http://www.blogger.com/atom/ns#" term="CMS"/><category scheme="http://www.blogger.com/atom/ns#" term="Umbraco"/><title type='text'>Learning Umbraco in a week - Day I</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div style=&quot;font-family: inherit; text-align: justify;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhP5fu-wG5gUadQ2DQ5CU4koaicMjfDyzSzD5_z3saBqCdb3T_3_Yq49GvCJohx13SZVm-0p_8-LnEu356qZ772FK5UGqDD542YwmGnaZwMqqFYHwpipH8jA9nZwqPMn5Zf_j8n3IbhjK5x/s1600/Umbraco.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhP5fu-wG5gUadQ2DQ5CU4koaicMjfDyzSzD5_z3saBqCdb3T_3_Yq49GvCJohx13SZVm-0p_8-LnEu356qZ772FK5UGqDD542YwmGnaZwMqqFYHwpipH8jA9nZwqPMn5Zf_j8n3IbhjK5x/s1600/Umbraco.jpg&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;This is my first post of the &quot;Learning Umbraco in a week&quot; series. The main agenda of this post is listed below. &lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: inherit; text-align: justify;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt; &lt;/span&gt;&lt;/div&gt;&lt;ul style=&quot;font-family: inherit; text-align: left;&quot;&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;What is a Content Management System?&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;What is a Web Content Management System?&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;A look at some famous Content&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Management&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&amp;nbsp;Systems&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;Introduction to Umbraco&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;History of Umbraco &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;Why Umbraco?&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;A look at some famous Umbraco based web sites&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;How to install Umbraco?&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;A look at Umbraco root directory&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;A look at Umbraco Content Management System&lt;br /&gt;
&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div style=&quot;font-family: inherit; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;What is a Content Management System?&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: inherit; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;A content management system (CMS) is the collection of procedures used to manage work flow in a collaborative environment.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;Below are some benefits of a typical content management system.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: inherit; text-align: justify;&quot;&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;Low cost&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;Easy customization&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;Easy to use&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;Workflow management&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;div style=&quot;font-family: inherit; text-align: justify;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;Below are some of the overheads, one has to bear by having a content management system.&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;Cost of implementation&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;Cost of maintenance&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;Storage volume&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;Latency issues&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;Tool Mixing&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;b&gt;What is a Web Content Management System&lt;/b&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;A web content management system (WCMS) is a software system that provides website authoring, collaboration, and administration tools designed to allow users with little knowledge of web programming languages or markup languages to create and manage website content with relative ease.&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;A look at some famous Content&amp;nbsp;&lt;/span&gt;Management&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;Systems.&lt;/span&gt;&lt;/b&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;This is a list of famous content management systems that are used to organize and facilitate collaborative content creation. Many of them are built on top of separate content management frameworks.&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;Below is a list of few proprietary content management systems available.&lt;/span&gt;&lt;/div&gt;&lt;ul style=&quot;font-family: inherit; text-align: left;&quot;&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;SharePoint Server (MOSS)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;DotNetNuke Professional Edition&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;Oracle ECM Suite&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;IBM Enterprise Content Management&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;Sitecore Professional Edition&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;OpenText Web Experience Management&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;Day Communiqué WCM&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;EMC Documentum ECM&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;Contegro&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div style=&quot;font-family: inherit; text-align: justify;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: inherit; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;Below is a list of few open source content management systems available.&lt;/span&gt;&lt;/div&gt;&lt;ul style=&quot;font-family: inherit; text-align: left;&quot;&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;Liferay&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;Composite C1&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;DotNetNuke Community Edition&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;mojoPortal&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;Umbraco&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;Joomla!&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;Drupal&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;SilverStripe&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;eZ Publish&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;Geeklog&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div style=&quot;font-family: inherit; text-align: justify;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: inherit; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;b&gt;Introduction to Umbraco&lt;/b&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;Umbraco is an open source content management system for publishing content on the web and intranets.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;It is written in the Microsoft .Net (C#) and off course deployed on a Microsoft based infrastructure (i.e. MS Windows, MS IIS etc).&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;History of Umbraco&lt;/b&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;Umbraco was developed by Niels Hartvig in 2000 and released as open source software in 2004.&amp;nbsp;In 2009, CMS Wire described it as one of the leading .NET-based open source CMS systems. This proved to be the turning point in Umbraco CMS history, and In 2010, with thousand downloads a day, Umbraco was in the Top five most popular downloads via the Microsoft Web Platform Installer.&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;b&gt;Why Umbraco?&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;Umbraco is the choice of many organizations because of&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;b&gt; &lt;/b&gt;the following benefits.&lt;/span&gt;&lt;/div&gt;&lt;ul style=&quot;font-family: inherit; text-align: left;&quot;&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;Free&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;Open source&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;Easy to learn and use for content writers&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;Built on .Net&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;Supports XML &amp;amp; XSLT for Web Developers&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;Supports ASP .Net development standards&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;Easy to extend&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;Easy to integrate with other systems&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;Strong support community&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div style=&quot;font-family: inherit; text-align: justify;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: inherit; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;A look at some famous Umbraco based web sites.&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;Below is a list of some famous Umbraco based content management systems deployments.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: inherit; text-align: justify;&quot;&gt;&lt;ul&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;http://www.warnerbros.com.au/&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;http://www.asp.net/&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;http://computerfriend.dk/&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;http://www.vogue.co.uk/&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;http://www.heinz.com/&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;http://www.sandisk.com/&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;http://www.redroof.com/&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;div style=&quot;font-family: inherit; text-align: justify;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: inherit; text-align: justify;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: inherit; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;How to install Umbraco?&lt;/span&gt;&lt;/b&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;The easiest and recommended for installing Umbraco on IIS 7, is by using the Microsoft Web Platform Installer. The Web Platform Installer can be found at the following location: &lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: inherit; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;a gallery=&quot;&quot; href=&quot;http://www.blogger.com/post-edit.g?blogID=503467692687064057&amp;amp;postID=4753815078730053485&amp;amp;from=pencil&quot; http:=&quot;&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot; umbraco.aspx&quot;=&quot;&quot; web=&quot;&quot; www.microsoft.com=&quot;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgpoKZM9ZXBbn26FR8vyiVrXA6DJwE3WJv5tr2aWvl5sFh7HWJcHIr46MY0hpKZNKGVjiS2LuDO76CV9yTR2PjldNxmaWf-ROpJRvl3dcr0y5nBMVjQtrSBBIQ0XQ-a6cGf00R5TZLMQue/s1600/Umbraco+CMS+Web+Platform+Installer.png&quot; /&gt;&lt;br /&gt;
http://www.microsoft.com/web/gallery/Umbraco.aspx&lt;br /&gt;
&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;font-family: inherit; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;A look at Umbraco root directory&lt;/span&gt;&lt;/b&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;Unlike other content management systems, the Umbraco root directory looks like a typical ASP.NET application root directory. And most of the content created in Umbraco, actually appear as physical files, rather than records in the database. For example, templates or master pages will appear in the masterpage folder, and stylesheets will appear in the css folder.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: inherit; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: inherit; text-align: justify;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_8DTh1d6-q2HlmiIIbRRK-tW6Y6KjcEpsXG2stpyl67VlM1vfBwqMerz_SNuzH2NYJTsGqasAyEiLzbdg5tsyj8wpJ5_pfsDBFox2Bo-479fhTHVeJpxQvVopa5MmmUCHapdVR0giPyU8/s1600/Umbraco+root+directory.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;310&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_8DTh1d6-q2HlmiIIbRRK-tW6Y6KjcEpsXG2stpyl67VlM1vfBwqMerz_SNuzH2NYJTsGqasAyEiLzbdg5tsyj8wpJ5_pfsDBFox2Bo-479fhTHVeJpxQvVopa5MmmUCHapdVR0giPyU8/s400/Umbraco+root+directory.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;Below is a list of most commonly used folders in the Umbraco root directory.&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;b&gt;Umbraco&lt;/b&gt; - This folder contains all the Umbraco CMS files.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;b&gt;Master Pages&lt;/b&gt; - &lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;This folder &lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;contains the Templates or Master Pages created in Umbraco.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;b&gt;CSS &lt;/b&gt;- &lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;This folder &lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;contains the Stylesheets created and used in Umbraco.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;b&gt;Scripts &lt;/b&gt;- &lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;This folder &lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;contains the JavaScript files created in Umbraco.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;b&gt;XSLT &lt;/b&gt;- This folder contains the XSLT Macro files created in Umbraco.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;b&gt;User Controls&lt;/b&gt; - This folder contains the User Control Macro files created in Umbraco.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;b&gt;Config &lt;/b&gt;- This folder contains the Umbraco specific Configuration Files.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;b&gt;Application Data&lt;/b&gt; - This folder contains the Umbraco specific Data Files.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;b&gt;Application Code&lt;/b&gt; - This folder may contain the Code Behind Files referred in User Control Macros or Templates.&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;div style=&quot;font-family: inherit; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;A look at Umbraco Content Management System&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: inherit; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Once Umbraco is installed, you will probably be redirected at the Umbraco default page.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: inherit; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyR0F4hWQR_-iMo28VlM45CKsswom0cna3TtEqTkmfwk1koUE8gFrIW_EoG6ITmm3PxdEdPpVlEDo0myVQTRkFOgLNf73gHi2oVPPl1VemrLPs1b3A26_w-jaWAKgKSSN7iqpyyJAkRZu3/s1600/Umbraco+default+page.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;227&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyR0F4hWQR_-iMo28VlM45CKsswom0cna3TtEqTkmfwk1koUE8gFrIW_EoG6ITmm3PxdEdPpVlEDo0myVQTRkFOgLNf73gHi2oVPPl1VemrLPs1b3A26_w-jaWAKgKSSN7iqpyyJAkRZu3/s400/Umbraco+default+page.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;However, if you are not on the Umbraco Default Page, please point your browser to  &lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;a href=&quot;http://www.blogger.com/&quot;&gt;http://&amp;lt;YourSite&amp;gt;/umbraco/umbraco.aspx&lt;/a&gt;. If you are not logged in, you will first be redirected to the Umbraco login page.&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjsa3oltAxLDqpgtnf7tp8dq2XnTRl19GpYp4D2G51NUDzncouk7IPKxLV26mVo6uzUrRN54puQlVQ5UG3HBGV8K1QrirDyo6UYs13i3J6liMMwht5D0qW9z_b4ooEyx02VSWonte-Jtr3/s1600/Umbraco+login+page.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;304&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjsa3oltAxLDqpgtnf7tp8dq2XnTRl19GpYp4D2G51NUDzncouk7IPKxLV26mVo6uzUrRN54puQlVQ5UG3HBGV8K1QrirDyo6UYs13i3J6liMMwht5D0qW9z_b4ooEyx02VSWonte-Jtr3/s320/Umbraco+login+page.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style=&quot;font-size: small;&quot;&gt;The Umbraco default page has three main panes, which are listed below.&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;Content Listing &lt;/b&gt;(Top Left)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;Sections Listing &lt;/b&gt;(Bottom Left)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;Main Panel&lt;/b&gt; (Large Panel on the Right)&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;The Content panel on a default empty install will show a only Content folder with the Recycle Bin folder under it.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;Below is a list of Umbraco Sections.&lt;/span&gt;&lt;/div&gt;&lt;ul style=&quot;font-family: inherit; text-align: justify;&quot;&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;b&gt;Content &lt;/b&gt;- This section is shown by default, and is used for creating and managing the content in Umbraco.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;b&gt;Media &lt;/b&gt;- This section is used for managing media files / items in Umbraco.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;b&gt;Users &lt;/b&gt;- This section is used for managing Umbraco users, user types, user permissions related to content creation and management.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;b&gt;Settings &lt;/b&gt;- This section is used for controlling the Umbraco settings related to content management.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;b&gt;Developer &lt;/b&gt;- This section provides useful features for techies, as it is related to development of portal in Umbraco.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;b&gt;Members &lt;/b&gt;- This section is used for creating and managing portal members, member groups and member types in Umbraco.&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;That&#39;s all for this post, in the next post (&lt;/span&gt;&lt;a href=&quot;http://muneeblog.blogspot.com/2011/07/learning-umbraco-in-week-day-ii.html&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;Learning Umbraco in a week - Day II&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;) we will go through the Umbraco CMS.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;font-family: inherit; text-align: justify;&quot;&gt;&lt;/ul&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://muneeblog.blogspot.com/feeds/4753815078730053485/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://muneeblog.blogspot.com/2011/07/learning-umbraco-in-week-day-i.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/503467692687064057/posts/default/4753815078730053485'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/503467692687064057/posts/default/4753815078730053485'/><link rel='alternate' type='text/html' href='http://muneeblog.blogspot.com/2011/07/learning-umbraco-in-week-day-i.html' title='Learning Umbraco in a week - Day I'/><author><name>Dost</name><uri>http://www.blogger.com/profile/07524982612160818255</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhP5fu-wG5gUadQ2DQ5CU4koaicMjfDyzSzD5_z3saBqCdb3T_3_Yq49GvCJohx13SZVm-0p_8-LnEu356qZ772FK5UGqDD542YwmGnaZwMqqFYHwpipH8jA9nZwqPMn5Zf_j8n3IbhjK5x/s72-c/Umbraco.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-503467692687064057.post-2231905590434552223</id><published>2011-06-14T11:03:00.002+05:00</published><updated>2011-09-08T11:32:30.130+05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ASP.NET"/><category scheme="http://www.blogger.com/atom/ns#" term="CMS"/><category scheme="http://www.blogger.com/atom/ns#" term="Umbraco"/><title type='text'>Running Umbraco on .Net Framework 4.0</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div style=&quot;font-family: inherit; text-align: justify;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiI10z0IPvTGkJoH3B0lJyC4V0uYqXio3EBFdz0qao01HSEI2u-wSPLZVN7cJ1eceVZlX2TJHdec6lYyshNylQ1kHtAJkmxpdRper3FHIVpLUAwuxrnKyt5RrdNnvKfeRmCWPLKudmDcPby/s1600/Umbraco.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiI10z0IPvTGkJoH3B0lJyC4V0uYqXio3EBFdz0qao01HSEI2u-wSPLZVN7cJ1eceVZlX2TJHdec6lYyshNylQ1kHtAJkmxpdRper3FHIVpLUAwuxrnKyt5RrdNnvKfeRmCWPLKudmDcPby/s1600/Umbraco.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;This post is about an unusual  configuration issue that, many Umbraco developers face when they first  try to upgrade their Umbraco installation to .Net Framework 4.0. It is  unusual in a sense that over the last few framework releases there has  been a norm that the web.config schemas were backward compatible and it  was never required to update the configurations during an upgrade.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: inherit; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: inherit; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;.Net  Framework 4.0 has been launched with a new machine.config file, and off  course it doesn&#39;t override the earlier machine.config in use by  previous frameworks. The following changes have been done in the new  machine.config:&lt;/span&gt;&lt;/div&gt;&lt;ul style=&quot;font-family: inherit; text-align: justify;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;ASP .NET Tag Sections &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;ASP .NET AJAX &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;ASP .NET Dynamic Data &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;ASP .NET Routing &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;ASP .NET Chart Control&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div style=&quot;font-family: inherit; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;So,  we will need to omit all the above mentioned items form our web.config,  so that Umbraco starts working with .Net Framework 4.0.&lt;/span&gt;&lt;/div&gt;&lt;ol style=&quot;font-family: inherit;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Set the web site&#39;s&amp;nbsp; Application Pool to ASP.NET v4.0.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Remove/Comment the &lt;i&gt;sectionGroup&lt;/i&gt; named &quot;system.web.extensions&quot; under &lt;i&gt;configSections&lt;/i&gt; tag. &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Change the &lt;i&gt;compilation&lt;/i&gt; tag and set the &lt;i&gt;targetFramework&lt;/i&gt; attribute to 4.0&lt;/span&gt;&lt;span class=&quot;tag&quot; style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;span class=&quot;tag&quot; style=&quot;font-size: small;&quot;&gt;&amp;lt;compilation&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;font-size: small;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;atn&quot; style=&quot;font-size: small;&quot;&gt;defaultLanguage&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;font-size: small;&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;atv&quot; style=&quot;font-size: small;&quot;&gt;&quot;c#&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;font-size: small;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;atn&quot; style=&quot;font-size: small;&quot;&gt;debug&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;font-size: small;&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;atv&quot; style=&quot;font-size: small;&quot;&gt;&quot;true&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;font-size: small;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;atn&quot; style=&quot;font-size: small;&quot;&gt;batch&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;font-size: small;&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;atv&quot; style=&quot;font-size: small;&quot;&gt;&quot;false&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;font-size: small;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;atn&quot; style=&quot;font-size: small;&quot;&gt;targetFramework&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;font-size: small;&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;atv&quot; style=&quot;font-size: small;&quot;&gt;&quot;4.0&quot;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Delete the whole &lt;i&gt;assemblies &lt;/i&gt;section below that &lt;i&gt;compilation &lt;/i&gt;tag.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Remove/Comment the controls having &quot;asp&quot; tagPrefix, under &lt;i&gt;system.web/pages/controls&lt;/i&gt; tag.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Remove/Comment all handlers and modules specific to &quot;ASPNETAJAX&quot;, under &lt;i&gt;system.webServer&lt;/i&gt; and &lt;i&gt;system.web&lt;/i&gt; tags.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Most importantly, search  for &quot;Version=3.5.0.0&quot; text in you web.config and replace it with &quot;Version=4.0.0.0&quot;.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Finally, make sure you have the  &quot;Microsoft.Scripting.ExtensionAttribute.dll&quot; in Umbraco bin directory,  i.e. most probably at &quot;c:\inetpub\wwwroot\bin&quot;.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;div style=&quot;font-family: inherit; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;That&#39;s all folks, enjoy Umbraco development on .Net Framework 4.0.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://muneeblog.blogspot.com/feeds/2231905590434552223/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://muneeblog.blogspot.com/2011/06/running-umbraco-on-net-framework-40.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/503467692687064057/posts/default/2231905590434552223'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/503467692687064057/posts/default/2231905590434552223'/><link rel='alternate' type='text/html' href='http://muneeblog.blogspot.com/2011/06/running-umbraco-on-net-framework-40.html' title='Running Umbraco on .Net Framework 4.0'/><author><name>Dost</name><uri>http://www.blogger.com/profile/07524982612160818255</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiI10z0IPvTGkJoH3B0lJyC4V0uYqXio3EBFdz0qao01HSEI2u-wSPLZVN7cJ1eceVZlX2TJHdec6lYyshNylQ1kHtAJkmxpdRper3FHIVpLUAwuxrnKyt5RrdNnvKfeRmCWPLKudmDcPby/s72-c/Umbraco.jpg" height="72" width="72"/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-503467692687064057.post-6818533611840566373</id><published>2011-02-19T22:59:00.000+05:00</published><updated>2011-07-21T17:55:34.650+05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Visual C++"/><title type='text'>CTrayIcon - System Tray Icon Wrapper</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;color: #666666; font-family: inherit; line-height: 14.4pt; text-align: justify;&quot;&gt;&lt;a href=&quot;http://www.blogger.com/post-edit.g?blogID=503467692687064057&amp;amp;postID=6818533611840566373#Main&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;img alt=&quot;Click here to Skip to main content&quot; border=&quot;0&quot; height=&quot;1&quot; src=&quot;file:///C:/Users/MUNEEB%7E1.AHM/AppData/Local/Temp/msohtmlclip1/01/clip_image001.gif&quot; width=&quot;1&quot; /&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;span style=&quot;display: none;&quot;&gt;&lt;input name=&quot;__VIEWSTATE&quot; type=&quot;hidden&quot; value=&quot;/wEPDwUKMTAyMTMzODg1Ng9kFgJmD2QWAgIED2QWCAIRD2QWAgIBD2QWBmYPDxYCHgtOYXZpZ2F0ZVVybAUxL3NjcmlwdC9BcnRpY2xlcy9BZG1pbi9FZGl0b3JDaG9pY2UuYXNweD9haWQ9ODA1OWRkAgIPDxYCHwAFNy9zY3JpcHQvQXdhcmRzL0FkbWluL0F3YXJkT2JqZWN0LmFzcHg/b2JpZD04MDU5Jm9idGlkPTJkZAIKDw8WAh8ABS4vc2NyaXB0L0FydGljbGVzL0FkbWluL1F1ZXVlRWRpdC5hc3B4P2FpZD04MDU5ZGQCEw9kFgICAQ9kFgICAQ9kFgZmDw8WAh8ABSYvS0Ivc2hlbGwvQ1RyYXlJY29uLmFzcHg/ZGlzcGxheT1QcmludGRkAgQPFgIeCWlubmVyaHRtbAUCMzlkAgUPDxYCHwAFJS9zY3JpcHQvQXJ0aWNsZXMvUmVwb3J0LmFzcHg/YWlkPTgwNTlkZAIVD2QWAgIJD2QWCAIDDxYCHgZhY3Rpb24FGC9LQi9zaGVsbC9DVHJheUljb24uYXNweBYEAgMPZBYCAgIPZBYCAgEPEGRkFgBkAgkPFgIeC18hSXRlbUNvdW50AgFkAgsPDxYCHwAFGC9LQi9zaGVsbC9DVHJheUljb24uYXNweGRkAhMPFgIeBFRleHQFCjYgSnVuIDIwMDdkAhcPFgIfBAUjQ29weXJpZ2h0IDIwMDQgYnkgTXVuZWViIEFobWVkIEF3YW5kAhcPZBYCAgUPDxYCHgdWaXNpYmxlaGRkZJfZPyAlxu9Kj64rF83nk9b5/7v3&quot; /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul style=&quot;color: #666666; font-family: inherit; text-align: justify;&quot; type=&quot;disc&quot;&gt;&lt;li class=&quot;MsoNormal&quot; style=&quot;background: none repeat scroll 0% 0% white; line-height: 14.4pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;a href=&quot;http://www.codeproject.com/KB/shell/CTrayIcon/CTrayIcon_Demo.zip&quot;&gt;Download demo project - 8.3      Kb &lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;background: none repeat scroll 0% 0% white; line-height: 14.4pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;a href=&quot;http://www.codeproject.com/KB/shell/CTrayIcon/CTrayIcon_Src.zip&quot;&gt;Download source - 56.8 Kb&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAzOYoQSP4HwZdLv3qceEgLxZ3-Nk2T4l-XcAv_CkfbFq1SnETUtIqPhH1crwRM_ZRgfaZMsLctJlHozYYCbWFjV20SxEENUlKIU_nMfyOytGoMY24-z7NcNDrPGKfKctCQNmKj_Kd9Lsz/s1600/CTrayIcon_1.gif&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;iframe align=&quot;left&quot; frameborder=&quot;0&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;http://rcm.amazon.com/e/cm?t=widgetsamazon-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=bpl&amp;amp;asins=B003H4BWW6&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr&quot; style=&quot;height: 245px; padding-right: 10px; padding-top: 5px; width: 131px;&quot;&gt;&lt;/iframe&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAzOYoQSP4HwZdLv3qceEgLxZ3-Nk2T4l-XcAv_CkfbFq1SnETUtIqPhH1crwRM_ZRgfaZMsLctJlHozYYCbWFjV20SxEENUlKIU_nMfyOytGoMY24-z7NcNDrPGKfKctCQNmKj_Kd9Lsz/s320/CTrayIcon_1.gif&quot; width=&quot;282&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;&lt;/div&gt;&lt;h2 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;Introduction&lt;/h2&gt;&lt;div style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;The system tray icon notification area -- or &quot;systray&quot; or &quot;taskbar notification system area&quot; -- is a section of the taskbars in the Microsoft Windows desktop user interface. This section displays the clock and the icons of certain programs so that a user is continually reminded that they are there and can easily click one of them. Unfortunately, MFC does not contain a class to wrap system tray functionality. So, I decided to write one and put it up for public use.&lt;/div&gt;&lt;h2 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;&amp;nbsp;&lt;/h2&gt;&lt;h2 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;Background&lt;/h2&gt;&lt;div style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;The system tray is a section located at the one end of the taskbar in Windows 9x, and NT (Family). Icons that are often installed in the system tray include the volume control for sound, anti-virus software, and a system resources indicator. When more icons are installed in the system tray than can fit in the space allotted, the system tray becomes horizontally scrollable or expandable. To interact with a program in the system tray, you select an icon with your mouse and double-click or right-click the icon. When you minimize the program after using it, it shrinks back into the system tray instead of into the main part of the taskbar.&lt;/div&gt;&lt;div style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;&lt;br /&gt;
What makes a system tray icon special is that, when installed, it can have a customized message appear when the mouse is hovering over it. The menu that appears when you right-click it can be customized and the action that occurs when you double-click it can also be customized. For example, the double-click action for Internet Explorer could be to launch (start, or open a window for) the program, but the double-click action for a desktop icon could be to &quot;View desktop,&quot; i.e. remove the active windows and show the underlying desktop.&lt;/div&gt;&lt;div style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;&lt;br /&gt;
An icon can be placed in the system tray when a program is installed by making an entry in the system registry. It can also be placed later by creating a shortcut to a program and dragging the shortcut icon to the system tray. An icon can be removed by deleting the registry entry or by right-clicking it and selecting Delete on the pop-up menu. The clock is removed by deselecting the show clock option in the taskbar Properties.&lt;/div&gt;&lt;h2 style=&quot;color: #666666; font-family: inherit; text-align: justify;&quot;&gt;&amp;nbsp;&lt;/h2&gt;&lt;h2 style=&quot;color: #666666; font-family: inherit; text-align: justify;&quot;&gt;About CTrayIcon&lt;/h2&gt;&lt;table border=&quot;0&quot; style=&quot;color: #666666; font-family: inherit; margin-left: 0px; margin-right: 0px; text-align: left;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td align=&quot;left&quot; height=&quot;130&quot; width=&quot;96%&quot;&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;img align=&quot;left&quot; alt=&quot;JTray Menu Screenshot - Metal Menu&quot; border=&quot;0&quot; height=&quot;96&quot; name=&quot;Image1&quot; src=&quot;http://www.codeproject.com/KB/shell/CTrayIcon/CTrayIcon_2.jpg&quot; width=&quot;232&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CTrayIcon  lets VC++ developers add icons to the Windows system tray. This quickly  makes any VC++ application more attractive and intuitive to Windows  users.&lt;/div&gt;&lt;br /&gt;
CTrayIcon can display pop-ups. This allows developers to modify the look and feel and add powerful menu items.&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt; &lt;/table&gt;&lt;div style=&quot;color: #666666; font-family: inherit; text-align: justify;&quot;&gt;&lt;a href=&quot;http://www.codeproject.com/KB/shell/CTrayIcon/CTrayIcon_3.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img align=&quot;right&quot; alt=&quot;JTray Balloon Message Screenshot&quot; border=&quot;0&quot; height=&quot;74&quot; src=&quot;http://www.codeproject.com/KB/shell/CTrayIcon/CTrayIcon_3.jpg&quot; width=&quot;165&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
With CTrayIcon, tray icons can have Tool Tip Text that appears during a  mouse-over. In addition, a cool mouse-hover effect is provided.&lt;/div&gt;&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; class=&quot;MsoNormalTable&quot; style=&quot;color: #666666; font-family: inherit; margin-left: 0px; margin-right: 0px; text-align: left; width: 100%;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;padding: 0.75pt; width: 100%;&quot; width=&quot;100%&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;h2 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;&amp;nbsp;&lt;/h2&gt;&lt;h2 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;CTrayIcon class summary&lt;/h2&gt;&lt;div style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;This class is a wrap around the system tray icon notification. It adds a specified set of icon-pairs -- i.e. icons &amp;amp; hover-icons -- and tooltips to the system tray notification area, as well as a callback notification handler for mouse message handling.&lt;/div&gt;&lt;h2 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;&amp;nbsp;&lt;/h2&gt;&lt;h2 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;CTrayIcon construction&lt;/h2&gt;&lt;h3 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;Syntax&lt;/h3&gt;&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); border: 1pt solid rgb(251, 237, 187); color: #666666; font-family: inherit; padding: 2pt; text-align: justify;&quot;&gt;&lt;pre id=&quot;pre0&quot; style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-comment1&quot;&gt;// Use if notification messages are to be &lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-comment1&quot;&gt;// sent to the parent window. &lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;CTrayIcon(&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CWnd *pWnd,&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class=&quot;code-keyword1&quot;&gt;unsigned&lt;/span&gt; &lt;span class=&quot;code-keyword1&quot;&gt;int&lt;/span&gt; uNotificationMessage,&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MouseMsgHandlerPtr *pMouseMsgHandler,&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class=&quot;code-keyword1&quot;&gt;unsigned&lt;/span&gt; &lt;span class=&quot;code-keyword1&quot;&gt;int&lt;/span&gt; uHandlersCount,&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IconDataPtr *pIconData,&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class=&quot;code-keyword1&quot;&gt;unsigned&lt;/span&gt; &lt;span class=&quot;code-keyword1&quot;&gt;int&lt;/span&gt; uIconsCount,&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class=&quot;code-keyword1&quot;&gt;int&lt;/span&gt; nSelectedIconIndex,&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class=&quot;code-keyword1&quot;&gt;unsigned&lt;/span&gt; &lt;span class=&quot;code-keyword1&quot;&gt;int&lt;/span&gt; uElapsed&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; );&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-comment1&quot;&gt;// Use if notification messages are to &lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-comment1&quot;&gt;// be sent to the CTrayIcon class.&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;CTrayIcon(&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MouseMsgHandlerPtr *pMouseMsgHandler,&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class=&quot;code-keyword1&quot;&gt;unsigned&lt;/span&gt; &lt;span class=&quot;code-keyword1&quot;&gt;int&lt;/span&gt; uHandlersCount,&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IconDataPtr *pIconData,&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class=&quot;code-keyword1&quot;&gt;unsigned&lt;/span&gt; &lt;span class=&quot;code-keyword1&quot;&gt;int&lt;/span&gt; uIconsCount,&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class=&quot;code-keyword1&quot;&gt;int&lt;/span&gt; nSelectedIconIndex,&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class=&quot;code-keyword1&quot;&gt;unsigned&lt;/span&gt; &lt;span class=&quot;code-keyword1&quot;&gt;int&lt;/span&gt; uElapsed&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; );&lt;/pre&gt;&lt;/div&gt;&lt;h3 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;&amp;nbsp;&lt;/h3&gt;&lt;h3 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;Parameters&lt;/h3&gt;&lt;ul style=&quot;color: #666666; font-family: inherit; text-align: justify;&quot; type=&quot;disc&quot;&gt;&lt;li class=&quot;MsoNormal&quot; style=&quot;background: none repeat scroll 0% 0% white; line-height: 14.4pt;&quot;&gt;&lt;code&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;pWnd&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;: Pointer to the window that receives notification      messages associated with an icon in the taskbar status area. If the &lt;/span&gt;&lt;code&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;pWnd&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;      parameter is not provided, then the function &lt;/span&gt;&lt;code&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;CTrayIcon::OnNotifyIcon&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt; will be called whenever the icon sends a notification      message. &lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;background: none repeat scroll 0% 0% white; line-height: 14.4pt;&quot;&gt;&lt;code&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;uNotificationMessage&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;: Message identifier for handling proper mouse      notification messages associated with an icon in the taskbar status area.      If a &lt;/span&gt;&lt;code&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;uNotificationMessage&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt; parameter is not provided, then a new window message      is registered -- i.e. &lt;/span&gt;&lt;code&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;::RegisterWindowMessage(_T(&lt;/span&gt;&lt;/code&gt;&lt;span class=&quot;code-string1&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&quot;NotifyIcon&quot;&lt;/span&gt;&lt;/span&gt;&lt;code&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;)&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;      -- and is used as a default notification message identifier. &lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;background: none repeat scroll 0% 0% white; line-height: 14.4pt;&quot;&gt;&lt;code&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;pMouseMsgHandlerPtr&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;: An array of pointers to objects of classes derived      from &lt;/span&gt;&lt;code&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;CTrayIconMouseMsgHandler&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt; to handle mouse messages. &lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;background: none repeat scroll 0% 0% white; line-height: 14.4pt;&quot;&gt;&lt;code&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;uHandlersCount&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;: Indicates the number of handlers in the array pointed      to by &lt;/span&gt;&lt;code&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;pMouseMsgHandlerPtr&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;. &lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;background: none repeat scroll 0% 0% white; line-height: 14.4pt;&quot;&gt;&lt;code&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;pIconDataPtr&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;: An array of pointers to objects of &lt;/span&gt;&lt;code&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;CIconData&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;      -- i.e. units of icons, hover icons, and tool tips -- to be added to the      taskbar status area. &lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;background: none repeat scroll 0% 0% white; line-height: 14.4pt;&quot;&gt;&lt;code&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;uIconsCount&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;: Indicates the number of icons in the array pointed to      by &lt;/span&gt;&lt;code&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;p IconDataPtr&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;. &lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;background: none repeat scroll 0% 0% white; line-height: 14.4pt;&quot;&gt;&lt;code&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;nSelectedIconIndex&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;: Index of the selected icon in the array pointed to by      &lt;/span&gt;&lt;code&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;p IconDataPtr&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;. &lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;background: none repeat scroll 0% 0% white; line-height: 14.4pt;&quot;&gt;&lt;code&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;uElapsed&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;: Indicates the elapsed time for the taskbar status      area icon animation timer. &lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;h2 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;&amp;nbsp;&lt;/h2&gt;&lt;h2 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;CTrayIcon getters and setter&lt;/h2&gt;&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); border: 1pt solid rgb(251, 237, 187); color: #666666; font-family: inherit; padding: 2pt; text-align: justify;&quot;&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-comment1&quot;&gt;// Sets the notification message target window&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-keyword1&quot;&gt;void&lt;/span&gt; SetTargetWnd(CWnd *pWnd);&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-comment1&quot;&gt;// Sets the notification message identifier&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-keyword1&quot;&gt;void&lt;/span&gt; SetNotificationMsg(&lt;span class=&quot;code-keyword1&quot;&gt;unsigned&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-keyword1&quot;&gt;int&lt;/span&gt; uNotificationMsg);&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-comment1&quot;&gt;// Sets the selected icon index&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-keyword1&quot;&gt;void&lt;/span&gt; SetSelectedIconIndex(&lt;span class=&quot;code-keyword1&quot;&gt;int&lt;/span&gt; nIconIndex);&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-comment1&quot;&gt;// Gets the selected icon index&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-keyword1&quot;&gt;int&lt;/span&gt; GetSelectedIconIndex() &lt;span class=&quot;code-keyword1&quot;&gt;const&lt;/span&gt;;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-comment1&quot;&gt;// Sets the mouse message handler&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-keyword1&quot;&gt;void&lt;/span&gt; SetMouseMsgHandler(&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MouseMsgHandlerPtr *pMouseMsgHandler, &lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;code-keyword1&quot;&gt;unsigned&lt;/span&gt; &lt;span class=&quot;code-keyword1&quot;&gt;int&lt;/span&gt; uHandlersCount);&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-comment1&quot;&gt;// Gets the mouse message handler&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;MouseMsgHandlerPtr* GetMouseMsgHandler()&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-keyword1&quot;&gt;const&lt;/span&gt;;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-comment1&quot;&gt;// Sets timer elapse&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-keyword1&quot;&gt;void&lt;/span&gt; SetTimerElapse(&lt;span class=&quot;code-keyword1&quot;&gt;unsigned&lt;/span&gt; &lt;span class=&quot;code-keyword1&quot;&gt;int&lt;/span&gt; uElapse);&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-comment1&quot;&gt;// Gets timer elapse&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-keyword1&quot;&gt;int&lt;/span&gt; GetTimerElapse() &lt;span class=&quot;code-keyword1&quot;&gt;const&lt;/span&gt;;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-comment1&quot;&gt;// Sets icon data&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-keyword1&quot;&gt;void&lt;/span&gt; SetIconData(IconDataPtr *pIconData, &lt;span class=&quot;code-keyword1&quot;&gt;unsigned&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-keyword1&quot;&gt;int&lt;/span&gt; uIconsCount);&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-comment1&quot;&gt;// Gets icons data&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;IconDataPtr* GetIconData()&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-keyword1&quot;&gt;const&lt;/span&gt;;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-comment1&quot;&gt;// Indicates whether animation is in progress&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;BOOL IsAnimating () &lt;span class=&quot;code-keyword1&quot;&gt;const&lt;/span&gt; ;&amp;nbsp; &lt;/pre&gt;&lt;/div&gt;&lt;h2 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;&amp;nbsp;&lt;/h2&gt;&lt;h2 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;CTrayIcon methods&lt;/h2&gt;&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); border: 1pt solid rgb(251, 237, 187); color: #666666; font-family: inherit; padding: 2pt; text-align: justify;&quot;&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-comment1&quot;&gt;// Dispalys a hidden icon&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;BOOL ShowIcon();&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-comment1&quot;&gt;// Hides a visible icon&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;BOOL HideIcon();&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-comment1&quot;&gt;// Refreshes icon&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;BOOL RefreshIcon();&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-comment1&quot;&gt;// Shows the hover icon&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;BOOL HoverIcon();&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-comment1&quot;&gt;// Starts icon animation&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;BOOL StartIconAnimation();&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-comment1&quot;&gt;// Stops icon animation&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;BOOL StopIconAnimation();&lt;/pre&gt;&lt;/div&gt;&lt;h2 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;&amp;nbsp;&lt;/h2&gt;&lt;h2 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;CTrayIcon events &amp;amp; callbacks&lt;/h2&gt;&lt;h3 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;&amp;nbsp;&lt;/h3&gt;&lt;h3 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;OnTaskBarCreated&lt;/h3&gt;&lt;div style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;This is used to process the &lt;code&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;WM_TI_TASKBARCREATED&lt;/span&gt;&lt;/code&gt; message for verifying taskbar status icon creation.&lt;/div&gt;&lt;h4 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;&amp;nbsp;&lt;/h4&gt;&lt;h4 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;Syntax&lt;/h4&gt;&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); border: 1pt solid rgb(251, 237, 187); color: #666666; font-family: inherit; padding: 2pt; text-align: justify;&quot;&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-comment1&quot;&gt;// Callback handler for the taskbar created event &lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;LRESULT OnTaskBarCreated( &lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;WPARAM wParam, &lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LPARAM lParam &lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;); &lt;/pre&gt;&lt;/div&gt;&lt;h4 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;&amp;nbsp;&lt;/h4&gt;&lt;h4 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;Result&lt;/h4&gt;&lt;div style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;Returns the &lt;code&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;LRESULT&lt;/span&gt;&lt;/code&gt; after verification. &lt;/div&gt;&lt;h3 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;&amp;nbsp;&lt;/h3&gt;&lt;h3 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;OnNotifyIcon&lt;/h3&gt;&lt;div style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;This is used to process the &lt;code&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;WM_TI_NOITIFYICON&lt;/span&gt;&lt;/code&gt; message for proper mouse message handling.&lt;/div&gt;&lt;h4 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;&amp;nbsp;&lt;/h4&gt;&lt;h4 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;Syntax&lt;/h4&gt;&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); border: 1pt solid rgb(251, 237, 187); color: #666666; font-family: inherit; padding: 2pt; text-align: justify;&quot;&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-comment1&quot;&gt;// Default callback handler for &lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-comment1&quot;&gt;// taskbar notification message event &lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;LRESULT OnNotifyIcon(&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; WPARAM wParam, &lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LPARAM lParam &lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;); &lt;/pre&gt;&lt;/div&gt;&lt;h4 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;&amp;nbsp;&lt;/h4&gt;&lt;h4 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;Result&lt;/h4&gt;&lt;div style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;Returns the &lt;code&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;LRESULT&lt;/span&gt;&lt;/code&gt; after verification.&lt;/div&gt;&lt;h3 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;&amp;nbsp;&lt;/h3&gt;&lt;h3 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;WindowProc&lt;/h3&gt;&lt;div style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;This provides a Windows procedure for a &lt;code&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;CTrayIcon&lt;/span&gt;&lt;/code&gt; object. The &lt;code&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;WindowProc&lt;/span&gt;&lt;/code&gt; function is an application-defined function that processes messages sent to a window. &lt;/div&gt;&lt;h4 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;&amp;nbsp;&lt;/h4&gt;&lt;h4 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;Syntax&lt;/h4&gt;&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); border: 1pt solid rgb(251, 237, 187); color: #666666; font-family: inherit; padding: 2pt; text-align: justify;&quot;&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-comment1&quot;&gt;// Callback handler for the window procedure &lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;LRESULT WindowProc( &lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;code-keyword1&quot;&gt;unsigned&lt;/span&gt; &lt;span class=&quot;code-keyword1&quot;&gt;int&lt;/span&gt; uMsg, &lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;WPARAM wParam, &lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LPARAM lParam &lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;);&lt;/pre&gt;&lt;/div&gt;&lt;h4 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;&amp;nbsp;&lt;/h4&gt;&lt;h4 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;Result&lt;/h4&gt;&lt;div style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;Returns the &lt;code&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;LRESULT&lt;/span&gt;&lt;/code&gt; after verification. &lt;/div&gt;&lt;h3 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;&amp;nbsp;&lt;/h3&gt;&lt;h3 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;OnTimer&lt;/h3&gt;&lt;div style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;This is used to process the &lt;code&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;WM_TIMER&lt;/span&gt;&lt;/code&gt; messages, triggered as soon as the elapsed time has passed.&lt;/div&gt;&lt;h4 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;&amp;nbsp;&lt;/h4&gt;&lt;h4 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;Syntax&lt;/h4&gt;&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); border: 1pt solid rgb(251, 237, 187); color: #666666; font-family: inherit; padding: 2pt; text-align: justify;&quot;&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-comment1&quot;&gt;// Callback handler for the timer elapsed event &lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-keyword1&quot;&gt;void&lt;/span&gt; OnTimer( &lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;code-keyword1&quot;&gt;unsigned&lt;/span&gt; &lt;span class=&quot;code-keyword1&quot;&gt;int&lt;/span&gt; uIDEvent &lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;);&lt;/pre&gt;&lt;/div&gt;&lt;h2 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;&amp;nbsp;&lt;/h2&gt;&lt;h2 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;CTrayIconMouseMsgHandler class summary&lt;/h2&gt;&lt;div style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;This class stands as an abstract base-class for handling mouse notification messages. Classes derived from &lt;code&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;CTrayIconMouseMsgHandler&lt;/span&gt;&lt;/code&gt; should handle mouse notification messages and must implement the pure-virtual &lt;code&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;MouseMessageHandler()&lt;/span&gt;&lt;/code&gt; method.&lt;/div&gt;&lt;h2 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;&amp;nbsp; &lt;/h2&gt;&lt;h2 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;CTrayIconMouseMsgHandler construction&lt;/h2&gt;&lt;div style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;Only a single parameter constructor is available that takes a Window message to be associated with it for receiving other system tray icon notification messages.&lt;/div&gt;&lt;h3 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;&amp;nbsp;&lt;/h3&gt;&lt;h3 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;Syntax&lt;/h3&gt;&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); border: 1pt solid rgb(251, 237, 187); color: #666666; font-family: inherit; padding: 2pt; text-align: justify;&quot;&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-comment1&quot;&gt;// Single paramenter constructor, a &lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-comment1&quot;&gt;// mosue message identfier has to be passed&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;CTrayIconMouseMsgHandler( &lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;code-keyword1&quot;&gt;unsigned&lt;/span&gt; &lt;span class=&quot;code-keyword1&quot;&gt;int&lt;/span&gt; uMouseMsgID &lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;);&lt;/pre&gt;&lt;/div&gt;&lt;h3 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;&amp;nbsp;&lt;/h3&gt;&lt;h3 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;Parameters&lt;/h3&gt;&lt;div style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;&lt;code&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;uMouseMsgID&lt;/span&gt;&lt;/code&gt; Windows messages that the OS generates when the user performs any action with the mouse over the system tray icon. For example, the pressing or releasing of the mouse buttons, etc. &lt;/div&gt;&lt;h2 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;&amp;nbsp;&lt;/h2&gt;&lt;h2 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;CTrayIconMouseMsgHandler getters and setters&lt;/h2&gt;&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); border: 1pt solid rgb(251, 237, 187); color: #666666; font-family: inherit; padding: 2pt; text-align: justify;&quot;&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-comment1&quot;&gt;// Gets the mouse message identifier &lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-keyword1&quot;&gt;unsigned&lt;/span&gt; &lt;span class=&quot;code-keyword1&quot;&gt;int&lt;/span&gt; GetMouseMsgID() &lt;span class=&quot;code-keyword1&quot;&gt;const&lt;/span&gt;; &lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-comment1&quot;&gt;// Sets the mosue message identifier &lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-keyword1&quot;&gt;void&lt;/span&gt; SetMouseMsgID(&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class=&quot;code-keyword1&quot;&gt;unsigned&lt;/span&gt; &lt;span class=&quot;code-keyword1&quot;&gt;int&lt;/span&gt; uMouseMsgID&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; );&lt;/pre&gt;&lt;/div&gt;&lt;h2 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;&amp;nbsp;&lt;/h2&gt;&lt;h2 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;CTrayIconMouseMsgHandler events &amp;amp; callbacks&lt;/h2&gt;&lt;h3 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;&amp;nbsp;&lt;/h3&gt;&lt;h3 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;MouseMsgHandler&lt;/h3&gt;&lt;div style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;This method is a pure-virtual method and must be defined in the derived classes for handling system tray icon mouse notification messages. This event is generated by the &lt;code&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;CTrayIcon::OnNotifyIcon()&lt;/span&gt;&lt;/code&gt; method.&lt;/div&gt;&lt;h4 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;&amp;nbsp;&lt;/h4&gt;&lt;h4 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;Syntax&lt;/h4&gt;&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); border: 1pt solid rgb(251, 237, 187); color: #666666; font-family: inherit; padding: 2pt; text-align: justify;&quot;&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-comment1&quot;&gt;// Pure-virtual callback mouse message handler, &lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-comment1&quot;&gt;// necessary to be implemented by the derived class, &lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-comment1&quot;&gt;// for handling system tray icon notifications. &lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-keyword1&quot;&gt;virtual&lt;/span&gt; &lt;span class=&quot;code-keyword1&quot;&gt;void&lt;/span&gt; MouseMsgHandler() = &lt;span class=&quot;code-digit1&quot;&gt;0&lt;/span&gt;;&lt;/pre&gt;&lt;/div&gt;&lt;h2 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;&amp;nbsp;&lt;/h2&gt;&lt;h2 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;CTrayIconMouseMsgHandler synonyms&lt;/h2&gt;&lt;h3 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;&amp;nbsp;&lt;/h3&gt;&lt;h3 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;MouseMsgHandlerPtr&lt;/h3&gt;&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); border: 1pt solid rgb(251, 237, 187); color: #666666; font-family: inherit; padding: 2pt; text-align: justify;&quot;&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-comment1&quot;&gt;// Synomym for CTrayIconMouseMsgHandler pointer &lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-keyword1&quot;&gt;typedef&lt;/span&gt; CTrayIconMouseMsgHandler* MouseMsgHandlerPtr;&lt;/pre&gt;&lt;/div&gt;&lt;h2 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;&amp;nbsp;&lt;/h2&gt;&lt;h2 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;CIconData class summary&lt;/h2&gt;&lt;div style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;This class encapsulates a set of icon-pairs -- i.e. icons &amp;amp; hover-icons -- and tooltips for the system tray notification area. It wraps the basic functionality to switch between icon &amp;amp; hover-icon, as well as between two different &lt;code&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;CIconData&lt;/span&gt;&lt;/code&gt; objects along with their respective tooltips.&lt;/div&gt;&lt;h2 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;&amp;nbsp;&lt;/h2&gt;&lt;h2 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;CIconData construction&lt;/h2&gt;&lt;div style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;For object creation, a quad parameter constructor is available that takes icon-pair (icon &amp;amp; hover-icon) identifiers -- where hover-icon is optional -- a tooptip and an optional handler to an icon.&lt;/div&gt;&lt;h3 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;&amp;nbsp;&lt;/h3&gt;&lt;h3 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;Syntax&lt;/h3&gt;&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); border: 1pt solid rgb(251, 237, 187); color: #666666; font-family: inherit; padding: 2pt; text-align: justify;&quot;&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-comment1&quot;&gt;// Quad parameter constructor &lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;CIconData(&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class=&quot;code-keyword1&quot;&gt;unsigned&lt;/span&gt; &lt;span class=&quot;code-keyword1&quot;&gt;int&lt;/span&gt; uDefaultIconID, &lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LPSTR lpToolTip,&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class=&quot;code-keyword1&quot;&gt;unsigned&lt;/span&gt; &lt;span class=&quot;code-keyword1&quot;&gt;int&lt;/span&gt; uHoverIconID = &lt;span class=&quot;code-digit1&quot;&gt;0&lt;/span&gt;, &lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;HICON hIcon = NULL&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; );&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-comment1&quot;&gt;// Copy constructor&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;CIconData(&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class=&quot;code-keyword1&quot;&gt;const&lt;/span&gt; CIconData &amp;amp;pIconData&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; );&lt;/pre&gt;&lt;/div&gt;&lt;h3 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;&amp;nbsp;&lt;/h3&gt;&lt;h3 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;Parameters&lt;/h3&gt;&lt;ul style=&quot;color: #666666; font-family: inherit; text-align: justify;&quot; type=&quot;disc&quot;&gt;&lt;li class=&quot;MsoNormal&quot; style=&quot;background: none repeat scroll 0% 0% white; line-height: 14.4pt;&quot;&gt;&lt;code&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;uDefaultIconID&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;: Application-defined identifier of an icon, to be      showed in the system tray icon notification area. &lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;background: none repeat scroll 0% 0% white; line-height: 14.4pt;&quot;&gt;&lt;code&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;lpToolTip&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;: Pointer to a null-terminated string with the text for      a standard ToolTip. It can have a maximum of 64 characters, including the      terminating &lt;/span&gt;&lt;code&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;NULL&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;. &lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;background: none repeat scroll 0% 0% white; line-height: 14.4pt;&quot;&gt;&lt;code&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;uHoverIconID&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;: Application-defined identifier of an icon, to be      showed in the system tray icon notification area during mouse-hover. &lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;background: none repeat scroll 0% 0% white; line-height: 14.4pt;&quot;&gt;&lt;code&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;hIcon&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;: Handle to the icon to be added, modified or deleted.      To avoid icon distortion, be aware that notification area icons have      different levels of support under different versions of Microsoft      Windows. Windows 95, Windows 98, and Microsoft Windows NT 4.0 support      icons of up to 4 bits per pixel (BPP). Windows Millennium Edition (Windows      Me) and Windows 2000 support icons of a color depth up to the current      display mode. Windows XP supports icons of up to 32 BPP.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;h2 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;&amp;nbsp;&lt;/h2&gt;&lt;h2 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;CIconData getters and setters&lt;/h2&gt;&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); border: 1pt solid rgb(251, 237, 187); color: #666666; font-family: inherit; padding: 2pt; text-align: justify;&quot;&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-comment1&quot;&gt;// Gets the selected icon&#39;s identifer&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-keyword1&quot;&gt;unsigned&lt;/span&gt; &lt;span class=&quot;code-keyword1&quot;&gt;int&lt;/span&gt; GetIconID() &lt;span class=&quot;code-keyword1&quot;&gt;const&lt;/span&gt;;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-comment1&quot;&gt;// Gets the default icon identfier&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-keyword1&quot;&gt;unsigned&lt;/span&gt; &lt;span class=&quot;code-keyword1&quot;&gt;int&lt;/span&gt; GetDefaultIconID() &lt;span class=&quot;code-keyword1&quot;&gt;const&lt;/span&gt;;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-comment1&quot;&gt;// Sets the default icon identifier&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-keyword1&quot;&gt;void&lt;/span&gt; SetDefaultIconID(&lt;span class=&quot;code-keyword1&quot;&gt;unsigned&lt;/span&gt; &lt;span class=&quot;code-keyword1&quot;&gt;int&lt;/span&gt; uIconID);&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-comment1&quot;&gt;// Gets the hover icon identifer&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-keyword1&quot;&gt;unsigned&lt;/span&gt; &lt;span class=&quot;code-keyword1&quot;&gt;int&lt;/span&gt; GetHoverIconID() &lt;span class=&quot;code-keyword1&quot;&gt;const&lt;/span&gt;;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-comment1&quot;&gt;// Sets the hover icon identifier&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-keyword1&quot;&gt;void&lt;/span&gt; SetHoverIconID(&lt;span class=&quot;code-keyword1&quot;&gt;unsigned&lt;/span&gt; &lt;span class=&quot;code-keyword1&quot;&gt;int&lt;/span&gt; uIconID);&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-comment1&quot;&gt;// Gets the tooltip&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;LPSTR GetToolTip() &lt;span class=&quot;code-keyword1&quot;&gt;const&lt;/span&gt;;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-comment1&quot;&gt;// Sets the tooltip&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-keyword1&quot;&gt;void&lt;/span&gt; SetToolTip(LPSTR lpToolTip);&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-comment1&quot;&gt;// Gets the icon handler&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;HICON GetIconHandler() &lt;span class=&quot;code-keyword1&quot;&gt;const&lt;/span&gt;;&lt;/pre&gt;&lt;/div&gt;&lt;h2 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;&amp;nbsp;&lt;/h2&gt;&lt;h2 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;CIconData methods&lt;/h2&gt;&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); border: 1pt solid rgb(251, 237, 187); color: #666666; font-family: inherit; padding: 2pt; text-align: justify;&quot;&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-comment1&quot;&gt;// Selects and loads the speciifed icon into memory&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-keyword1&quot;&gt;bool&lt;/span&gt; LoadIcon(&lt;span class=&quot;code-keyword1&quot;&gt;unsigned&lt;/span&gt; &lt;span class=&quot;code-keyword1&quot;&gt;int&lt;/span&gt; uIconID);&lt;/pre&gt;&lt;/div&gt;&lt;h2 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;&amp;nbsp;&lt;/h2&gt;&lt;h2 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;CIconData synonyms&lt;/h2&gt;&lt;h3 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;&amp;nbsp;&lt;/h3&gt;&lt;h3 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;IconDataPtr&lt;/h3&gt;&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); border: 1pt solid rgb(251, 237, 187); color: #666666; font-family: inherit; padding: 2pt; text-align: justify;&quot;&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-comment1&quot;&gt;// Synomym for CIconData pointer &lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-keyword1&quot;&gt;typedef&lt;/span&gt; CIconData* IconDataPtr;&lt;/pre&gt;&lt;/div&gt;&lt;h2 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;&amp;nbsp;&lt;/h2&gt;&lt;h2 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;How to use&lt;/h2&gt;&lt;div style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;Let&#39;s go step-wise to accomplish our task.&lt;/div&gt;&lt;h3 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;&amp;nbsp; &lt;/h3&gt;&lt;h3 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;Step 1 - starting&lt;/h3&gt;&lt;div style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;Create an application and add the &lt;i&gt;TrayIcon.h&lt;/i&gt;, &lt;i&gt;TrayIcon.cpp&lt;/i&gt;, &lt;i&gt;TrayIconMouseMsgHandler.h&lt;/i&gt;, &lt;i&gt;IconData.h&lt;/i&gt;, &lt;i&gt;Utilities.h&lt;/i&gt; and &lt;i&gt;MouseMsgHandlerImpl.h&lt;/i&gt; files to the project. &lt;/div&gt;&lt;h3 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;&amp;nbsp;&lt;/h3&gt;&lt;h3 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;Step 2 - pre-empting reusability&lt;/h3&gt;&lt;div style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;It is always beneficial to set up a global header library of reusable utility methods that can be used anywhere in the project.&lt;/div&gt;&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); border: 1pt solid rgb(251, 237, 187); color: #666666; font-family: inherit; padding: 2pt; text-align: justify;&quot;&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-comment1&quot;&gt;// Utilities functions&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-comment1&quot;&gt;// Shows a window&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;BOOL ShowWnd(CWnd* pWnd)&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;{&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class=&quot;code-keyword1&quot;&gt;return&lt;/span&gt; pWnd-&lt;span class=&quot;code-keyword1&quot;&gt;&amp;gt;&lt;/span&gt;ShowWindow(SW_SHOW);&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;}&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-comment1&quot;&gt;// Hides a window&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;BOOL HideWnd(CWnd* pWnd)&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;{&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class=&quot;code-keyword1&quot;&gt;return&lt;/span&gt; pWnd-&lt;span class=&quot;code-keyword1&quot;&gt;&amp;gt;&lt;/span&gt;ShowWindow(SW_HIDE);&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;}&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-comment1&quot;&gt;// Shows a popup menu&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-keyword1&quot;&gt;void&lt;/span&gt; ShowPopupMenu(CWnd* pWnd, &lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;code-keyword1&quot;&gt;unsigned&lt;/span&gt; &lt;span class=&quot;code-keyword1&quot;&gt;int&lt;/span&gt; uResourseID, &lt;span class=&quot;code-keyword1&quot;&gt;int&lt;/span&gt; nSubMenuPos)&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;{&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CPoint aPos;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; GetCursorPos(&amp;amp;aPos);&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CMenu aMenu;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; aMenu.LoadMenu(uResourseID);&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; aMenu.GetSubMenu(nSubMenuPos)-&lt;span class=&quot;code-keyword1&quot;&gt;&amp;gt;&lt;/span&gt;TrackPopupMenu(&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TPM_RIGHTALIGN | TPM_RIGHTBUTTON, &lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;aPos.x, &lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;aPos.y, &lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pWnd, &lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;code-digit1&quot;&gt;0&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; );&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;}&lt;/pre&gt;&lt;/div&gt;&lt;h3 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;&amp;nbsp;&lt;/h3&gt;&lt;h3 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;Step 3 - setting up mouse message handlers&lt;/h3&gt;&lt;div style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;In this phase, we will set up a few classes derived from &lt;code&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;CTrayIconMouseMsgHandler&lt;/span&gt;&lt;/code&gt; to handle mouse notification messages.&lt;/div&gt;&lt;h4 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;&amp;nbsp;&lt;/h4&gt;&lt;h4 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;Setting up left mouse double click message handler&lt;/h4&gt;&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); border: 1pt solid rgb(251, 237, 187); color: #666666; font-family: inherit; padding: 2pt; text-align: justify;&quot;&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-comment1&quot;&gt;// Left mouse button double click message handler&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-keyword1&quot;&gt;class&lt;/span&gt; CLeftMouseDblClickMsgHandler: &lt;span class=&quot;code-keyword1&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-keyword1&quot;&gt;    public&lt;/span&gt; CTrayIconMouseMsgHandler&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;{&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class=&quot;code-keyword1&quot;&gt;public&lt;/span&gt;: &lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CLeftMouseDblClickMsgHandler() :&amp;nbsp;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;CTrayIconMouseMsgHandler(&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WM_LBUTTONDBLCLK){}&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class=&quot;code-keyword1&quot;&gt;void&lt;/span&gt; MouseMsgHandler()&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ShowWnd(AfxGetMainWnd());&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;};&lt;/pre&gt;&lt;/div&gt;&lt;h4 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;&amp;nbsp;&lt;/h4&gt;&lt;h4 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;Setting up right mouse click message handler&lt;/h4&gt;&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); border: 1pt solid rgb(251, 237, 187); color: #666666; font-family: inherit; padding: 2pt; text-align: justify;&quot;&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-comment1&quot;&gt;// Right mouse button click message handler&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-keyword1&quot;&gt;class&lt;/span&gt; CRightMouseClickMsgHandler:&amp;nbsp;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-keyword1&quot;&gt;    public&lt;/span&gt; CTrayIconMouseMsgHandler&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;{&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class=&quot;code-keyword1&quot;&gt;public&lt;/span&gt;: &lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CRightMouseClickMsgHandler() :&amp;nbsp;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;CTrayIconMouseMsgHandler(&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WM_RBUTTONDOWN){}&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class=&quot;code-keyword1&quot;&gt;void&lt;/span&gt; MouseMsgHandler()&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ShowPopupMenu(AfxGetMainWnd(),&amp;nbsp;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;IDR_TASKBAR_MENU, &lt;span class=&quot;code-digit1&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-digit1&quot;&gt;            0&lt;/span&gt;);&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;};&lt;/pre&gt;&lt;/div&gt;&lt;h4 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;&amp;nbsp;&lt;/h4&gt;&lt;h4 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;Setting up mouse hover message handler&lt;/h4&gt;&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); border: 1pt solid rgb(251, 237, 187); color: #666666; font-family: inherit; padding: 2pt; text-align: justify;&quot;&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-comment1&quot;&gt;// Mouse hover message handler&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-keyword1&quot;&gt;class&lt;/span&gt; CMouseHoverMsgHandler: &lt;span class=&quot;code-keyword1&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-keyword1&quot;&gt;    public&lt;/span&gt; CTrayIconMouseMsgHandler&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;{&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class=&quot;code-keyword1&quot;&gt;public&lt;/span&gt;: &lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CMouseHoverMsgHandler(CTrayIcon* pTrayIcon) :&amp;nbsp;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;CTrayIconMouseMsgHandler(&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WM_MOUSEFIRST)&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_pTrayIcon = pTrayIcon;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class=&quot;code-keyword1&quot;&gt;void&lt;/span&gt; SetTrayIcon(CTrayIcon* pTrayIcon)&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_pTrayIcon = pTrayIcon;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class=&quot;code-keyword1&quot;&gt;void&lt;/span&gt; MouseMsgHandler()&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_pTrayIcon-&lt;span class=&quot;code-keyword1&quot;&gt;&amp;gt;&lt;/span&gt;HoverIcon();&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class=&quot;code-keyword1&quot;&gt;private&lt;/span&gt;:&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CTrayIcon* m_pTrayIcon;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;};&lt;/pre&gt;&lt;/div&gt;&lt;h3 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;&amp;nbsp;&lt;/h3&gt;&lt;h3 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;Step 4 - declaring&lt;/h3&gt;&lt;div style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;Add a member to your class that points to &lt;code&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;CTrayIcon&lt;/span&gt;&lt;/code&gt;.&lt;/div&gt;&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); border: 1pt solid rgb(251, 237, 187); color: #666666; font-family: inherit; padding: 2pt; text-align: justify;&quot;&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-comment1&quot;&gt;// Declarying CTrayIcon object pointer for adding&amp;nbsp;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-comment1&quot;&gt;// an icon to the system tray notification area&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;CTrayIcon* m_pTrayIcon;&lt;/pre&gt;&lt;/div&gt;&lt;h3 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;&amp;nbsp;&lt;/h3&gt;&lt;h3 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;Step 5 - initialization&lt;/h3&gt;&lt;div style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;In this phase, we will initialize the &lt;code&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;CTrayIcon&lt;/span&gt;&lt;/code&gt; object to add icon to the system tray notification area.&lt;/div&gt;&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); border: 1pt solid rgb(251, 237, 187); color: #666666; font-family: inherit; padding: 2pt; text-align: justify;&quot;&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-comment1&quot;&gt;// Declare an array of MouseMsgHandlerPtr of size 3, &lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-comment1&quot;&gt;// to handle three types of mouse events&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;MouseMsgHandlerPtr *pHandler = &lt;span class=&quot;code-keyword1&quot;&gt;new&lt;/span&gt; MouseMsgHandlerPtr[&lt;span class=&quot;code-digit1&quot;&gt;3&lt;/span&gt;];&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-comment1&quot;&gt;// Define an object for handling right mouse button&amp;nbsp;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-comment1&quot;&gt;// click events&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;MouseMsgHandlerPtr rbcHandler =&amp;nbsp;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-keyword1&quot;&gt;    new&lt;/span&gt; CRightMouseClickMsgHandler();&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-comment1&quot;&gt;// Define an object for handling left mouse button&amp;nbsp;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-comment1&quot;&gt;// double click events&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;MouseMsgHandlerPtr lbcHandler = &lt;span class=&quot;code-keyword1&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-keyword1&quot;&gt;    new&lt;/span&gt; CLeftMouseDblClickMsgHandler();&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-comment1&quot;&gt;// Define an object for handling mouse hover events&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;MouseMsgHandlerPtr mhHandler =&amp;nbsp;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-keyword1&quot;&gt;    new&lt;/span&gt; CMouseHoverMsgHandler(m_pTrayIcon);&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;pHandler[&lt;span class=&quot;code-digit1&quot;&gt;0&lt;/span&gt;] = lbcHandler;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;pHandler[&lt;span class=&quot;code-digit1&quot;&gt;1&lt;/span&gt;] = rbcHandler;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;pHandler[&lt;span class=&quot;code-digit1&quot;&gt;2&lt;/span&gt;] = mhHandler;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-comment1&quot;&gt;// Declare an array of IconDataPtr of size 2,&amp;nbsp;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-comment1&quot;&gt;// to add two sets of icons. Only one will be&amp;nbsp;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-comment1&quot;&gt;// active though.&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;IconDataPtr *pIconData = &lt;span class=&quot;code-keyword1&quot;&gt;new&lt;/span&gt; IconDataPtr[&lt;span class=&quot;code-digit1&quot;&gt;2&lt;/span&gt;];&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-comment1&quot;&gt;// Define an object of Blue MFC icon&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;pIconData[&lt;span class=&quot;code-digit1&quot;&gt;0&lt;/span&gt;] = &lt;span class=&quot;code-keyword1&quot;&gt;new&lt;/span&gt; CIconData(IDR_MAINFRAME,&amp;nbsp;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;_T(&lt;span class=&quot;code-string1&quot;&gt;&quot;CTrayIcon Blue Demo&quot;&lt;/span&gt;), &lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;IDR_MAINFRAME_HOVER);&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-comment1&quot;&gt;// Define an object of Green MFC icon&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;pIconData[&lt;span class=&quot;code-digit1&quot;&gt;1&lt;/span&gt;] = &lt;span class=&quot;code-keyword1&quot;&gt;new&lt;/span&gt; CIconData(&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IDR_MAINFRAME_GREEN,&amp;nbsp;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;_T(&lt;span class=&quot;code-string1&quot;&gt;&quot;CTrayIcon Green Demo&quot;&lt;/span&gt;),&amp;nbsp;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;IDR_MAINFRAME_HOVER);&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-comment1&quot;&gt;// Define the CTrayIcon object&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;m_pTrayIcon = &lt;span class=&quot;code-keyword1&quot;&gt;new&lt;/span&gt; CTrayIcon(pHandler, &lt;span class=&quot;code-digit1&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-digit1&quot;&gt;    3&lt;/span&gt;,&amp;nbsp;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;pIconData, &lt;span class=&quot;code-digit1&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-digit1&quot;&gt;    2&lt;/span&gt;, &lt;span class=&quot;code-digit1&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-digit1&quot;&gt;    0&lt;/span&gt;,&amp;nbsp;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;SECOND);&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-comment1&quot;&gt;// Refer the CTrayIcon object to the&amp;nbsp;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-comment1&quot;&gt;// CMouseHoverMsgHandler object, for handling&amp;nbsp;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-comment1&quot;&gt;// mouse events&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;((CMouseHoverMsgHandler*)mhHandler)-&lt;span class=&quot;code-keyword1&quot;&gt;&amp;gt;&lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;SetTrayIcon(m_pTrayIcon);&lt;/pre&gt;&lt;/div&gt;&lt;h3 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;&amp;nbsp;&lt;/h3&gt;&lt;h3 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;Step 6 - setting up functionality&lt;/h3&gt;&lt;div style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;In this phase, we will set up functionality to hide, show and animate the system tray notification icon. &lt;/div&gt;&lt;h4 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;&amp;nbsp;&lt;/h4&gt;&lt;h4 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;Showing the tray notification icon&lt;/h4&gt;&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); border: 1pt solid rgb(251, 237, 187); color: #666666; font-family: inherit; padding: 2pt; text-align: justify;&quot;&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-keyword1&quot;&gt;void&lt;/span&gt; CCTrayIconDemoDlg::OnBnClickedBtnshowicon()&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;{&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_pTrayIcon-&lt;span class=&quot;code-keyword1&quot;&gt;&amp;gt;&lt;/span&gt;ShowIcon();&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;}&lt;/pre&gt;&lt;/div&gt;&lt;h4 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;&amp;nbsp;&lt;/h4&gt;&lt;h4 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;Hiding the tray notification icon&lt;/h4&gt;&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); border: 1pt solid rgb(251, 237, 187); color: #666666; font-family: inherit; padding: 2pt; text-align: justify;&quot;&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-keyword1&quot;&gt;void&lt;/span&gt; CCTrayIconDemoDlg::OnBnClickedBtnhideicon()&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;{&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_pTrayIcon-&lt;span class=&quot;code-keyword1&quot;&gt;&amp;gt;&lt;/span&gt;HideIcon();&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;}&lt;/pre&gt;&lt;/div&gt;&lt;h4 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;&amp;nbsp;&lt;/h4&gt;&lt;h4 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;Starting the tray notification icon animation&lt;/h4&gt;&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); border: 1pt solid rgb(251, 237, 187); color: #666666; font-family: inherit; padding: 2pt; text-align: justify;&quot;&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-keyword1&quot;&gt;void&lt;/span&gt; CCTrayIconDemoDlg::OnBnClickedBtnstartani()&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;{&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_pTrayIcon-&lt;span class=&quot;code-keyword1&quot;&gt;&amp;gt;&lt;/span&gt;StartIconAnimation();&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;}&lt;/pre&gt;&lt;/div&gt;&lt;h4 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;&amp;nbsp;&lt;/h4&gt;&lt;h4 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;Stopping the tray notification icon animation&lt;/h4&gt;&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); border: 1pt solid rgb(251, 237, 187); color: #666666; font-family: inherit; padding: 2pt; text-align: justify;&quot;&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-keyword1&quot;&gt;void&lt;/span&gt; CCTrayIconDemoDlg::OnBnClickedBtnstopani()&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;{&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_pTrayIcon-&lt;span class=&quot;code-keyword1&quot;&gt;&amp;gt;&lt;/span&gt;StopIconAnimation();&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;}&lt;/pre&gt;&lt;/div&gt;&lt;h4 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;&amp;nbsp;&lt;/h4&gt;&lt;h4 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;Minimizing the window to the tray notification icon&lt;/h4&gt;&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); border: 1pt solid rgb(251, 237, 187); color: #666666; font-family: inherit; padding: 2pt; text-align: justify;&quot;&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-keyword1&quot;&gt;void&lt;/span&gt; CCTrayIconDemoDlg::OnBnClickedBtnminimize()&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;{&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_pTrayIcon-&lt;span class=&quot;code-keyword1&quot;&gt;&amp;gt;&lt;/span&gt;ShowIcon();&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; HideWnd(&lt;span class=&quot;code-keyword1&quot;&gt;this&lt;/span&gt;);&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;}&lt;/pre&gt;&lt;/div&gt;&lt;h4 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;&amp;nbsp;&lt;/h4&gt;&lt;h4 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;Showing the window from the tray notification icon&lt;/h4&gt;&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); border: 1pt solid rgb(251, 237, 187); color: #666666; font-family: inherit; padding: 2pt; text-align: justify;&quot;&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-keyword1&quot;&gt;void&lt;/span&gt; CCTrayIconDemoDlg::OnShow() &lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;{&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ShowWnd(&lt;span class=&quot;code-keyword1&quot;&gt;this&lt;/span&gt;);&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;}&lt;/pre&gt;&lt;/div&gt;&lt;h3 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;&amp;nbsp;&lt;/h3&gt;&lt;h3 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;Step 7 - the finishing touch &lt;/h3&gt;&lt;div style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;Once we are done, we release the resources gracefully.&lt;/div&gt;&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); border: 1pt solid rgb(251, 237, 187); color: #666666; font-family: inherit; padding: 2pt; text-align: justify;&quot;&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-keyword1&quot;&gt;void&lt;/span&gt; CCTrayIconDemoDlg::OnCancel() &lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;{&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class=&quot;code-keyword1&quot;&gt;delete&lt;/span&gt; m_pTrayIcon;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CDialog::OnCancel();&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;}&lt;/pre&gt;&lt;/div&gt;&lt;h3 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;&amp;nbsp;&lt;/h3&gt;&lt;h3 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;Alternate step - the other way around&lt;/h3&gt;&lt;div style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;In the above steps, we saw how efficiently we can handle the system tray notification icon messages by using the &lt;code&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;CTrayIcon&lt;/span&gt;&lt;/code&gt; class. What if you want to handle those messages in you own &lt;code&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;CWnd&lt;/span&gt;&lt;/code&gt; class? Implement this phase if you&#39;d like to handle the system tray notification icon messages in you &lt;code&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;CWnd&lt;/span&gt;&lt;/code&gt; or &lt;code&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;CDialog&lt;/span&gt;&lt;/code&gt; class. In this example, that class would be the &lt;code&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;CCTrayIconDemoDlg&lt;/span&gt;&lt;/code&gt; class. Go to the header file and register a Window message to be handled once the system tray notification icon is created.&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); border: 1pt solid rgb(251, 237, 187); color: #666666; font-family: inherit; padding: 2pt; text-align: justify;&quot;&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-keyword1&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;code-keyword1&quot;&gt;unsigned&lt;/span&gt; &lt;span class=&quot;code-keyword1&quot;&gt;int&lt;/span&gt; WM_TI_NOTIFYICON = &lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;::RegisterWindowMessage(_T(&lt;span class=&quot;code-string1&quot;&gt;&quot;TaskBarCreated&quot;&lt;/span&gt;));&lt;/pre&gt;&lt;/div&gt;&lt;div style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;&lt;br /&gt;
Go to &lt;code&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;AFX_MSG&lt;/span&gt;&lt;/code&gt; and add the line in &lt;b&gt;bold&lt;/b&gt;.&lt;/div&gt;&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); border: 1pt solid rgb(251, 237, 187); color: #666666; font-family: inherit; padding: 2pt; text-align: justify;&quot;&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-comment1&quot;&gt;//{{AFX_MSG(CCTrayIconDemoDlg)&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-keyword1&quot;&gt;virtual&lt;/span&gt; BOOL OnInitDialog();&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;afx_msg &lt;span class=&quot;code-keyword1&quot;&gt;void&lt;/span&gt; OnSysCommand(UINT nID, LPARAM lParam);&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;afx_msg &lt;span class=&quot;code-keyword1&quot;&gt;void&lt;/span&gt; OnPaint();&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;afx_msg HCURSOR OnQueryDragIcon();&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;b&gt;afx_msg &lt;/b&gt;&lt;span class=&quot;code-keyword1&quot;&gt;&lt;b&gt;void&lt;/b&gt;&lt;/span&gt;&lt;b&gt; OnNotifyIcon(WPARAM wp, LPARAM lp);&lt;/b&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-comment1&quot;&gt;//}}AFX_MSG&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;&lt;br /&gt;
Then go to &lt;code&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;AFX_MSG_MAP&lt;/span&gt;&lt;/code&gt; and add the line in &lt;b&gt;bold&lt;/b&gt;.&lt;/div&gt;&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); border: 1pt solid rgb(251, 237, 187); color: #666666; font-family: inherit; padding: 2pt; text-align: justify;&quot;&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-comment1&quot;&gt;//{{AFX_MSG_MAP(CCTrayIconDemoDlg)&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;ON_WM_SYSCOMMAND()&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;ON_WM_PAINT()&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;ON_WM_QUERYDRAGICON()&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;b&gt;ON_REGISTERED_MESSAGE(WM_TI_NOTIFYICON, OnNotifyIcon)&lt;/b&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-comment1&quot;&gt;//}}AFX_MSG_MAP&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;&lt;br /&gt;
Replace the &lt;code&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;CTrayIcon&lt;/span&gt;&lt;/code&gt; object creation with the following code.&lt;/div&gt;&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); border: 1pt solid rgb(251, 237, 187); color: #666666; font-family: inherit; padding: 2pt; text-align: justify;&quot;&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-comment1&quot;&gt;// Define the CTrayIcon object&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;m_pTrayIcon = &lt;span class=&quot;code-keyword1&quot;&gt;new&lt;/span&gt; CTrayIcon(&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class=&quot;code-keyword1&quot;&gt;this&lt;/span&gt;, WM_TI_NOTIFYICON, pHandler, &lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;code-digit1&quot;&gt;3&lt;/span&gt;, pIconData, &lt;span class=&quot;code-digit1&quot;&gt;2&lt;/span&gt;, &lt;span class=&quot;code-digit1&quot;&gt;0&lt;/span&gt;, SECOND);&lt;/pre&gt;&lt;/div&gt;&lt;div style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;&lt;br /&gt;
Finally, redirect to the &lt;code&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;CTaskIcon&lt;/span&gt;&lt;/code&gt; method.&lt;/div&gt;&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); border: 1pt solid rgb(251, 237, 187); color: #666666; font-family: inherit; padding: 2pt; text-align: justify;&quot;&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&lt;span class=&quot;code-keyword1&quot;&gt;void&lt;/span&gt; CCTrayIconDemoDlg::OnNotifyIcon(WPARAM wParam,&amp;nbsp;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;LPARAM lParam) &lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;{ &lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;code-comment1&quot;&gt;// TODO&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_pTrayIcon-&lt;span class=&quot;code-keyword1&quot;&gt;&amp;gt;&lt;/span&gt;OnNotifyIcon(wParam, lParam);&lt;/pre&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(251, 237, 187); line-height: 14.4pt;&quot;&gt;}&lt;/pre&gt;&lt;/div&gt;&lt;h2 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;&amp;nbsp;&lt;/h2&gt;&lt;h2 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;History&lt;/h2&gt;&lt;ul style=&quot;color: #666666; font-family: inherit; text-align: justify;&quot; type=&quot;disc&quot;&gt;&lt;li class=&quot;MsoNormal&quot; style=&quot;background: none repeat scroll 0% 0% white; line-height: 14.4pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;23 August, 2004 -- Original      version posted&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;background: none repeat scroll 0% 0% white; line-height: 14.4pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;6 June, 2007 -- Article and      downloads updated&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;h2 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;&amp;nbsp;&lt;/h2&gt;&lt;h2 style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; text-align: justify;&quot;&gt;Reference&lt;/h2&gt;&lt;div style=&quot;background: none repeat scroll 0% 0% white; color: #666666; font-family: inherit; margin: 5pt 185.5pt 5pt 1.5pt; text-align: justify;&quot;&gt;&lt;a href=&quot;http://www.codeproject.com/KB/shell/CTrayIcon.aspx&quot;&gt;http://www.codeproject.com/KB/shell/CTrayIcon.aspx&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://muneeblog.blogspot.com/feeds/6818533611840566373/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://muneeblog.blogspot.com/2011/02/ctrayicon-system-tray-icon-wrapper.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/503467692687064057/posts/default/6818533611840566373'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/503467692687064057/posts/default/6818533611840566373'/><link rel='alternate' type='text/html' href='http://muneeblog.blogspot.com/2011/02/ctrayicon-system-tray-icon-wrapper.html' title='CTrayIcon - System Tray Icon Wrapper'/><author><name>Dost</name><uri>http://www.blogger.com/profile/07524982612160818255</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAzOYoQSP4HwZdLv3qceEgLxZ3-Nk2T4l-XcAv_CkfbFq1SnETUtIqPhH1crwRM_ZRgfaZMsLctJlHozYYCbWFjV20SxEENUlKIU_nMfyOytGoMY24-z7NcNDrPGKfKctCQNmKj_Kd9Lsz/s72-c/CTrayIcon_1.gif" height="72" width="72"/><thr:total>0</thr:total></entry></feed>