anchor.diff:        return unwrapCallbackType();
       }
   
  -    if (isInterface || typeIdentifier.baseType == BaseType.Object) {
  +    if (isInterface ||
  +        typeIdentifier.baseType == BaseType.ClassTypeModifier ||
  +        typeIdentifier.baseType == BaseType.Object) {
         return const TypeTuple('Pointer<COMObject>', 'Pointer<COMObject>');
       }
   
  
positive.code:       throw Exception('Pointer type missing for $typeIdentifier.');
      }
      final typeArg = TypeProjection(typeIdentifier.typeArg!);
  
      // Pointer<Void> in Dart is unnecessarily restrictive, versus the
      // Win32 meaning, which is more like "undefined type". We can
  
negative.code:       return const TypeTuple('Pointer', 'Pointer');
      }
  
      final nativeType = 'Pointer<$typeArgNativeType>';
      final dartType = 'Pointer<$typeArgNativeType>';
  
      return TypeTuple(nativeType, dartType);
    }
  