;/*============================================================================= ; * This is a part of the yLib Software Development Kit. ; * Copyright (C) 1998-2000 YEAsoft Inc. ; * All rights reserved. ; *============================================================================= ; * This program is free software; you can redistribute it and/or modify ; * it under the terms of the GNU General Public License as published by ; * the Free Software Foundation. In addition, you may also charge for any ; * application using yLib, and are under no obligation to supply source ; * code. You must accredit YEAsoft Inc. in the "About Box", or banner ; * of your application. ; * ; * This program is distributed in the hope that it will be useful, ; * but WITHOUT ANY WARRANTY; without even the implied warranty of ; * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ; * GNU General Public License for more details. ; * ; * You should also have received a copy of the GNU General Public License ; * with this software, also indicating additional rights you have when using ; * yLib. ; *============================================================================= ; * FILENAME : Sample1.mc ; * PURPOSE : yLib application sample ; * SCOPE : yLib SDK ; * HISTORY : ============================================================= ; * ; * $Log: SampleMsg1.mc,v $ ; * Revision 1.1 2000/05/26 14:07:30 leo ; * Initial revision ; * ; *============================================================================*/ ;/* ;------------------------------------------------------------------------- ; HEADER SECTION ; ; The header section defines names and language identifiers for use ; by the message definitions later in this file. The MessageIdTypedef, ; SeverityNames, FacilityNames, and LanguageNames keywords are ; optional and not required. ; ; MessageIdTypedef=DWORD ; ; The MessageIdTypedef keyword gives a typedef name that is used in a ; type cast for each message code in the generated include file. Each ; message code appears in the include file with the format: #define ; name ((type) 0xnnnnnnnn) The default value for type is empty, and no ; type cast is generated. It is the programmer's responsibility to ; specify a typedef statement in the application source code to define ; the type. The type used in the typedef must be large enough to ; accomodate the entire 32-bit message code. ; ; SeverityNames=(Success=0x0:STATUS_SEVERITY_SUCCESS Informational=0x1:STATUS_SEVERITY_INFORMATIONAL Warning=0x2:STATUS_SEVERITY_WARNING Error=0x3:STATUS_SEVERITY_ERROR ) ; ; The SeverityNames keyword defines the set of names that are allowed ; as the value of the Severity keyword in the message definition. The ; set is delimited by left and right parentheses. Associated with each ; severity name is a number that, when shifted left by 30, gives the ; bit pattern to logical-OR with the Facility value and MessageId ; value to form the full 32-bit message code. The default value of ; this keyword is: ; ; SeverityNames=( ; Success=0x0 ; Informational=0x1 ; Warning=0x2 ; Error=0x3 ; ) ; ; Severity values occupy the high two bits of a 32-bit message code. ; Any severity value that does not fit in two bits is an error. The ; severity codes can be given symbolic names by following each value ; with :name ; ; FacilityNames=(System=0x0:FACILITY_SYSTEM Runtime=0x2:FACILITY_RUNTIME Stubs=0x3:FACILITY_STUBS Io=0x4:FACILITY_IO_ERROR_CODE ) ; ; The FacilityNames keyword defines the set of names that are allowed ; as the value of the Facility keyword in the message definition. The ; set is delimited by left and right parentheses. Associated with each ; facility name is a number that, when shift it left by 16 bits, gives ; the bit pattern to logical-OR with the Severity value and MessageId ; value to form the full 32-bit message code. The default value of ; this keyword is: ; ; FacilityNames=( ; System=0x0FF ; Application=0xFFF ; ) ; ; Facility codes occupy the low order 12 bits of the high order ; 16-bits of a 32-bit message code. Any facility code that does not ; fit in 12 bits is an error. This allows for 4,096 facility codes. ; The first 256 codes are reserved for use by the system software. The ; facility codes can be given symbolic names by following each value ; with :name ; ; ; The LanguageNames keyword defines the set of names that are allowed ; as the value of the Language keyword in the message definition. The ; set is delimited by left and right parentheses. Associated with each ; language name is a number and a file name that are used to name the ; generated resource file that contains the messages for that ; language. The number corresponds to the language identifier to use ; in the resource table. The number is separated from the file name ; with a colon. The initial value of LanguageNames is: ; ; LanguageNames=(English=1:MSG00001) LanguageNames=( German=7:MSG00007 Italian=16:MSG00010 ) ; ; Any new names in the source file which don't override the built-in ; names are added to the list of valid languages. This allows an ; application to support private languages with descriptive names. ; ; ;------------------------------------------------------------------------- ; MESSAGE DEFINITION SECTION ; ; Following the header section is the body of the Message Compiler ; source file. The body consists of zero or more message definitions. ; Each message definition begins with one or more of the following ; statements: ; ; MessageId = [number|+number] ; Severity = severity_name ; Facility = facility_name ; SymbolicName = name ; ; The MessageId statement marks the beginning of the message ; definition. A MessageID statement is required for each message, ; although the value is optional. If no value is specified, the value ; used is the previous value for the facility plus one. If the value ; is specified as +number then the value used is the previous value ; for the facility, plus the number after the plus sign. Otherwise, if ; a numeric value is given, that value is used. Any MessageId value ; that does not fit in 16 bits is an error. ; ; The Severity and Facility statements are optional. These statements ; specify additional bits to OR into the final 32-bit message code. If ; not specified they default to the value last specified for a message ; definition. The initial values prior to processing the first message ; definition are: ; ; Severity=Success ; Facility=Application ; ; The value associated with Severity and Facility must match one of ; the names given in the FacilityNames and SeverityNames statements in ; the header section. The SymbolicName statement allows you to ; associate a C/C++ symbolic constant with the final 32-bit message ; code. ; */ MessageIdTypedef=WORD MessageId=0x1 SymbolicName=CAT_NO_PARAMS Language=English Without Parameters . Language=German Ohne Parameter . Language=Italian Senza Parametri . MessageId= SymbolicName=CAT_PARAMS Language=English With Parameters . Language=German Mit Parameter . Language=Italian Con Parametri . MessageIdTypedef=DWORD MessageId=0x100 Severity=Error Facility=Runtime SymbolicName=MSG_TEST1 Language=English Test message with no parameters . Language=German Test Nachricht ohne Parameter . Language=Italian Messaggio di test senza parametri . MessageId= Severity=Error SymbolicName=MSG_TEST2 Language=English Test message with one parameter: (%1) . Language=German Test Nachricht mit einen Parameter: (%1) . Language=Italian Messaggio di test con un parametro: (%1) . MessageId= Severity=Error SymbolicName=MSG_TEST3 Language=English Test message with three parameters: (1:'%1' 2:'%2' 3:'%3') . Language=German Test Nachricht mit drei Parameter: (1:'%1' 2:'%2' 3:'%3') . Language=Italian Messaggio di test con tre parametri: (1:'%1' 2:'%2' 3:'%3') .