コード例 #1
0
ファイル: tzhkeyad.c プロジェクト: DeegC/ZeidonTools
/////////////////////////////////////////////////////////////////////////////
//
// ENTRY:
//
// PURPOSE:    Create a HK if one doesn't exist for LPLR upon entry
//             to the HK Dialog.
//
/////////////////////////////////////////////////////////////////////////////
zOPER_EXPORT zSHORT OPERATION
zwTZHKEYAD_PreBAppl( zVIEW vSubtask )
{
   // Call configuration management to set up the default LPL.
   InitializeLPLR( vSubtask, "" );
   zwTZHKEYAD_InitHK_ForLPLR( vSubtask );
   zwTZHKEYAD_SetTitle( vSubtask );
   return( 0 );
}
コード例 #2
0
ファイル: tzzmaind.c プロジェクト: DeegC/ZeidonTools
/////////////////////////////////////////////////////////////////////////////
//
// OPERATION:    zwTZZMAIND_Postbuild
//
// PURPOSE:
//
/////////////////////////////////////////////////////////////////////////////
zOPER_EXPORT zSHORT OPERATION
zwTZZMAIND_PostBuild( zVIEW vSubtask )
{
   zSHORT nRC;
   zCHAR  szLPL_Name[ 34 ];
   zVIEW  vLPL;
   zVIEW  vMetaList;

   InitializeLPLR( vSubtask, "" );
   nRC = GetViewByName( &vLPL, "TaskLPLR", vSubtask, zLEVEL_TASK );
   if ( nRC > 0 )
   {
      GetStringFromAttribute( szLPL_Name, vLPL, "LPLR", "Name" );
      SetWindowCaptionTitle( vSubtask, 0, szLPL_Name );
   }

   // Get view to all list types
   RetrieveViewForMetaList( vSubtask, &vMetaList, zSOURCE_SA_META );
   SetNameForView( vMetaList, "TZERDS", vSubtask, zLEVEL_TASK );
   RetrieveViewForMetaList( vSubtask, &vMetaList, zREFER_SA_META );
   SetNameForView( vMetaList, "TZERDR", vSubtask, zLEVEL_TASK );

   RetrieveViewForMetaList( vSubtask, &vMetaList, zSOURCE_DOMAIN_META );
   SetNameForView( vMetaList, "TZDMNS", vSubtask, zLEVEL_TASK );
   RetrieveViewForMetaList( vSubtask, &vMetaList, zREFER_DOMAIN_META );
   SetNameForView( vMetaList, "TZDMNR", vSubtask, zLEVEL_TASK );

   RetrieveViewForMetaList( vSubtask, &vMetaList, zSOURCE_DTE_META );
   SetNameForView( vMetaList, "TZDBMS", vSubtask, zLEVEL_TASK );
   RetrieveViewForMetaList( vSubtask, &vMetaList, zREFER_DTE_META );
   SetNameForView( vMetaList, "TZDBMR", vSubtask, zLEVEL_TASK );

   RetrieveViewForMetaList( vSubtask, &vMetaList, zSOURCE_LOD_META );
   SetNameForView( vMetaList, "TZLODS", vSubtask, zLEVEL_TASK );
   RetrieveViewForMetaList( vSubtask, &vMetaList, zREFER_LOD_META );
   SetNameForView( vMetaList, "TZLODR", vSubtask, zLEVEL_TASK );

   RetrieveViewForMetaList( vSubtask, &vMetaList, zSOURCE_DIALOG_META );
   SetNameForView( vMetaList, "TZDLGS", vSubtask, zLEVEL_TASK );
   RetrieveViewForMetaList( vSubtask, &vMetaList, zREFER_DIALOG_META );
   SetNameForView( vMetaList, "TZDLGR", vSubtask, zLEVEL_TASK );

   RetrieveViewForMetaList( vSubtask, &vMetaList, zSOURCE_PENV_META );
   SetNameForView( vMetaList, "TZPENS", vSubtask, zLEVEL_TASK );
   RetrieveViewForMetaList( vSubtask, &vMetaList, zREFER_PENV_META );
   SetNameForView( vMetaList, "TZPENR", vSubtask, zLEVEL_TASK );

   RetrieveViewForMetaList( vSubtask, &vMetaList, zSOURCE_GO_META );
   SetNameForView( vMetaList, "TZOPRS", vSubtask, zLEVEL_TASK );
   RetrieveViewForMetaList( vSubtask, &vMetaList, zREFER_GO_META );
   SetNameForView( vMetaList, "TZOPRR", vSubtask, zLEVEL_TASK );

   MB_SetMessage( vSubtask, 1, "?" );
   MB_SetMessage( vSubtask, 2, "*" );
   return( 0 );
}
コード例 #3
0
ファイル: xwdgen.c プロジェクト: arksoftgit/10c
void RunAppl( HWND hWnd )
{
   zVIEW vSubtask = NULL;
   zSHORT nRC;
   char cError = '\0' ;
   char cRemReadOnly = 'N';
   char cApplication[ 32 ], cLogFile[ 256 ] ;
   char *pc;

   HANDLE hInstance = (HANDLE) GetWindowLong( hWnd, GWL_HINSTANCE );
   LPSTR  lpCmdLine = (LPSTR) GetWindowLong( hWnd, GWL_USERDATA );

   // Analyze the Command Line

   // The command line is
   // "-p Application" "-t TE-Name" "[-n]" ["Log-File"]
   // "Application" and "TE-Name" are  required

   cApplication[ 0 ] = cLogFile[ 0 ] = '\0';
   pc = lpCmdLine + strspn( lpCmdLine, " "); // Blank-Eli

   do
   {

      if ( *pc != '-' )
      {
         cError = 'E';
         break;
      }
      ++pc;
      pc = pc + strspn( pc, " "); // Blank-Eli

      switch ( *pc )
      {
         case 'p':
            // Application name
            ++pc;
            pc = extract_name( pc, cApplication, sizeof( cApplication ) );
            break;

         case 'l':
            // Log file
            ++pc;
            pc = extract_name( pc, cLogFile, sizeof( cLogFile ) );
            break;

         case 'r':
            // Network switch
            cRemReadOnly = 'Y';
            ++pc;
            pc = pc + strspn( pc, " "); // Blank-Eli
            break;


         default:
            cError = 'E';
            break;
      }
   } while ( *pc != '\0' && cError == '\0' );

   if ( cApplication[ 0 ] == '\0' || cError != '\0' )
   {
      MessageBox( hWnd,
                  "Invalid Command Line - Application required",
                  "Error Running xwdgen",
                  MB_OK | MB_ICONSTOP | MB_APPLMODAL );
      return;
   }

   RegisterZeidonApplication( &vSubtask, 0L, 0L,
                              WM_USER + 1, "~~Zeidon_Tools~", 0, 0 );
   InitializeLPLR( vSubtask, cApplication );

   ProcessXwds( hWnd, vSubtask, cLogFile, cRemReadOnly);

   UnregisterZeidonApplication( );
}
コード例 #4
0
ファイル: tzvminaa.c プロジェクト: DeegC/10d
zOPER_EXPORT zLONG OPERATION
InvokeInterp( zVIEW  lpInterpSubtask,                // Interpretor's subtask
              zVIEW  lpAppSubtask,                   // application's subtask
              zPCHAR szSrcDLLName,                   // name of the dialog
              zPCHAR szOperationName,                // operation to interp
              zPLONG plRC )
{
   zVIEW  vXChecker;
   zSHORT nRC;
   zLONG  lStepRC;
   zVIEW  vStackObject;                           // view to the stack object
   zVIEW  vS_View;
   zVIEW  vZ_View;
   zVIEW  vSO;
   zVIEW  vSubtask = 0;
   zVIEW  vTaskLPLR;
   zPVOID hWRKS = NULL;

   // Check to make sure the LPLR is active.
   GetViewByName( &vTaskLPLR, "TaskLPLR", lpAppSubtask, zLEVEL_TASK );
   if ( vTaskLPLR == 0 )
      InitializeLPLR( lpInterpSubtask, "" );

   aInterpreterSave[ lMultiple ].vSubtask = lpInterpSubtask;

   if ( lMultiple > 0 )
   {
      if ( lMultiple >= MAX_INTEPRETER_ENTRY )
      {
         // Error, because number of recursive entries
         //  is greater than MAX_INTEPRETER_ENTRY
         return( -99 );
      }

      vSubtask = aInterpreterSave[ lMultiple -1 ].vSubtask;

      // save the global variables
      aInterpreterSave[ lMultiple -1 ].nStackPtr = g_nStackPtr;
      g_nStackPtr = 0;
      memcpy( aInterpreterSave[ lMultiple -1 ].nCallStack,
              g_nCallStack, zsizeof( g_nCallStack ) );
      memset( g_nCallStack, 0, zsizeof( g_nCallStack ) );

      aInterpreterSave[ lMultiple -1 ].vXPGView = g_vXPGView;
      g_vXPGView = 0;

      GetViewByName( &g_vStatementView, "StatementView",
                     vSubtask, zLEVEL_SUBTASK );

      aInterpreterSave[ lMultiple -1 ].vStatementView = g_vStatementView;
      g_vStatementView = 0;

      GetViewByName( &vSO, "StackObject",
                     vSubtask, zLEVEL_SUBTASK );
      aInterpreterSave[ lMultiple -1 ].vStackObject = vSO;

      memcpy( aInterpreterSave[ lMultiple -1 ].sValueStack,
              sValueStack, zsizeof( sValueStack ) );
      memset( sValueStack, 0, zsizeof( sValueStack ) );
   }

   lMultiple++;

   // see if we can load the XPG. if not, don't parse for now, exit out
   nRC = InitInterp( lpInterpSubtask, lpAppSubtask, szSrcDLLName );
   if ( nRC < 0 )
   {
      lStepRC = 1; // if the init failed return.
      goto EndOfInvokeInterp;
   }

   // Initialize the Working Storage Manager
   if ( WRKS_Init( &hWRKS ) < 0 )
   {
      // Error in WRKS system
      MessageSend( vSubtask, "VM03002", "VML Interpretor",
                   "Error Initializing Work Storage",
                   zMSGQ_OBJECT_CONSTRAINT_ERROR, zBEEP );
      TraceLineS( "VML Interpreter Error ","Initializing Work Storage" );
      lStepRC = 1; // if the init failed return.
      goto EndOfInvokeInterp;
   }

   if ( setjmp( g_jbWRKS ) != 0 )
   {
      // Error return from longjmp
      WRKS_Close( &hWRKS );
      lStepRC = 1;
      goto EndOfInvokeInterp;
   }

   // get the program object as it was loaded by the init function.
   GetViewByName( &g_vXPGView, "XPG", lpInterpSubtask, zLEVEL_SUBTASK );

   // try to position at the correct operation in the Subtask
   nRC = SetCursorFirstEntityByString( g_vXPGView, "Operation",
                                       "Name", szOperationName, "" );
   if ( nRC != zCURSOR_SET )
   {
      // no error message here, as we assume that the operation
      //  to be called is a C operation.
      // Returning -1, the driver will try to load it from the DLL
      lStepRC = -1;
      goto EndOfInvokeInterp;
   }

   SetCursorFirstEntityByEntityCsr( g_vXPGView,
                                    "SourceFile",
                                    g_vXPGView,
                                    "SourceFileOfOperation", "" );
   SetCursorFirstEntityByEntityCsr( g_vXPGView,
                                    "OperationSource",
                                    g_vXPGView,
                                    "Operation", "" );
   SetCursorFirstEntity( g_vXPGView, "OperationText", "" );
   SetCursorFirstEntity( g_vXPGView, "Statement", "" );
   CreateViewFromViewForTask( &g_vStatementView, g_vXPGView, 0 );

   // Create all of the entities needed in the stack object
   SetStackObjectFromViews( lpInterpSubtask,
                            g_vXPGView,         // View to the XPG
                            g_vStatementView, // View to the statement
                            0 );              // index into the expression

   // Get the stack object as it was loaded with the XPG
   GetViewByName( &vStackObject,
                  "StackObject",
                  lpInterpSubtask,
                  zLEVEL_SUBTASK );
// ###blob  SetAttributeFromInteger( vStackObject,
//                            "Variable", "Value", (zLONG)lpAppSubtask );
   SetAttributeFromBlob( vStackObject, "Variable", "Value", &lpAppSubtask, sizeof( void * ) );
   SetNameForView( g_vStatementView, "StatementView", lpInterpSubtask, zLEVEL_SUBTASK );
   SetNameForView( lpAppSubtask, "ApplicationView", lpInterpSubtask, zLEVEL_SUBTASK );

   GetViewByName( &vXChecker, "TZVSXCOO", lpInterpSubtask, zLEVEL_APPLICATION );
   if ( vXChecker != 0 )
   {
      nRC = SetCursorFirstEntityByString( vXChecker, "DialogOperation", "Name", szOperationName, "" );

      if ( nRC == zCURSOR_SET )
      {
         GetViewByName( &vZ_View, "ZeidonVML", vSubtask, zLEVEL_TASK );
         GetViewByName( &vS_View, "XPG", vZ_View, zLEVEL_SUBTASK );

         SetAttributeFromString( vS_View, "Operation", "CurrentDebugFlag", "Y" );
         lStepRC = zXC_SETUP_DEBUGGER;
         goto EndOfInvokeInterp;
      }
   }

// lStepRC = zXC_STEP_EXECUTED;
#if 0
   OperationCount( 3 );
   OperationCount( 1 );
#endif
// Loop through each statement using the Go function.
   lStepRC = Go( lpAppSubtask, hWRKS, plRC );

EndOfInvokeInterp:
   // close work storage manager
   if ( hWRKS )
      WRKS_Close( &hWRKS );

   lMultiple--;
   if ( lMultiple > 0 )
   {
      vSubtask = aInterpreterSave[ lMultiple - 1 ].vSubtask;

      // restore the global variables
      g_nStackPtr = aInterpreterSave[ lMultiple - 1 ].nStackPtr;
      memcpy( g_nCallStack, aInterpreterSave[ lMultiple -1 ].nCallStack, zsizeof( g_nCallStack ) );

      g_vXPGView = aInterpreterSave[ lMultiple - 1 ].vXPGView;
      SetNameForView( g_vXPGView, "XPG", vSubtask, zLEVEL_SUBTASK );
      g_vStatementView = aInterpreterSave[ lMultiple - 1 ].vStatementView;
      SetNameForView( g_vStatementView, "StatementView", vSubtask, zLEVEL_SUBTASK );

      vSO = aInterpreterSave[ lMultiple - 1 ].vStackObject;
      SetNameForView( vSO, "StackObject", vSubtask, zLEVEL_SUBTASK );

      memcpy( sValueStack, aInterpreterSave[ lMultiple - 1 ].sValueStack, zsizeof( sValueStack ) );
   }

   return( lStepRC );
}