You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
135 lines
3.1 KiB
135 lines
3.1 KiB
/*++
|
|
|
|
Copyright (c) 1998-1999 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
request.h
|
|
|
|
Abstract:
|
|
|
|
Declaration of the CRequest class
|
|
|
|
Author:
|
|
|
|
mquinton 06-03-98
|
|
|
|
Notes:
|
|
|
|
Revision History:
|
|
|
|
--*/
|
|
|
|
#ifndef __REQUEST_H__
|
|
#define __REQUEST_H__
|
|
|
|
#include "resource.h"
|
|
//#include "objsafe.h"
|
|
#include "atlctl.h"
|
|
#include "TAPIObjectSafety.h"
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CDispatchMapper
|
|
class CRequest :
|
|
public CTAPIComObjectRoot<CRequest>,
|
|
public CComCoClass<CRequest, &CLSID_RequestMakeCall>,
|
|
public CComDualImpl<ITRequest, &IID_ITRequest, &LIBID_TAPI3Lib>,
|
|
public CTAPIObjectSafety
|
|
{
|
|
public:
|
|
CRequest()
|
|
{
|
|
}
|
|
|
|
DECLARE_REGISTRY_RESOURCEID(IDR_REQUESTMAKECALL)
|
|
DECLARE_QI()
|
|
DECLARE_MARSHALQI(CRequest)
|
|
DECLARE_TRACELOG_CLASS(CRequest)
|
|
|
|
BEGIN_COM_MAP(CRequest)
|
|
COM_INTERFACE_ENTRY2(IDispatch, ITRequest)
|
|
COM_INTERFACE_ENTRY(ITRequest)
|
|
COM_INTERFACE_ENTRY(IObjectSafety)
|
|
COM_INTERFACE_ENTRY(IObjectWithSite)
|
|
COM_INTERFACE_ENTRY_FUNC(IID_IMarshal, 0, IMarshalQI)
|
|
COM_INTERFACE_ENTRY_AGGREGATE(IID_IMarshal, m_pFTM)
|
|
END_COM_MAP()
|
|
|
|
STDMETHOD(MakeCall)(
|
|
BSTR pDestAddress,
|
|
#ifdef NEWREQUEST
|
|
long lAddressType,
|
|
#endif
|
|
BSTR pAppName,
|
|
BSTR pCalledParty,
|
|
BSTR pComment
|
|
);
|
|
|
|
};
|
|
|
|
|
|
class CRequestEvent :
|
|
public CTAPIComObjectRoot<CRequestEvent>,
|
|
public CComDualImpl<ITRequestEvent, &IID_ITRequestEvent, &LIBID_TAPI3Lib>,
|
|
public CObjectSafeImpl
|
|
{
|
|
public:
|
|
|
|
CRequestEvent(){}
|
|
|
|
void
|
|
FinalRelease();
|
|
|
|
static
|
|
HRESULT
|
|
FireEvent(
|
|
CTAPI * pTapi,
|
|
DWORD dwReg,
|
|
LPLINEREQMAKECALLW pReqMakeCall
|
|
);
|
|
|
|
DECLARE_MARSHALQI(CRequestEvent)
|
|
DECLARE_TRACELOG_CLASS(CRequestEvent)
|
|
|
|
BEGIN_COM_MAP(CRequestEvent)
|
|
COM_INTERFACE_ENTRY(IDispatch)
|
|
COM_INTERFACE_ENTRY(ITRequestEvent)
|
|
COM_INTERFACE_ENTRY(IObjectSafety)
|
|
COM_INTERFACE_ENTRY_FUNC(IID_IMarshal, 0, IMarshalQI)
|
|
COM_INTERFACE_ENTRY_AGGREGATE(IID_IMarshal, m_pFTM)
|
|
END_COM_MAP()
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, void **ppvObject) = 0;
|
|
virtual ULONG STDMETHODCALLTYPE AddRef() = 0;
|
|
virtual ULONG STDMETHODCALLTYPE Release() = 0;
|
|
|
|
protected:
|
|
|
|
long m_lRegistrationInstance;
|
|
long m_lRequestMode;
|
|
#ifdef NEWREQUEST
|
|
long m_lAddressType;
|
|
#endif
|
|
LINEREQMAKECALLW * m_pReqMakeCall;
|
|
|
|
#if DBG
|
|
PWSTR m_pDebug;
|
|
#endif
|
|
|
|
public:
|
|
|
|
STDMETHOD(get_RegistrationInstance)( long * plRegistrationInstance );
|
|
STDMETHOD(get_RequestMode)(long * plRequestMode );
|
|
STDMETHOD(get_DestAddress)(BSTR * ppDestAddress );
|
|
#ifdef NEWREQUEST
|
|
STDMETHOD(get_AddressType)(long * plAddressType );
|
|
#endif
|
|
STDMETHOD(get_AppName)(BSTR * ppAppName );
|
|
STDMETHOD(get_CalledParty)(BSTR * ppCalledParty );
|
|
STDMETHOD(get_Comment)(BSTR * ppComment );
|
|
|
|
};
|
|
|
|
|
|
#endif
|