다음을 통해 공유


CPropExchange 클래스

OLE 컨트롤의 지속성 구현을 지원합니다.

구문

class AFX_NOVTABLE CPropExchange

멤버

공용 메서드

이름 설명
CPropExchange::ExchangeBlobProp BLOB(Binary Large Object) 속성을 교환합니다.
CPropExchange::ExchangeFontProp 글꼴 속성을 교환합니다.
CPropExchange::ExchangePersistentProp 컨트롤과 파일 간에 속성을 교환합니다.
CPropExchange::ExchangeProp 기본 제공 형식의 속성을 교환합니다.
CPropExchange::ExchangeVersion OLE 컨트롤의 버전 번호를 교환합니다.
CPropExchange::GetVersion OLE 컨트롤의 버전 번호를 검색합니다.
CPropExchange::IsAsynchronous 속성 교환이 비동기적으로 수행되는지 여부를 결정합니다.
CPropExchange::IsLoading 속성이 컨트롤에 로드되는지 아니면 컨트롤에서 저장되는지 여부를 나타냅니다.

설명

CPropExchange 에는 기본 클래스가 없습니다.

속성 교환의 컨텍스트 및 방향을 설정합니다.

지속성은 컨트롤 자체와 매체 간에 컨트롤의 상태 정보(일반적으로 해당 속성으로 표현됨)의 교환입니다.

프레임워크는 OLE 컨트롤의 속성을 영구 스토리지에서 CPropExchange 로드하거나 저장해야 한다는 알림을 받을 때 파생된 개체를 생성합니다.

프레임워크는 이 CPropExchange 개체에 대한 포인터를 컨트롤의 DoPropExchange 함수에 전달합니다. 마법사를 사용하여 컨트롤의 시작 파일을 만든 경우 컨트롤의 DoPropExchange 함수가 호출합니다 COleControl::DoPropExchange. 기본 클래스 버전은 컨트롤의 주식 속성을 교환합니다. 파생 클래스의 버전을 수정하여 컨트롤에 추가한 속성을 교환합니다.

CPropExchange 컨트롤의 속성을 직렬화하거나 컨트롤을 로드하거나 만들 때 컨트롤의 속성을 초기화하는 데 사용할 수 있습니다. ExchangePropExchangeFontPropCPropExchange 멤버 함수는 속성을 저장하고 다른 미디어에서 로드할 수 있습니다.

사용에 CPropExchange대한 자세한 내용은 MFC ActiveX 컨트롤: 속성 페이지 문서를 참조하세요.

상속 계층 구조

CPropExchange

요구 사항

헤더: afxctl.h

CPropExchange::ExchangeBlobProp

BLOB(Binary Large Object) 데이터를 저장하는 속성을 직렬화합니다.

virtual BOOL ExchangeBlobProp(
    LPCTSTR pszPropName,
    HGLOBAL* phBlob,
    HGLOBAL hBlobDefault = NULL) = 0;

매개 변수

pszPropName
교환되는 속성의 이름입니다.

phBlob
속성이 저장되는 위치를 가리키는 변수에 대한 포인터입니다(변수는 일반적으로 클래스의 멤버임).

hBlobDefault
속성의 기본값입니다.

Return Value

교환에 성공한 경우 0이 아닌 경우 실패하면 0입니다.

설명

속성의 값은 phBlob에서 참조하는 변수에서 읽거나 적절하게 기록됩니다. hBlobDefault를 지정하면 속성의 기본값으로 사용됩니다. 이 값은 어떤 이유로든 컨트롤의 serialization이 실패하는 경우에 사용됩니다.

함수 및 CArchivePropExchange::ExchangeBlobPropCResetPropExchange::ExchangeBlobPropCPropsetPropExchange::ExchangeBlobProp 이 순수 가상 함수를 재정의합니다.

CPropExchange::ExchangeFontProp

스토리지 매체와 컨트롤 간에 글꼴 속성을 교환합니다.

virtual BOOL ExchangeFontProp(
    LPCTSTR pszPropName,
    CFontHolder& font,
    const FONTDESC* pFontDesc,
    LPFONTDISP pFontDispAmbient) = 0;

매개 변수

pszPropName
교환되는 속성의 이름입니다.

font
글꼴 속성을 포함하는 CFontHolder 개체에 대한 참조입니다.

pFontDesc
pFontDispAmbient가 NULL인 경우 글꼴 속성의 기본 상태를 초기화하기 위한 값을 포함하는 FONTDESC 구조체에 대한 포인터입니다.

pFontDispAmbient
글꼴 속성의 기본 상태를 초기화하는 데 사용할 글꼴 인터페이스에 대한 포인터 IFontDisp 입니다.

Return Value

교환에 성공한 경우 0이 아닌 경우 실패하면 0입니다.

