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.
142 lines
5.1 KiB
142 lines
5.1 KiB
#ifndef __SDKWindow_h__
|
|
#define __SDKWindow_h__
|
|
|
|
class CNmChannelAppShareObj;
|
|
class CNmCallObj;
|
|
|
|
class CSDKWindow : public CWindowImpl<CSDKWindow>
|
|
{
|
|
|
|
static CSDKWindow* ms_pSDKWnd;
|
|
|
|
private:
|
|
|
|
|
|
// Conference Notification Parameter structures
|
|
struct ConferenceMemberChanged
|
|
{
|
|
NM_MEMBER_NOTIFY uNotify;
|
|
INmMember *pMember;
|
|
};
|
|
|
|
struct ConferenceChannelChanged
|
|
{
|
|
NM_CHANNEL_NOTIFY uNotify;
|
|
INmChannel *pChannel;
|
|
};
|
|
|
|
struct StateChanged
|
|
{
|
|
NM_SHAPP_STATE uNotify;
|
|
INmSharableApp *pApp;
|
|
};
|
|
|
|
|
|
CONSTANT(DELAY_UNLOAD_TIMER = 123);
|
|
CONSTANT(DELAY_UNLOAD_INTERVAL = 10000);
|
|
|
|
static int ms_NumUnlocks;
|
|
|
|
// This will prevent soemone creating us other than Init
|
|
CSDKWindow() { ; }
|
|
|
|
public:
|
|
|
|
// NmManagerNotify
|
|
CONSTANT(WM_APP_NOTIFY_MANAGER_NMUI = (WM_APP + 10));
|
|
CONSTANT(WM_APP_NOTIFY_CALL_CREATED = (WM_APP + 11));
|
|
CONSTANT(WM_APP_NOTIFY_CONFERENCE_CREATED = (WM_APP + 12));
|
|
|
|
//NmConferenceNotify
|
|
CONSTANT(WM_APP_NOTIFY_CONFERENCE_NMUI = (WM_APP + 20));
|
|
CONSTANT(WM_APP_NOTIFY_CONFERENCE_STATE_CHANGED = (WM_APP + 21));
|
|
CONSTANT(WM_APP_NOTIFY_CONFERENCE_MEMBER_CHANGED = (WM_APP + 22));
|
|
CONSTANT(WM_APP_NOTIFY_CONFERENCE_CHANNEL_CHANGED = (WM_APP + 23));
|
|
|
|
// NmCallNotify
|
|
CONSTANT(WM_APP_NOTIFY_NMUI = (WM_APP + 31));
|
|
CONSTANT(WM_APP_NOTIFY_CALL_STATE_CHANGED = (WM_APP + 32));
|
|
CONSTANT(WM_APP_NOTIFY_FAILED = (WM_APP + 33));
|
|
CONSTANT(WM_APP_NOTIFY_ACCEPTED = (WM_APP + 34));
|
|
|
|
CONSTANT(WM_APP_NOTIFY_STATE_CHANGED = (WM_APP + 35));
|
|
|
|
|
|
DECLARE_WND_CLASS(NULL);
|
|
|
|
BEGIN_MSG_MAP(CSDKWindow)
|
|
// Manager Notifications
|
|
MESSAGE_HANDLER(WM_APP_NOTIFY_MANAGER_NMUI, _OnMsgManagerNmUI)
|
|
MESSAGE_HANDLER(WM_APP_NOTIFY_CALL_CREATED, _OnMsgCallCreated)
|
|
MESSAGE_HANDLER(WM_APP_NOTIFY_CONFERENCE_CREATED, _OnMsgConferenceCreated)
|
|
|
|
// Conference Notify
|
|
MESSAGE_HANDLER(WM_APP_NOTIFY_CONFERENCE_NMUI, _OnMsgConferenceNmUI)
|
|
MESSAGE_HANDLER(WM_APP_NOTIFY_CONFERENCE_STATE_CHANGED, _OnMsgConferenceStateChanged)
|
|
MESSAGE_HANDLER(WM_APP_NOTIFY_CONFERENCE_MEMBER_CHANGED, _OnMsgConferenceMemberChanged)
|
|
MESSAGE_HANDLER(WM_APP_NOTIFY_CONFERENCE_CHANNEL_CHANGED, _OnMsgConferenceChannelChanged)
|
|
|
|
// Call Notifications
|
|
MESSAGE_HANDLER(WM_APP_NOTIFY_CALL_STATE_CHANGED, _OnMsgCallStateChanged)
|
|
MESSAGE_HANDLER(WM_APP_NOTIFY_NMUI, _OnMsgCallNmUI)
|
|
MESSAGE_HANDLER(WM_APP_NOTIFY_FAILED, _OnMsgFailed)
|
|
MESSAGE_HANDLER(WM_APP_NOTIFY_ACCEPTED, _OnMsgAccepted)
|
|
|
|
MESSAGE_HANDLER(WM_APP_NOTIFY_STATE_CHANGED, _OnStateChanged);
|
|
|
|
MESSAGE_HANDLER(WM_TIMER, _OnTimer)
|
|
END_MSG_MAP();
|
|
|
|
|
|
public:
|
|
// Initialization
|
|
static HRESULT InitSDK();
|
|
static void CleanupSDK();
|
|
|
|
static HRESULT PostDelayModuleUnlock();
|
|
|
|
// Manager Notificyations
|
|
static HRESULT PostManagerNmUI(CNmManagerObj* pMgr, CONFN uNotify);
|
|
static HRESULT PostCallCreated(CNmManagerObj* pMgr, INmCall* pInternalNmCall);
|
|
static HRESULT PostConferenceCreated(CNmManagerObj* pMgr, INmConference* pInternalNmConference);
|
|
|
|
// Conference Notificyations
|
|
static HRESULT PostConferenceNmUI(CNmConferenceObj* pConf, CONFN uNotify);
|
|
static HRESULT PostConferenceStateChanged(CNmConferenceObj* pConf, NM_CONFERENCE_STATE uState);
|
|
static HRESULT PostConferenceMemberChanged(CNmConferenceObj* pConf, NM_MEMBER_NOTIFY uNotify, INmMember *pMember);
|
|
static HRESULT PostConferenceChannelChanged(CNmConferenceObj* pConf, NM_CHANNEL_NOTIFY uNotify, INmChannel *pChannel);
|
|
|
|
// Call Notificyations
|
|
static HRESULT PostCallNmUi(CNmCallObj* pCall, CONFN uNotify);
|
|
static HRESULT PostCallStateChanged(CNmCallObj* pCall, NM_CALL_STATE uState);
|
|
static HRESULT PostFailed(CNmCallObj* pCall, ULONG uError);
|
|
static HRESULT PostAccepted(CNmCallObj* pCall, INmConference* pConference);
|
|
|
|
static HRESULT PostStateChanged(CNmChannelAppShareObj* pAppShareChan, NM_SHAPP_STATE uNotify, INmSharableApp *pApp);
|
|
|
|
private: // Helpers
|
|
|
|
// Manager Mssages
|
|
LRESULT _OnMsgManagerNmUI(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
|
|
LRESULT _OnMsgConferenceCreated(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
|
|
LRESULT _OnMsgCallCreated(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
|
|
|
|
// Conference message
|
|
LRESULT _OnMsgConferenceNmUI(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
|
|
LRESULT _OnMsgConferenceStateChanged(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
|
|
LRESULT _OnMsgConferenceMemberChanged(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
|
|
LRESULT _OnMsgConferenceChannelChanged(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
|
|
|
|
// Call Messages
|
|
LRESULT _OnMsgCallStateChanged(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
|
|
LRESULT _OnMsgCallNmUI(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
|
|
LRESULT _OnMsgFailed(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
|
|
LRESULT _OnMsgAccepted(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
|
|
|
|
LRESULT _OnStateChanged(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
|
|
|
|
LRESULT _OnTimer(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
|
|
|
|
};
|
|
|
|
#endif // __SDKWindow_h__
|