smartproxy.h

来自「《ATL深入解析》随书源码」· C头文件 代码 · 共 43 行

H
43
字号
// SmartProxy.h : Declaration of the CSmartProxy

#ifndef __SMARTPROXY_H_
#define __SMARTPROXY_H_

#include "resource.h"       // main symbols

/////////////////////////////////////////////////////////////////////////////
// CSmartProxy
class ATL_NO_VTABLE CSmartProxy : 
  public CComObjectRootEx<CComSingleThreadModel>,
  public CComCoClass<CSmartProxy, &CLSID_SmartProxy>,
  public IUnknown
{
public:
DECLARE_REGISTRY_RESOURCEID(IDR_SMARTPROXY)
DECLARE_PROTECT_FINAL_CONSTRUCT()

BEGIN_COM_MAP(CSmartProxy)
  COM_INTERFACE_ENTRY(IUnknown)
  COM_INTERFACE_ENTRY_FUNC_BLIND(0, _QI)
END_COM_MAP()
    
public:
  static HRESULT WINAPI _QI(void* pv, REFIID iid, void** ppvObject, DWORD) {
    // Forward to QI member function
    return ((CSmartProxy*)pv)->QI(iid, ppvObject);
  }
  
  // Per-object implementation of QI
  HRESULT QI(REFIID riid, void** ppv) { return E_NOINTERFACE; }
};

class CSmarterProxy : public CSmartProxy {
public:
BEGIN_COM_MAP(CSmarterProxy)
  COM_INTERFACE_ENTRY(IUnknown)
  COM_INTERFACE_ENTRY_CHAIN(CSmartProxy)
END_COM_MAP()
};

#endif //__SMARTPROXY_H_

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?