Page 1 of 1

Unrecoverable error 6005: Exception error

Posted: Wed May 13, 2020 9:06 pm
by Antonio Mart.
Hola,

Me aparece el error Unrecoverable error 6005: Exception error cuando el pograma pasa por el CASE FN_UNZIP.
No sé cuando el programa pasa por el CASE FN_UZIP. ¿ Cuando es necesario ese código ?

¿ Alguna ayuda ?

Code: Select all

//----------------------------------------------------------------------------//

METHOD Command( nWParam, nLParam ) CLASS TDialog

   local nNotifyCode, nID, hWndCtl


   Local oWnd 

   #ifdef __CLIPPER__
      nNotifyCode = nHiWord( nLParam )
      nID         = nWParam
      hWndCtl     = nLoWord( nLParam )
   #else
      nNotifyCode = nHiWord( nWParam )
      nID         = nLoWord( nWParam )
      hWndCtl     = nLParam
   #endif

   do case
      case ::oPopup != nil
           ::oPopup:Command( nID )

      case hWndCtl == 0 .and. ::oMenu != nil
           ::oMenu:Command( nID )

      case nID != 0
           do case
              case nNotifyCode == BN_CLICKED
                   *
                   *
                   if hWndCtl != 0 .and. nID != IDCANCEL
                      if ValType( ::nResult ) == "O" // latest control which had focus
                         #ifdef __HARBOUR__  // FWH generates an endless loop when SetWindowText()
                            if ::nResult:lFocused
                         #endif
                               ::nResult:LostFocus()    // updates related variable
                         #ifdef __HARBOUR__  // FWH generates an endless loop when SetWindowText()
                            endif
                         #endif
                         // There is a pending Valid, it is not a clicked button
                         if ::nResult:nID != nID .and. ! ::nResult:lValid()
                            return nil
                         endif
                      endif

                      if AScan( ::aControls, { |o| o:nID == nID } ) > 0
                         #ifdef __XPP__
                            PostMessage( hWndCtl, FM_CLICK, 0, 0 )
                         #else
                            SendMessage( hWndCtl, FM_CLICK, 0, 0 )
                         #endif
                      elseif nID == IDOK
                         ::End( IDOK )
                      endif
                   else
                      if nID == IDOK
                         ::GoNextCtrl( GetFocus() )
                      elseif hWndCtl != 0 .and. ; // There is a control for IDCANCEL
                             AScan( ::aControls, { |o| o:nID == nID } ) > 0
                            SendMessage( hWndCtl, FM_CLICK, 0, 0 )
                      else
                         ::End( IDCANCEL )
                      endif
                   endif

              case nNotifyCode == CBN_SELCHANGE
                   SendMessage( hWndCtl, FM_CHANGE, 0, 0 )

              case nID == FN_ZIP   // FiveWin notifications codes
                   ::Zip( nLParam )

              case nID == FN_UNZIP
                   ::UnZip( nPtrWord( nLParam ) )         // <<--------------------------------- Aquí el ERROR 
           endcase
   endcase

return nil
 
La lista de llamadas es:

Called from NPTRWORD(0)
Called from TDIALOG:COMMAND(670) in FueAje\Five\Dialog.prg
Called from TWINDOW:HANDLEEVENT(0)
Called from TDIALOG:HANDLEEVENT(1516) in FueAje\Five\Dialog.prg
Called from CALLWINDOWPROC(0)
Called from TMULTIGET:GOTFOCUS(849) in FueAje\Five\mget.prg
Called from TWINDOW:HANDLEEVENT(0)
Called from TMULTIGET:HANDLEEVENT(1427) in FueAje\Five\Control.prg
Called from _FWH(3678) in SrcImp\Window.prg
Called from DIALOGBOXINDIRECT(0)
Called from TDIALOG:ACTIVATE(460) in FueAje\Five\Dialog.prg
Called from TMSG:ACTIVATE(364) in FueMio\Msg.prg

Re: Unrecoverable error 6005: Exception error

Posted: Thu May 14, 2020 4:19 am
by nageswaragunupudi
This is not the standard FWH version. It looks like your own adaptation and you need to look for answers yourself.

Re: Unrecoverable error 6005: Exception error

Posted: Thu May 14, 2020 4:38 am
by Antonio Linares
Antonio,

Modifica esta función de esta forma e inclúyela en tu PRG dentro de una sección #pragma BEGINDUMP ... #pragma ENDDUMP

Code: Select all

HB_FUNC( NPTRWORD )
{
   #ifndef _WIN64
      hb_retnl( * ( WORD * ) hb_parnl( 1 ) );
   #else
      hb_retnll( * ( LONGLONG * ) hb_parnll( 1 ) );
   #endif
}

Re: Unrecoverable error 6005: Exception error

Posted: Thu May 14, 2020 6:18 am
by Antonio Mart.
nageswaragunupudi wrote:This is not the standard FWH version. It looks like your own adaptation and you need to look for answers yourself.

Mr. Rao,

I think that a original old code piece of fivewin.

Regards

Re: Unrecoverable error 6005: Exception error

Posted: Thu May 14, 2020 6:22 am
by Antonio Mart.
Antonio Linares wrote:Antonio,

Modifica esta función de esta forma e inclúyela en tu PRG dentro de una sección #pragma BEGINDUMP ... #pragma ENDDUMP

Code: Select all

HB_FUNC( NPTRWORD )
{
   #ifndef _WIN64
      hb_retnl( * ( WORD * ) hb_parnl( 1 ) );
   #else
      hb_retnll( * ( LONGLONG * ) hb_parnll( 1 ) );
   #endif
}
Antonio,

Me anticipé y desactive el manejo de los mensajes FN_ZIP y FN_UNZIP.. por lo que estuve viendo, en mi caso, no tienen sentido... o eso espero.

Gracias por responder

Re: Unrecoverable error 6005: Exception error

Posted: Thu May 14, 2020 3:10 pm
by nageswaragunupudi
Antonio Mart. wrote:
nageswaragunupudi wrote:This is not the standard FWH version. It looks like your own adaptation and you need to look for answers yourself.

Mr. Rao,

I think that a original old code piece of fivewin.

Regards


Even in the older versions, this code was applicable to 16-bit Clipper only but never to 32-bit FWH.
Taken from FWH 08.02

Code: Select all

              #ifdef __CLIPPER__

              case nWParam == FN_UNZIP // FiveWin notification codes
                   ::UnZip( nPtrWord( nLParam ) )

              case nWParam == FN_ZIP
                   ::Zip( nLParam )

              #endif
 
In later versions, this code was removed for obvious reasons.
So this code was never there in 32-bit FWH either in very old versions or recent versions.
That is the reason, I was surprised to see this code in your current TWindow class.
Me anticipé y desactive el manejo de los mensajes FN_ZIP y FN_UNZIP.. por lo que estuve viendo, en mi caso, no tienen sentido... o eso espero.
That is the reason this code was never a part of 32/64 bit FWH.