ShellFolderItem.ExtendedProperty-Methode

Ruft den Wert einer Eigenschaft aus dem Eigenschaftensatz eines Elements ab. Die Eigenschaft kann entweder anhand des Namens oder durch den Formatbezeichner (FMTID) und den Eigenschaftsbezeichner (PID) des Eigenschaftssatzes angegeben werden.

Syntax

retVal = ShellFolderItem.ExtendedProperty(
  sPropName
)

Parameter

sPropName [in]

Typ: BSTR

Ein String-Wert , der die -Eigenschaft angibt. Weitere Informationen finden Sie im Abschnitt Hinweise.

Rückgabewert

Typ: Variant*

Wenn diese Methode zurückgibt, enthält den Wert der -Eigenschaft, wenn sie für das angegebene Element vorhanden ist. Der Wert verfügt über eine vollständige Eingabe, z. B. werden Datumsangaben als Datumsangaben und nicht als Zeichenfolgen zurückgegeben.

Diese Methode gibt eine Zeichenfolge der Länge Null zurück, wenn die Eigenschaft gültig ist, aber für das angegebene Element nicht vorhanden ist, oder andernfalls einen Fehlercode.

Bemerkungen

Es gibt zwei Möglichkeiten, eine Eigenschaft anzugeben. Die erste besteht darin, sPropName den bekannten Namen der Eigenschaft zuzuweisen, z. B. "Author" oder "Date". Jede Eigenschaft ist jedoch Mitglied eines Com-Eigenschaftssatzes (Component Object Model) und kann auch durch Angabe ihrer Format-ID (FMTID) und der Eigenschaften-ID (PID) identifiziert werden. Eine FMTID ist eine GUID, die den Eigenschaftensatz identifiziert, und eine PID ist eine ganze Zahl, die eine bestimmte Eigenschaft innerhalb des Eigenschaftensatzes identifiziert.

Das Angeben einer Eigenschaft durch ihre FMTID/PID-Werte ist in der Regel effizienter als die Verwendung ihres Namens. Um die FMTID/PID-Werte einer Eigenschaft mit ExtendedProperty zu verwenden, müssen sie in einer SCID kombiniert werden. Eine SCID ist eine Zeichenfolge, die die FMTID/PID-Werte im Format "FMTID**PID" enthält, wobei fmTID die Zeichenfolgenform der GUID des Eigenschaftensatzes ist. Beispielsweise lautet die SCID der Eigenschaft autor des Zusammenfassungsinformations-Eigenschaftssatzes "{F29F85E0-4FF9-1068-AB91-08002B27B3D9} 4".

Eine Liste der FMTIDs und PIDs, die derzeit von der Shell unterstützt werden, finden Sie unter SHCOLUMNID.

Beispiele

In diesem Beispielcode wird veranschaulicht, wie Sie extendedProperty verwenden, um die Eigenschaften "Title" und "Author" aus einem Word Dokument abzurufen. Nachdem Sie das ShellFolderItem-Objekt der Datei zugeordnet haben, ruft fiWordDoc in diesem Beispiel den Wert der Eigenschaft ab, indem sie ihren Namen an ExtendedProperty übergeben.

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

Ein schnellerer und effizienterer Ansatz ist die Übergabe einer SCID an 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)
...

Die folgenden Beispiele zeigen die ordnungsgemäße Verwendung dieser Methode für JScript, VBScript und 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

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server)
Windows 2000 Server [nur Desktop-Apps]
Header
Shldisp.h
IDL
Shldisp.idl
DLL
Shell32.dll (Version 5.0 oder höher)