Partager via


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 :

  1. 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, les Granularity valeurs et Period 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, un Granularity de 2 et Period 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.

  1. La validité des paramètres est vérifiée.

  2. 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.

  3. 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.

  4. 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

  1. Placez le code dans le module intégré ThisOutlookSession.

  2. 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.