Kelas CPropExchange
Mendukung implementasi persistensi untuk kontrol OLE Anda.
Sintaks
class AFX_NOVTABLE CPropExchange
Anggota
Metode Publik
Nama | Deskripsi |
---|---|
CPropExchange::ExchangeBlobProp | Menukar properti objek besar biner (BLOB). |
CPropExchange::ExchangeFontProp | Menukar properti font. |
CPropExchange::ExchangePersistentProp | Menukar properti antara kontrol dan file. |
CPropExchange::ExchangeProp | Menukar properti dari jenis bawaan apa pun. |
CPropExchange::ExchangeVersion | Menukar nomor versi kontrol OLE. |
CPropExchange::GetVersion | Mengambil nomor versi kontrol OLE. |
CPropExchange::IsAsynchronous | Menentukan apakah pertukaran properti dilakukan secara asinkron. |
CPropExchange::IsLoading | Menunjukkan apakah properti sedang dimuat ke dalam kontrol atau disimpan darinya. |
Keterangan
CPropExchange
tidak memiliki kelas dasar.
Menetapkan konteks dan arah pertukaran properti.
Persistensi adalah pertukaran informasi status kontrol, biasanya diwakili oleh propertinya, antara kontrol itu sendiri dan media.
Kerangka kerja membangun objek yang berasal dari CPropExchange
ketika diberi tahu bahwa properti kontrol OLE akan dimuat dari atau disimpan ke penyimpanan persisten.
Kerangka kerja meneruskan penunjuk ke objek ini CPropExchange
ke fungsi kontrol DoPropExchange
Anda. Jika Anda menggunakan wizard untuk membuat file pemula untuk kontrol Anda, fungsi kontrol DoPropExchange
Anda akan memanggil COleControl::DoPropExchange
. Versi kelas dasar bertukar properti saham kontrol; Anda mengubah versi kelas turunan untuk bertukar properti yang telah Anda tambahkan ke kontrol Anda.
CPropExchange
dapat digunakan untuk membuat serial properti kontrol atau menginisialisasi properti kontrol setelah beban atau pembuatan kontrol. Fungsi ExchangeProp
CPropExchange
anggota dan ExchangeFontProp
dapat menyimpan properti ke dan memuatnya dari media yang berbeda.
Untuk informasi selengkapnya tentang menggunakan CPropExchange
, lihat artikel Kontrol ActiveX MFC: Halaman Properti.
Hierarki Warisan
CPropExchange
Persyaratan
Header: afxctl.h
CPropExchange::ExchangeBlobProp
Menserialisasikan properti yang menyimpan data objek besar biner (BLOB).
virtual BOOL ExchangeBlobProp(
LPCTSTR pszPropName,
HGLOBAL* phBlob,
HGLOBAL hBlobDefault = NULL) = 0;
Parameter
pszPropName
Nama properti yang sedang ditukar.
phBlob
Penunjuk ke variabel yang menunjuk ke tempat properti disimpan (variabel biasanya merupakan anggota kelas Anda).
hBlobDefault
Nilai default untuk properti .
Tampilkan Nilai
Bukan nol jika pertukaran berhasil; 0 jika tidak berhasil.
Keterangan
Nilai properti dibaca dari atau ditulis ke, yang sesuai, variabel yang dirujuk oleh phBlob. Jika hBlobDefault ditentukan, hBlobDefault akan digunakan sebagai nilai default properti. Nilai ini digunakan jika, karena alasan apa pun, serialisasi kontrol gagal.
Fungsi CArchivePropExchange::ExchangeBlobProp
, CResetPropExchange::ExchangeBlobProp
, dan CPropsetPropExchange::ExchangeBlobProp
mengambil alih fungsi virtual murni ini.
CPropExchange::ExchangeFontProp
Menukar properti font antara media penyimpanan dan kontrol.
virtual BOOL ExchangeFontProp(
LPCTSTR pszPropName,
CFontHolder& font,
const FONTDESC* pFontDesc,
LPFONTDISP pFontDispAmbient) = 0;
Parameter
pszPropName
Nama properti yang sedang ditukar.
Font
Referensi ke objek CFontHolder yang berisi properti font.
pFontDesc
Penunjuk ke struktur FONTDESC yang berisi nilai untuk menginisialisasi status default properti font saat pFontDispAmbient adalah NULL.
pFontDispAmbient
Penunjuk ke IFontDisp
antarmuka font yang akan digunakan untuk menginisialisasi status default properti font.
Tampilkan Nilai
Bukan nol jika pertukaran berhasil; 0 jika tidak berhasil.
Keterangan
Jika properti font sedang dimuat dari sedang ke kontrol, karakteristik font diambil dari sedang dan objek yang CFontHolder
direferensikan oleh font diinisialisasi dengannya. Jika properti font sedang disimpan, karakteristik dalam objek font ditulis ke sedang.
Fungsi CArchivePropExchange::ExchangeFontProp
, CResetPropExchange::ExchangeFontProp
, dan CPropsetPropExchange::ExchangeFontProp
mengambil alih fungsi virtual murni ini.
CPropExchange::ExchangePersistentProp
Menukar properti antara kontrol dan file.
virtual BOOL ExchangePersistentProp(
LPCTSTR pszPropName,
LPUNKNOWN* ppUnk,
REFIID iid,
LPUNKNOWN pUnkDefault) = 0;
Parameter
pszPropName
Nama properti yang sedang ditukar.
ppUnk
Penunjuk ke variabel yang berisi penunjuk ke antarmuka properti IUnknown
(variabel ini biasanya merupakan anggota kelas Anda).
iid
ID antarmuka antarmuka pada properti yang akan digunakan kontrol.
pUnkDefault
Nilai default untuk properti .
Tampilkan Nilai
Bukan nol jika pertukaran berhasil; 0 jika tidak berhasil.
Keterangan
Jika properti sedang dimuat dari file ke kontrol, properti dibuat dan diinisialisasi dari file. Jika properti sedang disimpan, nilainya ditulis ke file.
Fungsi CArchivePropExchange::ExchangePersistentProp
, CResetPropExchange::ExchangePersistentProp
, dan CPropsetPropExchange::ExchangePersistentProp
mengambil alih fungsi virtual murni ini.
CPropExchange::ExchangeProp
Menukar properti antara media penyimpanan dan kontrol.
virtual BOOL ExchangeProp(
LPCTSTR pszPropName,
VARTYPE vtProp,
void* pvProp,
const void* pvDefault = NULL) = 0 ;
Parameter
pszPropName
Nama properti yang sedang ditukar.
vtProp
Simbol yang menentukan jenis properti yang sedang ditukar. Kemungkinan nilai adalah:
Simbol | Jenis Properti |
---|---|
VT_I2 | short |
VT_I4 | long |
VT_BOOL | BOOL |
VT_BSTR | CString |
VT_CY | CY |
VT_R4 | float |
VT_R8 | double |
pvProp
Penunjuk ke nilai properti.
pvDefault
Penunjuk ke nilai default untuk properti .
Tampilkan Nilai
Bukan nol jika pertukaran berhasil; 0 jika tidak berhasil.
Keterangan
Jika properti sedang dimuat dari sedang ke kontrol, nilai properti diambil dari sedang dan disimpan dalam objek yang diacu oleh pvProp. Jika properti sedang disimpan ke sedang, nilai objek yang ditujukkan oleh pvProp ditulis ke sedang.
Fungsi CArchivePropExchange::ExchangeProp
, CResetPropExchange::ExchangeProp
, dan CPropsetPropExchange::ExchangeProp
mengambil alih fungsi virtual murni ini.
CPropExchange::ExchangeVersion
Dipanggil oleh kerangka kerja untuk menangani persistensi nomor versi.
virtual BOOL ExchangeVersion(
DWORD& dwVersionLoaded,
DWORD dwVersionDefault,
BOOL bConvert);
Parameter
dwVersionLoaded
Referensi ke variabel tempat nomor versi data persisten yang dimuat akan disimpan.
dwVersionDefault
Nomor versi kontrol saat ini.
bConvert
Menunjukkan apakah akan mengonversi data persisten ke versi saat ini atau menyimpannya pada versi yang sama yang dimuat.
Tampilkan Nilai
Bukan nol jika fungsi berhasil; 0 jika tidak.
CPropExchange::GetVersion
Panggil fungsi ini untuk mengambil nomor versi kontrol.
DWORD GetVersion();
Tampilkan Nilai
Nomor versi kontrol.
CPropExchange::IsAsynchronous
Menentukan apakah pertukaran properti dilakukan secara asinkron.
BOOL IsAsynchronous();
Tampilkan Nilai
Mengembalikan TRUE jika properti ditukar secara asinkron, jika tidak FALSE.
CPropExchange::IsLoading
Panggil fungsi ini untuk menentukan apakah properti sedang dimuat ke kontrol atau disimpan darinya.
BOOL IsLoading();
Tampilkan Nilai
Bukan nol jika properti sedang dimuat; jika tidak, 0.