windows-nt/Source/XPSP1/NT/shell/shell32/duihost.h
2020-09-26 16:20:57 +08:00

39 lines
1.2 KiB
C++

class DUIAxHost : public HWNDHost
{
public:
static HRESULT Create(Element**) { return E_NOTIMPL; } // Required for ClassInfo
static HRESULT Create(OUT DUIAxHost** ppElement) { return Create(0, AE_MouseAndKeyboard, ppElement); }
static HRESULT Create(UINT nCreate, UINT nActive, OUT DUIAxHost** ppElement);
~DUIAxHost() { ATOMICRELEASE(_pOleObject); }
// Initialization
HRESULT SetSite(IUnknown* punkSite);
HRESULT AttachControl(IUnknown* punkObject);
virtual bool OnNotify(UINT nMsg, WPARAM wParam, LPARAM lParam, LRESULT* plRet);
virtual void OnDestroy();
// Rendering
virtual SIZE GetContentSize(int dConstW, int dConstH, Surface* psrf);
// Keyboard navigation
virtual void SetKeyFocus();
virtual void OnEvent(Event* pEvent);
// ClassInfo accessors (static and virtual instance-based)
static IClassInfo* Class;
virtual IClassInfo* GetClassInfo() { return Class; }
static HRESULT Register();
DUIAxHost() : _pOleObject(NULL) {}
bool FakeTabEvent();
virtual HWND CreateHWND(HWND hwndParent);
virtual HRESULT GetAccessibleImpl(IAccessible ** ppAccessible);
private:
IOleObject* _pOleObject;
};