4 * Copyright 2009 Andrew Hill <ash77 at domain reactos.org>
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
23 class CAddressEditBox
:
24 public CWindowImpl
<CAddressEditBox
, CWindow
, CControlWinTraits
>,
25 public CComCoClass
<CAddressEditBox
, &CLSID_AddressEditBox
>,
26 public CComObjectRootEx
<CComMultiThreadModelNoCS
>,
27 public IWinEventHandler
,
30 public IAddressEditBox
,
31 public IOleCommandTarget
,
32 public IPersistStream
,
36 CContainedWindow fCombobox
;
37 CContainedWindow fEditWindow
;
38 CComPtr
<IUnknown
> fSite
;
44 // *** IShellService methods ***
45 virtual HRESULT STDMETHODCALLTYPE
SetOwner(IUnknown
*);
47 // *** IAddressBand methods ***
48 virtual HRESULT STDMETHODCALLTYPE
FileSysChange(long param8
, long paramC
);
49 virtual HRESULT STDMETHODCALLTYPE
Refresh(long param8
);
51 // *** IAddressEditBox methods ***
52 virtual HRESULT STDMETHODCALLTYPE
Init(HWND comboboxEx
, HWND editControl
, long param14
, IUnknown
*param18
);
53 virtual HRESULT STDMETHODCALLTYPE
SetCurrentDir(long paramC
);
54 virtual HRESULT STDMETHODCALLTYPE
ParseNow(long paramC
);
55 virtual HRESULT STDMETHODCALLTYPE
Execute(long paramC
);
56 virtual HRESULT STDMETHODCALLTYPE
Save(long paramC
);
58 // *** IWinEventHandler methods ***
59 virtual HRESULT STDMETHODCALLTYPE
OnWinEvent(HWND hWnd
, UINT uMsg
, WPARAM wParam
, LPARAM lParam
, LRESULT
*theResult
);
60 virtual HRESULT STDMETHODCALLTYPE
IsWindowOwner(HWND hWnd
);
62 // *** IOleCommandTarget methods ***
63 virtual HRESULT STDMETHODCALLTYPE
QueryStatus(const GUID
*pguidCmdGroup
, ULONG cCmds
, OLECMD prgCmds
[ ], OLECMDTEXT
*pCmdText
);
64 virtual HRESULT STDMETHODCALLTYPE
Exec(const GUID
*pguidCmdGroup
, DWORD nCmdID
, DWORD nCmdexecopt
, VARIANT
*pvaIn
, VARIANT
*pvaOut
);
66 // *** IDispatch methods ***
67 virtual HRESULT STDMETHODCALLTYPE
GetTypeInfoCount(UINT
*pctinfo
);
68 virtual HRESULT STDMETHODCALLTYPE
GetTypeInfo(UINT iTInfo
, LCID lcid
, ITypeInfo
**ppTInfo
);
69 virtual HRESULT STDMETHODCALLTYPE
GetIDsOfNames(REFIID riid
, LPOLESTR
*rgszNames
, UINT cNames
, LCID lcid
, DISPID
*rgDispId
);
70 virtual HRESULT STDMETHODCALLTYPE
Invoke(DISPID dispIdMember
, REFIID riid
, LCID lcid
, WORD wFlags
, DISPPARAMS
*pDispParams
, VARIANT
*pVarResult
, EXCEPINFO
*pExcepInfo
, UINT
*puArgErr
);
72 // *** IPersist methods ***
73 virtual HRESULT STDMETHODCALLTYPE
GetClassID(CLSID
*pClassID
);
75 // *** IPersistStream methods ***
76 virtual HRESULT STDMETHODCALLTYPE
IsDirty();
77 virtual HRESULT STDMETHODCALLTYPE
Load(IStream
*pStm
);
78 virtual HRESULT STDMETHODCALLTYPE
Save(IStream
*pStm
, BOOL fClearDirty
);
79 virtual HRESULT STDMETHODCALLTYPE
GetSizeMax(ULARGE_INTEGER
*pcbSize
);
83 DECLARE_REGISTRY_RESOURCEID(IDR_ADDRESSEDITBOX
)
84 DECLARE_NOT_AGGREGATABLE(CAddressEditBox
)
86 DECLARE_PROTECT_FINAL_CONSTRUCT()
88 BEGIN_MSG_MAP(CAddressEditBox
)
91 BEGIN_COM_MAP(CAddressEditBox
)
92 COM_INTERFACE_ENTRY_IID(IID_IShellService
, IShellService
)
93 COM_INTERFACE_ENTRY_IID(IID_IAddressBand
, IAddressBand
)
94 COM_INTERFACE_ENTRY_IID(IID_IAddressEditBox
, IAddressEditBox
)
95 COM_INTERFACE_ENTRY_IID(IID_IWinEventHandler
, IWinEventHandler
)
96 COM_INTERFACE_ENTRY_IID(IID_IOleCommandTarget
, IOleCommandTarget
)
97 COM_INTERFACE_ENTRY_IID(IID_IDispatch
, IDispatch
)
98 COM_INTERFACE_ENTRY_IID(IID_IPersist
, IPersist
)
99 COM_INTERFACE_ENTRY_IID(IID_IPersistStream
, IPersistStream
)