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

#include "fat12prj.h"
#include "Win32/fat12_rc.h"

static const TSupSysInfoIDSBaseItem EHDIMAGE_IDS_ITEMS[] = 
{
    { SUPSYS_IDS_BLOCK_BASE, IDS_EHDIMAGE_NAME, SUPSYS_IDS_BASE_QUANT_V2 },
    { SUPSYS_IDS_BLOCK_ICON, IDI_EHDIMAGE, SUPSYS_IDS_ICON_QUANT_V1 },
    { READER_IDS_BLOCK, IDS_EHDIMAGE_INSERT_TEXT, READER_IDS_QUANT_V1 }
};

/*!
 * \ingroup fat12_internal
 * \brief Описание смещений ресурса для HDIMAGE
 */
static const TSupSysInfoIDSBase EHDIMAGE_IDS = 
{
    sizeof( EHDIMAGE_IDS_ITEMS ) / sizeof( TSupSysInfoIDSBaseItem ),
    EHDIMAGE_IDS_ITEMS
};

/*!
 * \ingroup hdimage_fun_general
 * \brief Функция возвращающая смещение ресурса для EHDIMAGE
 * \param context [in] контекст считывателя. Не используется.
 * \param info [out] структура #TSupSysInfoIDSBase
 * \return код ошибки.
 * \retval #ERROR_SUCCESS смещение ресурса возвращено.
 * \retval #(DWORD)ERROR_INVALID_PARAMETER при неправильных параметрах
 */
DWORD ehdimage_info_ids(
    TSupSysContext *context, 
    TSupSysInfo *info )
{
    UNUSED( context );

    SUPSYS_PRE_INFO( info, TSupSysInfoIDSBase );
    memcpy( info, &EHDIMAGE_IDS, sizeof( TSupSysInfoIDSBase ) );
    return ERROR_SUCCESS;
}

DWORD ehdimage_get_text_info(TSupSysContext *context, TSupSysInfo *info)
{
    TSupSysInfoText * inf = (TSupSysInfoText *)info;
#ifndef _WIN32
    const TCHAR * applet_info = _TEXT("Use HDD file system as key storage.");
    UNUSED(context);
    if (!inf->text) {
	inf->length = _tcslen(applet_info);
	return 0;
    }
    if (inf->length < _tcslen(applet_info)) {
	inf->length = _tcslen(applet_info);
	return (DWORD)ERROR_MORE_DATA;
    }
    _tcscpy(inf->text, applet_info);
    inf->length = _tcslen(applet_info);
    return 0;
#else //_WIN32
    UNUSED(context);
    return support_resource_string(FAT12_DLL_INSTANCE, IDS_EHDIMAGE_INFO, inf->text, &inf->length);
#endif //_WIN32
}
