ReactOS 0.4.16-dev-1133-g947c03e
CAddressEditBox Class Reference

#include <addresseditbox.h>

Inheritance diagram for CAddressEditBox:
Collaboration diagram for CAddressEditBox:

Public Member Functions

 CAddressEditBox ()
 
 ~CAddressEditBox ()
 
STDMETHOD() SetOwner (IUnknown *) override
 
STDMETHOD() FileSysChange (long param8, long paramC) override
 
STDMETHOD() Refresh (long param8) override
 
STDMETHOD() Init (HWND comboboxEx, HWND editControl, long param14, IUnknown *param18) override
 
STDMETHOD() SetCurrentDir (PCWSTR pszPath) override
 
STDMETHOD() ParseNow (long paramC) override
 
STDMETHOD() Execute (long paramC) override
 
STDMETHOD() Save (long paramC) override
 
STDMETHOD() OnWinEvent (HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT *theResult) override
 
STDMETHOD() IsWindowOwner (HWND hWnd) override
 
STDMETHOD() QueryStatus (const GUID *pguidCmdGroup, ULONG cCmds, OLECMD prgCmds[], OLECMDTEXT *pCmdText) override
 
STDMETHOD() Exec (const GUID *pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANT *pvaIn, VARIANT *pvaOut) override
 
STDMETHOD() GetTypeInfoCount (UINT *pctinfo) override
 
STDMETHOD() GetTypeInfo (UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo) override
 
STDMETHOD() GetIDsOfNames (REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId) override
 
STDMETHOD() Invoke (DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr) override
 
STDMETHOD() GetClassID (CLSID *pClassID) override
 
STDMETHOD() IsDirty () override
 
STDMETHOD() Load (IStream *pStm) override
 
STDMETHOD() Save (IStream *pStm, BOOL fClearDirty) override
 
STDMETHOD() GetSizeMax (ULARGE_INTEGER *pcbSize) override
 
