Using Office Name.dll as a COM object in .NET - com

I'm trying to use MS Office Name.dll as a COM object.
I found some help in these links to do something like this in web browsers:
https://msdn.microsoft.com/en-us/library/office/ms455335(v=office.14).aspx
http://mcgivery.com/displaying-a-users-lync-status-using-namectrl/
http://blogs.msdn.com/b/tomholl/archive/2013/03/02/integrate-lync-into-your-intranet-sites-using-the-namectrl-plug-in.aspx
name.dll basically allows me to get presence information from MS Lync and display a contact card.
I was able to successfully create a test Windows Form application that references name.dll. VisualStudio creates an Interop for me and i'm able to use the class NameCtrl.
The project worked fine and my test aplication was able to display the contact card, but only when working with an old version of Office 2010.
When upgrading to Office 2010 SP2, it didnt work anymore. When using Office 2013, it never worked.
I can actually instantiate the object successfully, but the object's property 'PresenceEnable' is always 0, and trying to display the contact card throws an exception "E_ACCESDENIED 0x80070005". In these not-working environments, using the webbrowser (IE/ Firefox) still works fine.
Does anyone know what to do to make it work?
Why did it only work with an old version of Office 2010 and stopped to work with newer releases?

I talked to a Microsoft Office Engineer and he told me this dll was not meant to be used that way: it's only meant to be used inside web browsers.

Related

Javascript in Office

I am trying to understand how to develop add-ins/macros in JS for Office, do I need VSTO for it or does it run from Office somewhere?
I did understood that Microsoft is making the first steps toward replacing VBa with JS and impemented an API to develop macros in Office.Js simmilar to the one Google has for it's Docs. But where can I find a development enviroment for Office.js?
The new web-based add-ins are basically a web application executed in the context of the Office application, either on the Desktop (by embedding a browser, IE11 at the moment) or in the browser (Office Online) where everything is web-based already.
The add-in can be hosted on any web resource you like. You just need to specify a source location URI.
Settings and metadata of the add-in are defined in a manifest file. The article Office Add-ins platform overview describes it very well.
Development can be done in any editor or IDE suitable for coding web apps. There is no Alt+F11 VBA IDE anymore, but you may try the Script Lab add-in, a Microsoft Garage project that allows you to try out some code directly in Office and share code snippets. It includes a great collection of sample code too.
The new WebApplications are hosted on a Webserver. You can develop Office Apps with Visual Studio.
Here is a good course for developing Office Apps including an overview of the Javascript Office API:
https://mva.microsoft.com/en-us/training-courses/introduction-to-office-365-development-8329

Outlook addin does not load a server added custom property

Our Outlook addin saves and loads custom properties. Our server code may also add a property to the list of the addin's custom properties via EWS and OWA and Windows Outlook see those server added properties just fine but for some reason in Outlook for Mac a server added custom property is not available.
Ideas? Is it a bug or some kind of a restriction?
Seems like a Mac Outlook bug because OWA and Windows versions work just fine.
As of 16.14.1 this is still an issue. When will this be fixed?
This looks like a bug in Mac Outlook. We are working towards fixing it.

RunTime errorError - ActiveX component can't create object - in an MS ACCESS application

I was trying to run a MS-ACCESS application (MS OFFICE 2007) which was written in VBA and connects to IBM MQ in a Windows 2012 R2 server. While doing so, I am getting the below error -
RunTime errorError - ActiveX component can't create object
When I debug the same, its pointing the error at the below
Set MQS = New MQSession
I've even registered MQAX200.dll using regsvr32.
The same app running finely on Windows 2003 R2 server - MS OFFICE 2007 - IBM MQ Version 7.5
I am sort of doomed right now. Can you please help me if I am missing anything..??
Thank you in advance.
Some things that you may want to check:
Going from a 32bit OS in Server 2003 to a 64bit in Server 2012, so there are 2 different regsvr methods to register libraries. You may want to read the answers in this link, possibly unregister the dll & then do it again just to make sure you did it properly:
How do I register a DLL file on Windows 7 64-bit?
Assuming that's out of the way, you may need to remove the VBA reference to the prior version of MQ, then reference the new version.
You mentioned Server 2003 had Office 2007 on it, does the new server have Office installed or is Access trying to reach the MQ app via unc path or drive letter?
Is VBA looking for a specific drive letter/path that is now different?
You can always fire up Access, create a new project, add the reference to MQ, then in the VBA try to instantiate the object to determine if you get a better error code you can research.
Don't forget to check the Event Viewer for supllemental info on what caused the failed instantiation