설명

글꼴 속성이 중간에서 컨트롤로 로드되는 경우 글꼴의 특성이 매체에서 검색되고 CFontHolder 글꼴에서 참조하는 개체가 초기화됩니다. 글꼴 속성이 저장되는 경우 글꼴 개체의 특성이 매체에 기록됩니다.

함수 및 CArchivePropExchange::ExchangeFontPropCResetPropExchange::ExchangeFontPropCPropsetPropExchange::ExchangeFontProp 이 순수 가상 함수를 재정의합니다.

CPropExchange::ExchangePersistentProp

컨트롤과 파일 간에 속성을 교환합니다.

virtual BOOL ExchangePersistentProp(
    LPCTSTR pszPropName,
    LPUNKNOWN* ppUnk,
    REFIID iid,
    LPUNKNOWN pUnkDefault) = 0;

매개 변수

pszPropName
교환되는 속성의 이름입니다.

ppUnk
속성의 IUnknown 인터페이스에 대한 포인터를 포함하는 변수에 대한 포인터입니다(이 변수는 일반적으로 클래스의 멤버임).

iid
컨트롤에서 사용할 속성에 대한 인터페이스의 인터페이스 ID입니다.

pUnkDefault
속성의 기본값입니다.

Return Value

교환에 성공한 경우 0이 아닌 경우 실패하면 0입니다.

설명

속성이 파일에서 컨트롤로 로드되는 경우 속성이 만들어지고 파일에서 초기화됩니다. 속성이 저장되는 경우 해당 값은 파일에 기록됩니다.

함수 및 CArchivePropExchange::ExchangePersistentPropCResetPropExchange::ExchangePersistentPropCPropsetPropExchange::ExchangePersistentProp 이 순수 가상 함수를 재정의합니다.

CPropExchange::ExchangeProp

스토리지 매체와 컨트롤 간에 속성을 교환합니다.

virtual BOOL ExchangeProp(
    LPCTSTR pszPropName,
    VARTYPE vtProp,
    void* pvProp,
    const void* pvDefault = NULL) = 0 ;

매개 변수

pszPropName
교환되는 속성의 이름입니다.

vtProp
교환되는 속성의 형식을 지정하는 기호입니다. 가능한 값은 다음과 같습니다.

기호 속성 유형
VT_I2 short
VT_I4 long
VT_BOOL BOOL
VT_BSTR CString
VT_CY Cy
VT_R4 float
VT_R8 double

pvProp
속성 값에 대한 포인터입니다.

pvDefault
속성의 기본값에 대한 포인터입니다.

Return Value

교환에 성공한 경우 0이 아닌 경우 실패하면 0입니다.

설명

속성이 중간에서 컨트롤로 로드되는 경우 속성 값은 매체에서 검색되고 pvProp에서 가리키는 개체에 저장됩니다. 속성이 매체에 저장되는 경우 pvProp에서 가리키는 개체의 값이 매체에 기록됩니다.

함수 및 CArchivePropExchange::ExchangePropCResetPropExchange::ExchangePropCPropsetPropExchange::ExchangeProp 이 순수 가상 함수를 재정의합니다.

CPropExchange::ExchangeVersion

버전 번호의 지속성을 처리하기 위해 프레임워크에서 호출됩니다.

virtual BOOL ExchangeVersion(
    DWORD& dwVersionLoaded,
    DWORD dwVersionDefault,
    BOOL bConvert);

매개 변수

dwVersionLoaded
로드되는 영구 데이터의 버전 번호가 저장되는 변수에 대한 참조입니다.

dwVersionDefault
컨트롤의 현재 버전 번호입니다.

bConvert
영구 데이터를 현재 버전으로 변환할지 아니면 로드된 동일한 버전에 유지할지 여부를 나타냅니다.

Return Value

함수가 성공한 경우 0이 아닌 경우 그렇지 않으면 0입니다.

CPropExchange::GetVersion

이 함수를 호출하여 컨트롤의 버전 번호를 검색합니다.

DWORD GetVersion();

Return Value

컨트롤의 버전 번호입니다.

CPropExchange::IsAsynchronous

속성 교환이 비동기적으로 수행되는지 여부를 결정합니다.

BOOL IsAsynchronous();

Return Value

속성이 비동기적으로 교환되면 TRUE를 반환하고, 그렇지 않으면 FALSE를 반환합니다.

CPropExchange::IsLoading

이 함수를 호출하여 속성이 컨트롤에 로드되거나 컨트롤에서 저장되는지 여부를 확인합니다.

BOOL IsLoading();

Return Value

속성이 로드되는 경우 0이 아닌 경우 그렇지 않으면 0입니다.

참고 항목

계층 구조 차트
COleControl::DoPropExchange