HRESULT MicrosoftInstrumentationEngine::CTypeCreator::FromCorElement()

in src/InstrumentationEngine/TypeCreator.cpp [22:59]


HRESULT MicrosoftInstrumentationEngine::CTypeCreator::FromCorElement(_In_ CorElementType type, _Out_ IType ** ppType)
{
    IfNullRetPointer(ppType);
    *ppType = nullptr;

    switch (type)
    {
        case ELEMENT_TYPE_VOID:
        case ELEMENT_TYPE_BOOLEAN:
        case ELEMENT_TYPE_CHAR:
        case ELEMENT_TYPE_I1:
        case ELEMENT_TYPE_U1:
        case ELEMENT_TYPE_I2:
        case ELEMENT_TYPE_U2:
        case ELEMENT_TYPE_I4:
        case ELEMENT_TYPE_U4:
        case ELEMENT_TYPE_I8:
        case ELEMENT_TYPE_U8:
        case ELEMENT_TYPE_R4:
        case ELEMENT_TYPE_R8:
        case ELEMENT_TYPE_I:
        case ELEMENT_TYPE_U:
        case ELEMENT_TYPE_STRING:
        case ELEMENT_TYPE_OBJECT:
        {
            CComPtr<IType> simpleType;
            simpleType.Attach(new CSimpleType(type));
            if (simpleType == nullptr)
            {
                return E_OUTOFMEMORY;
            }
            *ppType = simpleType.Detach();
            return S_OK;
        }
    }

    return E_NOTIMPL;
}