Can't find Microsoft Internet Transfer Control in Visual Studio 2013

New project in Visual Basic using Visual Studio 2013.
Want to add the "Microsoft Internet Controls" component but I can't find it.
What am I missing?
This is the second link on Google:
http://answers.microsoft.com/en-us/office/forum/office_2010-customize/cant-find-reference-to-microsoft-internet-controls/e138ff0c-8046-47b1-9c0c-ac28cebe3c7a
Apparently it may have been renamed "Microsoft Browser Helpers" and you may need to add a reference to "ieframe.dll".
If you need FTP, it is fully supported in the .NET framework. You could start with the examples on MSDN: https://msdn.microsoft.com/en-us/library/ms229718%28v=vs.110%29.aspx
The inet1 Internet Transfer Control is installed with MS Office. Install it and you should have no problem having it become available to use in Visual Studio etc.
It's old but still completely useful in apps. It did all the FTP and HTTP calls for a web crawler I wrote years ago and was fast and completely error-free when crawling 100s of 1000s of web pages at a time while I slept. I'd use inet1 today if I was writing an app that did huge amounts of internet calls as quickly as possible.

Creating custom controls for TFS 2012 through a SharePoint 2010 portal

I'm trying to get a SharePoint 2010 web portal working for a TFS 2012 team project. Most of the functionality is working, but I'm having a difficult time getting the custom work item controls we've built working in the SharePoint Project Portal site. (They're working fine within Visual Studio, we haven't tried getting them working in the default TFS Web Access portal.)
My questions are:
Since the TFS Web Access method for creating custom properties have been updated, is that method appropriate for the SharePoint site? (I doubt it, since jQuery is necessary and isn't included by default in SP 2010, but I thought I'd ask.)
Whenever I try to test this, all I get is "Error: Unable to create 'FieldName'" with nothing in the ULS logs. Is there any way I can debug this?
Are there any examples available online that I may have missed in my searches?
After a lot of digging and frustration, I have finally gotten a simple control working. Indeed, SharePoint 2010 expects the custom controls to be formatted similarly to Web Access 2010, not Web Access 2012. Here is an example that helped:
http://code.msdn.microsoft.com/windowsdesktop/CSTFSWebAccessWorkItemMulti-ace1b01e
Also, if you install the 2008 Team System Web Access (yes, 2008), you'll get a Word document with some helpful documentation.
Here are some caveats:
The Word documentation states that the control needs to inherit from both IWorkItemControl and IWorkItemWebControl. Since IWorkItemWebControl contains all of the fields that IWorkItemControl does, and IWorkItemControl is declared in a DLL that references .NET 4.5 (not good for SharePoint 2010), I referenced only IWorkItemWebControl and it seems to work.
The documentation states that your control needs to inherit from System.Web.UI.Control to work, but the UserControl doesn't work. I had to inherit from one of the WebControls to get it to work.
The custom controls need references to TFS 2012 versions of several DLLs (which are listed in the sample download), but the only place I found them were in the GAC on the SharePoint server. So I copied them from the GAC onto my local machine for development.
Deploying is easy - all you need to do is place the .wicc file and the DLL into "Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\LAYOUTS\Tswa\CustomControls".
If I find anything else, I'll post it here.