Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
CODE PROJECT For Those Who Code
  • Home
  • Articles
  • FAQ
Community
  1. Home
  2. General Programming
  3. ATL / WTL / STL
  4. vs 2008 and Icopy

vs 2008 and Icopy

Scheduled Pinned Locked Moved ATL / WTL / STL
c++visual-studiocsharpcomlinux
2 Posts 2 Posters 2 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • A Offline
    A Offline
    aurelcly
    wrote on last edited by
    #1

    Good afternoon I currently write a IcopyHook shell using visual studio 2008 and atl I have this compile error: Error 1 error C2259: 'ATL::CComObject<Base>' : cannot instantiate abstract class c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\atlcom.h 1801 this is a piece of code I use to do so:

    // MyHook.h : Declaration of the CMyHook

    #ifndef __MYHOOK_H_
    #define __MYHOOK_H_

    #include "resource.h" // main symbols

    /////////////////////////////////////////////////////////////////////////////
    // CMyHook
    class ATL_NO_VTABLE CMyHook :
    public CComObjectRootEx<CComSingleThreadModel>,
    public CComCoClass<CMyHook, &CLSID_MyHook>,
    public ICopyHook, // ICopyHook interface.
    public IDispatchImpl<IMyHook, &IID_IMyHook, &LIBID_COPYHOOKLib>
    {
    public:
    CMyHook() //_ATL_DEBUG_ADDREF_RELEASE_IMPL
    {
    }

    /* //Ansi Version.
    STDMETHOD_(UINT,CopyCallback) (HWND hwnd, UINT wFunc, UINT wFlags, LPCSTR pszSrcFile, DWORD dwSrcAttribs,
    LPCSTR pszDestFile, DWORD dwDestAttribs);
    */
    //Unicode Version.
    STDMETHOD_(UINT,CopyCallback) (HWND hwnd, UINT wFunc, UINT wFlags, LPCWSTR pszSrcFile, DWORD dwSrcAttribs,
    LPCWSTR pszDestFile, DWORD dwDestAttribs);

    DECLARE_REGISTRY_RESOURCEID(IDR_MYHOOK)

    DECLARE_PROTECT_FINAL_CONSTRUCT()

    BEGIN_COM_MAP(CMyHook)
    COM_INTERFACE_ENTRY_IID(IID_IShellCopyHook , CMyHook)
    COM_INTERFACE_ENTRY(IMyHook)
    COM_INTERFACE_ENTRY(IDispatch)
    END_COM_MAP()

    };

    #endif //__MYHOOK_H_

    // CopyHook.cpp : Implementation of DLL Exports.

    // Note: Proxy/Stub Information
    // To build a separate proxy/stub DLL,
    // run nmake -f CopyHookps.mk in the project directory.

    #include "stdafx.h"
    #include "resource.h"
    #include <initguid.h>
    #include "CopyHook.h"

    #include "CopyHook_i.c"
    #include "MyHook.h"

    CComModule _Module;

    BEGIN_OBJECT_MAP(ObjectMap)
    OBJECT_ENTRY(CLSID_MyHook, CMyHook)
    END_OBJECT_MAP()

    /////////////////////////////////////////////////////////////////////////////
    // DLL Entry Point

    extern "C"
    BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID /*lpReserved*/)
    {
    if (dwReason == DLL_PROCESS_ATTACH)
    {
    _Module.Init(ObjectMap, hInstance, &LIBID_COPYHOOKLib);
    DisableThreadLibraryCalls(hInstance);
    }
    else if (dwReason == DLL_PROCESS_DETACH)
    _Module.Term();
    return TRUE; // ok
    }

    ///////////////////////////////

    S 1 Reply Last reply
    0
    • A aurelcly

      Good afternoon I currently write a IcopyHook shell using visual studio 2008 and atl I have this compile error: Error 1 error C2259: 'ATL::CComObject<Base>' : cannot instantiate abstract class c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\atlcom.h 1801 this is a piece of code I use to do so:

      // MyHook.h : Declaration of the CMyHook

      #ifndef __MYHOOK_H_
      #define __MYHOOK_H_

      #include "resource.h" // main symbols

      /////////////////////////////////////////////////////////////////////////////
      // CMyHook
      class ATL_NO_VTABLE CMyHook :
      public CComObjectRootEx<CComSingleThreadModel>,
      public CComCoClass<CMyHook, &CLSID_MyHook>,
      public ICopyHook, // ICopyHook interface.
      public IDispatchImpl<IMyHook, &IID_IMyHook, &LIBID_COPYHOOKLib>
      {
      public:
      CMyHook() //_ATL_DEBUG_ADDREF_RELEASE_IMPL
      {
      }

      /* //Ansi Version.
      STDMETHOD_(UINT,CopyCallback) (HWND hwnd, UINT wFunc, UINT wFlags, LPCSTR pszSrcFile, DWORD dwSrcAttribs,
      LPCSTR pszDestFile, DWORD dwDestAttribs);
      */
      //Unicode Version.
      STDMETHOD_(UINT,CopyCallback) (HWND hwnd, UINT wFunc, UINT wFlags, LPCWSTR pszSrcFile, DWORD dwSrcAttribs,
      LPCWSTR pszDestFile, DWORD dwDestAttribs);

      DECLARE_REGISTRY_RESOURCEID(IDR_MYHOOK)

      DECLARE_PROTECT_FINAL_CONSTRUCT()

      BEGIN_COM_MAP(CMyHook)
      COM_INTERFACE_ENTRY_IID(IID_IShellCopyHook , CMyHook)
      COM_INTERFACE_ENTRY(IMyHook)
      COM_INTERFACE_ENTRY(IDispatch)
      END_COM_MAP()

      };

      #endif //__MYHOOK_H_

      // CopyHook.cpp : Implementation of DLL Exports.

      // Note: Proxy/Stub Information
      // To build a separate proxy/stub DLL,
      // run nmake -f CopyHookps.mk in the project directory.

      #include "stdafx.h"
      #include "resource.h"
      #include <initguid.h>
      #include "CopyHook.h"

      #include "CopyHook_i.c"
      #include "MyHook.h"

      CComModule _Module;

      BEGIN_OBJECT_MAP(ObjectMap)
      OBJECT_ENTRY(CLSID_MyHook, CMyHook)
      END_OBJECT_MAP()

      /////////////////////////////////////////////////////////////////////////////
      // DLL Entry Point

      extern "C"
      BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID /*lpReserved*/)
      {
      if (dwReason == DLL_PROCESS_ATTACH)
      {
      _Module.Init(ObjectMap, hInstance, &LIBID_COPYHOOKLib);
      DisableThreadLibraryCalls(hInstance);
      }
      else if (dwReason == DLL_PROCESS_DETACH)
      _Module.Term();
      return TRUE; // ok
      }

      ///////////////////////////////

      S Offline
      S Offline
      Stuart Dootson
      wrote on last edited by
      #2

      Are you sure you're creating a wide version of ICopyHook? Why not use ICopyHookW and IID_ICopyHookW to make 100% sure.

      Java, Basic, who cares - it's all a bunch of tree-hugging hippy cr*p CodeProject MVP for 2010 - who'd'a thunk it!

      1 Reply Last reply
      0
      Reply
      • Reply as topic
      Log in to reply
      • Oldest to Newest
      • Newest to Oldest
      • Most Votes


      • Login

      • Don't have an account? Register

      • Login or register to search.
      • First post
        Last post
      0
      • Categories
      • Recent
      • Tags
      • Popular
      • World
      • Users
      • Groups