Stan trwały formantów OLE
Jedną z możliwości kontrolek OLE jest trwałość właściwości (lub serializacja), która umożliwia kontrolce OLE odczytywanie lub zapisywanie wartości właściwości do i z pliku lub strumienia. Aplikacja kontenera może używać serializacji do przechowywania wartości właściwości kontrolki nawet po tym, jak aplikacja zniszczyła kontrolkę. Wartości właściwości kontrolki OLE można następnie odczytywać z pliku lub strumienia po utworzeniu nowego wystąpienia kontrolki w późniejszym czasie.
Stan trwały formantów OLE
Nazwa/nazwisko | opis |
---|---|
PX_Blob | Wymienia właściwość kontrolki, która przechowuje dane binarnych dużych obiektów (BLOB). |
PX_Bool | Zamienia właściwość kontrolki typu BOOL. |
PX_Color | Wymienia właściwość color kontrolki. |
PX_Currency | Wymienia właściwość kontrolki typu CY. |
PX_DataPath | Wymienia właściwość kontrolki typu CDataPathProperty . |
PX_Double | Wymienia właściwość kontrolki typu double . |
PX_Font | Wymienia właściwość czcionki kontrolki. |
PX_Float | Wymienia właściwość kontrolki typu float . |
PX_IUnknown | Wymienia właściwość kontrolki o niezdefiniowanym typie. |
PX_Long | Wymienia właściwość kontrolki typu long . |
PX_Picture | Wymienia właściwość obrazu kontrolki. |
PX_Short | Wymienia właściwość kontrolki typu short . |
PX_ULong | Wymienia właściwość kontrolki typu ULONG. |
PX_UShort | Wymienia właściwość kontrolki typu USHORT. |
PXstring | Wymienia właściwość kontrolki ciągu znaków. |
PX_VBXFontConvert | Zamienia właściwości czcionki kontrolki VBX na właściwość czcionki kontrolki OLE. |
Ponadto AfxOleTypeMatchGuid
funkcja globalna jest udostępniana do testowania dopasowania między typeDESC i danym identyfikatorem GUID.
PX_Blob
Wywołaj tę funkcję w funkcji składowej kontrolki DoPropExchange
, aby serializować lub inicjować właściwość, która przechowuje dane binarne dużego obiektu (BLOB).
BOOL PX_Blob(
CPropExchange* pPX,
LPCTSTR pszPropName,
HGLOBAL& hBlob,
HGLOBAL hBlobDefault = NULL);
Parametry
pPX
Wskaźnik do obiektu CPropExchange (zazwyczaj przekazywany jako parametr do DoPropExchange
).
pszPropName
Nazwa wymienianej właściwości.
hBlob
Odwołanie do zmiennej, w której jest przechowywana właściwość (zazwyczaj zmienna składowa klasy).
hBlobDefault
Wartość domyślna właściwości.
Wartość zwracana
Nonzero, jeśli wymiana zakończyła się pomyślnie; 0, jeśli nie powiedzie się.
Uwagi
Wartość właściwości będzie odczytywana lub zapisywana w zmiennej przywołynej przez hBlob, zgodnie z potrzebami. Ta zmienna powinna zostać zainicjowana na wartość NULL przed początkowym wywołaniem PX_Blob
po raz pierwszy (zazwyczaj można to zrobić w konstruktorze kontrolki). Jeśli parametr hBlobDefault zostanie określony, zostanie on użyty jako wartość domyślna właściwości. Ta wartość jest używana, jeśli z jakiegokolwiek powodu proces inicjowania lub serializacji kontrolki kończy się niepowodzeniem.
Dojścia hBlob i hBlobDefault odwołują się do bloku pamięci, który zawiera następujące elementy:
DWORD zawierający długość w bajtach danych binarnych, po których następuje natychmiast
Blok pamięci zawierający rzeczywiste dane binarne.
Pamiętaj, że PX_Blob
przydzieli pamięć przy użyciu interfejsu API GlobalAlloc systemu Windows podczas ładowania właściwości typu BLOB. Użytkownik jest odpowiedzialny za zwolnienie tej pamięci. W związku z tym destruktor kontrolki powinien wywołać funkcję GlobalFree na dowolnych uchwytach właściwości typu BLOB, aby zwolnić dowolną pamięć przydzieloną do kontrolki.
PX_Bool
Wywołaj tę funkcję w funkcji składowej kontrolki DoPropExchange
, aby serializować lub zainicjować właściwość typu BOOL.
BOOL PX_Bool(
CPropExchange* pPX,
LPCTSTR pszPropName,
BOOL& bValue);
BOOL PX_Bool(
CPropExchange* pPX,
LPCTSTR pszPropName,
BOOL& bValue,
BOOL bDefault);
Parametry
pPX
Wskaźnik do obiektu CPropExchange (zazwyczaj przekazywany jako parametr do DoPropExchange
).
pszPropName
Nazwa wymienianej właściwości.
bValue
Odwołanie do zmiennej, w której jest przechowywana właściwość (zazwyczaj zmienna składowa klasy).
bDefault
Wartość domyślna właściwości.
Wartość zwracana
Nonzero, jeśli wymiana zakończyła się pomyślnie; 0, jeśli nie powiedzie się.
Uwagi
Wartość właściwości będzie odczytywana lub zapisywana w zmiennej, do których odwołuje się wartość bValue, zgodnie z potrzebami. Jeśli parametr bDefault zostanie określony, zostanie użyty jako wartość domyślna właściwości. Ta wartość jest używana, jeśli z jakiegokolwiek powodu proces serializacji kontrolki zakończy się niepowodzeniem.
PX_Color
Wywołaj tę funkcję w funkcji składowej kontrolki DoPropExchange
, aby serializować lub inicjować właściwość typu OLE_COLOR.
BOOL PX_Color(
CPropExchange* pPX,
LPCTSTR pszPropName,
OLE_COLOR& clrValue);
BOOL PX_Color(
CPropExchange* pPX,
LPCTSTR pszPropName,
OLE_COLOR& clrValue,
OLE_COLOR clrDefault);
Parametry
pPX
Wskaźnik do obiektu CPropExchange (zazwyczaj przekazywany jako parametr do DoPropExchange
).
pszPropName
Nazwa wymienianej właściwości.
clrValue
Odwołanie do zmiennej, w której jest przechowywana właściwość (zazwyczaj zmienna składowa klasy).
clrDefault
Wartość domyślna właściwości zdefiniowana przez dewelopera kontrolek.
Wartość zwracana
Nonzero, jeśli wymiana zakończyła się pomyślnie; 0, jeśli nie powiedzie się.
Uwagi
Wartość właściwości będzie odczytywana lub zapisywana w zmiennej przywoływalnej przez clrValue, zgodnie z potrzebami. Jeśli parametr clrDefault zostanie określony, zostanie użyty jako wartość domyślna właściwości. Ta wartość jest używana, jeśli z jakiegokolwiek powodu proces serializacji kontrolki zakończy się niepowodzeniem.
PX_Currency
Wywołaj tę funkcję w funkcji składowej kontrolki DoPropExchange
, aby serializować lub inicjować właściwość typu waluta.
BOOL PX_Currency(
CPropExchange* pPX,
LPCTSTR pszPropName,
CY& cyValue);
BOOL PX_Currency(
CPropExchange* pPX,
LPCTSTR pszPropName,
CY& cyValue,
CY cyDefault);
Parametry
pPX
Wskaźnik do obiektu CPropExchange (zazwyczaj przekazywany jako parametr do DoPropExchange
).
pszPropName
Nazwa wymienianej właściwości.
cyValue
Odwołanie do zmiennej, w której jest przechowywana właściwość (zazwyczaj zmienna składowa klasy).
cyDefault
Wartość domyślna właściwości.
Wartość zwracana
Nonzero, jeśli wymiana zakończyła się pomyślnie; 0, jeśli nie powiedzie się.
Uwagi
Wartość właściwości będzie odczytywana lub zapisywana w zmiennej przywoływalnej przez cyValue, zgodnie z potrzebami. Jeśli określono wartość cyDefault , zostanie ona użyta jako wartość domyślna właściwości. Ta wartość jest używana, jeśli z jakiegokolwiek powodu proces serializacji kontrolki zakończy się niepowodzeniem.
PX_DataPath
Wywołaj tę funkcję w funkcji składowej kontrolki DoPropExchange
, aby serializować lub inicjować właściwość ścieżki danych typu CDataPathProperty.
BOOL PX_DataPath(
CPropExchange* pPX,
LPCTSTR pszPropName,
CDataPathProperty& dataPathProperty);
BOOL PX_DataPath(
CPropExchange* pPX,
CDataPathProperty& dataPathProperty);
Parametry
pPX
Wskaźnik do obiektu CPropExchange (zazwyczaj przekazywany jako parametr do DoPropExchange
).
pszPropName
Nazwa wymienianej właściwości.
dataPathProperty
Odwołanie do zmiennej, w której jest przechowywana właściwość (zazwyczaj zmienna składowa klasy).
Wartość zwracana
Nonzero, jeśli wymiana zakończyła się pomyślnie; 0, jeśli nie powiedzie się.
Uwagi
Właściwości ścieżki danych implementują właściwości kontrolki asynchronicznej. Wartość właściwości będzie odczytywana lub zapisywana w zmiennej przywołynej przez właściwość dataPathProperty zgodnie z potrzebami.
PX_Double
Wywołaj tę funkcję w funkcji składowej DoPropExchange
kontrolki, aby serializować lub inicjować właściwość typu double
.
BOOL PX_Double(
CPropExchange* pPX,
LPCTSTR pszPropName,
double& doubleValue);
BOOL PX_Double(
CPropExchange* pPX,
LPCTSTR pszPropName,
double& doubleValue,
double doubleDefault);
Parametry
pPX
Wskaźnik do obiektu CPropExchange (zazwyczaj przekazywany jako parametr do DoPropExchange
).
pszPropName
Nazwa wymienianej właściwości.
doubleValue
Odwołanie do zmiennej, w której jest przechowywana właściwość (zazwyczaj zmienna składowa klasy).
doubleDefault
Wartość domyślna właściwości.
Wartość zwracana
Nonzero, jeśli wymiana zakończyła się pomyślnie; 0, jeśli nie powiedzie się.
Uwagi
Wartość właściwości jest odczytywana lub zapisywana w zmiennej przywoływanej przez funkcję doubleValue, zgodnie z potrzebami. Jeśli parametr doubleDefault zostanie określony, zostanie użyty jako wartość domyślna właściwości. Ta wartość jest używana, jeśli z jakiegokolwiek powodu proces serializacji kontrolki zakończy się niepowodzeniem.
PX_Font
Wywołaj tę funkcję w funkcji składowej kontrolki DoPropExchange
, aby serializować lub inicjować właściwość czcionki typu.
BOOL PX_Font(
CPropExchange* pPX,
LPCTSTR pszPropName,
CFontHolder& font,
const FONTDESC FAR* pFontDesc = NULL,
LPFONTDISP pFontDispAmbient = NULL);
Parametry
pPX
Wskaźnik do obiektu CPropExchange (zazwyczaj przekazywany jako parametr do DoPropExchange
).
pszPropName
Nazwa wymienianej właściwości.
czcionka
Odwołanie do CFontHolder
obiektu zawierającego właściwość czcionki.
pFontDesc
Wskaźnik do FONTDESC
struktury zawierającej wartości do użycia podczas inicjowania domyślnego stanu właściwości czcionki, w przypadku gdy pFontDispAmbient ma wartość NULL.
pFontDispAmbient
Wskaźnik do IFontDisp
interfejsu czcionki do użycia podczas inicjowania domyślnego stanu właściwości czcionki.
Wartość zwracana
Nonzero, jeśli wymiana zakończyła się pomyślnie; 0, jeśli nie powiedzie się.
Uwagi
Wartość właściwości jest odczytywana lub zapisywana w font
pliku , odwołanie CFontHolder
, jeśli jest to konieczne. Jeśli określono wartości pFontDesc i pFontDispAmbient , są one używane do inicjowania wartości domyślnej właściwości w razie potrzeby. Te wartości są używane, jeśli z jakiegokolwiek powodu proces serializacji kontrolki zakończy się niepowodzeniem. Zazwyczaj wartość NULL jest przekazywana dla parametru pFontDesc i wartość otoczenia zwracana przez COleControl::AmbientFont
parametr pFontDispAmbient. Należy pamiętać, że obiekt czcionki zwrócony przez COleControl::AmbientFont
program musi zostać zwolniony przez wywołanie funkcji składowej IFontDisp::Release
.
PX_Float
Wywołaj tę funkcję w funkcji składowej DoPropExchange
kontrolki, aby serializować lub inicjować właściwość typu float
.
BOOL PX_Float(
CPropExchange* pPX,
LPCTSTR pszPropName,
float& floatValue);
BOOL PX_Float(
CPropExchange* pPX,
LPCTSTR pszPropName,
float& floatValue,
float floatDefault);
Parametry
pPX
Wskaźnik do obiektu CPropExchange (zazwyczaj przekazywany jako parametr do DoPropExchange
).
pszPropName
Nazwa wymienianej właściwości.
floatValue
Odwołanie do zmiennej, w której jest przechowywana właściwość (zazwyczaj zmienna składowa klasy).
floatDefault
Wartość domyślna właściwości.
Wartość zwracana
Nonzero, jeśli wymiana zakończyła się pomyślnie; 0, jeśli nie powiedzie się.
Uwagi
Wartość właściwości jest odczytywana lub zapisywana w zmiennej przywoływalnej przez floatValue zgodnie z potrzebami. Jeśli parametr floatDefault zostanie określony, zostanie użyty jako wartość domyślna właściwości. Ta wartość jest używana, jeśli z jakiegokolwiek powodu proces serializacji kontrolki zakończy się niepowodzeniem.
PX_IUnknown
Wywołaj tę funkcję w funkcji składowej kontrolki DoPropExchange
, aby serializować lub inicjować właściwość reprezentowaną przez obiekt o interfejsie pochodnym IUnknown
.
BOOL PX_IUnknown(
CPropExchange* pPX,
LPCTSTR pszPropName,
LPUNKNOWN& pUnk,
REFIID iid,
LPUNKNOWN pUnkDefault = NULL);
Parametry
pPX
Wskaźnik do obiektu CPropExchange (zazwyczaj przekazywany jako parametr do DoPropExchange
).
pszPropName
Nazwa wymienianej właściwości.
Punk
Odwołanie do zmiennej zawierającej interfejs obiektu, który reprezentuje wartość właściwości.
identyfikator iid
Identyfikator interfejsu wskazujący, który interfejs obiektu właściwości jest używany przez kontrolkę.
pUnkDefault
Wartość domyślna właściwości.
Wartość zwracana
Nonzero, jeśli wymiana zakończyła się pomyślnie; 0, jeśli nie powiedzie się.
Uwagi
Wartość właściwości jest odczytywana lub zapisywana w zmiennej, do których odwołuje się pUnk, zgodnie z potrzebami. Jeśli parametr pUnkDefault zostanie określony, zostanie użyty jako wartość domyślna właściwości. Ta wartość jest używana, jeśli z jakiegokolwiek powodu proces serializacji kontrolki zakończy się niepowodzeniem.
PX_Long
Wywołaj tę funkcję w funkcji składowej DoPropExchange
kontrolki, aby serializować lub inicjować właściwość typu long
.
BOOL PX_Long(
CPropExchange* pPX,
LPCTSTR pszPropName,
long& lValue);
BOOL PX_Long(
CPropExchange* pPX,
LPCTSTR pszPropName,
long& lValue,
long lDefault);
Parametry
pPX
Wskaźnik do obiektu CPropExchange (zazwyczaj przekazywany jako parametr do DoPropExchange
).
pszPropName
Nazwa wymienianej właściwości.
Lvalue
Odwołanie do zmiennej, w której jest przechowywana właściwość (zazwyczaj zmienna składowa klasy).
lDefault
Wartość domyślna właściwości.
Wartość zwracana
Nonzero, jeśli wymiana zakończyła się pomyślnie; 0, jeśli nie powiedzie się.
Uwagi
Wartość właściwości jest odczytywana lub zapisywana w zmiennej przywoływanej przez lValue, zgodnie z potrzebami. Jeśli parametr lDefault zostanie określony, zostanie użyty jako wartość domyślna właściwości. Ta wartość jest używana, jeśli z jakiegokolwiek powodu proces serializacji kontrolki zakończy się niepowodzeniem.
PX_Picture
Wywołaj tę funkcję w funkcji składowej kontrolki DoPropExchange
, aby serializować lub inicjować właściwość obrazu kontrolki.
BOOL PX_Picture(
CPropExchange* pPX,
LPCTSTR pszPropName,
CPictureHolder& pict);
BOOL PX_Picture(
CPropExchange* pPX,
LPCTSTR pszPropName,
CPictureHolder& pict,
CPictureHolder& pictDefault);
Parametry
pPX
Wskaźnik do obiektu CPropExchange (zazwyczaj przekazywany jako parametr do DoPropExchange
).
pszPropName
Nazwa wymienianej właściwości.
Pict
Odwołanie do obiektu CPictureHolder , w którym jest przechowywana właściwość (zazwyczaj zmienna składowa klasy).
pictDefault
Wartość domyślna właściwości.
Wartość zwracana
Nonzero, jeśli wymiana zakończyła się pomyślnie; 0, jeśli nie powiedzie się.
Uwagi
Wartość właściwości jest odczytywana z zmiennej lub zapisywana w zmiennej, do których odwołuje się pict, zgodnie z potrzebami. Jeśli parametr pictDefault zostanie określony, zostanie on użyty jako wartość domyślna właściwości. Ta wartość jest używana, jeśli z jakiegokolwiek powodu proces serializacji kontrolki zakończy się niepowodzeniem.
PX_Short
Wywołaj tę funkcję w funkcji składowej DoPropExchange
kontrolki, aby serializować lub inicjować właściwość typu short
.
BOOL PX_Short(
CPropExchange* pPX,
LPCTSTR pszPropName,
short& sValue);
BOOL PX_Short(
CPropExchange* pPX,
LPCTSTR pszPropName,
short& sValue,
short sDefault);
Parametry
pPX
Wskaźnik do obiektu CPropExchange (zazwyczaj przekazywany jako parametr do DoPropExchange
).
pszPropName
Nazwa wymienianej właściwości.
sValue
Odwołanie do zmiennej, w której jest przechowywana właściwość (zazwyczaj zmienna składowa klasy).
sDefault
Wartość domyślna właściwości.
Wartość zwracana
Nonzero, jeśli wymiana zakończyła się pomyślnie; 0, jeśli nie powiedzie się.
Uwagi
Wartość właściwości jest odczytywana lub zapisywana w zmiennej przywoływalnej przez sValue, zgodnie z potrzebami. Jeśli określono parametr sDefault , będzie on używany jako wartość domyślna właściwości. Ta wartość jest używana, jeśli z jakiegokolwiek powodu proces serializacji kontrolki zakończy się niepowodzeniem.
PX_ULong
Wywołaj tę funkcję w funkcji składowej kontrolki DoPropExchange
, aby serializować lub inicjować właściwość typu ULONG.
BOOL PX_ULong(
CPropExchange* pPX,
LPCTSTR pszPropName,
ULONG& ulValue);
BOOL PX_ULong(
CPropExchange* pPX,
LPCTSTR pszPropName,
ULONG& ulValue,
long ulDefault);
Parametry
pPX
Wskaźnik do obiektu CPropExchange (zazwyczaj przekazywany jako parametr do DoPropExchange
).
pszPropName
Nazwa wymienianej właściwości.
ulValue
Odwołanie do zmiennej, w której jest przechowywana właściwość (zazwyczaj zmienna składowa klasy).
ulDefault
Wartość domyślna właściwości.
Wartość zwracana
Nonzero, jeśli wymiana zakończyła się pomyślnie; 0, jeśli nie powiedzie się.
Uwagi
Wartość właściwości jest odczytywana lub zapisywana w zmiennej przywoływalnej przez ulValue, zgodnie z potrzebami. Jeśli parametr ulDefault zostanie określony, zostanie użyty jako wartość domyślna właściwości. Ta wartość jest używana, jeśli z jakiegokolwiek powodu proces serializacji kontrolki zakończy się niepowodzeniem.
PX_UShort
Wywołaj tę funkcję w funkcji składowej DoPropExchange
kontrolki, aby serializować lub inicjować właściwość typu unsigned short
.
BOOL PX_UShort(
CPropExchange* pPX,
LPCTSTR pszPropName,
USHORT& usValue);
BOOL PX_UShort(
CPropExchange* pPX,
LPCTSTR pszPropName,
USHORT& usValue,
USHORT usDefault);
Parametry
pPX
Wskaźnik do obiektu CPropExchange (zazwyczaj przekazywany jako parametr do DoPropExchange
).
pszPropName
Nazwa wymienianej właściwości.
usValue
Odwołanie do zmiennej, w której jest przechowywana właściwość (zazwyczaj zmienna składowa klasy).
usDefault
Wartość domyślna właściwości.
Wartość zwracana
Nonzero, jeśli wymiana zakończyła się pomyślnie; 0, jeśli nie powiedzie się.
Uwagi
Wartość właściwości jest odczytywana lub zapisywana w zmiennej przywoływalnej przez usValue zgodnie z potrzebami. Jeśli parametr usDefault zostanie określony, zostanie on użyty jako wartość domyślna właściwości. Ta wartość jest używana, jeśli z jakiegokolwiek powodu proces serializacji kontrolki zakończy się niepowodzeniem.
PXstring
Wywołaj tę funkcję w funkcji składowej DoPropExchange
kontrolki, aby serializować lub inicjować właściwość ciągu znaków.
BOOL PXstring(
CPropExchange* pPX,
LPCTSTR pszPropName,
CString& strValue);
BOOL PXstring(
CPropExchange* pPX,
LPCTSTR pszPropName,
CString& strValue,
CString strDefault);
Parametry
pPX
Wskaźnik do obiektu CPropExchange (zazwyczaj przekazywany jako parametr do DoPropExchange
).
pszPropName
Nazwa wymienianej właściwości.
strValue
Odwołanie do zmiennej, w której jest przechowywana właściwość (zazwyczaj zmienna składowa klasy).
strDefault
Wartość domyślna właściwości.
Wartość zwracana
Nonzero, jeśli wymiana zakończyła się pomyślnie; 0, jeśli nie powiedzie się.
Uwagi
Wartość właściwości jest odczytywana lub zapisywana w zmiennej przywoływalnej przez wartość strValue, zgodnie z potrzebami. Jeśli parametr strDefault zostanie określony, zostanie użyty jako wartość domyślna właściwości. Ta wartość jest używana, jeśli z jakiegokolwiek powodu proces serializacji kontrolki zakończy się niepowodzeniem.
PX_VBXFontConvert
Wywołaj tę funkcję w funkcji składowej kontrolki DoPropExchange
, aby zainicjować właściwość czcionki, konwertując właściwości związane z czcionką kontrolki VBX.
BOOL PX_VBXFontConvert(
CPropExchange* pPX,
CFontHolder& font);
Parametry
pPX
Wskaźnik do obiektu CPropExchange (zazwyczaj przekazywany jako parametr do DoPropExchange
).
czcionka
Właściwość czcionki kontrolki OLE, która będzie zawierać przekonwertowane właściwości czcionki VBX.
Wartość zwracana
Nonzero, jeśli wymiana zakończyła się pomyślnie; 0, jeśli nie powiedzie się.
Uwagi
Ta funkcja powinna być używana tylko przez kontrolkę OLE, która jest zaprojektowana jako bezpośrednia zamiana kontrolki VBX. Gdy środowisko programistyczne Języka Visual Basic konwertuje formularz zawierający kontrolkę VBX w celu użycia odpowiedniej zastępczej kontrolki OLE, wywoła funkcję kontrolki IDataObject::SetData
, przekazując zestaw właściwości zawierający dane właściwości kontrolki VBX. Ta operacja powoduje wywołanie funkcji kontrolki DoPropExchange
. DoPropExchange
program może wywołać PX_VBXFontConvert
metodę , aby przekonwertować właściwości związane z czcionką kontrolki VBX (na przykład "FontName", "FontSize" itd.) na odpowiednie składniki właściwości czcionki kontrolki OLE.
PX_VBXFontConvert
powinna być wywoływana tylko wtedy, gdy kontrolka jest faktycznie konwertowana z aplikacji formularza VBX. Na przykład:
void CMFCActiveXControlCtrl::DoPropExchange(CPropExchange* pPX)
{
ExchangeVersion(pPX, MAKELONG(_wVerMinor, _wVerMajor));
COleControl::DoPropExchange(pPX);
if (IsConvertingVBX())
PX_VBXFontConvert(pPX, InternalGetFont());
}