Platform SDK: Certificate Enrollment Control |
The enumContainers method enumerates all the containers for the provider specified in the ProviderName property. If that property has not been changed, then the default value of ProviderName (usually Microsoft Base Cryptographic Provider) as set in the registry, is used for the enumeration.
[Visual Basic] objEnroll.enumContainers( _ dwIndex As Long ) As String [C++] HRESULT enumContainers ( DWORD dwIndex, // in BSTR *pbstrContainerName // out );
[Visual Basic] The return value is a String variable representing the name of the container being enumerated. An exception is raised if an error is encountered or when there are no more items remaining in the enumeration sequence.
[C++] The return value is an HRESULT. A value of S_OK indicates success. Upon successful completion of this function, pbstrContainerName will contain the name of the enumerated container. When there are no more containers, the value ERROR_NO_MORE_ITEMS is returned.
BSTR bstrProvName = NULL; BSTR bstrCon = NULL; DWORD nCon; HRESULT hr; // Let the control know which provider to query. bstrProvName = SysAllocString(TEXT("Microsoft Base") TEXT(" Cryptographic Pr") TEXT("ovider v1.0")); hr = pEnroll->put_ProviderName( bstrProvName ); if (FAILED(hr)) { printf("Failed put_ProviderName - %x\n", hr); goto error; } // enumerate the containers for this provider nCon = 0; printf("Containers for %ws:\n", bstrProvName ); // pEnroll is previously instantiated ICEnroll interface pointer while ( S_OK == pEnroll->enumContainers(nCon, &bstrCon) ) { printf("\t%d) %ws\n", nCon++, bstrCon ); // Free this string, so it can be re-used. if ( NULL != bstrCon ) { SysFreeString( bstrCon ); bstrCon = NULL; } } error: //clean up resources, etc. if ( NULL != pEnroll ) pEnroll->Release(); if ( NULL != bstrProvName ) SysFreeString( bstrProvName ); if ( NULL != bstrCon ) SysFreeString( bstrCon ); CoUninitialize();
Dim strOut As String Dim i As Integer Dim NoMoreRecs As Boolean ' enumerate the containers i = 0 NoMoreRecs = False On Error GoTo ErrorHandler Do strOut = objEnroll.enumContainers(i) If NoMoreRecs Then Exit Do End If ' display the index and Container value MsgBox (i & " " & strOut) i = i + 1 Loop Exit Sub ErrorHandler: NoMoreRecs = True Resume Next End Sub
Windows NT/2000: Requires Windows 2000 (or Windows NT 4.0 with the Windows NT 4.0 Option Pack).
Header: Declared in Xenroll.h.
Library: Use Uuid.lib.