Compartir a través de


Método IDataModelManager4::CreateIntrinsicObject (dbgmodel.h)

El método CreateIntrinsicObject es el método que boxe los valores intrínsecos en IModelObject. El autor de la llamada coloca el valor en una VARIANTE COM y llama a este método. El administrador de modelos de datos devuelve un IModelObject que representa el objeto . Tenga en cuenta que este método también se usa para escribir tipos básicos basados en IUnknown: descriptores de acceso de propiedad, métodos, contextos, etc... En tales casos, el método objectKind indica qué tipo de construcción basada en IUnknown representa el objeto y el campo punkVal de la variante pasada es el tipo derivado IUnknown. El tipo debe convertirse estáticamente en la interfaz de modelo adecuada (por ejemplo: IModelPropertyAccessor, IModelMethod, IDebugHostContext, etc...).

Los tipos VARIANT admitidos por este método son VT_UI1, VT_I1, VT_UI2, VT_I2, VT_UI4, VT_I4, VT_UI8, VT_I8, VT_R4, VT_R8, VT_BOOL, VT_BSTR y VT_UNKNOWN (para un conjunto especializado de tipos derivados de IUnknown como se indica en la enumeración ModelObjectKind.

Sintaxis

HRESULT CreateIntrinsicObject(
  ModelObjectKind objectKind,
  VARIANT         *intrinsicData,
  IModelObject    **object
);

Parámetros

objectKind

Indica el tipo de objeto que se está conversión boxeando. Para los intrínsecos normales que difieren según el tipo de variante, ObjectIntrinsic se pasa aquí. Para otros que son interfaces derivadas de IUnknown de forma eficaz, el tipo de objeto es uno de los valores de la enumeración ModelObjectKind y la interfaz de variant debe coincidir.

intrinsicData

Variant que contiene el valor que se va a boxear dentro de un contenedor IModelObject.

object

El valor recién boxizado (como IModelObject) se devolverá aquí.

Valor devuelto

Este método devuelve HRESULT que indica éxito o error.

Observaciones

de código de ejemplo

ComPtr<IDataModelManager4> spManager; /* get the data model manager */

VARIANT vtValue;
vtValue.vt = VT_I4;
vtValue.lVal = 42;

// If the object is an VT_UNKNOWN, the first argument to CreateIntrinsicObject
// indicates what KIND of IUnknown.  For example, ObjectPropertyAccessor would 
// indicate IModelPropertyAccessor.  ObjectMethod would indicate IModelMethod, etc...
ComPtr<IModelObject> spValue;
if (SUCCEEDED(spManager->CreateIntrinsicObject(ObjectIntrinsic, &vtValue, &spValue)))
{
    // spValue now contains the object (boxed) representation of the int value 42.
}

Requisitos

Requisito Valor
encabezado de dbgmodel.h

Consulte también

interfaz IDataModelManager4