Bagikan melalui


Memahami Skema Deskripsi Properti

Topik ini memperkenalkan skema deskripsi properti yang digunakan oleh sistem properti Shell.

Pengenalan fitur baru untuk Windows Vista dan kemudian mengharuskan sistem properti Shell yang ada diperluas ke:

  • Mendukung sistem deskripsi properti yang kaya dan dapat diperluas yang menyediakan informasi tentang properti termasuk nama tampilan, jenis, jenis tampilan, perilaku pengurutan dan grup, dan atribut lain yang diperlukan untuk menyajikan dan mengoperasikan properti.
  • Mendukung daftar saham jenis properti (dikombinasikan dengan UI yang dapat mengedit jenis tersebut dalam tampilan yang berbeda seperti tampilan daftar, panel pratinjau, dialog properti, dan sebagainya) yang dapat dikaitkan dengan berbagai properti.
  • Sediakan daftar deskripsi properti, yang menentukan kumpulan properti yang ditampilkan dalam berbagai tampilan.
  • Sediakan antarmuka yang disederhanakan, IPropertyStore, sehingga penangan properti dapat ditulis dengan lebih mudah sehingga properti dapat dipertahankan ke file.
  • Dukungan untuk penangan properti non-file untuk mengekspos properti dalam tampilan.

Fitur-fitur ini dicapai pada arsitektur yang menyediakan akses abstrak ke properti item Shell. Abstraksi ini disebut sistem properti Shell.

Apa itu Skema Deskripsi Properti?

Subsistem skema terdiri dari yang berikut:

  • Satu atau beberapa file skema .propdesc yang menentukan deskripsi properti. Skema deskripsi properti ditentukan dalam kumpulan file skema XML (menggunakan ekstensi file .propdesc) pada runtime pada sistem. File-file ini malas dimuat ketika bagian dari sistem properti memerlukannya.
  • Cache skema dalam memori yang digunakan untuk menyimpan file skema yang diurai, yang mencakup semua deskripsi properti yang diperkenalkan ke subsistem. Tidak perlu memilah ulang file konfigurasi .propdesc yang menjelaskan skema. Untuk informasi selengkapnya, lihat PSRegisterPropertySchema, PSUnregisterPropertySchema, dan PSRefreshPropertySchema.
  • Objek subsistem yang mengimplementasikan IPropertySystem, yang digunakan untuk mendapatkan atau bekerja dengan deskripsi properti.
  • Objek subsistem yang mengimplementasikan IPropertyDescription, yang digunakan untuk menginformasikan dan mengoperasikan berdasarkan deskripsi properti.
  • Objek subsistem yang mengimplementasikan IPropertyDescriptionList, yang digunakan sebagai kumpulan deskripsi properti.

Catatan

Anda harus menambahkan xmlns=http://schemas.microsoft.com/windows/2006/propertydescription ke elemen skema akar file .propdesc Anda.

 

Mengapa Menggunakan Skema?

Properti, sendiri, tidak aman jenis. Komponen dapat menetapkan nilai numerik ke properti System.Author, atau tanda tanggal FILETIME ke properti System.Music.AlbumTitle, dan, tanpa penegakan atau panduan lebih lanjut, penyimpanan properti akan mengizinkannya. Jadi, kami membutuhkan gagasan untuk "membuat skema" properti, yang membawa kami ke subsistem skema.

Apa Saja Bagian Skema Utama?

Skema deskripsi properti yang digunakan oleh sistem properti Shell terdiri dari satu elemen propertyDescriptionList , serta atribut schemaVersion , yang menunjukkan versi format definisi skema ini. Catatan: nilai harus "1,0".

<!-- schema -->
    <xs:element name="schema">
      <xs:complexType>
        <xs:sequence>
          <xs:element ref="propertyDescriptionList" minOccurs="1" maxOccurs="1"/>
        </xs:sequence>
        <xs:attribute name="schemaVersion"  type="xs:string"/>
      </xs:complexType>
    </xs:element>

PropertyDescriptionList terdiri dari satu atau beberapa elemen propertyDescription, serta atribut penerbit dan produk.

<!-- propertyDescriptionList -->
    <xs:element name="propertyDescriptionList">
      <xs:complexType>
        <xs:sequence>
          <xs:element ref="propertyDescription" minOccurs="1" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="publisher" type="xs:string"/>
        <xs:attribute name="product"   type="xs:string"/>
      </xs:complexType>
    </xs:element>

PropertyDescription terdiri dari satu elemen searchInfo dan nol atau satu labelInfo, typeInfo, dan displayInfo, serta atribut formatID, propID, propstr, dan nama.

Harus ada satu elemen propertyDescription untuk setiap nama properti kanonis unik yang dimaksudkan untuk tersedia dalam sistem. Atribut string memiliki batas 512 karakter. Nilai yang lebih panjang dari 512 karakter dipotong.

<!-- propertyDescription -->
    <xs:element name="propertyDescription">
      <xs:complexType>
        <xs:all>
          <xs:element name="description"    type="xs:string" minOccurs="0" maxOccurs="1"/>
          <xs:element ref="searchInfo"   minOccurs="1" maxOccurs="1"/>
          <xs:element ref="labelInfo"    minOccurs="0" maxOccurs="1"/>
          <xs:element ref="typeInfo"     minOccurs="0" maxOccurs="1"/>
          <xs:element ref="displayInfo"  minOccurs="0" maxOccurs="1"/>
        </xs:all>
        <xs:attribute name="formatID"  type="upcase-uuid" use="required""/>
        <xs:attribute name="propID"    type="xs:nonNegativeInteger" use="required""/>
        <xs:attribute name="name"      type="canonical-name" use="required"/>
      </xs:complexType>
    </xs:element>

Perubahan untuk Windows 7

Skema deskripsi properti telah diubah untuk Windows 7. Ini adalah perubahan yang tidak melanggar. Jika elemen atau atribut properti tidak lagi didukung di Windows 7, sistem operasi Windows 7 mengabaikan elemen atau atribut Windows Vista. Demikian pula, Windows Vista juga mengabaikan elemen atau atribut properti Windows 7 baru.

Namun, memperbarui properti kustom untuk Windows 7 direkomendasikan untuk pengalaman pengguna yang lebih baik dan lebih konsisten.

Berikut ini adalah elemen dan atribut baru:

Elemen dan atribut berikut telah berubah:

Elemen dan atribut berikut telah dihapus:

propertyDescription

searchInfo

labelInfo

typeInfo

displayInfo

stringFormat

booleanFormat

numberFormat

dateTimeFormat

enumeratedList

drawControl

editKontrol

filterControl

queryControl

gambar