Outlookフォルダを変更するユーティリティスクリプトを作成しています。このため私はRedemption v5.14をCOMインターフェイス(Windowsスクリプトホスト/ JScript)を使用しています。RDOFolderオブジェクトのパフォーマンスが遅い
// enumerate all subfolders of an RDOFolder
function getFolderList(rdoFolder) {
if (!rdoFolder) return;
return foldersToArray(rdoFolder.Folders).map(getFolderDetails);
}
// pull out some details about a single RDOFolder
function getFolderDetails(rdoFolder) {
if (!rdoFolder) return;
return {
name: rdoFolder.Name,
entryID: rdoFolder.EntryID,
defaultMessageClass: rdoFolder.DefaultMessageClass,
folderCount: rdoFolder.Folders.Count
};
}
foldersToArray()
はちょうどJS配列にFolders
コレクションを列挙します:
私はRDOFolderのすべてのサブフォルダのために私にいくつかの情報の配列を取得これらの2つの機能を持ちます。
これは大きなサブフォルダリストのかなりの時間を要する - 40個のサブフォルダの12秒の順に。
私はあまり情報を取得するものに最後の機能を削減する場合:
// pull out some details about a single RDOFolder
function getFolderDetails(rdoFolder) {
if (!rdoFolder) return;
return {
folderCount: rdoFolder.Folders.Count
};
}
、パフォーマンスが(40個のサブフォルダのカップルの十ミリ秒)良いです。
しかし、どういうわけかさえRDOFolderのName
プロパティ(またはその他)にアクセスするには、特別なオーバーヘッドを追加します。
は、なぜこの出来事で、それを改善する方法はありますか? IMAPISession::OpenEntry
を呼び出してRDOFolderを初期化するための任意のプロパティ力の償還へのアクセス -
を参照してください。ありがとう!私が理解できない唯一のことは、これが私に与えるEntryIDのフォーマットです。これはRDOFolderの 'EntryID'プロパティから得たものとは異なり、' RDOStore.GetFolderFromID() 'はそれを気に入らないようです。 – Tomalak
'PR_LONGTERM_ENTRYID_FROM_TABLE'(DASL' "http://schemas.microsoft.com/mapi/proptag/0x66700102" ')のリクエストは正しい値を得ます。再度、感謝します。 – Tomalak