/* -*- Mode: C; tab-width: 4 -*- * * Copyright (c) 2003-2004 Apple Computer, Inc. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef __EXPLORER_BAR__ #define __EXPLORER_BAR__ #include "StdAfx.h" #include "ExplorerBarWindow.h" #include "ExplorerPlugin.h" //=========================================================================================================================== // ExplorerBar //=========================================================================================================================== class ExplorerBar : public IDeskBand, public IInputObject, public IObjectWithSite, public IPersistStream, public IContextMenu { protected: DWORD mRefCount; IInputObjectSite * mSite; IWebBrowser2 * mWebBrowser; HWND mParentWindow; BOOL mFocus; DWORD mViewMode; DWORD mBandID; ExplorerBarWindow mWindow; public: ExplorerBar( void ); ~ExplorerBar( void ); // IUnknown methods STDMETHODIMP QueryInterface( REFIID inID, LPVOID *outResult ); STDMETHODIMP_( DWORD ) AddRef( void ); STDMETHODIMP_( DWORD ) Release( void ); // IOleWindow methods STDMETHOD( GetWindow ) ( HWND *outWindow ); STDMETHOD( ContextSensitiveHelp ) ( BOOL inEnterMode ); // IDockingWindow methods STDMETHOD( ShowDW ) ( BOOL inShow ); STDMETHOD( CloseDW ) ( DWORD inReserved ); STDMETHOD( ResizeBorderDW ) ( LPCRECT inBorder, IUnknown *inPunkSite, BOOL inReserved ); // IDeskBand methods STDMETHOD( GetBandInfo ) ( DWORD inBandID, DWORD inViewMode, DESKBANDINFO *outInfo ); // IInputObject methods STDMETHOD( UIActivateIO ) ( BOOL inActivate, LPMSG inMsg ); STDMETHOD( HasFocusIO ) ( void ); STDMETHOD( TranslateAcceleratorIO ) ( LPMSG inMsg ); // IObjectWithSite methods STDMETHOD( SetSite ) ( IUnknown *inPunkSite ); STDMETHOD( GetSite ) ( REFIID inID, LPVOID *outResult ); // IPersistStream methods STDMETHOD( GetClassID ) ( LPCLSID outClassID ); STDMETHOD( IsDirty ) ( void ); STDMETHOD( Load ) ( LPSTREAM inStream ); STDMETHOD( Save ) ( LPSTREAM inStream, BOOL inClearDirty ); STDMETHOD( GetSizeMax ) ( ULARGE_INTEGER *outSizeMax ); // IContextMenu methods STDMETHOD( QueryContextMenu ) ( HMENU hContextMenu, UINT iContextMenuFirstItem, UINT idCmdFirst, UINT idCmdLast, UINT uFlags ); STDMETHOD( GetCommandString ) ( UINT_PTR idCmd, UINT uType, UINT* pwReserved, LPSTR pszName, UINT cchMax ); STDMETHOD( InvokeCommand ) ( LPCMINVOKECOMMANDINFO lpici ); // Other OSStatus SetupWindow( void ); OSStatus GoToURL( const CString &inURL ); }; #endif // __EXPLORER_BAR__