다음을 통해 공유


속성 맵 매크로

이러한 매크로는 속성 맵 및 항목을 정의합니다.

속성 설명
BEGIN_PROP_MAP ATL 속성 맵의 시작을 표시합니다.
PROP_DATA_ENTRY ActiveX 컨트롤의 익스텐트 또는 차원을 나타냅니다.
PROP_ENTRY_TYPE 속성 설명, 속성 DISPID 및 속성 페이지 CLSID를 속성 맵에 입력합니다.
PROP_ENTRY_TYPE_EX 속성 설명, 속성 DISPID, 속성 페이지 CLSID 및 IDispatch IID를 속성 맵에 입력합니다.
PROP_PAGE 속성 맵에 속성 페이지 CLSID를 입력합니다.
END_PROP_MAP ATL 속성 맵의 끝을 표시합니다.

요구 사항

헤더: atlcom.h

BEGIN_PROP_MAP

개체 속성 맵의 시작을 표시합니다.

BEGIN_PROP_MAP(theClass)

매개 변수

theClass
[in] 속성 맵을 포함하는 클래스를 지정합니다.

설명

속성 맵은 속성 설명, 속성 DISPID, 속성 페이지 CLSID 및 IDispatch IID를 저장합니다. IPerPropertyBrowsingImpl, IPersistPropertyBagImpl, IPersistStreamInitImplISpecifyPropertyPagesImpl 클래스는 속성 맵을 사용하여 이 정보를 검색하고 설정합니다.

ATL 프로젝트 마법사를 사용하여 개체를 만들 때 마법사는 BEGIN_PROP_MAP 지정한 다음 END_PROP_MAP 지정하여 빈 속성 맵을 만듭니다.

BEGIN_PROP_MAP 속성 맵을 사용하는 개체에 사용자 인터페이스가 없으므로 범위가 없으므로 속성 맵의 익스텐트(즉, 차원)를 저장하지 않습니다. 개체가 사용자 인터페이스를 사용하는 ActiveX 컨트롤인 경우 범위가 있습니다. 이 경우 익스텐트 제공을 위해 속성 맵에 PROP_DATA_ENTRY 지정해야 합니다.

예시

BEGIN_PROP_MAP(CMyPropCtrl)
   PROP_DATA_ENTRY("_cx", m_sizeExtent.cx, VT_UI4)
   PROP_DATA_ENTRY("_cy", m_sizeExtent.cy, VT_UI4)
   PROP_ENTRY_TYPE("Property1", 1, CLSID_MyPropPage1, VT_BSTR)
   PROP_ENTRY_TYPE_EX("Caption", DISPID_CAPTION, CLSID_MyPropPage2, IID_IMyDual1, VT_BSTR)
   PROP_ENTRY_INTERFACE_CALLBACK("CorrectParamCallback", 0, CLSID_MyPropPage1, AllowedCLSID, VT_DISPATCH)
   PROP_ENTRY_INTERFACE_CALLBACK_EX("CorrectParamCallbackEx", 1, IID_IMyDual1, CLSID_MyPropPage2, AllowedCLSID, VT_UNKNOWN)
   PROP_PAGE(CLSID_MyPropPage3)
END_PROP_MAP()

PROP_DATA_ENTRY

ActiveX 컨트롤의 익스텐트 또는 차원을 나타냅니다.

PROP_DATA_ENTRY( szDesc, member, vt)

매개 변수

szDesc
[in] 속성 설명입니다.

member
[in] 익스텐트 포함 데이터 멤버입니다. 예를 들면 다음과 같습니다 m_sizeExtent.

vt
[in] 속성의 VARIANT 형식을 지정합니다.

설명

이 매크로를 사용하면 지정된 데이터 멤버가 유지됩니다.

ActiveX 컨트롤을 만들 때 마법사는 속성 맵 매크로 BEGIN_PROP_MAP 뒤와 속성 맵 매크로 END_PROP_MAP 앞에 이 매크로를 삽입합니다.

예시

다음 예제에서는 개체(m_sizeExtent)의 범위가 유지됩니다.

BEGIN_PROP_MAP(CMyWindow)
   PROP_DATA_ENTRY("_cx", m_sizeExtent.cx, VT_UI4)
   PROP_DATA_ENTRY("_cy", m_sizeExtent.cy, VT_UI4)
END_PROP_MAP()

 

