ReactOS 0.4.15-dev-7934-g1dc8d80
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 (long paramC) 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
 
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:938

Member Function Documentation

◆ AddComboBoxItem()

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

Definition at line 556 of file addresseditbox.cpp.

557{
558 HRESULT hr;
559 WCHAR buf[4096];
560
561 LPCITEMIDLIST pidlChild;
563 hr = SHBindToParent(pidl, IID_PPV_ARG(IShellFolder, &sf), &pidlChild);
565 return;
566
567 STRRET strret;
568 hr = sf->GetDisplayNameOf(pidlChild, SHGDN_FORADDRESSBAR, &strret);
570 return;
571
572 hr = StrRetToBufW(&strret, pidlChild, buf, 4095);
574 return;
575
576 COMBOBOXEXITEMW item = {0};
578 item.iImage = SHMapPIDLToSystemImageListIndex(sf, pidlChild, &item.iSelectedImage);
579 item.pszText = buf;
580 item.lParam = (LPARAM)(ILClone(pidl));
581 item.iIndent = indent;
582 item.iItem = index;
584}
#define index(s, c)
Definition: various.h:29
static const WCHAR indent[]
Definition: object.c:1156
#define FAILED_UNEXPECTEDLY(hr)
Definition: precomp.h:121
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:766
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:1361
#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
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 431 of file addresseditbox.cpp.

433{
434 return E_NOTIMPL;
435}
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ Execute()

HRESULT STDMETHODCALLTYPE CAddressEditBox::Execute ( long  paramC)
override

Definition at line 273 of file addresseditbox.cpp.

274{
275 HRESULT hr;
276
277 /*
278 * Parse the path if it wasn't parsed
279 */
280 if (!pidlLastParsed)
281 {
282 hr = ParseNow(0);
283
284 /* If the destination path doesn't exist then display an error message */
286 {
287 if (ExecuteCommandLine())
288 return S_OK;
289
291 }
292
293 if (!pidlLastParsed)
294 return E_FAIL;
295 }
296
297 /*
298 * Get the IShellBrowser and IBrowserService interfaces of the shell browser
299 */
302 if (FAILED(hr))
303 return hr;
304
305 /*
306 * Get the current pidl of the shellbrowser and check if it is the same with the parsed one
307 */
308 PIDLIST_ABSOLUTE pidl;
309 hr = GetAbsolutePidl(&pidl);
310 if (FAILED(hr))
311 return hr;
312
314 hr = SHGetDesktopFolder(&psf);
315 if (FAILED(hr))
316 return hr;
317
318 hr = psf->CompareIDs(0, pidl, pidlLastParsed);
319
320 SHFree(pidl);
321
322 if (hr == 0)
323 {
324 if (pidlLastParsed)
325 {
328 }
329 return S_OK;
330 }
331
332 /*
333 * Attempt to browse to the parsed pidl
334 */
335 hr = pisb->BrowseObject(pidlLastParsed, 0);
336 if (SUCCEEDED(hr))
337 return hr;
338
339 /*
340 * Browsing to the pidl failed so it's not a folder. So invoke its defaule command.
341 */
342 HWND topLevelWindow;
343 hr = IUnknown_GetWindow(pisb, &topLevelWindow);
344 if (FAILED(hr))
345 return hr;
346
347 LPCITEMIDLIST pidlChild;
350 if (FAILED(hr))
351 return hr;
352
353 hr = SHInvokeDefaultCommand(topLevelWindow, sf, pidlChild);
354 if (FAILED(hr))
355 return hr;
356
357 return hr;
358}
HRESULT WINAPI SHGetDesktopFolder(IShellFolder **psf)
HRESULT GetAbsolutePidl(PIDLIST_ABSOLUTE *pAbsolutePIDL)
STDMETHOD() ParseNow(long paramC) override
HRESULT STDMETHODCALLTYPE ShowFileNotFoundError(HRESULT hRet)
#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:3056
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 162 of file addresseditbox.cpp.

163{
164 /* Get command line */
165 CComHeapPtr<WCHAR> pszCmdLine;
166 if (!GetComboBoxText(pszCmdLine))
167 return FALSE;
168
169 /* Split 1st parameter from trailing arguments */
170 PWCHAR args = PathGetArgsW(pszCmdLine);
171 PathRemoveArgsW(pszCmdLine);
172
173 PathUnquoteSpacesW(pszCmdLine); /* Unquote the 1st parameter */
174
175 /* Get ready for execution */
176 SHELLEXECUTEINFOW info = { sizeof(info), SEE_MASK_FLAG_NO_UI, m_hWnd };
177 info.lpFile = pszCmdLine;
178 info.lpParameters = args;
179 info.nShow = SW_SHOWNORMAL;
180
181 /* Set current directory */
182 WCHAR dir[MAX_PATH] = L"";
184 if (SUCCEEDED(GetAbsolutePidl(&pidl)))
185 {
187 info.lpDirectory = dir;
188 }
189
190 if (!::ShellExecuteExW(&info)) /* Execute! */
191 return FALSE;
192
194 return TRUE;
195}
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:1353
#define SEE_MASK_FLAG_NO_UI
Definition: shellapi.h:36
BOOL WINAPI DECLSPEC_HOTPATCH ShellExecuteExW(LPSHELLEXECUTEINFOW sei)
Definition: shlexec.cpp:2391
Definition: match.c:390
uint16_t * PWCHAR
Definition: typedefs.h:56
#define SW_SHOWNORMAL
Definition: winuser.h:770

