IX509ExtensionKeyUsage::InitializeDecode method

The InitializeDecode method initializes the extension from a Distinguished Encoding Rules (DER) encoded byte array that contains the extension value. The encoded byte array is represented by a Unicode encoded string.


HRESULT InitializeDecode(
  [in] EncodingType Encoding,
  [in] BSTR         strEncodedData


Encoding [in]

An EncodingType enumeration value that specifies the type of Unicode encoding applied to the strEncodedData parameter.

strEncodedData [in]

A BSTR variable that contains the DER-encoded extension.

Return value

If the function succeeds, the function returns S_OK.

If the function fails, it returns an HRESULT value that indicates the error. Possible values include, but are not limited to, those in the following table. For a list of common error codes, see Common HRESULT Values.

Return code/valueDescription

The object is already initialized.



You can use this method if you have a DER-encoded Abstract Syntax Notation One (ASN.1) object that contains a KeyUsage extension. You must supply the DER-encoded object in a Unicode encoded string. For more information, see the IBinaryConverter interface.

You must call either InitializeEncode or InitializeDecode before you can use an IX509ExtensionKeyUsage object. The two methods complement each other. The InitializeEncode method enables you to construct a DER-encoded ASN.1 extension object from raw data, and the InitializeDecode method enables you to initialize the raw data from an encoded object.

You can retrieve the following properties for this extension:

  • The Critical property identifies whether the extension is critical. You can also specify this property.
  • The ObjectId property retrieves the extension object identifier (OID).
  • The KeyUsage property retrieves the restrictions that identify the intended uses of the public key (the raw extension data).


Minimum supported client

Windows Vista [desktop apps only]

Minimum supported server

Windows Server 2008 [desktop apps only]





See also