Click here to Skip to main content
15,895,011 members
Articles / Desktop Programming / ATL

ATL COM Based Addin / Plugin Framework With Dynamic Toolbars and Menus

Rate me:
Please Sign up or sign in to vote.
4.86/5 (35 votes)
9 Dec 20043 min read 164.9K   3.2K   96  
An article on ATL COM Based Addin / Plugin Framework With Dynamic Toolbars and Menus, based on VC++ Addin Architecture.
/* ----------------------------------- File Header -------------------------------------------*
	File				:	ProjectFrameworkExt.h
	Project Code		:	
	Author	    		:	Swapna K V, NeST India (P) Ltd
	Created On	    	:	10/28/2004 6:11:30 PM
	Last Modified	   	:	10/28/2004 6:11:30 PM
----------------------------------------------------------------------------------------------*
	Type				:	Header File
	Description			:   
	Developer's Note	:	
	Bugs				:	
	See Also			:	
	Revision History	:	
	Traceability        :	
	Necessary Files		:	
---------------------------------------------------------------------------------------------*/



// ProjectFrameworkExt.h : Declaration of the CProjectFramework

#ifndef __PROJECTFRAMEWORK_H_
#define __PROJECTFRAMEWORK_H_

#include "resource.h"       // main symbols
#include "ProjectFrameworkCP.h"

#import "msxml.dll" named_guids raw_interfaces_only
using namespace MSXML;


/////////////////////////////////////////////////////////////////////////////
// CProjectFramework
class ATL_NO_VTABLE CProjectFramework : 
	public CComObjectRootEx<CComSingleThreadModel>,
	public CComCoClass<CProjectFramework, &CLSID_ProjectFramework>,
	public ISupportErrorInfo,
	public IConnectionPointContainerImpl<CProjectFramework>,
	public IDispatchImpl<IProjectFramework, &IID_IProjectFramework, &LIBID_ProjectFrameworkLib>,
	public CProxy_IProjectFrameworkEvents< CProjectFramework >
{
public:
	CProjectFramework()
	{
	}

DECLARE_REGISTRY_RESOURCEID(IDR_PROJECTFRAMEWORK1)

DECLARE_PROTECT_FINAL_CONSTRUCT()

BEGIN_COM_MAP(CProjectFramework)
	COM_INTERFACE_ENTRY(IProjectFramework)
	COM_INTERFACE_ENTRY(IDispatch)
	COM_INTERFACE_ENTRY(ISupportErrorInfo)
	COM_INTERFACE_ENTRY(IConnectionPointContainer)
	COM_INTERFACE_ENTRY_IMPL(IConnectionPointContainer)
END_COM_MAP()
BEGIN_CONNECTION_POINT_MAP(CProjectFramework)
CONNECTION_POINT_ENTRY(DIID__IProjectFrameworkEvents)
END_CONNECTION_POINT_MAP()


// ISupportsErrorInfo
	STDMETHOD(InterfaceSupportsErrorInfo)(REFIID riid);

// IProjectFramework
public:
	STDMETHOD(SendStatus)(BSTR strStatus);
	STDMETHOD(SetViewHeading)(BSTR strHeading1, BSTR strHeading2,BSTR strHeading3);
	BOOL GetAllCommandsInfo(CAddinInfo& AddinInfo, IXMLDOMNodeList* pXMLDOMNodeList);
	BOOL ParseAndLoadCommandInfo(BSTR strXMLCommand, CAddinInfo& AddinInfo);
	STDMETHOD(SetAddinToolbar)(long lAddinIndex, VARIANT varValue);
	STDMETHOD(get_MainWindow)(/*[out, retval]*/ long *pVal);
	STDMETHOD(LoadAllAdins)(BSTR strAddinLoadingInfo);
	STDMETHOD(SetAddInInfo)(long lSessionID, long lInstanceHandle, BSTR strXMLMenuToolbarIDCmdInfo, long lToobarRes);
};

#endif //__PROJECTFRAMEWORK_H_

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here


Written By
Chief Technology Officer KTS INFOTECH PVT LTD
India India
->9+ Years of Experience in IT Field.
->Basically a C++ Programmer migrating to .NET
->Have Masters degree in Physics and Computer Scince.
-> Doing his Ph.D(Part Time) in Optical Networking)
->Interests: Software product development,Networking, Robotics,Sports Physics, Learning musical instruments, Cricket.

->Resides in kerala ,the gods own country, with his mother and wife.

Home page


Comments and Discussions