Figure 2: The GetLicenseKey method

// Returns a runtime licensing key
BOOL CCUJSAMPCtrl::CCUJSAMPCtrlFactory::GetLicenseKey(
    DWORD dwReserved, BSTR FAR* pbstrKey)
{
        if (nagFlag)//design time
        {
                *pbstrKey = SysAllocString(_szNagString); 
                return TRUE;
        }
        else //run-time
        {
                USES_CONVERSION;
     
                if (pbstrKey == NULL)
                        return FALSE;
     
                CMD5Encrypt md5;
                char*  digest = md5.MD5String(SecretString); 
                _szLicString = A2OLE (digest);
     
                *pbstrKey = SysAllocString(_szLicString); 
                return (*pbstrKey != NULL);
        }
}
//End of File