Join a meeting for any user

To join a meeting or webinar, prepare a display name, meeting number, and passcode - use an empty string if the meeting has none. Pass this to premeeting::GetPreMeetingToolkit()->JoinMeeting(...).

JoinMeetingParam param;
param.displayName = L"Display Name";
param.meetingNumber = 1234567890LL;
param.password = L"";
bool submitted = premeeting::GetPreMeetingToolkit()->JoinMeeting(
    param,
    [](const BaseResult& result) {
        // handle result (result.error_code)
    }
);

Get the meeting status

Implement OnMeetingStatusChanged on your IZMToolSuiteProxyListener listener that you passed to ZMToolSuiteProxy::SetToolSuiteProxyListener(...).

class MyEventListener : public ZMToolSuiteProxy::IZMToolSuiteProxyListener {
public:
    void OnMeetingStatusChanged(ZMToolSuiteProxy::ZMToolSuiteMeetingStatus status) override {
        // handle status
    }
    // implement other required listener methods...
};

To get the current state, you can also use meeting::GetMeetingToolkit(...)->GetMeetingStatus().

ZMToolSuiteProxy::ZMToolSuiteMeetingStatus status =
    meeting::GetMeetingToolkit()->GetMeetingStatus();