mirror of
https://github.com/reactos/reactos.git
synced 2024-10-30 03:27:31 +00:00
bb297bc351
For simplicity and short typing. JIRA issue: CORE-19469 - Replace "virtual HRESULT STDMETHODCALLTYPE m" with "STDMETHOD(m)" (m is a method name). - Replace "virtual t STDMETHODCALLTYPE m" with "STDMETHOD_(t, m)" (t is a type. m is a method name). - Use "override" keyword as possible.
209 lines
11 KiB
C++
209 lines
11 KiB
C++
/*
|
|
* ReactOS Explorer
|
|
*
|
|
* Copyright 2009 Andrew Hill <ash77@reactos.org>
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 2.1 of the License, or (at your option) any later version.
|
|
*
|
|
* This library is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with this library; if not, write to the Free Software
|
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
class CCommonBrowser :
|
|
public CComCoClass<CCommonBrowser, &CLSID_CCommonBrowser>,
|
|
public CComObjectRootEx<CComMultiThreadModelNoCS>,
|
|
public IShellBrowser,
|
|
public IBrowserService3,
|
|
public IServiceProvider,
|
|
public IOleCommandTarget,
|
|
public IDockingWindowSite,
|
|
public IDockingWindowFrame,
|
|
public IInputObjectSite,
|
|
public IDropTarget,
|
|
public IShellBrowserService
|
|
{
|
|
private:
|
|
public:
|
|
CCommonBrowser();
|
|
~CCommonBrowser();
|
|
|
|
// *** IServiceProvider methods ***
|
|
STDMETHOD(QueryService)(REFGUID guidService, REFIID riid, void **ppvObject) override;
|
|
|
|
// *** IOleCommandTarget methods ***
|
|
STDMETHOD(QueryStatus)(const GUID *pguidCmdGroup, ULONG cCmds, OLECMD prgCmds[ ], OLECMDTEXT *pCmdText) override;
|
|
STDMETHOD(Exec)(const GUID *pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANT *pvaIn, VARIANT *pvaOut) override;
|
|
|
|
// *** IBrowserService methods ***
|
|
STDMETHOD(GetParentSite)(IOleInPlaceSite **ppipsite) override;
|
|
STDMETHOD(SetTitle)(IShellView *psv, LPCWSTR pszName) override;
|
|
STDMETHOD(GetTitle)(IShellView *psv, LPWSTR pszName, DWORD cchName) override;
|
|
STDMETHOD(GetOleObject)(IOleObject **ppobjv) override;
|
|
STDMETHOD(GetTravelLog)(ITravelLog **pptl) override;
|
|
STDMETHOD(ShowControlWindow)(UINT id, BOOL fShow) override;
|
|
STDMETHOD(IsControlWindowShown)(UINT id, BOOL *pfShown) override;
|
|
STDMETHOD(IEGetDisplayName)(LPCITEMIDLIST pidl, LPWSTR pwszName, UINT uFlags) override;
|
|
STDMETHOD(IEParseDisplayName)(UINT uiCP, LPCWSTR pwszPath, LPITEMIDLIST *ppidlOut) override;
|
|
STDMETHOD(DisplayParseError)(HRESULT hres, LPCWSTR pwszPath) override;
|
|
STDMETHOD(NavigateToPidl)(LPCITEMIDLIST pidl, DWORD grfHLNF) override;
|
|
STDMETHOD(SetNavigateState)(BNSTATE bnstate) override;
|
|
STDMETHOD(GetNavigateState)(BNSTATE *pbnstate) override;
|
|
STDMETHOD(NotifyRedirect)(IShellView *psv, LPCITEMIDLIST pidl, BOOL *pfDidBrowse) override;
|
|
STDMETHOD(UpdateWindowList)() override;
|
|
STDMETHOD(UpdateBackForwardState)() override;
|
|
STDMETHOD(SetFlags)(DWORD dwFlags, DWORD dwFlagMask) override;
|
|
STDMETHOD(GetFlags)(DWORD *pdwFlags) override;
|
|
STDMETHOD(CanNavigateNow)() override;
|
|
STDMETHOD(GetPidl)(LPITEMIDLIST *ppidl) override;
|
|
STDMETHOD(SetReferrer)(LPCITEMIDLIST pidl) override;
|
|
STDMETHOD_(DWORD, GetBrowserIndex)() override;
|
|
STDMETHOD(GetBrowserByIndex)(DWORD dwID, IUnknown **ppunk) override;
|
|
STDMETHOD(GetHistoryObject)(IOleObject **ppole, IStream **pstm, IBindCtx **ppbc) override;
|
|
STDMETHOD(SetHistoryObject)(IOleObject *pole, BOOL fIsLocalAnchor) override;
|
|
STDMETHOD(CacheOLEServer)(IOleObject *pole) override;
|
|
STDMETHOD(GetSetCodePage)(VARIANT *pvarIn, VARIANT *pvarOut) override;
|
|
STDMETHOD(OnHttpEquiv)(IShellView *psv, BOOL fDone, VARIANT *pvarargIn, VARIANT *pvarargOut) override;
|
|
STDMETHOD(GetPalette)(HPALETTE *hpal) override;
|
|
STDMETHOD(RegisterWindow)(BOOL fForceRegister, int swc) override;
|
|
|
|
// *** IBrowserService2 methods ***
|
|
STDMETHOD_(LRESULT, WndProcBS)(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) override;
|
|
STDMETHOD(SetAsDefFolderSettings)() override;
|
|
STDMETHOD(GetViewRect)(RECT *prc) override;
|
|
STDMETHOD(OnSize)(WPARAM wParam) override;
|
|
STDMETHOD(OnCreate)(struct tagCREATESTRUCTW *pcs) override;
|
|
STDMETHOD_(LRESULT, OnCommand)(WPARAM wParam, LPARAM lParam) override;
|
|
STDMETHOD(OnDestroy)() override;
|
|
STDMETHOD_(LRESULT, OnNotify)(struct tagNMHDR *pnm) override;
|
|
STDMETHOD(OnSetFocus)() override;
|
|
STDMETHOD(OnFrameWindowActivateBS)(BOOL fActive) override;
|
|
STDMETHOD(ReleaseShellView)() override;
|
|
STDMETHOD(ActivatePendingView)() override;
|
|
STDMETHOD(CreateViewWindow)(IShellView *psvNew, IShellView *psvOld, LPRECT prcView, HWND *phwnd) override;
|
|
STDMETHOD(CreateBrowserPropSheetExt)(REFIID riid, void **ppv) override;
|
|
STDMETHOD(GetViewWindow)(HWND *phwndView) override;
|
|
STDMETHOD(GetBaseBrowserData)(LPCBASEBROWSERDATA *pbbd) override;
|
|
STDMETHOD_(LPBASEBROWSERDATA, PutBaseBrowserData)() override;
|
|
STDMETHOD(InitializeTravelLog)(ITravelLog *ptl, DWORD dw) override;
|
|
STDMETHOD(SetTopBrowser)() override;
|
|
STDMETHOD(Offline)(int iCmd) override;
|
|
STDMETHOD(AllowViewResize)(BOOL f) override;
|
|
STDMETHOD(SetActivateState)(UINT u) override;
|
|
STDMETHOD(UpdateSecureLockIcon)(int eSecureLock) override;
|
|
STDMETHOD(InitializeDownloadManager)() override;
|
|
STDMETHOD(InitializeTransitionSite)() override;
|
|
STDMETHOD(_Initialize)(HWND hwnd, IUnknown *pauto) override;
|
|
STDMETHOD(_CancelPendingNavigationAsync)() override;
|
|
STDMETHOD(_CancelPendingView)() override;
|
|
STDMETHOD(_MaySaveChanges)() override;
|
|
STDMETHOD(_PauseOrResumeView)(BOOL fPaused) override;
|
|
STDMETHOD(_DisableModeless)() override;
|
|
STDMETHOD(_NavigateToPidl)(LPCITEMIDLIST pidl, DWORD grfHLNF, DWORD dwFlags) override;
|
|
STDMETHOD(_TryShell2Rename)(IShellView *psv, LPCITEMIDLIST pidlNew) override;
|
|
STDMETHOD(_SwitchActivationNow)() override;
|
|
STDMETHOD(_ExecChildren)(IUnknown *punkBar, BOOL fBroadcast, const GUID *pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANTARG *pvarargIn, VARIANTARG *pvarargOut) override;
|
|
STDMETHOD(_SendChildren)(HWND hwndBar, BOOL fBroadcast, UINT uMsg, WPARAM wParam, LPARAM lParam) override;
|
|
STDMETHOD(GetFolderSetData)(struct tagFolderSetData *pfsd) override;
|
|
STDMETHOD(_OnFocusChange)(UINT itb) override;
|
|
STDMETHOD(v_ShowHideChildWindows)(BOOL fChildOnly) override;
|
|
STDMETHOD_(UINT, _get_itbLastFocus)() override;
|
|
STDMETHOD(_put_itbLastFocus)(UINT itbLastFocus) override;
|
|
STDMETHOD(_UIActivateView)(UINT uState) override;
|
|
STDMETHOD(_GetViewBorderRect)(RECT *prc) override;
|
|
STDMETHOD(_UpdateViewRectSize)() override;
|
|
STDMETHOD(_ResizeNextBorder)(UINT itb) override;
|
|
STDMETHOD(_ResizeView)() override;
|
|
STDMETHOD(_GetEffectiveClientArea)(LPRECT lprectBorder, HMONITOR hmon) override;
|
|
STDMETHOD_(IStream *, v_GetViewStream)(LPCITEMIDLIST pidl, DWORD grfMode, LPCWSTR pwszName) override;
|
|
STDMETHOD_(LRESULT, ForwardViewMsg)(UINT uMsg, WPARAM wParam, LPARAM lParam) override;
|
|
STDMETHOD(SetAcceleratorMenu)(HACCEL hacc) override;
|
|
STDMETHOD_(int, _GetToolbarCount)() override;
|
|
STDMETHOD_(LPTOOLBARITEM, _GetToolbarItem)(int itb) override;
|
|
STDMETHOD(_SaveToolbars)(IStream *pstm) override;
|
|
STDMETHOD(_LoadToolbars)(IStream *pstm) override;
|
|
STDMETHOD(_CloseAndReleaseToolbars)(BOOL fClose) override;
|
|
STDMETHOD(v_MayGetNextToolbarFocus)(LPMSG lpMsg, UINT itbNext, int citb, LPTOOLBARITEM *pptbi, HWND *phwnd) override;
|
|
STDMETHOD(_ResizeNextBorderHelper)(UINT itb, BOOL bUseHmonitor) override;
|
|
STDMETHOD_(UINT, _FindTBar)(IUnknown *punkSrc) override;
|
|
STDMETHOD(_SetFocus)(LPTOOLBARITEM ptbi, HWND hwnd, LPMSG lpMsg) override;
|
|
STDMETHOD(v_MayTranslateAccelerator)(MSG *pmsg) override;
|
|
STDMETHOD(_GetBorderDWHelper)(IUnknown *punkSrc, LPRECT lprectBorder, BOOL bUseHmonitor) override;
|
|
STDMETHOD(v_CheckZoneCrossing)(LPCITEMIDLIST pidl) override;
|
|
|
|
// *** IBrowserService3 methods ***
|
|
STDMETHOD(_PositionViewWindow)(HWND, RECT *) override;
|
|
STDMETHOD(IEParseDisplayNameEx)(UINT, PCWSTR, DWORD, LPITEMIDLIST *) override;
|
|
|
|
// *** IShellBrowser methods ***
|
|
STDMETHOD(InsertMenusSB)(HMENU hmenuShared, LPOLEMENUGROUPWIDTHS lpMenuWidths) override;
|
|
STDMETHOD(SetMenuSB)(HMENU hmenuShared, HOLEMENU holemenuRes, HWND hwndActiveObject) override;
|
|
STDMETHOD(RemoveMenusSB)(HMENU hmenuShared) override;
|
|
STDMETHOD(SetStatusTextSB)(LPCOLESTR pszStatusText) override;
|
|
STDMETHOD(EnableModelessSB)(BOOL fEnable) override;
|
|
STDMETHOD(TranslateAcceleratorSB)(MSG *pmsg, WORD wID) override;
|
|
STDMETHOD(BrowseObject)(LPCITEMIDLIST pidl, UINT wFlags) override;
|
|
STDMETHOD(GetViewStateStream)(DWORD grfMode, IStream **ppStrm) override;
|
|
STDMETHOD(GetControlWindow)(UINT id, HWND *lphwnd) override;
|
|
STDMETHOD(SendControlMsg)(UINT id, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT *pret) override;
|
|
STDMETHOD(QueryActiveShellView)(struct IShellView **ppshv) override;
|
|
STDMETHOD(OnViewWindowActive)(struct IShellView *ppshv) override;
|
|
STDMETHOD(SetToolbarItems)(LPTBBUTTON lpButtons, UINT nButtons, UINT uFlags) override;
|
|
|
|
// *** IShellBowserService methods ***
|
|
STDMETHOD(GetPropertyBag)(long flags, REFIID riid, void **ppvObject) override;
|
|
|
|
// *** IOleWindow methods ***
|
|
STDMETHOD(GetWindow)(HWND *lphwnd) override;
|
|
STDMETHOD(ContextSensitiveHelp)(BOOL fEnterMode) override;
|
|
|
|
// *** IDockingWindowSite methods ***
|
|
STDMETHOD(GetBorderDW)(IUnknown* punkObj, LPRECT prcBorder) override;
|
|
STDMETHOD(RequestBorderSpaceDW)(IUnknown* punkObj, LPCBORDERWIDTHS pbw) override;
|
|
STDMETHOD(SetBorderSpaceDW)(IUnknown* punkObj, LPCBORDERWIDTHS pbw) override;
|
|
|
|
// *** IDockingWindowFrame methods ***
|
|
STDMETHOD(AddToolbar)(IUnknown *punkSrc, LPCWSTR pwszItem, DWORD dwAddFlags) override;
|
|
STDMETHOD(RemoveToolbar)(IUnknown *punkSrc, DWORD dwRemoveFlags) override;
|
|
STDMETHOD(FindToolbar)(LPCWSTR pwszItem, REFIID riid, void **ppv) override;
|
|
|
|
// *** IInputObjectSite specific methods ***
|
|
STDMETHOD(OnFocusChangeIS)(IUnknown *punkObj, BOOL fSetFocus) override;
|
|
|
|
// *** IDropTarget methods ***
|
|
STDMETHOD(DragEnter)(IDataObject *pDataObj, DWORD grfKeyState, POINTL pt, DWORD *pdwEffect) override;
|
|
STDMETHOD(DragOver)(DWORD grfKeyState, POINTL pt, DWORD *pdwEffect) override;
|
|
STDMETHOD(DragLeave)() override;
|
|
STDMETHOD(Drop)(IDataObject *pDataObj, DWORD grfKeyState, POINTL pt, DWORD *pdwEffect) override;
|
|
|
|
DECLARE_REGISTRY_RESOURCEID(IDR_COMMONBROWSER)
|
|
DECLARE_AGGREGATABLE(CCommonBrowser)
|
|
|
|
DECLARE_PROTECT_FINAL_CONSTRUCT()
|
|
|
|
BEGIN_COM_MAP(CCommonBrowser)
|
|
COM_INTERFACE_ENTRY_IID(IID_IServiceProvider, IServiceProvider)
|
|
COM_INTERFACE_ENTRY_IID(IID_IOleCommandTarget, IOleCommandTarget)
|
|
COM_INTERFACE_ENTRY_IID(IID_IBrowserService, IBrowserService)
|
|
COM_INTERFACE_ENTRY_IID(IID_IBrowserService2, IBrowserService2)
|
|
COM_INTERFACE_ENTRY_IID(IID_IBrowserService3, IBrowserService3)
|
|
COM_INTERFACE_ENTRY_IID(IID_IShellBrowser, IShellBrowser)
|
|
COM_INTERFACE_ENTRY_IID(IID_IShellBrowserService, IShellBrowserService)
|
|
COM_INTERFACE_ENTRY2_IID(IID_IOleWindow, IOleWindow, IDockingWindowSite)
|
|
COM_INTERFACE_ENTRY_IID(IID_IDockingWindowSite, IDockingWindowSite)
|
|
COM_INTERFACE_ENTRY_IID(IID_IDockingWindowFrame, IDockingWindowFrame)
|
|
COM_INTERFACE_ENTRY_IID(IID_IInputObjectSite, IInputObjectSite)
|
|
COM_INTERFACE_ENTRY_IID(IID_IDropTarget, IDropTarget)
|
|
END_COM_MAP()
|
|
};
|