|
shdocvw.dll
implib로 임포트 라이브러리 생성해보세요... ( --; )
강재호.만해 님이 쓰신 글 :
: 안녕하세요 만해입니다.
:
: 회사 입사한지도 어느덧~ 한달이 가까워져 오는데요
:
: 어느정도 적응이 되어 가는것 같네요 ㅎㅎㅎ
:
: BHO(Browser Helper Object)를 이용한 프로그램을 작성해 볼려고 하는데요
:
: 빌더에서 COM 작성을 해야 하는것 같아서 바이블이랑, 디벨롶 가이드 쌓아 놓고
:
: 봐가면서 하고 있는데요 잘안되네요
:
: 혹시라도 빌더에서 COM 객체 작성해보신분 좀 갈켜주세요
:
: 문제는 IObjectWithSite 인터페이스를 COM 객체가 상속을 받아야 하고요
:
: 다시 생각해보니 질문이 너무 엉망이라서 다시 수정 합니다.
:
: class ATL_NO_VTABLE TMyHelperImpl :
: public CComObjectRootEx<CComSingleThreadModel>,
: public CComCoClass<TMyHelperImpl, &CLSID_MyHelper>,
: public IMyHelper
: {
: public:
: TMyHelperImpl()
: {
: }
: 이 소스가 제가 만든 MyHelperImpl.cpp에 있는 소스이고요
:
: 여기에서 제가 원하는 것은
:
: IObjectWithSite를 상속 시켜야 하는데
:
: class ATL_NO_VTABLE TMyHelperImpl :
: public CComObjectRootEx<CComSingleThreadModel>,
: public CComCoClass<TMyHelperImpl, &CLSID_MyHelper>,
: public IObjectWithSiteImpl<TMyHelperImpl>,
: public IMyHelper
: {
: public:
: TMyHelperImpl()
: {
: }
:
: 이런식으로 상속을 시키니깐 디버그시 객체를 생성 시키지도 않고 그냥 나가 버립니다.
:
: 상속을 하긴 해야 하는데 정확히 어디다 public IObjectWithSiteImpl<T>을 집어 넣어야 할지 모르곘네요
:
: 그리고 밑의 소스는 비줠씨에 있는 예제를 하기 위해 가져온 부분인데요
:
: IWebBrowser2 인터페이스를 가져다 씁니다.
:
: CComQIPtr<IWebBrowser2 , &IID_IWebBrowser2> m_spWebBrowser2;
: CComQIPtr<IConnectionPointContainer,
: &IID_IConnectionPointContainer> m_spCPC;
:
: 저 인터페이스를 지원하기 위해서 비줠씨 .net 에선 shdocvw.dll을 임포트 시키는데요
:
: #import "shdocvw.ddd"raw_interface_only
:
: 빌더에서는 임포트 시킬려고 해도 lib 파일이 없어서 임포트가 안되고요,
:
: TCppWebBrowser 처럼
:
: #include "shdocvw_ocx.h"
: #pragma link "SHDocVw_OCX"
:
: 이렇게 해줘도 에러가 생깁니다.
:
: 그래서 결국은
:
: #include <exdispid.h>
: #include "SHDocVw_OCX.h"
: #include <OleCtrls.hpp>
: #include <mshtml.h>
:
: 저 인터페이스를 정의한 헤더를 다 찾아서
:
: 같이 인클루드 시켜 놨는데 저게 맞는건지 모르곘네요.
:
: BHO에 등록시키는건 CoClass의 GUID를 레지스터에 입력 시켜서 해결이 됐지만,
:
: 저 두개가 문제가 생깁니다.
:
: 고수님들의 조언 바랍니다.
|