Group:  Microsoft Outlook » microsoft.public.outlook.program_addins
Thread: Inspector and adding a custom toolbar

Geek News

Inspector and adding a custom toolbar
Paul Heinisch 9/2/2006 11:16:02 PM
I don't think I explained it correctly in my last message; I don't want to
add a button to the standard menu, I want to make that when I open a contact
(inspector class) a new toolbar opens with my new button. I have no problem
with adding one to the explorer...but when I try to add it to the inspector I
get "Object reference not set to an instance of an object.". So I know I'm
doing it wrong. Any help?
Re: Inspector and adding a custom toolbar
"Michael Bauer [MVP - Outlook]" <mb[ at ]mvps.org> 9/4/2006 5:04:28 AM
Am Sat, 2 Sep 2006 16:16:02 -0700 schrieb Paul Heinisch:

I don´t know what you "last message" is, hopefully I don´t miss anything:
use the Inspector.Commandbars (instead of Explorer.Commandbars) in the
NewInspector event.

--
Viele Gruesse / Best regards
Michael Bauer - MVP Outlook
-- www.VBOffice.net --


[Quoted Text]
> I don't think I explained it correctly in my last message; I don't want to
> add a button to the standard menu, I want to make that when I open a
contact
> (inspector class) a new toolbar opens with my new button. I have no
problem
> with adding one to the explorer...but when I try to add it to the
inspector I
> get "Object reference not set to an instance of an object.". So I know I'm
> doing it wrong. Any help?
Re: Inspector and adding a custom toolbar
Paul Heinisch 9/4/2006 2:45:02 PM
I did...but I get an error message each time its run...object reference not
set to an instance of an object...

"Michael Bauer [MVP - Outlook]" wrote:

[Quoted Text]
> Am Sat, 2 Sep 2006 16:16:02 -0700 schrieb Paul Heinisch:
>
> I don´t know what you "last message" is, hopefully I don´t miss anything:
> use the Inspector.Commandbars (instead of Explorer.Commandbars) in the
> NewInspector event.
>
> --
> Viele Gruesse / Best regards
> Michael Bauer - MVP Outlook
> -- www.VBOffice.net --
>
>
> > I don't think I explained it correctly in my last message; I don't want to
> > add a button to the standard menu, I want to make that when I open a
> contact
> > (inspector class) a new toolbar opens with my new button. I have no
> problem
> > with adding one to the explorer...but when I try to add it to the
> inspector I
> > get "Object reference not set to an instance of an object.". So I know I'm
> > doing it wrong. Any help?
>
Re: Inspector and adding a custom toolbar
"Michael Bauer [MVP - Outlook]" <mb[ at ]mvps.org> 9/5/2006 4:25:39 AM
Am Mon, 4 Sep 2006 07:45:02 -0700 schrieb Paul Heinisch:

Please show your code.

--
Viele Gruesse / Best regards
Michael Bauer - MVP Outlook
-- www.VBOffice.net --


[Quoted Text]
> I did...but I get an error message each time its run...object reference
not
> set to an instance of an object...
>
> "Michael Bauer [MVP - Outlook]" wrote:
>
>> Am Sat, 2 Sep 2006 16:16:02 -0700 schrieb Paul Heinisch:
>>
>> I don´t know what you "last message" is, hopefully I don´t miss anything:
>> use the Inspector.Commandbars (instead of Explorer.Commandbars) in the
>> NewInspector event.
>>
>> --
>> Viele Gruesse / Best regards
>> Michael Bauer - MVP Outlook
>> -- www.VBOffice.net --
>>
>>
>>> I don't think I explained it correctly in my last message; I don't want
to
>>> add a button to the standard menu, I want to make that when I open a
>> contact
>>> (inspector class) a new toolbar opens with my new button. I have no
>> problem
>>> with adding one to the explorer...but when I try to add it to the
>> inspector I
>>> get "Object reference not set to an instance of an object.". So I know
I'm
>>> doing it wrong. Any help?
>>
Re: Inspector and adding a custom toolbar
Paul Heinisch 9/5/2006 5:01:01 AM
Public Class Connect

Implements Extensibility.IDTExtensibility2

Dim oApp As outlook.Application
Dim addInInstance As Microsoft.Office.Core.COMAddIn
Dim newToolBar As office.CommandBar
Dim WithEvents firstButton As office.CommandBarButton

Dim WithEvents selectInspector As outlook.Inspectors


Public Sub OnBeginShutdown(ByRef custom As System.Array) Implements
Extensibility.IDTExtensibility2.OnBeginShutdown
End Sub

