Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenaddresseditbox.cpp
Go to the documentation of this file.
00001 /* 00002 * ReactOS Explorer 00003 * 00004 * Copyright 2009 Andrew Hill <ash77 at domain reactos.org> 00005 * 00006 * This library is free software; you can redistribute it and/or 00007 * modify it under the terms of the GNU Lesser General Public 00008 * License as published by the Free Software Foundation; either 00009 * version 2.1 of the License, or (at your option) any later version. 00010 * 00011 * This library is distributed in the hope that it will be useful, 00012 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00014 * Lesser General Public License for more details. 00015 * 00016 * You should have received a copy of the GNU Lesser General Public 00017 * License along with this library; if not, write to the Free Software 00018 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00019 */ 00020 00021 /* 00022 This class handles the combo box of the address band. 00023 */ 00024 #include "precomp.h" 00025 /* 00026 TODO: 00027 Add auto completion support 00028 Subclass windows in Init method 00029 Connect to browser connection point 00030 Handle navigation complete messages to set edit box text 00031 Handle listbox dropdown message and fill contents 00032 Add drag and drop of icon in edit box 00033 Handle enter in edit box to browse to typed path 00034 Handle change notifies to update appropriately 00035 Add handling of enter in edit box 00036 Fix so selection in combo listbox navigates 00037 Fix so editing text and typing enter navigates 00038 */ 00039 00040 CAddressEditBox::CAddressEditBox() : 00041 fEditWindow(NULL, this, 1), 00042 fComboBoxExWindow(NULL, this, 2) 00043 { 00044 } 00045 00046 CAddressEditBox::~CAddressEditBox() 00047 { 00048 } 00049 00050 HRESULT STDMETHODCALLTYPE CAddressEditBox::SetOwner(IUnknown *) 00051 { 00052 // connect to browser connection point 00053 return E_NOTIMPL; 00054 } 00055 00056 HRESULT STDMETHODCALLTYPE CAddressEditBox::FileSysChange(long param8, long paramC) 00057 { 00058 return E_NOTIMPL; 00059 } 00060 00061 HRESULT STDMETHODCALLTYPE CAddressEditBox::Refresh(long param8) 00062 { 00063 return E_NOTIMPL; 00064 } 00065 00066 HRESULT STDMETHODCALLTYPE CAddressEditBox::Init(HWND comboboxEx, HWND editControl, long param14, IUnknown *param18) 00067 { 00068 fComboBoxExWindow.SubclassWindow(comboboxEx); 00069 fEditWindow.SubclassWindow(editControl); 00070 return S_OK; 00071 } 00072 00073 HRESULT STDMETHODCALLTYPE CAddressEditBox::SetCurrentDir(long paramC) 00074 { 00075 return E_NOTIMPL; 00076 } 00077 00078 HRESULT STDMETHODCALLTYPE CAddressEditBox::ParseNow(long paramC) 00079 { 00080 return E_NOTIMPL; 00081 } 00082 00083 HRESULT STDMETHODCALLTYPE CAddressEditBox::Execute(long paramC) 00084 { 00085 return E_NOTIMPL; 00086 } 00087 00088 HRESULT STDMETHODCALLTYPE CAddressEditBox::Save(long paramC) 00089 { 00090 return E_NOTIMPL; 00091 } 00092 00093 HRESULT STDMETHODCALLTYPE CAddressEditBox::OnWinEvent(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT *theResult) 00094 { 00095 // handle fill of listbox here 00096 return E_NOTIMPL; 00097 } 00098 00099 HRESULT STDMETHODCALLTYPE CAddressEditBox::IsWindowOwner(HWND hWnd) 00100 { 00101 return E_NOTIMPL; 00102 } 00103 00104 HRESULT STDMETHODCALLTYPE CAddressEditBox::QueryStatus(const GUID *pguidCmdGroup, ULONG cCmds, OLECMD prgCmds[ ], OLECMDTEXT *pCmdText) 00105 { 00106 return E_NOTIMPL; 00107 } 00108 00109 HRESULT STDMETHODCALLTYPE CAddressEditBox::Exec(const GUID *pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANT *pvaIn, VARIANT *pvaOut) 00110 { 00111 return E_NOTIMPL; 00112 } 00113 00114 HRESULT STDMETHODCALLTYPE CAddressEditBox::GetTypeInfoCount(UINT *pctinfo) 00115 { 00116 return E_NOTIMPL; 00117 } 00118 00119 HRESULT STDMETHODCALLTYPE CAddressEditBox::GetTypeInfo(UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo) 00120 { 00121 return E_NOTIMPL; 00122 } 00123 00124 HRESULT STDMETHODCALLTYPE CAddressEditBox::GetIDsOfNames(REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId) 00125 { 00126 return E_NOTIMPL; 00127 } 00128 00129 HRESULT STDMETHODCALLTYPE CAddressEditBox::Invoke(DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr) 00130 { 00131 // on navigate complete, change edit section of combobox 00132 return E_NOTIMPL; 00133 } 00134 00135 HRESULT STDMETHODCALLTYPE CAddressEditBox::GetClassID(CLSID *pClassID) 00136 { 00137 if (pClassID == NULL) 00138 return E_POINTER; 00139 *pClassID = CLSID_AddressEditBox; 00140 return S_OK; 00141 } 00142 00143 HRESULT STDMETHODCALLTYPE CAddressEditBox::IsDirty() 00144 { 00145 return E_NOTIMPL; 00146 } 00147 00148 HRESULT STDMETHODCALLTYPE CAddressEditBox::Load(IStream *pStm) 00149 { 00150 return E_NOTIMPL; 00151 } 00152 00153 HRESULT STDMETHODCALLTYPE CAddressEditBox::Save(IStream *pStm, BOOL fClearDirty) 00154 { 00155 return E_NOTIMPL; 00156 } 00157 00158 HRESULT STDMETHODCALLTYPE CAddressEditBox::GetSizeMax(ULARGE_INTEGER *pcbSize) 00159 { 00160 return E_NOTIMPL; 00161 } 00162 00163 HRESULT CreateAddressEditBox(REFIID riid, void **ppv) 00164 { 00165 CComObject<CAddressEditBox> *theMenuBar; 00166 HRESULT hResult; 00167 00168 if (ppv == NULL) 00169 return E_POINTER; 00170 *ppv = NULL; 00171 ATLTRY (theMenuBar = new CComObject<CAddressEditBox>); 00172 if (theMenuBar == NULL) 00173 return E_OUTOFMEMORY; 00174 hResult = theMenuBar->QueryInterface (riid, (void **)ppv); 00175 if (FAILED (hResult)) 00176 { 00177 delete theMenuBar; 00178 return hResult; 00179 } 00180 return S_OK; 00181 } Generated on Mon May 28 2012 04:22:30 for ReactOS by
1.7.6.1
|