soui 5.0.0.1
Soui5 Doc
 
Loading...
Searching...
No Matches
SCtrlProxy.h
1#ifndef _SCTRL_PROXY_H_
2#define _SCTRL_PROXY_H_
3
4SNSBEGIN
5
6template <class T, class Base>
7class TCtrlProxy
8 : public T
9 , public Base
10{
11public:
12 STDMETHOD_(long, AddRef)(THIS) OVERRIDE
13 {
14 return Base::AddRef();
15 }
16 STDMETHOD_(long, Release)(THIS) OVERRIDE
17 {
18 return Base::Release();
19 }
20 STDMETHOD_(void, OnFinalRelease)(THIS) OVERRIDE
21 {
22 return Base::OnFinalRelease();
23 }
24
25 STDMETHOD_(IWindow *, ToIWindow)(THIS) OVERRIDE
26 {
27 return (IWindow *)this;
28 }
29
30 STDMETHOD_(HRESULT, QueryInterface)(REFGUID id, IObjRef **ppRet) OVERRIDE
31 {
32 if (id == T::GetIID())
33 {
34 *ppRet = (T *)this;
35 AddRef();
36 return S_OK;
37 }
38 else
39 {
40 return Base::QueryInterface(id, ppRet);
41 }
42 }
43};
44
45SNSEND
46
47#endif//_SCTRL_PROXY_H_