public static extern void adl_connect(adl_void_rclbck_t rclbck,
                                       ADLH handle, IntPtr opaque, ref ADLConnectionDescription connDescr);
 public static extern void adl_stop_local_video(
     adl_void_rclbck_t rclbck, ADLH handle, IntPtr opaque);
 public static extern void adl_get_screen_capture_sources(
     adl_get_screen_capture_srcs_rclbck_t rclbck, ADLH handle,
     IntPtr opaque, int targetWidth);
 public static extern void adl_stop_render(adl_void_rclbck_t rclbck,
                                           ADLH handle, IntPtr opaque, int rendererId);
 public static extern void adl_get_version(
     adl_string_rclbck_t resultHandler, ADLH handle, IntPtr opaque);
 public static extern void adl_unpublish(adl_void_rclbck_t rclbck,
                                         ADLH handle, IntPtr opaque, ref ADLString scopeId,
                                         ref ADLString what);
 public static extern void adl_stop_measuring_stats(adl_void_rclbck_t rclbck, ADLH handle,
                                                    IntPtr opaque, ref ADLString scopeId);
 public static extern void adl_set_audio_output_device(
     adl_void_rclbck_t rclbck, ADLH handle, IntPtr opaque,
     ref ADLString device_id);
 public static extern void adl_get_audio_output_device(
     adl_string_rclbck_t rclbck, ADLH handle, IntPtr opaque);
 public static extern void adl_get_video_capture_device(
     adl_string_rclbck_t rclbck, ADLH handle, IntPtr opaque);
 public static extern void adl_get_audio_capture_device_names(
     adl_get_device_names_rclbck_t rclbck, ADLH handle, IntPtr opaque);
 public static extern void adl_set_video_capture_device(
     adl_void_rclbck_t rclbck, ADLH handle, IntPtr opaque,
     ref ADLString device_id);
 public static extern void adl_add_service_listener(
     adl_void_rclbck_t resultHandler, ADLH handle, IntPtr opaque,
     ref ADLServiceListener listener);
 public static extern void adl_set_application_id(adl_void_rclbck_t rclbck,
                                                  ADLH handle, IntPtr opaque, long applicationId);
 public static extern void adl_disconnect(adl_void_rclbck_t rclbck,
                                          ADLH handle, IntPtr opaque, ref ADLString scopeId);
 public static extern void adl_stop_playing_test_sound(
     adl_void_rclbck_t rclbck, ADLH handle, IntPtr opaque);
 public static extern void adl_publish(adl_void_rclbck_t rclbck,
                                       ADLH handle, IntPtr opaque, ref ADLString scopeId,
                                       ref ADLString what, ref ADLMediaPublishOptions options);
 public static extern void adl_set_volume(
     adl_void_rclbck_t rclbck, ADLH handle, IntPtr opaque, int volume);
 public static extern void adl_send_message(adl_void_rclbck_t rclbck,
                                            ADLH handle, IntPtr opaque, ref ADLString scopeId,
                                            [MarshalAs(UnmanagedType.LPStr)] string msgBody,
                                            UIntPtr msgSize, ref Int64 recipientId);
 public static extern void adl_get_volume(
     adl_int_rclbck_t rclbck, ADLH handle, IntPtr opaque);
 public static extern void adl_render_sink(adl_int_rclbck_t rclbck,
                                           ADLH handle, IntPtr opaque, ref ADLRenderRequest request);
 public static extern void adl_monitor_mic_activity(
     adl_void_rclbck_t rclbck, ADLH handle, IntPtr opaque, bool monitor);
 public static extern void adl_draw(ADLH handle,
                                    ref ADLDrawRequest request);
 public static extern int adl_release_platform(ADLH handle);