Public Sub OnAddInsUpdate(ByRef custom As System.Array) Implements
Extensibility.IDTExtensibility2.OnAddInsUpdate
End Sub

Public Sub OnStartupComplete(ByRef custom As System.Array) Implements
Extensibility.IDTExtensibility2.OnStartupComplete

selectInspector = oApp.Inspectors
AddHandler selectInspector.NewInspector, AddressOf
Me.NewInspector_Event

End Sub

Public Sub OnDisconnection(ByVal RemoveMode As
Extensibility.ext_DisconnectMode, ByRef custom As System.Array) Implements
Extensibility.IDTExtensibility2.OnDisconnection
End Sub

Public Sub OnConnection(ByVal application As Object, ByVal connectMode
As Extensibility.ext_ConnectMode, ByVal addInInst As Object, ByRef custom As
System.Array) Implements Extensibility.IDTExtensibility2.OnConnection
oApp = CType(application,
Microsoft.Office.Interop.Outlook.Application)
addInInstance = CType(addInInst, Microsoft.Office.Core.COMAddIn)

End Sub

Private Sub NewInspector_Event(ByVal new_Inspector As outlook.Inspector)

new_Inspector.Activate()
newToolBar = Nothing
Call Me.AddToolbar()


End Sub

Private Sub AddToolbar()
Try

Dim button_1 As office.CommandBarButton

If newToolBar Is Nothing Then
Dim cmdBars As office.CommandBars =
oApp.ActiveInspector().CommandBars
newToolBar = cmdBars.Add("NewToolBar",
office.MsoBarPosition.msoBarTop, False, True)
End If
Try
button_1 = CType(newToolBar.Controls.Add(1),
office.CommandBarButton)
With button_1
.Style = office.MsoButtonStyle.msoButtonCaption
.Caption = "Button 1"
.Tag = "Button1"
End With
If Me.firstButton Is Nothing Then
Me.firstButton = button_1
AddHandler firstButton.Click, AddressOf buttonClick
End If

newToolBar.Visible = True
Catch ex As Exception
MsgBox(ex.Message)
End Try
Catch ex As Exception
MsgBox(ex.Message)
MsgBox(ex.StackTrace)
End Try
End Sub



Private Sub buttonClick(ByVal ctrl As office.CommandBarButton, ByRef
Cancel As Boolean)
MsgBox("You clicked: " + ctrl.Caption)
End Sub




End Class

"Michael Bauer [MVP - Outlook]" wrote:

[Quoted Text]
> Am Mon, 4 Sep 2006 07:45:02 -0700 schrieb Paul Heinisch:
>
> Please show your code.
>
> --
> Viele Gruesse / Best regards
> Michael Bauer - MVP Outlook
> -- www.VBOffice.net --
>
>
> > I did...but I get an error message each time its run...object reference
> not
> > set to an instance of an object...
> >
> > "Michael Bauer [MVP - Outlook]" wrote:
> >
> >> Am Sat, 2 Sep 2006 16:16:02 -0700 schrieb Paul Heinisch:
> >>
> >> I don´t know what you "last message" is, hopefully I don´t miss anything:
> >> use the Inspector.Commandbars (instead of Explorer.Commandbars) in the
> >> NewInspector event.
> >>
> >> --
> >> Viele Gruesse / Best regards
> >> Michael Bauer - MVP Outlook
> >> -- www.VBOffice.net --
> >>
> >>
> >>> I don't think I explained it correctly in my last message; I don't want
> to
> >>> add a button to the standard menu, I want to make that when I open a
> >> contact
> >>> (inspector class) a new toolbar opens with my new button. I have no
> >> problem
> >>> with adding one to the explorer...but when I try to add it to the
> >> inspector I
> >>> get "Object reference not set to an instance of an object.". So I know
> I'm
> >>> doing it wrong. Any help?
> >>
>
Re: Inspector and adding a custom toolbar
"Ken Slovak - [MVP - Outlook]" <kenslovak[ at ]mvps.org> 9/5/2006 1:49:18 PM
Don't try to activate the Inspector in the NewInspector event handler.
Handle the Inspector events and in the Activate event create your toolbar.

--
Ken Slovak
[MVP - Outlook]
http://www.slovaktech.com
Author: Absolute Beginner's Guide to Microsoft Office Outlook 2003
Reminder Manager, Extended Reminders, Attachment Options
http://www.slovaktech.com/products.htm


"Paul Heinisch" <PaulHeinisch[ at ]discussions.microsoft.com> wrote in message
news:4E0378C2-B0AA-432C-B773-39BB42F4AA39[ at ]microsoft.com...
[Quoted Text]
> Public Class Connect
>
> Implements Extensibility.IDTExtensibility2
>
> Dim oApp As outlook.Application
> Dim addInInstance As Microsoft.Office.Core.COMAddIn
> Dim newToolBar As office.CommandBar
> Dim WithEvents firstButton As office.CommandBarButton
>
> Dim WithEvents selectInspector As outlook.Inspectors
>
>
> Public Sub OnBeginShutdown(ByRef custom As System.Array) Implements
> Extensibility.IDTExtensibility2.OnBeginShutdown
> End Sub
>
> Public Sub OnAddInsUpdate(ByRef custom As System.Array) Implements
> Extensibility.IDTExtensibility2.OnAddInsUpdate
> End Sub
>
> Public Sub OnStartupComplete(ByRef custom As System.Array) Implements
> Extensibility.IDTExtensibility2.OnStartupComplete
>
> selectInspector = oApp.Inspectors
> AddHandler selectInspector.NewInspector, AddressOf
> Me.NewInspector_Event
>
> End Sub
>
> Public Sub OnDisconnection(ByVal RemoveMode As
> Extensibility.ext_DisconnectMode, ByRef custom As System.Array) Implements
> Extensibility.IDTExtensibility2.OnDisconnection
> End Sub
>
> Public Sub OnConnection(ByVal application As Object, ByVal connectMode
> As Extensibility.ext_ConnectMode, ByVal addInInst As Object, ByRef custom
> As
> System.Array) Implements Extensibility.IDTExtensibility2.OnConnection
> oApp = CType(application,
> Microsoft.Office.Interop.Outlook.Application)
> addInInstance = CType(addInInst, Microsoft.Office.Core.COMAddIn)
>
> End Sub
>
> Private Sub NewInspector_Event(ByVal new_Inspector As
> outlook.Inspector)
>
> new_Inspector.Activate()
> newToolBar = Nothing
> Call Me.AddToolbar()
>
>
> End Sub
>
> Private Sub AddToolbar()
> Try
>
> Dim button_1 As office.CommandBarButton
>
> If newToolBar Is Nothing Then
> Dim cmdBars As office.CommandBars =
> oApp.ActiveInspector().CommandBars
> newToolBar = cmdBars.Add("NewToolBar",
> office.MsoBarPosition.msoBarTop, False, True)
> End If
> Try
> button_1 = CType(newToolBar.Controls.Add(1),
> office.CommandBarButton)
> With button_1
> .Style = office.MsoButtonStyle.msoButtonCaption
> .Caption = "Button 1"
> .Tag = "Button1"
> End With
> If Me.firstButton Is Nothing Then
> Me.firstButton = button_1
> AddHandler firstButton.Click, AddressOf buttonClick
> End If
>
> newToolBar.Visible = True
> Catch ex As Exception
> MsgBox(ex.Message)
> End Try
> Catch ex As Exception
> MsgBox(ex.Message)
> MsgBox(ex.StackTrace)
> End Try
> End Sub
>
>
>
> Private Sub buttonClick(ByVal ctrl As office.CommandBarButton, ByRef
> Cancel As Boolean)
> MsgBox("You clicked: " + ctrl.Caption)
> End Sub
>
>
>
>
> End Class

Re: Inspector and adding a custom toolbar
Paul Heinisch 9/5/2006 4:14:02 PM
I did that...but I'm still getting an error message :object reference not set
to an instance of an object....on this line:

Dim cmdBars As office.CommandBars = oApp.ActiveInspector().CommandBars

What am I doing wrong? Thanks for your help!

Paul

"Ken Slovak - [MVP - Outlook]" wrote:

