Compartir a través de


PropertyAccessor (objeto)

Importante

Este artículo se ha traducido con traducción automática; vea la declinación de responsabilidades. Para su referencia, puede encontrar la versión en inglés de este artículo aquí.

Proporciona la capacidad para crear, obtener, establecer y eliminar propiedades de los objetos.

Información de la versión

Versión agregada: Outlook 2007

Notas

El objeto PropertyAccessor se utiliza para obtener y establecer propiedades en el nivel de elemento que no están expuestas de manera explícita en el modelo de objetos de Outlook, o bien las propiedades para los siguientes objetos que no son de tipo Item: AddressEntry, AddressList, Attachment, ExchangeDistributionList, ExchangeUser, Folder, Recipient y Store.

Para obtener más información sobre cómo utilizar el objeto PropertyAccessor, consulte Properties Overview.

Ejemplo

En el ejemplo siguiente de código se muestra cómo utilizar el método PropertyAccessor.GetProperty para leer una propiedad MAPI que pertenece a un objeto MailItem pero que no está expuesta en el modelo de objetos de Outlook, PR_TRANSPORT_MESSAGE_HEADERS.

Sub DemoPropertyAccessorGetProperty()
    Dim PropName, Header As String
    Dim oMail As Object
    Dim oPA As Outlook.PropertyAccessor
    'Get first item in the inbox
    Set oMail = _
        Application.Session.GetDefaultFolder(olFolderInbox).Items(1)
    'PR_TRANSPORT_MESSAGE_HEADERS
    PropName = "https://schemas.microsoft.com/mapi/proptag/0x007D001E"
    'Obtain an instance of PropertyAccessor class
    Set oPA = oMail.PropertyAccessor
    'Call GetProperty
    Header = oPA.GetProperty(PropName)
    Debug.Print (Header)
End Sub

Ejemplo

En el ejemplo siguiente de código se muestra cómo el método PropertyAccessor.SetProperties establece los valores de varias propiedades. Si una propiedad no existe, SetProperties la creará, siempre que el objeto primario sea compatible con la creación de estas propiedades. Si el objeto es compatible con una operación Save explícita, entonces las propiedades se guardarán en el objeto cuando se llame a la operación Save explícita. Si el objeto no es compatible con la operación Save explícita, entonces las propiedades se guardarán en el objeto cuando se llame a SetProperties.

Sub DemoPropertyAccessorSetProperties()
    Dim PropNames(), myValues() As Variant
    Dim arrErrors As Variant
    Dim prop1, prop2, prop3, prop4 As String
    Dim i As Integer
    Dim oMail As Outlook.MailItem
    Dim oPA As Outlook.PropertyAccessor
    'Get first item in the inbox
    Set oMail = _
        Application.Session.GetDefaultFolder(olFolderInbox).Items(1)
    'Names for properties using the MAPI string namespace
    prop1 = "https://schemas.microsoft.com/mapi/string/" & _
        "{FFF40745-D92F-4C11-9E14-92701F001EB3}/mylongprop"
    prop2 = "https://schemas.microsoft.com/mapi/string/" & _
        "{FFF40745-D92F-4C11-9E14-92701F001EB3}/mystringprop"
    prop3 = "https://schemas.microsoft.com/mapi/string/" & _
        "{FFF40745-D92F-4C11-9E14-92701F001EB3}/mydateprop"
    prop4 = "https://schemas.microsoft.com/mapi/string/" & _
        "{FFF40745-D92F-4C11-9E14-92701F001EB3}/myboolprop"
    PropNames = Array(prop1, prop2, prop3, prop4)
    myValues = Array(1020, "111-222-Kudo", Now(), False)
    'Set values with SetProperties call
    'If the properties do not exist, then SetProperties
    'adds the properties to the object when saved.
    'The type of the property is the type of the element
    'passed in myValues array.
    Set oPA = oMail.PropertyAccessor
    arrErrors = oPA.SetProperties(PropNames, myValues)
    If Not (IsEmpty(arrErrors)) Then
        'Examine the arrErrors array to determine if any
        'elements contain errors
        For i = LBound(arrErrors) To UBound(arrErrors)
            'Examine the type of the element
            If IsError(arrErrors(i)) Then
                Debug.Print (CVErr(arrErrors(i)))
            End If
        Next
    End If
    'Save the item
    oMail.Save
End Sub

Nota

Declinación de responsabilidades de traducción automática: Este artículo se ha traducido con un sistema informático sin intervención humana. Microsoft ofrece estas traducciones automáticas para que los hablantes de otros idiomas distintos del inglés puedan disfrutar del contenido sobre los productos, los servicios y las tecnologías de Microsoft. Puesto que este artículo se ha traducido con traducción automática, es posible que contenga errores de vocabulario, sintaxis o gramática.