code: @Override
      protected void initializeChildFaxClientSpi()
      {
          //get logger
          Logger logger=this.getLogger();
  
          //get use JNI flag
          boolean useJNI=false;
          String useJNIStr=this.getConfigurationValue(FaxClientSpiConfigurationConstants.USE_JNI_PROPERTY_KEY);
          if(useJNIStr!=null)
          {
              useJNI=Boolean.parseBoolean(useJNIStr);
          }
          
          //extract native resources
          WindowsFaxClientSpiHelper.extractNativeResources();
          
          if(useJNI)
          {
              //load native library
              WindowsFaxClientSpiHelper.loadNativeLibrary(logger);
              
              if(!WindowsFaxClientSpiHelper.isNativeLibraryLoaded())
              {
                  //if failed to load native DLL, use executable
                  useJNI=false;
              }
          }
          
          //get class name for child SPI
          String className=WindowsProcessFaxClientSpi.class.getName();
          if(useJNI)
          {
              className=WindowsJNIFaxClientSpi.class.getName();
          }
          
          //create child SPI configuration
          Properties childConfiguration=new Properties();
          childConfiguration.putAll(this.getConfiguration());
          childConfiguration.put(FaxClientSpiFactory.SPI_CLASS_NAME_TYPE_MAP_PROPERTY_KEY_PREFIX+"windows.child",className);
          this.faxClientSpi=FaxClientSpiFactory.createChildFaxClientSpi("windows.child",childConfiguration);
      }
docs: This function initializes the fax client SPI.