ReactOS 0.4.15-dev-6675-gcbc63d8
CAddressEditBox Class Reference

#include <addresseditbox.h>

Inheritance diagram for CAddressEditBox:
Collaboration diagram for CAddressEditBox:

Public Member Functions

 CAddressEditBox ()
 
 ~CAddressEditBox ()
 
virtual HRESULT STDMETHODCALLTYPE SetOwner (IUnknown *)
 
virtual HRESULT STDMETHODCALLTYPE FileSysChange (long param8, long paramC)
 
virtual HRESULT STDMETHODCALLTYPE Refresh (long param8)
 
virtual HRESULT STDMETHODCALLTYPE Init (HWND comboboxEx, HWND editControl, long param14, IUnknown *param18)
 
virtual HRESULT STDMETHODCALLTYPE SetCurrentDir (long paramC)
 
virtual HRESULT STDMETHODCALLTYPE ParseNow (long paramC)
 
virtual HRESULT STDMETHODCALLTYPE Execute (long paramC)
 
virtual HRESULT STDMETHODCALLTYPE Save (long paramC)
 
virtual HRESULT STDMETHODCALLTYPE OnWinEvent (HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT *theResult)
 
virtual HRESULT STDMETHODCALLTYPE IsWindowOwner (HWND hWnd)
 
virtual HRESULT STDMETHODCALLTYPE QueryStatus (const GUID *pguidCmdGroup, ULONG cCmds, OLECMD prgCmds[], OLECMDTEXT *pCmdText)
 
virtual HRESULT STDMETHODCALLTYPE Exec (const GUID *pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANT *pvaIn, VARIANT *pvaOut)
 
virtual HRESULT STDMETHODCALLTYPE GetTypeInfoCount (UINT *pctinfo)
 
