Window SDK screen sharing error 105035

Description
Hello !
Right now im working with window sdk ( C# ).
Im trying to integrate zoom window sdk in my own window application.
Everything works fine except when i tried to use “screen share” function.

Long story short , i build and run window demo and this demo screen share works fine .
However on very same computer with my own zoom integrated application, screen share does not work it kept on giving error 105035 .

Please, help me with this issue i attached the image of the error . !
KakaoTalk_20210413_142153136|666x500

Hey @ssijcfe,

Thanks for using the dev forum!

Can you provide the following:

  1. SDK Version
  2. Steps to reproduce
  3. All relevant code
  4. Which function call triggers the error

Thanks!
Michael

Hello Michael ! Thanks for the quick reply : )

  1. For now im using latest SDK version which is v5.5.12509.0330
  2. Code below

namespace Common
{
public class ZoomManager
{
private static ZoomManager m_Instance;
public static ZoomManager Instance
{
get
{
if (m_Instance == null)
{
m_Instance = new ZoomManager();
}
return m_Instance;
}
}

    //public static ulong ZOOM_MEETING_ID = ;
    //public static string ZOOM_MEETING_PWD = "";
    //public static string ZOOM_USER_ID = "";
    //public static string ZOOM_USER_ZAK = "";
    //public static string ZOOM_USER_NAME = "Hogwarts";

    public static bool ZOOM_AUDIO_OFF = false;
    public static bool ZOOM_VIDEO_OFF = false;

    public void Initialize()
    {
        InitParam param = new InitParam();
        param.config_opts.optionalFeatures = (1 << 5);
        param.web_domain = "https://zoom.us";
        SDKError initializeError = CZoomSDKeDotNetWrap.Instance.Initialize(param);

        if (SDKError.SDKERR_SUCCESS == initializeError)
        {
           // Console.WriteLine("Zoom Initialize: Success");
        }
        else
        {
            RequestManager.ReportError("Zoom", $"Zoom Initialize: {initializeError}");
            //Console.WriteLine($"Zoom Initialize: {initializeError}");
        }
       
    }
    public void Deinitialize()
    {
        //Console.WriteLine("Zoom Deinitialize");
        CZoomSDKeDotNetWrap.Instance.CleanUp();
        m_Instance = null;
    }

