Доделай пожалуйста комментирование кода ниже на русском в стиле доксиген:
#pragma once

#ifdef VECTOR_EXPORT
    #if defined(_MSC_VER)
        #define VECTOR_BOX_API  __declspec(dllexport)
    #else
        #define VECTOR_BOX_API  __attribute__((visibility("default")))
    #endif
#elif VECTOR_IMPORT
    #define VECTOR_BOX_API  __declspec(dllimport)
#else
    #define VECTOR_BOX_API
#endif

extern "C"
{
    struct vector_box_interface
    {
        //пользовательские данные, которые будут переданы в колбэки
        void *user_data;

        //колбэк получения кадров и/или регионов
        void(*cb_frame)(void *user, void *hand, int cam_id, const void *frame_data, int frame_index, int seq_index, int w, int h) = 0;

        //колбэк для логгера
        void(*cb_logger)(void *user, void *hand, const char *message) = 0;

        enum EvetType
        {
            EVERT_CONNECTED = 0,
            EVENT_DISCONNECTED = 1,
            EVENT_HW_CHANGED = 2
        };

        enum RetCode
        {
            RET_ERROR_INCOMPLETE_INTERFACE = -1,
            RET_OK = 0,
            RET_OFFLINE = 1
        };

        //событие связанное с сервером
        void(*cb_event)(void *user, void *hand, int ev) = 0;
    };


    ///
    /// \brief vector_box_create создает экземпляр клиента для сетевого взаимодействия
    /// \param iface содержит все необходимые данные для взаимодействия с шарпом
    /// \param addr не нужно специально инициализировать для автосоединения через широковещание
    /// \param port аналогично
    /// \return hand - указатель на экземпляр с которым вызывается деструктор
    ///
    VECTOR_BOX_API void* vector_box_create(
            vector_box_interface *iface,
            const char* addr = nullptr,
            int port = -1);

    ///
    /// \brief vector_box_destroy
    /// \param hand дескриптор созданного экземпляра
    /// \return код ошибки
    ///
    VECTOR_BOX_API int vector_box_destroy(
            void *hand);

    ///
    /// \brief vector_box_pull
    /// \param hand дескриптор созданного экземпляра
    /// \return код ошибки ( 0 - соединение установлено )
    ///
    VECTOR_BOX_API int vector_box_pull(
            void *hand);

    ///
    /// \brief vector_box_reconnect
    /// \param hand дескриптор созданного экземпляра
    /// \return код ошибки ( 0 - соединение установлено )
    ///
    VECTOR_BOX_API int vector_box_reset_connection(
            void *hand);

    ///
    /// \brief vector_box_current_server_addr
    /// \param hand дескриптор созданного экземпляра
    /// \return вернет адрес, если соединение активно
    ///
    VECTOR_BOX_API const char* vector_box_current_server_addr(void *hand);

    ///
    /// \brief vector_box_current_server_port
    /// \param hand дескриптор созданного экземпляра
    /// \return вернет корректный (0..65535) номер порта если соединение активно
    ///
    VECTOR_BOX_API int vector_box_current_server_port(void *hand);

    ///
    /// \brief vector_box_get_descriptor
    /// \param hand дескриптор созданного экземпляра
    /// \return дескриптор сервера в формате JSON с описанием аппаратуры, версий, доступных режимов и прочих данных
    ///
    VECTOR_BOX_API const char* vector_box_get_descriptor(void *hand);

    ///
    /// \brief vector_box_set_idle_mode переводим камеры в неактивный режим
    /// \param hand дескриптор созданного экземпляра
    /// \return код ошибки
    ///
    VECTOR_BOX_API int vector_box_set_idle_mode(void *hand);

    ///
    /// \brief vector_box_set_barrier_mode переводим камеры в режим барьера (кадры будут поступать в колбэк)
    /// \param hand дескриптор созданного экземпляра
    /// \param frame_count
    /// \param sequence_count
    /// \return код ошибки
    ///
    VECTOR_BOX_API int vector_box_set_barrier_mode(void *hand, int frame_count, int sequence_count = 1);

    ///
    /// \brief vector_box_set_stream_mode переводим камеры в режим непрерывной съемки (кадры будут поступать в колбэк)
    /// \param hand дескриптор созданного экземпляра
    /// \return код ошибки
    ///
    VECTOR_BOX_API int vector_box_set_stream_mode(void *hand);

    ///
    /// \brief vector_box_set_shot_mode переводим камеры в режим покадровой съемки (кадры будут поступать в колбэк)
    /// \param hand дескриптор созданного экземпляра
    /// \return код ошибки
    ///
    VECTOR_BOX_API int vector_box_set_shot_mode(void *hand, int frame_count);

    ///
    /// \brief vector_box_set_camera_settings настройка ROI на конкретной камере
    /// \param hand дескриптор созданного экземпляра
    /// \param cam_id
    /// \param x
    /// \param y
    /// \param w
    /// \param h
    /// \param gain
    /// \param shutter_width
    /// \return код ошибки
    ///
    VECTOR_BOX_API int vector_box_set_camera_settings(void *hand,
                                                      int cam_id,
                                                      unsigned int roi_x,
                                                      unsigned int roi_y,
                                                      unsigned int roi_w,
                                                      unsigned int roi_h,
                                                      unsigned int gain,
                                                      unsigned int shutter_width);

};