Author: rharabien
Date: Wed Nov 30 12:21:27 2011
New Revision: 54547
URL:
http://svn.reactos.org/svn/reactos?rev=54547&view=rev
Log:
[SHELL32] - Restore functionality of Start Menu from old shell32
Modified:
trunk/reactos/dll/win32/shell32/shell32_main.cpp
trunk/reactos/dll/win32/shell32/startmenu.cpp
trunk/reactos/dll/win32/shell32/startmenu.h
Modified: trunk/reactos/dll/win32/shell32/shell32_main.cpp
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/shell32_…
==============================================================================
--- trunk/reactos/dll/win32/shell32/shell32_main.cpp [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/shell32/shell32_main.cpp [iso-8859-1] Wed Nov 30 12:21:27
2011
@@ -1287,7 +1287,7 @@
OBJECT_ENTRY(CLSID_RecycleBin, CRecycleBin)
OBJECT_ENTRY(CLSID_OpenWithMenu, COpenWithMenu)
OBJECT_ENTRY(CLSID_NewMenu, CNewMenu)
-OBJECT_ENTRY(CLSID_StartMenu, CStartMenuCallback)
+OBJECT_ENTRY(CLSID_StartMenu, CStartMenu)
OBJECT_ENTRY(CLSID_MenuBandSite, CMenuBandSite)
END_OBJECT_MAP()
Modified: trunk/reactos/dll/win32/shell32/startmenu.cpp
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/startmen…
==============================================================================
--- trunk/reactos/dll/win32/shell32/startmenu.cpp [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/shell32/startmenu.cpp [iso-8859-1] Wed Nov 30 12:21:27 2011
@@ -22,148 +22,324 @@
WINE_DEFAULT_DEBUG_CHANNEL(shell32start);
-CStartMenuCallback::CStartMenuCallback()
-{
-}
-
-CStartMenuCallback::~CStartMenuCallback()
-{
-}
-
-HRESULT STDMETHODCALLTYPE CStartMenuCallback::SetSite(IUnknown *pUnkSite)
-{
- return E_NOTIMPL;
-}
-
-HRESULT STDMETHODCALLTYPE CStartMenuCallback::GetSite(REFIID riid, void **ppvSite)
-{
- return E_NOTIMPL;
-}
-
-HRESULT STDMETHODCALLTYPE CStartMenuCallback::CallbackSM(LPSMDATA psmd, UINT uMsg, WPARAM
wParam, LPARAM lParam)
-{
+CStartMenu::CStartMenu()
+{
+ m_pBandSite = NULL;
+ m_pUnkSite = NULL;
+}
+
+CStartMenu::~CStartMenu()
+{
+}
+
+HRESULT STDMETHODCALLTYPE CStartMenu::ContextSensitiveHelp(BOOL fEnterMode)
+{
+ UNIMPLEMENTED;
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CStartMenu::GetWindow(HWND *phwnd)
+{
+ UNIMPLEMENTED;
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CStartMenu::GetClient(IUnknown **ppunkClient)
+{
+ TRACE("(%p, %p)\n", this, ppunkClient);
+
+ *ppunkClient = (IUnknown*)m_pBandSite;
+ (*ppunkClient)->AddRef();
+ return S_OK;
+}
+
+HRESULT STDMETHODCALLTYPE CStartMenu::OnPosRectChangeDB(LPRECT prc)
+{
+ UNIMPLEMENTED;
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CStartMenu::SetClient(IUnknown *punkClient)
+{
+ UNIMPLEMENTED;
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CStartMenu::OnSelect(DWORD dwSelectType)
+{
+ UNIMPLEMENTED;
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CStartMenu::Popup(POINTL *ppt, RECTL *prcExclude, MP_POPUPFLAGS
dwFlags)
+{
+ UNIMPLEMENTED;
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CStartMenu::SetSubMenu(IMenuPopup *pmp, BOOL fSet)
+{
+ UNIMPLEMENTED;
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CStartMenu::SetSite(IUnknown *pUnkSite)
+{
+ TRACE("(%p, %p)\n", this, pUnkSite);
+
+ if (m_pUnkSite)
+ m_pUnkSite->Release();
+ m_pUnkSite = pUnkSite;
+ if (m_pUnkSite)
+ m_pUnkSite->AddRef();
+ return S_OK;
+}
+
+HRESULT STDMETHODCALLTYPE CStartMenu::GetSite(REFIID riid, void **ppvSite)
+{
+ TRACE("(%p, %s, %p)\n", this, debugstr_guid(&riid), ppvSite);
+
+ if (!m_pUnkSite)
+ return E_FAIL;
+
+ return m_pUnkSite->QueryInterface(riid, ppvSite);
+}
+
+HRESULT STDMETHODCALLTYPE CStartMenu::Initialize()
+{
+ HRESULT hr;
+ CComObject<CMenuBandSite> *pBandSiteObj;
+
+ TRACE("(%p)\n", this);
+
+ //pBandSiteObj = new CComObject<CMenuBandSite>();
+ ATLTRY (pBandSiteObj = new CComObject<CMenuBandSite>);
+ if (pBandSiteObj == NULL)
+ return E_OUTOFMEMORY;
+
+ hr = pBandSiteObj->QueryInterface(IID_IBandSite, (VOID**)&m_pBandSite);
+ if (FAILED(hr))
+ return NULL;
+
+ return m_pBandSite->AddBand((IMenuBand*)this);
+}
+
+HRESULT STDMETHODCALLTYPE CStartMenu::IsMenuMessage(MSG *pmsg)
+{
+ UNIMPLEMENTED;
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CStartMenu::TranslateMenuMessage(MSG *pmsg, LRESULT *plRet)
+{
+ UNIMPLEMENTED;
return E_NOTIMPL;
}
CMenuBandSite::CMenuBandSite()
{
+ m_pObjects = NULL;
+ m_cObjects = 0;
}
CMenuBandSite::~CMenuBandSite()
{
}
+HRESULT STDMETHODCALLTYPE CMenuBandSite::AddBand(IUnknown *punk)
+{
+ IUnknown **pObjects;
+
+ TRACE("punk %p\n", punk);
+
+ if (!punk)
+ return E_FAIL;
+
+ pObjects = (IUnknown**)CoTaskMemAlloc(sizeof(IUnknown*) * (m_cObjects + 1));
+ if (!pObjects)
+ return E_FAIL;
+
+ RtlMoveMemory(pObjects, m_pObjects, sizeof(IUnknown*) * m_cObjects);
+
+ CoTaskMemFree(m_pObjects);
+
+ m_pObjects = pObjects;
+
+ m_pObjects[m_cObjects] = punk;
+ punk->AddRef();
+
+ m_cObjects++;
+
+ return S_OK;
+}
+
+HRESULT STDMETHODCALLTYPE CMenuBandSite::EnumBands(UINT uBand, DWORD *pdwBandID)
+{
+ ULONG Index, ObjectCount;
+
+ TRACE("uBand %uu pdwBandID %p\n", uBand, pdwBandID);
+
+ if (uBand == (UINT)-1)
+ return m_cObjects;
+
+ ObjectCount = 0;
+
+ for(Index = 0; Index < m_cObjects; Index++)
+ {
+ if (m_pObjects[Index] != NULL)
+ {
+ if (uBand == ObjectCount)
+ {
+ *pdwBandID = Index;
+ return S_OK;
+ }
+ ObjectCount++;
+ }
+ }
+ return E_FAIL;
+}
+
+HRESULT STDMETHODCALLTYPE CMenuBandSite::QueryBand(DWORD dwBandID, IDeskBand **ppstb,
DWORD *pdwState, LPWSTR pszName, int cchName)
+{
+ UNIMPLEMENTED;
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CMenuBandSite::SetBandState(DWORD dwBandID, DWORD dwMask, DWORD
dwState)
+{
+ UNIMPLEMENTED;
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CMenuBandSite::RemoveBand(DWORD dwBandID)
+{
+ TRACE("dwBandID %u\n", dwBandID);
+
+ if (m_cObjects <= dwBandID)
+ return E_FAIL;
+
+ if (m_pObjects[dwBandID])
+ {
+ m_pObjects[dwBandID]->Release();
+ m_pObjects[dwBandID] = NULL;
+ }
+
+ return S_OK;
+}
+
+HRESULT STDMETHODCALLTYPE CMenuBandSite::GetBandObject(DWORD dwBandID, REFIID riid, VOID
**ppv)
+{
+ TRACE("dwBandID %u riid %p ppv %p\n", dwBandID, riid, ppv);
+
+ if (m_cObjects <= dwBandID)
+ return E_FAIL;
+
+ if (m_pObjects[dwBandID])
+ {
+ return m_pObjects[dwBandID]->QueryInterface(riid, ppv);
+ }
+
+ return E_FAIL;
+}
+
+HRESULT STDMETHODCALLTYPE CMenuBandSite::SetBandSiteInfo(const BANDSITEINFO *pbsinfo)
+{
+ UNIMPLEMENTED;
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CMenuBandSite::GetBandSiteInfo(BANDSITEINFO *pbsinfo)
+{
+ UNIMPLEMENTED;
+ return E_NOTIMPL;
+}
+
HRESULT STDMETHODCALLTYPE CMenuBandSite::GetWindow(HWND *phwnd)
{
+ UNIMPLEMENTED;
return E_NOTIMPL;
}
HRESULT STDMETHODCALLTYPE CMenuBandSite::ContextSensitiveHelp(BOOL fEnterMode)
{
+ UNIMPLEMENTED;
return E_NOTIMPL;
}
HRESULT STDMETHODCALLTYPE CMenuBandSite::SetDeskBarSite(IUnknown *punkSite)
{
+ UNIMPLEMENTED;
return E_NOTIMPL;
}
HRESULT STDMETHODCALLTYPE CMenuBandSite::SetModeDBC(DWORD dwMode)
{
+ UNIMPLEMENTED;
return E_NOTIMPL;
}
HRESULT STDMETHODCALLTYPE CMenuBandSite::UIActivateDBC(DWORD dwState)
{
+ UNIMPLEMENTED;
return E_NOTIMPL;
}
HRESULT STDMETHODCALLTYPE CMenuBandSite::GetSize(DWORD dwWhich, LPRECT prc)
{
+ UNIMPLEMENTED;
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CMenuBandSite::QueryStatus(const GUID *pguidCmdGroup, ULONG
cCmds, OLECMD prgCmds[ ], OLECMDTEXT *pCmdText)
+{
+ UNIMPLEMENTED;
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE CMenuBandSite::Exec(const GUID *pguidCmdGroup, DWORD nCmdID,
DWORD nCmdexecopt, VARIANT *pvaIn, VARIANT *pvaOut)
+{
+ UNIMPLEMENTED;
return E_NOTIMPL;
}
HRESULT STDMETHODCALLTYPE CMenuBandSite::UIActivateIO(BOOL fActivate, LPMSG lpMsg)
{
+ UNIMPLEMENTED;
return E_NOTIMPL;
}
HRESULT STDMETHODCALLTYPE CMenuBandSite::HasFocusIO()
{
+ UNIMPLEMENTED;
return E_NOTIMPL;
}
HRESULT STDMETHODCALLTYPE CMenuBandSite::TranslateAcceleratorIO(LPMSG lpMsg)
{
+ UNIMPLEMENTED;
return E_NOTIMPL;
}
HRESULT STDMETHODCALLTYPE CMenuBandSite::OnFocusChangeIS(IUnknown *punkObj, BOOL
fSetFocus)
{
+ UNIMPLEMENTED;
return E_NOTIMPL;
}
HRESULT STDMETHODCALLTYPE CMenuBandSite::OnWinEvent(HWND paramC, UINT param10, WPARAM
param14, LPARAM param18, LRESULT *param1C)
{
+ UNIMPLEMENTED;
return E_NOTIMPL;
}
HRESULT STDMETHODCALLTYPE CMenuBandSite::IsWindowOwner(HWND paramC)
{
+ UNIMPLEMENTED;
return E_NOTIMPL;
}
HRESULT STDMETHODCALLTYPE CMenuBandSite::QueryService(REFGUID guidService, REFIID riid,
void **ppvObject)
{
- return E_NOTIMPL;
-}
-
-HRESULT STDMETHODCALLTYPE CMenuBandSite::QueryStatus(const GUID *pguidCmdGroup, ULONG
cCmds, OLECMD prgCmds[ ], OLECMDTEXT *pCmdText)
-{
- return E_NOTIMPL;
-}
-
-HRESULT STDMETHODCALLTYPE CMenuBandSite::Exec(const GUID *pguidCmdGroup, DWORD nCmdID,
DWORD nCmdexecopt, VARIANT *pvaIn, VARIANT *pvaOut)
-{
- return E_NOTIMPL;
-}
-
-HRESULT STDMETHODCALLTYPE CMenuBandSite::AddBand(IUnknown *punk)
-{
- return E_NOTIMPL;
-}
-
-HRESULT STDMETHODCALLTYPE CMenuBandSite::EnumBands(UINT uBand, DWORD *pdwBandID)
-{
- return E_NOTIMPL;
-}
-
-HRESULT STDMETHODCALLTYPE CMenuBandSite::QueryBand(DWORD dwBandID, IDeskBand **ppstb,
DWORD *pdwState, LPWSTR pszName, int cchName)
-{
- return E_NOTIMPL;
-}
-
-HRESULT STDMETHODCALLTYPE CMenuBandSite::SetBandState(DWORD dwBandID, DWORD dwMask, DWORD
dwState)
-{
- return E_NOTIMPL;
-}
-
-HRESULT STDMETHODCALLTYPE CMenuBandSite::RemoveBand(DWORD dwBandID)
-{
- return E_NOTIMPL;
-}
-
-HRESULT STDMETHODCALLTYPE CMenuBandSite::GetBandObject(DWORD dwBandID, REFIID riid, VOID
**ppv)
-{
- return E_NOTIMPL;
-}
-
-HRESULT STDMETHODCALLTYPE CMenuBandSite::SetBandSiteInfo(const BANDSITEINFO *pbsinfo)
-{
- return E_NOTIMPL;
-}
-
-HRESULT STDMETHODCALLTYPE CMenuBandSite::GetBandSiteInfo(BANDSITEINFO *pbsinfo)
-{
- return E_NOTIMPL;
-}
+ UNIMPLEMENTED;
+ return E_NOTIMPL;
+}
Modified: trunk/reactos/dll/win32/shell32/startmenu.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/startmen…
==============================================================================
--- trunk/reactos/dll/win32/shell32/startmenu.h [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/shell32/startmenu.h [iso-8859-1] Wed Nov 30 12:21:27 2011
@@ -21,51 +21,91 @@
#ifndef _STARTMENU_H_
#define _STARTMENU_H_
-class CStartMenuCallback :
- public CComCoClass<CStartMenuCallback, &CLSID_NULL>,
+class CStartMenu :
+ public CComCoClass<CStartMenu, &CLSID_StartMenu>,
public CComObjectRootEx<CComMultiThreadModelNoCS>,
+ public IMenuPopup,
public IObjectWithSite,
- public IShellMenuCallback
+ public IInitializeObject,
+ public IMenuBand // FIXME
{
private:
+ IBandSite *m_pBandSite;
+ IUnknown *m_pUnkSite;
+
public:
- CStartMenuCallback();
- ~CStartMenuCallback();
+ CStartMenu();
+ ~CStartMenu();
+
+ // *** IOleWindow methods ***
+ virtual HRESULT STDMETHODCALLTYPE ContextSensitiveHelp(BOOL fEnterMode);
+ virtual HRESULT STDMETHODCALLTYPE GetWindow(HWND *phwnd);
+
+ // *** IDeskBar methods ***
+ virtual HRESULT STDMETHODCALLTYPE GetClient(IUnknown **ppunkClient);
+ virtual HRESULT STDMETHODCALLTYPE OnPosRectChangeDB(LPRECT prc);
+ virtual HRESULT STDMETHODCALLTYPE SetClient(IUnknown *punkClient);
+
+ // *** IMenuPopup methods ***
+ virtual HRESULT STDMETHODCALLTYPE OnSelect(DWORD dwSelectType);
+ virtual HRESULT STDMETHODCALLTYPE Popup(POINTL *ppt, RECTL *prcExclude, MP_POPUPFLAGS
dwFlags);
+ virtual HRESULT STDMETHODCALLTYPE SetSubMenu(IMenuPopup *pmp, BOOL fSet);
// *** IObjectWithSite methods ***
virtual HRESULT STDMETHODCALLTYPE SetSite(IUnknown *pUnkSite);
virtual HRESULT STDMETHODCALLTYPE GetSite(REFIID riid, void **ppvSite);
- // *** IShellMenuCallback methods ***
- virtual HRESULT STDMETHODCALLTYPE CallbackSM(LPSMDATA psmd, UINT uMsg, WPARAM wParam,
LPARAM lParam);
+ // *** IInitializeObject methods ***
+ virtual HRESULT STDMETHODCALLTYPE Initialize();
+
+ // *** IMenuBand methods *** FIXME
+ virtual HRESULT STDMETHODCALLTYPE IsMenuMessage(MSG *pmsg);
+ virtual HRESULT STDMETHODCALLTYPE TranslateMenuMessage(MSG *pmsg, LRESULT *plRet);
-DECLARE_NO_REGISTRY()
-DECLARE_NOT_AGGREGATABLE(CStartMenuCallback)
+DECLARE_REGISTRY_RESOURCEID(IDR_STARTMENU)
+DECLARE_NOT_AGGREGATABLE(CStartMenu)
DECLARE_PROTECT_FINAL_CONSTRUCT()
-BEGIN_COM_MAP(CStartMenuCallback)
+BEGIN_COM_MAP(CStartMenu)
+ COM_INTERFACE_ENTRY_IID(IID_IOleWindow, IOleWindow)
+ COM_INTERFACE_ENTRY_IID(IID_IDeskBar, IDeskBar)
+ COM_INTERFACE_ENTRY_IID(IID_IMenuPopup, IMenuPopup)
COM_INTERFACE_ENTRY_IID(IID_IObjectWithSite, IObjectWithSite)
- COM_INTERFACE_ENTRY_IID(IID_IShellMenuCallback, IShellMenuCallback)
+ COM_INTERFACE_ENTRY_IID(IID_IInitializeObject, IInitializeObject)
+ COM_INTERFACE_ENTRY_IID(IID_IMenuBand, IMenuBand) // FIXME: Win does not export it
END_COM_MAP()
};
class CMenuBandSite :
public CComCoClass<CMenuBandSite, &CLSID_MenuBandSite>,
public CComObjectRootEx<CComMultiThreadModelNoCS>,
+ public IBandSite,
public IDeskBarClient,
+ public IOleCommandTarget,
public IInputObject,
public IInputObjectSite,
public IWinEventHandler,
- public IServiceProvider,
- public IOleCommandTarget,
- public IBandSite
+ public IServiceProvider
{
private:
+ IUnknown **m_pObjects;
+ ULONG m_cObjects;
+
public:
CMenuBandSite();
~CMenuBandSite();
-
+
+ // *** IBandSite methods ***
+ virtual HRESULT STDMETHODCALLTYPE AddBand(IUnknown *punk);
+ virtual HRESULT STDMETHODCALLTYPE EnumBands(UINT uBand, DWORD *pdwBandID);
+ virtual HRESULT STDMETHODCALLTYPE QueryBand(DWORD dwBandID, IDeskBand **ppstb, DWORD
*pdwState, LPWSTR pszName, int cchName);
+ virtual HRESULT STDMETHODCALLTYPE SetBandState(DWORD dwBandID, DWORD dwMask, DWORD
dwState);
+ virtual HRESULT STDMETHODCALLTYPE RemoveBand(DWORD dwBandID);
+ virtual HRESULT STDMETHODCALLTYPE GetBandObject(DWORD dwBandID, REFIID riid, VOID
**ppv);
+ virtual HRESULT STDMETHODCALLTYPE SetBandSiteInfo(const BANDSITEINFO *pbsinfo);
+ virtual HRESULT STDMETHODCALLTYPE GetBandSiteInfo(BANDSITEINFO *pbsinfo);
+
// *** IOleWindow methods ***
virtual HRESULT STDMETHODCALLTYPE GetWindow(HWND *phwnd);
virtual HRESULT STDMETHODCALLTYPE ContextSensitiveHelp(BOOL fEnterMode);
@@ -75,6 +115,10 @@
virtual HRESULT STDMETHODCALLTYPE SetModeDBC(DWORD dwMode);
virtual HRESULT STDMETHODCALLTYPE UIActivateDBC(DWORD dwState);
virtual HRESULT STDMETHODCALLTYPE GetSize(DWORD dwWhich, LPRECT prc);
+
+ // *** IOleCommandTarget methods ***
+ virtual HRESULT STDMETHODCALLTYPE QueryStatus(const GUID *pguidCmdGroup, ULONG cCmds,
OLECMD prgCmds[ ], OLECMDTEXT *pCmdText);
+ virtual HRESULT STDMETHODCALLTYPE Exec(const GUID *pguidCmdGroup, DWORD nCmdID, DWORD
nCmdexecopt, VARIANT *pvaIn, VARIANT *pvaOut);
// *** IInputObject methods ***
virtual HRESULT STDMETHODCALLTYPE UIActivateIO(BOOL fActivate, LPMSG lpMsg);
@@ -91,34 +135,20 @@
// *** IServiceProvider methods ***
virtual HRESULT STDMETHODCALLTYPE QueryService(REFGUID guidService, REFIID riid, void
**ppvObject);
- // *** IOleCommandTarget methods ***
- virtual HRESULT STDMETHODCALLTYPE QueryStatus(const GUID *pguidCmdGroup, ULONG cCmds,
OLECMD prgCmds[ ], OLECMDTEXT *pCmdText);
- virtual HRESULT STDMETHODCALLTYPE Exec(const GUID *pguidCmdGroup, DWORD nCmdID, DWORD
nCmdexecopt, VARIANT *pvaIn, VARIANT *pvaOut);
-
- // *** IBandSite methods ***
- virtual HRESULT STDMETHODCALLTYPE AddBand(IUnknown *punk);
- virtual HRESULT STDMETHODCALLTYPE EnumBands(UINT uBand, DWORD *pdwBandID);
- virtual HRESULT STDMETHODCALLTYPE QueryBand(DWORD dwBandID, IDeskBand **ppstb, DWORD
*pdwState, LPWSTR pszName, int cchName);
- virtual HRESULT STDMETHODCALLTYPE SetBandState(DWORD dwBandID, DWORD dwMask, DWORD
dwState);
- virtual HRESULT STDMETHODCALLTYPE RemoveBand(DWORD dwBandID);
- virtual HRESULT STDMETHODCALLTYPE GetBandObject(DWORD dwBandID, REFIID riid, VOID
**ppv);
- virtual HRESULT STDMETHODCALLTYPE SetBandSiteInfo(const BANDSITEINFO *pbsinfo);
- virtual HRESULT STDMETHODCALLTYPE GetBandSiteInfo(BANDSITEINFO *pbsinfo);
-
DECLARE_REGISTRY_RESOURCEID(IDR_MENUBANDSITE)
DECLARE_NOT_AGGREGATABLE(CMenuBandSite)
DECLARE_PROTECT_FINAL_CONSTRUCT()
BEGIN_COM_MAP(CMenuBandSite)
+ COM_INTERFACE_ENTRY_IID(IID_IBandSite, IBandSite)
COM_INTERFACE_ENTRY_IID(IID_IOleWindow, IOleWindow)
COM_INTERFACE_ENTRY_IID(IID_IDeskBarClient, IDeskBarClient)
+ COM_INTERFACE_ENTRY_IID(IID_IOleCommandTarget, IOleCommandTarget)
COM_INTERFACE_ENTRY_IID(IID_IInputObject, IInputObject)
COM_INTERFACE_ENTRY_IID(IID_IInputObjectSite, IInputObjectSite)
COM_INTERFACE_ENTRY_IID(IID_IWinEventHandler, IWinEventHandler)
COM_INTERFACE_ENTRY_IID(IID_IServiceProvider, IServiceProvider)
- COM_INTERFACE_ENTRY_IID(IID_IOleCommandTarget, IOleCommandTarget)
- COM_INTERFACE_ENTRY_IID(IID_IBandSite, IBandSite)
END_COM_MAP()
};