Is there a Presentation.IsFullyDownloaded property for a vsto addin in C#? - vba

As per the documentation by Microsoft, there is a property to check whether the presentation is completely downloaded or not in office VBA Reference.
Presentation.IsFullyDownloadedhttps://learn.microsoft.com/en-us/office/vba/api/powerpoint.presentation.isfullydownloaded
Is there any way to do this in a C# VSTO addin?
The 'Presentation' class in vsto solutionhas all the other properties as in the vba presentation class but not "IsFullyDownloaded".

If you can use it in VBA for your PowerPoint installation (that means it is implemented by the host application) you can call it using the late-binding technology available in .Net via Type.InvokeMember from any applications including VSTO add-ins.

Related

Interacting with other addins

I am using word 2007 Version and came across one problem and looking for a solution to it.
I am using Grammarly Add-in for word and I am looking for a way to accept all the suggestions that Grammarly add-ins provide. I try to record a macro so that I can have some insight into the possible solution. But the macro recorder does not record anything while working within that add in.
The best what you could do is to contact Grammarly add-in developers to provide any public interface implemented in the COM add-in and which can be consumed by third-parties. The following walkthrough demonstrates how to expose an object in a VSTO Add-in to other Microsoft Office solutions, including Visual Basic for Applications (VBA) and COM VSTO Add-ins - Walkthrough: Call code in a VSTO Add-in from VBA.

Inquiry on MS GRAPH APIs and its effect on VSTO Addins

I currently have a VSTO Outlook addin which uses the interop libraries to read/send/delete emails.
Will these interop libraries be affected by Microsoft's move to stop support on November 2022, for REST APIs and enforce the use of GRAPH APIs instead?
This may be a stupid question, but I have not read any conclusive documentation that interop libraries will be unaffected by such change.
Thank you very much in advance.
No, your VSTO addin won't be affected: Outlook does not use REST API. It does use MAPI, MAPI-over-HTTP, EWS, and Graph internally, but none of that (except MAPI) is directly exposed through the Outlook Object Model and VSTO API built on top of it.

Powerpoint Add-in: How to create downloadable add-in which modifies Ribbon and calls macros?

I create customised Office solutions for my organisation. To do this, I create Powerpoint/Excel templates which contain customisations I include by modifying the ribbon using Custom UI Editor - the buttons then call macros I wrote in VBA.
Right now, I am facing the problem that I need to keep rolling out new templates (and manually getting people to use it) whenever I want to fix bugs or update features. This is obviously not optimal.
Therefore, I wanted to build an Add-in which:
Modifies the ribbon in a similar way to Custom UI Editor
Can allow me to call VBA macros
Can be updated via the internet
However, (definitely because I'm new to this) the advice out there seems a little vague.
Is it possible to do what I am asking?
Microsoft has 3 different technologies that are all called add-ins. The one you're familiar with is the original VBA-based add-in. That technology can fulfill #2 on your list. However, there is no simple way to directly modify the Ribbon using VBA. It might be possible to update from the Internet, but that would not be an easy project to program.
The second technology is called COM. COM add-ins are most often written in C# or Visual Basic (similar to, but not identical with, VBA) in Visual Studio. COM add-ins can modify the Ribbon and can call VBA macros. Updating from the Internet would still be a more complex problem. Customize the Office Fluent ribbon by using a managed COM add-in
The third type of add-in is the JavaScript add-in technology that Microsoft is currently hyping as the next big thing. There are some UI elements they can manipulate, but not full-scale Ribbon mods. They can't run VBA macros. But they are update-able from the Internet. Understanding the Office JavaScript API

Do I need to develop multiple versions of my MS Outlook VSTO add-in?

I am about to develop my first ever MS Outlook add-in (following this MS guide).
As I create my new project, I see this ...
Was there really such a change between these versions of Outlook? Does this mean that I will have two develop two copies of my add-in? Is there no forward/backward comparability?
Am I even following the correct guide? Should I be developing a VSTO? This question has an answer by Outlook Add-ins Team - MSFT (although their profile does not actually any actual MS affiliation), which starts
We recommend using the web add-in framework, instead of COM, for
writing an Outlook add-in. The web add-in framework enables developers
to:
Write once and have their add-in run across supported Outlook clients
enabling the add-in to reach millions of Outlook Desktop, Outlook for
Web, Outlook for Mac, and Outlook Mobile users.
The short answer is no, a 2013-2016 VSTO Addin will work with 2010. If you need it to work with Office 2007 you'll have to add the assembly Outlook 2007 Primary Interop Assembly (PIA).

Building a Com addin for Office 2000 / Office 2007

I am struggling to find a straight forward guide to creating office addins using VSTO and VB.net.
Specifically I would like to know how to be able to create a addin/ dll which can either be referenced from VBA in the form:-
Addin.method(argument) or Addin.property = X
Or which would install its own custom toolbars/ ribbon interface to an aspect of office for example Word.
I've checked MSDN and in terms of legibility and usability of the explanations I have drawn a blank so far.
I currently have a requirement to create at least one addin for Office 2000 to run and manipluate SQL and then a suite of addins for a customized Office 2007 (Word) set-up.
Adding global named items to the script engine from VBA code requires the script engine expose itself via IActiveScript::AddNamedItem. I doin't think Microsoft would do it anytime soon as this could break existing VBA code.
Got this working :-)
Using a class libary project and ComInterface / ClassInterface.