toInterface method
Cast an existing COM object to a specified interface.
Takes a string (typically a constant such as IID_IModalWindow) and does
a COM QueryInterface to return a reference to that interface.
Implementation
Pointer<COMObject> toInterface(String iid) {
  final pIID = convertToIID(iid);
  final objectPtr = calloc<COMObject>();
  try {
    final hr = queryInterface(pIID, objectPtr.cast());
    if (FAILED(hr)) throw WindowsException(hr);
    return objectPtr;
  } finally {
    free(pIID);
  }
}