159 lines
4.2 KiB
C++
159 lines
4.2 KiB
C++
//
|
|
// CLIENT.H
|
|
//
|
|
|
|
|
|
BOOL InitClient(void);
|
|
void TermClient(void);
|
|
BOOL CALLBACK ClientDlgProc(HWND, UINT, WPARAM, LPARAM);
|
|
BOOL PlaceCall(void);
|
|
void HangupCall(void);
|
|
BOOL ActivatePrivateChannel(void);
|
|
void DeactivatePrivateChannel(void);
|
|
void SendPrivateData(void);
|
|
|
|
|
|
class CMgrNotify : public RefCount,
|
|
public CNotify,
|
|
public INmManagerNotify,
|
|
public IAppSharingNotify
|
|
{
|
|
public:
|
|
CMgrNotify();
|
|
~CMgrNotify();
|
|
|
|
// IUnknown methods
|
|
STDMETHODIMP_(ULONG) AddRef(void);
|
|
STDMETHODIMP_(ULONG) Release(void);
|
|
STDMETHODIMP QueryInterface(REFIID riid, PVOID *ppvObj);
|
|
|
|
// ICNotify methods
|
|
STDMETHODIMP Connect (IUnknown *pUnk);
|
|
STDMETHODIMP Disconnect(void);
|
|
|
|
// INmManagerNotify
|
|
STDMETHODIMP NmUI(CONFN confn);
|
|
STDMETHODIMP ConferenceCreated(INmConference *pConference);
|
|
STDMETHODIMP CallCreated(INmCall *pNmCall);
|
|
|
|
// IAppSharingNotify
|
|
STDMETHODIMP OnReadyToShare(BOOL fReady);
|
|
STDMETHODIMP OnShareStarted();
|
|
STDMETHODIMP OnSharingStarted();
|
|
STDMETHODIMP OnShareEnded();
|
|
STDMETHODIMP OnPersonJoined(IAS_GCC_ID gccID);
|
|
STDMETHODIMP OnPersonLeft(IAS_GCC_ID gccID);
|
|
STDMETHODIMP OnStartInControl(IAS_GCC_ID gccInControlOf);
|
|
STDMETHODIMP OnStopInControl(IAS_GCC_ID gccInControlOf);
|
|
STDMETHODIMP OnControllable(BOOL fControllable);
|
|
STDMETHODIMP OnStartControlled(IAS_GCC_ID gccControlledBy);
|
|
STDMETHODIMP OnStopControlled(IAS_GCC_ID gccControlledBy);
|
|
};
|
|
|
|
|
|
|
|
class CConfNotify : public RefCount,
|
|
public CNotify,
|
|
public INmConferenceNotify
|
|
{
|
|
public:
|
|
CConfNotify();
|
|
~CConfNotify();
|
|
|
|
// IUnknown methods
|
|
STDMETHODIMP_(ULONG) AddRef(void);
|
|
STDMETHODIMP_(ULONG) Release(void);
|
|
STDMETHODIMP QueryInterface(REFIID riid, PVOID *ppvObj);
|
|
|
|
// ICNotify methods
|
|
STDMETHODIMP Connect (IUnknown *pUnk);
|
|
STDMETHODIMP Disconnect(void);
|
|
|
|
// INmConferenceNotify
|
|
STDMETHODIMP NmUI(CONFN uNotify);
|
|
STDMETHODIMP StateChanged(NM_CONFERENCE_STATE uState);
|
|
STDMETHODIMP MemberChanged(NM_MEMBER_NOTIFY uNotify, INmMember *pfMember);
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
class CCallNotify : public INmCallNotify
|
|
{
|
|
private:
|
|
INmCall * m_pCall;
|
|
BOOL m_fIncoming;
|
|
LPTSTR m_pszName;
|
|
NM_CALL_STATE m_State;
|
|
BOOL m_fSelectedConference;
|
|
|
|
POSITION m_pos; // position in g_pCallList
|
|
DWORD m_dwTick; // tick count at call start
|
|
ULONG m_cRef;
|
|
DWORD m_dwCookie;
|
|
|
|
public:
|
|
CCallNotify(INmCall * pCall);
|
|
~CCallNotify();
|
|
|
|
// IUnknown methods
|
|
STDMETHODIMP_(ULONG) AddRef(void);
|
|
STDMETHODIMP_(ULONG) Release(void);
|
|
STDMETHODIMP QueryInterface(REFIID riid, PVOID *ppv);
|
|
|
|
// INmCallNotify methods
|
|
STDMETHODIMP NmUI(CONFN uNotify);
|
|
STDMETHODIMP StateChanged(NM_CALL_STATE uState);
|
|
STDMETHODIMP Failed(ULONG uError);
|
|
STDMETHODIMP Accepted(INmConference *pConference);
|
|
STDMETHODIMP CallError(UINT cns);
|
|
STDMETHODIMP RemoteConference(BOOL fMCU, BSTR *pwszConfNames, BSTR *pbstrConfToJoin);
|
|
STDMETHODIMP RemotePassword(BSTR bstrConference, BSTR *pbstrPassword, BYTE *pb, DWORD cb);
|
|
|
|
// Internal methods
|
|
VOID Update(void);
|
|
VOID RemoveCall(void);
|
|
};
|
|
|
|
|
|
|
|
class CNmDataNotify : public RefCount,
|
|
public CNotify,
|
|
public INmChannelDataNotify
|
|
{
|
|
public:
|
|
// IUnknown methods
|
|
STDMETHODIMP_(ULONG) AddRef(void);
|
|
STDMETHODIMP_(ULONG) Release(void);
|
|
STDMETHODIMP QueryInterface(REFIID riid, PVOID *ppvObj);
|
|
|
|
// ICNotify methods
|
|
STDMETHODIMP Connect (IUnknown *pUnk);
|
|
STDMETHODIMP Disconnect(void);
|
|
|
|
// INmChannelDataNotify
|
|
STDMETHODIMP NmUI(CONFN uNotify);
|
|
STDMETHODIMP MemberChanged(NM_MEMBER_NOTIFY uNotify, INmMember *pfMember);
|
|
STDMETHODIMP DataSent(INmMember * pMember, ULONG uSize, LPBYTE pvBuffer);
|
|
STDMETHODIMP DataReceived(INmMember * pMember, ULONG uSize, LPBYTE pvBuffer,
|
|
ULONG dwFlags);
|
|
STDMETHODIMP AllocateHandleConfirm(ULONG handle_value, ULONG chandles);
|
|
};
|
|
|
|
|
|
|
|
|
|
extern HINSTANCE g_hInst;
|
|
extern HWND g_hwndMain;
|
|
extern INmManager * g_pMgr;
|
|
extern IAppSharing * g_pAS;
|
|
extern CMgrNotify * g_pMgrNotify;
|
|
extern INmConference * g_pConf;
|
|
extern CConfNotify * g_pConfNotify;
|
|
extern UINT g_cPeopleInConf;
|
|
extern INmChannelData * g_pPrivateChannel;
|
|
extern CNmDataNotify * g_pDataNotify;
|
|
|