-2
//有什么帮助?
//我用Delphi +展望为什么我不能使用“OutlookApp.ActiveExplorer.Items;”之类的东西?
为什么我不能使用像
“OutlookApp.ActiveExplorer 项目。”
[要访问的所有项目ActiveExplorer]为什么只有使可通过
OutlookApp.ActiveExplorer MailItems。 选择
[要访问的所有项目ActiveExplorer]
Procedure TFLV.Button2Click(Sender: TObject);
CONST
olFolderInbox = $00000006; //...
VAR //Declaring VARs
OutlookApp, //The outlook App
MailItem, //A MailItem
OLEFolderInbox : OLEVariant; //...
XX : Integer;
Itm : TListItem;
begin
ListView1.Clear;
OutlookApp := GetActiveOleObject('Outlook.Application');
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//Problem - The following Display all the entries in a
//different order from Outlook's InBox!
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
TRY////////////////////////////////////////////////////////////////////
{} //OLEMailItems := OutlookApp.ActiveExplorer.Items;
{} //Does not exist so I had to use this:
{}
{} OLEFolderInbox := OutlookApp.Session.GetDefaultFolder(olFolderInbox);
{} OLEMailItems := OLEFolderInbox.Items;
{} FOR XX := 1 to OLEMailItems.Count DO
{} BEGIN
{} Itm := ListView1.Items.Add;
{} Itm.Caption := DateTimeToStr(OLEMailItems.Item[XX].ReceivedTime);
{} Itm.SubItems.Add( OLEMailItems.Item[XX].Recipients.Item[1].Name);
{} Itm.SubItems.Add( OLEMailItems.Item[XX].SenderName );
{} Itm.SubItems.Add( OLEMailItems.Item[XX].Subject );
{} Itm.ImageIndex := -1;
{} END;
{}
{}FINALLY
{} OLEMailItems := VarNull;
{} OLEFolderInbox := VarNull;
{} OutlookApp := VarNull;
{}END;/////////////////////////////////////////////////////////
{}//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
{}//Problem: Why must I "ActiveExplorer.SelectAllItems" !!!!!
{}// Why not something like "OutlookApp.ActiveExplorer.Items"!!!!!
{}//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
{}TRY/////////////////////////////////////////////////////////////////////
{} OutlookApp.ActiveExplorer.SelectAllItems;
{} OLEMailItems := OutlookApp.ActiveExplorer.Selection;
{}
{} FOR XX := 1 To OLEMailItems.Count DO
{} BEGIN
{} Itm := ListView1.Items.Add;
{} Itm.Caption := DateTimeToStr(OLEMailItems.Item[XX].ReceivedTime );
{} Itm.SubItems.Add( OLEMailItems.Item[XX].Recipients.Item[1].Name);
{} Itm.SubItems.Add( OLEMailItems.Item[XX].SenderName );
{} Itm.SubItems.Add( OLEMailItems.Item[XX].Subject );
{} Itm.ImageIndex := -1;
{} END;
{}
{}FINALLY
{} OLEMailItems := VarNull; // := Nothing
{} OLEFolderInbox := VarNull; // := Nothing
{} OutlookApp := VarNull; // := Nothing
{}END;///////////////////////////////////////////////////////////
end;
问问微软。据我可以看到一个Outlook Explorer对象没有一个Items属性或方法https://msdn.microsoft.com/en-us/library/office/ff860356.aspx如果你必须使用它为什么会是问题语法X或Y来获得结果? –
如果您问为什么不能使用'OutlookApp.ActiveExplorer.Items',那是因为它不存在,并且您不能使用不存在的属性。如果你要求我们推测为什么微软决定不提供'Items'属性,或者他们为什么决定只提供'MailBox'?如果是这样,我们无法帮助。联系Microsoft Office团队并询问他们;你可以在http://www.microsoft.com/office找到它们。 –