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