Метод ShellFolderItem.ExtendedProperty
Возвращает значение свойства из набора свойств элемента. Свойство можно указать либо по имени, либо по идентификатору формата (FMTID) набора свойств и идентификатору свойства (PID).
Синтаксис
retVal = ShellFolderItem.ExtendedProperty(
sPropName
)
Параметры
-
sPropName [in]
-
Тип: BSTR
Строковое значение, указывающее свойство . Подробные сведения см. в разделе "Заметки".
Возвращаемое значение
Тип: Variant*
При возврате этим методом содержит значение свойства , если оно существует для указанного элемента. Значение будет иметь полную типизацию— например, даты возвращаются в виде дат, а не строк.
Этот метод возвращает строку нулевой длины, если свойство допустимо, но не существует для указанного элемента, или код ошибки в противном случае.
Комментарии
Указать свойство можно двумя способами. Первый — назначить известное имя свойства, например "Автор" или "Дата", свойству sPropName. Однако каждое свойство является членом набора свойств COM, и его также можно определить, указав идентификатор формата (FMTID) и идентификатор свойства (PID). FMTID — это GUID, который идентифицирует набор свойств, а PID — это целое число, идентифицирующее определенное свойство в наборе свойств.
Указание свойства по его значениям FMTID/PID обычно эффективнее, чем использование его имени. Чтобы использовать значения FMTID/PID свойства с ExtendedProperty, их необходимо объединить в SCID. SCID — это строка, содержащая значения FMTID/PID в формате "FMTID**PID", где FMTID — это строковая форма GUID набора свойств. Например, SCID свойства автора набора свойств сводной информации имеет значение "{F29F85E0-4FF9-1068-AB91-08002B27B3D9} 4".
Список FMTID и PID, которые в настоящее время поддерживаются оболочкой, см. в разделе SHCOLUMNID.
Примеры
В этом примере кода показано, как использовать ExtendedProperty для получения свойств Title и Author из документа Word. Получив объект ShellFolderItem, связанный с файлом , fiWordDoc в этом примере, получите значение свойства, передав его имя в ExtendedProperty.
...
Doc_Title=fiWordDoc.ExtendedProperty("DocTitle")
Doc_Author=fiWordDoc.ExtendedProperty("Author")
...
Более быстрый и эффективный подход заключается в передаче 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)
...
В следующих примерах показано правильное использование этого метода для JScript, VBScript и 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
Требования
Требование | Значение |
---|---|
Минимальная версия клиента |
Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера |
Windows 2000 Server [только классические приложения] |
Заголовок |
|
IDL |
|
DLL |
|