class ATL_NO_VTABLE CToolBand :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<CToolBand, &CLSID_ToolBand>,
public IDispatchImpl<IToolBand, &IID_IToolBand, &LIBID_BrowserExLib>,
public IObjectWithSiteImpl<CToolBand>,
public IDeskBand,
public IInputObject
{
public:
CComQIPtr<IWebBrowser2, &IID_IWebBrowser2> m_spWebBrowser2;
CComQIPtr<IInputObjectSite, &IID_IInputObjectSite> m_spIOSite;
DWORD m_dwBandID;
DWORD m_dwViewMode;
DESKBANDINFO m_dbiDefault;
CToolBar m_ToolBar;
public:
CToolBand();
DECLARE_REGISTRY_RESOURCEID(IDR_TOOLBAND)
DECLARE_PROTECT_FINAL_CONSTRUCT()
BEGIN_COM_MAP(CToolBand)
COM_INTERFACE_ENTRY(IToolBand)
COM_INTERFACE_ENTRY(IDispatch)
COM_INTERFACE_ENTRY(IObjectWithSite)
COM_INTERFACE_ENTRY(IInputObject) <<-- 여기서 문제가 발생
COM_INTERFACE_ENTRY(IDockingWindow)
COM_INTERFACE_ENTRY(IDeskBand)
END_COM_MAP()
*************************
위 코드는 툴 밴드를 생성하는 클래스 의 일부분 입니다...
다른것은 다 되는데 콤보 박스 구현중 포커스를 얻기 위해 IInputObjcet 인터페이스를 외부로 유출 시키는
과정에서 문제가 발생합니다..
에러 내용은
c:\Documents and Settings\Administrator\My Documents\Visual Studio Projects\BrowserEx\ToolBand.h(41) : error C2787: 'IInputObject' : 이 개체와 연결된 GUID가 없습니다.
이런 식으로 출력이 되어지는데... 이해가 잘 안됩니다 ...
" COM_INTERFACE_ENTRY(IInputObject) "
이 부분을 제외하고 IInputObject 인터페이스 관련 함수를 구현 하면 컴파일은 잘 되는데
유독. 유출하는 부분이 에러가 뜹니다...
어떻게 하면 유출을 할 수 있는지 알고 싶습니다
[최초 등록일: ]
[최종 수정일: 7/22/2005]