This example demonstrates how to create a message with inserts from a system message file. It creates a file named "SAMPLE.TXT" with the following 3 lines in it: compact.
sample system message file - SAMPLE.MSG ...
DOS
DOS1000E: %1 Error at Station %2%0
MKMSGF SAMPLE.TXT SAMPLE.MSG
#define INCL_DOSMISC /* Miscellaneous values */#define INCL_DOSERRORS /* DOS Error values */
#include <os2.h>
#include <stdio.h>
#include <string.h>
int main(VOID) {
UCHAR *IvTable[2] = {0}; /* Table of variables to insert */
UCHAR szOutMsg[80]= ""; /* Message buffer */
ULONG ulMsgLen = 0; /* Length of returned message */
APIRET rc = 0; /* Return code */
IvTable[0] = "Automation Failure";
IvTable[1] = "69B";
/* Create error message with inserts from system message file SAMPLE.MSG */
rc = DosGetMessage(IvTable, /* Message insert pointer array */
2, /* Number of inserts */
szOutMsg, /* Output message */
sizeof(szOutMsg), /* Length of output message area */
1000L, /* Number of message requested */
"SAMPLE.MSG", /* Message file (created by MKMSGF) */
&ulMsgLen); /* Length of resulting output message */
if (rc != NO_ERROR) {
printf("DosGetMessage error: return code = %u\n", rc);
return 1;
}
printf("%s\n", szOutMsg);
return NO_ERROR;
}