Udostępnij za pośrednictwem


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 fontpliku , 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());
}

Zobacz też

Makra i globalne