MCPcopy Create free account
hub / github.com/enthought/comtypes / CoClass

Method CoClass

comtypes/tools/codegenerator/codegenerator.py:549–569  ·  view source on GitHub ↗
(self, coclass: typedesc.CoClass)

Source from the content-addressed store, hash-verified

547 self.declarations.add("WSTRING", "c_wchar_p")
548
549 def CoClass(self, coclass: typedesc.CoClass) -> None:
550 self.imports.add("comtypes", "GUID")
551 self.imports.add("comtypes", "CoClass")
552 with self.adjust_blank("class") as ofi:
553 heads.CoClassHeadWriter(ofi, self.filename).write(coclass)
554
555 for itf, _ in coclass.interfaces:
556 self.generate(itf.get_head())
557 impl, src = typedesc.groupby_impltypeflags(coclass.interfaces)
558 implemented = [self._to_type_name(itf) for itf in impl]
559 sources = [self._to_type_name(itf) for itf in src]
560
561 with self.adjust_blank("attribute") as ofi:
562 if implemented:
563 itfs = ", ".join(implemented)
564 print(f"{coclass.name}._com_interfaces_ = [{itfs}]", file=ofi)
565 if sources:
566 itfs = ", ".join(sources)
567 print(f"{coclass.name}._outgoing_interfaces_ = [{itfs}]", file=ofi)
568
569 self.names.add(coclass.name)
570
571 def _is_interface_typedesc(
572 self, item: Any

Callers 1

ParseCoClassMethod · 0.80

Calls 5

adjust_blankMethod · 0.95
generateMethod · 0.95
addMethod · 0.45
writeMethod · 0.45
get_headMethod · 0.45

Tested by

no test coverage detected