There really isn't a way to modify the Lync client itself, it doesn't have a plugin model. Basically, you've got 2 options:
- Run the client in UI Suppression mode, in which case you'll need to implement ALL UI yourself (not great...)
- Use the API in automation mode, and dock the conversation in a window of your own - in which case you can create any functionality you want to in your own window
From what you said about your application, it sounds like option 2 is the way to go. Roughly speaking, you'd do this:
- Create your WPF or WinForms window with the buttons you'd need, and a WindowsFormsHost and Panel(WPF) or just a Panel (WinForms) for docking the window
- Listen out for new conversations using ConversationManager.ConversationAdded
- Instantiate a new instance of your window, and dock the conversation window into it
Most of this is described in the article I linked to. You could also check out the Tabbed Conversations application for an example of an app that's doing the same thing.