共用方式為


註冊新功能

必須在新的 DLL 中提供支援,以便在系統登錄中註冊新的功能和新的函數。 OID 支援功能 提供這項註冊的協助。 Regsvr32.exe 註冊新的函式。 此工具隨附於 Windows 中。

新的 DLL 必須提供 DllRegisterServerDllUnregisterServer 進入點,以供 Regsvr32.exe使用。 CryptoAPI 函式,例如 CryptRegisterOIDFunctionCryptUnregisterOIDFunction,可以在這些進入點內使用,如下列範例所示。

//  The DllRegisterServer Entry Point
STDAPI DllRegisterServer(void)
{
    if(!CryptRegisterOIDFunction(
         X509_ASN_ENCODING,                  // Encoding type
         CRYPT_OID_ENCODE_OBJECT_FUNC,       // Function name
         szOID_NEW_CERTIFICATE_TYPE,         // OID
         L"NewCert.dll",                     // Dll name
         L"NewCertificateTypeEncodeObject"   // Override function
         ))                                  //   name
       {
         return E_FAIL;
       }
    else
       {
         return S_OK;
       }
}

// The DllUnregisterServer Entry Point
STDAPI DllUnregisterServer(void)
{
    HRESULT     hr = S_OK;

    if(!CryptUnregisterOIDFunction(
          X509_ASN_ENCODING,             // Encoding type
          CRYPT_OID_ENCODE_OBJECT_FUNC,  // Function name
          szOID_NEW_CERTIFICATE_TYPE     // OID
          ))
    {
       if(ERROR_FILE_NOT_FOUND != GetLastError())
               hr = E_FAIL;
    }
    return hr;
}

這個範例必須編譯並連結至新的 DLL。 這兩個進入點以及函式進入點必須導出。

若要在電腦上安裝新功能,請從命令提示字元執行 Regsvr32.exe,並指定新 DLL 的名稱和路徑。 Regsvr32.exe 透過 DllRegisterServer 函式進入點存取 CryptRegisterOIDFunction 函式,並註冊新的函式和 DLL。