    public void Auth(ZoomInfo zoomInfo)
    {
        RegisterZoomAuthCallbacks();
        RegisterMeetingCallbacks();
        InitializeCamera();
        InitializeAudio();

        if (zoomInfo == null) return;
        AuthParam authParam = new AuthParam
        {
            appKey = zoomInfo.appKey,
            appSecret = zoomInfo.appSecret
        };

        SDKError authResult = CZoomSDKeDotNetWrap.Instance.GetAuthServiceWrap().SDKAuth(authParam);

        if (authResult == SDKError.SDKERR_SUCCESS)
        {
            Console.WriteLine("authResult: Success");
            //Hide();
        }
        else
        {
            RequestManager.ReportError("Zoom", $"Zoom Auth: {authResult}");
        }
        
    }
    private void RegisterMeetingCallbacks()
    {
        CZoomSDKeDotNetWrap.Instance.GetMeetingServiceWrap().Add_CB_onMeetingStatusChanged(OnMeetingStatusChanged);
        //CZoomSDKeDotNetWrap.Instance.GetMeetingServiceWrap().GetMeetingConfiguration().EnableInputMeetingPasswordDlg(true);
        CZoomSDKeDotNetWrap.Instance.GetMeetingServiceWrap().GetMeetingConfiguration().Add_CB_onInputMeetingPasswordAndScreenNameNotification(OnInputMeetingPasswordAndScreenNameNotification);
        CZoomSDKeDotNetWrap.Instance.GetMeetingServiceWrap().GetMeetingParticipantsController().Add_CB_onHostChangeNotification(OnHostChangeNotification);
        CZoomSDKeDotNetWrap.Instance.GetMeetingServiceWrap().GetMeetingParticipantsController().Add_CB_onLowOrRaiseHandStatusChanged(OnLowOrRaiseHandStatusChanged);
        CZoomSDKeDotNetWrap.Instance.GetMeetingServiceWrap().GetMeetingParticipantsController().Add_CB_onUserJoin(OnUserJoin);
        CZoomSDKeDotNetWrap.Instance.GetMeetingServiceWrap().GetMeetingParticipantsController().Add_CB_onUserLeft(OnUserLeft);
        CZoomSDKeDotNetWrap.Instance.GetMeetingServiceWrap().GetMeetingParticipantsController().Add_CB_onUserNameChanged(OnUserNameChanged);
        CZoomSDKeDotNetWrap.Instance.GetMeetingServiceWrap().GetMeetingAudioController().Add_CB_onUserAudioStatusChange(OnUserAudioStatusChange);
    }
    private void RegisterZoomAuthCallbacks()
    {
        CZoomSDKeDotNetWrap.Instance.GetAuthServiceWrap().Add_CB_onAuthenticationReturn(OnAuthenticationReturn);
        CZoomSDKeDotNetWrap.Instance.GetAuthServiceWrap().Add_CB_onLoginRet(OnLoginRet);
        CZoomSDKeDotNetWrap.Instance.GetAuthServiceWrap().Add_CB_onLogout(OnLogout);
    }
    private void OnUserAudioStatusChange(IUserAudioStatusDotNetWrap[] lstAudioStatusChange)
    {
        //foreach (var status in lstAudioStatusChange)
        //{
        //    //ErrorLogger.Instance.LogDebug("OnUserAudioStatusChange", status.GetUserId() + ": " + status.GetStatus() + " type: " + status.GetAudioType()  );
        //}
    }
    private void OnMeetingStatusChanged(MeetingStatus status, int iResult)
    {
        switch (status)
        {
            case MeetingStatus.MEETING_STATUS_CONNECTING:
                {
                    //var uiWrapper = CZoomSDKeDotNetWrap.Instance.GetCustomizedUIMgrWrap();
                    Console.WriteLine("MEETING_STATUS_CONNECTING");
                    InitializeCamera();
                    InitializeAudio();
                    //Console.WriteLine(uiWrapper.HasLicense());
                }
                break;
            case MeetingStatus.MEETING_STATUS_LOCKED:
                Console.WriteLine("MEETING_STATUS_LOCKED");
                break;
            case MeetingStatus.MEETING_STATUS_IN_WAITING_ROOM:
                Console.WriteLine("MEETING_STATUS_IN_WAITING_ROOM");
                break;
            case MeetingStatus.MEETING_STATUS_JOIN_BREAKOUT_ROOM:
                Console.WriteLine("MEETING_STATUS_JOIN_BREAKOUT_ROOM");
                break;
            case MeetingStatus.MEETING_STATUS_IDLE:
                Console.WriteLine("MEETING_STATUS_IDLE");
                break;
            case MeetingStatus.MEETING_STATUS_INMEETING:
                Console.WriteLine("MEETING_STATUS_INMEETING");
                break;
            case MeetingStatus.MEETING_STATUS_UNLOCKED:
                Console.WriteLine("MEETING_STATUS_UNLOCKED");
                break;
            case MeetingStatus.MEETING_STATUS_ENDED:
                Console.WriteLine("MEETING_STATUS_ENDED");
                break;
            case MeetingStatus.MEETING_STATUS_FAILED:
                Console.WriteLine("MEETING_STATUS_FAILED");
                break;
            default:
                break;
        }
    }
    private void OnUserJoin(Array lstUserID)
    {
        if (null == lstUserID) return;

        for (int i = lstUserID.GetLowerBound(0); i <= lstUserID.GetUpperBound(0); i++)
        {
            uint userid = (uint)lstUserID.GetValue(i);
            IUserInfoDotNetWrap user = CZoomSDKeDotNetWrap.Instance.GetMeetingServiceWrap().GetMeetingParticipantsController().GetUserByUserID(userid);
            if (null != user)
            {
                string joinedUserName = user.GetUserNameW();
                Console.Write($"User joined: {joinedUserName}");
            }
        }
    }
    private void OnUserLeft(Array lstUserID)
    {
        Console.WriteLine($"Users left:  {lstUserID}");
    }
    private void OnHostChangeNotification(uint userId)
    {
        Console.WriteLine($"Meeting host changed to {userId}");
    }
    private void OnLowOrRaiseHandStatusChanged(bool bLow, UInt32 userId)
    {
        Console.WriteLine($"User {userId} raised hand: {bLow}");
    }
    private void OnUserNameChanged(UInt32 userId, string userName)
    {
        Console.WriteLine($"User {userId} changed userName to {userName}");
    }
    private void OnAuthenticationReturn(AuthResult authResult) {
        if (AuthResult.AUTHRET_SUCCESS == authResult)
        {
            Console.WriteLine($"onAuthenticationReturn: Success");
        }
        else
        {
            RequestManager.ReportError("Zoom", "Zoom Auth Failure: " + authResult);
        }
    }
    private void OnLoginRet(LOGINSTATUS ret, IAccountInfo pAccountInfo)
    {
        Console.WriteLine($"OnLoginReturn: {ret} with displayName: {pAccountInfo?.GetDisplayName()}");
    }
    private void OnLogout()
    {
        Console.WriteLine($"OnLogout");
    }
    private void OnComputerCamDeviceChanged(ICameraInfoDotNetWrap[] newCameras)
    {
        Console.WriteLine($"new cameras {newCameras}");
    }
    private void OnInputMeetingPasswordAndScreenNameNotification(IMeetingPasswordAndScreenNameHandler handler)
    {
        Console.WriteLine("onInputMeetingPasswordAndScreenNameNotification");
        //Console.WriteLine(handler.GetRequiredInfoType());
        var result = handler.InputMeetingPasswordAndScreenName(ViewModel.Singleton.LiveSession?.ZoomInfo?.meetingPassword ?? "", TeacherToken.Current?.Nickname ?? "");
        //Console.WriteLine(result);
    }

