OLE Denetimlerinin Kalıcılığı
OLE denetimlerinin bir özelliği, OLE denetiminin bir dosyaya veya akışa özellik değerlerini okumasına veya yazmasına olanak tanıyan özellik kalıcılığıdır (veya serileştirme). Kapsayıcı uygulaması, denetimi yok ettikten sonra bile denetimin özellik değerlerini depolamak için serileştirmeyi kullanabilir. Daha sonra, denetimin yeni bir örneği oluşturulduğunda OLE denetiminin özellik değerleri dosyadan veya akıştan okunabilir.
OLE Denetimlerinin Kalıcılığı
Veri Akışı Adı | Açıklama |
---|---|
PX_Blob | İkili büyük nesne (BLOB) verilerini depolayan bir denetim özelliğini değiştirir. |
PX_Bool | BOOL türünde bir denetim özelliğini değiştirir. |
PX_Color | Denetimin renk özelliğini değiştirir. |
PX_Currency | CY türünde bir denetim özelliğini değiştirir. |
PX_DataPath | türünde CDataPathProperty bir denetim özelliğini değiştirir. |
PX_Double | türünde double bir denetim özelliğini değiştirir. |
PX_Font | Denetimin yazı tipi özelliğini değiştirir. |
PX_Float | türünde float bir denetim özelliğini değiştirir. |
PX_IUnknown | Tanımlanmamış türün denetim özelliğini değiştirir. |
PX_Long | türünde long bir denetim özelliğini değiştirir. |
PX_Picture | Denetimin resim özelliğini değiştirir. |
PX_Short | türünde short bir denetim özelliğini değiştirir. |
PX_ULong | ULONG türünde bir denetim özelliğini değiştirir. |
PX_UShort | USHORT türünde bir denetim özelliğini değiştirir. |
PXstring | Karakter dizesi denetim özelliğini değiştirir. |
PX_VBXFontConvert | VBX denetiminin yazı tipiyle ilgili özelliklerini OLE denetimi yazı tipi özelliğiyle değiştirir. |
Ayrıca, AfxOleTypeMatchGuid
TYPEDESC ile belirli bir GUID arasındaki eşleşmeyi test etmek için genel işlev sağlanır.
PX_Blob
İkili büyük nesne (BLOB) verilerini depolayan bir özelliği serileştirmek veya başlatmak için denetiminizin DoPropExchange
üye işlevi içinde bu işlevi çağır.
BOOL PX_Blob(
CPropExchange* pPX,
LPCTSTR pszPropName,
HGLOBAL& hBlob,
HGLOBAL hBlobDefault = NULL);
Parametreler
pPX
CPropExchange nesnesinin işaretçisi (genellikle parametresi DoPropExchange
olarak geçirilir).
pszPropName
Değiş tokuş edilen özelliğin adı.
hBlob
Özelliğin depolandığı değişkene başvuru (genellikle sınıfınızın bir üye değişkeni).
hBlobDefault
Özelliği için varsayılan değer.
Dönüş Değeri
Değişim başarılı olursa sıfır olmayan; Başarısız olursa 0.
Açıklamalar
Özelliğin değeri, hBlob tarafından başvurulan değişkenden uygun şekilde okunur veya bu değişkene yazılır. Bu değişken ilk kez çağrılmadan PX_Blob
önce NULL olarak başlatılmalıdır (genellikle, bu denetimin oluşturucusunda yapılabilir). hBlobDefault belirtilirse özelliğin varsayılan değeri olarak kullanılır. Herhangi bir nedenle denetimin başlatma veya serileştirme işlemi başarısız olursa bu değer kullanılır.
hBlob ve hBlobDefault tanıtıcıları, aşağıdakileri içeren bir bellek bloğuna başvurur:
Ardından gelen ikili verilerin uzunluğunu bayt cinsinden içeren ve hemen ardından gelen DWORD
Gerçek ikili verileri içeren bir bellek bloğu.
PX_Blob
BLOB türü özellikleri yüklenirken Windows GlobalAlloc API'sini kullanarak bellek ayrılacağını unutmayın. Bu belleği boşaltmak sizin sorumluluğundadır. Bu nedenle, denetiminizin yıkıcısı, denetiminize ayrılan belleği boşaltmak için herhangi bir BLOB türü özellik tanıtıcısında GlobalFree'yi çağırmalıdır.
PX_Bool
BOOL türünde bir özelliği serileştirmek veya başlatmak için denetiminizin DoPropExchange
üye işlevi içinde bu işlevi çağırın.
BOOL PX_Bool(
CPropExchange* pPX,
LPCTSTR pszPropName,
BOOL& bValue);
BOOL PX_Bool(
CPropExchange* pPX,
LPCTSTR pszPropName,
BOOL& bValue,
BOOL bDefault);
Parametreler
pPX
CPropExchange nesnesinin işaretçisi (genellikle parametresi DoPropExchange
olarak geçirilir).
pszPropName
Değiş tokuş edilen özelliğin adı.
bValue
Özelliğin depolandığı değişkene başvuru (genellikle sınıfınızın bir üye değişkeni).
bDefault
Özelliği için varsayılan değer.
Dönüş Değeri
Değişim başarılı olursa sıfır olmayan; Başarısız olursa 0.
Açıklamalar
Özelliğin değeri, bValue tarafından başvuruda bulunılan değişkenden uygun şekilde okunur veya bu değişkene yazılır. bDefault belirtilirse, özelliğin varsayılan değeri olarak kullanılır. Bu değer, herhangi bir nedenle denetimin serileştirme işlemi başarısız olursa kullanılır.
PX_Color
OLE_COLOR türünde bir özelliği serileştirmek veya başlatmak için denetiminizin DoPropExchange
üye işlevi içinde bu işlevi çağırın.
BOOL PX_Color(
CPropExchange* pPX,
LPCTSTR pszPropName,
OLE_COLOR& clrValue);
BOOL PX_Color(
CPropExchange* pPX,
LPCTSTR pszPropName,
OLE_COLOR& clrValue,
OLE_COLOR clrDefault);
Parametreler
pPX
CPropExchange nesnesinin işaretçisi (genellikle parametresi DoPropExchange
olarak geçirilir).
pszPropName
Değiş tokuş edilen özelliğin adı.
clrValue
Özelliğin depolandığı değişkene başvuru (genellikle sınıfınızın bir üye değişkeni).
clrDefault
Denetim geliştiricisi tarafından tanımlanan özellik için varsayılan değer.
Dönüş Değeri
Değişim başarılı olursa sıfır olmayan; Başarısız olursa 0.
Açıklamalar
Özelliğin değeri clrValue tarafından başvurulan değişkenden uygun şekilde okunur veya bu değişkene yazılır. clrDefault belirtilirse, özelliğin varsayılan değeri olarak kullanılır. Bu değer, herhangi bir nedenle denetimin serileştirme işlemi başarısız olursa kullanılır.
PX_Currency
Para birimi türünde bir özelliği serileştirmek veya başlatmak için denetiminizin DoPropExchange
üye işlevi içinde bu işlevi çağırın.
BOOL PX_Currency(
CPropExchange* pPX,
LPCTSTR pszPropName,
CY& cyValue);
BOOL PX_Currency(
CPropExchange* pPX,
LPCTSTR pszPropName,
CY& cyValue,
CY cyDefault);
Parametreler
pPX
CPropExchange nesnesinin işaretçisi (genellikle parametresi DoPropExchange
olarak geçirilir).
pszPropName
Değiş tokuş edilen özelliğin adı.
cyValue
Özelliğin depolandığı değişkene başvuru (genellikle sınıfınızın bir üye değişkeni).
cyDefault
Özelliği için varsayılan değer.
Dönüş Değeri
Değişim başarılı olursa sıfır olmayan; Başarısız olursa 0.
Açıklamalar
Özelliğin değeri, cyValue tarafından başvuruda bulunılan değişkenden uygun şekilde okunur veya bu değişkene yazılır. cyDefault belirtilirse, özelliğin varsayılan değeri olarak kullanılır. Bu değer, herhangi bir nedenle denetimin serileştirme işlemi başarısız olursa kullanılır.
PX_DataPath
CDataPathProperty türünde bir veri yolu özelliğini serileştirmek veya başlatmak için denetiminizin DoPropExchange
üye işlevi içinde bu işlevi çağırın.
BOOL PX_DataPath(
CPropExchange* pPX,
LPCTSTR pszPropName,
CDataPathProperty& dataPathProperty);
BOOL PX_DataPath(
CPropExchange* pPX,
CDataPathProperty& dataPathProperty);
Parametreler
pPX
CPropExchange nesnesinin işaretçisi (genellikle parametresi DoPropExchange
olarak geçirilir).
pszPropName
Değiş tokuş edilen özelliğin adı.
dataPathProperty
Özelliğin depolandığı değişkene başvuru (genellikle sınıfınızın bir üye değişkeni).
Dönüş Değeri
Değişim başarılı olursa sıfır olmayan; Başarısız olursa 0.
Açıklamalar
Veri yolu özellikleri zaman uyumsuz denetim özellikleri uygular. Özelliğin değeri, dataPathProperty tarafından başvuruda bulunılan değişkenden uygun şekilde okunur veya bu değişkene yazılır.
PX_Double
türünde double
bir özelliği serileştirmek veya başlatmak için denetiminizin DoPropExchange
üye işlevi içinde bu işlevi çağırın.
BOOL PX_Double(
CPropExchange* pPX,
LPCTSTR pszPropName,
double& doubleValue);
BOOL PX_Double(
CPropExchange* pPX,
LPCTSTR pszPropName,
double& doubleValue,
double doubleDefault);
Parametreler
pPX
CPropExchange nesnesinin işaretçisi (genellikle parametresi DoPropExchange
olarak geçirilir).
pszPropName
Değiş tokuş edilen özelliğin adı.
doubleValue
Özelliğin depolandığı değişkene başvuru (genellikle sınıfınızın bir üye değişkeni).
doubleDefault
Özelliği için varsayılan değer.
Dönüş Değeri
Değişim başarılı olursa sıfır olmayan; Başarısız olursa 0.
Açıklamalar
Özelliğin değeri, doubleValue tarafından başvuruda bulunan değişkenden uygun şekilde okunur veya bu değişkene yazılır. doubleDefault belirtilirse, özelliğin varsayılan değeri olarak kullanılır. Bu değer, herhangi bir nedenle denetimin serileştirme işlemi başarısız olursa kullanılır.
PX_Font
Yazı tipi türünde bir özelliği serileştirmek veya başlatmak için denetiminizin DoPropExchange
üye işlevi içinde bu işlevi çağırın.
BOOL PX_Font(
CPropExchange* pPX,
LPCTSTR pszPropName,
CFontHolder& font,
const FONTDESC FAR* pFontDesc = NULL,
LPFONTDISP pFontDispAmbient = NULL);
Parametreler
pPX
CPropExchange nesnesinin işaretçisi (genellikle parametresi DoPropExchange
olarak geçirilir).
pszPropName
Değiş tokuş edilen özelliğin adı.
yazı tipi
Yazı tipi özelliğini içeren bir CFontHolder
nesneye başvuru.
pFontDesc
pFontDispAmbient'in NULL olması durumunda yazı tipi özelliğinin varsayılan durumunu başlatırken kullanılacak değerleri içeren bir FONTDESC
yapı işaretçisi.
pFontDispAmbient
Yazı tipi özelliğinin IFontDisp
varsayılan durumunu başlatırken kullanılacak bir yazı tipi arabirimi işaretçisi.
Dönüş Değeri
Değişim başarılı olursa sıfır olmayan; Başarısız olursa 0.
Açıklamalar
Özelliğin değeri, uygun olduğunda bir başvurudan okunur veya öğesine font
CFontHolder
yazılır. pFontDesc ve pFontDispAmbient belirtilirse, gerektiğinde özelliğin varsayılan değerini başlatmak için kullanılırlar. Bu değerler, herhangi bir nedenle denetimin serileştirme işlemi başarısız olursa kullanılır. Genellikle pFontDesc için NULL değerini ve pFontDispAmbient için tarafından COleControl::AmbientFont
döndürülen ortam değerini geçirirsiniz. tarafından COleControl::AmbientFont
döndürülen yazı tipi nesnesinin üye işlevine IFontDisp::Release
yapılan bir çağrıyla serbest bırakılması gerektiğini unutmayın.
PX_Float
türünde float
bir özelliği serileştirmek veya başlatmak için denetiminizin DoPropExchange
üye işlevi içinde bu işlevi çağırın.
BOOL PX_Float(
CPropExchange* pPX,
LPCTSTR pszPropName,
float& floatValue);
BOOL PX_Float(
CPropExchange* pPX,
LPCTSTR pszPropName,
float& floatValue,
float floatDefault);
Parametreler
pPX
CPropExchange nesnesinin işaretçisi (genellikle parametresi DoPropExchange
olarak geçirilir).
pszPropName
Değiş tokuş edilen özelliğin adı.
floatValue
Özelliğin depolandığı değişkene başvuru (genellikle sınıfınızın bir üye değişkeni).
floatDefault
Özelliği için varsayılan değer.
Dönüş Değeri
Değişim başarılı olursa sıfır olmayan; Başarısız olursa 0.
Açıklamalar
Özelliğin değeri, floatValue tarafından başvuruda bulunan değişkenden uygun şekilde okunur veya bu değişkene yazılır. floatDefault belirtilirse, özelliğin varsayılan değeri olarak kullanılır. Bu değer, herhangi bir nedenle denetimin serileştirme işlemi başarısız olursa kullanılır.
PX_IUnknown
Türetilmiş arabirime sahip IUnknown
bir nesne tarafından temsil edilen bir özelliği serileştirmek veya başlatmak için denetiminizin DoPropExchange
üye işlevi içinde bu işlevi çağır.
BOOL PX_IUnknown(
CPropExchange* pPX,
LPCTSTR pszPropName,
LPUNKNOWN& pUnk,
REFIID iid,
LPUNKNOWN pUnkDefault = NULL);
Parametreler
pPX
CPropExchange nesnesinin işaretçisi (genellikle parametresi DoPropExchange
olarak geçirilir).
pszPropName
Değiş tokuş edilen özelliğin adı.
Punk
Özelliğin değerini temsil eden nesnesinin arabirimini içeren bir değişkene başvuru.
iid
Denetim tarafından özellik nesnesinin hangi arabiriminin kullanıldığını gösteren arabirim kimliği.
pUnkDefault
Özelliği için varsayılan değer.
Dönüş Değeri
Değişim başarılı olursa sıfır olmayan; Başarısız olursa 0.
Açıklamalar
Özelliğin değeri, pUnk tarafından başvuruda bulunan değişkenden uygun şekilde okunur veya bu değişkene yazılır. pUnkDefault belirtilirse, özelliğin varsayılan değeri olarak kullanılır. Bu değer, herhangi bir nedenle denetimin serileştirme işlemi başarısız olursa kullanılır.
PX_Long
türünde long
bir özelliği serileştirmek veya başlatmak için denetiminizin DoPropExchange
üye işlevi içinde bu işlevi çağırın.
BOOL PX_Long(
CPropExchange* pPX,
LPCTSTR pszPropName,
long& lValue);
BOOL PX_Long(
CPropExchange* pPX,
LPCTSTR pszPropName,
long& lValue,
long lDefault);
Parametreler
pPX
CPropExchange nesnesinin işaretçisi (genellikle parametresi DoPropExchange
olarak geçirilir).
pszPropName
Değiş tokuş edilen özelliğin adı.
lValue
Özelliğin depolandığı değişkene başvuru (genellikle sınıfınızın bir üye değişkeni).
lDefault
Özelliği için varsayılan değer.
Dönüş Değeri
Değişim başarılı olursa sıfır olmayan; Başarısız olursa 0.
Açıklamalar
Özelliğin değeri, uygun şekilde lValue tarafından başvuruda bulunan değişkenden okunur veya bu değişkene yazılır. lDefault belirtilirse, özelliğin varsayılan değeri olarak kullanılır. Bu değer, herhangi bir nedenle denetimin serileştirme işlemi başarısız olursa kullanılır.
PX_Picture
Denetiminizin DoPropExchange
bir resim özelliğini serileştirmek veya başlatmak için denetiminizin üye işlevi içinde bu işlevi çağırın.
BOOL PX_Picture(
CPropExchange* pPX,
LPCTSTR pszPropName,
CPictureHolder& pict);
BOOL PX_Picture(
CPropExchange* pPX,
LPCTSTR pszPropName,
CPictureHolder& pict,
CPictureHolder& pictDefault);
Parametreler
pPX
CPropExchange nesnesinin işaretçisi (genellikle parametresi DoPropExchange
olarak geçirilir).
pszPropName
Değiş tokuş edilen özelliğin adı.
Pıct
Özelliğin depolandığı bir CPictureHolder nesnesine başvuru (genellikle sınıfınızın bir üye değişkeni).
pictDefault
Özelliği için varsayılan değer.
Dönüş Değeri
Değişim başarılı olursa sıfır olmayan; Başarısız olursa 0.
Açıklamalar
Özelliğin değeri, pict tarafından başvuruda bulunan değişkenden uygun şekilde okunur veya bu değişkene yazılır. pictDefault belirtilirse, özelliğin varsayılan değeri olarak kullanılır. Bu değer, herhangi bir nedenle denetimin serileştirme işlemi başarısız olursa kullanılır.
PX_Short
türünde short
bir özelliği serileştirmek veya başlatmak için denetiminizin DoPropExchange
üye işlevi içinde bu işlevi çağırın.
BOOL PX_Short(
CPropExchange* pPX,
LPCTSTR pszPropName,
short& sValue);
BOOL PX_Short(
CPropExchange* pPX,
LPCTSTR pszPropName,
short& sValue,
short sDefault);
Parametreler
pPX
CPropExchange nesnesinin işaretçisi (genellikle parametresi DoPropExchange
olarak geçirilir).
pszPropName
Değiş tokuş edilen özelliğin adı.
sValue
Özelliğin depolandığı değişkene başvuru (genellikle sınıfınızın bir üye değişkeni).
sDefault
Özelliği için varsayılan değer.
Dönüş Değeri
Değişim başarılı olursa sıfır olmayan; Başarısız olursa 0.
Açıklamalar
Özelliğin değeri, sValue tarafından başvuruda bulunan değişkenden uygun şekilde okunur veya bu değişkene yazılır. sDefault belirtilirse, özelliğin varsayılan değeri olarak kullanılır. Bu değer, herhangi bir nedenle denetimin serileştirme işlemi başarısız olursa kullanılır.
PX_ULong
ULONG türünde bir özelliği serileştirmek veya başlatmak için denetiminizin DoPropExchange
üye işlevi içinde bu işlevi çağırın.
BOOL PX_ULong(
CPropExchange* pPX,
LPCTSTR pszPropName,
ULONG& ulValue);
BOOL PX_ULong(
CPropExchange* pPX,
LPCTSTR pszPropName,
ULONG& ulValue,
long ulDefault);
Parametreler
pPX
CPropExchange nesnesinin işaretçisi (genellikle parametresi DoPropExchange
olarak geçirilir).
pszPropName
Değiştirilmekte olan özelliğin adı.
ulValue
Özelliğin depolandığı değişkene başvuru (genellikle sınıfınızın bir üye değişkeni).
ulDefault
Özelliği için varsayılan değer.
Dönüş Değeri
Değişim başarılı olursa sıfır olmayan; Başarısız olursa 0.
Açıklamalar
Özelliğin değeri, ulValue tarafından başvuruda bulunan değişkenden uygun şekilde okunur veya bu değişkene yazılır. ulDefault belirtilirse, özelliğin varsayılan değeri olarak kullanılır. Bu değer, herhangi bir nedenle denetimin serileştirme işlemi başarısız olursa kullanılır.
PX_UShort
türünde unsigned short
bir özelliği serileştirmek veya başlatmak için denetiminizin DoPropExchange
üye işlevi içinde bu işlevi çağırın.
BOOL PX_UShort(
CPropExchange* pPX,
LPCTSTR pszPropName,
USHORT& usValue);
BOOL PX_UShort(
CPropExchange* pPX,
LPCTSTR pszPropName,
USHORT& usValue,
USHORT usDefault);
Parametreler
pPX
CPropExchange nesnesinin işaretçisi (genellikle parametresi DoPropExchange
olarak geçirilir).
pszPropName
Değiştirilmekte olan özelliğin adı.
usValue
Özelliğin depolandığı değişkene başvuru (genellikle sınıfınızın bir üye değişkeni).
usDefault
Özelliği için varsayılan değer.
Dönüş Değeri
Değişim başarılı olursa sıfır olmayan; Başarısız olursa 0.
Açıklamalar
Özelliğin değeri usValue tarafından başvuruda bulunan değişkenden uygun şekilde okunur veya bu değişkene yazılır. usDefault belirtilirse, özelliğin varsayılan değeri olarak kullanılır. Bu değer, herhangi bir nedenle denetimin serileştirme işlemi başarısız olursa kullanılır.
PXstring
Karakter dizesi özelliğini serileştirmek veya başlatmak için denetiminizin DoPropExchange
üye işlevi içinde bu işlevi çağır.
BOOL PXstring(
CPropExchange* pPX,
LPCTSTR pszPropName,
CString& strValue);
BOOL PXstring(
CPropExchange* pPX,
LPCTSTR pszPropName,
CString& strValue,
CString strDefault);
Parametreler
pPX
CPropExchange nesnesinin işaretçisi (genellikle parametresi DoPropExchange
olarak geçirilir).
pszPropName
Değiş tokuş edilen özelliğin adı.
strValue
Özelliğin depolandığı değişkene başvuru (genellikle sınıfınızın bir üye değişkeni).
strDefault
Özelliği için varsayılan değer.
Dönüş Değeri
Değişim başarılı olursa sıfır olmayan; Başarısız olursa 0.
Açıklamalar
Özelliğin değeri, strValue tarafından başvuruda bulunan değişkenden uygun şekilde okunur veya bu değişkene yazılır. strDefault belirtilirse, özelliğin varsayılan değeri olarak kullanılır. Bu değer, herhangi bir nedenle denetimin serileştirme işlemi başarısız olursa kullanılır.
PX_VBXFontConvert
VBX denetiminin DoPropExchange
yazı tipiyle ilgili özelliklerini dönüştürerek yazı tipi özelliğini başlatmak için denetiminizin üye işlevi içinde bu işlevi çağırin.
BOOL PX_VBXFontConvert(
CPropExchange* pPX,
CFontHolder& font);
Parametreler
pPX
CPropExchange nesnesinin işaretçisi (genellikle parametresi DoPropExchange
olarak geçirilir).
yazı tipi
Dönüştürülen VBX yazı tipiyle ilgili özellikleri içerecek OLE denetiminin yazı tipi özelliği.
Dönüş Değeri
Değişim başarılı olursa sıfır olmayan; Başarısız olursa 0.
Açıklamalar
Bu işlev yalnızca VBX denetimi için doğrudan değiştirme olarak tasarlanmış bir OLE denetimi tarafından kullanılmalıdır. Visual Basic geliştirme ortamı, VBX denetimi içeren bir formu ilgili değiştirme OLE denetimini kullanacak şekilde dönüştürdüğünde, VBX denetiminin IDataObject::SetData
özellik verilerini içeren bir özellik kümesi geçirerek denetimin işlevini çağırır. Bu işlem de denetimin DoPropExchange
işlevinin çağrılmaya neden olur. DoPropExchange
VBX denetiminin yazı tipiyle ilgili özelliklerini (örneğin, "FontName," "FontSize" vb.) OLE denetiminin yazı tipi özelliğinin ilgili bileşenlerine dönüştürmek için çağırabilir PX_VBXFontConvert
.
PX_VBXFontConvert
yalnızca denetim bir VBX form uygulamasından dönüştürülüyorsa çağrılmalıdır. Örneğin:
void CMFCActiveXControlCtrl::DoPropExchange(CPropExchange* pPX)
{
ExchangeVersion(pPX, MAKELONG(_wVerMinor, _wVerMajor));
COleControl::DoPropExchange(pPX);
if (IsConvertingVBX())
PX_VBXFontConvert(pPX, InternalGetFont());
}