
##########################
A3DDllSetCallbacksProgress
##########################

.. c:function:: A3DStatus A3DDllSetCallbacksProgress(A3DCallbackProgressStart, A3DCallbackProgressSize, A3DCallbackProgressIncrement, A3DCallbackProgressEnd, A3DCallbackProgressTitle, A3DInt32 *)

   .. rst-class:: sig-pretty-signature
   
      | :c:enum:`~A3DStatus` A3DDllSetCallbacksProgress(:c:type:`~A3DCallbackProgressStart`\ , :c:type:`~A3DCallbackProgressSize`\ , :c:type:`~A3DCallbackProgressIncrement`\ , :c:type:`~A3DCallbackProgressEnd`\ , :c:type:`~A3DCallbackProgressTitle`\ , :c:type:`~A3DInt32`\ \*)
   
   Sets callbacks for progress bar facility.
   
   This function configures the library with the callback functions that implement a custom progress indicator, such as a status bar.
   
   The last argument passed to this function sets a break. The library checks this variable at every significant step in processing the PRC. If the value is non-zero, the library stops processing the PRC data.
   
   
      2.0
   
   
   
      The library stops processing the PRC data if the last argument passed to this function is non-zero.
   
   
   
   Sample code
   ===========
   
   
   ::
   
      A3DVoidmy_start(A3DInt32iType){_tprintf(_T("STARTINGPROCESS#%d"),iType);fflush(stdout);}
      staticA3DInt32stiSize=0;
      A3DVoidmy_size(A3DInt32iSize){stiSize=iSize;}
      A3DVoidmy_increment(A3DInt32i){_tprintf(_T("PROCESS%d/%d"),i,stiSize);fflush(stdout);}
      A3DVoidmy_end(){stiSize=0;}
      A3DVoidmy_title(A3DUTF8Char*msg)
      {
      #ifdef_MSC_VER
      A3DUniCharacUTF16FileName[MAX_PATH*4];
      A3DMiscUTF8ToUTF16(msg,acUTF16FileName);
      _tprintf(_T("CURRENTFILE%s\n"),acUTF16FileName);
      #else
      _tprintf(_T("CURRENTFILE%s\n"),msg);
      #endif
      fflush(stdout);
      }
      
      A3DInt32iErr=A3D_SUCCESS;
      A3DInt32iMajorVersion,iMinorVersion=0;
      A3DInt32my_break=0;
      
      iErr=A3DDllGetVersion(&iMajorVersion,&iMinorVersion);
      iErr=A3DDllInitialize(A3D_DLL_MAJORVERSION,A3D_DLL_MAJORVERSION);
      if(iErr==A3D_SUCCESS)
      {
      iErr=A3DDllSetCallbacksProgress(my_start,my_size,my_increment,my_end,my_title,&my_break);
      iErr=A3DDllTerminate();
      }
   
   
   **Returns**
   
   
      ``A3D_SUCCESS``\ on success, or an error code on failure
   
   




