//有什么帮助吗?
//我使用Delphi + Outlook
为什么我不能使用像 “OutlookApp.ActiveExplorer的项;”
[想要访问ActiveExplorer中的所有项目]为什么只通过
提供MailItems OutlookApp.ActiveExplorer。的选择
[想要访问所有项目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;
答案 0 :(得分:0)
使用Application.ActiveExplorer.CurrentFolder.Items
- 您将获得当前显示的文件夹中的所有项目。