Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Returns the number of constraints that are associated with this generic parameter.
HRESULT ConstraintCount(
ULONG32* pcConst
);
int ConstraintCount(
ref uint pcConst
);
Parameters
- pcConst
[in, out] Number of constraints that are associated with this field.
Return Value
If successful, returns S_OK; otherwise, returns an error code.
Example
The following example shows how to implement this method for a CDebugGenericParamFieldType object that exposes the IDebugGenericParamField interface.
HRESULT CDebugGenericParamFieldType::ConstraintCount(ULONG32* pcConst)
{
HRESULT hr = S_OK;
CComPtr<IMetaDataImport> pMetadata;
CComPtr<IMetaDataImport2> pMetadata2;
HCORENUM hEnum = 0;
ULONG cConst = 0;
METHOD_ENTRY( CDebugGenericParamFieldType::ConstraintCount );
IfFalseGo(pcConst, E_INVALIDARG );
*pcConst = 0;
IfFailGo( m_spSH->GetMetadata( m_idModule, &pMetadata ) );
IfFailGo( pMetadata->QueryInterface(IID_IMetaDataImport2, (void**)&pMetadata2) );
IfFailGo( pMetadata2->EnumGenericParamConstraints( &hEnum,
m_tokParam,
NULL,
0,
&cConst) );
IfFailGo( pMetadata->CountEnum(hEnum, &cConst) );
pMetadata->CloseEnum(hEnum);
hEnum = NULL;
*pcConst = cConst;
Error:
METHOD_EXIT( CDebugGenericParamFieldType::ConstraintCount, hr );
return hr;
}