Bagikan melalui


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.

Lihat juga

Bagan Hierarki
COleControl::D oPropExchange