Metodo ShellFolderItem.ExtendedProperty
Ottiene il valore di una proprietà dal set di proprietà di un elemento. La proprietà può essere specificata in base al nome o all'identificatore di formato (FMTID) del set di proprietà e all'identificatore di proprietà (PID).
Sintassi
retVal = ShellFolderItem.ExtendedProperty(
sPropName
)
Parametri
-
sPropName [in]
-
Tipo: BSTR
Valore String che specifica la proprietà . Vedere la sezione Osservazioni per informazioni dettagliate.
Valore restituito
Tipo: Variant*
Quando termina, questo metodo contiene il valore della proprietà , se esistente per l'elemento specificato. Il valore avrà una digitazione completa, ad esempio le date vengono restituite come date, non come stringhe.
Questo metodo restituisce una stringa di lunghezza zero se la proprietà è valida ma non esiste per l'elemento specificato o un codice di errore in caso contrario.
Commenti
Esistono due modi per specificare una proprietà. Il primo consiste nell'assegnare il nome noto della proprietà, ad esempio "Author" o "Date", a sPropName. Tuttavia, ogni proprietà è un membro di un set di proprietà COM (Component Object Model) e può anche essere identificata specificando il relativo ID formato (FMTID) e l'ID proprietà (PID). Un FMTID è un GUID che identifica il set di proprietà e un PID è un numero intero che identifica una determinata proprietà all'interno del set di proprietà.
La specifica di una proprietà in base ai valori FMTID/PID è in genere più efficiente rispetto all'uso del nome. Per usare i valori FMTID/PID di una proprietà con ExtendedProperty, è necessario combinarli in uno SCID. Uno SCID è una stringa che contiene i valori FMTID/PID nel formato "FMTID**PID", dove FMTID è il formato stringa del GUID del set di proprietà. Ad esempio, lo SCID della proprietà author del set di informazioni di riepilogo è "{F29F85E0-4FF9-1068-AB91-08002B27B3D9} 4".
Per un elenco di FMTID e PID attualmente supportati dalla shell, vedere SHCOLUMNID.
Esempio
Questo codice di esempio illustra come usare ExtendedProperty per recuperare le proprietà "Title" e "Author" da un documento Word. Dopo aver associato l'oggetto ShellFolderItem al file fiWordDoc in questo esempio, recuperare il valore della proprietà passandone il nome a ExtendedProperty.
...
Doc_Title=fiWordDoc.ExtendedProperty("DocTitle")
Doc_Author=fiWordDoc.ExtendedProperty("Author")
...
Un approccio più rapido ed efficiente consiste nel passare un SCID a 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)
...
Negli esempi seguenti viene illustrato l'utilizzo corretto di questo metodo per JScript, VBScript e 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
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato |
Windows 2000 Professional [solo app desktop] |
Server minimo supportato |
Windows 2000 Server [solo app desktop] |
Intestazione |
|
IDL |
|
DLL |
|