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:
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:
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.
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:
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!