Publish form Issues

S

spareway

Hi,

I am trying to publish a form via an outlook addin. When I call
Publish Form, I get an exception that says: one or more paramters are
incorrect.

any ideas?

thanks,

craig


Outlook.MailItem theItem;
Outlook.FormDescription theDesc;

//Environment.GetFolderPath(Environment.SpecialFolder.Personal)
Ol.MAPIFolder draftFolder =
OutlookApp.Session.GetDefaultFolder(Ol.OlDefaultFolders.olFolderDrafts);
theItem = (Outlook.MailItem)
this.OutlookApp.CreateItemFromTemplate(formPath, draftFolder);
theDesc = theItem.FormDescription;
theDesc.DisplayName = formName;

Ol.MAPIFolder inboxFolder =
OutlookApp.Session.GetDefaultFolder(Ol.OlDefaultFolders.olFolderInbox);
theDesc.PublishForm(Outlook.OlFormRegistry.olPersonalRegistry,inboxFolder
);
theItem.Close(Outlook.OlInspectorClose.olDiscard);
 
K

Ken Slovak - [MVP - Outlook]

It looks more or less OK to me.

Does it help any if you cast everything as you retrieve it? Are all your
objects OK if you step the code in the debugger?
 
S

spareway

Hi Ken,

All my objects look ok, except for the inBoxFolder. I am not sure if
this is an issue but when i look at the UserPermissions property of the
inBoxFolder object it says:

<error: an exception of type:
{System.Runtime.InteropServices.COMException} occurred>.

could this be the problem?

Also the DisplayName is set to IPM.Note.XXX. Is this ok? What is
display name used for anyway?

thanks,

craig
 
K

Ken Slovak - [MVP - Outlook]

A problem with the Inbox would definitely be a problem with your code.
However, I don't know what the UserPermissions property is in the Inbox
folder, it's not an exposed property in the Outlook object model.

DisplayName defaults to the custom MessageClass unless you enter a different
string for that property when the custom form is published. It's not an
important property for anything other than what shows up in the custom forms
manager.
 
S

spareway

I figured out a solution. The problem was with the second parameter of
publishform.

string
dllPath ;
object missing = System.Reflection.Missing.Value;
Ol.MailItem theItem;
Ol.FormDescription theDesc;

dllPath = GetAssemblyPath();
//Environment.GetFolderPath(Environment.SpecialFolder.Personal)
theItem = (Ol.MailItem)
this.OutlookApp.CreateItemFromTemplate(dllPath + formPath, missing);
theDesc = (Ol.FormDescription) theItem.FormDescription;
theDesc.DisplayName = formName;

theDesc.PublishForm(Ol.OlFormRegistry.olPersonalRegistry,missing );
theItem.Close(Ol.OlInspectorClose.olDiscard);

Marshal.ReleaseComObject(theItem);
Marshal.ReleaseComObject(theDesc);



A problem with the Inbox would definitely be a problem with your code.
However, I don't know what the UserPermissions property is in the Inbox
folder, it's not an exposed property in the Outlook object model.

DisplayName defaults to the custom MessageClass unless you enter a different
string for that property when the custom form is published. It's not an
important property for anything other than what shows up in the custom forms
manager.

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



All my objects look ok, except for the inBoxFolder. I am not sure if
this is an issue but when i look at the UserPermissions property of the
inBoxFolder object it says:
<error: an exception of type:
{System.Runtime.InteropServices.COMException} occurred>.
could this be the problem?
Also the DisplayName is set to IPM.Note.XXX. Is this ok? What is
display name used for anyway?

craig- Hide quoted text -- Show quoted text -
 
Top