    public void JoinMeeting(ZoomInfo zoomInfo, bool withoutLogin = true)
    {
        ScanDevices();
        if (zoomInfo == null) return;
        JoinParam param = new JoinParam();

        if (withoutLogin)
        {
            JoinParam4WithoutLogin join_api_param = new JoinParam4WithoutLogin
            {
                meetingNumber = zoomInfo.meetingId,
                userName = zoomInfo.displayName,
                isVideoOff = ZOOM_VIDEO_OFF,
                isAudioOff = ZOOM_AUDIO_OFF,
                psw = zoomInfo.meetingPassword,
                userZAK = zoomInfo.userZak
            };

            param.withoutloginJoin = join_api_param;
            param.userType = SDKUserType.SDK_UT_WITHOUT_LOGIN;
        }
        else
        {
            JoinParam4NormalUser joinParamForUser = new JoinParam4NormalUser
            {
                meetingNumber = zoomInfo.meetingId,
                participantId = zoomInfo.userId,
                psw = zoomInfo.meetingPassword,
                userName = zoomInfo.displayName,
                isVideoOff = ZOOM_VIDEO_OFF,
                isAudioOff = ZOOM_AUDIO_OFF
            };

            param.normaluserJoin = joinParamForUser;
            param.userType = SDKUserType.SDK_UT_NORMALUSER;
        }

        SDKError joinMeetingResult = CZoomSDKeDotNetWrap.Instance.GetMeetingServiceWrap().Join(param);

        if (joinMeetingResult == SDKError.SDKERR_SUCCESS)
        {
            Console.WriteLine("joinMeetingResult: Success");
        }
        else
        {
            Console.WriteLine("joinMeetingResult: " + joinMeetingResult);
        }
    }
    public void StartMeeting(ZoomInfo zoomInfo, bool withoutLogin = true)
    {
        if (zoomInfo == null) return;
        StartParam param = new StartParam();

        if (withoutLogin)
        {
            StartParam4WithoutLogin startParam4WithoutLogin = new StartParam4WithoutLogin
            {
                meetingNumber = zoomInfo.meetingId,
                participantId = zoomInfo.userId,
                userZAK = zoomInfo.userZak,
                userName = zoomInfo.displayName,
                isAudioOff = ZOOM_AUDIO_OFF,
                isVideoOff = ZOOM_VIDEO_OFF,
                zoomuserType = ZoomUserType.ZoomUserType_APIUSER
            };
            param.withoutloginStart = startParam4WithoutLogin;
            param.userType = SDKUserType.SDK_UT_WITHOUT_LOGIN;
        }
        else
        {
            StartParam4NormalUser startParam4NormalUser = new StartParam4NormalUser
            {
                meetingNumber = zoomInfo.meetingId,
                participantId = zoomInfo.userId,
                isAudioOff = ZOOM_AUDIO_OFF,
                isVideoOff = ZOOM_VIDEO_OFF
            };
            param.normaluserStart = startParam4NormalUser;
            param.userType = SDKUserType.SDK_UT_NORMALUSER;

        }

        SDKError startMeetingResult = CZoomSDKeDotNetWrap.Instance.GetMeetingServiceWrap().Start(param);

        if (startMeetingResult == SDKError.SDKERR_SUCCESS)
        {
            Console.WriteLine("startMeetingResult: Success");
            //Hide();
        }
        else
        {
            Console.WriteLine("startMeetingResult: " + startMeetingResult);
        }
    }
    public void StopMeeting()
    {
        SDKError stopRecordingResult = CZoomSDKeDotNetWrap.Instance.GetMeetingServiceWrap().GetMeetingRecordingController().StopCloudRecording();
        SDKError leaveMeetingResult = CZoomSDKeDotNetWrap.Instance.GetMeetingServiceWrap().Leave(LeaveMeetingCmd.END_MEETING);
    }

