// AddReferenceDialog.h : Declaration of the CAddReferenceDialog #pragma once #include "resource.h" // main symbols #include #include "vs_haskell_dlg.h" // CAddReferenceDialog class CAddReferenceDialog : public CAxDialogImpl, public CComObjectRootEx, public CComCoClass, public IDispatchImpl { struct PackageInfo { PackageInfo *pNext; char szName[1]; }; PackageInfo *m_pPackages; IVsUIShell *m_pUIShell; void FreePackages(); public: CAddReferenceDialog(); ~CAddReferenceDialog(); enum { IDD = IDD_ADDREFERENCEDIALOG }; DECLARE_REGISTRY_RESOURCEID(IDR_ADDREFERENCEDIALOG) BEGIN_COM_MAP(CAddReferenceDialog) COM_INTERFACE_ENTRY(IAddReferenceDialog) COM_INTERFACE_ENTRY(IDispatch) END_COM_MAP() BEGIN_MSG_MAP(CAddReferenceDialog) MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog) COMMAND_HANDLER(IDOK, BN_CLICKED, OnClickedOK) COMMAND_HANDLER(IDCANCEL, BN_CLICKED, OnClickedCancel) CHAIN_MSG_MAP(CAxDialogImpl) END_MSG_MAP() // Handler prototypes: // LRESULT MessageHandler(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); // LRESULT CommandHandler(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled); // LRESULT NotifyHandler(int idCtrl, LPNMHDR pnmh, BOOL& bHandled); LRESULT OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); LRESULT OnClickedOK(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled); LRESULT OnClickedCancel(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled); DECLARE_PROTECT_FINAL_CONSTRUCT() HRESULT FinalConstruct() { return S_OK; } void FinalRelease() { } public: STDMETHOD(OpenDialog)(IServiceProvider *provider); STDMETHOD(AddPackage)(CHAR* name); STDMETHOD(GetPackage)(PVOID * pos, CHAR ** name); }; OBJECT_ENTRY_AUTO(__uuidof(AddReferenceDialog), CAddReferenceDialog)