ShellFolderItem.ExtendedProperty 方法

從專案的屬性集取得屬性的值。 屬性可以依名稱或屬性集的格式識別碼指定, (FMTID) 和屬性識別碼 (PID) 。

語法

retVal = ShellFolderItem.ExtendedProperty(
  sPropName
)

參數

sPropName [in]

類型: BSTR

指定 屬性的 String 值。 如需詳細資訊,請參閱<備註>一節。

傳回值

類型: Variant*

當這個方法傳回時,如果指定專案存在,則包含 屬性的值。 此值會完整輸入,例如,日期會以日期的形式傳回,而不是字串。

如果屬性有效但不存在於指定的專案,否則會傳回零長度字串,否則會傳回錯誤碼。

備註

有兩種方式可以指定屬性。 第一個是將屬性的已知名稱,例如 「Author」 或 「Date」 指派給 sPropName。 不過,每個屬性都是元件物件模型 (COM) 屬性集的成員,也可以藉由指定其格式識別碼 (FMTID) 和屬性識別碼 (PID) 來識別。 FMTID是識別屬性集的GUID,而 PID是識別屬性集內特定屬性的整數。

藉由 FMTID/PID 值指定屬性通常比使用其名稱更有效率。 若要搭配 ExtendedProperty使用屬性的 FMTID/PID 值,必須將它們合併成 SCID。 SCID 是字串,其中包含格式為 「FMTID**PID」 的 FMTID/PID值,其中 FMTID 是屬性集 GUID 的字串格式。 例如,摘要資訊屬性集作者屬性的 SCID 是 「{F29F85E0-4FF9-1068-AB91-08002B27B3D9} 4」。

如需殼層目前支援的 FMTID 和 PID 清單,請參閱 SHCOLUMNID

範例

此範例程式碼說明如何使用ExtendedProperty從Word檔擷取 「Title」 和 「Author」 屬性。 一旦您有與檔案相關聯的 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 專業版 [僅限傳統型應用程式]
最低支援的伺服器
Windows 2000 Server [僅限傳統型應用程式]
標頭
Shldisp.h
Idl
Shldisp.idl
DLL
Shell32.dll (5.0 版或更新版本)