Compartir a través de


Método ShellFolderItem.ExtendedProperty

Obtiene el valor de una propiedad del conjunto de propiedades de un elemento. La propiedad se puede especificar por nombre o por el identificador de formato del conjunto de propiedades (FMTID) y el identificador de propiedad (PID).

Sintaxis

retVal = ShellFolderItem.ExtendedProperty(
  sPropName
)

Parámetros

sPropName [in]

Tipo: BSTR

Valor de tipo String que especifica la propiedad . Para obtener información detallada, consulte la sección Comentarios.

Valor devuelto

Tipo: Variant*

Cuando este método devuelve , contiene el valor de la propiedad , si existe para el elemento especificado. El valor tendrá escritura completa; por ejemplo, las fechas se devuelven como fechas, no como cadenas.

Este método devuelve una cadena de longitud cero si la propiedad es válida pero no existe para el elemento especificado, o un código de error de lo contrario.

Comentarios

Hay dos maneras de especificar una propiedad. La primera consiste en asignar el nombre conocido de la propiedad, como "Author" o "Date", a sPropName. Sin embargo, cada propiedad es miembro de un conjunto de propiedades del Modelo de objetos componentes (COM) y también se puede identificar especificando su identificador de formato (FMTID) y el identificador de propiedad (PID). Un FMTID es un GUID que identifica el conjunto de propiedades y un PID es un entero que identifica una propiedad determinada dentro del conjunto de propiedades.

La especificación de una propiedad por sus valores FMTID/PID suele ser más eficaz que usar su nombre. Para usar los valores FMTID/PID de una propiedad con ExtendedProperty, deben combinarse en una SCID. Una SCID es una cadena que contiene los valores FMTID/PID con el formato "FMTID**PID", donde FMTID es la forma de cadena del GUID del conjunto de propiedades. Por ejemplo, el SCID de la propiedad author del conjunto de información de resumen es "{F29F85E0-4FF9-1068-AB91-08002B27B3D9} 4".

Para obtener una lista de FMTID y PID compatibles actualmente con el Shell, consulte SHCOLUMNID.

Ejemplos

Este código de ejemplo muestra cómo usar ExtendedProperty para recuperar las propiedades "Title" y "Author" de un documento de Word. Una vez que tenga el objeto ShellFolderItem asociado al archivo, fiWordDoc en este ejemplo, recupere el valor de la propiedad pasando su nombre a ExtendedProperty.

...
Doc_Title=fiWordDoc.ExtendedProperty("DocTitle")
Doc_Author=fiWordDoc.ExtendedProperty("Author")
...

Un enfoque más rápido y eficaz es pasar sciD a ExtendedProperty.

...
FMTID_SummaryInfo="{F29F85E0-4FF9-1068-AB91-08002B27B3D9}"
PID_TITLE="2"
PID_AUTHOR="4"
SCID_TITLE=FMTID_SummaryInfo+" "+PID_TITLE
SCID_AUTHOR=FMTID_SummaryInfo+" "+PID_AUTHOR
Doc_Title=fiWordDoc.ExtendedProperty(SCID_TITLE)
Doc_Author=fiWordDoc.ExtendedProperty(SCID_AUTHOR)
...

En los ejemplos siguientes se muestra el uso adecuado de este método para JScript, VBScript y Visual Basic.

Jscript:

<script language="JScript">
    function fnFolderItem2ExtendedPropertyJ()
    {
        var objShell = new ActiveXObject("shell.application");
        var objFolder2;
        var ssfWINDOWS = 36;
        
        objFolder2 = objShell.NameSpace(ssfWINDOWS);
        if (objFolder2 != null)
        {
            var objFolderItem;
            
            objFolderItem = objFolder2.ParseName("NOTEPAD.EXE");
            if (objFolderItem != null)
            {
                var szReturn = "";
                
                szReturn = objFolderItem.ExtendedProperty("infotip");
                alert(szReturn);
            }
        }
    }
</script>

Vbscript:

<script language="VBScript">
    function fnFolderItemExtendedPropertyVB()
        dim objShell
        
        set objShell = CreateObject("shell.application")
        if (not objShell is nothing) then
            dim objFolder2
            dim ssfWINDOWS
                
            ssfWINDOWS = 36
            set objFolder2 = objShell.NameSpace(ssfWINDOWS)
            if (not objFolder2 is nothing) then
                dim objFolderItem
                        
                set objFolderItem = objFolder2.Self
                if (not objFolderItem is nothing) then
                    dim szReturn
                    
                    szReturn = objFolderItem.ExtendedProperty("type")
                    alert(szReturn)
                end if
                set objFolderItem = nothing
            end if
            set objFolder2 = nothing
        end if
        set objShell = nothing
    end function
 </script>

Visual Basic:

Private Sub fnFolderItem2ExtendedPropertyVB()
    Dim objShell   As Shell
    Dim objFolder2 As Folder2
    Dim ssfWINDOWS As Long
    
    ssfWINDOWS = 36
    Set objShell = New Shell
    Set objFolder2 = objShell.NameSpace(ssfWINDOWS)
        If (Not objFolder2 Is Nothing) Then
            Dim objFolderItem2 As Object
            
            Set objFolderItem2 = objFolder2.ParseName("NOTEPAD.EXE")
                If (Not objFolderItem2 Is Nothing) Then
                    Dim szReturn As String
                    
                    szReturn = objFolderItem2.ExtendedProperty("size")
                    Debug.Print szReturn
                Else
                    'FolderItem object returned nothing.
                End If
            Set objFolderItem2 = Nothing
        Else
            'Folder object returned nothing.
        End If
    Set objFolder2 = Nothing
    Set objShell = Nothing
End Sub

Requisitos

Requisito Value
Cliente mínimo compatible
Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible
Windows 2000 Server [solo aplicaciones de escritorio]
Encabezado
Shldisp.h
IDL
Shldisp.idl
Archivo DLL
Shell32.dll (versión 5.0 o posterior)