Referenced by Execute().

◆ FileSysChange()

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

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 586 of file addresseditbox.cpp.

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

148{
150 HRESULT hr = IUnknown_QueryService(fSite, SID_STopLevelBrowser, IID_PPV_ARG(IBrowserService, &isb));
152 return hr;
153
154 hr = isb->GetPidl(pAbsolutePIDL);
156 return hr;
157
158 return S_OK;
159}

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

◆ GetClassID()

HRESULT STDMETHODCALLTYPE CAddressEditBox::GetClassID ( CLSID pClassID)
override

Implements IPersist.

Definition at line 475 of file addresseditbox.cpp.

476{
477 if (pClassID == NULL)
478 return E_POINTER;
479 *pClassID = CLSID_AddressEditBox;
480 return S_OK;
481}
#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 
)
override

Implements IDispatch.

Definition at line 447 of file addresseditbox.cpp.

449{
450 return E_NOTIMPL;
451}

◆ GetItemData()

LPITEMIDLIST CAddressEditBox::GetItemData ( int  index)
private

Definition at line 639 of file addresseditbox.cpp.

640{
642
643 memset(&item, 0, sizeof(COMBOBOXEXITEMW));
644 item.mask = CBEIF_LPARAM;
645 item.iItem = index;
647 return (LPITEMIDLIST)item.lParam;
648}
#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)
override

Implements IPersistStream.

Definition at line 498 of file addresseditbox.cpp.

499{
500 return E_NOTIMPL;
501}

◆ GetTypeInfo()

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

Implements IDispatch.

Definition at line 442 of file addresseditbox.cpp.

443{
444 return E_NOTIMPL;
445}

◆ GetTypeInfoCount()

HRESULT STDMETHODCALLTYPE CAddressEditBox::GetTypeInfoCount ( UINT pctinfo)
override

Implements IDispatch.

Definition at line 437 of file addresseditbox.cpp.

438{
439 return E_NOTIMPL;
440}

◆ Init()

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

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 
)
override

Implements IDispatch.

Definition at line 453 of file addresseditbox.cpp.

455{
456 if (pDispParams == NULL)
457 return E_INVALIDARG;
458
459 switch (dispIdMember)
460 {
463 if (pidlLastParsed)
464 {
467 }
468
470 break;
471 }
472 return S_OK;
473}
#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 483 of file addresseditbox.cpp.

484{
485 return E_NOTIMPL;
486}

◆ IsWindowOwner()

HRESULT STDMETHODCALLTYPE CAddressEditBox::IsWindowOwner ( HWND  hWnd)
override

Definition at line 416 of file addresseditbox.cpp.

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

◆ Load()

HRESULT STDMETHODCALLTYPE CAddressEditBox::Load ( IStream pStm)
override

Implements IPersistStream.

Definition at line 488 of file addresseditbox.cpp.

489{
490 return E_NOTIMPL;
491}

◆ OnSettingChange()

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

Definition at line 650 of file addresseditbox.cpp.

651{
653 return NO_ERROR;
654}
#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 365 of file addresseditbox.cpp.

367{
368 LPNMHDR hdr;
369
370 if (theResult)
371 *theResult = 0;
372
373 switch (uMsg)
374 {
375 case WM_COMMAND:
376 {
378 {
379 UINT selectedIndex = SendMessageW((HWND)lParam, CB_GETCURSEL, 0, 0);
381 Execute(0);
382 }
383 break;
384 }
385 case WM_NOTIFY:
386 {
387 hdr = (LPNMHDR) lParam;
388 if (hdr->code == CBEN_ENDEDIT)
389 {
390 NMCBEENDEDITW *endEdit = (NMCBEENDEDITW*) lParam;
391 if (endEdit->iWhy == CBENF_RETURN)
392 {
393 Execute(0);
394 }
395 else if (endEdit->iWhy == CBENF_ESCAPE)
396 {
397 /* Reset the contents of the combo box */
399 }
400 }
401 else if (hdr->code == CBEN_DELETEITEM)
402 {
404 LPITEMIDLIST itemPidl = (LPITEMIDLIST)pCBEx->ceItem.lParam;
405 if (itemPidl)
406 {
407 ILFree(itemPidl);
408 }
409 }
410 break;
411 }
412 }
413 return S_OK;
414}
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
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:1740
#define CBN_SELCHANGE
Definition: winuser.h:1979
struct tagNMHDR * LPNMHDR
#define CB_GETITEMDATA
Definition: winuser.h:1950
#define CB_GETCURSEL
Definition: winuser.h:1943