    public void InitializeCamera()
    {
        var settings = CZoomSDKeDotNetWrap.Instance.GetSettingServiceWrap().GetVideoSettings();
        settings.EnableAlwaysShowNameOnVideo(false);
        settings.EnableHDVideo(true);
        settings.EnableHideNoVideoUsersOnWallView(true);
        settings.EnableAutoTurnOffVideoWhenJoinMeeting(false);
        settings.EnableAlwaysUse16v9(true);
    }

    public void InitializeAudio()
    {
        var settings = CZoomSDKeDotNetWrap.Instance.GetSettingServiceWrap().GetAudioSettings();
        settings.EnableAlwaysMuteMicWhenJoinVoip(false);
        settings.EnableAutoJoinAudio(true);
        settings.EnableAutoAdjustMic(true);
        settings.EnableMicOriginalInput(true);
    }



    public static string ExtractDeviceCode(string str)
    {
        if (str == null) return str;
        string firstString = @"{";
        string lastString = @"}";
        int pos1 = str.LastIndexOf(firstString);
        int pos2 = str.LastIndexOf(lastString);
        if (pos1 == -1 || pos2 == -1 || pos2 <= pos1) return str;
        return str.Substring(pos1, pos2 - pos1 + 1);
    }
    public static string ExtractCameraPid(string str)
    {
        if (str == null) return str;
        string firstString = @"\\?\";
        //string lastString = @"{";
        int pos1 = str.IndexOf(firstString);
        //int pos2 = str.Substring(pos1).IndexOf(lastString);
        if (pos1 == -1) return str;            
        return str.Substring(pos1);
    }

    public void SetDevices()
    {
        //Console.WriteLine("HP+");
        //Console.WriteLine(HardwarePreferences.Singleton.SelectedVideoCaptureDevice?.Moniker);
        //Console.WriteLine(HardwarePreferences.Singleton.SelectedVideoCaptureDevice?.Name);
        //Console.WriteLine("HP-");
        var videoMoniker = HardwarePreferences.Singleton.SelectedVideoCaptureDevice?.Moniker;
        var audioMoniker = HardwarePreferences.Singleton.SelectedAudioCaptureDevice?.Moniker;

        if (videoMoniker != null && videoMoniker.Length > 0)
        {
            var cameraId = ExtractCameraPid(videoMoniker);
            //Console.WriteLine("Extracted Camera ID:" + cameraId);
            var matchCamera = VideoCaptureDevices.First(camera => camera.Moniker.ToLower().Contains(cameraId.ToLower()));
            //Console.WriteLine("Match Camera:" + matchCamera?.Name);
            var selectedCamera = matchCamera ?? VideoCaptureDevices.FirstOrDefault();
            var videoSettings = CZoomSDKeDotNetWrap.Instance.GetSettingServiceWrap().GetVideoSettings();
            var selectCameraResult = videoSettings.SelectCamera(selectedCamera.Moniker);
            //Console.WriteLine($"Select camera Result: {selectCameraResult}");
        }

        //ErrorLogger.Instance.LogDebug("AudioMonikerSettings", audioMoniker);
        if (audioMoniker != null && audioMoniker.Length > 0)
        {
            var audioId = ExtractDeviceCode(audioMoniker);
            //ErrorLogger.Instance.LogDebug("extracted audioId", audioId);
            //Console.WriteLine("Extracted Mic ID:" + audioId);
            var matchAudio = AudioCaptureDevices.First(audio => audio.Moniker.ToLower().Contains(audioId.ToLower()));
            //ErrorLogger.Instance.LogDebug("matchAudio", matchAudio.Moniker + " : " + matchAudio.Name);
            //Console.WriteLine("Match Audio:" + matchAudio?.Name);
            var selectedAudio = matchAudio ?? AudioCaptureDevices.FirstOrDefault();
            //ErrorLogger.Instance.LogDebug("selectedAudio ", selectedAudio.Moniker + " : " + selectedAudio.Name);
            var audioSettings = CZoomSDKeDotNetWrap.Instance.GetSettingServiceWrap().GetAudioSettings();
            var selectAudioResult = audioSettings.SelectMic(selectedAudio.Moniker, selectedAudio.Name);
            //ErrorLogger.Instance.LogDebug( "Zoom",$"Select audio Result: {selectAudioResult}");
        }
    }

