Skip to content

compnerd/swift-com

Repository files navigation

Swift/COM

Swift/COM bridges COM interfaces to Swift by generating Swift interfaces for the COM interface.

import SwiftCOM
import WinSDK

try! CoInitializeEx(COINIT_MULTITHREADED)

if let pFD = try? IFileDialog.CreateInstance(class: CLSID_FileOpenDialog) {
  try pFD.Show(nil)
}

The current approach is to manually construct high-level interfaces to a handful of COM+ interfaces to enable reflection into the system. It would then allow for the generation of Swift bindings to the COM interface via C. These interfaces can then be wrapped for more idiomatic access.