virtual HRESULT STDMETHODCALLTYPE GetTypeInfo (UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
 
virtual HRESULT STDMETHODCALLTYPE GetIDsOfNames (REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
 
virtual HRESULT STDMETHODCALLTYPE Invoke (DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
 
virtual HRESULT STDMETHODCALLTYPE GetClassID (CLSID *pClassID)
 
virtual HRESULT STDMETHODCALLTYPE IsDirty ()
 
virtual HRESULT STDMETHODCALLTYPE Load (IStream *pStm)
 
virtual HRESULT STDMETHODCALLTYPE Save (IStream *pStm, BOOL fClearDirty)
 
virtual HRESULT STDMETHODCALLTYPE GetSizeMax (ULARGE_INTEGER *pcbSize)
 
- 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
 
LPITEMIDLIST 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 23 of file addresseditbox.h.

Constructor & Destructor Documentation

◆ CAddressEditBox()

CAddressEditBox::CAddressEditBox ( )

Definition at line 34 of file addresseditbox.cpp.

34 :
36 fEditWindow(WC_EDITW, this),
37 fSite(NULL),
39{
40}
CContainedWindow fEditWindow
CContainedWindow fCombobox
CComPtr< IUnknown > fSite
LPITEMIDLIST pidlLastParsed
#define NULL
Definition: types.h:112
#define WC_EDITW
Definition: commctrl.h:4687
#define WC_COMBOBOXEXW
Definition: commctrl.h:3781

◆ ~CAddressEditBox()

CAddressEditBox::~CAddressEditBox ( )

Definition at line 42 of file addresseditbox.cpp.

43{
46}
void WINAPI ILFree(LPITEMIDLIST pidl)
Definition: pidl.c:929

Member Function Documentation

◆ AddComboBoxItem()

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

Definition at line 554 of file addresseditbox.cpp.

555{
556 HRESULT hr;
557 WCHAR buf[4096];
558
559 LPCITEMIDLIST pidlChild;
561 hr = SHBindToParent(pidl, IID_PPV_ARG(IShellFolder, &sf), &pidlChild);
563 return;
564
565 STRRET strret;
566 hr = sf->GetDisplayNameOf(pidlChild, SHGDN_FORADDRESSBAR, &strret);
568 return;
569
570 hr = StrRetToBufW(&strret, pidlChild, buf, 4095);
572 return;
573
574 COMBOBOXEXITEMW item = {0};
576 item.iImage = SHMapPIDLToSystemImageListIndex(sf, pidlChild, &item.iSelectedImage);
577 item.pszText = buf;
578 item.lParam = (LPARAM)(ILClone(pidl));
579 item.iIndent = indent;
580 item.iItem = index;
582}
#define index(s, c)
Definition: various.h:29
static const WCHAR indent[]
Definition: object.c:1156
HRESULT WINAPI StrRetToBufW(LPSTRRET src, const ITEMIDLIST *pidl, LPWSTR dest, UINT len)
Definition: string.c:1522
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: glext.h:7751
int WINAPI SHMapPIDLToSystemImageListIndex(IShellFolder *sh, LPCITEMIDLIST pidl, int *pIndex)
Definition: iconcache.cpp:783
static ATOM item
Definition: dde.c:856
LPITEMIDLIST WINAPI ILClone(LPCITEMIDLIST pidl)
Definition: pidl.c:228
HRESULT WINAPI SHBindToParent(LPCITEMIDLIST pidl, REFIID riid, LPVOID *ppv, LPCITEMIDLIST *ppidlLast)
Definition: pidl.c:1341
#define CBEIF_IMAGE
Definition: commctrl.h:3787
#define CBEIF_SELECTEDIMAGE
Definition: commctrl.h:3788
#define CBEIF_TEXT
Definition: commctrl.h:3786
#define CBEIF_INDENT
Definition: commctrl.h:3790
#define CBEM_INSERTITEMW
Definition: commctrl.h:3841
#define CBEIF_LPARAM
Definition: commctrl.h:3791
#define FAILED_UNEXPECTEDLY(hr)
Definition: shellutils.h:82
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 
)
virtual

Implements IOleCommandTarget.

Definition at line 429 of file addresseditbox.cpp.

431{
432 return E_NOTIMPL;
433}
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ Execute()

HRESULT STDMETHODCALLTYPE CAddressEditBox::Execute ( long  paramC)
virtual

Definition at line 279 of file addresseditbox.cpp.

280{
281 HRESULT hr;
282
283 /*
284 * Parse the path if it wasn't parsed
285 */
286 if (!pidlLastParsed)
287 {
288 hr = ParseNow(0);
289
290 /* If the destination path doesn't exist then display an error message */
292 {
293 if (ExecuteCommandLine())
294 return S_OK;
295
297 }
298
299 if (!pidlLastParsed)
300 return E_FAIL;
301 }
302
303 /*
304 * Get the IShellBrowser and IBrowserService interfaces of the shell browser
305 */
308 if (FAILED(hr))
309 return hr;
310
311 /*
312 * Get the current pidl of the shellbrowser and check if it is the same with the parsed one
313 */
314 PIDLIST_ABSOLUTE pidl;
315 hr = GetAbsolutePidl(&pidl);
316 if (FAILED(hr))
317 return hr;
318
320 hr = SHGetDesktopFolder(&psf);
321 if (FAILED(hr))
322 return hr;
323
324 hr = psf->CompareIDs(0, pidl, pidlLastParsed);
325
326 SHFree(pidl);
327 if (hr == 0)
328 return S_OK;
329
330 /*
331 * Attempt to browse to the parsed pidl
332 */
333 hr = pisb->BrowseObject(pidlLastParsed, 0);
334 if (SUCCEEDED(hr))
335 return hr;
336
337 /*
338 * Browsing to the pidl failed so it's not a folder. So invoke its defaule command.
339 */
340 HWND topLevelWindow;
341 hr = IUnknown_GetWindow(pisb, &topLevelWindow);
342 if (FAILED(hr))
343 return hr;
344
345 LPCITEMIDLIST pidlChild;
348 if (FAILED(hr))
349 return hr;
350
351 hr = SHInvokeDefaultCommand(topLevelWindow, sf, pidlChild);
352 if (FAILED(hr))
353 return hr;
354
355 return hr;
356}
HRESULT WINAPI SHGetDesktopFolder(IShellFolder **psf)
HRESULT GetAbsolutePidl(PIDLIST_ABSOLUTE *pAbsolutePIDL)
HRESULT STDMETHODCALLTYPE ShowFileNotFoundError(HRESULT hRet)
virtual HRESULT STDMETHODCALLTYPE ParseNow(long paramC)
#define E_FAIL
Definition: ddrawi.h:102
void WINAPI SHFree(LPVOID pv)
Definition: shellole.c:326
HRESULT WINAPI IUnknown_QueryService(IUnknown *, REFGUID, REFIID, LPVOID *)
Definition: ordinal.c:1497
HRESULT WINAPI SHInvokeDefaultCommand(HWND hWnd, IShellFolder *lpFolder, LPCITEMIDLIST lpApidl)
Definition: ordinal.c:2977
HRESULT WINAPI IUnknown_GetWindow(IUnknown *lpUnknown, HWND *lphWnd)
Definition: ordinal.c:1332
#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
#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 168 of file addresseditbox.cpp.

169{
170 /* Get command line */
171 CComHeapPtr<WCHAR> pszCmdLine;
172 if (!GetComboBoxText(pszCmdLine))
173 return FALSE;
174
175 /* Split 1st parameter from trailing arguments */
176 PWCHAR args = PathGetArgsW(pszCmdLine);
177 PathRemoveArgsW(pszCmdLine);
178
179 PathUnquoteSpacesW(pszCmdLine); /* Unquote the 1st parameter */
180
181 /* Get ready for execution */
182 SHELLEXECUTEINFOW info = { sizeof(info), SEE_MASK_FLAG_NO_UI, m_hWnd };
183 info.lpFile = pszCmdLine;
184 info.lpParameters = args;
185 info.nShow = SW_SHOWNORMAL;
186
187 /* Set current directory */
188 WCHAR dir[MAX_PATH] = L"";
190 if (SUCCEEDED(GetAbsolutePidl(&pidl)))
191 {
193 info.lpDirectory = dir;
194 }
195
196 if (!::ShellExecuteExW(&info)) /* Execute! */
197 return FALSE;
198
200 return TRUE;
201}
unsigned int dir
Definition: maze.c:112
HRESULT RefreshAddress()
BOOL GetComboBoxText(CComHeapPtr< WCHAR > &pszText)
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
#define MAX_PATH
Definition: compat.h:34
void WINAPI PathRemoveArgsW(LPWSTR lpszPath)
Definition: path.c:779
VOID WINAPI PathUnquoteSpacesW(LPWSTR lpszPath)
Definition: path.c:1034
BOOL WINAPI PathIsDirectoryW(LPCWSTR lpszPath)
Definition: path.c:1723
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:1298
#define SEE_MASK_FLAG_NO_UI
Definition: shellapi.h:36
BOOL WINAPI DECLSPEC_HOTPATCH ShellExecuteExW(LPSHELLEXECUTEINFOW sei)
Definition: shlexec.cpp:2368
Definition: match.c:390
uint16_t * PWCHAR
Definition: typedefs.h:56
#define SW_SHOWNORMAL
Definition: winuser.h:764

Referenced by Execute().

◆ FileSysChange()

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

Definition at line 62 of file addresseditbox.cpp.

63{
64 return E_NOTIMPL;
65}

◆ FillOneLevel()

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

Definition at line 584 of file addresseditbox.cpp.

585{
586 HRESULT hr;
587 ULONG numObj;
588 int count;
589 LPITEMIDLIST pidl, pidl2, pidl3, pidl4;
590
591 count = index + 1;
592 pidl = GetItemData(index);
593 pidl2 = GetItemData(count);
594 if(pidl)
595 {
596 CComPtr<IShellFolder> psfDesktop;
597 CComPtr<IShellFolder> psfItem;
598
599 hr = SHGetDesktopFolder(&psfDesktop);
601 return;
602
603 if (!pidl->mkid.cb)
604 {
605 psfItem = psfDesktop;
606 }
607 else
608 {
609 hr = psfDesktop->BindToObject(pidl, NULL, IID_PPV_ARG(IShellFolder, &psfItem));
611 return;
612 }
613
614 CComPtr<IEnumIDList> pEnumIDList;
615 hr = psfItem->EnumObjects(0, SHCONTF_FOLDERS | SHCONTF_INCLUDEHIDDEN, &pEnumIDList);
617 return;
618
619 do
620 {
621 hr = pEnumIDList->Next(1, &pidl3, &numObj);
622 if(hr != S_OK || !numObj)
623 break;
624
625 pidl4 = ILCombine(pidl, pidl3);
626 if (pidl2 && ILIsEqual(pidl4, pidl2))
627 count += (indent - levelIndent);
628 else
629 AddComboBoxItem(pidl4, count, levelIndent);
630 count++;
631 ILFree(pidl3);
632 ILFree(pidl4);
633 } while (true);
634 }
635}
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:703
BOOL WINAPI ILIsEqual(LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2)
Definition: pidl.c:539
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 153 of file addresseditbox.cpp.

154{
156 HRESULT hr = IUnknown_QueryService(fSite, SID_STopLevelBrowser, IID_PPV_ARG(IBrowserService, &isb));
158 return hr;
159
160 hr = isb->GetPidl(pAbsolutePIDL);
162 return hr;
163
164 return S_OK;
165}

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

◆ GetClassID()

HRESULT STDMETHODCALLTYPE CAddressEditBox::GetClassID ( CLSID pClassID)
virtual

Implements IPersist.

Definition at line 473 of file addresseditbox.cpp.

474{
475 if (pClassID == NULL)
476 return E_POINTER;
477 *pClassID = CLSID_AddressEditBox;
478 return S_OK;
479}
#define E_POINTER
Definition: winerror.h:2365

◆ GetComboBoxText()

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

Definition at line 98 of file addresseditbox.cpp.

99{
100 pszText.Free();
102 if (!pszText.Allocate(cchMax))
103 return FALSE;
104 return fCombobox.GetWindowText(pszText, cchMax);
105}
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 
)
virtual

Implements IDispatch.

Definition at line 445 of file addresseditbox.cpp.

447{
448 return E_NOTIMPL;
449}

◆ GetItemData()

LPITEMIDLIST CAddressEditBox::GetItemData ( int  index)
private

Definition at line 637 of file addresseditbox.cpp.

638{
640
641 memset(&item, 0, sizeof(COMBOBOXEXITEMW));
642 item.mask = CBEIF_LPARAM;
643 item.iItem = index;
645 return (LPITEMIDLIST)item.lParam;
646}
#define CBEM_GETITEMW
Definition: commctrl.h:3843
#define memset(x, y, z)
Definition: compat.h:39

Referenced by FillOneLevel(), and PopulateComboBox().

◆ GetSizeMax()

HRESULT STDMETHODCALLTYPE CAddressEditBox::GetSizeMax ( ULARGE_INTEGER pcbSize)
virtual

Implements IPersistStream.

Definition at line 496 of file addresseditbox.cpp.

497{
498 return E_NOTIMPL;
499}

◆ GetTypeInfo()

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

Implements IDispatch.

Definition at line 440 of file addresseditbox.cpp.

441{
442 return E_NOTIMPL;
443}

◆ GetTypeInfoCount()

HRESULT STDMETHODCALLTYPE CAddressEditBox::GetTypeInfoCount ( UINT pctinfo)
virtual

Implements IDispatch.

Definition at line 435 of file addresseditbox.cpp.

436{
437 return E_NOTIMPL;
438}

◆ Init()

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

Definition at line 72 of file addresseditbox.cpp.

73{
74 CComPtr<IBrowserService> browserService;
75
76 fCombobox.SubclassWindow(comboboxEx);
77 fEditWindow.SubclassWindow(editControl);
78 fSite = param18;
79 hComboBoxEx = comboboxEx;
80
82
83 // take advice to watch events
84 HRESULT hResult = IUnknown_QueryService(param18, SID_SShellBrowser, IID_PPV_ARG(IBrowserService, &browserService));
85 if (SUCCEEDED(hResult))
86 {
87 hResult = AtlAdvise(browserService, static_cast<IDispatch *>(this), DIID_DWebBrowserEvents, &fAdviseCookie);
88 }
89
90 return hResult;
91}
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:1912
#define SHACF_USETAB
Definition: shlwapi.h:1916
#define SHACF_URLALL
Definition: shlwapi.h:1915

◆ Invoke()

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

Implements IDispatch.

Definition at line 451 of file addresseditbox.cpp.

453{
454 if (pDispParams == NULL)
455 return E_INVALIDARG;
456
457 switch (dispIdMember)
458 {
461 if (pidlLastParsed)
462 {
465 }
466
468 break;
469 }
470 return S_OK;
471}
#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  )
virtual

Implements IPersistStream.

Definition at line 481 of file addresseditbox.cpp.

482{
483 return E_NOTIMPL;
484}

◆ IsWindowOwner()

HRESULT STDMETHODCALLTYPE CAddressEditBox::IsWindowOwner ( HWND  hWnd)
virtual

Definition at line 414 of file addresseditbox.cpp.

415{
416 if (fCombobox.m_hWnd == hWnd)
417 return S_OK;
418 if (fEditWindow.m_hWnd == hWnd)
419 return S_OK;
420 return S_FALSE;
421}
HWND hWnd
Definition: settings.c:17
#define S_FALSE
Definition: winerror.h:2357

◆ Load()

HRESULT STDMETHODCALLTYPE CAddressEditBox::Load ( IStream pStm)
virtual

Implements IPersistStream.

Definition at line 486 of file addresseditbox.cpp.

487{
488 return E_NOTIMPL;
489}

◆ OnWinEvent()

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

Definition at line 363 of file addresseditbox.cpp.

365{
366 LPNMHDR hdr;
367
368 if (theResult)
369 *theResult = 0;
370
371 switch (uMsg)
372 {
373 case WM_COMMAND:
374 {
376 {
377 UINT selectedIndex = SendMessageW((HWND)lParam, CB_GETCURSEL, 0, 0);
379 Execute(0);
380 }
381 break;
382 }
383 case WM_NOTIFY:
384 {
385 hdr = (LPNMHDR) lParam;
386 if (hdr->code == CBEN_ENDEDIT)
387 {
388 NMCBEENDEDITW *endEdit = (NMCBEENDEDITW*) lParam;
389 if (endEdit->iWhy == CBENF_RETURN)
390 {
391 Execute(0);
392 }
393 else if (endEdit->iWhy == CBENF_ESCAPE)
394 {
395 /* Reset the contents of the combo box */
397 }
398 }
399 else if (hdr->code == CBEN_DELETEITEM)
400 {
402 LPITEMIDLIST itemPidl = (LPITEMIDLIST)pCBEx->ceItem.lParam;
403 if (itemPidl)
404 {
405 ILFree(itemPidl);
406 }
407 }
408 break;
409 }
410 }
411 return S_OK;
412}
virtual HRESULT STDMETHODCALLTYPE Execute(long paramC)
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
unsigned int UINT
Definition: ndis.h:50
#define CBEN_ENDEDIT
Definition: commctrl.h:3885
#define CBENF_RETURN
Definition: commctrl.h:3888
#define CBENF_ESCAPE
Definition: commctrl.h:3889
#define CBEN_DELETEITEM
Definition: commctrl.h:3873
#define PNMCOMBOBOXEX
Definition: commctrl.h:3868
#define WM_NOTIFY
Definition: richedit.h:61
#define HIWORD(l)
Definition: typedefs.h:247
#define WM_COMMAND
Definition: winuser.h:1730
#define CBN_SELCHANGE
Definition: winuser.h:1969
struct tagNMHDR * LPNMHDR
#define CB_GETITEMDATA
Definition: winuser.h:1940
#define CB_GETCURSEL
Definition: winuser.h:1933

◆ ParseNow()

HRESULT STDMETHODCALLTYPE CAddressEditBox::ParseNow ( long  paramC)
virtual

Definition at line 203 of file addresseditbox.cpp.

204{
205 ULONG eaten;
206 ULONG attributes;
207 HRESULT hr;
208 HWND topLevelWindow;
209 PIDLIST_ABSOLUTE pidlCurrent= NULL;
210 PIDLIST_RELATIVE pidlRelative = NULL;
211 CComPtr<IShellFolder> psfCurrent;
212
216 return hr;
217
218 hr = IUnknown_GetWindow(pbs, &topLevelWindow);
220 return hr;
221
222 /* Get the path to browse and expand it if needed */
225 return E_FAIL;
226
227 INT addressLength = (wcschr(input, L'%') ? ::SHExpandEnvironmentStringsW(input, NULL, 0) : 0);
228 if (addressLength <= 0 ||
229 !address.Allocate(addressLength + 1) ||
231 {
232 address.Free();
233 address.Attach(input.Detach());
234 }
235
236 /* Try to parse a relative path and if it fails, try to browse an absolute path */
237 CComPtr<IShellFolder> psfDesktop;
238 hr = SHGetDesktopFolder(&psfDesktop);
240 goto cleanup;
241
242 hr = pbs->GetPidl(&pidlCurrent);
244 goto parseabsolute;
245
246 hr = psfDesktop->BindToObject(pidlCurrent, NULL, IID_PPV_ARG(IShellFolder, &psfCurrent));
248 goto parseabsolute;
249
250 hr = psfCurrent->ParseDisplayName(topLevelWindow, NULL, address, &eaten, &pidlRelative, &attributes);
251 if (SUCCEEDED(hr))
252 {
253 pidlLastParsed = ILCombine(pidlCurrent, pidlRelative);
254 ILFree(pidlRelative);
255 goto cleanup;
256 }
257
258parseabsolute:
259 /* We couldn't parse a relative path, attempt to parse an absolute path */
260 hr = psfDesktop->ParseDisplayName(topLevelWindow, NULL, address, &eaten, &pidlLastParsed, &attributes);
261
262cleanup:
263 if (pidlCurrent)
264 ILFree(pidlCurrent);
265 return hr;
266}
#define wcschr
Definition: compat.h:17
static void cleanup(void)
Definition: main.c:1335
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 501 of file addresseditbox.cpp.

502{
503 HRESULT hr;
504 LPITEMIDLIST pidl;
505 int indent = 0;
506 int index;
507
509 for (int i = 0; i < index; i++)
512
513 /* Calculate the indent level. No need to clone the pidl */
514 pidl = pidlCurrent;
515 do
516 {
517 if(!pidl->mkid.cb)
518 break;
519 pidl = ILGetNext(pidl);
520 indent++;
521 } while (pidl);
522 index = indent;
523
524 /* Add every id from the pidl in the combo box */
525 pidl = ILClone(pidlCurrent);
526 do
527 {
528 AddComboBoxItem(pidl, 0, index);
529 ILRemoveLastID(pidl);
530 index--;
531 } while (index >= 0);
532 ILFree(pidl);
533
534 /* Add the items of the desktop */
535 FillOneLevel(0, 1, indent);
536
537 /* Add the items of My Computer */
540 return;
541
543 {
544 if (ILIsEqual(i, pidl))
545 {
547 break;
548 }
549 index++;
550 }
551 ILFree(pidl);
552}
void FillOneLevel(int index, int levelIndent, int indent)
HRESULT WINAPI SHGetSpecialFolderLocation(HWND hwndOwner, INT nFolder, LPITEMIDLIST *ppidl)
Definition: shellpath.c:3194
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:212
LPITEMIDLIST WINAPI ILGetNext(LPCITEMIDLIST pidl)
Definition: pidl.c:855
#define CBEM_DELETEITEM
Definition: commctrl.h:3831
#define CSIDL_DRIVES
Definition: shlobj.h:2045
#define CB_RESETCONTENT
Definition: winuser.h:1949
#define CB_GETCOUNT
Definition: winuser.h:1932

Referenced by RefreshAddress().

◆ QueryStatus()

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

Implements IOleCommandTarget.

Definition at line 423 of file addresseditbox.cpp.

425{
426 return E_NOTIMPL;
427}

◆ Refresh()

HRESULT STDMETHODCALLTYPE CAddressEditBox::Refresh ( long  param8)
virtual

Definition at line 67 of file addresseditbox.cpp.

68{
69 return E_NOTIMPL;
70}

◆ RefreshAddress()

HRESULT CAddressEditBox::RefreshAddress ( )
private

Definition at line 107 of file addresseditbox.cpp.

108{
109 /* Get the current pidl of the browser */
110 CComHeapPtr<ITEMIDLIST> absolutePIDL;
111 HRESULT hr = GetAbsolutePidl(&absolutePIDL);
113 return hr;
114
115 /* Fill the combobox */
116 ATLASSERT(absolutePIDL != NULL);
117 PopulateComboBox(absolutePIDL);
118
119 /* Get pShellFolder and pidlChild */
120 CComPtr<IShellFolder> pShellFolder;
121 PCITEMID_CHILD pidlChild;
122 hr = SHBindToParent(absolutePIDL, IID_PPV_ARG(IShellFolder, &pShellFolder), &pidlChild);
124 return hr;
125
126 /* Get ready to set the displayed item */
128 item.iItem = -1; /* -1 to specify the displayed item */
129 item.iImage = SHMapPIDLToSystemImageListIndex(pShellFolder, pidlChild, &item.iSelectedImage);
130
131 /* Set the path if filesystem; otherwise use the name */
132 WCHAR szPathOrName[MAX_PATH];
133 if (!SHGetPathFromIDListW(absolutePIDL, szPathOrName))
134 {
135 STRRET ret;
136 hr = pShellFolder->GetDisplayNameOf(pidlChild, SHGDN_FORADDRESSBAR | SHGDN_FORPARSING, &ret);
138 return hr;
139
140 hr = StrRetToBufW(&ret, pidlChild, szPathOrName, _countof(szPathOrName));
142 return hr;
143 }
144 item.pszText = szPathOrName;
145
146 /* Ownership of absolutePIDL will be moved to fCombobox. See CBEN_DELETEITEM */
147 item.lParam = reinterpret_cast<LPARAM>(absolutePIDL.Detach());
148
149 fCombobox.SendMessage(CBEM_SETITEM, 0, reinterpret_cast<LPARAM>(&item)); /* Set it! */
150 return S_OK;
151}
#define ATLASSERT(x)
Definition: CComVariant.cpp:10
LRESULT SendMessage(UINT message, WPARAM wParam=0, LPARAM lParam=0)
Definition: atlwin.h:1116
void PopulateComboBox(LPITEMIDLIST pidl)
T * Detach()
Definition: atlalloc.h:168
#define CBEM_SETITEM
Definition: commctrl.h:3846
#define _countof(array)
Definition: sndvol32.h:68
int ret

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

◆ Save() [1/2]

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

Implements IPersistStream.

Definition at line 491 of file addresseditbox.cpp.

492{
493 return E_NOTIMPL;
494}

◆ Save() [2/2]

HRESULT STDMETHODCALLTYPE CAddressEditBox::Save ( long  paramC)
virtual

Definition at line 358 of file addresseditbox.cpp.

359{
360 return E_NOTIMPL;
361}

◆ SetCurrentDir()

HRESULT STDMETHODCALLTYPE CAddressEditBox::SetCurrentDir ( long  paramC)
virtual

Definition at line 93 of file addresseditbox.cpp.

94{
95 return E_NOTIMPL;
96}

◆ SetOwner()

HRESULT STDMETHODCALLTYPE CAddressEditBox::SetOwner ( IUnknown pOwner)
virtual

Implements IShellService.

Definition at line 48 of file addresseditbox.cpp.

49{
50 if (!pOwner)
51 {
52 CComPtr<IBrowserService> browserService;
54 if (SUCCEEDED(hResult))
55 AtlUnadvise(browserService, DIID_DWebBrowserEvents, fAdviseCookie);
56 fSite = NULL;
57 }
58 // connect to browser connection point
59 return 0;
60}
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 268 of file addresseditbox.cpp.

269{
272 return E_FAIL;
273
275
276 return hRet;
277}
#define IDS_PARSE_ADDR_ERR_TITLE
Definition: resource.h:182
#define IDS_PARSE_ADDR_ERR_TEXT
Definition: resource.h:183
#define ShellMessageBoxW
Definition: precomp.h:59
#define MB_ICONERROR
Definition: winuser.h:781
#define MB_OK
Definition: winuser.h:784
#define MAKEINTRESOURCEW(i)
Definition: winuser.h:582

Referenced by Execute().

Member Data Documentation

◆ fAdviseCookie

DWORD CAddressEditBox::fAdviseCookie
private

Definition at line 38 of file addresseditbox.h.

Referenced by Init(), and SetOwner().

◆ fCombobox

CContainedWindow CAddressEditBox::fCombobox
private

◆ fEditWindow

CContainedWindow CAddressEditBox::fEditWindow
private

Definition at line 37 of file addresseditbox.h.

Referenced by Init(), and IsWindowOwner().

◆ fSite

CComPtr<IUnknown> CAddressEditBox::fSite
private

Definition at line 39 of file addresseditbox.h.

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

◆ hComboBoxEx

HWND CAddressEditBox::hComboBoxEx
private

Definition at line 41 of file addresseditbox.h.

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

◆ pidlLastParsed

LPITEMIDLIST CAddressEditBox::pidlLastParsed
private

Definition at line 40 of file addresseditbox.h.

Referenced by Execute(), Invoke(), OnWinEvent(), ParseNow(), and ~CAddressEditBox().


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