summaryrefslogtreecommitdiffstats
path: root/mDNSResponder/Clients/ExplorerPlugin/ExplorerBar.h
blob: 01d1beeeaa40db65575aceb6c1440fd5650c8a27 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
/* -*- 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__