WRFileType WdeSelectFileType( char *name, bool is32bit ) { WRFileType file_type; HWND parent; bool use_wres; HELP_CALLBACK hcb; hcb = (HELP_CALLBACK)MakeProcInstance( (FARPROC)WdeHelpRoutine, WdeGetAppInstance() ); use_wres = WdeGetOption( WdeOptIsWResFmt ); parent = WdeGetMainWindowHandle(); file_type = WRSelectFileType( parent, name, is32bit, use_wres, hcb ); FreeProcInstance( (FARPROC)hcb ); return( file_type ); }
/* Function to initialize all instances of Wde */ bool WdeInitInst( HINSTANCE app_inst ) { RECT rect, screen, t; char *title; /* initialize global variables */ WdeInitOpts(); if( !JDialogInit() ) { return( FALSE ); } if( !WdeInitResStrings() ) { return( FALSE ); } if( !WdeInitCreateTable() ) { WdeDisplayErrorMsg( WDE_NOINITCONTROLOBJECTS ); return( FALSE ); } WdeCtl3DInit( app_inst ); WdeGetScreenPosOption( &rect ); /* load the accelerator table */ WdeAccel = LoadAccelerators( app_inst, "WdeAccelTable"); /* if the window could not be created return FALSE */ if( WdeAccel == (HACCEL)NULL ) { WdeDisplayErrorMsg( WDE_LOADACCELFAILED ); return( FALSE ); } GetWindowRect( GetDesktopWindow(), &screen ); if( !IntersectRect( &t, &screen, &rect ) ) { t.right = rect.right - rect.left; t.bottom = rect.bottom - rect.top; t.left = 0; if( screen.right - screen.left - t.right > 0 ) t.left = ( screen.right - screen.left - t.right ) / 2; t.top = 0; if( screen.bottom - screen.top - t.bottom > 0 ) t.top = ( screen.bottom - screen.top - t.bottom ) / 2; t.right += t.left; t.bottom += t.top; } else { t = rect; } title = WdeAllocRCString( WDE_APPTITLE ); /* attempt to create the main application window */ hWinWdeMain = CreateWindow( WdeMainClass, title, WS_OVERLAPPEDWINDOW, t.left, t.top, t.right - t.left, t.bottom - t.top, (HWND)NULL, (HMENU)NULL, app_inst, NULL ); if( title != NULL ) { WdeFreeRCString( title ); } /* if the window could not be created return FALSE */ if( hWinWdeMain == NULL ) { WdeDisplayErrorMsg( WDE_NOCREATEMAINWINDOW ); return( FALSE ); } hWinWdeMDIClient = WdeCreateMDIClientWindow( hWinWdeMain, app_inst ); /* attempt to create the main application info window */ if( !WdeCreateInfoWindow( hWinWdeMain, app_inst ) ) { WdeDisplayErrorMsg( WDE_NOCREATEINFOWINDOW ); return( FALSE ); } if( !WdeCreateStatusLine( hWinWdeMain, app_inst ) ) { WdeDisplayErrorMsg( WDE_NOCREATESTATUSLINE ); return( FALSE ); } WdeInitialMenu = GetMenu( hWinWdeMain ); WdeCurrentMenu = WdeInitialMenu; WdeResMenu = LoadMenu( app_inst, "WdeResMenu" ); WdeDDEMenu = LoadMenu( app_inst, "WdeDDEMenu" ); if( IsDDE ) { WdeSetAppMenuToRes( TRUE ); } if( !WdeInitialMenu || !WdeResMenu ) { WdeDisplayErrorMsg( WDE_NOINITMENUS ); return( FALSE ); } if( !WdeInitHints() ) { WdeDisplayErrorMsg( WDE_NOINITHINTS ); return( FALSE ); } WdeInitRibbon( app_inst ); if( WdeGetOption( WdeOptIsRibbonVisible ) ) { WdeShowRibbon(); } /* if the window was created Show and Update it */ if( WdeGetOption( WdeOptIsScreenMax ) ) { ShowWindow( hWinWdeMain, SW_SHOWMAXIMIZED ); } else { ShowWindow( hWinWdeMain, SW_SHOWNORMAL ); } UpdateWindow( hWinWdeMain ); WdeSetFontList( hWinWdeMain ); if( !IsDDE ) { WdeDisplaySplashScreen( hInstWde, hWinWdeMain, 1125 ); } if( IsDDE ) { WdeInitToolMenu( app_inst, WdeDDEMenu ); } else { WdeInitToolMenu( app_inst, WdeResMenu ); } WdeInitControls( app_inst ); if( WdeGetOption( WdeOptIsCntlsTBarVisible ) ) { if( !WdeCreateControlsToolBar ( ) ) { WdeDisplayErrorMsg( WDE_NOCREATETOOLBOX ); return( FALSE ); } } SetFocus( hWinWdeMain ); return( TRUE ); }