Home | Info | Community | Development | myReactOS | Contact Us
Definition at line 99 of file str.c.
Referenced by cert_get_name_from_rdn_attr(), CertGetNameStringW(), and get_cps_str_from_qualifier().
{ DWORD ret = 0, len, i, strLen; TRACE("(%d, %p, %p, %d)\n", dwValueType, pValue, psz, csz); switch (dwValueType) { case CERT_RDN_ANY_TYPE: break; case CERT_RDN_NUMERIC_STRING: case CERT_RDN_PRINTABLE_STRING: case CERT_RDN_TELETEX_STRING: case CERT_RDN_VIDEOTEX_STRING: case CERT_RDN_IA5_STRING: case CERT_RDN_GRAPHIC_STRING: case CERT_RDN_VISIBLE_STRING: case CERT_RDN_GENERAL_STRING: len = pValue->cbData; if (!psz || !csz) ret = len; else { WCHAR *ptr = psz; for (i = 0; i < pValue->cbData && ptr - psz < csz; ptr++, i++) *ptr = pValue->pbData[i]; ret = ptr - psz; } break; case CERT_RDN_BMP_STRING: case CERT_RDN_UTF8_STRING: strLen = len = pValue->cbData / sizeof(WCHAR); if (!psz || !csz) ret = len; else { WCHAR *ptr = psz; for (i = 0; i < strLen && ptr - psz < csz; ptr++, i++) *ptr = ((LPCWSTR)pValue->pbData)[i]; ret = ptr - psz; } break; default: FIXME("string type %d unimplemented\n", dwValueType); } if (psz && csz) { *(psz + ret) = '\0'; csz--; ret++; } else ret++; TRACE("returning %d (%s)\n", ret, debugstr_w(psz)); return ret; }