/** Destructor, releases COM and frees native resources. */
  protected void finalize() throws Throwable {
    releaseInterface();

    if (initializeSucceeded) {
      releaseCOM();
      initializeSucceeded = false;
    }
    super.finalize();
  }