This function searches the list of installed functions for an encoding type and OID match. If a match is found, the DLL containing the function is, if necessary, loaded. If a match is found, a pointer to the function address and a pointer to the function handle are also returned. The reference count on the function handle is incremented.

BOOL WINAPI CryptGetOIDFunctionAddress(
DWORD dwEncodingType,
DWORD dwFlags,
void **ppvFuncAddr,


  • hFuncSet
    [in] Function set handle previously obtained from a call to the CryptInitOIDFunctionSet function.

  • dwEncodingType
    [in] Specifies the encoding type to be matched. Currently, only X509_ASN_ENCODING is used; however, additional encoding types may be added in the future.

  • pszOID
    [in] If the high-order word of the OID is nonzero, the pszOID parameter is a pointer to either an OID string such as "" or an ASCII string such as "file". If the high-order word of the OID is zero, the low-order word specifies the numeric identifier to be used as the object identifier. This resulting OID maps to the function that was either installed or registered with the same OID.

  • dwFlags
    [in] The following table defines the dwFlags flag.

    Value Description
    CRYPT_GET_INSTALLED_OID_FUNC_FLAG Searches only the installed list of functions.
  • ppvFuncAddr
    [out] Pointer to a pointer to a function address. If a match is found, the ppvFuncAddr parameter points to the function address.

  • phFuncAddr
    [out] If a match is found, the phFuncAddr parameter points to the function handle. The handle's reference count is incremented. The CryptFreeOIDFunctionAddress function must be called to release the handle.

    Note   By default, both the registered and installed function lists are searched. Set CRYPT_GET_INSTALLED_OID_FUNC_FLAG to search only the installed list of functions. This flag would be set by a registered function to get the address of a pre-installed function it was replacing. For example, the registered function might handle a new special case and call the pre-installed function to handle the remaining cases.

Return Values

If the function succeeds and a match is found, the return value is nonzero (TRUE).

If no match is found, the function fails and the return value is zero (FALSE).

For extended error information, call the GetLastError function.


The desktop platform supports the PKCS_7_ASN_ENCODING flag, but Windows CE does not. Windows CE ignores the flag when it is specified.


Runs on Versions Defined in Include Link to
Windows CE OS 3.0 or later Wincrypt.h   Crypt32.lib

Note   This API is part of the complete Windows CE OS package as provided by Microsoft. The functionality of a particular platform is determined by the original equipment manufacturer (OEM) and some devices may not support this API.

See Also

CryptEnumOIDInfo, CryptFindOIDInfo, CryptFreeOIDFunctionAddress, CryptGetDefaultOIDFunctionAddress, CryptInitOIDFunctionSet

 Last updated on Tuesday, July 13, 2004

© 1992-2000 Microsoft Corporation. All rights reserved.