Aplicar o atributo personalizado para obter COM não gerenciado do Tag/definir propriedades
Interfaces de COM não gerenciados podem ser objetos de enumerable que acessam as enumerações através de um Item método. No.NET Framework, esse método é especificado como .Item. A única maneira de acessar esse método corretamente é a marca do item como propget por meio de atributos IDL arquivo, mas isso alteraria a assinatura da função na biblioteca de tipos. Você pode usar esse personalizado atributo para marcar o método como propget após a importação. A sintaxe do personalizado atributo é o seguinte:
GUID = 2941ff83-88d8-4f73-b6a9-bdf8712d000d // for propget
Além disso, você pode usar outro personalizado atributo para marcar um método como propput após a importação. A sintaxe personalizado atributo é o seguinte:
GUID = 29533527-3683-4364-abc0-db1add822fa2 // for propput
Observe que esse personalizado atributo pode ser aplicado apenas nos métodos. Além disso, as seguintes regras se aplicam:
Você pode aplicar o atributo de somente um por vez; Se você aplicar vários atributos, todas, exceto a primeira é ignorado.
Para propget, o personalizado atributo ignora todas as assinaturas de método sem um valor de retorno.
Para propput, o personalizado atributo ignora todas as assinaturas de método sem parâmetros de entrada (parâmetros podem ser marcados com [in] ou [out], mas não with[out,retval]) e ele também ignora todas as assinaturas com um valor de retorno.
Para ambos propget e propput, o personalizado atributo ignora o GetEnumerator método se eles são usados em conjunto com um id(-4) ou dispid(-4) personalizado.
Ao importar a biblioteca de tipos usando Tlbimp. exe, use sempre a opção de /transform:dispret depois de aplicar o personalizado de atributo para despacho somente interfaces (dispinterfaces).
Exemplo
O exemplo a seguir, escrito na linguagem de definição de Interface (IDL) mostra o uso da propget atributo:
[custom(2941ff83-88d8-4f73-b6a9-bdf8712d000d, ""), id(6)]
HRESULT cget(int i, [out, retval] short *pVal);
O exemplo a seguir mostra o uso de propput atributo:
[custom(29533527-3683-4364-abc0-db1add822fa2, ""), id(7)]
HRESULT cset([in] int i);
Consulte também
Referência
Tlbimp. exe (importador da biblioteca)
Conceitos
Aplicar o atributo personalizado para implementar IEnumerable
Aplicar o atributo personalizado para substituir o identificador padrão despacho de COM (DISPID)