what code you have writen,this is my code.
BOOL   Encrypt(char* szPin, BYTE* szCode, DWORD dwSize)
{
char code[32];
DWORD size = 32;
HCRYPTPROV hProv = 0;
HCRYPTHASH hHash = 0;
BOOL result = FALSE;
__try
{
if (!CryptAcquireContext(&hProv, NULL, MS_DEF_PROV, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT))
__leave; if (!CryptCreateHash(hProv, CALG_MD5, 0, 0, &hHash))
__leave; if (!CryptHashData(hHash, (const BYTE*)LPCTSTR(szPin), strlen(szPin), 0))
__leave; if (!CryptGetHashParam(hHash, HP_HASHVAL, (BYTE*)code, &size, 0))
__leave; memcpy(szCode, code, min(size, dwSize));
result = TRUE;
}
__finally
{
if (hHash)
CryptDestroyHash(hHash);
if (hProv)
CryptReleaseContext(hProv, 0);
}
return result;
}