Enregistrer les propriétés d’archivage automatique d’un dossier dans le stockage de solution
Cette rubrique présente une solution qui enregistre ses données privées dans quelques propriétés d’archivage automatique MAPI. La solution stocke ces propriétés dans un objet StorageItem du dossier auquel s’appliquent les propriétés d’archivage automatique. Les objets StorageItem sont stockés en tant que données masquées dans la partie associée d’un dossier et, comme les solutions peuvent éventuellement chiffrer leurs données, ils offrent la confidentialité requise pour les données de solution. Étant donné que les propriétés d’archivage automatique MAPI ne sont pas exposées en tant que propriétés intégrées explicites dans le modèle objet Outlook, la solution utilise PropertyAccessor sur l’objet StorageItem pour définir ces propriétés.
Voici la procédure :
- La
ChangeAgingProperties
fonction accepte les paramètres d’entrée suivants :
oFolder
est l’objet Folder auquel s’appliquent les propriétés vieillissantes et où leurs valeurs sont stockées.AgeFolder
indique s’il faut archiver ou supprimer des éléments dans le dossier comme spécifié.DeleteItems
indique s’il faut supprimer, au lieu d’archiver, les éléments antérieurs à la période de vieillissement.FileName' indique un fichier spécifique pour l’archivage des éléments anciens. S’il s’agit d’une chaîne vide, c’est le fichier d’archive par défaut, archive.pst, qui est utilisé.
Granularity
indique l’unité de temps pour le vieillissement, si l’archivage doit être calculé en unités de mois, de semaines ou de jours.Period
indique la durée de la granularité donnée. Ensemble, lesGranularity
valeurs etPeriod
indiquent une période de vieillissement. Les éléments dans le dossier déterminé antérieurs à cette période d’ancienneté doivent être archivés ou supprimés selon les indications. Par exemple, unGranularity
de 2 etPeriod
de 14 spécifie une période de vieillissement de 14 jours, lorsque les éléments du dossier donné datant de plus de 14 jours doivent être archivés ou supprimés comme spécifié.Default
indique quels paramètres doivent être définis sur la valeur par défaut. Les valeurs possibles sont 0, 1 et 3 :0 indique que rien ne prend une valeur par défaut.
1 indique que seul l’emplacement de fichier prend une valeur par défaut. Ceci revient à sélectionner les options Archiver ce dossier à l’aide des paramètres suivants et Déplacer les anciens éléments dans le dossier d’archivage par défaut sous l’onglet Archivage automatique de la boîte de dialogue Propriétés pour le dossier.
3 indique que tous les paramètres prennent une valeur par défaut. Ceci revient à sélectionner les options Archiver les éléments dans ce dossier à l’aide des paramètres par défaut sous l’onglet Archivage automatique de la boîte de dialogue Propriétés pour le dossier.
La validité des paramètres est vérifiée.
Si les paramètres sont valides, Folder.GetStorage est utilisé pour créer ou obtenir un objet StorageItem existant avec la classe de message , IPC.MS. Outlook.AgingProperties.
PropertyAccessor est ensuite utilisé pour définir les propriétés d’archivage automatique sur l’objet StorageItem. StorageItem.Save est utilisé pour enregistrer les modifications apportées à l’objet StorageItem.
La
TestAgingProps
procédure définit les paramètres d’archivage automatique pour les propriétés vieillissantes du dossier actif afin que les éléments de plus de six mois soient déplacés vers le fichier d’archivage par défaut.
Remarques
Placez le code dans le module intégré ThisOutlookSession.
Exécutez la
TestAgingProps
procédure pour définir des propriétés vieillissantes sur le dossier actif dans l’explorateur actif.
Note Qu’elle soit implémentée en tant que macro VBA ou complément COM, la solution est un appelant approuvé et peut donc accéder à PropertyAccessor. Pour améliorer cet exemple, encapsulez le code VBA suivant dans une classe .NET pour améliorer l’interception des erreurs et l’énumération pour la granularité.
Function ChangeAgingProperties(oFolder As Outlook.Folder, _
AgeFolder As Boolean, DeleteItems As Boolean, _
FileName As String, Granularity As Integer, _
Period As Integer, Default As Integer) As Boolean
'6 MAPI properties for aging items in a folder
Const PR_AGING_AGE_FOLDER = _
"https://schemas.microsoft.com/mapi/proptag/0x6857000B"
Const PR_AGING_DELETE_ITEMS = _
"https://schemas.microsoft.com/mapi/proptag/0x6855000B"
Const PR_AGING_FILE_NAME_AFTER9 = _
"https://schemas.microsoft.com/mapi/proptag/0x6859001E"
Const PR_AGING_GRANULARITY = _
"https://schemas.microsoft.com/mapi/proptag/0x36EE0003"
Const PR_AGING_PERIOD = _
"https://schemas.microsoft.com/mapi/proptag/0x36EC0003"
Const PR_AGING_DEFAULT = _
"https://schemas.microsoft.com/mapi/proptag/0x685E0003"
Dim oStorage As StorageItem
Dim oPA As PropertyAccessor
' Valid Period:
' 1-999
'
' Valid Granularity:
' 0=Months, 1=Weeks, 2=Days
'
' Valid Default:
' 0=All settings don't use a default setting
' 1=Only the file location is defaulted
' "Archive this folder using these settings" and
' "Move old items to default archive folder" are checked
' 3=All settings are defaulted
' "Archive items in this folder using default settings" is checked
If (oFolder Is Nothing) Or _
(Granularity < 0 Or Granularity > 2) Or _
(Period < 1 Or Period > 999) Or _
(Default < 0 Or Default = 2 Or Default > 3) _
Then
ChangeAgingProperties = False
End If
On Error GoTo Aging_ErrTrap
'Create or get solution storage in given folder by message class
Set oStorage = oFolder.GetStorage( _
"IPC.MS.Outlook.AgingProperties", olIdentifyByMessageClass)
Set oPA = oStorage.PropertyAccessor
If Not (AgeFolder) Then
oPA.SetProperty PR_AGING_AGE_FOLDER, False
Else
'Set the 6 aging properties in the solution storage
oPA.SetProperty PR_AGING_AGE_FOLDER, True
oPA.SetProperty PR_AGING_GRANULARITY, Granularity
oPA.SetProperty PR_AGING_DELETE_ITEMS, DeleteItems
oPA.SetProperty PR_AGING_PERIOD, Period
If FileName <> "" Then
oPA.SetProperty PR_AGING_FILE_NAME_AFTER9, FileName
End If
oPA.SetProperty (PR_AGING_DEFAULT), Default
End If
'Save changes as hidden messages to the associated portion of the folder
oStorage.Save
ChangeAgingProperties = True
Exit Function
Aging_ErrTrap:
Debug.Print Err.Number, Err.Description
ChangeAgingProperties = False
End Function
Sub TestAgingProps()
Dim oFolder As Outlook.Folder
Set oFolder = Application.ActiveExplorer.CurrentFolder
If ChangeAgingProperties(oFolder, True, False, "", 0, 6, 1) Then
Debug.Print "ChangeAgingProperties OK"
Else
Debug.Print "ChangeAgingProperties Failed"
End If
End Sub
Assistance et commentaires
Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.