// Gets the field descriptor for a particular field. If this descriptor refers to one owned
// by our wrapped provider, we'll pass it along. Otherwise we provide our own.
HRESULT CMultiOneTimePasswordProvider::GetFieldDescriptorAt(
    __in DWORD dwIndex, 
    __deref_out CREDENTIAL_PROVIDER_FIELD_DESCRIPTOR** ppcpfd
    )
{    
    HRESULT hr;

	/* DEBUG:
	bool exit = true;
	if (exit)
		return E_NOTIMPL;
	//*/

    // Verify dwIndex is a valid field.
    if ((dwIndex < SFI_NUM_FIELDS) && ppcpfd)
    {
        hr = FieldDescriptorCoAllocCopy(s_rgCredProvFieldDescriptors[dwIndex], ppcpfd);
    }
    else
    { 
        hr = E_INVALIDARG;
    }

    return hr;
}
예제 #2
0
// Gets the field descriptor for a particular field
HRESULT TapLockProvider::GetFieldDescriptorAt(
    DWORD dwIndex, 
    CREDENTIAL_PROVIDER_FIELD_DESCRIPTOR** ppcpfd
    )
{    
    HRESULT hr;
    // Verify dwIndex is a valid field.
    if ((dwIndex < SFI_NUM_FIELDS) && ppcpfd)
        hr = FieldDescriptorCoAllocCopy(s_rgCredProvFieldDescriptors[dwIndex], ppcpfd);
    else
        hr = E_INVALIDARG;
    return hr;
}
HRESULT RfidProvider::GetFieldDescriptorAt(
	DWORD dwIndex, 
	CREDENTIAL_PROVIDER_FIELD_DESCRIPTOR** ppcpfd
	)
{    
	HRESULT hr;
	if ((dwIndex < SFI_NUM_FIELDS) && ppcpfd)
	{
		hr = FieldDescriptorCoAllocCopy(s_rgCredProvFieldDescriptors[dwIndex], ppcpfd);
	}
	else
	{ 
		hr = E_INVALIDARG;
	}

	return hr;
}
// Gets the field descriptor for a particular field
HRESULT COpenOTPProvider::GetFieldDescriptorAt(
    __in DWORD dwIndex, 
    __deref_out CREDENTIAL_PROVIDER_FIELD_DESCRIPTOR** ppcpfd
    )
{    
    HRESULT hr;

    // Verify dwIndex is a valid field.
    if ((dwIndex < SFI_NUM_FIELDS) && ppcpfd)
    {
        hr = FieldDescriptorCoAllocCopy(s_rgCredProvFieldDescriptors[dwIndex], ppcpfd);
    }
    else
    { 
        hr = E_INVALIDARG;
    }

    return hr;
}
// Gets the field descriptor for a particular field.
HRESULT MultiotpProvider::GetFieldDescriptorAt(
    DWORD dwIndex,
    _Outptr_result_nullonfailure_ CREDENTIAL_PROVIDER_FIELD_DESCRIPTOR **ppcpfd)
{
    HRESULT hr;
    *ppcpfd = nullptr;

    // Verify dwIndex is a valid field.
    if ((dwIndex < SFI_NUM_FIELDS) && ppcpfd)
    {
        hr = FieldDescriptorCoAllocCopy(s_rgCredProvFieldDescriptors[dwIndex], ppcpfd);
    }
    else
    {
        hr = E_INVALIDARG;
    }

    return hr;
}
// Gets the field descriptor for a particular field. If this descriptor refers to one owned
// by our wrapped provider, we'll pass it along. Otherwise we provide our own.
HRESULT CTotpProvider::GetFieldDescriptorAt(
    __in DWORD dwIndex, 
    __deref_out CREDENTIAL_PROVIDER_FIELD_DESCRIPTOR** ppcpfd
    )
{    
    HRESULT hr = E_UNEXPECTED;

    if (_pWrappedProvider != NULL)
    {
        if (ppcpfd != NULL)
        {
            // If this field maps to one in the wrapped provider, hand it off.
            if (dwIndex < _dwWrappedDescriptorCount)
            {
                hr = _pWrappedProvider->GetFieldDescriptorAt(dwIndex, ppcpfd);
            }
            // Otherwise, check to see if it's ours and then handle it here.
            else
            {
                // Offset into the descriptor count so we can index our own fields.
                dwIndex -= _dwWrappedDescriptorCount;

                // Verify dwIndex is still a valid field.
                if (dwIndex < SFI_NUM_FIELDS)
                {
                    hr = FieldDescriptorCoAllocCopy(s_rgCredProvFieldDescriptors[dwIndex], ppcpfd);
                    (*ppcpfd)->dwFieldID += _dwWrappedDescriptorCount;
                }
                else
                { 
                    hr = E_INVALIDARG;
                }
            }
        }
        else
        { 
            hr = E_INVALIDARG;
        }
    }

    return hr;
}
예제 #7
0
// Gets the field descriptor for a particular field.
HRESULT CXCreProviderV2::GetFieldDescriptorAt(
	DWORD dwIndex, 
	CREDENTIAL_PROVIDER_FIELD_DESCRIPTOR** ppcpfd
	)
{    
	HRESULT hr;
	*ppcpfd = NULL;

	// Verify dwIndex is a valid field.
	if ((dwIndex < SFI_MAX_FIELDS) && ppcpfd)
	{
		hr = FieldDescriptorCoAllocCopy(s_rgCredProvFieldDescriptors[dwIndex], ppcpfd);
	}
	else
	{
		hr = E_INVALIDARG;
	}

	return hr;
}
예제 #8
0
//
// Gets the field descriptor for a particular field
//
HRESULT CXCreProvider::GetFieldDescriptorAt(
	DWORD dwIndex, 
	CREDENTIAL_PROVIDER_FIELD_DESCRIPTOR** ppcpfd
	)
{    
	HRESULT hr;	
	if (m_pOrgProvider != NULL)
	{
		if (ppcpfd != NULL)
		{
			if (dwIndex < m_dwWrappedDescriptorCount)
			{				
				hr = m_pOrgProvider->GetFieldDescriptorAt(dwIndex, ppcpfd);				
			}
			else //
			{
				// Offset into the descriptor count so we can index our own fields.
				dwIndex -= m_dwWrappedDescriptorCount;
				if (dwIndex < SFI_MAX_FIELDS)
				{
					hr = FieldDescriptorCoAllocCopy(s_rgCredProvFieldDescriptors[dwIndex], ppcpfd);
					(*ppcpfd)->dwFieldID += m_dwWrappedDescriptorCount;
				}
				else
				{ 
					hr = E_INVALIDARG;
				}				
			}
		}
		else
		{ 
			hr = E_INVALIDARG;
		}
	}

	return hr;
}