0

「public: virtual long __stdcall PCI1761Event::GetTypeInfoCount(unsigned int *)」 (?GetTypeInfoCount@PCI1761Event@@UAGJPAI@Z)

コード

クラス PCI1761Event :
public CComObjectRoot,
public _IAdvDIOEvents
{

パブリック:
BEGIN_COM_MAP(PCI1761Event)
COM_INTERFACE_ENTRY(_IAdvDIOEvents)
END_COM_MAP()

PCI1761Event(void);<br>

HRESULT  OnDiInterrupt (
    long channel,
    VARIANT * data,
    long scanStart,
    long scanCount );<br>

HRESULT OnDiStatusChange (
    long port,
    VARIANT * data,
    long scanStart,
    long scanCount );<br>

HRESULT OnDiPatternMatch (
    long port,
    VARIANT * data,
    long scanStart,
    long scanCount );<br>

HRESULT OnDeviceRemoved (
    long DeviceNumber );
  HRESULT STDMETHODCALLTYPE GetTypeInfoCount( 
        /* [out] */ UINT *pctinfo) ;<br>

     HRESULT STDMETHODCALLTYPE GetTypeInfo( 
        /* [in] */ UINT iTInfo,
        /* [in] */ LCID lcid,
        /* [out] */ ITypeInfo **ppTInfo) ;

    HRESULT STDMETHODCALLTYPE GetIDsOfNames( 
        /* [in] */ REFIID riid,
        /* [size_is][in] */ LPOLESTR *rgszNames,
        /* [in] */ UINT cNames,
        /* [in] */ LCID lcid,
        /* [size_is][out] */ DISPID *rgDispId) ;

    /* [local] */ HRESULT STDMETHODCALLTYPE Invoke( 
        /* [in] */ DISPID dispIdMember,
        /* [in] */ REFIID riid,
        /* [in] */ LCID lcid,
        /* [in] */ WORD wFlags,
        /* [out][in] */ DISPPARAMS *pDispParams,
        /* [out] */ VARIANT *pVarResult,
        /* [out] */ EXCEPINFO *pExcepInfo,
        /* [out] */ UINT *puArgErr) ;

パブリック: ~PCI1761Event(void); };

どうして????

4

1 に答える 1

1

_IAdvDIOEvents実装しようとしているインターフェイスはから派生しているため、クラスにもメソッドIDispatchを実装する必要があります。IDispatchATL では通常、クラスからIDispatchImpl<_IAdvDIOEvents, ...>クラスを継承してメソッドを実装します。

于 2012-06-28T17:12:04.150 に答える