Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

97 lines
2.5 KiB

#ifndef __COMBOBOX_HXX_
#define __COMBOBOX_HXX_
#include "basectl.hxx"
#include "resource.h" // main symbols
/////////////////////////////////////////////////////////////////////////////
//
// CCombobox
//
/////////////////////////////////////////////////////////////////////////////
class ATL_NO_VTABLE CCombobox :
public CBaseCtl,
public CComCoClass<CCombobox, &CLSID_CCombobox>,
public IDispatchImpl<ICombobox, &IID_ICombobox, &LIBID_IEXTagLib>
{
// Event sink
class CEventSink;
public:
CCombobox ();
~CCombobox ();
//
// CBaseCtl overrides
//
virtual HRESULT Init();
STDMETHOD(ProcOnClick)(CEventSink *pSink);
// ICombobox
STDMETHOD(put_value)(BSTR v);
STDMETHOD(get_value)(BSTR * pv);
//
// wiring
//
DECLARE_REGISTRY_RESOURCEID(IDR_COMBOBOX)
DECLARE_NOT_AGGREGATABLE(CCombobox)
BEGIN_COM_MAP(CCombobox)
COM_INTERFACE_ENTRY2(IDispatch,ICombobox)
COM_INTERFACE_ENTRY(IAccessible)
COM_INTERFACE_ENTRY(IElementBehavior)
COM_INTERFACE_ENTRY(ICombobox)
COM_INTERFACE_ENTRY(IPersistPropertyBag2)
END_COM_MAP()
DECLARE_PROPDESC_MEMBERS(1);
private:
IHTMLPopup *m_pHTMLPopup;
CEventSink *m_pSink;
CEventSink *_apSinkElem[2];
CEventSink *_pSinkBody;
HWND _hwnd;
IMarkupContainer *_pPrimaryMarkup;
STDMETHOD(Detach)();
class CEventSink : public IDispatch
{
public:
CEventSink (CCombobox *pCombobox);
STDMETHODIMP QueryInterface(REFIID, void **);
STDMETHODIMP_(ULONG) AddRef(void);
STDMETHODIMP_(ULONG) Release(void);
//IDispatch
STDMETHODIMP GetTypeInfoCount(UINT* pctinfo);
STDMETHODIMP GetTypeInfo(UINT iTInfo, LCID lcid, ITypeInfo** ppTInfo);
STDMETHODIMP GetIDsOfNames( REFIID riid,
LPOLESTR *rgszNames,
UINT cNames,
LCID lcid,
DISPID *rgDispId);
STDMETHODIMP Invoke(DISPID dispIdMember,
REFIID riid,
LCID lcid,
WORD wFlags,
DISPPARAMS *pDispParams,
VARIANT *pVarResult,
EXCEPINFO *pExcepInfo,
UINT *puArgErr);
private:
CCombobox *m_pParent;
};
};
#endif // __COMBOBOX_HXX_