[Quoted Text]
> Don't try to activate the Inspector in the NewInspector event handler.
> Handle the Inspector events and in the Activate event create your toolbar.
>
> --
> Ken Slovak
> [MVP - Outlook]
> http://www.slovaktech.com
> Author: Absolute Beginner's Guide to Microsoft Office Outlook 2003
> Reminder Manager, Extended Reminders, Attachment Options
> http://www.slovaktech.com/products.htm
>
>
> "Paul Heinisch" <PaulHeinisch[ at ]discussions.microsoft.com> wrote in message
> news:4E0378C2-B0AA-432C-B773-39BB42F4AA39[ at ]microsoft.com...
> > Public Class Connect
> >
> > Implements Extensibility.IDTExtensibility2
> >
> > Dim oApp As outlook.Application
> > Dim addInInstance As Microsoft.Office.Core.COMAddIn
> > Dim newToolBar As office.CommandBar
> > Dim WithEvents firstButton As office.CommandBarButton
> >
> > Dim WithEvents selectInspector As outlook.Inspectors
> >
> >
> > Public Sub OnBeginShutdown(ByRef custom As System.Array) Implements
> > Extensibility.IDTExtensibility2.OnBeginShutdown
> > End Sub
> >
> > Public Sub OnAddInsUpdate(ByRef custom As System.Array) Implements
> > Extensibility.IDTExtensibility2.OnAddInsUpdate
> > End Sub
> >
> > Public Sub OnStartupComplete(ByRef custom As System.Array) Implements
> > Extensibility.IDTExtensibility2.OnStartupComplete
> >
> > selectInspector = oApp.Inspectors
> > AddHandler selectInspector.NewInspector, AddressOf
> > Me.NewInspector_Event
> >
> > End Sub
> >
> > Public Sub OnDisconnection(ByVal RemoveMode As
> > Extensibility.ext_DisconnectMode, ByRef custom As System.Array) Implements
> > Extensibility.IDTExtensibility2.OnDisconnection
> > End Sub
> >
> > Public Sub OnConnection(ByVal application As Object, ByVal connectMode
> > As Extensibility.ext_ConnectMode, ByVal addInInst As Object, ByRef custom
> > As
> > System.Array) Implements Extensibility.IDTExtensibility2.OnConnection
> > oApp = CType(application,
> > Microsoft.Office.Interop.Outlook.Application)
> > addInInstance = CType(addInInst, Microsoft.Office.Core.COMAddIn)
> >
> > End Sub
> >
> > Private Sub NewInspector_Event(ByVal new_Inspector As
> > outlook.Inspector)
> >
> > new_Inspector.Activate()
> > newToolBar = Nothing
> > Call Me.AddToolbar()
> >
> >
> > End Sub
> >
> > Private Sub AddToolbar()
> > Try
> >
> > Dim button_1 As office.CommandBarButton
> >
> > If newToolBar Is Nothing Then
> > Dim cmdBars As office.CommandBars =
> > oApp.ActiveInspector().CommandBars
> > newToolBar = cmdBars.Add("NewToolBar",
> > office.MsoBarPosition.msoBarTop, False, True)
> > End If
> > Try
> > button_1 = CType(newToolBar.Controls.Add(1),
> > office.CommandBarButton)
> > With button_1
> > .Style = office.MsoButtonStyle.msoButtonCaption
> > .Caption = "Button 1"
> > .Tag = "Button1"
> > End With
> > If Me.firstButton Is Nothing Then
> > Me.firstButton = button_1
> > AddHandler firstButton.Click, AddressOf buttonClick
> > End If
> >
> > newToolBar.Visible = True
> > Catch ex As Exception
> > MsgBox(ex.Message)
> > End Try
> > Catch ex As Exception
> > MsgBox(ex.Message)
> > MsgBox(ex.StackTrace)
> > End Try
> > End Sub
> >
> >
> >
> > Private Sub buttonClick(ByVal ctrl As office.CommandBarButton, ByRef
> > Cancel As Boolean)
> > MsgBox("You clicked: " + ctrl.Caption)
> > End Sub
> >
> >
> >
> >
> > End Class
>
>
Re: Inspector and adding a custom toolbar
"Ken Slovak - [MVP - Outlook]" <kenslovak[ at ]mvps.org> 9/5/2006 5:00:26 PM
That's something to find out in the debugger. Is oApp valid at that point?
Is there an ActiveInspector object? It's hard to debug when multiple dot
operators are used, any break in the chain of instantiated items can cause
that error.

Are you keeping alive references to things you add that must be global or
module level? Unexpected garbage collection is a very common problem with
..NET code, things get collected and no longer are valid object references.

--
Ken Slovak
[MVP - Outlook]
http://www.slovaktech.com
Author: Absolute Beginner's Guide to Microsoft Office Outlook 2003
Reminder Manager, Extended Reminders, Attachment Options
http://www.slovaktech.com/products.htm


"Paul Heinisch" <PaulHeinisch[ at ]discussions.microsoft.com> wrote in message
news:89DEE6C4-BCA7-48D4-943F-F6C27C77CFF7[ at ]microsoft.com...
[Quoted Text]
>I did that...but I'm still getting an error message :object reference not
>set
> to an instance of an object....on this line:
>
> Dim cmdBars As office.CommandBars = oApp.ActiveInspector().CommandBars
>
> What am I doing wrong? Thanks for your help!
>
> Paul

Home | Search | Terms | Imprint Contact
Newsgroups Reader - provided by WiredBox.Net