[Overview][Constants][Types][Classes][Procedures and functions][Variables][Index] | Reference for unit 'Variants' (#rtl)

# TInvokeableVariantType

[Properties (by Name)] [Methods (by Name)] [Events (by Name)]

TCustomVariantType descendent that implements DispInvoke

## Declaration

Source position: variants.pp line 226

`type TInvokeableVariantType = class(TCustomVariantType, IVarInvokeable)`
`public`
`function DoFunction(); virtual;` |  | Empty stub for IVarInvokeable.DoFunction, to be implemented in descendents
`function DoProcedure(); virtual;` |  | Empty stub for IVarInvokeable.DoProcedure, to be implemented in descendents
`function GetProperty(); virtual;` |  | Empty stub for IVarInvokeable.GetProperty, to be implemented in descendents
`function SetProperty(); virtual;` |  | Empty stub for IVarInvokeable.SetProperty, to be implemented in descendents
`end;`

## Inheritance

`TInvokeableVariantType,IVarInvokeable` |  | TCustomVariantType descendent that implements DispInvoke
`TCustomVariantType,IInterface` |  | Base class for a custom variant type
`TObject` |  | Base class of all classes.

## Description

TInvokeableVariantType is a TCustomVariantType descendent which implements the TCustomVariantType.DispInvoke method. It translates the DispInvoke" method to calls to one or more of the four methods of IVarInvokeable: DoFunction or DoProcedure for method calls (DISPATCH_METHOD) and GetProperty for property reading (DISPATCH_PROPERTYGET) or SetProperty for property writing (DISPATCH_PROPERTYSET). Other combinations are possible. It has empty stubs for these methods, which must be implemented in a descendent that is used to describe a custom variant.

## See also

IVarInvokeable.DoFunction |  | Called for methods that return a result (functions)
IVarInvokeable.DoProcedure |  | Called for methods that do not return a result (procedures)
IVarInvokeable.GetProperty |  | Called when a property must be read
IVarInvokeable.SetProperty |  | Called when a property must be set