Bagikan melalui


Metode ShellFolderItem.ExtendedProperty

Mendapatkan nilai properti dari kumpulan properti item. Properti dapat ditentukan baik berdasarkan nama atau dengan pengidentifikasi format set properti (FMTID) dan pengidentifikasi properti (PID).

Sintaks

retVal = ShellFolderItem.ExtendedProperty(
  sPropName
)

Parameter

sPropName [in]

Jenis: BSTR

Nilai String yang menentukan properti . Lihat bagian Keterangan untuk detailnya.

Menampilkan nilai

Jenis: Varian*

Ketika metode ini kembali, berisi nilai properti , jika ada untuk item yang ditentukan. Nilai akan memiliki pengetikan penuh—misalnya, tanggal dikembalikan sebagai tanggal, bukan string.

Metode ini mengembalikan string panjang nol jika properti valid tetapi tidak ada untuk item yang ditentukan, atau kode kesalahan sebaliknya.

Keterangan

Ada dua cara untuk menentukan properti. Yang pertama adalah menetapkan nama properti yang terkenal, seperti "Penulis" atau "Tanggal", ke sPropName. Namun, setiap properti adalah anggota kumpulan properti Model Objek Komponen (COM) dan juga dapat diidentifikasi dengan menentukan ID format (FMTID) dan ID properti (PID). FMTID adalah GUID yang mengidentifikasi kumpulan properti, dan PID adalah bilangan bulat yang mengidentifikasi properti tertentu dalam kumpulan properti.

Menentukan properti dengan nilai FMTID/PID-nya biasanya lebih efisien daripada menggunakan namanya. Untuk menggunakan nilai FMTID/PID properti dengan ExtendedProperty, nilai tersebut harus digabungkan ke dalam SCID. SCID adalah string yang berisi nilai FMTID/PID dalam bentuk "FMTID**PID", di mana FMTID adalah bentuk string dari GUID set properti. Misalnya, SCID dari properti penulis kumpulan properti informasi ringkasan adalah "{F29F85E0-4FF9-1068-AB91-08002B27B3D9} 4".

Untuk daftar FMTID dan PID yang saat ini didukung oleh Shell, lihat SHCOLUMNID.

Contoh

Kode sampel ini menggambarkan cara menggunakan ExtendedProperty untuk mengambil properti "Judul" dan "Penulis" dari dokumen Word. Setelah Anda memiliki objek ShellFolderItem yang terkait dengan file, fiWordDoc dalam contoh ini, ambil nilai properti dengan meneruskan namanya ke ExtendedProperty.

...
Doc_Title=fiWordDoc.ExtendedProperty("DocTitle")
Doc_Author=fiWordDoc.ExtendedProperty("Author")
...

Pendekatan yang lebih cepat dan lebih efisien adalah meneruskan SCID ke 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)
...

Contoh berikut menunjukkan penggunaan metode ini yang tepat untuk JScript, VBScript, dan 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

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung
Windows 2000 Professional [hanya aplikasi desktop]
Server minimum yang didukung
Windows 2000 Server [hanya aplikasi desktop]
Header
Shldisp.h
IDL
Shldisp.idl
DLL
Shell32.dll (versi 5.0 atau yang lebih baru)