Méthode ShellFolderItem.ExtendedProperty
Obtient la valeur d’une propriété à partir du jeu de propriétés d’un élément. La propriété peut être spécifiée par nom ou par l’identificateur de format (FMTID) et l’identificateur de propriété (PID) du jeu de propriétés.
Syntaxe
retVal = ShellFolderItem.ExtendedProperty(
sPropName
)
Paramètres
-
sPropName [in]
-
Type : BSTR
Valeur string qui spécifie la propriété . Pour plus d'informations, consultez la section Notes.
Valeur retournée
Type : Variant*
Lorsque cette méthode retourne, contient la valeur de la propriété, si elle existe pour l’élément spécifié. La valeur aura une saisie complète, par exemple, les dates sont retournées sous forme de dates, et non de chaînes.
Cette méthode retourne une chaîne de longueur nulle si la propriété est valide mais n’existe pas pour l’élément spécifié, ou un code d’erreur dans le cas contraire.
Notes
Il existe deux façons de spécifier une propriété. La première consiste à affecter le nom bien connu de la propriété, tel que « Author » ou « Date », à sPropName. Toutefois, chaque propriété est membre d’un ensemble de propriétés COM (Component Object Model) et peut également être identifiée en spécifiant son ID de format (FMTID) et son ID de propriété (PID). Un FMTID est un GUID qui identifie le jeu de propriétés, et un PID est un entier qui identifie une propriété particulière dans le jeu de propriétés.
La spécification d’une propriété par ses valeurs FMTID/PID est généralement plus efficace que d’utiliser son nom. Pour utiliser les valeurs FMTID/PID d’une propriété avec ExtendedProperty, elles doivent être combinées dans un SCID. Un SCID est une chaîne qui contient les valeurs FMTID/PID sous la forme « FMTID**PID », où le FMTID est la forme de chaîne du GUID du jeu de propriétés. Par exemple, le SCID de la propriété d’auteur du jeu de propriétés d’informations récapitulatives est « {F29F85E0-4FF9-1068-AB91-08002B27B3D9} 4 ».
Pour obtenir la liste des FMTID et PID actuellement pris en charge par l’interpréteur de commandes, consultez SHCOLUMNID.
Exemples
Cet exemple de code montre comment utiliser ExtendedProperty pour récupérer les propriétés « Title » et « Author » à partir d’un document Word. Une fois l’objet ShellFolderItem associé au fichier fiWordDoc dans cet exemple, récupérez la valeur de la propriété en passant son nom à ExtendedProperty.
...
Doc_Title=fiWordDoc.ExtendedProperty("DocTitle")
Doc_Author=fiWordDoc.ExtendedProperty("Author")
...
Une approche plus rapide et plus efficace consiste à passer un SCID à 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)
...
Les exemples suivants montrent l’utilisation appropriée de cette méthode pour JScript, VBScript et 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
Spécifications
Condition requise | Valeur |
---|---|
Client minimal pris en charge |
Windows 2000 Professionnel [applications de bureau uniquement] |
Serveur minimal pris en charge |
Windows 2000 Server [applications de bureau uniquement] |
En-tête |
|
IDL |
|
DLL |
|