/* Copyright 1996 Acorn Computers Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /**************************************************************************** * This source file was written by Acorn Computers Limited. It is part of * * the RISCOS library for writing applications in C for RISC OS. It may be * * used freely in the creation of programs for Archimedes. It should be * * used with Acorn's C Compiler Release 3 or later. * * * ***************************************************************************/ /* * Title: msgtrans.h * Purpose: provide support for messages resource file * (Use this to make your applications "internationalisable!") */ #ifndef __msgtrans_h #define __msgtrans_h #ifndef __kernel_h #include <kernel.h> #endif #ifndef __swis_h #include <swis.h> #endif #define msgtrans_DIRECT_ACCESS (1 << 0) typedef struct msgtrans_control_block {int cb [4];} msgtrans_control_block; #define msgtrans_file_info(file_name, flags, size) \ _swix (MessageTrans_FileInfo, _IN (1) | _OUT (0) | _OUT (2), \ (char *) (file_name), (int *) (flags), (int *) (size)) #define msgtrans_open_file(cb, file_name, buffer) \ _swix (MessageTrans_OpenFile, _IN (0) | _IN (1) | _IN (2), \ (msgtrans_control_block *) (cb), (char *) (file_name), \ (char *) (buffer)) #define msgtrans_lookup(cb, token, buffer, size_in, arg0, arg1, arg2, arg3, \ result, size_out) \ _swix (MessageTrans_Lookup, _IN (0) | _IN (1) | _IN (2) | _IN (3) | \ _IN (4) | _IN (5) | _IN (6) | _IN (7) | _OUT (2) | _OUT (3), \ (msgtrans_control_block *) (cb), (char *) (token), (char *) (buffer), \ (int) (size_in), (char *) (arg0), (char *) (arg1), (char *) (arg2), \ (char *) (arg3), (char **) (result), (int *) (size_out)) #define msgtrans_gs_lookup(cb, token, buffer, size_in, arg0, arg1, arg2, arg3, \ result, size_out) \ _swix (MessageTrans_GSLookup, _IN (0) | _IN (1) | _IN (2) | _IN (3) | \ _IN (4) | _IN (5) | _IN (6) | _IN (7) | _OUT (2) | _OUT (3), \ (msgtrans_control_block *) (cb), (char *) (token), (char *) (buffer), \ (int) (size_in), (char *) (arg0), (char *) (arg1), (char *) (arg2), \ (char *) (arg3), (char **) (result), (int *) (size_out)) #define msgtrans_error_lookup(error, cb, buffer, size_in, arg0, arg1, arg2, \ arg3) \ _swix (MessageTrans_ErrorLookup, _IN (0) | _IN (1) | _IN (2) | _IN (3) | \ _IN (4) | _IN (5) | _IN (6) | _IN (7), \ (_kernel_oserror *) (error), (msgtrans_control_block *) (cb), \ (char *) (buffer), (int) (size_in), (char *) (arg0), (char *) (arg1), \ (char *) (arg2), (char *) (arg3)) #define msgtrans_make_menus(cb, menus, buffer, size_in, size_out) \ _swix (MessageTrans_MakeMenus, _IN (0) | _IN (1) | _IN (2) | _IN (3) | \ _OUT (3), \ (msgtrans_control_block *) (cb), (char *) (menus), (char *) (buffer), \ (int) (size_in), (int *) (size_out)) #define msgtrans_close_file(cb) \ _swix (MessageTrans_CloseFile, _IN (0), (msgtrans_control_block *) (cb)) #endif