ShellFolderItem.ExtendedProperty-Methode

Ruft den Wert einer Eigenschaft aus dem Eigenschaftensatz eines Elements ab. Die Eigenschaft kann entweder anhand des Namens oder des Formatbezeichners (FMTID) und des Eigenschaftenbezeichners (PID) des Eigenschaftensatzes 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

Diese Methode gibt den Wert der -Eigenschaft zurück, sofern sie für das angegebene Element vorhanden ist. Der Wert wird vollständig eingeben, z. B. werden Datumsangaben als Datumsangaben und nicht als Zeichenfolgen zurückgegeben.

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

Bemerkungen

Es gibt zwei Möglichkeiten, eine Eigenschaft anzugeben. Die erste besteht darin, den bekannten Namen der Eigenschaft, z. B. "Author" oder "Date", sPropName zuzuweisen. Jede Eigenschaft ist jedoch ein Member eines COM-Eigenschaftensatzes (Component Object Model) und kann auch durch Angabe der 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.

Die Angabe einer Eigenschaft anhand ihrer 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 einem SCID kombiniert werden. Ein SCID ist eine Zeichenfolge, die die FMTID-/PID-Werte im Format "FMTID**PID" enthält, wobei FMTID die Zeichenfolgenform der GUID des Eigenschaftensatzes ist. Die SCID der Author-Eigenschaft des Zusammenfassungsinformationssatzes lautet beispielsweise "{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 ExtendedProperty verwendet wird, um die Eigenschaften "Title" und "Author" aus einem Word-Dokument abzurufen. Nachdem Sie das ShellFolderItem-Objekt der Datei zugeordnet haben( fiWordDoc in diesem Beispiel), rufen Sie 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 besteht darin, eine SCID an ExtendedProperty zu übergeben.

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

Requirements (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)