Método ShellFolderItem.ExtendedProperty
Obtém o valor de uma propriedade do conjunto de propriedades de um item. A propriedade pode ser especificada por nome ou pelo FMTID (identificador de formato) do conjunto de propriedades e pelo PID (identificador de propriedade).
Sintaxe
retVal = ShellFolderItem.ExtendedProperty(
sPropName
)
Parâmetros
-
sPropName [in]
-
Tipo: BSTR
Um valor String que especifica a propriedade . Consulte a seção Comentários para obter detalhes.
Valor retornado
Tipo: Variant*
Quando este método retorna, contém o valor da propriedade , se ela existir para o item especificado. O valor terá digitação completa, por exemplo, datas são retornadas como datas, não cadeias de caracteres.
Esse método retornará uma cadeia de caracteres de comprimento zero se a propriedade for válida, mas não existir para o item especificado, caso contrário, um código de erro.
Comentários
Há duas maneiras de especificar uma propriedade. A primeira é atribuir o nome conhecido da propriedade, como "Author" ou "Date", a sPropName. No entanto, cada propriedade é membro de um conjunto de propriedades COM (Component Object Model) e também pode ser identificada especificando sua ID de formato (FMTID) e a ID da propriedade (PID). Um FMTID é um GUID que identifica o conjunto de propriedades e um PID é um inteiro que identifica uma propriedade específica dentro do conjunto de propriedades.
Especificar uma propriedade por seus valores FMTID/PID geralmente é mais eficiente do que usar seu nome. Para usar os valores FMTID/PID de uma propriedade com ExtendedProperty, eles devem ser combinados em um SCID. Um SCID é uma cadeia de caracteres que contém os valores FMTID/PID no formato "FMTID**PID", em que o FMTID é a forma de cadeia de caracteres do GUID do conjunto de propriedades. Por exemplo, o SCID da propriedade author do conjunto de informações de resumo é "{F29F85E0-4FF9-1068-AB91-08002B27B3D9} 4".
Para obter uma lista de FMTIDs e PIDs com suporte no momento pelo Shell, consulte SHCOLUMNID.
Exemplos
Este código de exemplo ilustra como usar ExtendedProperty para recuperar as propriedades "Title" e "Author" de um documento Word. Depois de ter o objeto ShellFolderItem associado ao arquivo, fiWordDoc neste exemplo, recupere o valor da propriedade passando seu nome para ExtendedProperty.
...
Doc_Title=fiWordDoc.ExtendedProperty("DocTitle")
Doc_Author=fiWordDoc.ExtendedProperty("Author")
...
Uma abordagem mais rápida e eficiente é passar um SCID para 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)
...
Os exemplos a seguir mostram o uso adequado desse método para 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
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte |
Windows 2000 Professional [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte |
Windows 2000 Server [somente aplicativos da área de trabalho] |
Cabeçalho |
|
IDL |
|
DLL |
|