/* -*- 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__