本系列介紹使用 RTC Client API 整合音視訊會議、即時訊息、應用程式共享、Presence 好友清單等功能。開發環境:Visual Studio 6.0 SP5、Platform SDK、SIP Server 或 Windows .NET Server Beta 3。
接收 RTC 事件需設定事件遮罩:
#define RTCEF_REGISTRATION_STATE_CHANGE 0x00000002
#define RTCEF_BUDDY 0x00000100
#define RTCEF_WATCHER 0x00000200
#define RTCEF_PROFILE 0x00000400
// 或直接使用全部事件
long lEventMask = RTCEF_ALL;
HRESULT CAVDConfDlg::OnRTCEvent(UINT msg, WPARAM wParam, LPARAM lParam) {
IDispatch* pDisp = (IDispatch*)lParam;
RTC_EVENT enEvent = (RTC_EVENT)wParam;
HRESULT hr;
switch (wParam) {
case RTCE_REGISTRATION_STATE_CHANGE: {
IRTCRegistrationStateChangeEvent* pEvent = NULL;
hr = pDisp->QueryInterface(IID_IRTCRegistrationStateChangeEvent, (void**)&pEvent);
if (SUCCEEDED(hr)) { OnRTCSessionStateChangeEvent(pEvent); SAFE_RELEASE(pEvent); }
} break;
case RTCE_BUDDY: {
IRTCBuddyEvent* pEvent = NULL;
hr = pDisp->QueryInterface(IID_IRTCBuddyEvent, (void**)&pEvent);
if (SUCCEEDED(hr)) { OnRTCBuddyEvent(pEvent); SAFE_RELEASE(pEvent); }
} break;
case RTCE_WATCHER: {
IRTCWatcherEvent* pEvent = NULL;
hr = pDisp->QueryInterface(IID_IRTCWatcherEvent, (void**)&pEvent);
if (SUCCEEDED(hr)) { OnRTCWatcherEvent(pEvent); SAFE_RELEASE(pEvent); }
} break;
// ... 其他事件
}
return S_OK;
}
[建立 XML 佈建] → [CreateProfile] → [EnableProfile] → [SIP 註冊成功] → [Presence 就緒] → [好友清單/觀察者運作]
RTC API 提供豐富事件模型 (註冊狀態、好友、觀察者、佈建等),配合 SIP/SIMPLE 協定實現企業級即時通訊。正確設定事件遮罩與處理分派機制,是整合 RTC 功能的基石。