myautoobjimpl.h

来自「C++Builder高级应用开发指南随书源码」· C头文件 代码 · 共 64 行

H
64
字号
// MYAUTOOBJIMPL.H : Declaration of the TMyAutoObjImpl

#ifndef MyAutoObjImplH
#define MyAutoObjImplH

#include "AutoServ_TLB.H"


/////////////////////////////////////////////////////////////////////////////
// TMyAutoObjImpl     Implements IMyAutoObj, default interface of MyAutoObj
//                  and IMyAutoObjEvents, the default source interface
// ThreadingModel : Apartment
// Dual Interface : TRUE
// Event Support  : TRUE
// Default ProgID : AutoServ.MyAutoObj
// Description    : My Automation Object
/////////////////////////////////////////////////////////////////////////////
class ATL_NO_VTABLE TMyAutoObjImpl : 
  public CComObjectRootEx<CComSingleThreadModel>,
  public CComCoClass<TMyAutoObjImpl, &CLSID_MyAutoObj>,
  public IConnectionPointContainerImpl<TMyAutoObjImpl>,
  public TEvents_MyAutoObj<TMyAutoObjImpl>, 
  public IDispatchImpl<IMyAutoObj, &IID_IMyAutoObj, &LIBID_AutoServ>
{
public:
  TMyAutoObjImpl()
  {
  }

  // Data used when registering Object 
  //
  DECLARE_THREADING_MODEL(otApartment);
  DECLARE_PROGID("AutoServ.MyAutoObj");
  DECLARE_DESCRIPTION("My Automation Object");

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


BEGIN_COM_MAP(TMyAutoObjImpl)
  COM_INTERFACE_ENTRY(IMyAutoObj)
  COM_INTERFACE_ENTRY2(IDispatch, IMyAutoObj)
  COM_INTERFACE_ENTRY_IMPL(IConnectionPointContainer)
END_COM_MAP()

BEGIN_CONNECTION_POINT_MAP(TMyAutoObjImpl)
  CONNECTION_POINT_ENTRY(DIID_IMyAutoObjEvents)
END_CONNECTION_POINT_MAP()

// IMyAutoObj
public:
 
  STDMETHOD(get_Text(long* Value));
  STDMETHOD(set_Text(long Value));
};

#endif //MyAutoObjImplH

⌨️ 快捷键说明

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