add-in
ドラッグ アンド ドロップ領域を作成しているOutlook を作成しています。
コントロールにドラッグアンドドロップされたメールを取得したい。次のコードを使用しました。
private void DragDropControl_DragDrop(object sender, DragEventArgs e)
{
//wrap standard IDataObject in OutlookDataObject
OutlookDataObject dataObject = new OutlookDataObject(e.Data);
//get the names and data streams of the files dropped
string[] filenames = (string[])dataObject.GetData("FileGroupDescriptorW");
//get the Mail Item here.
MemoryStream[] filestreams = (MemoryStream[])dataObject.GetData("FileContents");
this.label2.Text += "Files:\n";
for (int fileIndex = 0; fileIndex < filenames.Length; fileIndex++)
{
//use the fileindex to get the name and data stream
string filename = filenames[fileIndex];
MemoryStream filestream = filestreams[fileIndex];
this.label2.Text += " " + filename + "\n";
//save the file stream using its name to the application path
FileStream outputStream = File.Create(filename);
filestream.WriteTo(outputStream);
byte[] bytesInStream = new byte[outputStream.Length];
//I don't want to save file to the local drive or something like this.
var fileStream = File.Create("C:\\TestFileSave\\" + filename + ".msg");
outputStream.Seek(0, SeekOrigin.Begin);
outputStream.CopyTo(fileStream);
fileStream.Close();
outputStream.Close();
readMessage(filename);
}
}
関数ではreadMessage(filename)
、保存されたファイルを取得し、MailItem
.
しかし、管理者権限なしで Outlook を実行すると、実際の問題が発生し、次のようなエラーが表示されます。
ファイルをローカルドライブに保存せずに変換する他の方法はありますOutlook.MailItem
か?
どんな助けでも大歓迎です。