Partilhar via


Criar objetos incorporados

Ao criar uma instância com objetos incorporados, execute as seguintes tarefas:

  • Você deve declarar um objeto incorporado como fortemente tipado ou fracamente tipado.

    Um objeto fortemente tipado aponta para um objeto de uma classe específica e usa o nome da classe. Um objeto fracamente tipado aponta para um objeto de uma classe não especificada e usa a palavra-chave object. Ambos os objetos são mapeados para o tipo VT_UNKNOWN.

  • Você pode usar NULL para o valor padrão de objetos e caminhos incorporados em inicializações e declarações.

  • Ao incorporar um caminho de objeto, não coloque espaço em branco entre os elementos do caminho incorporado. Por exemplo, o caminho do objeto "Class1Index=3;" não contém espaço entre o nome da propriedade "Class1index" e o valor atribuído, que é "3".

A declaração de classe a seguir mostra como declarar objetos incorporados fortemente tipados e fracamente tipados.

Class MyClass
{
    EmbedClass    Object1;          // Strongly typed
    object        Object2;          // Weakly typed
};

Os exemplos a seguir descrevem como declarar objetos incorporados em uma declaração de classe.

Class Class1 
{ 
     [key] sint32 Class1Index;
};

Class Class2 
{
    [key] sint32 Class2Index;
    Class1 EmbedObject1 = instance of Class1{Class1Index=3;};
};

Class Class3
{
    [key] sint32 Class3Index;
    Class2 EmbedObject2 = instance of Class2 {Class2Index=4;};
};

O exemplo a seguir descreve a inicialização de uma propriedade que é um objeto fortemente tipado e outra propriedade que é uma matriz de objetos fracamente tipados.

Class EmbedClass1
{
    [key] sint32 intval;
};

Class EmbedClass2
{
    [key] string sval;
};

Class ContainerClass
{
    [key] sint32 intval;
    EmbedClass1 SingleObject;
    Object ArrayObject[];
};

Instance of ContainerClass
{
    intval = 33;
    SingleObject = instance of EmbedClass1 {intval=99;};
    ArrayObject = {instance of EmbedClass2 {sval="something";},
                   instance of EmbedClass1 {intval=100;}};
};