◆ ParseNow()

HRESULT STDMETHODCALLTYPE CAddressEditBox::ParseNow ( long  paramC)
override

Definition at line 197 of file addresseditbox.cpp.

198{
199 ULONG eaten;
200 ULONG attributes;
201 HRESULT hr;
202 HWND topLevelWindow;
203 PIDLIST_ABSOLUTE pidlCurrent= NULL;
204 PIDLIST_RELATIVE pidlRelative = NULL;
205 CComPtr<IShellFolder> psfCurrent;
206
210 return hr;
211
212 hr = IUnknown_GetWindow(pbs, &topLevelWindow);
214 return hr;
215
216 /* Get the path to browse and expand it if needed */
219 return E_FAIL;
220
221 INT addressLength = (wcschr(input, L'%') ? ::SHExpandEnvironmentStringsW(input, NULL, 0) : 0);
222 if (addressLength <= 0 ||
223 !address.Allocate(addressLength + 1) ||
225 {
226 address.Free();
227 address.Attach(input.Detach());
228 }
229
230 /* Try to parse a relative path and if it fails, try to browse an absolute path */
231 CComPtr<IShellFolder> psfDesktop;
232 hr = SHGetDesktopFolder(&psfDesktop);
234 goto cleanup;
235
236 hr = pbs->GetPidl(&pidlCurrent);
238 goto parseabsolute;
239
240 hr = psfDesktop->BindToObject(pidlCurrent, NULL, IID_PPV_ARG(IShellFolder, &psfCurrent));
242 goto parseabsolute;
243
244 hr = psfCurrent->ParseDisplayName(topLevelWindow, NULL, address, &eaten, &pidlRelative, &attributes);
245 if (SUCCEEDED(hr))
246 {
247 pidlLastParsed = ILCombine(pidlCurrent, pidlRelative);
248 ILFree(pidlRelative);
249 goto cleanup;
250 }
251
252parseabsolute:
253 /* We couldn't parse a relative path, attempt to parse an absolute path */
254 hr = psfDesktop->ParseDisplayName(topLevelWindow, NULL, address, &eaten, &pidlLastParsed, &attributes);
255
256cleanup:
257 if (pidlCurrent)
258 ILFree(pidlCurrent);
259 return hr;
260}
#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 503 of file addresseditbox.cpp.

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

Referenced by RefreshAddress().

◆ QueryStatus()

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

Implements IOleCommandTarget.

Definition at line 425 of file addresseditbox.cpp.

427{
428 return E_NOTIMPL;
429}

◆ Refresh()

HRESULT STDMETHODCALLTYPE CAddressEditBox::Refresh ( long  param8)
override

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 SHGDNF flags = SHGDN_FORADDRESSBAR;
135 flags |= SHGDN_FORPARSING;
136
137 if (SUCCEEDED(IEGetNameAndFlags(absolutePIDL, flags, szPathOrName, _countof(szPathOrName), NULL)))
138 item.pszText = szPathOrName;
139
140 /* Ownership of absolutePIDL will be moved to fCombobox. See CBEN_DELETEITEM */
141 item.lParam = reinterpret_cast<LPARAM>(absolutePIDL.Detach());
142
143 fCombobox.SendMessage(CBEM_SETITEM, 0, reinterpret_cast<LPARAM>(&item)); /* Set it! */
144 return S_OK;
145}
#define ATLASSERT(x)
Definition: CComVariant.cpp:10
HRESULT IEGetNameAndFlags(LPITEMIDLIST pidl, SHGDNF uFlags, LPWSTR pszBuf, UINT cchBuf, SFGAOF *rgfInOut)
LRESULT SendMessage(UINT message, WPARAM wParam=0, LPARAM lParam=0)
Definition: atlwin.h:1116
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:3846
#define _countof(array)
Definition: sndvol32.h:68

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

◆ Save() [1/2]

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

Implements IPersistStream.

Definition at line 493 of file addresseditbox.cpp.

494{
495 return E_NOTIMPL;
496}

◆ Save() [2/2]

HRESULT STDMETHODCALLTYPE CAddressEditBox::Save ( long  paramC)
override

Definition at line 360 of file addresseditbox.cpp.

361{
362 return E_NOTIMPL;
363}

◆ SetCurrentDir()

HRESULT STDMETHODCALLTYPE CAddressEditBox::SetCurrentDir ( long  paramC)
override

Definition at line 93 of file addresseditbox.cpp.

94{
95 return E_NOTIMPL;
96}

◆ SetOwner()

HRESULT STDMETHODCALLTYPE CAddressEditBox::SetOwner ( IUnknown pOwner)
override

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 262 of file addresseditbox.cpp.

263{
266 return E_FAIL;
267
269
270 return hRet;
271}
#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:787
#define MB_OK
Definition: winuser.h:790
#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: