⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mycomproobjimpl.h

📁 C++Builder高级应用开发指南随书源码
💻 H
字号:
// MYCOMPROOBJIMPL.H : Declaration of the TMyComProObjImpl

#ifndef MyComProObjImplH
#define MyComProObjImplH

#include "ComProDll_TLB.H"

#define _MTX_NOFORCE_LIBS
#include <vcl\mtshlpr.h>


/////////////////////////////////////////////////////////////////////////////
// TMyComProObjImpl     Implements IMyComProObj, default interface of MyComProObj
// ThreadingModel : tmApartment
// Dual Interface : TRUE
// Event Support  : FALSE
// Default ProgID : ComProDll.MyComProObj
// Description    : 
/////////////////////////////////////////////////////////////////////////////
class ATL_NO_VTABLE TMyComProObjImpl : 
  public CComObjectRootEx<CComSingleThreadModel>,
  public CComCoClass<TMyComProObjImpl, &CLSID_MyComProObj>,
  public IObjectControl,
  public IDispatchImpl<IMyComProObj, &IID_IMyComProObj, &LIBID_ComProDll>
{
public:
  TMyComProObjImpl()
  {
    FMoney=0;
  }

  // Data used when registering Object 
  //
  DECLARE_THREADING_MODEL(otApartment);
  DECLARE_PROGID("ComProDll.MyComProObj");
  DECLARE_DESCRIPTION("");

  // Function invoked to (un)register object
  //
  static HRESULT WINAPI UpdateRegistry(BOOL bRegister)
  {
    TTypedComServerRegistrarT<TMyComProObjImpl> 
    regObj(GetObjectCLSID(), GetProgID(), GetDescription());
    return regObj.UpdateRegistry(bRegister);
  }

DECLARE_NOT_AGGREGATABLE(TMyComProObjImpl)

BEGIN_COM_MAP(TMyComProObjImpl)
  COM_INTERFACE_ENTRY(IMyComProObj)
  COM_INTERFACE_ENTRY(IObjectControl)
  COM_INTERFACE_ENTRY(IDispatch)
END_COM_MAP()

// IObjectControl
public:
  STDMETHOD(Activate)();
  STDMETHOD(Deposit(long Value));
  STDMETHOD(get_Money(long* Value));
  STDMETHOD(WithDraw(long Value));
  STDMETHOD_(BOOL, CanBePooled)();
  STDMETHOD_(void, Deactivate)();

  CComPtr<IObjectContext> m_spObjectContext;

// IMyComProObj
public:

private:
    long FMoney;
};

#endif //MyComProObjImplH

⌨️ 快捷键说明

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