/*
 * Copyright(C) 2000 Проект ИОК
 *
 * Этот файл содержит информацию, являющуюся
 * собственностью компании Крипто Про.
 *
 * Любая часть этого файла не может быть скопирована,
 * исправлена, переведена на другие языки,
 * локализована или модифицирована любым способом,
 * откомпилирована, передана по сети с или на
 * любую компьютерную систему без предварительного
 * заключения соглашения с компанией Крипто Про.
 */

/*!
 * \file $RCSfile$
 * \version $Revision: 138236 $
 * \date $Date:: 2016-05-11 12:17:11 +0300#$
 * \author $Author: dim $
 *
 * \brief Вызов функций визуализатора
 *
 * Проект: интерфейс визуализатора (HVIS).
 */

#include "hvis_prj.h" 
#include "visualizer.h"


/* Функция создания вопроса пользователя.
SCARD_W_CANCELLED_BY_USER - если пользователь отказался подписывать.
ERROR_SUCCESS - если согласился.
ERROR_UNSUPPORTED_TYPE - если хэшированные данные невозможно отобразить.
Другие ошибки по ситуации.
*/
DWORD hvis_ask_user(const TSupSysEContext *context, BOOL silent_context, PHS_SIGNING_DATA signing_data, PHS_ADDITIONAL_DATA additional_data) 
{
    THvisAskInfo info;
    if (context == NULL)
	return (DWORD)ERROR_INVALID_PARAMETER;
    info.silent = silent_context;
    info.additional_data = additional_data;
    info.signing_data = signing_data;
    return supsys_call(context, HASHVIS_FUN_ASK, (TSupSysInfo*)&info);
}

/*!
* \ingroup hvis_error_fun
* \brief Функция установки parent HWND.
* \param context [in] контекст визуализатора.
* \param hwnd [in] parent HWND.
* \retval ERROR_SUCCESS HWND установлено или установка HWND не требуется.
* \retval "ошибки визуализации" \ret hvis_err_code
*/
DWORD hvis_init_ctx(const TSupSysEContext *context, HWND hwnd, char * utf8header, WORD language, char * utf8contname)
{
    DWORD code;
    THVisFunInit init_st;
    SUPSYS_PRE(context);

    init_st.header = utf8header;
    init_st.language = language;
    init_st.parent = hwnd;
    init_st.name = utf8contname;

    code = supsys_call(context, HASHVIS_FUN_INIT, (TSupSysInfo*)&init_st);
    if (code == (DWORD)ERROR_NOT_SUPPORTED)
	code = ERROR_SUCCESS;
    return code;
}
