Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Tworzy typ z określonego typu pierwotnego.
Składnia
Parametry
dwPrimType
[in] Wartość z wyliczenia CorElementType reprezentującego typ pierwotny.
pAddress
[in] Obiekt adresu reprezentowany przez interfejs IDebugAddress .
ppType
[in] Zwraca obiekt IDebugField opisujący typ.
Wartość zwracana
Jeśli operacja powiedzie się, zwraca wartość S_OK; w przeciwnym razie zwraca kod błędu.
Przykład
W poniższym przykładzie pokazano, jak zaimplementować tę metodę dla obiektu CDebugSymbolProvider, który uwidacznia interfejs IDebugComPlusSymbolProvider.
HRESULT CDebugSymbolProvider::CreateTypeFromPrimitive(
DWORD dwPrimType,
IDebugAddress* pAddress,
IDebugField** ppType)
{
HRESULT hr = S_OK;
CDEBUG_ADDRESS addr;
const COR_SIGNATURE* pTypeInfo = (const COR_SIGNATURE*) & dwPrimType;
CDebugGenericParamScope* pGenScope = NULL;
//
// This function will only work for primitive types
//
METHOD_ENTRY( CDebugSymbolProvider::CreateTypeFromPrimitive );
IfFailGo( pAddress->GetAddress( &addr ) );
IfNullGo( pGenScope = new CDebugGenericParamScope(addr.GetModule(), addr.tokClass, addr.GetMethod()), E_OUTOFMEMORY );
IfFailGo( CreateType( pTypeInfo,
1,
addr.GetModule(),
addr.GetMethod(),
pGenScope,
ppType ) );
METHOD_EXIT( CDebugSymbolProvider::CreateTypeFromPrimitive, hr );
Error:
RELEASE( pGenScope );
return hr;
}