|
정말 쉽게 해결되니까 허무하군요..
자세히는 모르겠는데 ui가 들어있는 comobject일경우 CComControlBase를
상속 받던데 IPersistPropertyBagImpl이 CComControlBase의 몇몇 변수를 사용
하던것 같습니다. 딱 두개이던데 별 의미 없는 내용이서 그냥 클래스에 선언해버리니까
되는군요.
unsigned m_bRequiresSave:1;
SIZE m_sizeExtent; //current extents in himetric
이거 두개만 넣어 주면 잘됩니다.
class ATL_NO_VTABLE TTestComImpl :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<TTestComImpl, &CLSID_TestCom>,
public IPersistPropertyBagImpl<TTestComImpl>,
public TEvents_TestCom<TTestComImpl>,
public IDispatchImpl<ITestCom, &IID_ITestCom, &LIBID_Project1>,
public IObjectSafetyImpl<TTestComImpl, INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA>
{
...
public:
unsigned m_bRequiresSave:1;
SIZE m_sizeExtent; //current extents in himetric
이렇게 하면 잘됩니다.
그냥 ActiveX Form으로 하면 되지만 불필요한것이 좀 줄어서
조금 용량이 주는군요.
[C++ Error] atlcom.h(885): E2451 Undefined symbol 'GetPropertyMap'
에러는
BEGIN_PROPERTY_MAP(TTestComImpl)
END_PROPERTY_MAP()
이걸 넣어주지 않았을때 나는 에러 였군요.
그냥 주석걸고 테스트 하다보니..
역시 기본이 안되니까 힘들군요.
정용훈 님이 쓰신 글 :
: 안녕하세요.
:
: ActiveX Library에서 Param html태그를 가져오게 만들려고 합니다.
: Actvie Form은 잘되는데 ActvieX Library에선 IPersistPropertyBagImpl
: 을 추가하면 아래와 같은 에러가 납니다.
:
: [C++ Error] atlcom.h(885): E2451 Undefined symbol 'GetPropertyMap'
:
: 제가 작업한 순서는
: 1. ActvieX Libary 프로젝트 추가
: 2. Com Object 추가
:
: class ATL_NO_VTABLE TTestComImpl :
: ...
: public IPersistPropertyBagImpl<TTestComImpl>,
: ...
|