BEGIN_PROP_MAP(CMyCompositeCtrl)
   PROP_DATA_ENTRY("Width", m_nWidth, VT_UI4)
   PROP_DATA_ENTRY("Height", m_nHeight, VT_UI4)
END_PROP_MAP()

PROP_ENTRY_TYPE

이 매크로를 사용하여 개체의 속성 맵에 속성 설명, 속성 DISPID 및 속성 페이지 CLSID를 입력합니다.

PROP_ENTRY_TYPE( szDesc, dispid, clsid, vt)

매개 변수

szDesc
[in] 속성 설명입니다.

dispid
[in] 속성의 DISPID입니다.

clsid
[in] 연결된 속성 페이지의 CLSID입니다. 연결된 속성 페이지가 없는 속성에 대해 특수 값 CLSID_NULL 사용합니다.

vt
[in] 속성의 형식입니다.

설명

PROP_ENTRY 매크로는 안전하지 않고 더 이상 사용되지 않습니다. PROP_ENTRY_TYPE 대체되었습니다.

BEGIN_PROP_MAP 매크로는 속성 맵의 시작을 표시하고 END_PROP_MAP 매크로는 끝을 표시합니다.

예시

BEGIN_PROP_MAP 예제를 참조하세요.

PROP_ENTRY_TYPE_EX

PROP_ENTRY_TYPE 유사하지만 개체가 여러 이중 인터페이스를 지원하는 경우 특정 IID를 지정할 수 있습니다.

PROP_ENTRY_TYPE_EX( szDesc, dispid, clsid, iidDispatch, vt)

매개 변수

szDesc
[in] 속성 설명입니다.

dispid
[in] 속성의 DISPID입니다.

clsid
[in] 연결된 속성 페이지의 CLSID입니다. 연결된 속성 페이지가 없는 속성에 대해 특수 값 CLSID_NULL 사용합니다.

iidDispatch
[in] 속성을 정의하는 이중 인터페이스의 IID입니다.

vt
[in] 속성의 형식입니다.

설명

PROP_ENTRY_EX 매크로는 안전하지 않고 더 이상 사용되지 않습니다. PROP_ENTRY_TYPE_EX 대체되었습니다.

BEGIN_PROP_MAP 매크로는 속성 맵의 시작을 표시하고 END_PROP_MAP 매크로는 끝을 표시합니다.

예시

다음 예제에서는 다음에 대한 IMyDual1 항목을 IMyDual2그룹화합니다. 이중 인터페이스로 그룹화하면 성능이 향상됩니다.

BEGIN_PROP_MAP(CAtlEdit)
   PROP_ENTRY_TYPE_EX("Caption", DISPID_CAPTION, CLSID_MyPropPage2, IID_IMyDual1, VT_BSTR)
   PROP_ENTRY_TYPE_EX("Enabled", DISPID_ENABLED, CLSID_MyPropPage2, IID_IMyDual1, VT_BOOL)
   PROP_ENTRY_TYPE_EX("Width", DISPID_DRAWWIDTH, CLSID_MyPropPage2, IID_IMyDual2, VT_UINT)
END_PROP_MAP()

PROP_PAGE

이 매크로를 사용하여 개체의 속성 맵에 속성 페이지 CLSID를 입력합니다.

PROP_PAGE(clsid)

매개 변수

clsid
[in] 속성 페이지의 CLSID입니다.

설명

PROP_PAGE PROP_ENTRY_TYPE 유사하지만 속성 설명이나 DISPID는 필요하지 않습니다.

참고 항목

PROP_ENTRY_TYPE 또는 PROP_ENTRY_TYPE_EX 함께 CLSID를 이미 입력한 경우 PROP_PAGE 사용하여 추가 항목을 만들 필요가 없습니다.

BEGIN_PROP_MAP 매크로는 속성 맵의 시작을 표시하고 END_PROP_MAP 매크로는 끝을 표시합니다.

예시

BEGIN_PROP_MAP(CMyCtrl)
   OtherPropMapEntries
   PROP_PAGE(CLSID_DatePage)
   PROP_PAGE(CLSID_StockColorPage)
END_PROP_MAP()

END_PROP_MAP

개체 속성 맵의 끝을 표시합니다.

END_PROP_MAP()

설명

ATL 프로젝트 마법사를 사용하여 개체를 만들 때 마법사는 BEGIN_PROP_MAP 지정한 다음 END_PROP_MAP 지정하여 빈 속성 맵을 만듭니다.

예시

BEGIN_PROP_MAP 예제를 참조하세요.

참고 항목

매크로