Yes it is C++.I've got one COM object MyCommandclass ATL_NO_VTABLE CLogoLayerCommand :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<CMyCommand, &CLSID_MyCommand>,
public ISupportErrorInfo,
public IMyCommand,
public ICommand
The tool is created using the following code in the onClick() methodhr = m_ipGtScopeLayer.CreateInstance(CLSID_CustomLogoLayer);
The tool part is declared as follow :class ATL_NO_VTABLE CMyTool :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<CMyTool, &CLSID_MyTool>,
public ISupportErrorInfo,
public ICustomLogoLayer,
public ILayer,
public ILayerEffects,
public IPersistStream