Pages Menu
TwitterRssFacebook

Posted by on Jul 19, 2016 in Development, LyncDevQ, Skype for Business® (Lync®)

SkypeDevQ: UI Suppression in Skype for Business client

SkypeDevQ: UI Suppression in Skype for Business client

I received a really interesting email from Aliaksei which sparked my interest. It said:

“I have problems with turning UI suppression on for Skype for Business 2015 Basic client. Is it possible anyway? Issue is described more completely here: https://social.technet.microsoft.com/Forums/en-US/8cac1096-d418-4cfa-9ebf-f2db715df010/ui-suppression-on-for-skype-for-business-2015-client-failed?forum=sfbfr&prof=required
I’m googling, and it looks like no one knows and have written how UI Suppression should work with newer clients after Lync 2013.”

Well, this was news to me! Although I haven’t done that much work with UI Suppression recently I was under the impression that it still worked. I read the Technet post, which does indeed describe the problem in more detail. I had to try this for myself!

The last time I wrote anything significant about UI Suppression was in August 2014 in my blog post The 6 things you need to know about UI Suppression Mode. In that I wrote that you enable UI Suppression mode by adding a new value to the registry at:

HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Lync

This registry key was valid for the Lync 2013 client.

Since then however, the Skype for Business client has been released, which uses the 16.0 registry key:

HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Lync

You would naturally think then, that to make UI Suppression work with the Skype for Business client you need to add the UISuppressionMode value to the new 16.0 key. However, this doesn’t work.

The Solution

So, I played around with this for a bit. 🙂  This is what I found. The 16.0 UISuppressionMode registry key is still recognised by the Skype for Business client: when set the standard UI isn’t shown when opening the client from the Start menu. However, any code using the client SDK which attempts to get a handle to the client using LyncClient.GetClient() will throw an error saying “The host process is not running”.

This is because the client SDK is old! There was no refresh of the client SDK when the Skype for Business client came out, so everything it knows it based on Lync 2013. It seems that the SDK is looking in the 15.0 registry key location for the UISuppressionMode key and not finding it, which causes the error.

Moving the UISuppressionMode value back to the 15.0 key makes the client SDK happier, but when the SDK goes to open the Skype for Business client then the normal client UI is shown (because the new client doesn’t look at the 15.0 keys).

The solution? Add the UISuppressionMode key to both the 15.0 and the 16.0 registry keys! Add it to both:

HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Lync
HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Lync

Now, when you try to attach to the client the SDK is happy, the client opens in the correct manner and everything works again!

Aliaksei, thanks for an awesome question!

Written by Tom Morgan

Tom is a Microsoft Teams Platform developer and Microsoft MVP who has been blogging for over a decade. Find out more.
Buy the book: Building and Developing Apps & Bots for Microsoft Teams. Now available to purchase online with free updates.

Post a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.