[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference bulova::decw_jan-89_to_nov-90

Title:DECWINDOWS 26-JAN-89 to 29-NOV-90
Notice:See 1639.0 for VMS V5.3 kit; 2043.0 for 5.4 IFT kit
Moderator:STAR::VATNE
Created:Mon Oct 30 1989
Last Modified:Mon Dec 31 1990
Last Successful Update:Fri Jun 06 1997
Number of topics:3726
Total number of notes:19516

1814.0. "Problem tring to create an Application Resource file in the User area." by BEDTIM::COPPOLA (Lost in the Bitmap) Wed Nov 29 1989 15:03

Hi,

	I am having a problem creating a new .DAT file in the users area.  I
have already gotten the defaults for the application and now I want to write
it to the user area.  I use XrmPutStringResource to create the new XRM database
and the use XrmPutResource to fill up the rest of the database.  I then use
XrmPutFileDatabase to write it out but nothing happens.  Has something changed
from 5.2 to 5.3 of DECWindows that was not in the release notes?  Any examples
are more then welcome.

	Thanks in Advance for your Time and Advice...

		vic...

below is the slice of code I use to create the new database...

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++





unsigned long MCC$PML_CUSTOMIZE_SET_DEFAULTS ( resou_item_list, res_item_count)

XRMITM          resou_item_list[20];
long int        res_item_count;

{
    XRMITM              * temp_res_item;
    char                * put_type;
    XrmValue            put_value;
    XrmDatabase         * merged_xrm_db=0;
    XrmDatabase         * user_xrm_db;
    int                 mcc$status = MCC$_NORMAL;
    int                 status;
    int                 j=1;
    int                 i;
    int                 filename_len;
    char                filename [MCC$K_MAX_FILENAME_LEN + 1];
    char                file_temp_name [MCC$K_MAX_FILENAME_LEN + 1];
    int                 create_flag=0;

/* ...................................................................... */

     do
      {
      switch (j++)
           {
           case 1 :

                        /* Get the DECW$SYSTEM_DEFAULTS:application.DAT file. */

                merged_xrm_db = pml_merged_xrm_db;

                        /* Get the DECW$USER_DEFAULTS:application.DAT file. */

                mcc$status = MCC$FIND_FILE (
                                            strlen (MCC$KT_DEFAULTS_DAT),               /* (IN) Name length */
                                            MCC$KT_DEFAULTS_DAT,                        /* (IN) Name string */
                                            sizeof (MCC$KT_USER_DEFAULTS_DIR) - 1,      /* (IN) Default length */
                                            MCC$KT_USER_DEFAULTS_DIR,                   /* (IN) Default name */
                                            sizeof (filename),                          /* (IN) Out buffer length */
                                            filename,                                   /* (OUT) Out buffer */
                                            & filename_len,                             /* (OUT) Actual length */
                                            MCC$M_FIND_STRIP_VERS);                     /* (IN) Flags */

                if (mcc$status == MCC$_FILNOTFND)
                   {
                   mcc$status = MCC$_NORMAL;
                   }
                break;

           case 2 :
                user_xrm_db = XrmGetFileDatabase (filename); /* Get the XRM database that the User has saved */

                        /* Merge the databases overwriting the system database with the
                           user database. */


                for (i = 0, temp_res_item = & resou_item_list [0];
                                i < res_item_count;
                                i++, temp_res_item++)
                    {
                        /* Get defaults from resource list */
                    put_value . size = temp_res_item -> xrmitm$l_size;
                    put_value . addr = temp_res_item -> xrmitm$a_value;
                    put_type = temp_res_item -> xrmitm$a_type;
                        /* Put deafualt data in merged databased */

                    XrmPutResource (
                                    merged_xrm_db,
                                    temp_res_item -> xrmitm$a_name,
                                    & put_type,
                                    & put_value);

                    if (( user_xrm_db != 0) && (create_flag == 0))
                       {
                                /* Put changes in User file */
                       XrmPutResource (
                                        user_xrm_db,
                                        temp_res_item -> xrmitm$a_name,
                                        & put_type,
                                        & put_value);
                       }
                    else
                       {
                        XrmPutStringResource (  &user_xrm_db,           /* create User Database. */
                                                temp_res_item -> xrmitm$a_name,
                                                temp_res_item -> xrmitm$a_value);
                        create_flag=1;                                  /* Only do this once */
                        }


                    }

                XrmPutFileDatabase( user_xrm_db, filename);             /* Write Resource database to DECW$USER_DEFAULTS: */
                break;
          default :
                mcc$status = MCC$_PM_BUG;
                break;
           }
     } while ((mcc$status == MCC$_NORMAL) && (j <= 2));

   return (mcc$status);
}
T.RTitleUserPersonal
Name
DateLines