我正在尝试编写一个Outlook 2007 VSTO加载项,它允许您使用Sharepoint Web服务执行一些操作。我真的很想让用户尽可能简单;理想情况下,他们所要做的只是connect a Sharepoint list to Outlook。从那里,我的加载项理想情况下将从列表中获取实际的Sharepoint URL并执行其操作。不幸的是,我似乎无法找到Outlook在运行时存储此信息的位置。
我能找到的最佳解决方案是读取C:\ Documents and Settings(用户名)\ Local Settings \ Application Data \ Microsoft \ Outlook * .sharing.xml.obi中的文件。
但是,只有在关闭Outlook时才会更新这些文件。这意味着用户必须连接到列表,重新启动Outlook,然后然后事情才会起作用。我宁愿不让事情达到那个水平。
这几乎就像魔法信息一样进入sharing.xml.obi文件。我用谷歌搜索过,我使用过OutlookSpy,绝望中我使用过mfcmapi.exe,但都无济于事。 Outlook存储了这个吗?
答案 0 :(得分:2)
您可以使用对象模型(或直接MAPI调用)从outlook文件夹中查询此信息。首先使用.isSharePointFolder属性来定位您的文件夹。然后,Outlook中的SharePoint列表的URL将作为“隐藏”消息的主题存储在关联的内容表中。
额外提示:如果您尚未使用它,请获取优秀OutlookSpy的副本。它使这种东西变得更加容易。
答案 1 :(得分:1)
有了Paul-Jan的指针,我已经想到了这一点。因为我讨厌谷歌搜索时只能找到间接提示,所以这就是你需要的代码:
private string getSharepointURL(Microsoft.Office.Interop.Outlook.Folder SharepointFolder)
{
if (!SharepointFolder.IsSharePointFolder)
throw new Exception("Cannot get the SharePoint URL of " + SharepointFolder.FullFolderPath + ", because it is not a SharePoint folder.");
return (string)((object[])SharepointFolder.GetTable("", 1).FindRow("[From] = SharePoint").GetValues())[1];
}
这可能是我写过的最丑陋的回复陈述。这是它的作用:
幸运的是,您可以在OutlookSpy中自己完成所有这些步骤。这对于弄清楚如何获取这些宝贵的信息非常有帮助。
答案 2 :(得分:0)
嗯,这就是我使用的......(C#3 / VS2008,Outlook2007)
Outlook.Folder folder = GetSomeSpFolder(); // requirement :)
// Things to look for here, not in the columns by default
// the values can be found in OutlookSpy or perhaps MSDN (haha)
// this value refers to the SP site (not the full URL)
var SHARING_REMOTE_STORE_UID = "http://schemas.microsoft.com/mapi/id/{00062040-0000-0000-C000-000000000046}/8A48001E";
var table = folder.GetTable("[From] = SharePoint", Outlook.OlTableContents.olHiddenItems);
// setup columns to look through
table.Columns.RemoveAll();
table.Columns.Add(SHARING_REMOTE_STORE_UID);
if (!table.EndOfTable) {
var row = table.GetNextRow();
var siteURL = row[SHARING_REMOTE_STORE_UID];
Marshal.ReleaseComObject(row);
} else {
// No matching entry ...
}
Marshal.ReleaseComObject(table);
另请查看http://msdn.microsoft.com/en-us/library/bb176406.aspx
快乐的编码!