Bagikan melalui


Enumerasi STGC (wtypes.h)

Konstanta enumerasi STGC menentukan kondisi untuk melakukan operasi penerapan di metode IStorage::Commit dan IStream::Commit .

Sintaks

typedef enum tagSTGC {
  STGC_DEFAULT = 0,
  STGC_OVERWRITE = 1,
  STGC_ONLYIFCURRENT = 2,
  STGC_DANGEROUSLYCOMMITMERELYTODISKCACHE = 4,
  STGC_CONSOLIDATE = 8
} STGC;

Konstanta

 
STGC_DEFAULT
Nilai: 0
Anda dapat menentukan kondisi ini dengan STGC_CONSOLIDATE, atau beberapa kombinasi dari tiga bendera lainnya dalam daftar elemen ini. Gunakan nilai ini untuk meningkatkan keterbacaan kode.
STGC_OVERWRITE
Nilai: 1
Operasi penerapan dapat menimpa data yang ada untuk mengurangi persyaratan ruang keseluruhan. Nilai ini tidak disarankan untuk penggunaan umum karena tidak sekuat nilai default. Dalam hal ini, dimungkinkan bagi operasi penerapan gagal setelah data lama ditimpa, tetapi sebelum data baru benar-benar diterapkan. Kemudian, baik versi lama maupun versi baru objek penyimpanan tidak akan utuh.





Anda dapat menggunakan nilai ini dalam kasus berikut:


  • Pengguna bersedia mengambil risiko kehilangan data.

  • Urutan penyimpanan memori rendah akan digunakan untuk menyimpan objek penyimpanan dengan aman ke file yang lebih kecil.

  • Penerapan sebelumnya dikembalikan STG_E_MEDIUMFULL, tetapi menimpa data yang ada akan memberikan ruang yang cukup untuk melakukan perubahan pada objek penyimpanan.


Ketahuilah bahwa operasi penerapan memverifikasi bahwa ada ruang yang memadai sebelum terjadi penimpaan. Dengan demikian, bahkan dengan nilai ini yang ditentukan, jika operasi penerapan gagal karena persyaratan ruang, data lama aman. Namun, dimungkinkan agar kehilangan data terjadi dengan nilai STGC_OVERWRITE yang ditentukan jika operasi penerapan gagal karena alasan apa pun selain kurangnya ruang disk.
STGC_ONLYIFCURRENT
Nilai: 2
Mencegah beberapa pengguna objek penyimpanan menimpa perubahan satu sama lain. Operasi penerapan hanya terjadi jika belum ada perubahan pada objek penyimpanan yang disimpan karena pengguna baru-baru ini membukanya. Dengan demikian, versi objek penyimpanan yang disimpan adalah versi yang sama dengan yang telah diedit pengguna. Jika pengguna lain telah mengubah objek penyimpanan, operasi penerapan gagal dan mengembalikan nilai STG_E_NOTCURRENT. Untuk mengambil alih perilaku ini, panggil metode IStorage::Commit atau IStream::Commit lagi menggunakan nilai STGC_DEFAULT .
STGC_DANGEROUSLYCOMMITMERELYTODISKCACHE
Nilai: 4
Menerapkan perubahan pada cache disk write-behind, tetapi tidak menyimpan cache ke disk. Dalam cache disk write-behind, operasi yang menulis ke disk benar-benar menulis ke cache disk, sehingga meningkatkan performa. Cache akhirnya ditulis ke disk, tetapi biasanya tidak sampai setelah operasi tulis telah kembali. Peningkatan performa datang dengan mengorbankan peningkatan risiko kehilangan data jika masalah terjadi sebelum cache disimpan dan data dalam cache hilang.




Jika Anda tidak menentukan nilai ini, maka menerapkan perubahan pada objek penyimpanan tingkat akar kuat meskipun cache disk digunakan. Proses penerapan dua fase memastikan bahwa data disimpan pada disk dan bukan hanya ke cache disk.
STGC_CONSOLIDATE
Nilai: 8
Windows 2000 dan Windows XP: Menunjukkan bahwa penyimpanan harus dikonsolidasikan setelah diterapkan, menghasilkan file yang lebih kecil pada disk. Bendera ini hanya valid pada objek penyimpanan terluar yang telah dibuka dalam mode bertransaksi. Ini tidak valid untuk aliran. Bendera STGC_CONSOLIDATE dapat digabungkan dengan bendera STGC lainnya.

Keterangan

Anda dapat menentukan STGC_DEFAULT atau beberapa kombinasi STGC_OVERWRITE, STGC_ONLYIFCURRENT, dan STGC_DANGEROUSLYCOMMITMERELYTODISKCACHE untuk operasi penerapan normal. Anda dapat menentukan STGC_CONSOLIDATE dengan bendera STGC lainnya.

Biasanya, gunakan STGC_ONLYIFCURRENT untuk melindungi objek penyimpanan jika lebih dari satu pengguna dapat mengedit objek secara bersamaan.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 2000 Professional [hanya aplikasi desktop]
Server minimum yang didukung Windows 2000 Server [hanya aplikasi desktop]
Header wtypes.h

Lihat juga

IPropertyStorage

IStorage

IStream