    public List<CaptureDevice> AudioCaptureDevices { get; } = new List<CaptureDevice> { };
    public List<CaptureDevice> VideoCaptureDevices { get; } = new List<CaptureDevice> { };
    public void ScanDevices()
    {
        AudioCaptureDevices.Clear();
        VideoCaptureDevices.Clear();
        var videoSettings = CZoomSDKeDotNetWrap.Instance.GetSettingServiceWrap().GetVideoSettings();
        var audioSettings = CZoomSDKeDotNetWrap.Instance.GetSettingServiceWrap().GetAudioSettings();
       // Console.WriteLine("Zoom Scan");
        var cameraList = videoSettings?.GetCameraList();
        videoSettings.Add_CB_onComputerCamDeviceChanged(OnComputerCamDeviceChanged);

        foreach (var camera in cameraList)
        {
            var device = new CaptureDevice(camera.GetDeviceId(), camera.GetDeviceName());
            VideoCaptureDevices.Add(device);
            //if (camera.IsSelectedDevice())
            //{
            //    Console.WriteLine("Selected camera: " + camera.GetDeviceName() + " |:| " + camera.GetDeviceId());
            //}
           // Console.WriteLine(camera.GetDeviceName());
            //string devId = camera.GetDeviceId();
           // Console.WriteLine(devId);
        }

        var audioList = audioSettings?.GetMicList();
       // Console.WriteLine("AudioScan+");
        foreach (var audio in audioList)
        {
            var device = new CaptureDevice(audio.GetDeviceId(), audio.GetDeviceName());
            
            Console.Write(audio.GetDeviceId());
            Console.Write(audio.GetDeviceName());
            //ErrorLogger.Instance.LogDebug("Scanned Mic Item: ", audio.GetDeviceId() + " : " + audio.GetDeviceName());
            AudioCaptureDevices.Add(device);
            //if (audio.IsSelectedDevice())
            //{
            //    Console.WriteLine("Selected audio: " + audio.GetDeviceName() + " |:| " + audio.GetDeviceId());
            //}
        }
        //Console.WriteLine("AudioScan-");
        SetDevices();
    }             
}

public class ZoomInfo
{
    public string appKey;
    public string appSecret;
    public ulong meetingId;
    public string meetingPassword;
    public string userId;
    public string userZak;

    public ZoomInfo(string appKey, string appSecret, ulong meetingId, string meetingPassword, string userId, string userZak)
    {
        this.appKey = appKey;
        this.appSecret = appSecret;
        this.meetingId = meetingId;
        this.meetingPassword = meetingPassword;
        this.userId = userId;
        this.userZak = userZak;
    }

    public string displayName => TeacherToken.Current.Nickname;


}

}

  1. Im justing using default Zoom UI and when i open up the screen sharing view and select some particular screen or window to share it show me 105035 error msg .

In addition i integrate this sdk to my own wpf project . So is there something to do with my application ?

Thank you so much for the help :slight_smile:

Hey @ssijcfe,

This error could’ve been triggered for a few different reasons. Can you verify the following?

  • Screen sharing is enabled for this meeting
  • Screen sharing is enabled for this user
  • You have all of the DLL’s and executables that the SDK needs (compare with the demo application bin folder)

Thanks!
Michael

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.