none
VC2010添加ActiveX控件,该控件只支持vc6.0,添加到vc2010对话框中类向导不能发现该控件 RRS feed

  • 问题

  •   

    //   这个是包装类的声明

    // CActQCPUQ3.h : 由 Microsoft Visual C++ 创建的 ActiveX 控件包装类的声明

    #pragma once

    /////////////////////////////////////////////////////////////////////////////
    // CActQCPUQ3

    class CActQCPUQ3 : public CWnd
    {
    protected:
     DECLARE_DYNCREATE(CActQCPUQ3)
    public:
     CLSID const& GetClsid()
     {
      static CLSID const clsid
       = { 0x51AF2F, 0xA877, 0x11D3, { 0x83, 0xA8, 0x0, 0xA0, 0x24, 0xBD, 0xBF, 0x2B } };
      return clsid;
     }
     virtual BOOL Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle,
          const RECT& rect, CWnd* pParentWnd, UINT nID,
          CCreateContext* pContext = NULL)
     {
      return CreateControl(GetClsid(), lpszWindowName, dwStyle, rect, pParentWnd, nID);
     }

        BOOL Create(LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd,
        UINT nID, CFile* pPersist = NULL, BOOL bStorage = FALSE,
        BSTR bstrLicKey = NULL)
     {
      return CreateControl(GetClsid(), lpszWindowName, dwStyle, rect, pParentWnd, nID,
      pPersist, bStorage, bstrLicKey);
     }

    // 特性
    public:

    // 操作
    public:

    .....

    }

    //end

    BOOL COleControlContainer::CreateControl(CWnd* pWndCtrl,const CControlCreationInfo& creationInfo,
     DWORD dwStyle, const POINT* ppt, const SIZE* psize,UINT nID)

    {

    ... // 到下面这个位置就发生错误 ,不能建立这个控件,应该怎么让这个控件兼容到新版的VC里面来呢?

    bCreated = SUCCEEDED( pSite->CreateControl(pWndCtrl, clsid,
      lpszWindowName, dwStyle, ppt, psize, nID, pPersist, bStorage, bstrLicKey ) );

    ...

     }

    2012年8月3日 5:42