Specifications

SERIES 3/3A PROGRAMMING GUIDE
2-14
For example, the following code provides a successful multi-lingual alias for
Word.app
:
#include <p_std.h>
#include <p_file.h>
#include <epoc.h>
#include <rscfile.xg>
#include <p_sys.h>
#define R_STRARRAY_APPNAMES 78
GLREF_D UBYTE *DatCommandPtr;
GLDEF_D TEXT olibDyl[]="OLIB.DYL";
GLDEF_D TEXT shellImg[]="ROM::SYS$SHLL.IMG";
GLDEF_D TEXT wordNameFmt[]="ROM::%s.APP";
GLDEF_D TEXT aliasInfo[]={'S','R','S','C','O'};
LOCAL_C TEXT *skipStr(TEXT *p)
{
return(p+p_slen(p)+1);
}
#pragma save,ENTER_CALL
LOCAL_C INT getWordFspec(
/*
Get full file spec of Word.APP using shell's resource file.
Returns 0 if successful, leaves if error.
*/
TEXT *fSpec) /* To receive name */
{
TEXT *pAppNames;
VOID *rsc;
HANDLE cat;
p_findlib(&olibDyl[0],&cat);
rsc=f_newlibh(cat,C_RSCFILE);
p_send3(rsc,O_RS_INIT,&shellImg[0]);
p_send4(rsc,O_RS_READ,R_STRARRAY_APPNAMES,&pAppNames);
p_atos(fSpec,&wordNameFmt[0],skipStr(pAppNames+1)); /* Copy to 2nd string */
p_free(pAppNames);
p_send2(rsc,O_DESTROY);
return(FALSE);
}