Changing the default form of a folder
One you have a replacement form region, this is the next thing you would be opting to do.
http://msdn2.microsoft.com/en-us/library/bb231505.aspx
If you use the object model to dynamically create items, be sure to identify the proper message type while creating the object. You can always use the default and the custom form side by side depending on application needs as long as the message classes are different.
Creating Ribbons
I would point you to a very simple example rather than scripting it all over again.
http://blogs.msdn.com/kathleen/archive/2007/05/09/vsto-my-favorite-feature-ribbon-designer.aspx
Modifying the Menu Bar
//Method to add controls to the task bar
CommandBarPopup foundMenu = (CommandBarPopup)Application.ActiveExplorer().CommandBars.ActiveMenuBar.
FindControl(MsoControlType.msoControlPopup,
missing, menuTag, true, true);
CommandBar menuBar = DataStore.oApp.ActiveExplorer().CommandBars.ActiveMenuBar;
CommandBarPopup newMenuBar = (CommandBarPopup)menuBar.Controls.Add(
MsoControlType.msoControlPopup, missing,
missing, missing, false);
if (newMenuBar != null)
{
newMenuBar.Caption = "Hello";
newMenuBar.Tag = menuTag;
buttonOne = (CommandBarButton)newMenuBar.Controls.
Add(MsoControlType.msoControlButton, missing,
missing, 1, true);
buttonOne.Style = MsoButtonStyle.
msoButtonIconAndCaption;
buttonOne.Caption = "My Button";
buttonOne.Tag = " My Button ";
buttonOne.Click += new _CommandBarButtonEvents_ClickEventHandler(buttonOne_Click);
}
Adding an application level task pane
Create a user control (PSTab) and then add it as follows in your ThisAddIn.cs:
PSTab pst = new PSTab();
pst.Width = 200;
CustomTaskPane myCustomTaskPane = this.CustomTaskPanes.Add(pst, "MyTaskPane");
myCustomTaskPane.Width = 200;
DataStore.MyCustomTaskPane = (Object)myCustomTaskPane;
myCustomTaskPane.DockPosition = Microsoft.Office.Core.MsoCTPDockPosition.msoCTPDockPositionRight;
myCustomTaskPane.Visible = true;
Adding an inspector level task pane
Handle the Application.Inspectors.NewInspector event to get a hadle to the current inspector. Create a custom task pane and add it to the inspector. An elongated post can be found at:
http://msdn2.microsoft.com/en-us/library/bb322451(VS.80).aspx
Don’t get confused. Just use it as a guideline for the events and property accessors. The needed code is not even half as long.