LRESULT OnSettingChange (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
 
- Public Member Functions inherited from ATL::CComObjectRootEx< CComMultiThreadModelNoCS >
 ~CComObjectRootEx ()
 
ULONG InternalAddRef ()
 
ULONG InternalRelease ()
 
void Lock ()
 
void Unlock ()
 
HRESULT _AtlInitialConstruct ()
 
- Public Member Functions inherited from ATL::CComObjectRootBase
 CComObjectRootBase ()
 
 ~CComObjectRootBase ()
 
void SetVoid (void *)
 
HRESULT _AtlFinalConstruct ()
 
HRESULT FinalConstruct ()
 
void InternalFinalConstructAddRef ()
 
void InternalFinalConstructRelease ()
 
void FinalRelease ()
 
- Public Member Functions inherited from IDispatch
HRESULT GetTypeInfoCount ([out] UINT *pctinfo)
 
HRESULT GetTypeInfo ([in] UINT iTInfo, [in] LCID lcid, [out] ITypeInfo **ppTInfo)
 
HRESULT GetIDsOfNames ([in] REFIID riid, [in, size_is(cNames)] LPOLESTR *rgszNames, [in] UINT cNames, [in] LCID lcid, [out, size_is(cNames)] DISPID *rgDispId)
 
HRESULT Invoke ([in] DISPID dispIdMember, [in] REFIID riid, [in] LCID lcid, [in] WORD wFlags, [in, out] DISPPARAMS *pDispParams, [out] VARIANT *pVarResult, [out] EXCEPINFO *pExcepInfo, [out] UINT *puArgErr)
 
HRESULT RemoteInvoke ([in] DISPID dispIdMember, [in] REFIID riid, [in] LCID lcid, [in] DWORD dwFlags, [in] DISPPARAMS *pDispParams, [out] VARIANT *pVarResult, [out] EXCEPINFO *pExcepInfo, [out] UINT *pArgErr, [in] UINT cVarRef, [in, size_is(cVarRef)] UINT *rgVarRefIdx, [in, out, size_is(cVarRef)] VARIANTARG *rgVarRef)
 
- Public Member Functions inherited from IUnknown
HRESULT QueryInterface ([in] REFIID riid, [out, iid_is(riid)] void **ppvObject)
 
ULONG AddRef ()
 
ULONG Release ()
 
HRESULT QueryStatus ([in, unique] const GUID *pguidCmdGroup, [in] ULONG cCmds, [in, out, size_is(cCmds)] OLECMD prgCmds[], [in, out, unique] OLECMDTEXT *pCmdText)
 
HRESULT Exec ([in, unique] const GUID *pguidCmdGroup, [in] DWORD nCmdID, [in] DWORD nCmdexecopt, [in, unique] VARIANT *pvaIn, [in, out, unique] VARIANT *pvaOut)
 
HRESULT IsDirty ()
 
HRESULT Load ([in, unique] IStream *pStm)
 
HRESULT Save ([in, unique] IStream *pStm, [in] BOOL fClearDirty)
 
HRESULT GetSizeMax ([out] ULARGE_INTEGER *pcbSize)
 
HRESULT GetClassID ([out] CLSID *pClassID)
 
HRESULT SetOwner ([in] IUnknown *pUnk)
 

Private Member Functions

void PopulateComboBox (LPITEMIDLIST pidl)
 
void AddComboBoxItem (LPITEMIDLIST pidl, int index, int indent)
 
void FillOneLevel (int index, int levelIndent, int indent)
 
LPITEMIDLIST GetItemData (int index)
 
HRESULT STDMETHODCALLTYPE ShowFileNotFoundError (HRESULT hRet)
 
HRESULT GetAbsolutePidl (PIDLIST_ABSOLUTE *pAbsolutePIDL)
 
BOOL ExecuteCommandLine ()
 
BOOL GetComboBoxText (CComHeapPtr< WCHAR > &pszText)
 
HRESULT RefreshAddress ()
 

Private Attributes

CContainedWindow fCombobox
 
CContainedWindow fEditWindow
 
DWORD fAdviseCookie
 
CComPtr< IUnknownfSite
 
CComHeapPtr< ITEMIDLIST_ABSOLUTEm_pidlLastParsed
 
HWND hComboBoxEx
 

Additional Inherited Members

- Public Types inherited from IDispatch
typedef IDispatchLPDISPATCH
 
- Public Types inherited from IUnknown
typedef IUnknownLPUNKNOWN
 
- Public Types inherited from IOleCommandTarget
enum  OLECMDF {
  OLECMDF_SUPPORTED = 0x1 , OLECMDF_ENABLED = 0x2 , OLECMDF_LATCHED = 0x4 , OLECMDF_NINCHED = 0x8 ,
  OLECMDF_INVISIBLE = 0x10 , OLECMDF_DEFHIDEONCTXTMENU = 0x20
}
 
enum  OLECMDTEXTF { OLECMDTEXTF_NONE = 0 , OLECMDTEXTF_NAME = 1 , OLECMDTEXTF_STATUS = 2 }
 
enum  OLECMDEXECOPT { OLECMDEXECOPT_DODEFAULT = 0 , OLECMDEXECOPT_PROMPTUSER = 1 , OLECMDEXECOPT_DONTPROMPTUSER = 2 , OLECMDEXECOPT_SHOWHELP = 3 }
 
enum  OLECMDID {
  OLECMDID_OPEN = 1 , OLECMDID_NEW = 2 , OLECMDID_SAVE = 3 , OLECMDID_SAVEAS = 4 ,
  OLECMDID_SAVECOPYAS = 5 , OLECMDID_PRINT = 6 , OLECMDID_PRINTPREVIEW = 7 , OLECMDID_PAGESETUP = 8 ,
  OLECMDID_SPELL = 9 , OLECMDID_PROPERTIES = 10 , OLECMDID_CUT = 11 , OLECMDID_COPY = 12 ,
  OLECMDID_PASTE = 13 , OLECMDID_PASTESPECIAL = 14 , OLECMDID_UNDO = 15 , OLECMDID_REDO = 16 ,
  OLECMDID_SELECTALL = 17 , OLECMDID_CLEARSELECTION = 18 , OLECMDID_ZOOM = 19 , OLECMDID_GETZOOMRANGE = 20 ,
  OLECMDID_UPDATECOMMANDS = 21 , OLECMDID_REFRESH = 22 , OLECMDID_STOP = 23 , OLECMDID_HIDETOOLBARS = 24 ,
  OLECMDID_SETPROGRESSMAX = 25 , OLECMDID_SETPROGRESSPOS = 26 , OLECMDID_SETPROGRESSTEXT = 27 , OLECMDID_SETTITLE = 28 ,
  OLECMDID_SETDOWNLOADSTATE = 29 , OLECMDID_STOPDOWNLOAD = 30 , OLECMDID_ONTOOLBARACTIVATED = 31 , OLECMDID_FIND = 32 ,
  OLECMDID_DELETE = 33 , OLECMDID_HTTPEQUIV = 34 , OLECMDID_HTTPEQUIV_DONE = 35 , OLECMDID_ENABLE_INTERACTION = 36 ,
  OLECMDID_ONUNLOAD = 37 , OLECMDID_PROPERTYBAG2 = 38 , OLECMDID_PREREFRESH = 39 , OLECMDID_SHOWSCRIPTERROR = 40 ,
  OLECMDID_SHOWMESSAGE = 41 , OLECMDID_SHOWFIND = 42 , OLECMDID_SHOWPAGESETUP = 43 , OLECMDID_SHOWPRINT = 44 ,
  OLECMDID_CLOSE = 45 , OLECMDID_ALLOWUILESSSAVEAS = 46 , OLECMDID_DONTDOWNLOADCSS = 47 , OLECMDID_UPDATEPAGESTATUS = 48 ,
  OLECMDID_PRINT2 = 49 , OLECMDID_PRINTPREVIEW2 = 50 , OLECMDID_SETPRINTTEMPLATE = 51 , OLECMDID_GETPRINTTEMPLATE = 52 ,
  OLECMDID_PAGEACTIONBLOCKED = 55 , OLECMDID_PAGEACTIONUIQUERY = 56 , OLECMDID_FOCUSVIEWCONTROLS = 57 , OLECMDID_FOCUSVIEWCONTROLSQUERY = 58 ,
  OLECMDID_SHOWPAGEACTIONMENU = 59 , OLECMDID_ADDTRAVELENTRY = 60 , OLECMDID_UPDATETRAVELENTRY = 61 , OLECMDID_UPDATEBACKFORWARDSTATE = 62 ,
  OLECMDID_OPTICAL_ZOOM = 63 , OLECMDID_OPTICAL_GETZOOMRANGE = 64 , OLECMDID_WINDOWSTATECHANGED = 65 , OLECMDID_ACTIVEXINSTALLSCOPE = 66 ,
  OLECMDID_UPDATETRAVELENTRY_DATARECOVERY = 67 , OLECMDID_SHOWTASKDLG = 68 , OLECMDID_POPSTATEEVENT = 69 , OLECMDID_VIEWPORT_MODE = 70 ,
  OLECMDID_LAYOUT_VIEWPORT_WIDTH = 71 , OLECMDID_VISUAL_VIEWPORT_EXCLUDE_BOTTOM = 72 , OLECMDID_USER_OPTICAL_ZOOM = 73 , OLECMDID_PAGEAVAILABLE = 74 ,
  OLECMDID_GETUSERSCALABLE = 75 , OLECMDID_UPDATE_CARET = 76 , OLECMDID_ENABLE_VISIBILITY = 77 , OLECMDID_MEDIA_PLAYBACK = 78
}
 
typedef IOleCommandTargetLPOLECOMMANDTARGET
 
typedef enum IOleCommandTarget::OLECMDF OLECMDF
 
typedef struct IOleCommandTarget::_tagOLECMD OLECMD
 
typedef struct IOleCommandTarget::_tagOLECMDTEXT OLECMDTEXT
 
typedef enum IOleCommandTarget::OLECMDTEXTF OLECMDTEXTF
 
typedef enum IOleCommandTarget::OLECMDEXECOPT OLECMDEXECOPT
 
typedef enum IOleCommandTarget::OLECMDID OLECMDID
 
- Public Types inherited from IPersistStream
typedef IPersistStreamLPPERSISTSTREAM
 
- Public Types inherited from IPersist
typedef IPersistLPPERSIST
 
- Static Public Member Functions inherited from ATL::CComObjectRootBase
static void WINAPI ObjectMain (bool)
 
static const struct _ATL_CATMAP_ENTRYGetCategoryMap ()
 
static HRESULT WINAPI InternalQueryInterface (void *pThis, const _ATL_INTMAP_ENTRY *pEntries, REFIID iid, void **ppvObject)
 
- Public Attributes inherited from ATL::CComObjectRootBase
LONG m_dwRef
 
- Public Attributes inherited from IDispatch
const DISPID DISPID_UNKNOWN = -1
 
const DISPID DISPID_VALUE = 0
 
const DISPID DISPID_PROPERTYPUT = -3
 
const DISPID DISPID_NEWENUM = -4
 
const DISPID DISPID_EVALUATE = -5
 
const DISPID DISPID_CONSTRUCTOR = -6
 
const DISPID DISPID_DESTRUCTOR = -7
 
const DISPID DISPID_COLLECT = -8
 

Detailed Description

Definition at line 11 of file addresseditbox.h.

Constructor & Destructor Documentation

◆ CAddressEditBox()

CAddressEditBox::CAddressEditBox ( )

Definition at line 17 of file addresseditbox.cpp.

17 :
19 fEditWindow(WC_EDITW, this),
20 fSite(NULL)
21{
22}
CContainedWindow fEditWindow
CContainedWindow fCombobox
CComPtr< IUnknown > fSite
#define NULL
Definition: types.h:112
#define WC_EDITW
Definition: commctrl.h:4692
#define WC_COMBOBOXEXW
Definition: commctrl.h:3786

◆ ~CAddressEditBox()

CAddressEditBox::~CAddressEditBox ( )

Definition at line 24 of file addresseditbox.cpp.

25{
26}

Member Function Documentation

◆ AddComboBoxItem()

void CAddressEditBox::AddComboBoxItem ( LPITEMIDLIST  pidl,
int  index,
int  indent 
)
private

Definition at line 527 of file addresseditbox.cpp.

528{
529 HRESULT hr;
530 WCHAR buf[4096];
531
532 LPCITEMIDLIST pidlChild;
534 hr = SHBindToParent(pidl, IID_PPV_ARG(IShellFolder, &sf), &pidlChild);
536 return;
537
538 STRRET strret;
539 hr = sf->GetDisplayNameOf(pidlChild, SHGDN_FORADDRESSBAR, &strret);
541 return;
542
543 hr = StrRetToBufW(&strret, pidlChild, buf, 4095);
545 return;
546
547 COMBOBOXEXITEMW item = {0};
549 item.iImage = SHMapPIDLToSystemImageListIndex(sf, pidlChild, &item.iSelectedImage);
550 item.pszText = buf;
551 item.lParam = (LPARAM)(ILClone(pidl));
552 item.iIndent = indent;
553 item.iItem = index;
555}
#define index(s, c)
Definition: various.h:29
static const WCHAR indent[]
Definition: object.c:1156
#define FAILED_UNEXPECTEDLY(hr)
Definition: precomp.h:65
HRESULT WINAPI StrRetToBufW(LPSTRRET src, const ITEMIDLIST *pidl, LPWSTR dest, UINT len)
Definition: string.c:1530
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: glext.h:7751
int WINAPI SHMapPIDLToSystemImageListIndex(IShellFolder *sh, LPCITEMIDLIST pidl, int *pIndex)
Definition: iconcache.cpp:772
static ATOM item
Definition: dde.c:856
LPITEMIDLIST WINAPI ILClone(LPCITEMIDLIST pidl)
Definition: pidl.c:237
HRESULT WINAPI SHBindToParent(LPCITEMIDLIST pidl, REFIID riid, LPVOID *ppv, LPCITEMIDLIST *ppidlLast)
Definition: pidl.c:1497
#define CBEIF_IMAGE
Definition: commctrl.h:3792
#define CBEIF_SELECTEDIMAGE
Definition: commctrl.h:3793
#define CBEIF_TEXT
Definition: commctrl.h:3791
#define CBEIF_INDENT
Definition: commctrl.h:3795
#define CBEM_INSERTITEMW
Definition: commctrl.h:3846
#define CBEIF_LPARAM
Definition: commctrl.h:3796
HRESULT hr
Definition: shlfolder.c:183
const ITEMIDLIST UNALIGNED * LPCITEMIDLIST
Definition: shtypes.idl:42
LONG_PTR LPARAM
Definition: windef.h:208
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
#define IID_PPV_ARG(Itype, ppType)
__wchar_t WCHAR
Definition: xmlstorage.h:180

Referenced by FillOneLevel(), and PopulateComboBox().

◆ Exec()

HRESULT STDMETHODCALLTYPE CAddressEditBox::Exec ( const GUID pguidCmdGroup,
DWORD  nCmdID,
DWORD  nCmdexecopt,
VARIANT pvaIn,
VARIANT pvaOut 
)
override

Implements IOleCommandTarget.

Definition at line 407 of file addresseditbox.cpp.

409{
410 return E_NOTIMPL;
411}
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ Execute()

HRESULT STDMETHODCALLTYPE CAddressEditBox::Execute ( long  paramC)
override

Definition at line 251 of file addresseditbox.cpp.

252{
253 BOOL bParsedForExec = FALSE;
254 HRESULT hr;
255
256 /*
257 * Parse the path if it wasn't parsed
258 */
259 if (!m_pidlLastParsed)
260 {
261 hr = ParseNow(0);
262
263 /* If the destination path doesn't exist then display an error message */
265 {
266 if (ExecuteCommandLine())
267 return S_OK;
268
270 }
271
272 if (!m_pidlLastParsed)
273 return E_FAIL;
274 bParsedForExec = TRUE;
275 }
276
277 /*
278 * Get the IShellBrowser and IBrowserService interfaces of the shell browser
279 */
283 return hr;
284
285 /*
286 * Get the current pidl of the shellbrowser and check if it is the same with the parsed one
287 */
288 PIDLIST_ABSOLUTE pidl;
289 hr = GetAbsolutePidl(&pidl);
291 {
292 m_pidlLastParsed.Free();
293 return hr;
294 }
295
296 BOOL bEqual = ILIsEqual(pidl, m_pidlLastParsed);
297 ILFree(pidl);
298 if (bEqual)
299 {
300 m_pidlLastParsed.Free();
301 return S_OK;
302 }
303
304 /*
305 * Attempt to browse to the parsed pidl
306 */
307 hr = pisb->BrowseObject(m_pidlLastParsed, 0);
308 if (SUCCEEDED(hr))
309 return hr;
310
311 /*
312 * Browsing to the pidl failed so it's not a folder. So invoke its default command.
313 */
314 HWND hWnd;
315 if (FAILED(IUnknown_GetWindow(pisb, &hWnd)))
316 hWnd = NULL;
317
318 LPCITEMIDLIST pidlChild;
321 if (SUCCEEDED(hr))
322 hr = SHInvokeDefaultCommand(hWnd, sf, pidlChild);
323
324 if (bParsedForExec)
325 m_pidlLastParsed.Free(); // Throw away the non-folder item we just parsed
326
327 RefreshAddress(); // Set the address back to a valid folder
328 return hr;
329}
HWND hWnd
Definition: settings.c:17
HRESULT RefreshAddress()
HRESULT GetAbsolutePidl(PIDLIST_ABSOLUTE *pAbsolutePIDL)
STDMETHOD() ParseNow(long paramC) override
CComHeapPtr< ITEMIDLIST_ABSOLUTE > m_pidlLastParsed
HRESULT STDMETHODCALLTYPE ShowFileNotFoundError(HRESULT hRet)
#define E_FAIL
Definition: ddrawi.h:102
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
HRESULT WINAPI IUnknown_QueryService(IUnknown *, REFGUID, REFIID, LPVOID *)
Definition: ordinal.c:1501
HRESULT WINAPI SHInvokeDefaultCommand(HWND hWnd, IShellFolder *lpFolder, LPCITEMIDLIST lpApidl)
Definition: ordinal.c:3060
HRESULT WINAPI IUnknown_GetWindow(IUnknown *lpUnknown, HWND *lphWnd)
Definition: ordinal.c:1336
unsigned int BOOL
Definition: ntddk_ex.h:94
#define S_OK
Definition: intsafe.h:52
#define SUCCEEDED(hr)
Definition: intsafe.h:50
#define FAILED(hr)
Definition: intsafe.h:51
#define ERROR_FILE_NOT_FOUND
Definition: disk.h:79
void WINAPI ILFree(LPITEMIDLIST pidl)
Definition: pidl.c:1044
BOOL WINAPI ILIsEqual(LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2)
Definition: pidl.c:582
#define SID_SShellBrowser
Definition: shlguid.h:128
#define HRESULT_FROM_WIN32(x)
Definition: winerror.h:92
#define ERROR_INVALID_DRIVE
Definition: winerror.h:118

Referenced by OnWinEvent().

◆ ExecuteCommandLine()

BOOL CAddressEditBox::ExecuteCommandLine ( )
private

Definition at line 144 of file addresseditbox.cpp.

145{
146 /* Get command line */
147 CComHeapPtr<WCHAR> pszCmdLine;
148 if (!GetComboBoxText(pszCmdLine))
149 return FALSE;
150
151 /* Split 1st parameter from trailing arguments */
152 PWCHAR args = PathGetArgsW(pszCmdLine);
153 PathRemoveArgsW(pszCmdLine);
154
155 PathUnquoteSpacesW(pszCmdLine); /* Unquote the 1st parameter */
156
157 /* Get ready for execution */
158 SHELLEXECUTEINFOW info = { sizeof(info), SEE_MASK_FLAG_NO_UI, m_hWnd };
159 info.lpFile = pszCmdLine;
160 info.lpParameters = args;
161 info.nShow = SW_SHOWNORMAL;
162
163 /* Set current directory */
164 WCHAR dir[MAX_PATH] = L"";
166 if (SUCCEEDED(GetAbsolutePidl(&pidl)))
167 {
169 info.lpDirectory = dir;
170 }
171
172 if (!::ShellExecuteExW(&info)) /* Execute! */
173 return FALSE;
174
176 return TRUE;
177}
unsigned int dir
Definition: maze.c:112
BOOL GetComboBoxText(CComHeapPtr< WCHAR > &pszText)
#define MAX_PATH
Definition: compat.h:34
void WINAPI PathRemoveArgsW(LPWSTR lpszPath)
Definition: path.c:779
VOID WINAPI PathUnquoteSpacesW(LPWSTR lpszPath)
Definition: path.c:1040
BOOL WINAPI PathIsDirectoryW(LPCWSTR lpszPath)
Definition: path.c:1729
LPWSTR WINAPI PathGetArgsW(LPCWSTR lpszPath)
Definition: path.c:506
#define L(x)
Definition: ntvdm.h:50
BOOL WINAPI SHGetPathFromIDListW(LPCITEMIDLIST pidl, LPWSTR pszPath)
Definition: pidl.c:1489
#define SEE_MASK_FLAG_NO_UI
Definition: shellapi.h:36
BOOL WINAPI DECLSPEC_HOTPATCH ShellExecuteExW(LPSHELLEXECUTEINFOW sei)
Definition: shlexec.cpp:2474
Definition: match.c:390
uint16_t * PWCHAR
Definition: typedefs.h:56
#define SW_SHOWNORMAL
Definition: winuser.h:781

Referenced by Execute().

◆ FileSysChange()

HRESULT STDMETHODCALLTYPE CAddressEditBox::FileSysChange ( long  param8,
long  paramC 
)
override

Definition at line 42 of file addresseditbox.cpp.

43{
44 return E_NOTIMPL;
45}

◆ FillOneLevel()

void CAddressEditBox::FillOneLevel ( int  index,
int  levelIndent,
int  indent 
)
private

Definition at line 557 of file addresseditbox.cpp.

558{
559 HRESULT hr;
560 ULONG numObj;
561 int count;
562 LPITEMIDLIST pidl, pidl2, pidl3, pidl4;
563
564 count = index + 1;
565 pidl = GetItemData(index);
566 pidl2 = GetItemData(count);
567 if(pidl)
568 {
569 CComPtr<IShellFolder> psfDesktop;
570 CComPtr<IShellFolder> psfItem;
571
572 hr = SHGetDesktopFolder(&psfDesktop);
574 return;
575
576 if (!pidl->mkid.cb)
577 {
578 psfItem = psfDesktop;
579 }
580 else
581 {
582 hr = psfDesktop->BindToObject(pidl, NULL, IID_PPV_ARG(IShellFolder, &psfItem));
584 return;
585 }
586
587 CComPtr<IEnumIDList> pEnumIDList;
588 hr = psfItem->EnumObjects(0, SHCONTF_FOLDERS | SHCONTF_INCLUDEHIDDEN, &pEnumIDList);
590 return;
591
592 do
593 {
594 hr = pEnumIDList->Next(1, &pidl3, &numObj);
595 if(hr != S_OK || !numObj)
596 break;
597
598 pidl4 = ILCombine(pidl, pidl3);
599 if (pidl2 && ILIsEqual(pidl4, pidl2))
600 count += (indent - levelIndent);
601 else
602 AddComboBoxItem(pidl4, count, levelIndent);
603 count++;
604 ILFree(pidl3);
605 ILFree(pidl4);
606 } while (true);
607 }
608}
HRESULT WINAPI SHGetDesktopFolder(IShellFolder **psf)
LPITEMIDLIST GetItemData(int index)
void AddComboBoxItem(LPITEMIDLIST pidl, int index, int indent)
GLuint GLuint GLsizei count
Definition: gl.h:1545
GLuint index
Definition: glext.h:6031
LPITEMIDLIST WINAPI ILCombine(LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2)
Definition: pidl.c:816
ITEMIDLIST UNALIGNED * LPITEMIDLIST
Definition: shtypes.idl:41
uint32_t ULONG
Definition: typedefs.h:59

Referenced by PopulateComboBox().

◆ GetAbsolutePidl()

HRESULT CAddressEditBox::GetAbsolutePidl ( PIDLIST_ABSOLUTE pAbsolutePIDL)
private

Definition at line 129 of file addresseditbox.cpp.

130{
132 HRESULT hr = IUnknown_QueryService(fSite, SID_STopLevelBrowser, IID_PPV_ARG(IBrowserService, &isb));
134 return hr;
135
136 hr = isb->GetPidl(pAbsolutePIDL);
138 return hr;
139
140 return S_OK;
141}

Referenced by Execute(), ExecuteCommandLine(), and RefreshAddress().

◆ GetClassID()

HRESULT STDMETHODCALLTYPE CAddressEditBox::GetClassID ( CLSID pClassID)
override

Implements IPersist.

Definition at line 446 of file addresseditbox.cpp.

447{
448 if (pClassID == NULL)
449 return E_POINTER;
450 *pClassID = CLSID_AddressEditBox;
451 return S_OK;
452}
#define E_POINTER
Definition: winerror.h:2365

◆ GetComboBoxText()

BOOL CAddressEditBox::GetComboBoxText ( CComHeapPtr< WCHAR > &  pszText)
private

Definition at line 80 of file addresseditbox.cpp.

81{
82 pszText.Free();
84 if (!pszText.Allocate(cchMax))
85 return FALSE;
86 return fCombobox.GetWindowText(pszText, cchMax);
87}
UINT cchMax
int GetWindowTextLength() const
Definition: atlwin.h:860
int GetWindowText(_Out_writes_to_(nMaxCount, return+1) LPTSTR lpszStringBuf, _In_ int nMaxCount) const
Definition: atlwin.h:828
void Free()
Definition: atlalloc.h:153
bool Allocate(_In_ size_t nElements=1)
Definition: atlalloc.h:143
#define UNICODE_NULL
int32_t INT
Definition: typedefs.h:58

Referenced by ExecuteCommandLine(), ParseNow(), and ShowFileNotFoundError().

◆ GetIDsOfNames()

HRESULT STDMETHODCALLTYPE CAddressEditBox::GetIDsOfNames ( REFIID  riid,
LPOLESTR rgszNames,
UINT  cNames,
LCID  lcid,
DISPID rgDispId 
)
override

Implements IDispatch.

Definition at line 423 of file addresseditbox.cpp.

425{
426 return E_NOTIMPL;
427}

◆ GetItemData()

LPITEMIDLIST CAddressEditBox::GetItemData ( int  index)
private

Definition at line 610 of file addresseditbox.cpp.

611{
613
614 memset(&item, 0, sizeof(COMBOBOXEXITEMW));
615 item.mask = CBEIF_LPARAM;
616 item.iItem = index;
618 return (LPITEMIDLIST)item.lParam;
619}
#define CBEM_GETITEMW
Definition: commctrl.h:3848
#define memset(x, y, z)
Definition: compat.h:39

Referenced by FillOneLevel(), and PopulateComboBox().

◆ GetSizeMax()

HRESULT STDMETHODCALLTYPE CAddressEditBox::GetSizeMax ( ULARGE_INTEGER pcbSize)
override

Implements IPersistStream.

Definition at line 469 of file addresseditbox.cpp.

470{
471 return E_NOTIMPL;
472}

◆ GetTypeInfo()

HRESULT STDMETHODCALLTYPE CAddressEditBox::GetTypeInfo ( UINT  iTInfo,
LCID  lcid,
ITypeInfo **  ppTInfo 
)
override

Implements IDispatch.

Definition at line 418 of file addresseditbox.cpp.

419{
420 return E_NOTIMPL;
421}

◆ GetTypeInfoCount()

HRESULT STDMETHODCALLTYPE CAddressEditBox::GetTypeInfoCount ( UINT pctinfo)
override

Implements IDispatch.

Definition at line 413 of file addresseditbox.cpp.

414{
415 return E_NOTIMPL;
416}

◆ Init()

HRESULT STDMETHODCALLTYPE CAddressEditBox::Init ( HWND  comboboxEx,
HWND  editControl,
long  param14,
IUnknown param18 
)
override

Definition at line 52 of file addresseditbox.cpp.

53{
54 CComPtr<IBrowserService> browserService;
55
56 fCombobox.SubclassWindow(comboboxEx);
57 fEditWindow.SubclassWindow(editControl);
58 fSite = param18;
59 hComboBoxEx = comboboxEx;
60
62
63 // take advice to watch events
64 HRESULT hResult = IUnknown_QueryService(param18, SID_SShellBrowser, IID_PPV_ARG(IBrowserService, &browserService));
65 if (SUCCEEDED(hResult))
66 {
67 hResult = AtlAdvise(browserService, static_cast<IDispatch *>(this), DIID_DWebBrowserEvents, &fAdviseCookie);
68 }
69
70 return hResult;
71}
BOOL SubclassWindow(HWND hWnd)
Definition: atlwin.h:1796
HWND m_hWnd
Definition: atlwin.h:273
HRESULT WINAPI AtlAdvise(IUnknown *pUnkCP, IUnknown *pUnk, const IID *iid, DWORD *pdw)
Definition: atl.c:45
HRESULT WINAPI SHAutoComplete(HWND hwndEdit, DWORD dwFlags)
Definition: autocomp.cpp:191
#define SHACF_FILESYSTEM
Definition: shlwapi.h:1957
#define SHACF_USETAB
Definition: shlwapi.h:1961
#define SHACF_URLALL
Definition: shlwapi.h:1960

◆ Invoke()

HRESULT STDMETHODCALLTYPE CAddressEditBox::Invoke ( DISPID  dispIdMember,
REFIID  riid,
LCID  lcid,
WORD  wFlags,
DISPPARAMS *  pDispParams,
VARIANT pVarResult,
EXCEPINFO *  pExcepInfo,
UINT puArgErr 
)
override

Implements IDispatch.

Definition at line 429 of file addresseditbox.cpp.

431{
432 if (pDispParams == NULL)
433 return E_INVALIDARG;
434
435 switch (dispIdMember)
436 {
439 m_pidlLastParsed.Free();
441 break;
442 }
443 return S_OK;
444}
#define E_INVALIDARG
Definition: ddrawi.h:101
#define DISPID_NAVIGATECOMPLETE2
Definition: webchild.h:54
#define DISPID_DOCUMENTCOMPLETE
Definition: webchild.h:61

◆ IsDirty()

HRESULT STDMETHODCALLTYPE CAddressEditBox::IsDirty ( void  )
override

Implements IPersistStream.

Definition at line 454 of file addresseditbox.cpp.

455{
456 return E_NOTIMPL;
457}

◆ IsWindowOwner()

HRESULT STDMETHODCALLTYPE CAddressEditBox::IsWindowOwner ( HWND  hWnd)
override

Definition at line 392 of file addresseditbox.cpp.

393{
394 if (fCombobox.m_hWnd == hWnd)
395 return S_OK;
396 if (fEditWindow.m_hWnd == hWnd)
397 return S_OK;
398 return S_FALSE;
399}
#define S_FALSE
Definition: winerror.h:2357

◆ Load()

HRESULT STDMETHODCALLTYPE CAddressEditBox::Load ( IStream pStm)
override

Implements IPersistStream.

Definition at line 459 of file addresseditbox.cpp.

460{
461 return E_NOTIMPL;
462}

◆ OnSettingChange()

LRESULT CAddressEditBox::OnSettingChange ( UINT  uMsg,
WPARAM  wParam,
LPARAM  lParam,
BOOL bHandled 
)

Definition at line 621 of file addresseditbox.cpp.

622{
624 return NO_ERROR;
625}
#define NO_ERROR
Definition: dderror.h:5

◆ OnWinEvent()

HRESULT STDMETHODCALLTYPE CAddressEditBox::OnWinEvent ( HWND  hWnd,
UINT  uMsg,
WPARAM  wParam,
LPARAM  lParam,
LRESULT theResult 
)
override

Definition at line 336 of file addresseditbox.cpp.

338{
339 LPNMHDR hdr;
340
341 if (theResult)
342 *theResult = 0;
343
344 switch (uMsg)
345 {
346 case WM_COMMAND:
347 {
349 {
351 PIDLIST_ABSOLUTE pidl =
353 m_pidlLastParsed.Free();
354 if (pidl)
355 m_pidlLastParsed.Attach(ILClone(pidl));
356
357 Execute(0);
358 }
359 break;
360 }
361 case WM_NOTIFY:
362 {
363 hdr = (LPNMHDR) lParam;
364 if (hdr->code == CBEN_ENDEDIT)
365 {
366 NMCBEENDEDITW *endEdit = (NMCBEENDEDITW*) lParam;
367 if (endEdit->iWhy == CBENF_RETURN)
368 {
369 Execute(0);
370 }
371 else if (endEdit->iWhy == CBENF_ESCAPE)
372 {
373 /* Reset the contents of the combo box */
375 }
376 }
377 else if (hdr->code == CBEN_DELETEITEM)
378 {
380 LPITEMIDLIST itemPidl = (LPITEMIDLIST)pCBEx->ceItem.lParam;
381 if (itemPidl)
382 {
383 ILFree(itemPidl);
384 }
385 }
386 break;
387 }
388 }
389 return S_OK;
390}
LRESULT SendMessage(UINT message, WPARAM wParam=0, LPARAM lParam=0)
Definition: atlwin.h:1116
STDMETHOD() Execute(long paramC) override
WPARAM wParam
Definition: combotst.c:138
LPARAM lParam
Definition: combotst.c:139
char hdr[14]
Definition: iptest.cpp:33
if(dx< 0)
Definition: linetemp.h:194
#define INT
Definition: polytest.cpp:20
#define CBEN_ENDEDIT
Definition: commctrl.h:3890
#define CBENF_RETURN
Definition: commctrl.h:3893
#define CBENF_ESCAPE
Definition: commctrl.h:3894
#define CBEN_DELETEITEM
Definition: commctrl.h:3878
#define PNMCOMBOBOXEX
Definition: commctrl.h:3873
#define WM_NOTIFY
Definition: richedit.h:61
ITEMIDLIST_ABSOLUTE * PIDLIST_ABSOLUTE
Definition: shtypes.idl:60
#define HIWORD(l)
Definition: typedefs.h:247
#define WM_COMMAND
Definition: winuser.h:1751
#define CBN_SELCHANGE
Definition: winuser.h:1990
struct tagNMHDR * LPNMHDR
#define CB_GETITEMDATA
Definition: winuser.h:1961
#define CB_GETCURSEL
Definition: winuser.h:1954

◆ ParseNow()

HRESULT STDMETHODCALLTYPE CAddressEditBox::ParseNow ( long  paramC)
override

Definition at line 179 of file addresseditbox.cpp.

180{
181 ULONG eaten, attributes;
184 CComPtr<IShellFolder> psfCurrent;
185 HRESULT hr;
186
188
192 return hr;
193
194 HWND topLevelWindow;
195 hr = IUnknown_GetWindow(pbs, &topLevelWindow);
197 return hr;
198
199 /* Get the path to browse and expand it if needed */
202 return E_FAIL;
203
204 INT addressLength = (wcschr(input, L'%') ? ::SHExpandEnvironmentStringsW(input, NULL, 0) : 0);
205 if (addressLength <= 0 ||
206 !address.Allocate(addressLength + 1) ||
208 {
209 address.Free();
210 address.Attach(input.Detach());
211 }
212
213 /* Try to parse a relative path and if it fails, try to browse an absolute path */
214 CComPtr<IShellFolder> psfDesktop;
215 hr = SHGetDesktopFolder(&psfDesktop);
217 return hr;
218
219 hr = pbs->GetPidl(&pidlCurrent);
221 goto parseabsolute;
222
223 hr = psfDesktop->BindToObject(pidlCurrent, NULL, IID_PPV_ARG(IShellFolder, &psfCurrent));
225 goto parseabsolute;
226
227 hr = psfCurrent->ParseDisplayName(topLevelWindow, NULL, address, &eaten, &pidlRelative, &attributes);
228 if (SUCCEEDED(hr))
229 {
230 m_pidlLastParsed.Attach(ILCombine(pidlCurrent, pidlRelative));
231 return hr;
232 }
233
234parseabsolute:
235 /* We couldn't parse a relative path, attempt to parse an absolute path */
236 hr = psfDesktop->ParseDisplayName(topLevelWindow, NULL, address, &eaten, &m_pidlLastParsed, &attributes);
237 return hr;
238}
#define ATLASSERT(x)
Definition: CComVariant.cpp:10
#define wcschr
Definition: compat.h:17
GLuint address
Definition: glext.h:9393
GLenum GLenum GLenum input
Definition: glext.h:9031
DWORD WINAPI SHExpandEnvironmentStringsW(LPCWSTR, LPWSTR, DWORD)

Referenced by Execute().

◆ PopulateComboBox()

void CAddressEditBox::PopulateComboBox ( LPITEMIDLIST  pidl)
private

Definition at line 474 of file addresseditbox.cpp.

475{
476 HRESULT hr;
477 LPITEMIDLIST pidl;
478 int indent = 0;
479 int index;
480
482 for (int i = 0; i < index; i++)
485
486 /* Calculate the indent level. No need to clone the pidl */
487 pidl = pidlCurrent;
488 do
489 {
490 if(!pidl->mkid.cb)
491 break;
492 pidl = ILGetNext(pidl);
493 indent++;
494 } while (pidl);
495 index = indent;
496
497 /* Add every id from the pidl in the combo box */
498 pidl = ILClone(pidlCurrent);
499 do
500 {
501 AddComboBoxItem(pidl, 0, index);
502 ILRemoveLastID(pidl);
503 index--;
504 } while (index >= 0);
505 ILFree(pidl);
506
507 /* Add the items of the desktop */
508 FillOneLevel(0, 1, indent);
509
510 /* Add the items of My Computer */
513 return;
514
516 {
517 if (ILIsEqual(i, pidl))
518 {
520 break;
521 }
522 index++;
523 }
524 ILFree(pidl);
525}
void FillOneLevel(int index, int levelIndent, int indent)
HRESULT WINAPI SHGetSpecialFolderLocation(HWND hwndOwner, INT nFolder, LPITEMIDLIST *ppidl)
Definition: shellpath.c:3384
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
BOOL WINAPI ILRemoveLastID(LPITEMIDLIST pidl)
Definition: pidl.c:221
LPITEMIDLIST WINAPI ILGetNext(LPCITEMIDLIST pidl)
Definition: pidl.c:970
#define CBEM_DELETEITEM
Definition: commctrl.h:3836
#define CSIDL_DRIVES
Definition: shlobj.h:2197
#define CB_RESETCONTENT
Definition: winuser.h:1970
#define CB_GETCOUNT
Definition: winuser.h:1953

Referenced by RefreshAddress().

◆ QueryStatus()

HRESULT STDMETHODCALLTYPE CAddressEditBox::QueryStatus ( const GUID pguidCmdGroup,
ULONG  cCmds,
OLECMD  prgCmds[],
OLECMDTEXT pCmdText 
)
override

Implements IOleCommandTarget.

Definition at line 401 of file addresseditbox.cpp.

403{
404 return E_NOTIMPL;
405}

◆ Refresh()

HRESULT STDMETHODCALLTYPE CAddressEditBox::Refresh ( long  param8)
override

Definition at line 47 of file addresseditbox.cpp.

48{
49 return E_NOTIMPL;
50}

◆ RefreshAddress()

HRESULT CAddressEditBox::RefreshAddress ( )
private

Definition at line 89 of file addresseditbox.cpp.

90{
91 /* Get the current pidl of the browser */
92 CComHeapPtr<ITEMIDLIST> absolutePIDL;
93 HRESULT hr = GetAbsolutePidl(&absolutePIDL);
95 return hr;
96
97 /* Fill the combobox */
98 ATLASSERT(absolutePIDL != NULL);
99 PopulateComboBox(absolutePIDL);
100
101 /* Get pShellFolder and pidlChild */
102 CComPtr<IShellFolder> pShellFolder;
103 PCITEMID_CHILD pidlChild;
104 hr = SHBindToParent(absolutePIDL, IID_PPV_ARG(IShellFolder, &pShellFolder), &pidlChild);
106 return hr;
107
108 /* Get ready to set the displayed item */
110 item.iItem = -1; /* -1 to specify the displayed item */
111 item.iImage = SHMapPIDLToSystemImageListIndex(pShellFolder, pidlChild, &item.iSelectedImage);
112
113 /* Set the path if filesystem; otherwise use the name */
114 WCHAR szPathOrName[MAX_PATH];
115 SHGDNF flags = SHGDN_FORADDRESSBAR;
117 flags |= SHGDN_FORPARSING;
118
119 if (SUCCEEDED(IEGetNameAndFlags(absolutePIDL, flags, szPathOrName, _countof(szPathOrName), NULL)))
120 item.pszText = szPathOrName;
121
122 /* Ownership of absolutePIDL will be moved to fCombobox. See CBEN_DELETEITEM */
123 item.lParam = reinterpret_cast<LPARAM>(absolutePIDL.Detach());
124
125 fCombobox.SendMessage(CBEM_SETITEM, 0, reinterpret_cast<LPARAM>(&item)); /* Set it! */
126 return S_OK;
127}
HRESULT IEGetNameAndFlags(LPITEMIDLIST pidl, SHGDNF uFlags, LPWSTR pszBuf, UINT cchBuf, SFGAOF *rgfInOut)
void PopulateComboBox(LPITEMIDLIST pidl)
T * Detach()
Definition: atlalloc.h:168
CabinetStateSettings gCabinetState
Definition: settings.cpp:10
GLbitfield flags
Definition: glext.h:7161
#define CBEM_SETITEM
Definition: commctrl.h:3851
#define _countof(array)
Definition: sndvol32.h:70

Referenced by Execute(), ExecuteCommandLine(), Invoke(), OnSettingChange(), and OnWinEvent().

◆ Save() [1/2]

HRESULT STDMETHODCALLTYPE CAddressEditBox::Save ( IStream pStm,
BOOL  fClearDirty 
)
override

Implements IPersistStream.

Definition at line 464 of file addresseditbox.cpp.

465{
466 return E_NOTIMPL;
467}

◆ Save() [2/2]

HRESULT STDMETHODCALLTYPE CAddressEditBox::Save ( long  paramC)
override

Definition at line 331 of file addresseditbox.cpp.

332{
333 return E_NOTIMPL;
334}

◆ SetCurrentDir()

HRESULT STDMETHODCALLTYPE CAddressEditBox::SetCurrentDir ( PCWSTR  pszPath)
override

Definition at line 73 of file addresseditbox.cpp.

74{
75 m_pidlLastParsed.Free();
76 m_pidlLastParsed.Attach(ILCreateFromPathW(pszPath));
78}
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
LPITEMIDLIST WINAPI ILCreateFromPathW(LPCWSTR path)
Definition: pidl.c:1101

◆ SetOwner()

HRESULT STDMETHODCALLTYPE CAddressEditBox::SetOwner ( IUnknown pOwner)
override

Implements IShellService.

Definition at line 28 of file addresseditbox.cpp.

29{
30 if (!pOwner)
31 {
32 CComPtr<IBrowserService> browserService;
34 if (SUCCEEDED(hResult))
35 AtlUnadvise(browserService, DIID_DWebBrowserEvents, fAdviseCookie);
36 fSite = NULL;
37 }
38 // connect to browser connection point
39 return 0;
40}
HRESULT WINAPI AtlUnadvise(IUnknown *pUnkCP, const IID *iid, DWORD dw)
Definition: atl.c:73

◆ ShowFileNotFoundError()

HRESULT STDMETHODCALLTYPE CAddressEditBox::ShowFileNotFoundError ( HRESULT  hRet)
private

Definition at line 240 of file addresseditbox.cpp.

241{
244 return E_FAIL;
245
247
248 return hRet;
249}
#define IDS_PARSE_ADDR_ERR_TITLE
Definition: resource.h:184
#define IDS_PARSE_ADDR_ERR_TEXT
Definition: resource.h:185
#define ShellMessageBoxW
Definition: precomp.h:63
#define MB_ICONERROR
Definition: winuser.h:798
#define MB_OK
Definition: winuser.h:801
#define MAKEINTRESOURCEW(i)
Definition: winuser.h:582

Referenced by Execute().

Member Data Documentation

◆ fAdviseCookie

DWORD CAddressEditBox::fAdviseCookie
private

Definition at line 26 of file addresseditbox.h.

Referenced by Init(), and SetOwner().

◆ fCombobox

CContainedWindow CAddressEditBox::fCombobox
private

◆ fEditWindow

CContainedWindow CAddressEditBox::fEditWindow
private

Definition at line 25 of file addresseditbox.h.

Referenced by Init(), and IsWindowOwner().

◆ fSite

CComPtr<IUnknown> CAddressEditBox::fSite
private

Definition at line 27 of file addresseditbox.h.

Referenced by Execute(), GetAbsolutePidl(), Init(), ParseNow(), and SetOwner().

◆ hComboBoxEx

HWND CAddressEditBox::hComboBoxEx
private

Definition at line 29 of file addresseditbox.h.

Referenced by AddComboBoxItem(), GetItemData(), Init(), and PopulateComboBox().

◆ m_pidlLastParsed

CComHeapPtr<ITEMIDLIST_ABSOLUTE> CAddressEditBox::m_pidlLastParsed
private

Definition at line 28 of file addresseditbox.h.

Referenced by Execute(), Invoke(), OnWinEvent(), ParseNow(), and SetCurrentDir().


The documentation for this class was generated from the following files: