CINXE.COM
Eric White's Blog | Microsoft Learn
<!DOCTYPE html><html class="hasSidebar hasPageActions hasBreadcrumb conceptual has-default-focus theme-light" lang="en-us" dir="ltr" data-authenticated="false" data-auth-status-determined="false" data-target="docs" x-ms-format-detection="none"> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta property="og:title" content="Eric White's Blog" /> <meta property="og:type" content="website" /> <meta property="og:url" content="https://learn.microsoft.com/en-us/archive/blogs/ericwhite/" /><meta property="og:image" content="https://learn.microsoft.com/en-us/media/open-graph-image.png" /> <meta property="og:image:alt" content="Microsoft Learn" /> <meta name="twitter:card" content="summary_large_image" /> <meta name="twitter:site" content="@MicrosoftLearn" /> <meta name="color-scheme" content="light dark"><meta name="author" content="kexugit" /> <meta name="breadcrumb_path" content="/archive/blogs/bread/toc.json" /> <meta name="depot_name" content="MSDN.blogs-archive" /> <meta name="document_id" content="fa6cdbb7-d1dd-2b55-cae2-e6b4fcca8204" /> <meta name="document_version_independent_id" content="5524542d-52e6-5148-a685-2f0fd5f39c30" /> <meta name="feedback_help_link_type" content="" /> <meta name="feedback_help_link_url" content="" /> <meta name="feedback_product_url" content="" /> <meta name="feedback_system" content="None" /> <meta name="git_commit_id" content="5019655ffa733bb8ab1266cc2a6a7b70a1ecdfa6" /> <meta name="gitcommit" content="https://docs-archive.visualstudio.com/DefaultCollection/docs-archive-project/_git/blogs-archive-pr/commit/5019655ffa733bb8ab1266cc2a6a7b70a1ecdfa6?path=/blogs-archive/ericwhite/index.md&_a=contents" /> <meta name="is_archived" content="true" /> <meta name="locale" content="en-us" /> <meta name="ms.author" content="Archiveddocs" /> <meta name="ms.topic" content="Archived" /> <meta name="original_content_git_url" content="https://docs-archive.visualstudio.com/DefaultCollection/docs-archive-project/_git/blogs-archive-pr?path=/blogs-archive/ericwhite/index.md&version=GBlive&_a=contents" /> <meta name="page_type" content="conceptual" /> <meta name="ROBOTS" content="NOINDEX,NOFOLLOW" /> <meta name="schema" content="Conceptual" /> <meta name="site_name" content="Docs" /> <meta name="toc_rel" content="toc.json" /> <meta name="uhfHeaderId" content="MSDocsHeader-Archive" /> <meta name="updated_at" content="2024-09-25 03:21 AM" /> <meta name="word_count" content="1328" /> <meta name="persistent_id" content="48a45edb-61df-d912-ca04-f49f9dcb0c50" /> <meta name="platform_id" content="48a45edb-61df-d912-ca04-f49f9dcb0c50" /> <meta name="scope" content="Blogs" /><meta name="github_feedback_content_git_url" content="https://docs-archive.visualstudio.com/DefaultCollection/docs-archive-project/_git/blogs-archive-pr?path=/blogs-archive/ericwhite/index.md&version=GBlive&_a=contents" /><link href="https://learn.microsoft.com/en-us/archive/blogs/ericwhite/" rel="canonical"><title>Eric White's Blog | Microsoft Learn</title><link rel="stylesheet" href="/static/assets/0.4.029666293/styles/site-ltr.css"> <script id="msdocs-script"> var msDocs = {environment: { supportLevel: 'production', accessLevel: 'online', reviewFeatures: false, systemContent: true, azurePortalHostname: 'portal.azure.com', legacyHosting: false, siteName: 'learn', },data: { timeOrigin: Date.now(), contentLocale: 'en-us', contentDir: 'ltr', userLocale: 'en-us', userDir: 'ltr', pageTemplate: 'Conceptual', brand: '', context: {}, hasBinaryRating: false, feedbackHelpLinkType:'', feedbackHelpLinkUrl:'', standardFeedback: false, showFeedbackReport: false, enableTutorialFeedback: false, feedbackSystem: 'None', feedbackGitHubRepo: '', feedbackProductUrl: '',extendBreadcrumb: false,isEditDisplayable: false, hideViewSource: false, hasPageActions: true, hasPrintButton: true, hasBookmark: true, hasShare: true, isPermissioned: false, isPrivateUnauthorized: false,hasRecommendations: true,}, functions:{} }; </script><script src="https://wcpstatic.microsoft.com/mscc/lib/v2/wcp-consent.js"></script> <script src="https://js.monitor.azure.com/scripts/c/ms.jsll-4.min.js"></script><script src="/static/assets/0.4.029666293/global/deprecation.js"></script><script src="/static/assets/0.4.029666293/scripts/en-us/index-docs.js"></script></head> <body lang="en-us" dir="ltr"> <div class="header-holder has-default-focus"> <a href="#main" style="z-index: 1070" class="outline-color-text visually-hidden-until-focused position-fixed inner-focus focus-visible top-0 left-0 right-0 padding-xs text-align-center has-body-background" tabindex="1">Skip to main content</a><div hidden id="cookie-consent-holder" data-test-id="cookie-consent-container"></div> <div id="unsupported-browser" style=" background-color: white; color: black; padding: 16px; border-bottom: 1px solid grey;" hidden > <div style="max-width: 800px; margin: 0 auto;"> <p style="font-size: 24px">This browser is no longer supported.</p> <p style="font-size: 16px; margin-top: 16px;">Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.</p> <div style="margin-top: 12px;"> <a href="https://go.microsoft.com/fwlink/p/?LinkID=2092881 " style=" background-color: #0078d4; border: 1px solid #0078d4; color: white; padding: 6px 12px; border-radius: 2px; display: inline-block; ">Download Microsoft Edge</a> <a href="https://learn.microsoft.com/en-us/lifecycle/faq/internet-explorer-microsoft-edge" style=" background-color: white; padding: 6px 12px; border: 1px solid #505050; color: #171717; border-radius: 2px; display: inline-block; ">More info about Internet Explorer and Microsoft Edge</a> </div> </div> </div> <!-- liquid-tag banners global --> <!-- site header --> <header id="ms--site-header" data-test-id="site-header-wrapper" role="banner" itemscope="itemscope" itemtype="http://schema.org/Organization"> <div id="ms--mobile-nav" class="site-header display-none-tablet padding-inline-none gap-none" data-bi-name="mobile-header" data-test-id="mobile-header"></div> <div id="ms--primary-nav" class="site-header display-none display-flex-tablet" data-bi-name="L1-header" data-test-id="primary-header"></div> <div id="ms--secondary-nav" class="site-header display-none display-flex-tablet" data-bi-name="L2-header" data-test-id="secondary-header"></div> </header><div id="content-header" class="content-header uhf-container has-padding has-default-focus border-bottom-none" data-bi-name="content-header"> <div class="content-header-controls margin-xxs margin-inline-sm-tablet"> <button type="button" class="contents-button button button-sm margin-right-xxs" data-bi-name="contents-expand" aria-haspopup="true" data-contents-button> <span class="icon"><span class="docon docon-menu" aria-hidden="true"></span></span> <span class="contents-expand-title">Table of contents</span> </button> <button type="button" class="ap-collapse-behavior ap-expanded button button-sm" data-bi-name="ap-collapse" aria-controls="action-panel"> <span class="icon"><span class="docon docon-exit-mode" aria-hidden="true"></span></span> <span>Exit focus mode</span> </button> </div> </div><div id="disclaimer-holder" class="has-overflow-hidden has-default-focus"> <!-- liquid-tag banners sectional --> </div> </div> <div class="mainContainer uhf-container has-default-focus" data-bi-name="body"> <div class="columns has-large-gaps is-gapless-mobile "><div id="left-container" class="left-container is-hidden-mobile column is-one-third-tablet is-one-quarter-desktop"> <nav id="affixed-left-container" class="margin-top-sm-tablet position-sticky display-flex flex-direction-column" aria-label="Primary"></nav> </div><!-- .primary-holder --> <section class="primary-holder column is-two-thirds-tablet is-three-quarters-desktop"> <!--div.columns --> <div class="columns is-gapless-mobile has-large-gaps "><div id="main-column" class="column is-full is-8-desktop"> <main id="main" class="" role="main" data-bi-name="content" lang="en-us" dir="ltr"><!-- article-header --> <div id="article-header" class="background-color-body margin-top-sm-tablet margin-bottom-xs display-none-print"> <div class="display-flex align-items-center "><details id="article-header-breadcrumbs-overflow-popover" class="popover" data-for="article-header-breadcrumbs"> <summary class="button button-clear button-primary button-sm inner-focus" aria-label="All breadcrumbs"> <span class="icon"> <span class="docon docon-more"></span> </span> </summary> <div id="article-header-breadcrumbs-overflow" class="popover-content padding-none"> </div> </details> <bread-crumbs id="article-header-breadcrumbs" data-test-id="article-header-breadcrumbs" class="overflow-hidden flex-grow-1 margin-right-sm margin-right-md-tablet margin-right-lg-desktop margin-left-negative-xxs padding-left-xxs"></bread-crumbs><div id="article-header-page-actions" class="opacity-none margin-left-auto display-flex flex-wrap-no-wrap align-items-stretch"><a id="lang-link-tablet" class="button button-primary button-clear button-sm display-none display-inline-flex-tablet" title="Read in English" data-bi-name="language-toggle" data-read-in-link hidden> <span class="icon margin-none" aria-hidden="true" data-read-in-link-icon> <span class="docon docon-locale-globe"></span> </span> <span class="is-visually-hidden" data-read-in-link-text>Read in English</span> </a><button type="button" class="collection button button-clear button-sm button-primary display-none display-inline-flex-tablet" data-list-type="collection" data-bi-name="collection" title="Add to collection"> <span class="icon margin-none" aria-hidden="true"> <span class="docon docon-circle-addition"></span> </span> <span class="collection-status is-visually-hidden">Save</span> </button> <details class="popover popover-right" id="article-header-page-actions-overflow"> <summary class="justify-content-flex-start button button-clear button-sm button-primary" aria-label="More actions" title="More actions"> <span class="icon" aria-hidden="true"> <span class="docon docon-more-vertical"></span> </span> </summary> <div class="popover-content padding-xs"><button data-page-action-item="overflow-mobile" type="button" class="justify-content-flex-start button-block button-sm has-inner-focus button button-clear display-none-tablet" data-bi-name="contents-expand" data-contents-button data-popover-close> <span class="icon"> <span class="docon docon-editor-list-bullet" aria-hidden="true"></span> </span><span class="contents-expand-title">Table of contents</span></button><a id="lang-link-overflow" class="justify-content-flex-start button-sm has-inner-focus button button-clear button-block display-none-tablet" title="Read in English" data-bi-name="language-toggle" data-page-action-item="overflow-mobile" data-check-hidden="true" data-read-in-link hidden > <span class="icon" aria-hidden="true" data-read-in-link-icon> <span class="docon docon-locale-globe"></span> </span> <span data-read-in-link-text>Read in English</span> </a><button type="button" class="collection justify-content-flex-start button button-clear button-sm has-inner-focus button-block display-none-tablet" data-list-type="collection" data-bi-name="collection" title="Save" data-page-action-item="overflow-mobile" data-check-hidden="true" data-popover-close> <span class="icon" aria-hidden="true"> <span class="docon docon-circle-addition"></span> </span> <span class="collection-status">Save</span> </button> <button type="button" class="collection justify-content-flex-start button button-clear button-sm has-inner-focus button-block display-none-tablet" data-list-type="plan" data-bi-name="plan" title="Add to plan" data-page-action-item="overflow-mobile" data-check-hidden="true" data-popover-close hidden> <span class="icon" aria-hidden="true"> <span class="docon docon-circle-addition"></span> </span> <span class="plan-status">Add to plan</span> </button><div aria-hidden="true" class="margin-none" data-page-action-item="overflow-all"></div> <hr class="display-none-tablet margin-bottom-xxs margin-top-xxs" /> <h4 class="font-size-sm padding-left-xxs">Share via</h4> <a class="button button-clear button-sm button-block has-inner-focus text-decoration-none justify-content-flex-start share-facebook" data-bi-name="facebook" data-page-action-item="overflow-all"> <span class="icon" aria-hidden="true"> <span class="docon docon-facebook-share font-size-md color-primary"></span> </span> <span class="margin-left-xxs">Facebook</span> </a> <a class="button button-clear button-sm has-inner-focus button-block text-decoration-none justify-content-flex-start share-twitter" data-bi-name="twitter" data-page-action-item="overflow-all"> <span class="icon" aria-hidden="true"> <span class="docon docon-xlogo-share font-size-xxs"></span> </span> <span class="margin-left-xxs">x.com</span> </a> <a class="button button-clear button-sm has-inner-focus button-block text-decoration-none justify-content-flex-start share-linkedin" data-bi-name="linkedin" data-page-action-item="overflow-all"> <span class="icon" aria-hidden="true"> <span class="docon docon-linked-in-logo font-size-sm color-primary"></span> </span> <span class="margin-left-xxs">LinkedIn</span> </a> <a class="button button-clear button-sm button-block has-inner-focus text-decoration-none justify-content-flex-start margin-bottom-xxs share-email" data-bi-name="email" data-page-action-item="overflow-all"> <span class="icon" aria-hidden="true"> <span class="docon docon-mail-message font-size-sm color-primary"></span> </span> <span class="margin-left-xxs">Email</span> </a><hr /> <button class="button button-block button-clear button-sm justify-content-flex-start has-inner-focus margin-top-xxs" title="Print" type="button" aria-label="Print" data-bi-name="print" data-page-action-item="overflow-all" data-popover-close data-print-page data-check-hidden="true"> <span class="icon" aria-hidden="true"> <span class="docon docon-print font-size-sm color-primary"></span> </span> <span class="margin-left-xxs">Print</span> </button> </div> </details> </div></div> </div> <!-- end article-header --><div> <button type="button" class="border contents-button button button-clear button-sm is-hidden-tablet has-inner-focus" data-bi-name="contents-expand" data-contents-button hidden> <span class="icon"> <span class="docon docon-editor-list-bullet" aria-hidden="true"></span> </span><span class="contents-expand-title">Table of contents</span></button> </div><!-- end mobile-contents button --> <div class="content "><h1 id="eric-whites-blog">Eric White's Blog</h1><div class="display-flex justify-content-space-between align-items-center flex-wrap-wrap page-metadata-container"> <div class="margin-right-xxs"> <ul class="metadata page-metadata" data-bi-name="page info" lang="en-us" dir="ltr"><li>Article</li><li> <time class="is-invisible" data-article-date aria-label="Article review date" datetime="2024-09-25T03:21:52.903Z" data-article-date-source="git">9/25/2024</time> </li></ul> </div></div><nav id="center-doc-outline" class="doc-outline is-hidden-desktop display-none-print margin-bottom-sm" data-bi-name="intopic toc" aria-label="In this article"> <h2 id="ms--in-this-article" class="title is-6 margin-block-xs">In this article</h2> </nav><!-- <content> --><h3 id="leaving-microsoft-blog-moving-to-ericwhitecom"><a href="../ericwhite/leaving-microsoft-blog-moving-to-ericwhite-com" data-linktype="relative-path">Leaving Microsoft, Blog Moving to EricWhite.com</a></h3> <p>Due to personal obligations (moving away from Seattle) it is with sadness that I’m announcing...</p> <p>Date: 01/19/2011</p> <h3 id="using-the-odata-rest-api-for-crud-operations-on-a-sharepoint-list"><a href="../ericwhite/using-the-odata-rest-api-for-crud-operations-on-a-sharepoint-list" data-linktype="relative-path">Using the OData Rest API for CRUD Operations on a SharePoint List</a></h3> <p>SharePoint 2010 exposes list data via OData. This post contains four super-small code snippets that...</p> <p>Date: 12/17/2010</p> <h3 id="comparing-excel-automation-to-excel-services"><a href="../ericwhite/comparing-excel-automation-to-excel-services" data-linktype="relative-path">Comparing Excel Automation to Excel Services</a></h3> <p>In a previous post, I compared and contrasted Word Automation to Word Automation Services. There is...</p> <p>Date: 12/16/2010</p> <h3 id="microsoft-word-2010-developer-building-blocks"><a href="../ericwhite/microsoft-word-2010-developer-building-blocks" data-linktype="relative-path">Microsoft Word 2010 Developer Building Blocks</a></h3> <p>Extending Microsoft Word 2010 is one of the most effective ways to augment content and enable richer...</p> <p>Date: 12/15/2010</p> <h3 id="how-to-install-and-activate-the-iw-demoevaluation-hyper-v-machine"><a href="../ericwhite/how-to-install-and-activate-the-iw-demoevaluation-hyper-v-machine" data-linktype="relative-path">How to Install and Activate the IW Demo/Evaluation Hyper-V Machine</a></h3> <p>The 2010 Information Worker Demonstration and Evaluation Virtual Machine is the easiest way to...</p> <p>Date: 12/13/2010</p> <h3 id="getting-started-using-the-odata-rest-api-to-query-a-sharepoint-list"><a href="../ericwhite/getting-started-using-the-odata-rest-api-to-query-a-sharepoint-list" data-linktype="relative-path">Getting Started using the OData REST API to Query a SharePoint List</a></h3> <p>SharePoint 2010 exposes list data via OData. I’m currently working on an article around...</p> <p>Date: 12/09/2010</p> <h3 id="understanding-the-difference-between-custom-task-panes-and-action-panes"><a href="../ericwhite/understanding-the-difference-between-custom-task-panes-and-action-panes" data-linktype="relative-path">Understanding the Difference between Custom Task Panes and Action Panes</a></h3> <p>To the user, custom task panes and action panes have an identical appearance. Custom task panes and...</p> <p>Date: 12/09/2010</p> <h3 id="understanding-the-architecture-of-office-2010-managed-add-ins-and-customizations"><a href="../ericwhite/understanding-the-architecture-of-office-2010-managed-add-ins-and-customizations" data-linktype="relative-path">Understanding the Architecture of Office 2010 Managed Add-Ins and Customizations</a></h3> <p>The most important technology for building Office applications is that of managed customizations...</p> <p>Date: 12/08/2010</p> <h3 id="what-is-the-difference-between-word-automation-and-word-automation-services"><a href="../ericwhite/what-is-the-difference-between-word-automation-and-word-automation-services" data-linktype="relative-path">What is the Difference between ‘Word Automation’ and ‘Word Automation Services’?</a></h3> <p>‘Word Automation’ and ‘Word Automation Services’ are two developer building...</p> <p>Date: 12/07/2010</p> <h3 id="understanding-the-three-approaches-to-office-development-using-vsto"><a href="../ericwhite/understanding-the-three-approaches-to-office-development-using-vsto" data-linktype="relative-path">Understanding the Three Approaches to Office Development using VSTO</a></h3> <p>When using Visual Studio Tools for Office (VSTO), there are three basic approaches to Office...</p> <p>Date: 12/02/2010</p> <h3 id="office-application-scenarios"><a href="../ericwhite/office-application-scenarios" data-linktype="relative-path">Office Application Scenarios</a></h3> <p>Many developers identify and document developer scenarios while designing software before writing...</p> <p>Date: 11/30/2010</p> <h3 id="overview-of-office-2010-application-development"><a href="../ericwhite/overview-of-office-2010-application-development" data-linktype="relative-path">Overview of Office 2010 Application Development</a></h3> <p>You can use a variety of approaches to extend Microsoft Office 2010. There are multiple ways to...</p> <p>Date: 11/29/2010</p> <h3 id="officesharepoint-building-blocks-and-developer-stories"><a href="../ericwhite/officesharepoint-building-blocks-and-developer-stories" data-linktype="relative-path">Office/SharePoint Building Blocks and Developer Stories</a></h3> <p>For the last few months, it has been my assigned job to think and write about Office and SharePoint...</p> <p>Date: 11/23/2010</p> <h3 id="easy-sharepoint-2010-setup-for-developers-on-windows-7"><a href="../ericwhite/easy-sharepoint-2010-setup-for-developers-on-windows-7" data-linktype="relative-path">Easy SharePoint 2010 Setup for Developers on Windows 7</a></h3> <p>Chris Johnson and Paul Stubbs have released some PowerShell scripts that make it easy to setup...</p> <p>Date: 11/02/2010</p> <h3 id="sharepoint-developer-building-blocks-technologies-for-creating-sharepoint-applications"><a href="../ericwhite/sharepoint-developer-building-blocks-technologies-for-creating-sharepoint-applications" data-linktype="relative-path">SharePoint Developer Building Blocks: Technologies for Creating SharePoint Applications</a></h3> <p>You can use a variety of languages, frameworks, object models, and tools to build scalable...</p> <p>Date: 10/26/2010</p> <h3 id="building-a-simple-recursive-descent-parser-completed-simple-parser"><a href="../ericwhite/building-a-simple-recursive-descent-parser-completed-simple-parser" data-linktype="relative-path">Building a Simple Recursive Descent Parser (Completed Simple Parser)</a></h3> <p>In this post, I complete the recursive descent parser that will parse the simple grammar that I...</p> <p>Date: 09/23/2010</p> <h3 id="building-a-simple-recursive-descent-parser-continued"><a href="../ericwhite/building-a-simple-recursive-descent-parser-continued" data-linktype="relative-path">Building a Simple Recursive Descent Parser (continued)</a></h3> <p>In this post, I further enhance the recursive descent parser that will parse the simple grammar that...</p> <p>Date: 08/03/2010</p> <h3 id="building-a-simple-recursive-descent-parser"><a href="../ericwhite/building-a-simple-recursive-descent-parser" data-linktype="relative-path">Building a Simple Recursive Descent Parser</a></h3> <p>In this post, I present the start of a recursive descent parser that will parse the simple grammar...</p> <p>Date: 07/30/2010</p> <h3 id="table-markup-in-open-xml-spreadsheetml"><a href="../ericwhite/table-markup-in-open-xml-spreadsheetml" data-linktype="relative-path">Table Markup in Open XML SpreadsheetML</a></h3> <p>Tables are a feature in Open XML spreadsheets that allow you to interact with data more like a...</p> <p>Date: 07/21/2010</p> <h3 id="writing-and-hosting-a-web-service-in-the-sharepoint-2010-demo-virtual-machine"><a href="../ericwhite/writing-and-hosting-a-web-service-in-the-sharepoint-2010-demo-virtual-machine" data-linktype="relative-path">Writing and Hosting a Web Service in the SharePoint 2010 Demo Virtual Machine</a></h3> <p>Coding and hosting a WCF web service is a great way to experiment with Business Connectivity...</p> <p>Date: 07/16/2010</p> <h3 id="creating-a-collection-from-singletons-and-collections-using-linq"><a href="../ericwhite/creating-a-collection-from-singletons-and-collections-using-linq" data-linktype="relative-path">Creating a Collection from Singletons and Collections using LINQ</a></h3> <p>A key operation when doing pure functional transformations is the process of creating complex...</p> <p>Date: 07/15/2010</p> <h3 id="recursive-descent-parser-a-simple-grammar"><a href="../ericwhite/recursive-descent-parser-a-simple-grammar" data-linktype="relative-path">Recursive Descent Parser: A Simple Grammar</a></h3> <p>To learn how recursive descent parsers work, it is helpful to implement a very simple grammar, so...</p> <p>Date: 07/13/2010</p> <h3 id="exploring-the-bcs-metadata-schema"><a href="../ericwhite/exploring-the-bcs-metadata-schema" data-linktype="relative-path">Exploring the BCS Metadata Schema</a></h3> <p>When developers are first getting started using BCS, they typically use SharePoint Designer (or...</p> <p>Date: 07/09/2010</p> <h3 id="great-video-on-javascript-by-douglas-crockford"><a href="../ericwhite/great-video-on-javascript-by-douglas-crockford" data-linktype="relative-path">Great Video on JavaScript by Douglas Crockford</a></h3> <p>As a software engineer, it is necessary to stay abreast of relevant technologies. Working with...</p> <p>Date: 07/07/2010</p> <h3 id="recursive-descent-parser-using-linq-the-augmented-backus-naur-form-grammar"><a href="../ericwhite/recursive-descent-parser-using-linq-the-augmented-backus-naur-form-grammar" data-linktype="relative-path">Recursive Descent Parser using LINQ: The Augmented Backus-Naur Form Grammar</a></h3> <p>[Blog Map] This blog is inactive. New blog: EricWhite.com/blogA grammar is a device to define syntax...</p> <p>Date: 07/06/2010</p> <h3 id="processing-all-content-parts-in-an-open-xml-wordprocessingml-document"><a href="../ericwhite/processing-all-content-parts-in-an-open-xml-wordprocessingml-document" data-linktype="relative-path">Processing all Content Parts in an Open XML WordprocessingML Document</a></h3> <p>In Open XML WordprocessingML documents, there are five types of parts that can contain content such...</p> <p>Date: 07/02/2010</p> <h3 id="microsoft-patterns-and-practices-developing-applications-for-sharepoint-2010"><a href="../ericwhite/microsoft-patterns-and-practices-developing-applications-for-sharepoint-2010" data-linktype="relative-path">Microsoft patterns and practices: Developing Applications for SharePoint 2010</a></h3> <p>Microsoft patterns and practices have released a guide: Developing Applications for SharePoint...</p> <p>Date: 06/30/2010</p> <h3 id="writing-a-recursive-descent-parser-using-c-and-linq"><a href="../ericwhite/writing-a-recursive-descent-parser-using-c-and-linq" data-linktype="relative-path">Writing a Recursive Descent Parser using C# and LINQ</a></h3> <p>Recursive descent parsers are one of the easier types of parsers to implement. Given a properly...</p> <p>Date: 06/29/2010</p> <h3 id="khan-academy-free-lectures-on-math-physics-biology-economics-and-history"><a href="../ericwhite/khan-academy-free-lectures-on-math-physics-biology-economics-and-history" data-linktype="relative-path">Khan Academy: Free Lectures on Math, Physics, Biology, Economics, and History</a></h3> <p>It is very rare that I go so far off-topic on my blog, but then again, it is very rare that I find...</p> <p>Date: 06/28/2010</p> <h3 id="open-xml-package-editor-power-tool-for-visual-studio-2010"><a href="../ericwhite/open-xml-package-editor-power-tool-for-visual-studio-2010" data-linktype="relative-path">Open XML Package Editor Power Tool for Visual Studio 2010</a></h3> <p>The VSTO team today announced the release of the new Open XML Package Editor for Visual Studio 2010!...</p> <p>Date: 06/22/2010</p> <h3 id="consuming-a-claims-enabled-wcf-web-service-as-a-sharepoint-2010-external-content-type"><a href="../ericwhite/consuming-a-claims-enabled-wcf-web-service-as-a-sharepoint-2010-external-content-type" data-linktype="relative-path">Consuming a Claims-Enabled WCF Web Service as a SharePoint 2010 External Content Type</a></h3> <p>This article is the fourth and last in a series of MSDN articles on creating a claims-aware web...</p> <p>Date: 06/18/2010</p> <h3 id="establishing-trust-between-a-wcf-web-service-and-the-sharepoint-2010-security-token-service"><a href="../ericwhite/establishing-trust-between-a-wcf-web-service-and-the-sharepoint-2010-security-token-service" data-linktype="relative-path">Establishing Trust between a WCF Web Service and the SharePoint 2010 Security Token Service</a></h3> <p>This article is the third in a series of MSDN articles on creating a claims-aware web service and...</p> <p>Date: 06/18/2010</p> <h3 id="access-denied-by-business-data-connectivity"><a href="../ericwhite/access-denied-by-business-data-connectivity" data-linktype="relative-path">Access denied by Business Data Connectivity</a></h3> <p>Sometimes when you are creating and modifying External Content Types (ECT), you may see the error...</p> <p>Date: 06/11/2010</p> <h3 id="job-opening-in-our-group-at-microsoft"><a href="../ericwhite/job-opening-in-our-group-at-microsoft" data-linktype="relative-path">Job Opening in our Group at Microsoft</a></h3> <p>J.P. Bagel (my manager’s manager) has posted a new job opening for a content manager in our...</p> <p>Date: 06/03/2010</p> <h3 id="msdn-blog-platform-upgrade"><a href="../ericwhite/msdn-blog-platform-upgrade" data-linktype="relative-path">MSDN Blog Platform Upgrade</a></h3> <p>After many years of dealing with an out-dated blog platform, all MSDN and TechNet blogs (including...</p> <p>Date: 05/14/2010</p> <h3 id="determining-caller-identity-within-a-wcf-web-service"><a href="../ericwhite/determining-caller-identity-within-a-wcf-web-service" data-linktype="relative-path">Determining Caller Identity within a WCF Web Service</a></h3> <p>This post is the second in a series of upcoming MSDN articles. It builds on the web service that was...</p> <p>Date: 05/13/2010</p> <h3 id="getting-started-building-a-wcf-web-service"><a href="../ericwhite/getting-started-building-a-wcf-web-service" data-linktype="relative-path">Getting Started Building a WCF Web Service</a></h3> <p>This post is the first in a series of upcoming MSDN articles on creating a claims-aware web service...</p> <p>Date: 05/11/2010</p> <h3 id="removing-speaker-notes-from-a-set-of-powerpoint-presentations"><a href="../ericwhite/removing-speaker-notes-from-a-set-of-powerpoint-presentations" data-linktype="relative-path">Removing Speaker Notes from a set of PowerPoint Presentations</a></h3> <p>Sometimes you want to prepare a set of PowerPoint presentations for distribution outside your...</p> <p>Date: 05/04/2010</p> <h3 id="sharepoint-interoperability-event"><a href="../ericwhite/sharepoint-interoperability-event" data-linktype="relative-path">SharePoint Interoperability Event</a></h3> <p>Here is an interesting opportunity if you are a developer working on a product that interacts with...</p> <p>Date: 04/29/2010</p> <h3 id="searching-external-data-in-sharepoint-2010-using-business-connectivity-services"><a href="../ericwhite/searching-external-data-in-sharepoint-2010-using-business-connectivity-services" data-linktype="relative-path">Searching External Data in SharePoint 2010 Using Business Connectivity Services</a></h3> <p>Business Connectivity Services (BCS) are a set of services and features that provide a way to...</p> <p>Date: 04/27/2010</p> <h3 id="office-2010-reaches-rtm"><a href="../ericwhite/office-2010-reaches-rtm" data-linktype="relative-path">Office 2010 Reaches RTM</a></h3> <p>Today we reached RTM for Office 2010, SharePoint 2010, Visio 2010, and Project 2010! The Office...</p> <p>Date: 04/16/2010</p> <h3 id="controlling-namespace-serialization-of-linq-to-xml"><a href="../ericwhite/controlling-namespace-serialization-of-linq-to-xml" data-linktype="relative-path">Controlling Namespace Serialization of LINQ to XML</a></h3> <p>You can explicitly control how LINQ to XML serializes the namespaces for an XML tree. You can...</p> <p>Date: 04/16/2010</p> <h3 id="using-the-open-xml-sdk-from-within-a-managed-add-in"><a href="../ericwhite/using-the-open-xml-sdk-from-within-a-managed-add-in" data-linktype="relative-path">Using the Open XML SDK from within a Managed Add-In</a></h3> <p>When you are writing code for an Office managed add-in, you can use the Open XML SDK to manipulate...</p> <p>Date: 04/09/2010</p> <h3 id="determining-if-an-open-xml-wordprocessingml-document-contains-tracked-changes"><a href="../ericwhite/determining-if-an-open-xml-wordprocessingml-document-contains-tracked-changes" data-linktype="relative-path">Determining if an Open XML WordprocessingML Document contains Tracked Changes</a></h3> <p>Processing tracked changes (sometimes known as tracked revisions) is something important that you...</p> <p>Date: 04/08/2010</p> <h3 id="support-for-isoiec-29500-strict-in-microsoft-office"><a href="../ericwhite/support-for-isoiec-29500-strict-in-microsoft-office" data-linktype="relative-path">Support for ISO/IEC 29500 Strict in Microsoft Office</a></h3> <p>Doug Mahugh has a very interesting post on our plans for Microsoft Office to offer full read/write...</p> <p>Date: 04/06/2010</p> <h3 id="using-content-controls-to-give-semantic-meaning-to-content-in-open-xml-wordprocessingml-documents"><a href="../ericwhite/using-content-controls-to-give-semantic-meaning-to-content-in-open-xml-wordprocessingml-documents" data-linktype="relative-path">Using Content Controls to give Semantic Meaning to Content in Open XML WordprocessingML Documents</a></h3> <p>A wide variety of business applications can take advantage of content controls to give semantic...</p> <p>Date: 03/31/2010</p> <h3 id="sharepoint-2010-and-office-2010-videos-from-the-sharepoint-conference-2009"><a href="../ericwhite/sharepoint-2010-and-office-2010-videos-from-the-sharepoint-conference-2009" data-linktype="relative-path">SharePoint 2010 and Office 2010 Videos from the SharePoint Conference 2009</a></h3> <p>We’ve published ten of the most popular videos from the SharePoint Conference.SharePoint 2010...</p> <p>Date: 03/30/2010</p> <h3 id="testing-for-base-styles-in-open-xml-wordprocessingml-documents"><a href="../ericwhite/testing-for-base-styles-in-open-xml-wordprocessingml-documents" data-linktype="relative-path">Testing for Base Styles in Open XML WordprocessingML Documents</a></h3> <p>Sometimes you want to process all paragraphs in a document, and filter based on the style name....</p> <p>Date: 03/29/2010</p> <h3 id="assembling-documents-on-sharepoint-2010-sites-by-merging-content-from-excel-powerpoint-and-word"><a href="../ericwhite/assembling-documents-on-sharepoint-2010-sites-by-merging-content-from-excel-powerpoint-and-word" data-linktype="relative-path">Assembling Documents on SharePoint 2010 Sites by Merging Content from Excel, PowerPoint, and Word</a></h3> <p>Zeyad Rajabi and Frank Rice have put together a cool article, Assembling Documents on SharePoint...</p> <p>Date: 03/26/2010</p> <h3 id="bandwidth-adjusting-videos-on-msdn"><a href="../ericwhite/bandwidth-adjusting-videos-on-msdn" data-linktype="relative-path">Bandwidth-Adjusting Videos on MSDN</a></h3> <p>Now this is just cool. Many of the videos published on MSDN have been moved to the MSN video...</p> <p>Date: 03/25/2010</p> <p><a href="../ericwhite/page-2" data-linktype="relative-path">Next></a></p> </div><div id="ms--inline-notifications" class="margin-block-xs" data-bi-name="inline-notification"></div><div id="assertive-live-region" role="alert" aria-live="assertive" class="visually-hidden" aria-relevant="additions" aria-atomic="true"></div> <div id="polite-live-region" role="status" aria-live="polite" class="visually-hidden" aria-relevant="additions" aria-atomic="true"></div> <!-- </content> --> </main><!-- recommendations section --><!-- end recommendations section --> <!-- feedback section --><!-- end feedback section --> <!-- feedback report section --><!-- end feedback report section --><aside id="ms--additional-resources-mobile" aria-label="Additional resources" class="display-none-desktop display-none-print" > <hr class="hr" hidden /> <h2 id="ms--additional-resources-mobile-heading" class="title is-3" hidden>Additional resources</h2> <section id="right-rail-recommendations-mobile" data-bi-name="recommendations" hidden></section> <section id="right-rail-training-mobile" data-bi-name="learning-resources-card" hidden></section> <section id="right-rail-events-mobile" data-bi-name="events-card" hidden></section> <section id="right-rail-qna-mobile" data-bi-name="qna-link-card" hidden></section> </aside><div class="border-top is-visible-interactive has-default-focus margin-top-sm "><footer id="footer-interactive" data-bi-name="footer" class="footer-layout"><div class="display-flex gap-xs flex-wrap-wrap is-full-height padding-right-lg-desktop"><a data-mscc-ic="false" class="locale-selector-link button button-sm button-clear flex-shrink-0" href="#" data-bi-name="select-locale"> <span class="icon" aria-hidden="true"> <span class="docon docon-world"></span> </span> <span class="local-selector-link-text"></span></a><div class="ccpa-privacy-link" data-ccpa-privacy-link hidden> <a href="https://aka.ms/yourcaliforniaprivacychoices" class="button button-sm button-clear flex-shrink-0" data-mscc-ic="false" data-bi-name="your-privacy-choices" > <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 14" xml:space="preserve" height="16" width="43" aria-hidden="true" focusable="false" > <path d="M7.4 12.8h6.8l3.1-11.6H7.4C4.2 1.2 1.6 3.8 1.6 7s2.6 5.8 5.8 5.8z" style="fill-rule:evenodd;clip-rule:evenodd;fill:#fff"></path> <path d="M22.6 0H7.4c-3.9 0-7 3.1-7 7s3.1 7 7 7h15.2c3.9 0 7-3.1 7-7s-3.2-7-7-7zm-21 7c0-3.2 2.6-5.8 5.8-5.8h9.9l-3.1 11.6H7.4c-3.2 0-5.8-2.6-5.8-5.8z" style="fill-rule:evenodd;clip-rule:evenodd;fill:#06f"></path> <path d="M24.6 4c.2.2.2.6 0 .8L22.5 7l2.2 2.2c.2.2.2.6 0 .8-.2.2-.6.2-.8 0l-2.2-2.2-2.2 2.2c-.2.2-.6.2-.8 0-.2-.2-.2-.6 0-.8L20.8 7l-2.2-2.2c-.2-.2-.2-.6 0-.8.2-.2.6-.2.8 0l2.2 2.2L23.8 4c.2-.2.6-.2.8 0z" style="fill:#fff"></path> <path d="M12.7 4.1c.2.2.3.6.1.8L8.6 9.8c-.1.1-.2.2-.3.2-.2.1-.5.1-.7-.1L5.4 7.7c-.2-.2-.2-.6 0-.8.2-.2.6-.2.8 0L8 8.6l3.8-4.5c.2-.2.6-.2.9 0z" style="fill:#06f"></path> </svg> <span>Your Privacy Choices</span> </a> </div> <div class="flex-shrink-0"> <div class="dropdown has-caret-up"> <button class="dropdown-trigger button button-clear button-sm has-inner-focus theme-dropdown-trigger" aria-controls="theme-menu-interactive" aria-expanded="false" title="Theme" data-bi-name="theme"> <span class="icon"> <span class="docon docon-sun" aria-hidden="true"></span> </span> <span>Theme</span> <span class="icon expanded-indicator" aria-hidden="true"> <span class="docon docon-chevron-down-light"></span> </span> </button> <div class="dropdown-menu" id="theme-menu-interactive" role="menu"> <ul class="theme-selector padding-xxs" role="none"> <li class="theme display-block" role="menuitem"> <button class="button button-clear button-sm theme-control button-block justify-content-flex-start" data-theme-to="light"> <span class="theme-light margin-right-xxs"> <span class="theme-selector-icon border display-inline-block has-body-background" aria-hidden="true"> <svg class="svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 14"> <rect width="22" height="14" class="has-fill-body-background" /> <rect x="5" y="5" width="12" height="4" class="has-fill-secondary" /> <rect x="5" y="2" width="2" height="1" class="has-fill-secondary" /> <rect x="8" y="2" width="2" height="1" class="has-fill-secondary" /> <rect x="11" y="2" width="3" height="1" class="has-fill-secondary" /> <rect x="1" y="1" width="2" height="2" class="has-fill-secondary" /> <rect x="5" y="10" width="7" height="2" rx="0.3" class="has-fill-primary" /> <rect x="19" y="1" width="2" height="2" rx="1" class="has-fill-secondary" /> </svg> </span> </span> <span>Light</span> </button> </li> <li class="theme display-block" role="menuitem"> <button class="button button-clear button-sm theme-control button-block justify-content-flex-start" data-theme-to="dark"> <span class="theme-dark margin-right-xxs"> <span class="border theme-selector-icon display-inline-block has-body-background" aria-hidden="true"> <svg class="svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 14"> <rect width="22" height="14" class="has-fill-body-background" /> <rect x="5" y="5" width="12" height="4" class="has-fill-secondary" /> <rect x="5" y="2" width="2" height="1" class="has-fill-secondary" /> <rect x="8" y="2" width="2" height="1" class="has-fill-secondary" /> <rect x="11" y="2" width="3" height="1" class="has-fill-secondary" /> <rect x="1" y="1" width="2" height="2" class="has-fill-secondary" /> <rect x="5" y="10" width="7" height="2" rx="0.3" class="has-fill-primary" /> <rect x="19" y="1" width="2" height="2" rx="1" class="has-fill-secondary" /> </svg> </span> </span> <span>Dark</span> </button> </li> <li class="theme display-block" role="menuitem"> <button class="button button-clear button-sm theme-control button-block justify-content-flex-start" data-theme-to="high-contrast"> <span class="theme-high-contrast margin-right-xxs"> <span class="border theme-selector-icon display-inline-block has-body-background" aria-hidden="true"> <svg class="svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 14"> <rect width="22" height="14" class="has-fill-body-background" /> <rect x="5" y="5" width="12" height="4" class="has-fill-secondary" /> <rect x="5" y="2" width="2" height="1" class="has-fill-secondary" /> <rect x="8" y="2" width="2" height="1" class="has-fill-secondary" /> <rect x="11" y="2" width="3" height="1" class="has-fill-secondary" /> <rect x="1" y="1" width="2" height="2" class="has-fill-secondary" /> <rect x="5" y="10" width="7" height="2" rx="0.3" class="has-fill-primary" /> <rect x="19" y="1" width="2" height="2" rx="1" class="has-fill-secondary" /> </svg> </span> </span> <span>High contrast</span> </button> </li> </ul> </div> </div> </div> </div> <ul class="links" data-bi-name="footerlinks"> <li class="manage-cookies-holder" hidden></li><li><a class="external-link-indicator" data-mscc-ic="false" href="/en-us/previous-versions/" data-bi-name="archivelink">Previous Versions</a></li> <li><a class="external-link-indicator" data-mscc-ic="false" href="https://techcommunity.microsoft.com/t5/microsoft-learn-blog/bg-p/MicrosoftLearnBlog" data-bi-name="bloglink">Blog</a></li> <li><a class="external-link-indicator" data-mscc-ic="false" href="/en-us/contribute/" data-bi-name="contributorGuide">Contribute</a></li><li><a class="external-link-indicator" data-mscc-ic="false" href="https://go.microsoft.com/fwlink/?LinkId=521839" data-bi-name="privacy">Privacy</a></li><li><a class="external-link-indicator" data-mscc-ic="false" href="/en-us/legal/termsofuse" data-bi-name="termsofuse">Terms of Use</a></li><li><a class="external-link-indicator" data-mscc-ic="false" href="https://www.microsoft.com/legal/intellectualproperty/Trademarks/" data-bi-name="trademarks">Trademarks</a></li><li>© Microsoft 2025</li> </ul> </footer></div></div><div id="ms--additional-resources" class="right-container column is-4-desktop display-none display-block-desktop" data-bi-name="pageactions" role="complementary" aria-label="Additional resources" > <div id="affixed-right-container" class="margin-top-sm-tablet" data-bi-name="right-column"> <h2 id="ms--additional-resources-heading" class="title is-6 margin-top-md" hidden>Additional resources</h2> <section id="right-rail-events" data-bi-name="events-card" hidden></section> <section id="right-rail-training" data-bi-name="learning-resources-card" hidden></section> <section id="right-rail-recommendations" data-bi-name="recommendations" hidden></section> <nav id="side-doc-outline" class="doc-outline" data-bi-name="intopic toc" aria-label="In this article"> <h3>In this article</h3> </nav> <section id="right-rail-qna" class="margin-top-xxs" data-bi-name="qna-link-card" hidden></section> </div> </div></div> <!--end of div.columns --> </section> <!--end of .primary-holder --> <!-- interactive container --> <aside id="interactive-container" class="interactive-container is-visible-interactive column has-body-background-dark "> </aside> <!-- end of interactive container --> </div> </div> <!--end of .mainContainer --> <section class="border-top has-default-focus is-hidden-interactive margin-top-sm "><footer id="footer" data-bi-name="footer" class="footer-layout uhf-container has-padding" role="contentinfo"><div class="display-flex gap-xs flex-wrap-wrap is-full-height padding-right-lg-desktop"><a data-mscc-ic="false" class="locale-selector-link button button-sm button-clear flex-shrink-0" href="#" data-bi-name="select-locale"> <span class="icon" aria-hidden="true"> <span class="docon docon-world"></span> </span> <span class="local-selector-link-text"></span></a><div class="ccpa-privacy-link" data-ccpa-privacy-link hidden> <a href="https://aka.ms/yourcaliforniaprivacychoices" class="button button-sm button-clear flex-shrink-0" data-mscc-ic="false" data-bi-name="your-privacy-choices" > <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 14" xml:space="preserve" height="16" width="43" aria-hidden="true" focusable="false" > <path d="M7.4 12.8h6.8l3.1-11.6H7.4C4.2 1.2 1.6 3.8 1.6 7s2.6 5.8 5.8 5.8z" style="fill-rule:evenodd;clip-rule:evenodd;fill:#fff"></path> <path d="M22.6 0H7.4c-3.9 0-7 3.1-7 7s3.1 7 7 7h15.2c3.9 0 7-3.1 7-7s-3.2-7-7-7zm-21 7c0-3.2 2.6-5.8 5.8-5.8h9.9l-3.1 11.6H7.4c-3.2 0-5.8-2.6-5.8-5.8z" style="fill-rule:evenodd;clip-rule:evenodd;fill:#06f"></path> <path d="M24.6 4c.2.2.2.6 0 .8L22.5 7l2.2 2.2c.2.2.2.6 0 .8-.2.2-.6.2-.8 0l-2.2-2.2-2.2 2.2c-.2.2-.6.2-.8 0-.2-.2-.2-.6 0-.8L20.8 7l-2.2-2.2c-.2-.2-.2-.6 0-.8.2-.2.6-.2.8 0l2.2 2.2L23.8 4c.2-.2.6-.2.8 0z" style="fill:#fff"></path> <path d="M12.7 4.1c.2.2.3.6.1.8L8.6 9.8c-.1.1-.2.2-.3.2-.2.1-.5.1-.7-.1L5.4 7.7c-.2-.2-.2-.6 0-.8.2-.2.6-.2.8 0L8 8.6l3.8-4.5c.2-.2.6-.2.9 0z" style="fill:#06f"></path> </svg> <span>Your Privacy Choices</span> </a> </div> <div class="flex-shrink-0"> <div class="dropdown has-caret-up"> <button class="dropdown-trigger button button-clear button-sm has-inner-focus theme-dropdown-trigger" aria-controls="theme-menu" aria-expanded="false" title="Theme" data-bi-name="theme"> <span class="icon"> <span class="docon docon-sun" aria-hidden="true"></span> </span> <span>Theme</span> <span class="icon expanded-indicator" aria-hidden="true"> <span class="docon docon-chevron-down-light"></span> </span> </button> <div class="dropdown-menu" id="theme-menu" role="menu"> <ul class="theme-selector padding-xxs" role="none"> <li class="theme display-block" role="menuitem"> <button class="button button-clear button-sm theme-control button-block justify-content-flex-start" data-theme-to="light"> <span class="theme-light margin-right-xxs"> <span class="theme-selector-icon border display-inline-block has-body-background" aria-hidden="true"> <svg class="svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 14"> <rect width="22" height="14" class="has-fill-body-background" /> <rect x="5" y="5" width="12" height="4" class="has-fill-secondary" /> <rect x="5" y="2" width="2" height="1" class="has-fill-secondary" /> <rect x="8" y="2" width="2" height="1" class="has-fill-secondary" /> <rect x="11" y="2" width="3" height="1" class="has-fill-secondary" /> <rect x="1" y="1" width="2" height="2" class="has-fill-secondary" /> <rect x="5" y="10" width="7" height="2" rx="0.3" class="has-fill-primary" /> <rect x="19" y="1" width="2" height="2" rx="1" class="has-fill-secondary" /> </svg> </span> </span> <span>Light</span> </button> </li> <li class="theme display-block" role="menuitem"> <button class="button button-clear button-sm theme-control button-block justify-content-flex-start" data-theme-to="dark"> <span class="theme-dark margin-right-xxs"> <span class="border theme-selector-icon display-inline-block has-body-background" aria-hidden="true"> <svg class="svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 14"> <rect width="22" height="14" class="has-fill-body-background" /> <rect x="5" y="5" width="12" height="4" class="has-fill-secondary" /> <rect x="5" y="2" width="2" height="1" class="has-fill-secondary" /> <rect x="8" y="2" width="2" height="1" class="has-fill-secondary" /> <rect x="11" y="2" width="3" height="1" class="has-fill-secondary" /> <rect x="1" y="1" width="2" height="2" class="has-fill-secondary" /> <rect x="5" y="10" width="7" height="2" rx="0.3" class="has-fill-primary" /> <rect x="19" y="1" width="2" height="2" rx="1" class="has-fill-secondary" /> </svg> </span> </span> <span>Dark</span> </button> </li> <li class="theme display-block" role="menuitem"> <button class="button button-clear button-sm theme-control button-block justify-content-flex-start" data-theme-to="high-contrast"> <span class="theme-high-contrast margin-right-xxs"> <span class="border theme-selector-icon display-inline-block has-body-background" aria-hidden="true"> <svg class="svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 14"> <rect width="22" height="14" class="has-fill-body-background" /> <rect x="5" y="5" width="12" height="4" class="has-fill-secondary" /> <rect x="5" y="2" width="2" height="1" class="has-fill-secondary" /> <rect x="8" y="2" width="2" height="1" class="has-fill-secondary" /> <rect x="11" y="2" width="3" height="1" class="has-fill-secondary" /> <rect x="1" y="1" width="2" height="2" class="has-fill-secondary" /> <rect x="5" y="10" width="7" height="2" rx="0.3" class="has-fill-primary" /> <rect x="19" y="1" width="2" height="2" rx="1" class="has-fill-secondary" /> </svg> </span> </span> <span>High contrast</span> </button> </li> </ul> </div> </div> </div> </div> <ul class="links" data-bi-name="footerlinks"> <li class="manage-cookies-holder" hidden></li><li><a class="external-link-indicator" data-mscc-ic="false" href="/en-us/previous-versions/" data-bi-name="archivelink">Previous Versions</a></li> <li><a class="external-link-indicator" data-mscc-ic="false" href="https://techcommunity.microsoft.com/t5/microsoft-learn-blog/bg-p/MicrosoftLearnBlog" data-bi-name="bloglink">Blog</a></li> <li><a class="external-link-indicator" data-mscc-ic="false" href="/en-us/contribute/" data-bi-name="contributorGuide">Contribute</a></li><li><a class="external-link-indicator" data-mscc-ic="false" href="https://go.microsoft.com/fwlink/?LinkId=521839" data-bi-name="privacy">Privacy</a></li><li><a class="external-link-indicator" data-mscc-ic="false" href="/en-us/legal/termsofuse" data-bi-name="termsofuse">Terms of Use</a></li><li><a class="external-link-indicator" data-mscc-ic="false" href="https://www.microsoft.com/legal/intellectualproperty/Trademarks/" data-bi-name="trademarks">Trademarks</a></li><li>© Microsoft 2025</li> </ul> </footer> </section> <div id="action-panel" role="region" aria-label="Action Panel" class="action-panel has-default-focus" tabindex="-1"></div> </body> </html>