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 |
|
IDL |
|
DLL |
|