]> git.saurik.com Git - apple/mdnsresponder.git/blob - Clients/ExplorerPlugin/ExplorerBar.h
mDNSResponder-107.6.tar.gz
[apple/mdnsresponder.git] / Clients / ExplorerPlugin / ExplorerBar.h
1 /* -*- Mode: C; tab-width: 4 -*-
2 *
3 * Copyright (c) 2003-2004 Apple Computer, Inc. All rights reserved.
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16
17 Change History (most recent first):
18
19 $Log: ExplorerBar.h,v $
20 Revision 1.3 2006/08/14 23:24:00 cheshire
21 Re-licensed mDNSResponder daemon source code under Apache License, Version 2.0
22
23 Revision 1.2 2004/07/13 21:24:21 rpantos
24 Fix for <rdar://problem/3701120>.
25
26 Revision 1.1 2004/06/18 04:34:59 rpantos
27 Move to Clients from mDNSWindows
28
29 Revision 1.1 2004/01/30 03:01:56 bradley
30 Explorer Plugin to browse for DNS-SD advertised Web and FTP servers from within Internet Explorer.
31
32 */
33
34 #ifndef __EXPLORER_BAR__
35 #define __EXPLORER_BAR__
36
37 #include "StdAfx.h"
38
39 #include "ExplorerBarWindow.h"
40 #include "ExplorerPlugin.h"
41
42 //===========================================================================================================================
43 // ExplorerBar
44 //===========================================================================================================================
45
46 class ExplorerBar : public IDeskBand,
47 public IInputObject,
48 public IObjectWithSite,
49 public IPersistStream,
50 public IContextMenu
51 {
52 protected:
53
54 DWORD mRefCount;
55 IInputObjectSite * mSite;
56 IWebBrowser2 * mWebBrowser;
57 HWND mParentWindow;
58 BOOL mFocus;
59 DWORD mViewMode;
60 DWORD mBandID;
61 ExplorerBarWindow mWindow;
62
63 public:
64
65 ExplorerBar( void );
66 ~ExplorerBar( void );
67
68 // IUnknown methods
69
70 STDMETHODIMP QueryInterface( REFIID inID, LPVOID *outResult );
71 STDMETHODIMP_( DWORD ) AddRef( void );
72 STDMETHODIMP_( DWORD ) Release( void );
73
74 // IOleWindow methods
75
76 STDMETHOD( GetWindow )( HWND *outWindow );
77 STDMETHOD( ContextSensitiveHelp )( BOOL inEnterMode );
78
79 // IDockingWindow methods
80
81 STDMETHOD( ShowDW )( BOOL inShow );
82 STDMETHOD( CloseDW )( DWORD inReserved );
83 STDMETHOD( ResizeBorderDW )( LPCRECT inBorder, IUnknown *inPunkSite, BOOL inReserved );
84
85 // IDeskBand methods
86
87 STDMETHOD( GetBandInfo )( DWORD inBandID, DWORD inViewMode, DESKBANDINFO *outInfo );
88
89 // IInputObject methods
90
91 STDMETHOD( UIActivateIO )( BOOL inActivate, LPMSG inMsg );
92 STDMETHOD( HasFocusIO )( void );
93 STDMETHOD( TranslateAcceleratorIO )( LPMSG inMsg );
94
95 // IObjectWithSite methods
96
97 STDMETHOD( SetSite )( IUnknown *inPunkSite );
98 STDMETHOD( GetSite )( REFIID inID, LPVOID *outResult );
99
100 // IPersistStream methods
101
102 STDMETHOD( GetClassID )( LPCLSID outClassID );
103 STDMETHOD( IsDirty )( void );
104 STDMETHOD( Load )( LPSTREAM inStream );
105 STDMETHOD( Save )( LPSTREAM inStream, BOOL inClearDirty );
106 STDMETHOD( GetSizeMax )( ULARGE_INTEGER *outSizeMax );
107
108 // IContextMenu methods
109
110 STDMETHOD( QueryContextMenu )( HMENU hContextMenu, UINT iContextMenuFirstItem, UINT idCmdFirst, UINT idCmdLast, UINT uFlags );
111 STDMETHOD( GetCommandString )( UINT idCmd, UINT uType, UINT* pwReserved, LPSTR pszName, UINT cchMax );
112 STDMETHOD( InvokeCommand )( LPCMINVOKECOMMANDINFO lpici );
113
114 // Other
115
116 OSStatus SetupWindow( void );
117 OSStatus GoToURL( const CString &inURL );
118 };
119
120 #endif // __EXPLORER_BAR__