Méthode ShellFolderItem.ExtendedProperty

Obtient la valeur d’une propriété à partir du jeu de propriétés d’un élément. La propriété peut être spécifiée par nom ou par l’identificateur de format (FMTID) et l’identificateur de propriété (PID) du jeu de propriétés.

Syntaxe

retVal = ShellFolderItem.ExtendedProperty(
  sPropName
)

Paramètres

sPropName [in]

Type : BSTR

Valeur string qui spécifie la propriété . Pour plus d'informations, consultez la section Notes.

Valeur retournée

Type : Variant*

Lorsque cette méthode retourne, contient la valeur de la propriété, si elle existe pour l’élément spécifié. La valeur aura une saisie complète, par exemple, les dates sont retournées sous forme de dates, et non de chaînes.

Cette méthode retourne une chaîne de longueur nulle si la propriété est valide mais n’existe pas pour l’élément spécifié, ou un code d’erreur dans le cas contraire.

Notes

Il existe deux façons de spécifier une propriété. La première consiste à affecter le nom bien connu de la propriété, tel que « Author » ou « Date », à sPropName. Toutefois, chaque propriété est membre d’un ensemble de propriétés COM (Component Object Model) et peut également être identifiée en spécifiant son ID de format (FMTID) et son ID de propriété (PID). Un FMTID est un GUID qui identifie le jeu de propriétés, et un PID est un entier qui identifie une propriété particulière dans le jeu de propriétés.

La spécification d’une propriété par ses valeurs FMTID/PID est généralement plus efficace que d’utiliser son nom. Pour utiliser les valeurs FMTID/PID d’une propriété avec ExtendedProperty, elles doivent être combinées dans un SCID. Un SCID est une chaîne qui contient les valeurs FMTID/PID sous la forme « FMTID**PID », où le FMTID est la forme de chaîne du GUID du jeu de propriétés. Par exemple, le SCID de la propriété d’auteur du jeu de propriétés d’informations récapitulatives est « {F29F85E0-4FF9-1068-AB91-08002B27B3D9} 4 ».

Pour obtenir la liste des FMTID et PID actuellement pris en charge par l’interpréteur de commandes, consultez SHCOLUMNID.

Exemples

Cet exemple de code montre comment utiliser ExtendedProperty pour récupérer les propriétés « Title » et « Author » à partir d’un document Word. Une fois l’objet ShellFolderItem associé au fichier fiWordDoc dans cet exemple, récupérez la valeur de la propriété en passant son nom à ExtendedProperty.

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

Une approche plus rapide et plus efficace consiste à passer un SCID à 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)
...

Les exemples suivants montrent l’utilisation appropriée de cette méthode pour JScript, VBScript et 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

Spécifications

Condition requise Valeur
Client minimal pris en charge
Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge
Windows 2000 Server [applications de bureau uniquement]
En-tête
Shldisp.h
IDL
Shldisp.idl
DLL
Shell32.dll (version 5.0 ou ultérieure)