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 CDataPathPropertybir denetim özelliğini değiştirir.
PX_Double türünde doublebir denetim özelliğini değiştirir.
PX_Font Denetimin yazı tipi özelliğini değiştirir.
PX_Float türünde floatbir denetim özelliğini değiştirir.
PX_IUnknown Tanımlanmamış türün denetim özelliğini değiştirir.
PX_Long türünde longbir denetim özelliğini değiştirir.
PX_Picture Denetimin resim özelliğini değiştirir.
PX_Short türünde shortbir 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 DoPropExchangeolarak 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 DoPropExchangeolarak 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 DoPropExchangeolarak 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 DoPropExchangeolarak 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 DoPropExchangeolarak 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 doublebir ö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 DoPropExchangeolarak 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 DoPropExchangeolarak 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 fontCFontHolder 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 floatbir ö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 DoPropExchangeolarak 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 IUnknownbir 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 DoPropExchangeolarak 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 longbir ö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 DoPropExchangeolarak 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 DoPropExchangeolarak 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 shortbir ö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 DoPropExchangeolarak 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 DoPropExchangeolarak 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 shortbir ö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 DoPropExchangeolarak 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 DoPropExchangeolarak 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 DoPropExchangeolarak 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());
}

Ayrıca bkz.

Makrolar ve Genel Ayarlar