windows-nt/Source/XPSP1/NT/net/tapi/skywalker/tapi3/connect.h
2020-09-26 16:20:57 +08:00

102 lines
2.4 KiB
C++

/*++
Copyright (c) 1997-1999 Microsoft Corporation
Module Name:
connect.h
Abstract:
Declaration of the CTAPIConnectionPoint class
Author:
mquinton 06-12-97
Notes:
Revision History:
--*/
#ifndef __CONNECT_H_
#define __CONNECT_H_
class CTAPIConnectionPoint :
public CTAPIComObjectRoot<CTAPIConnectionPoint>,
public IConnectionPoint
{
public:
CTAPIConnectionPoint() : m_iid(CLSID_NULL),
m_pCPC(NULL),
m_pConnectData(NULL),
m_bInitialized(FALSE),
m_hUnadviseEvent(NULL),
m_fMarkedForDelete(FALSE)
{}
BEGIN_COM_MAP(CTAPIConnectionPoint)
COM_INTERFACE_ENTRY(IConnectionPoint)
COM_INTERFACE_ENTRY_FUNC(IID_IMarshal, 0, IMarshalQI)
COM_INTERFACE_ENTRY_AGGREGATE(IID_IMarshal, m_pFTM)
END_COM_MAP()
DECLARE_MARSHALQI(CTAPIConnectionPoint)
DECLARE_QI()
DECLARE_TRACELOG_CLASS(CTAPIConnectionPoint)
protected:
IConnectionPointContainer * m_pCPC;
CONNECTDATA * m_pConnectData;
IID m_iid;
BOOL m_bInitialized;
HANDLE m_hUnadviseEvent;
//
// the following member variables are synchronized with
// the gcsGlobalInterfaceTable critical section
//
DWORD m_dwCallbackCookie;
DWORD m_cThreadsInGet;
BOOL m_fMarkedForDelete;
public:
HRESULT Initialize(
IConnectionPointContainer * pCPC,
IID iid
);
ULONG_PTR GrabEventCallback();
HRESULT STDMETHODCALLTYPE GetConnectionInterface(
IID * pIID
);
HRESULT STDMETHODCALLTYPE GetConnectionPointContainer(
IConnectionPointContainer ** ppCPC
);
HRESULT STDMETHODCALLTYPE Advise(
IUnknown * pUnk,
DWORD * pdwCookie
);
HRESULT STDMETHODCALLTYPE Unadvise(
DWORD dwCookie
);
HRESULT STDMETHODCALLTYPE EnumConnections(
IEnumConnections ** ppEnum
);
void FinalRelease();
};
#endif