<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Visual Studio Office Development (VSOD) Support Team</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/vsod/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/vsod/feed.xml</link>
    <description />
    <lastBuildDate>Mon, 11 Jun 2018 17:56:05 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Office VBA: Reference downgrade problem</title>
      <link>https://docs.microsoft.com/archive/blogs/vsod/office-vba-reference-downgrade-problem</link>
      <pubDate>Mon, 23 Jan 2017 18:33:15 GMT</pubDate>
      <dc:creator><![CDATA[Ajay Bandooni]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/vsod/?p=695</guid>
      <description><![CDATA[In the world of Office VBA programming, many a times there is a need to automate other Office...]]></description>
      <content:encoded><![CDATA[In the world of Office VBA programming, many a times there is a need to automate other Office applications from an Office application's VBA code. For example - You have Office 2016 installed on your machine and you would like to automate Excel from Word VBA. One of the ways to achieve this would be to go to the Word VBA project and add a reference to "Microsoft Excel 16.0 Object Library". This way of binding is called early binding. Also, there is another flavor of binding called "late binding".

A detailed explanation of the Early binding/Late binding is mentioned in the below article:

<a href="https://support.microsoft.com/en-us/kb/245115">https://support.microsoft.com/en-us/kb/245115</a>

You may face a problem related to the early binding in an environment where users use different versions of Office. Let's understand this with the help of an example. Suppose you have Office 2013 installed on your machine and you want to automate Excel from Word VBA code. To achieve this, you would add a reference of "Microsoft Excel 15.0 Object Library" in Word VBA project. Now if you use this VBA code on any machine where you have Office 2013 installed this will work fine. Also, if you try to run it on a machine with Office 2016, it will still run as the Office upgrades the references in your project to greater version. In this case if you check the references in the Word VBA project, you will find that the reference "Microsoft Excel 15.0 Object Library" has been upgraded to "Microsoft Excel 16.0 Object Library". If you save the Word file on a such a machine(with Office 2016) and then try to run the same file on a machine with lower version of Office (i.e. Office 2013, Office 2010 etc.), the code will fail to run due to missing reference since the VBA project cannot find the reference. This is by design. VBA references are upgraded but are not downgraded.

So if your VBA code is being used in such an environment where users have different versions of Office, then late binding is the way to go. Since late binding doesn't involve working with references, this problem does not occur.

Below is the example of code written using early and late binding:

<strong>Early binding</strong>

=========================================

<span style="color: #333333;font-family: 'Georgia',serif">Dim exApp As Excel.Application</span>

<span style="color: #333333;font-family: 'Georgia',serif">Dim exBooks As Excel.Workbooks</span>

<span style="color: #333333;font-family: 'Georgia',serif">Dim exBook As Excel.Workbook</span>

<span style="color: #333333;font-family: 'Georgia',serif">Set exApp = New Excel.Application</span>

<span style="color: #333333;font-family: 'Georgia',serif">exApp.Visible = True</span>

<span style="color: #333333;font-family: 'Georgia',serif">Set exBooks = exApp.Workbooks</span>

<span style="color: #333333;font-family: 'Georgia',serif">Set exBook = exBooks.Add()</span>

&nbsp;

<strong>Late binding</strong>

=========================================

Dim exApp As Object

Dim exBooks As Object

Dim exBook As Object

Set exApp = CreateObject("Excel.Application")

exApp.Visible = True

Set exBooks = exApp.Workbooks

Set exBook = exBooks.Add()]]></content:encoded>
    </item>
    <item>
      <title>Considerations while reading/writing registry keys under HKLM from Office Addin in Office Click-to-Run</title>
      <link>https://docs.microsoft.com/archive/blogs/vsod/consdierations-while-readingwriting-registry-keys-under-hklm-from-office-addin-in-office-click-to-run</link>
      <pubDate>Fri, 09 Dec 2016 01:09:50 GMT</pubDate>
      <dc:creator><![CDATA[Jeeva Mahendran]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/vsod/?p=665</guid>
      <description><![CDATA[An add-in running on Click-to-Run (C2R) version of Office (Office 365), which creates custom...]]></description>
      <content:encoded><![CDATA[An add-in running on Click-to-Run (C2R) version of Office (Office 365), which creates custom registry entries under HKLM hive, will have the registry entries created in the C2R portion of the registry . For example, if your add-in tries to create a registry entry HKLM\Software\MyCustomKey then it gets created as HKLM\SOFTWARE\Microsoft\Office\ClickToRun\REGISTRY\MACHINE\Software\Wow6432Node\MyCustomKey (Wow6432Node assuming 32-bit Office). This is by design as C2R version uses registry redirection to achieve Application Virtualization. If your add-in is the only one writing and reading these custom registry entries, there will be no problems as the registry redirection will happen in both the cases (writing/reading).

However, you may see problems when you install Office updates. Since the C2R portion of the registry is owned by Office, the custom entries made might get deleted with Office update. This is also expected and is a by design behavior.

So, the question is how can we create custom registry entries from our Office add-ins and get away with the threat that the C2R Office update brings. Well there isn’t an ideal solution/workaround for this but below are couple of workarounds that can be used :

<strong>Workaround 1</strong>

You can create a logon script or something similar which periodically executes on the machine to do the following:
<ol>
 	<li>Check if C2R location contains your custom registry keys.</li>
 	<li>If yes, read those keys and store their state.</li>
 	<li>If not, create your registry key there using the state you had saved.</li>
</ol>
Pros of this strategy: Takes less development time, no code change in your existing product is needed

Cons of this strategy: Not tightly integrated with your product, needs to run every login.

&nbsp;

<strong>Workaround 2</strong>

Have an external process which will be used to write/read custom registry.

If your Office add-in which is loaded inside the Office address space creates a custom entry in registry, it will be redirected to C2R hive. To avoid this, create an external process outside Office . Whenever you need to read or write to registry, communicate with this process using something like windows messages or named pipes or .NET Remoting etc. This external process reads or writes the registry and communicate the results back to you.

Pros of this strategy:
<ol>
 	<li>Tightly integrated with your product. You don’t need to run this every login.</li>
</ol>
Cons of this strategy:
<ol>
 	<li>Will involve some amount of development and code changes to your add-in.</li>
</ol>]]></content:encoded>
    </item>
    <item>
      <title>After installing Office 2016 Version 1609 Office files containing VBA Form may hang the Office application [Update: Fixed in Office 2016, 1610 build]</title>
      <link>https://docs.microsoft.com/archive/blogs/vsod/after-installing-office-2016-version-1609-office-files-containing-vba-form-may-hang-the-office-application</link>
      <pubDate>Tue, 25 Oct 2016 18:45:35 GMT</pubDate>
      <dc:creator><![CDATA[Sangeeth Krishna]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/vsod/?p=615</guid>
      <description><![CDATA[Issue

If an Office file has a UserForm which has Cycle Property set to “2 – fmCycleCurrentForm”...]]></description>
      <content:encoded><![CDATA[<strong><u>Issue</u></strong>

If an Office file has a UserForm which has Cycle Property set to “2 – fmCycleCurrentForm” (or any other control which has this property set) then the Office application may hang while trying to show this UserForm in Office 2016 Version 1609.

<strong><u>Cause</u></strong>

This is a bug which is being worked by Product group.

<strong><u>Workarounds</u></strong>

a. Move to Version 1608 following the article below

<a href="https://support.microsoft.com/en-us/kb/2770432">https://support.microsoft.com/en-us/kb/2770432</a>

b.  If there is a machine where you can open the file (older build of Office 2016 or older Office versions):
<ol>
 	<li>Open the file</li>
 	<li>Go to VBA IDE (by pressing alt + F11)</li>
 	<li>Go through each forms in design mode and see if any of them has ‘Cycle’ property as ‘2’(<em>fmCycleCurrentForm</em>).</li>
 	<li>If any form/frame has such value, make it ‘0’ (<em>fmCycleAllForms</em>).</li>
</ol>
Note: Issue can also occur if any ‘Frame’ control is set with cycle property ‘2’ as well

<span style="text-decoration: underline"><strong>Resolution</strong></span>

This is fixed in Latest Version of Office 2016 Build : 1610.]]></content:encoded>
    </item>
    <item>
      <title>VSTO Add-in may fail to load if signed by some SHA256 certificates [Update : Fixed with latest VSTO runtime]</title>
      <link>https://docs.microsoft.com/archive/blogs/vsod/vsto-add-in-may-fail-to-load-if-signed-by-some-sha256-certificates</link>
      <pubDate>Thu, 28 Jan 2016 14:56:00 GMT</pubDate>
      <dc:creator><![CDATA[Sangeeth Krishna]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/vsod/2016/01/28/vsto-add-in-may-fail-to-load-if-signed-by-some-sha256-certificates/</guid>
      <description><![CDATA[Symptom

VSTO add-in may fail to load if all of the following conditions are true:-

 	The...]]></description>
      <content:encoded><![CDATA[<strong>Symptom</strong>

VSTO add-in may fail to load if all of the following conditions are true:-
<ol>
 	<li>The SHA256 certificate used to sign the add-in is based on SHA256 algorithm (<a href="https://na01.safelinks.protection.outlook.com/?url=http://www.w3.org/2000/09/xmldsig%23rsa-sha256&amp;data=01%7c01%7csakris%40064d.mgd.microsoft.com%7c3e52fa41043f428f54f608d2e91ccffe%7c72f988bf86f141af91ab2d7cd011db47%7c1&amp;sdata=uvsaq81sY1dYvQfrJVOHRPNw6EPyHqqNBdhC3gsLsps%3d">http://www.w3.org/2000/09/xmldsig#rsa-sha256</a>)</li>
 	<li>“Require Add-ins to be signed by Trusted publisher” setting is checked in Office Trust Center.</li>
 	<li>The deployment manifest is not accessible (For e.g. you installed the VSTO add-in from a network location or USB drive that is no longer accessible.)</li>
</ol>
If you have <a href="https://msdn.microsoft.com/en-us/library/ms269003%28v=vs.120%29.aspx">VSTO_SUPPRESSDISPLAYALERTS</a> environment variable set to 0, you will receive an error "SignatureDescription could not be created for the signature algorithm supplied."

<strong>Cause</strong>

VSTO Click-Once infrastructure reads the deployment manifest to know the signature algorithm (in this case SHA256 algorithm “<a href="https://na01.safelinks.protection.outlook.com/?url=http://www.w3.org/2000/09/xmldsig%23rsa-sha256&amp;data=01%7c01%7csakris%40064d.mgd.microsoft.com%7c3e52fa41043f428f54f608d2e91ccffe%7c72f988bf86f141af91ab2d7cd011db47%7c1&amp;sdata=uvsaq81sY1dYvQfrJVOHRPNw6EPyHqqNBdhC3gsLsps%3d">http://www.w3.org/2000/09/xmldsig#rsa-sha256</a>).In a case where it cannot find the deployment manifest, it goes with default values which don’t have support for SHA256 algorithm, and thus the error.

<strong>Work Around</strong>

Any of the following workarounds will avoid the issue:

1. Use SHA256 certificates to sign manifest which uses <a href="http://www.w3.org/2000/09/xmldsig#rsa-sha1">http://www.w3.org/2000/09/xmldsig#rsa-sha1</a> algorithm
2. Make sure the install location is always accessible
3. Uncheck “Require Add-ins to be signed by Trusted publisher”

<strong>Resolution </strong>

This issue is resolved in the updated VSTO Runtime which can be installed from the link <a href="https:\\aka.ms\vstoruntime">https:\\aka.ms\vstoruntime</a>]]></content:encoded>
    </item>
    <item>
      <title>Considerations for common performance issues with Office Add-ins and Macros in Office 2013</title>
      <link>https://docs.microsoft.com/archive/blogs/vsod/considerations-for-common-performance-issues-with-office-add-ins-and-macros-in-office-2013</link>
      <pubDate>Mon, 28 Sep 2015 10:58:00 GMT</pubDate>
      <dc:creator><![CDATA[cts-praghav@outlook.com]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/vsod/2015/09/28/considerations-for-common-performance-issues-with-office-add-ins-and-macros-in-office-2013/</guid>
      <description><![CDATA[The intent of this blog post is to address frequent questions that we see comparing performance...]]></description>
      <content:encoded><![CDATA[The intent of this blog post is to address frequent questions that we see comparing performance difference between Office 2010 and 2013, especially by developers who use Office as a development platform via macros using VBA, add-ins, COM add-ins and interop using C++ / a .Net languages such as C#, VB.Net.

Before we compare the performance between versions, it is very important to note that the hardware plays a critical role. So, it is important to try and match the hardware (CPU, RAM, disk type etc...) to make sure the performance issue that is affecting is not due to these changes.

Firstly, let’s take a look at the changes that have been done to Microsoft Office 2013. Secondly, let’s look at frequent issues an Office developer would experience and subsequently with a possible tip / workaround to reduce the performance impact.
<ul>
 	<li>There are a lot of features that have been <a href="https://support.office.com/en-us/article/What-s-new-in-Office-2013-481AE862-5EA3-44DC-819B-C7C095A84A0A">added to Microsoft Office 2013</a> as a whole, which might contribute to the general slowness in some development scenarios. For e.g. invoking a method from Object Model. While every effort has been done to make sure that the performance does not deteriorate drastically, but as one can understand new feature needs more code to be executed which implies slower operation / execution.</li>
 	<li>Microsoft Office 2013 introduced a design change in rendering of UI. Office applications have moved from traditional GDI+ rendering, to DirectX based rendering.</li>
 	<li>Excel 2013 has moved from Multiple Document Interface (MDI) to Single Document Interface (SDI).</li>
</ul>
<p style="padding-left: 30px">   <a href="https://msdn.microsoft.com/en-us/library/office/dn251093.aspx">Programming for the Single Document Interface in Excel</a></p>
The following are few tips / workaround that might help you.
<ul>
 	<li>Make sure you have updated Office to the latest and greatest as the issue may have been addressed in latest patches.</li>
</ul>
<ul>
 	<li>The below article talks about best practices that could be considered for performance issues with Excel VBA.</li>
</ul>
<p style="padding-left: 30px">   <a href="https://www.microsoft.com/en-us/microsoft-365/blog/2009/03/12/excel-vba-performance-coding-best-practices/">Excel VBA Performance Coding Best Practices</a></p>

<ul>
 	<li>The below article talks about performance issues arising out of incompatible third party video drivers.</li>
</ul>
<p style="padding-left: 30px">   <a href="https://support.microsoft.com/en-us/kb/2768648">Performance and display issues in Office 2013 client applications</a></p>

<ul>
 	<li>Check “Disable hardware graphics acceleration” check box under File-&gt; Options -&gt; Advanced -&gt; Display section. (See screenshot below).</li>
</ul>
<p style="padding-left: 30px">   <a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/00/38/7848.Disable%20HW%20Graphics%20acceleration%201.PNG"><img alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/00/38/7848.Disable%20HW%20Graphics%20acceleration%201.PNG" border="0" /></a></p>

<ul>
 	<li>Uncheck “Animate controls and elements inside windows” check box under System -&gt; Advanced System Settings -&gt; Advanced -&gt; Performance Options -&gt; Settings. (See screenshot below).</li>
</ul>
<p style="padding-left: 30px">   <a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/00/38/1030.Animate%20controls%20and%20elements%20inside%20windows%201.PNG"><img alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/00/38/1030.Animate%20controls%20and%20elements%20inside%20windows%201.PNG" border="0" /></a></p>

<ul>
 	<li>Using “ScreenUpdating” property appropriately would help to speed up your macro code execution.</li>
</ul>
<p style="padding-left: 30px">   <a href="http://msdn.microsoft.com/en-us/library/office/ff193498(v=office.15).aspx">Application.ScreenUpdating Property</a></p>

<ul>
 	<li>Using “DoEvents” function appropriately would help in yielding execution so that the operating system can process pending messages/actions.</li>
</ul>
<p style="padding-left: 30px">   <a href="https://msdn.microsoft.com/en-us/library/office/gg264522.aspx">DoEvents Function</a></p>

<ul>
 	<li>In a scenario where your macro executes many individual copy and paste operation and it takes longer than expected to complete the copy and paste operations, consider setting “AcbControl” registry as explained in the below KB article. This is applicable to Excel 2010 and Excel 2013. Remember to use the appropriate registry key location (14.0 for Excel 2010 and 15.0 for Excel 2013).</li>
</ul>
<p style="padding-left: 30px">   <a href="https://support.microsoft.com/en-in/kb/2817579">Description of the Office 2010 hotfix package (Mso-x-none.msp): August 13, 2013</a></p>

<ul>
 	<li>There is slowness in certain Object Model calls, like Protect and Unprotect of a document.</li>
</ul>
<div style="padding-left: 30px">   <a href="https://support.microsoft.com/en-us/kb/2996166">Excel macros that protect and unprotect worksheets may run slowly</a></div>
While comparing performance between Office versions, it is advisable to use similar configuration machines. Adding logs to the application might help in identifying which call(s) take long time for execution.

Hope this information is helpful. I will try to keep this post up-to-date.

Update : Note that these tips/points are also applicable to Office 2016.]]></content:encoded>
    </item>
    <item>
      <title>After installing MS15-022 update you may not be able to run HTML script under Office context</title>
      <link>https://docs.microsoft.com/archive/blogs/vsod/after-installing-ms15-022-update-you-may-not-be-able-to-run-html-script-under-office-context</link>
      <pubDate>Wed, 13 May 2015 17:17:00 GMT</pubDate>
      <dc:creator><![CDATA[Sangeeth Krishna]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/vsod/2015/05/13/after-installing-ms15-022-update-you-may-not-be-able-to-run-html-script-under-office-context/</guid>
      <description><![CDATA[Symptom
After installing MS15-022 update you may not be able to run HTML script under Office...]]></description>
      <content:encoded><![CDATA[<p><strong><span style="text-decoration: underline;">Symptom</span></strong></p>
<p>After installing MS15-022 update you may not be able to run HTML script under Office context</p>
<p><strong><span style="text-decoration: underline;">Cause</span></strong></p>
<p>This security update opts Microsoft Word, Excel, or PowerPoint into local computer lockdown, a feature control for Internet Explorer, to prevent scripts in Office documents from running with elevated user rights.</p>
<p>Here are documentations which explains this security change:</p>
<p>Microsoft Security Bulletin MS15-022 - Critical</p>
<p><a href="https://technet.microsoft.com/en-us/security/ms15-022">https://technet.microsoft.com/en-us/security/ms15-022</a></p>
<p>MS15-022: Description of the security update for Microsoft Excel 2010: March 10, 2015 [known Issues Section]</p>
<p><a href="https://support.microsoft.com/en-us/kb/2956142/">https://support.microsoft.com/en-us/kb/2956142/</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;</p>
<p><strong><span style="text-decoration: underline;">Work Around</span></strong></p>
<p>The workaround is to make the html run in lesser user rights/zone than Local Computer Zone. The Mark of the Web (MOTW) is a feature of Windows Internet Explorer that enhances security. MOTW enables Internet Explorer to force webpages to run in the security zone of the location the age was saved from&mdash;as long as that security zone is more restrictive than the Local Machine zone&mdash;instead of the Local Machine zone. When you are developing webpages, the MOTW enables you to test your HTML documents in the security zone where you intend the pages to run. Adding the MOTW to your webpages also enables you to fully test their compatibility with users' security settings.</p>
<p>Read more about Mark of the Web from the link below:</p>
<p><a href="https://msdn.microsoft.com/en-us/library/ms537628(v=vs.85).aspx">https://msdn.microsoft.com/en-us/library/ms537628(v=vs.85).aspx</a><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>
<p><span style="text-decoration: underline;">Mark Of the Web - Example 1 :</span></p>
<p>&lt;html&gt;</p>
<p>&lt;!-- saved from url=(0023)<a href="http://www.contoso.com/">http://www.contoso.com/</a> --&gt;</p>
<p>&lt;head&gt;</p>
<p>&lt;/head&gt;</p>
<p>&lt;body&gt;</p>
<p>&nbsp;&lt;/body&gt;</p>
<p>&lt;/head&gt;</p>
<p><span style="text-decoration: underline;">Mark Of the Web - Example 2 [Localhost] :</span></p>
<p>&lt;html&gt;</p>
<p>&lt;!-- saved from url=(0016)<a href="http://localhost">http://localhost</a>--&gt;</p>
<p>&lt;head&gt;</p>
<p>&lt;/head&gt;</p>
<p>&lt;body&gt;</p>
<p>&lt;/body&gt;</p>
<p>&lt;/head&gt;</p>
<p>Note: Based on the end users security for Internet zone/Intranet Zone you may have to add the "Saved From url" into security zone</p>
<p>Related Articles:</p>
<p>==========================================================================================</p>
<p>Microsoft Security Bulletin MS15-022 - Critical</p>
<p><a href="https://technet.microsoft.com/en-us/security/ms15-022">https://technet.microsoft.com/en-us/security/ms15-022</a></p>
<p>MS15-022: Description of the security update for Microsoft Excel 2010: March 10, 2015 [known Issues Section]</p>
<p><a href="https://support.microsoft.com/en-us/kb/2956142/">https://support.microsoft.com/en-us/kb/2956142/</a><br />&nbsp;&nbsp;</p>
<p>Mark of the Web</p>
<p><a href="https://msdn.microsoft.com/en-us/library/ms537628(v=vs.85).aspx">https://msdn.microsoft.com/en-us/library/ms537628(v=vs.85).aspx</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Using MSBUILD through command line or from TFS Server to compile VSTO projects may fail with error  'The "SignFile" task could not be initialized with its input parameters'</title>
      <link>https://docs.microsoft.com/archive/blogs/vsod/using-msbuild-through-command-line-or-from-tfs-server-to-compile-vsto-projects-may-fail-with-error-the-signfile-task-could-not-be-initialized-with-its-input-parameters</link>
      <pubDate>Tue, 10 Feb 2015 10:27:00 GMT</pubDate>
      <dc:creator><![CDATA[Sangeeth Krishna]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/vsod/2015/02/10/using-msbuild-through-command-line-or-from-tfs-server-to-compile-vsto-projects-may-fail-with-error-the-signfile-task-could-not-be-initialized-with-its-input-parameters/</guid>
      <description><![CDATA[Symptom
You may get the following errors if you try to compile VSTO Projects through MSBUILD...]]></description>
      <content:encoded><![CDATA[<p><strong><span style="text-decoration: underline;">Symptom</span></strong></p>
<p>You may get the following errors if you try to compile VSTO Projects through MSBUILD through command line or from TFS Server Post Visual Studio Update 3</p>
<p><br />C:\Program Files(x86)\MSBuild\Microsoft\VisualStudio\v12.0\OfficeTools\Microsoft.VisualStudio.Tools.Office.targets (268): The "TargetFrameworkVersion" parameter is not supported by the "SignFile" task. Verify the parameter exists on the task, and it is a settable public instance property.</p>
<p><br />C:\Program Files(x86)\MSBuild\Microsoft\VisualStudio\v12.0\OfficeTools\Microsoft.VisualStudio.Tools.Office.targets (264): The "SignFile" task could not be initialized with its input parameters.</p>
<p><strong><span style="text-decoration: underline;">Cause</span></strong></p>
<p>Visual Studio 2013 Update 3 also brings some changes in VSTO Targets file. These changes are known only by MSBUILD 12.0 components.</p>
<p><strong><span style="text-decoration: underline;">Work Around</span></strong></p>
<p>1)&nbsp;If you are using TFS &nbsp;make sure Build Process Profile to be version 12.0 &nbsp;(like, &ldquo;TfvsTemplate.12.xaml&rdquo; )&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>
<p><strong>Steps: </strong></p>
<ol>
<li>&nbsp;Edit build Definition from Team Explorer</li>
<li>Click Process tab</li>
<li>Pick &ldquo;<strong>TfvsTemplate.12.xaml</strong>&rdquo; from the Build Process Template selection instead of&nbsp; &ldquo;Default Template&rdquo;</li>
</ol>
<p>&nbsp;&nbsp;&nbsp;&nbsp;<a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/00/38/0334.1.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-00-38/0334.1.png"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/00/38/0334.1.png" original-url="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-00-38/0334.1.png" alt="" border="0" /></a></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>
<p>2)&nbsp;If you are building locally make sure the MSBUILD used is version 12.0:</p>
<ul>
<li>&nbsp;On 32-bit machines they can be found in: C:\Program Files\MSBuild\12.0\bin</li>
<li>&nbsp;On 64-bit machines the 32-bit tools will be under: C:\Program Files (x86)\MSBuild\12.0\bin</li>
<li>&nbsp;and the 64-bit tools under: C:\Program Files (x86)\MSBuild\12.0\bin\amd64</li>
</ul>
<p>&nbsp;<strong><span style="text-decoration: underline;">Additional Information</span></strong></p>
<p>Customize your build process template</p>
<p><a href="http://msdn.microsoft.com/en-us/library/dd647551.aspx">http://msdn.microsoft.com/en-us/library/dd647551.aspx</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>
<p>MSBuild is now part of Visual Studio!</p>
<p><a href="http://blogs.msdn.com/b/visualstudio/archive/2013/07/24/msbuild-is-now-part-of-visual-studio.aspx">http://blogs.msdn.com/b/visualstudio/archive/2013/07/24/msbuild-is-now-part-of-visual-studio.aspx</a></p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>ActiveProject.CustomDocumentProperties may return ‘null’ for Applications Compiled using Visual Studio 2010 C# express edition</title>
      <link>https://docs.microsoft.com/archive/blogs/vsod/activeproject-customdocumentproperties-may-return-null-for-applications-compiled-using-visual-studio-2010-c-express-edition</link>
      <pubDate>Thu, 15 May 2014 13:05:00 GMT</pubDate>
      <dc:creator><![CDATA[Sangeeth Krishna]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/vsod/2014/05/15/activeproject-customdocumentproperties-may-return-null-for-applications-compiled-using-visual-studio-2010-c-express-edition/</guid>
      <description><![CDATA[Few days back I worked on an issue where an application compiled using Visual Studio 2010 C# Express...]]></description>
      <content:encoded><![CDATA[<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Few days back I worked on an issue where an application compiled using Visual Studio 2010 C# Express edition was getting &lsquo;<em>null&rsquo; </em>at &ldquo;Application.ActiveProject.CustomDocumentProperties&rdquo; when trying to follow below article :</span></p>
<p><em><span style="font-family: arial,helvetica,sans-serif; font-size: small;">How to Use Automation to Get and to Set Office Document Properties with Visual C# .NET<br /></span></em><em><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><a href="http://support.microsoft.com/kb/303296/en-us">http://support.microsoft.com/kb/303296/en-us</a></span></em></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><strong><span style="text-decoration: underline;">Cause</span></strong></span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">The issue was found to be due to a bug in the NOPIA code generated by Visual Studio 2010 C# express edition. This issue is fixed in the latest versions of Visual Studio Express editions (VS 2012 Express Edition for C# or VS 2013 Express Edition for C#)</span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><strong><span style="text-decoration: underline;">Work Around</span></strong></span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Set the &ldquo;Embed Interop Types&rdquo; property to &ldquo;False&rdquo; for the&nbsp;MSProject PIA references added to project&nbsp;</span><br />&nbsp;&nbsp;<br /><span style="font-family: arial,helvetica,sans-serif; font-size: small;">&nbsp;<a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/00/38/8154.Blog.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-00-38/8154.Blog.png"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/00/38/8154.Blog.png" original-url="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-00-38/8154.Blog.png" alt="" border="0" /></a>&nbsp;</span><br />&nbsp;&nbsp;<br />&nbsp;&nbsp;<br />&nbsp;<br />&nbsp;<br /> <br /><br /></p>
<p>&nbsp;</p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>Office automation through VC++ using MFC Class from TypeLib results into large number of compilation errors</title>
      <link>https://docs.microsoft.com/archive/blogs/vsod/office-automation-through-vc-using-mfc-class-from-typelib-results-into-large-number-of-compilation-errors</link>
      <pubDate>Tue, 04 Jun 2013 16:18:00 GMT</pubDate>
      <dc:creator><![CDATA[abhitri]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/vsod/2013/06/04/office-automation-through-vc-using-mfc-class-from-typelib-results-into-large-number-of-compilation-errors/</guid>
      <description><![CDATA[When trying to Automate Excel, Word, etc using VC++ (MFC based application) in Visual Studio 2010 we...]]></description>
      <content:encoded><![CDATA[<p>When trying to Automate Excel, Word, etc using VC++ (MFC based application) in Visual Studio 2010 we generally perform the&nbsp;following steps &ndash;</p>
<p>&nbsp;</p>
<p>1-Go to Visual Studio</p>
<p>2-Click New Project</p>
<p>3-Expand Visual C++ tree node</p>
<p>4-Choose MFC</p>
<p>5-Select MFC Application</p>
<p>6-Enter project name, click OK</p>
<p>7-Choose a dialog based project</p>
<p>8-Click Finish</p>
<p>9-The bare bone project is created</p>
<p>&nbsp;</p>
<p>In order to add an MFC Class from Typelib, we do the following &ndash;</p>
<p>10-Right click project -&gt; Add -&gt; Class</p>
<p>11-Select &ldquo;MFC Class from TypeLib&rdquo; , say Add</p>
<p>12-In the list of available type libraries, choose Microsoft Excel 14.0 Object Library</p>
<p>13-Then choose the list of classes you are planning to use in<br />the project, eg, _Application, _Workbook etc</p>
<p>Once you are done, you will see the relevant header files<br />being added &ndash; eg- CApplication.h, CWorkbook.h etc</p>
<p>Now in order to automate, you will be required to include<br />the appropriate header file in your projects cpp file, eg, TestDlg.cpp</p>
<p>Eg, #include "CApplication.h"</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#include "CWorkbook.h"</p>
<p>&nbsp;&nbsp;</p>
<p>Now begins the trouble -</p>
<p>As soon as you include the respective header files, you will<br />be presented with a huge number of errors (300+ errors) being thrown during<br />compilation.</p>
<p>Some errors may appear like &ndash;</p>
<p>error C2011: 'Picture' : 'struct' type redefinition&nbsp;</p>
<p>syntax error : identifier 'MsoRGBType'</p>
<p>syntax error : '&lt;L_TYPE_raw&gt;'</p>
<p>etc, etc, etc</p>
<p>&nbsp;</p>
<p>In order to resolve these mean errors, you need to do a small step &ndash;</p>
<p>Go to the top of each header file and locate the following<br />line</p>
<p>#import "C:\\Program Files(x86)<a href="file:///\\Microsoft">\\Microsoft</a>&nbsp;Office\\Office14\\EXCEL.EXE" no_namespace</p>
<p>&nbsp;</p>
<p>Comment this line for each Excel(Office) related header files individually in order to get rid of the compilation errors.</p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>Customizing Office 2013 backstage</title>
      <link>https://docs.microsoft.com/archive/blogs/vsod/customizing-office-2013-backstage</link>
      <pubDate>Fri, 05 Apr 2013 06:54:00 GMT</pubDate>
      <dc:creator><![CDATA[Ajay Bandooni]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/vsod/2013/04/05/customizing-office-2013-backstage/</guid>
      <description><![CDATA[Office 2013 introduced many changes to the backstage. In this blog post we will see how Office 2013...]]></description>
      <content:encoded><![CDATA[<p><span style="line-height: 115%; font-family: 'Calibri','sans-serif'; font-size: 11pt; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">Office 2013 introduced many changes to the backstage. In this blog post we will see how Office 2013 backstage can be customized using the backstage XML. The list of idMso&rsquo;s for Office 2013 can be downloaded from: <a href="http://www.microsoft.com/en-us/download/details.aspx?id=36798"><span style="line-height: 115%; font-family: 'Courier New'; font-size: 10pt;">http://www.microsoft.com/en-us/download/details.aspx?id=36798</span></a>.</span></p>
<p><span style="line-height: 115%; font-family: 'Calibri','sans-serif'; font-size: 11pt; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">We&rsquo;ll modify the blog post based on your feedbacks.</span></p>
<p><span style="line-height: 115%; font-family: 'Calibri','sans-serif'; font-size: 11pt; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">Let&rsquo;s get started with the idMso(s) of the common commands in Office 2013:</span></p>
<p><span style="line-height: 115%; font-family: 'Calibri','sans-serif'; font-size: 11pt; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;"><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/00/38/4011.Fig6.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-00-38/4011.Fig6.png"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/00/38/4011.Fig6.png" original-url="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-00-38/4011.Fig6.png" alt="" border="0" /></a></span></p>
<p>Now, let&rsquo;s have a look at some of the common backstage customization scenarios and the XML used:</p>
<p><span style="font-size: small;"><strong>Adding a custom task in the &ldquo;Open&rdquo; tab</strong></span></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/00/38/7587.Fig1.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-00-38/7587.Fig1.jpg"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/00/38/7587.Fig1.jpg" original-url="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-00-38/7587.Fig1.jpg" alt="" border="0" /></a></p>
<p>To achieve the above, following XML can be used:</p>
<p><em>&lt;tab idMso="TabRecent"&gt;</em><br /><em>&lt;firstColumn&gt;</em><br /><em>&lt;taskFormGroup idMso="GroupOpenPlaces"&gt;</em><br /><em>&lt;category idMso="ButtonCategoryRecentDocuments"&gt;</em><br /><em>&lt;task id="myTaskFirst" insertAfterMso="ButtonTaskRecentDocuments" label="Custom Task"&gt;</em><br /><em>&lt;group id="myGroup" label="Custom functionality" helperText="This group contains custom functionality."&gt;</em><br /><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;primaryItem&gt;</em><br /><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;button id="myButton" label="My Button" onAction="CallMe"/&gt;</em><br /><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/primaryItem&gt;</em><br /><em>&lt;/group&gt;</em><br /><em>&lt;/task&gt;</em><br /><em>&lt;/category&gt;</em><br /><em>&lt;/taskFormGroup&gt;</em><br /><em>&lt;/firstColumn&gt;</em><br /><em>&lt;/tab&gt;</em></p>
<p><span style="font-size: small;"><strong>A</strong><strong>dding custom task in &ldquo;Save As&rdquo; tab</strong></span></p>
<p>&nbsp;<a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/00/38/7522.Fig2.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-00-38/7522.Fig2.jpg"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/00/38/7522.Fig2.jpg" original-url="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-00-38/7522.Fig2.jpg" alt="" border="0" /></a></p>
<p>Below XML can be used to add custom task in the &ldquo;Save As&rdquo; tab:</p>
<p><em>&lt;tab idMso="TabSave"&gt;</em><br /><em>&lt;firstColumn&gt;</em><br /><em>&lt;taskFormGroup idMso="SaveGroup"&gt;</em><br /><em>&lt;category idMso="Save"&gt;</em><br /><em>&lt;task id="myCustomTask" label="My Custom Task" insertAfterMso="ButtonTaskDynamicServiceProvider"&gt;</em><br /><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;group id="myGroupInTabSave" label="Custom functionality" helperText="This group contains custom functionality."&gt;</em><br /><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;primaryItem&gt;</em><br /><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;button id="myButton" label="My Button" onAction="CallMe" /&gt;</em><br /><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/primaryItem&gt;</em><br /><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/group&gt;</em><br /><em>&lt;/task&gt;</em><br /><em>&lt;/category&gt;</em><br /><em>&lt;/taskFormGroup&gt;</em><br /><em>&lt;/firstColumn&gt;</em><br /><em>&lt;/tab&gt;</em></p>
<p><span style="font-size: small;"><strong>Adding a button under the existing task in the &ldquo;Export&rdquo; tab:</strong></span></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/00/38/6648.Fig3.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-00-38/6648.Fig3.jpg"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/00/38/6648.Fig3.jpg" original-url="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-00-38/6648.Fig3.jpg" alt="" border="0" /></a></p>
<p>&nbsp;Use the below XML to achieve the above:</p>
<p><em>&lt;tab idMso="TabPublish" enabled="true"&gt;</em><br /><em>&nbsp;&nbsp;&nbsp; &lt;firstColumn&gt;</em><br /><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;taskFormGroup idMso="PublishGroup"&gt;</em><br /><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;category idMso="FileTypes"&gt;</em><br /><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;task idMso="FileSaveAsPdfOrXps"&gt;</em><br /><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;group id="grpMy" insertAfterMso="GroupFileSave" label="Custom functionality" helperText="This group contains the custom functionality."&gt;</em><br /><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;primaryItem&gt;</em><br /><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;button id="myButtonExport" label="Custom Export Button" /&gt;</em><br /><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/primaryItem&gt;</em><br /><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/group&gt;</em><br /><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/task&gt;</em><br /><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/category&gt;</em><br /><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/taskFormGroup&gt;</em><br /><em>&nbsp;&nbsp;&nbsp; &lt;/firstColumn&gt;</em><br /><em>&lt;/tab&gt;</em></p>
<p><strong><span style="font-size: small;">&nbsp;Adding a custom button under the Info tab</span></strong></p>
<p>&nbsp;<a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/00/38/0121.Fig4.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-00-38/0121.Fig4.jpg"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/00/38/0121.Fig4.jpg" original-url="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-00-38/0121.Fig4.jpg" alt="" border="0" /></a>&nbsp;</p>
<p>And following is the XML used:</p>
<p><em>&lt;tab idMso="TabInfo"&gt;</em><br /><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;firstColumn&gt;</em><br /><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;group id="TestGrp" label="Custom functionality"&nbsp; insertBeforeMso="GroupPermissions" helperText="This group contains the custom functionality."&gt;</em><br /><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;primaryItem&gt;</em><br /><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;button id="MyCustomButton" label="My Button" /&gt;</em><br /><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/primaryItem&gt;</em><br /><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/group&gt;</em><br /><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/firstColumn&gt;</em><br /><em>&lt;/tab&gt;</em></p>
<p><strong><span style="font-size: small;">Adding a custom task under share tab and hiding the &ldquo;Email&rdquo; and &ldquo;Post to Blog&rdquo; tasks</span></strong></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/00/38/4540.Fig5.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-00-38/4540.Fig5.jpg"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/00/38/4540.Fig5.jpg" original-url="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-00-38/4540.Fig5.jpg" alt="" border="0" /></a></p>
<p>Following is the XML:</p>
<p><em>&lt;tab idMso="TabShare"&gt;</em><br /><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;firstColumn&gt;</em><br /><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;taskFormGroup idMso="GroupShare"&gt;</em><br /><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;category idMso="Share"&gt;</em><br /><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;task idMso="SendUsingEmail" visible="false" /&gt;</em><br /><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;task idMso="FileNewBlogPost" visible="false" /&gt;</em><br /><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;task id="myTask" insertBeforeMso="ShareWithPeople" label="Custom task"&gt;</em><br /><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;group id="MyGrpInTabShare" label="Custom functionality" helperText="This group contains the custom functionality."&gt;</em><br /><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;primaryItem&gt;</em><br /><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;button id="MyButtonInTabShare" label="Custom Button" /&gt;</em><br /><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/primaryItem&gt;</em><br /><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/group&gt;</em><br /><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/task&gt;</em><br /><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/category&gt;</em><br /><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/taskFormGroup&gt;</em><br /><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/firstColumn&gt;</em><br /><em>&lt;/tab&gt;</em></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
  </channel>
</rss>