Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
Home
DiscussionsAccessExcelInfoPathOutlookPowerPointPublisherWord
DirectoryUser Groups
Related Topics
Outlook ExpressInternet ExplorerWindowsMS Server ProductsMore Topics ...

MS Office Forum / Word / Programming / April 2006

Tip: Looking for answers? Try searching our database.

macro security error trying to invoke a plug-in

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
Andy Fish - 29 Mar 2006 13:54 GMT
Hi,

I have written a MS word COM add-in using vb6, which creates a menu item and
invokes the add-in when it is clicked.

It works on several of our PCs but on one users machine it always gives the
following error when he tries to select the menu item:

"The macro cannot be found or has been disabled because of your macro
security settings"

we have tried setting his macro security to low and still to no avail (mine
is set to high and the plugin still works fine). he is using NAV but has
disabled the office integration (and has also tried disabling the whole of
NAV) but again he just gets the same error. All the PCs are using office
2003.

I am using an add-in designer and have set the OnAction property of the
CommandBarButton to "<!xxx>" where xxx is the progid of the designer. I
can't beleive I have done anything wrong with the code because as I say it
works on several other PCs. we can invoke the same progid via vbscript so I
know everything is registered correctly

does anyone have any clues for the next thing to try?

Andy
Jezebel - 30 Mar 2006 05:14 GMT
One thought: having changed the security setting, you need to restart Word.

This line is disconcerting: "I can't beleive I have done anything wrong..."
Spelling aside (oh the irony!), for a programmer, this assertion is just
folly.

> Hi,
>
[quoted text clipped - 22 lines]
>
> Andy
Andy Fish - 30 Mar 2006 21:29 GMT
well, I've tried reinstalling office and uninstalling norton on the affected
PC but to no avail - exactly the same error.

have also tried it on several more PCs which all work fine (this is why I'm
convinced the code is Ok), so I'm no nearer the solution :-(

> One thought: having changed the security setting, you need to restart
> Word.
[quoted text clipped - 29 lines]
>>
>> Andy
Andy Fish - 31 Mar 2006 16:48 GMT
FWIW here's what happened.

A trivial bug in the application caused a VB out-of-range error which wasn't
trapped. I thought nothing of it at the time (because this is just a buggy
prototype) but here's the strange thing:

The first time the add-in generates an untrapped exception, it will never be
invoked again (even if word is restarted, the machine rebooted or, as in
this case, office is reinstalled !!)

Strangely, the item remains on the menu (even after uninstalling the
add-in!!) but it is not loaded and therefore can't be invoked.

The menu item must be removed manually using word's "customize" option.
After that the add-in can be reinstalled and then works ok.

There's a clue in this KB article http://support.microsoft.com/?kbid=208316.
Although that's for outlook it lets on that any untrapped errros in a COM
add-in can have very serious consequences

Andy

> well, I've tried reinstalling office and uninstalling norton on the
> affected PC but to no avail - exactly the same error.
[quoted text clipped - 35 lines]
>>>
>>> Andy
Cindy M  -WordMVP- - 09 Apr 2006 18:32 GMT
Hi Andy,

> The first time the add-in generates an untrapped exception, it will never be
> invoked again (even if word is restarted, the machine rebooted or, as in
> this case, office is reinstalled !!)
>  
> Strangely, the item remains on the menu (even after uninstalling the
> add-in!!) but it is not loaded and therefore can't be invoked.

Since the "temporary" setting has no meaning for a commandbar control in the
Word environment, it's not surprising that the item would remain. The Addin was
disconnected, so any code you may have in the Addin to remove the control won't
fire.

Cindy Meister
INTER-Solutions, Switzerland
http://homepage.swissonline.ch/cindymeister (last update Jun 8 2004)
http://www.word.mvps.org

This reply is posted in the Newsgroup; please post any follow question or reply
in the newsgroup and not by e-mail :-)
Andy Fish - 12 Apr 2006 14:21 GMT
> Hi Andy,
>
[quoted text clipped - 13 lines]
> won't
> fire.

Thanks for clarifying that. All the sample code I have seen adds the control
every time word starts up, so I had assumed that they were specific to that
"session" of word

Andy

> Cindy Meister
> INTER-Solutions, Switzerland
[quoted text clipped - 4 lines]
> reply
> in the newsgroup and not by e-mail :-)
praveen - 18 Apr 2006 09:28 GMT
Hi Andy,

I am also getting the same problem i.e "The macro caanot be found or has
been disabled because of your macro settings".

I have developed a shared add-in in vb.net for MS Word 2003 which i am
adding a new commandbar button in "Tools" commandbars and i have written a
commandbar control event which displays a message box.

everything is working fine but after displaying a message box i am getting a
dialog box saying that "The macro caanot be found or has been disabled
because of your macro settings". Currently my macro settings are medium and i
tried even with low and i did check in "Trust all installed addins and
templates".

I did develop the same addin in couple of boxes but i am getting this dialog
box("The macro caanot be found or has been disabled because of your macro
settings") in both of the boxes.

here is the add-in code

code:
--------------------------

Public Class Connect

   Implements Extensibility.IDTExtensibility2
   Dim applicationObject As Object
   Dim addInInstance As Object
   Dim objCommandBars As Microsoft.Office.Core.CommandBars
   Dim objCommandBar As Microsoft.Office.Core.CommandBar
   Dim objCommandBarControl As Microsoft.Office.Core.CommandBarControl
   Dim WithEvents objCommandBarButton As
Microsoft.Office.Core.CommandBarButton

Public Sub OnStartupComplete(ByRef custom As System.Array) Implements
Extensibility.IDTExtensibility2.OnStartupComplete
       Try
           AddDocManagerMenuItem()
       Catch ex As Exception
           MsgBox(ex.Message)
       End Try
   End Sub



Public Sub OnBeginShutdown(ByRef custom As System.Array) Implements
Extensibility.IDTExtensibility2.OnBeginShutdown
       Try
           applicationObject.CommandBars.Item("Tools").Controls.Item("MY
Document Manager").Delete()
       Catch ex As Exception
           MsgBox(ex.Message)
       End Try

   End Sub



Private Sub AddDocManagerMenuItem()

       Try
           objCommandBars = applicationObject.CommandBars
           objCommandBar = objCommandBars.Item("Tools")

           For Each objCommandBarControl In objCommandBar.Controls
               If Trim(objCommandBarControl.Caption) = "MY Document
Manager" Then
                   objCommandBar.Controls.Item("MY Document
Manager").Delete()
               End If
           Next objCommandBarControl

           objCommandBarButton = objCommandBar.Controls.Add(msoControlButton)
           With objCommandBarButton

               .Caption = "MY Document Manager"
               .Tag = "MY Document Manager tag"
               .OnAction = "MY Document Manager action"
               .Visible = True
               .TooltipText = "MY Document Manager tool tip"
           End With

       Catch ex As Exception
           MsgBox(ex.Message)
       End Try

   End Sub

Private Sub objCommandBarButton_Click(ByVal Ctrl As
Microsoft.Office.Core.CommandBarButton, ByRef CancelDefault As Boolean)
Handles objCommandBarButton.Click
       Try
           MsgBox("Menu item clicked")
       Catch ex As Exception
           MsgBox(ex.Message)
       End Try

   End Sub

End Class



Is there any problem in code or is it to do the word settings?

Any ideas please?

cheers

Praveen

> > Hi Andy,
> >
[quoted text clipped - 28 lines]
> > reply
> > in the newsgroup and not by e-mail :-)
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.