Leaked source code of windows server 2003
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.
|
|
// CallNotification.h : Declaration of the CCallNotification
#ifndef __CALLNOTIFICATION_H_
#define __CALLNOTIFICATION_H_
/////////////////////////////////////////////////////////////////////////////
//
// CTAPIEventNotification
//
/////////////////////////////////////////////////////////////////////////////
class CTAPIEventNotification : public ITTAPIEventNotification {
private:
LONG m_lRefCount;
public:
CTAPIEventNotification() { m_lRefCount = 0; }
HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, void **ppvObject) { if (iid == IID_ITTAPIEventNotification) { *ppvObject = (void *)this; AddRef(); return S_OK; }
if (iid == IID_IUnknown) { *ppvObject = (void *)this; AddRef(); return S_OK; }
return E_NOINTERFACE; } ULONG STDMETHODCALLTYPE AddRef() { ULONG l = InterlockedIncrement(&m_lRefCount); return l; } ULONG STDMETHODCALLTYPE Release() { ULONG l = InterlockedDecrement(&m_lRefCount);
if ( 0 == l) { delete this; }
return l; }
// ICallNotification
public:
HRESULT STDMETHODCALLTYPE Event( TAPI_EVENT TapiEvent, IDispatch * pEvent );
};
#ifdef ENABLE_DIGIT_DETECTION_STUFF
/////////////////////////////////////////////////////////////////////////////
//
// CDigitDetectionNotification
//
/////////////////////////////////////////////////////////////////////////////
class CDigitDetectionNotification : public ITDigitDetectionNotification {
private:
LONG m_lRefCount;
public: CDigitDetectionNotification() { m_lRefCount = 0; }
HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, void **ppvObject) { if (iid == IID_ITDigitDetectionNotification) { *ppvObject = (void *)this; AddRef(); return S_OK; }
if (iid == IID_IUnknown) { *ppvObject = (void *)this; AddRef(); return S_OK; }
if (iid == IID_IDispatch) { *ppvObject = (void *)this; AddRef(); return S_OK; } return E_NOINTERFACE; }
ULONG STDMETHODCALLTYPE AddRef() { ULONG l = InterlockedIncrement(&m_lRefCount);
return l; } ULONG STDMETHODCALLTYPE Release() { ULONG l = InterlockedDecrement(&m_lRefCount);
if ( 0 == l) { delete this; }
return l; }
// ICallNotification
public:
HRESULT STDMETHODCALLTYPE DigitDetected( unsigned char ucDigit, TAPI_DIGITMODE DigitMode, long ulTickCount ); };
#endif // ENABLE_DIGIT_DETECTION_STUFF
#endif //__CALLNOTIFICATION_H_
|