Não deve-se efetuar a liberação desses tipos de objetos, estes serão liberados posteriormente pelo Delphi quando não existirem mais referências para o objeto.
Para efetuar a liberação, deve-se atribuir "nil", para variável do tipo interface, e null para variável do tipo OleVariant.
Exemplo:
var
ObjA: ITableMacro;
ObjB: OleVariant;
begin
...
ObjA := nil;
ObjB := null;
end;
Importante:
O null esta declarado na unit Variants.
Quando termina o escopo da variável o objeto também é liberado.