diff --git a/modules/twain_user/HGTwainImpl.cpp b/modules/twain_user/HGTwainImpl.cpp index 5adb51b6..dd4ce46c 100644 --- a/modules/twain_user/HGTwainImpl.cpp +++ b/modules/twain_user/HGTwainImpl.cpp @@ -433,11 +433,19 @@ HGResult HGTwainDSImpl::GetDeviceName(HGChar* name, HGUInt maxLen) } HGCapValue value; - value.type = HGCAPVALUE_TYPE_STR255; HGResult ret = GetCapbility(0x8854, &value); if (HGBASE_ERR_OK == ret) - strcpy(name, value.valueStr255); - + { + if (value.type == HGCAPVALUE_TYPE_STR32) + strcpy(name, value.valueStr32); + else if (value.type == HGCAPVALUE_TYPE_STR64) + strcpy(name, value.valueStr64); + else if (value.type == HGCAPVALUE_TYPE_STR128) + strcpy(name, value.valueStr128); + else if (value.type == HGCAPVALUE_TYPE_STR255) + strcpy(name, value.valueStr255); + } + return ret; }