Outlook 2007 Meeting Item Send Button

  • Thread starter Thread starter GR
  • Start date Start date
G

GR

I am not having any luck capturing the event when a user presses the
large size "Send" button an a meeting form. I get the event for the
menu "Send" command, but not the button.

I am assuming that it is probably poorly formed XML string I am using
in the IRibbonExtensibility_GetCustomUI function. I have played around
with it a bunch but noting seems to work. This is the latest attemp of
what I was using:


"<customUI xmlns=""http://
schemas.microsoft.com/office/2006/01/customui"">" & _
"<ribbon>" & _
"<tabs>" & _
"<tab idMso=""TabHome"">" & _
"<group idMso=""Send"">" & _
"<button idMso=""SendDefault""
onAction=""SendButton_Action"" />" & _
"</group>" & _
"</tab>" & _
"</tabs>" & _
"</ribbon>" & _
"</customUI>"


Does anyone have an example XML string that captures that "large
button" on the actual form?

Thanks!
 
You're supplying the XML when GetCustomUI() calls for
"Microsoft.Outlook.MeetingRequest.Send"?

Tab idMSO = "TabNewMailMessage"
Group idMSO = "GroupSend"
Control idMSO = "SendDefault"

That's for a meeting request.

You can download the schemas for all the ribbons in Office 2007 from the
Office Developer site at MSDN.
 
You're supplying the XML when GetCustomUI() calls for
"Microsoft.Outlook.MeetingRequest.Send"?

Tab idMSO = "TabNewMailMessage"
Group idMSO = "GroupSend"
Control idMSO = "SendDefault"

That's for a meeting request.

You can download the schemas for all the ribbons in Office 2007 from the
Office Developer site at MSDN.












- Show quoted text -


Actually, I am supplying the XML when GetCustomUI() calls for
"Microsoft.Outlook.Appointment". My custom form is based on the
appointment form. The code for this is getting called, however I don't
think I am using the correct IDMso's for the tab/group/control.

Any idea for this?
 
There is no Send button on an Appointment form by default, you'd have to
make it visible and enabled. Try using idMSO = "TabAppointment" for the tab
idMSO in an appointment item. The group and control should have the same
idMSO values you're using.

And download that XML schemas download from the developer Web site.




<snip>

Actually, I am supplying the XML when GetCustomUI() calls for
"Microsoft.Outlook.Appointment". My custom form is based on the
appointment form. The code for this is getting called, however I don't
think I am using the correct IDMso's for the tab/group/control.

Any idea for this?
 
Hi Ken,
Thanks for the quick reply. I have downloaded the schemas but am not
seeing what I need there (or at least not getting it :-).

I have tried setting the idMSO="TabAppointment" as suggested but I
receive this eror message:

" controls in a built-in group cannot be modified"

when the XML loads.


Thanks.
 
So what does your XML look like now?

It should have something like this in it for repurposing that control:

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
<commands>
<command idMso="SendDefault" onAction="SendButton_Action"/>
</commands>
</customUI>

Sorry I missed that before, that you were repurposing that control.





Hi Ken,
Thanks for the quick reply. I have downloaded the schemas but am not
seeing what I need there (or at least not getting it :-).

I have tried setting the idMSO="TabAppointment" as suggested but I
receive this eror message:

" controls in a built-in group cannot be modified"

when the XML loads.


Thanks.
 
Here are the XML strings and their results that I've tried without
success:

#1

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/
customui">
<commands>
<command idMso="SendDefault" onAction="SendButton_Action" />
</commands>
</customUI>

RESULT: My callback function ("SendButton_Action") never gets called
when pressing the large "Send" button on the form nor when pressing
the "Office/Send" menu item.


#2 (using SendItem instead of SendDefault)

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/
customui">
<commands>
<command idMso="SendItem" onAction="SendButton_Action" />
</commands>
</customUI>

RESULT: My callback function ("SendButton_Action") never gets called
when pressing the large "Send" button on the form. It DOES get called
when pressing the "Office/Send" menu item.


#3

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/
customui">
<ribbon>
<tabs>
<tab idMso="TabAppointment">
<group idMso="GroupSend">
<button idMso="SendDefault"
onAction="SendButton_Action" />
</group>
</tab>
</tabs>
</ribbon>
</customUI>

RESULT: When the code that sets the XML runs, Outlook pops up an error
box:

(when using SendDefault: <button idMso="SendDefault"
onAction="SendButton_Action" />)

"Custom UI Runtime Error"
"controls in a built-in group cannot be modified:
SendDefault"


(when using SendItem: <button idMso="SendItem"
onAction="SendButton_Action" />)

"Custom UI Runtime Error"
"controls in a built-in group cannot be modified:
SendItem"


So the code that sets the XML string always gets called but so far,
nothing seems to capture that large Send button on the form when you
create a Meeting request.


Thanks.
 
SendDefault and SendItem should cover both of those buttons.

The <command> tag is what should be used for repurposing a built-in control.
so that should be OK.

I just played with this on a Mail.Compose form. I was also able to handle
the idMso="SendItem" button but not the idMso="SendDefault" button. I'm
doing some more digging on this but so far it looks like that button is not
able to be repurposed.

Does an alternative of handling the item.Send() event work for you?





Here are the XML strings and their results that I've tried without
success:

#1

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/
customui">
<commands>
<command idMso="SendDefault" onAction="SendButton_Action" />
</commands>
</customUI>

RESULT: My callback function ("SendButton_Action") never gets called
when pressing the large "Send" button on the form nor when pressing
the "Office/Send" menu item.


#2 (using SendItem instead of SendDefault)

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/
customui">
<commands>
<command idMso="SendItem" onAction="SendButton_Action" />
</commands>
</customUI>

RESULT: My callback function ("SendButton_Action") never gets called
when pressing the large "Send" button on the form. It DOES get called
when pressing the "Office/Send" menu item.


#3

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/
customui">
<ribbon>
<tabs>
<tab idMso="TabAppointment">
<group idMso="GroupSend">
<button idMso="SendDefault"
onAction="SendButton_Action" />
</group>
</tab>
</tabs>
</ribbon>
</customUI>

RESULT: When the code that sets the XML runs, Outlook pops up an error
box:

(when using SendDefault: <button idMso="SendDefault"
onAction="SendButton_Action" />)

"Custom UI Runtime Error"
"controls in a built-in group cannot be modified:
SendDefault"


(when using SendItem: <button idMso="SendItem"
onAction="SendButton_Action" />)

"Custom UI Runtime Error"
"controls in a built-in group cannot be modified:
SendItem"


So the code that sets the XML string always gets called but so far,
nothing seems to capture that large Send button on the form when you
create a Meeting request.


Thanks.
 
Hi Ken,

Thanks for looking at this. I'm glad it's not just me who sees this!

I have been playing with using the Item.Send() event in the meanwhile.
I think I might be able to get away with using this although it is
nowhere as efficient. I am having to write a lot more code than if I
could just capture that button's event when pressed. One particular
problem I have is that in Outlook 2007 by the time the Item.Send()
event is called, an occurrence of a recurring meeting that was opened,
modified and has had its "Send" button pressed now has had it's
RecurrenceState changed from "occurrence" to"exception" which was
messing up how I work with this item further downstream. It looks like
I can check this ahead of time though in the Item.Write() event which
comes first and it still is representative of the RecurrenceState of
the item when the user first opened it.

I really would like to be able to intercept that button though. Thanks
for all your help. Please keep me posted if you discover something.
 
I received confirmation from the owner of the Outlook object model that the
large Send button cannot be repurposed. He also confirmed the best
workaround would be to handle item.Send().





Hi Ken,

Thanks for looking at this. I'm glad it's not just me who sees this!

I have been playing with using the Item.Send() event in the meanwhile.
I think I might be able to get away with using this although it is
nowhere as efficient. I am having to write a lot more code than if I
could just capture that button's event when pressed. One particular
problem I have is that in Outlook 2007 by the time the Item.Send()
event is called, an occurrence of a recurring meeting that was opened,
modified and has had its "Send" button pressed now has had it's
RecurrenceState changed from "occurrence" to"exception" which was
messing up how I work with this item further downstream. It looks like
I can check this ahead of time though in the Item.Write() event which
comes first and it still is representative of the RecurrenceState of
the item when the user first opened it.

I really would like to be able to intercept that button though. Thanks
for all your help. Please keep me posted if you discover something.
 
Good to get a "definitive" answer even if it is one I didn't want (or
agree with). Not sure what Microsoft's logic behind excluding that
button is.

Thanks for all your work.
 
Back
Top