Método ShellFolderItem.ExtendedProperty
Obtiene el valor de una propiedad del conjunto de propiedades de un elemento. La propiedad se puede especificar por nombre o por el identificador de formato del conjunto de propiedades (FMTID) y el identificador de propiedad (PID).
Sintaxis
retVal = ShellFolderItem.ExtendedProperty(
sPropName
)
Parámetros
-
sPropName [in]
-
Tipo: BSTR
Valor de tipo String que especifica la propiedad . Para obtener información detallada, consulte la sección Comentarios.
Valor devuelto
Tipo: Variant*
Cuando este método devuelve , contiene el valor de la propiedad , si existe para el elemento especificado. El valor tendrá escritura completa; por ejemplo, las fechas se devuelven como fechas, no como cadenas.
Este método devuelve una cadena de longitud cero si la propiedad es válida pero no existe para el elemento especificado, o un código de error de lo contrario.
Comentarios
Hay dos maneras de especificar una propiedad. La primera consiste en asignar el nombre conocido de la propiedad, como "Author" o "Date", a sPropName. Sin embargo, cada propiedad es miembro de un conjunto de propiedades del Modelo de objetos componentes (COM) y también se puede identificar especificando su identificador de formato (FMTID) y el identificador de propiedad (PID). Un FMTID es un GUID que identifica el conjunto de propiedades y un PID es un entero que identifica una propiedad determinada dentro del conjunto de propiedades.
La especificación de una propiedad por sus valores FMTID/PID suele ser más eficaz que usar su nombre. Para usar los valores FMTID/PID de una propiedad con ExtendedProperty, deben combinarse en una SCID. Una SCID es una cadena que contiene los valores FMTID/PID con el formato "FMTID**PID", donde FMTID es la forma de cadena del GUID del conjunto de propiedades. Por ejemplo, el SCID de la propiedad author del conjunto de información de resumen es "{F29F85E0-4FF9-1068-AB91-08002B27B3D9} 4".
Para obtener una lista de FMTID y PID compatibles actualmente con el Shell, consulte SHCOLUMNID.
Ejemplos
Este código de ejemplo muestra cómo usar ExtendedProperty para recuperar las propiedades "Title" y "Author" de un documento de Word. Una vez que tenga el objeto ShellFolderItem asociado al archivo, fiWordDoc en este ejemplo, recupere el valor de la propiedad pasando su nombre a ExtendedProperty.
...
Doc_Title=fiWordDoc.ExtendedProperty("DocTitle")
Doc_Author=fiWordDoc.ExtendedProperty("Author")
...
Un enfoque más rápido y eficaz es pasar 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)
...
En los ejemplos siguientes se muestra el uso adecuado de este método para JScript, VBScript y 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
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible |
Windows 2000 Professional [solo aplicaciones de escritorio] |
Servidor mínimo compatible |
Windows 2000 Server [solo aplicaciones de escritorio] |
Encabezado |
|
IDL |
|
Archivo DLL |
|