home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / smart21b.zip / SMARTAUX / WN32PWPC / WN32PWPC.DCT < prev   
Text File  |  1994-12-12  |  70KB  |  1,446 lines

  1. .Notice  =Database dictionary
  2. .Table   =Win32 to Workplace OS/2
  3. .Version =1.0
  4. .Date    =11/22/94
  5.  
  6. .Keyword =010 010 300 GetEnvironmentVariable
  7. .SComment=Replace GetEnvironmentVariable with DosGetEnv
  8. .LComment=Replace with DosGetEnv noting that there are differences in
  9.          =the returned codes as well as the format of the data
  10.          =returned in the buffer.  If the call is successful
  11.          =GetEnvironmentVariable returns the minimum required size of
  12.          =the memory area pointed to by lpszValue in order for this
  13.          =buffer to receive the retrieved value of the specified
  14.          =environment variable.  If unseccessful it returns 0.  On the
  15.          =other hand, DosGetEnv returns 0 in order to indicate
  16.          =success.  Anything else indicates an error.  The required
  17.          =size of the buffer is returned in BufferLength field.  This
  18.          =may require changes to any logic dependent upon the value of
  19.          =the return code.  Also note that GetEnvironmentVariable
  20.          =retrieves the value of the environment variable specified in
  21.          =the lpszName variable and that DosGetEnv retrieves the
  22.          =entire environment string.  For this reason DosGetEnv does
  23.          =not need a parameter which specifies the name of the
  24.          =environment variable to query and thus needs only two
  25.          =parameters.
  26. .Sample  =Win32:
  27.          =  DWORD      rc = GetEnvironmentVariable ("Path",  NULL, 0);
  28.          =  LPTSTR     lpszValue = calloc (1, rc);
  29.          =  rc = GetEnvironmentVariable ("Path",  lpszValue, rc);
  30.          =  ...
  31.          =OS/2 for PowerPC:
  32.          =  ULONG      BufferLength = 0;
  33.          =  APIRET     rc = DosGetEnv (&BufferLength, NULL);
  34.          =  PVOID      Buffer = calloc (1, BufferLength);
  35.          =  rc = DosGetEnv (&BufferLength, Buffer);
  36.          =  ...
  37. .Prototyp=APIRET APIENTRY DosGetEnv (PULONG BufferLength,
  38.          =                           PVOID Buffer);
  39. .Template=DosGetEnv (&$P3, $P2);
  40. .Refer   =DosGetEnv
  41.  
  42. .Keyword =010 020 999 WriteConsoleOutputCharacter
  43. .SComment=Replace WriteConsoleOutputCharacter with VioWrtCharStr
  44. .LComment=Replace with VioWrtCharStr noting the differences in the
  45.          =parameters passed and values returned.  The second and third
  46.          =parameters of WriteConsoleOutputCharacter correspond to the
  47.          =first and second parameters of VioWrtCharStr respectively.
  48.          =The first parameter of WriteConsoleOutputCharacter is a
  49.          =handle to a screen buffer which was returned by a call to
  50.          =CreateConsoleScreenBuffer and this can be mapped to the
  51.          =fifth parameter of VioWrtCharStr; however the value of this
  52.          =variable will be derived in a different manner.  If the
  53.          =migrated version will be a Presentation Manager application
  54.          =then the value of this variable will be determined in a call
  55.          =to VioCreatePS.  If it is to be a VIO application then the
  56.          =value of this variable will be 0.  The values of the third
  57.          =and fourth parameters of VioWrtCharStr must be extracted
  58.          =from the fourth parameter of WriteConsoleOutputCharacter.
  59.          =If the migrated version will be a Presentation Manager
  60.          =application then this can be done by including OS2DEF.H and
  61.          =converting the Windows COORD type to a POINTL and specifying
  62.          =the y field of this structure as the third parameter and the
  63.          =x field as the fourth.  If the migrated version is to be a
  64.          =VIO application instead, then new variables will need to be
  65.          =declared and assigned.  Finaly,  WriteConsoleOutputCharacter
  66.          =returns 1 in order to indicate success and 0 in order to
  67.          =indicate an error.  VioWrtCharStr returns 0 in order to
  68.          =indicate success.  Any other value indicates an error.
  69.          =Because of this it will be necessary to modify any logic
  70.          =which is dependent upon the return code.
  71. .Sample  =Win32:
  72.          =  HANDLE     hConsoleOutput = CreateConsoleScreenBuffer
  73.          =                               (GENERIC_WRITE,
  74.          =                                FILE_SHARE_READ, lpsa,
  75.          =                                CONSOLE_TEXT_MODE, NULL);
  76.          =  ...
  77.          =  COORD      coordWriteCoord = {0, 0};
  78.          =  DWORD      lpcWritten;
  79.          =  BOOL       rc = WriteConsoleOutputCharacter
  80.          =                   (hConsoleOutput, "Hello!", 6,
  81.          =                    coordWriteCoord, &lpcWritten);
  82.          = ...
  83.          =OS/2 for PowerPC:
  84.          =  HVIO      hvps;
  85.          =  POINTL    coordWriteCoord = {0, 0};
  86.          =  APIRET    rc = VioCreatePS (&hvps, 25, 80, 1, 1, 0);
  87.          =  ...
  88.          =  rc = VioWrtCharStr ("Hello!", 6, coordWriteCoord.y,
  89.          =                      coordWriteCoord.x, hvps);
  90.          =  ...
  91. .Prototyp=APIRET APIENTRY VioWrtCharStr (PCH pchStr, ULONG cb,
  92.          =                               ULONG ulRow, ULONG ulColumn,
  93.          =                               HVIO hvio);
  94. .Template=VioCreatePS (&P2, $P3, $P4.y, $P4.x, $P1);
  95. .Template=VioCreatePS (&P2, $P3, , , 0);
  96. .Command =IF $GAPPTYPE = '' THEN
  97.          =  SmDisplayDlg ('Will the migrated version be a VIO or PM based application?',
  98.          =                $GAPPTYPE, ~VIO | ~PM | ~Cancel)
  99.          =IF $GAPPTYPE = 'PM' THEN
  100.          =  DO
  101.          =    SmMigrateKeyword ($T1)
  102.          =    SmOutputNote = ('Must modify logic dependent upon value returned from VioWrtCharStr')
  103.          =  END
  104.          =ELSE
  105.          =  DO
  106.          =    IF $GAPPTYPE = 'VIO' THEN
  107.          =      DO
  108.          =        SmMigrateKeyword ($T2)
  109.          =        SmOutputNote = ('Must modify logic dependent upon return value from VioWrtCharStr')
  110.          =      END
  111.          =  END
  112.          =TERMINATE
  113. .Refer   =VioWrtCharStr
  114.  
  115. .Keyword =010 040 999 WriteConsoleOutputAttribute
  116. .SComment=Replace WriteConsoleOutputAttribute with VioWrtNAttr
  117. .LComment=Replace with VioWrtNAttr noting the differences in the
  118.          =parameters passed, values returned, and functionality.  The
  119.          =third parameters of WriteConsoleOutputAttribute corresponds
  120.          =to the second parameters of VioWrtNAttr.  The first
  121.          =parameter of WriteConsoleOutputAttribute is a handle to a
  122.          =screen buffer which was returned by a call to
  123.          =CreateConsoleScreenBuffer and this can be mapped to the
  124.          =fifth parameter of VioWrtNAttr; however the value of this
  125.          =variable will be derived in a different manner.  If the
  126.          =migrated version will be a Presentation Manager application
  127.          =then the value of this variable will be determined in a call
  128.          =to VioCreatePS.  If it is to be a VIO application then the
  129.          =value of this variable will be 0.  The values of the third
  130.          =and fourth parameters of VioWrtNAttr must be extracted from
  131.          =the fourth parameter of WriteConsoleOutputAttribute  If the
  132.          =migrated version will be a Presentation Manager application,
  133.          =this can be done by including OS2DEF.H and converting the
  134.          =Windows COORD type to a POINTL and specifying the y field of
  135.          =this structure as the third parameter and the x field as the
  136.          =fourth.  If the migrated version is to be a VIO application
  137.          =instead then new variables will need to be declared and
  138.          =assigned.  With WriteConsoleOutputAttribute you can specify
  139.          =a pointer to an array of attributes in the second parameter.
  140.          =This will cause the number of cells specified in the third
  141.          =parameter to each receive its attribute from a different
  142.          =member of this array.  With VioWrtNAttr only one attribute
  143.          =can be specified in the first parameter and this will cause
  144.          =each of the number of cells specified in the second
  145.          =parameter to receive this same attribute.  In order to
  146.          =overcome this in Workplace OS/2 it will be necessary in the
  147.          =migrated code to create a loop with a call to VioWrtNAttr
  148.          =inside it and pass a variable into this call which will
  149.          =sequentially reference a different element of the array for
  150.          =iteration through the loop.  Note that the Windows
  151.          =attribute macros will have to be mapped to their
  152.          =Workplace OS/2 hex counterparts.  Finaly,
  153.          =WriteConsoleOutputAttribute returns 1 in order to indicate
  154.          =success and 0 in order to indicate an error.  VioWrtNAttr
  155.          =returns 0 in order to indicate success.  Any other value
  156.          =indicates an error.  Because of this it will be necessary to
  157.          =modify any logic which is dependent upon the return code.
  158. .Sample  =Win32:
  159.          =  HANDLE     hConsoleOutput = CreateConsoleScreenBuffer
  160.          =                               (GENERIC_WRITE,
  161.          =                                FILE_SHARE_READ, lpsa,
  162.          =                                CONSOLE_TEXT_MODE, NULL);
  163.          =  ...
  164.          =  COORD      coordWriteCoord = {0, 0};
  165.          =  DWORD      lpcWritten;
  166.          =  WORD       wAttribute = FOREGROUND_RED | BACKGROUND_BLUE;
  167.          =  BOOL       rc = WriteConsoleOutputAttribute
  168.          =                   (hConsoleOutput, &wAttribute, 1,
  169.          =                    coordWriteCoord, &lpcWritten);
  170.          = ...
  171.          =OS/2 for PowerPC:
  172.          =  HVIO      hvps;
  173.          =  APIRET    rc = VioCreatePS (&hvps, 25, 80, 1, 1, 0);
  174.          =  ...
  175.          =  POINTL    coordWriteCoord = {0, 0};
  176.          =  BYTE      Attr = 0x1E
  177.          =  rc = VioWrtNAttr (&Attr, 1, coordWriteCoord.y,
  178.          =                      coordWriteCoord.x, hvps);
  179.          =  ...
  180. .Prototyp=APIRET APIENTRY  VioWrtNAttr (PBYTE pAttr, ULONG cb,
  181.          =                              ULONG ulRow, ULONG ulColumn,
  182.          =                              HVIO hvio);
  183. .Template=VioWrtNAttr (, $P3, $P4.y, $P4.x, $P1);
  184. .Template=VioWrtNAttr (, $P3, , , 0);
  185. .Refer   =VioWrtNAttr
  186.  
  187. .Keyword =010 040 999 WriteConsoleOutput
  188. .SComment=Replace WriteConsoleOutput with VioWrtCellStr
  189. .LComment=Replace WriteConsoleOutput with VioWrtCellStr.  If the
  190.          =rectangular block being written encompasses more than one
  191.          =line then it will be necessary to make several calls to
  192.          =VioWrtCellStr within a loop in order to emulate this feature.
  193.          =of WriteConsoleOutput.  Although the parameters are quite
  194.          =different between the two calls, you should be able to
  195.          =derive the parameters for VioWrtCellStr from those passed to
  196.          =WriteConsoleOutput. In the case of the first parameter of
  197.          =VioWrtCellStr; if the migrated version will be a
  198.          =Presentation Manager application then the value of this
  199.          =variable will be determined in a call to VioCreatePS.  If it
  200.          =is to be a VIO application then the value of this variable
  201.          =will be 0.  Finaly, WriteConsoleOutput returns 1 in order to
  202.          =indicate success and 0 in order to indicate an error.
  203.          =VioWrtNAttr returns 0 in order to indicate success.  Any
  204.          =other value indicates an error.  Because of this it will be
  205.          =necessary to modify any logic which is dependent upon the
  206.          =return code.
  207. .Sample  =Win32:
  208.          =  HANDLE     hConsoleOutput = CreateConsoleScreenBuffer
  209.          =                               (GENERIC_WRITE,
  210.          =                                FILE_SHARE_READ, lpsa,
  211.          =                                CONSOLE_TEXT_MODE, NULL);
  212.          =  ...
  213.          =  CHAR_INFO  chiSrcBuffer;
  214.          =  ...
  215.          =  COORD      coordSrcBufferSize = {10, 4};
  216.          =  COORD      coordSrcBufferCoord = {5, 15};
  217.          =  SMALL_RECT psrctDestRect = {8, 3, 18, 7};
  218.          =  BOOL       rc = WriteConsoleOutput (hConsoleOutput,
  219.          =                                      &chiSrcBuffer,
  220.          =                                      coordSrcBufferSize,
  221.          =                                      coordSrcBufferCoord,
  222.          =                                      &psrctDestRect);
  223.          = ...
  224.          =OS/2 for PowerPC:
  225.          =  HVIO      hvps;
  226.          =  APIRET    rc = VioCreatePS (&hvps, 25, 80, 1, 1, 0);
  227.          =  ...
  228.          =  PSZ       CellStr;
  229.          =  ...
  230.          =  rc = VioWrtCellStr (CellStr, 10, 12, 13, hvps);
  231.          =  ...
  232. .Prototyp=APIRET APIENTRY VioWrtCellStr (PCH pchCellStr, ULONG cb,
  233.          =                               ULONG ulRow, ULONG ulColumn,
  234.          =                               HVIO hvio);
  235. .Template=VioWrtCellStr (, , , , $P1);
  236. .Template=VioWrtCellStr (, , , , 0);
  237. .Refer   =VioWrtCellStr
  238.  
  239. .Keyword =010 040 999 WriteConsoleInput
  240. .SComment=Replace WriteConsoleInput with WinPostMsg
  241. .LComment=Replace WriteConsoleInput with WinPostMsg specifying WM_CHAR
  242.          =or one of the mouse button messages, depending on the source
  243.          =of the input in the Windows version.
  244. .Sample  =Win32:
  245.          =  HANDLE     hConsoleOutput = CreateConsoleScreenBuffer
  246.          =                               (GENERIC_WRITE,
  247.          =                                FILE_SHARE_READ, lpsa,
  248.          =                                CONSOLE_TEXT_MODE, NULL);
  249.          =  ...
  250.          =  INPUT_RECORD irBuffer;
  251.          =  ...
  252.          =  DWORD      cInRecords;
  253.          =  BOOL rc = WriteConsoleInput (hConsoleOutput, &irBuffer,
  254.          =                               3, &cInRecords);
  255.          =  ...
  256.          =OS/2 for PowerPC:
  257.          =  HWND      hwnd1;
  258.          =  MPARAM    mp1, mp2;
  259.          =  ...
  260.          =  BOOL rc = WinPostMsg (hwnd1, WM_CHAR, mp1, mp2);
  261.          =  ...
  262. .Prototyp=BOOL APIENTRY WinPostMsg(HWND hwnd, ULONG msg, MPARAM mp1,
  263.          =                         MPARAM mp2);
  264. .Template=WinPostMsg (, , , );
  265. .Refer   =WinPostMsg
  266.  
  267. .Keyword =010 020 999 WriteConsole
  268. .SComment=Replace WriteConsole with VioWrtTTY noting differences
  269. .LComment=Replace WriteConsole with VioWrtTTY noting the differences
  270.          =between the two calls in the parameters passed as well as
  271.          =the values returned.  Note that the first and second
  272.          =parameters of VioWrtTTY can be mapped to the second and
  273.          =third parameters of WriteConsole.  The third parameter of
  274.          =VioWrtTTY will be 0 if the migrated version is to be a VIO
  275.          =application.  If it is a Presentation Manager application
  276.          =then the value of this parameter will be returned from a
  277.          =call to VioCreatePS.  WriteConsole returns 1 in order to
  278.          =indicate success and VioWrtTTY returns 0 in order to
  279.          =indicate success.  Because of this, any code which depends
  280.          =on this returned value must be modified.
  281. .Sample  =Win32:
  282.          =  HANDLE     hConsoleOutput = CreateConsoleScreenBuffer
  283.          =                               (GENERIC_WRITE,
  284.          =                                FILE_SHARE_READ, lpsa,
  285.          =                                CONSOLE_TEXT_MODE, NULL);
  286.          =  ...
  287.          =  DWORD      cchWritten;
  288.          =  BOOL       rc = WriteConsole (hConsoleOutput, "Hello!", 6,
  289.          =                                &cchWritten, NULL);
  290.          =  ...
  291.          =OS/2 for PowerPC:
  292.          =  HVIO      hvps;
  293.          =  APIRET    rc = VioCreatePS (&hvps, 25, 80, 1, 1, 0);
  294.          =  ...
  295.          =  rc = VioWrtTTY ("Hello!", 6, hvps);
  296.          =  ...
  297. .Prototyp=APIRET APIENTRY VioWrtTTY (PCH pch, ULONG cb, HVIO hvio);
  298. .Template=VioWrtTTY ($P2, $P3, $P1);
  299. .Template=VioWrtTTY ($P2, $P3, 0);
  300. .Command =IF $GAPPTYPE = '' THEN
  301.          =  SmDisplayDlg ('Will the migrated version be a VIO or PM based application?',
  302.          =                $GAPPTYPE, ~VIO | ~PM | ~Cancel)
  303.          =IF $GAPPTYPE = 'PM' THEN
  304.          =  DO
  305.          =    SmMigrateKeyword ($T1)
  306.          =    SmOutputNote = ('Must modify logic dependent upon return value from VioWrtTTY')
  307.          =  END
  308.          =ELSE
  309.          =  DO
  310.          =    IF $GAPPTYPE = 'VIO' THEN
  311.          =      DO
  312.          =        SmMigrateKeyword ($T2)
  313.          =        SmOutputNote = ('Must modify logic dependent upon return value from VioWrtTTY')
  314.          =      END
  315.          =  END
  316.          =TERMINATE
  317. .Refer   =VioWrtTTY
  318.  
  319. .Keyword =010 040 999 AllocConsole
  320. .SComment=Replace AllocConsole with VioCreatePS
  321. .LComment=If you are creating a PM application which will use VIO,
  322.          =replace AllocConsole with VioCreatePS. VioCreatePS is
  323.          =usually issued during WM_CREATE. Before using the
  324.          =presentation space be sure to associate it with a device
  325.          =context by calling VioAssociate.  If you are creating only a
  326.          =VIO application (program type WINDOWCOMPAT as opposed to
  327.          =WINDOWAPI) then do not use VioCreatePS; simply remove
  328.          =AllocConsole.
  329. .Sample  =Win32:
  330.          =  BOOL bOK = AllocConsole();
  331.          =OS/2 for PowerPC:
  332.          =  APIRET Error;
  333.          =  HVIO    hvps;
  334.          =  ULONG Rows = 25;
  335.          =  ULONG Columns = 80;
  336.          =  Error = VioCreatePS (&hvps, Rows, Columns, 2, 1, 0);
  337. .Prototyp=APIRET APIENTRY VioCreatePS (PHVIO phvps, ULONG Rows,
  338.          =                             ULONG Columns, ULONG Format,
  339.          =                             ULONG AttrBytes, HVIO hvps);
  340. .Template=VioCreatePS (, , , , , );
  341. .Refer   =VioCreatePS
  342. .Refer   =VioAssociate
  343. .Refer   =$CreateConsoleScreenBuffer
  344.  
  345. .Keyword =010 040 999 CreateConsoleScreenBuffer
  346. .SComment=Replace CreateConsoleScreenBuffer with VioCreatePS
  347. .LComment=If you are creating a PM application which will use VIO,
  348.          =replace CreateConsoleScreenBuffer with VioCreatePS.
  349.          =VioCreatePS is usually issued during WM_CREATE.  Before
  350.          =using the presentation space be sure to associate it with a
  351.          =device context by calling VioAssociate.  If you are creating
  352.          =only a VIO application (program type WINDOWCOMPAT as opposed
  353.          =to WINDOWAPI) then do not use VioCreatePS; simply remove
  354.          =AllocConsole.
  355. .Sample  =Win32:
  356.          =  HANDLE hConsole;
  357.          =  SECURITY_ATTRIBUTES sa = { sizeof(SECURITY_ATTRIBUTES),
  358.          =                                NULL, TRUE };
  359.          =  hConsole=CreateConsoleScreenBuffer(GENERIC_READ |
  360.          =   GENERIC_WRITE, 0, &sa, CONSOLE_TEXTMODE_BUFFER, NULL);
  361.          =  SetConsoleActiveScreenBuffer(hConsole);
  362.          =OS/2 for PowerPC:
  363.          =  HDC   hdc;
  364.          =  HVPS hvps;
  365.          =  hdc = WinOpenWindowDC (hwnd) ;
  366.          =  VioCreatePS ((PHVPS)&hvps, (SHORT) NUMLINES,
  367.          =           (SHORT) MAXWIDTH, (SHORT)  0, (SHORT) 1,
  368.          =           (HVPS) NULL) ;
  369.          =  VioAssociate (hdc, hvps) ;
  370. .Prototyp=APIRET VioCreatePS(PHVIO phvps, ULONG Rows, ULONG Columns,
  371.          =               ULONG Format, ULONG AttrBytes, HVIO hvps);
  372. .Template=VioCreatePS (&$KRTN, , , , , );
  373. .Refer   =VioCreatePS
  374. .Refer   =VioAssociate
  375. .Refer   =$AllocConsole
  376.  
  377. .Keyword =010 030 999 FlushConsoleInputBuffer
  378. .SComment=Replace FlushConsoleInputBuffer with MouFlushQue and KbdFlushBuffer
  379. .LComment=If your program is a PM application(WINDOWAPI), simply
  380.          =remove FlushConsoleInputBuffer.  For VIO applications
  381.          =(WINDOWAPI) replace with MouFlushQue and KbdFlushBuffer.
  382. .Sample  =Win32:
  383.          =  FlushConsoleInputBuffer(hConsole);
  384.          =OS/2 for PowerPC:
  385.          =  MouFlushQue(hMouse);
  386.          =  KbdFlushBuffer(hkbd);
  387. .Prototyp=APIRET KbdFlushBuffer(HKBD);
  388.          =APIRET MouFlushQue(HMOU);
  389. .Template=KbdFlushBuffer();
  390.          =MouFlushQue();
  391. .Refer   =MouFlushQue
  392. .Refer   =MouFlushBuffer
  393.  
  394. .Keyword =010 010 999 FreeConsole
  395. .SComment=Replace FreeConsole with VioAssociate
  396. .LComment=If you are creating a PM application which will use VIO,
  397.          =replace FreeConsole with VioAssociate, specifying
  398.          =NULLHANDLE as the device context handle.  The value for the
  399.          =second parameter (hvps) comes from a call to VioCreatePS.
  400.          =If you are creating only a VIO application(program type
  401.          =WINDOWCOMPAT as opposed to WINDOWAPI) then do not use
  402.          =VioAssoicate; simply remove FreeConsole.
  403. .Sample  =Win32:
  404.          =  BOOL bOK = FreeConsole();
  405.          =OS/2 for PowerPC:
  406.          =  sError = VioAssociate (NULLHANDLE, hvps);
  407. .Prototyp=APIRET VioAssociate(HDC hdc, HVIO hvps);
  408. .Template=VioAssociate(NULL, );
  409. .Refer   =VioAssociate
  410. .Refer   =VioCreatePS
  411.  
  412. .Keyword =010 010 999 GetConsoleCursorInfo
  413. .SComment=Replace GetConsoleCursorInfo with VioGetCurType
  414. .LComment=Replace GetConsoleCursorInfo with VioGetCurType.
  415. .Sample  =Win32:
  416.          =  CONSOLE_CURSOR_INFO  CursorInfo;
  417.          =  GetConsoleCursorInfo(hConsole, &CursorInfo);
  418.          =OS/2 for PowerPC:
  419.          =  VIOCURSORINFO CursorData;
  420.          =  VioGetCurType(&CursorData, hvps);
  421. .Prototyp=APIRET APIENTRY VioGetCurType
  422.          =                (PVIOCURSORINFO pvioCursorInfo, HVIO hvio);
  423. .Template=VioGetCurType($P2, $P1);
  424. .Refer   =VioSetCurType
  425. .Refer   =VioGetCurType
  426. .Refer   =$SetConsoleCursorInfo
  427.  
  428. .Keyword =010 020 999 GetConsoleOutputCP
  429. .SComment=Replace GetConsoleOutputCP with VioGetCp
  430. .LComment=For a VIO application the HVIO parameter must be zero.  Must
  431.          =modify logic dependent upon returned value.
  432. .Sample  =Win32:
  433.          =  UNIT CodePage;
  434.          =  CodePage = GetConsoleOutputCP();
  435.          =OS/2 for PowerPC:
  436.          =  USHORT CodePage;
  437.          =  VioGetCp(0, &CodePage, hvps);
  438. .Prototyp=APIRET VioGetCp(ULONG Reserved,  PUSHORT CodePage,
  439.          =                  HVIO hvio);
  440. .Template=VioGetCp(0, &$KRTN, )
  441.          =VioGetCp(0, &$KRTN, 0)
  442. .Command =IF $GAPPTYPE = '' THEN
  443.          =  SmDisplayDlg ('Will the migrated version be a VIO or PM based application?',
  444.          =                $GAPPTYPE, ~VIO | ~PM | ~Cancel)
  445.          =IF $GAPPTYPE = 'PM' THEN
  446.          =  DO
  447.          =    SmMigrateKeyword ($T1)
  448.          =    SmOutputNote = ('Provide new return variable for VioGetCp. Third parameter HVIO from VioCreatePS.')
  449.          =  END
  450.          =ELSE
  451.          =  DO
  452.          =    IF $GAPPTYPE = 'VIO' THEN
  453.          =      DO
  454.          =        SmMigrateKeyword ($T2)
  455.          =        SmOutputNote = ('Provide new return variable for VioGetCp. Third parameter HVIO from VioCreatePS.')
  456.          =      END
  457.          =  END
  458.          =TERMINATE
  459. .Refer   =VioSetCp
  460. .Refer   =$SetConsoleOutputCP
  461.  
  462. .Keyword =010 040 999 GetConsoleScreenBufferInfo
  463. .SComment=Replace VioGetOrigin, VioGetCurPos and VioGetMode.
  464. .LComment=VioGetOrigin will return the position in the
  465.          =presentation space which maps to the first row and column
  466.          =of the window.  VioGetCurPos returns the coordinates of the
  467.          =cursor. VioGetMode returns the size of the screen buffer, but
  468.          =only if the application is of type WINDOWCOMP; i.e.
  469.          =not a Presentation Manager application.   The size of the
  470.          =screen buffer associated with the window cannot be changed
  471.          =in a Presentation Manager application.
  472. .Sample  =Win32:
  473.          =  CONSOLE_SCREEN_BUFFER_INFO consoleBuffer;
  474.          =  GetConsoleScreenBufferInfo(hConsole, &consoleBuffer);
  475.          =OS/2 for PowerPC:
  476.          =  ULONG ORow, OColumn, CurRow, CurColumn;
  477.          =  VIOMODEINFO vioMode
  478.          =  VioGetOrigin(&ORow, &OColumn, hvps);
  479.          =  VioGetCurPos(&CurRow, &CurColumn, hvps);
  480.          =  VioGetMode(&vioMode, hvps);
  481. .Prototyp=APIRET APIENTRY VioGetOrigin(PULONG Row, PULONG Column,
  482.          =                             HVIO hvps);
  483.          =APIRET APIENTRY VioGetMode (PVIOMODEINFO pvioModeInfo,
  484.          =                            HVIO hvio);
  485.          =APIRET APIENTRY VioGetCp (ULONG ulReserved,
  486.          =                          PUSHORT pIdCodePage, HVIO hvio);
  487. .Template=VioGetOrigin(, , )
  488.          =VioGetCurPos(, , )
  489.          =VioGetMode(, )
  490. .Refer   =VioGetOrigin
  491. .Refer   =VioGetMode
  492. .Refer   =VioGetCurPos
  493. .Refer   =$SetConsoleWindowInfo
  494.  
  495. .Keyword =030 040 999 GetConsoleTitle
  496. .SComment=Replace GetConsoleTitle with WinGetWindowText
  497. .LComment=WinGetWindowText is only appropriate for Presentation
  498.          =Manager applications.
  499. .Sample  =Win32:
  500.          =  CHAR Buffer[45];
  501.          =  GetConsoleTitle(Buffer, sizeof(Buffer));
  502.          =OS/2 for PowerPC:
  503.          =  CHAR Buffer[45];
  504.          =  WinQueryWindowText(hwndFrame, sizeof(Buffer), Buffer);
  505. .Prototyp=APIRET APIENTRY WinQueryWindowText(HWND hwnd, ULONG length,
  506.          =                                   PCH pchBuffer);
  507. .Template=WinQueryWindowText(, , );
  508. .Refer   =WinQueryWindowText
  509.  
  510. .Keyword =010 020 999 GetNumberOfConsoleMouseButtons
  511. .SComment=Replace GetNumberOfConsoleMouseButtons with MouGetNumButtons.
  512. .LComment=MouGetNumButtons is only appropriate for VIO programs not
  513.          =for Presentation Manager programs.  Notice the return value
  514.          =differences between the two functions.  Modify any logic
  515.          =dependent upon the returned value.
  516. .Sample  =Win32:
  517.          =  DWORD lpcMouseButtons;
  518.          =  GetNumberOfMouseButtons(&MouseButtons);
  519.          =OS/2 for PowerPC:
  520.          =  ULONG numButtons;
  521.          =  HMOU hMouse;
  522.          =  MouGetNumButtons(&numButtons, hMouse);
  523. .Prototyp=APIRET APIENTRY MouGetNumButtons(PULONG number, HMOU hMouse);
  524. .Template=MouGetNumButtons ($P1, 0)
  525. .Refer   =MouGetNumButtons
  526.  
  527. .Keyword =030 040 999 PeekConsoleInput
  528. .SComment=Replace PeekConsoleInput with KbdConsole or WinPeekMsg
  529. .LComment=For VIO applications replace PeekConsoleInput with
  530.          =KbdGetConsole, specifying 2 for the flag parameter.
  531.          =KbdGetConsole returns one and only one event.
  532.          =KbdGetConsole cannot be used in Presentation Manager
  533.          =applications.  For Presentation Manager applications use
  534.          =WinPeekMsg.
  535. .Sample  =Win32:
  536.          =  INPUT_RECORD inRecord;
  537.          =  DWORD numRead;
  538.          =  PeekConsoleInput(hConsole, &inRecord, 1, &numRead);
  539.          =OS/2 for PowerPC:
  540.          =  typedef union _EVENT {
  541.          =  KBDKEYINFO   KeyInfo;
  542.          =  MOUQUEINFO  MouInfo; } EVENT;
  543.          =  EVENT Event;
  544.          =  ULONG Type;
  545.          =  UHSORT Character;
  546.          =  ULONG   MouState;
  547.          =  KbdGetConsole(Data, &Type, 2, hKbd);
  548.          =  if (Type == 2) {
  549.          =       Character = Event.KeyInfo.chChar;
  550.          =         . . .
  551.          =  }
  552.          =  else if (Type == 3)
  553.          =       MouState = Event.MouInfo.fs;
  554.          =       . . .
  555.          =  }
  556. .Prototyp=APIRET APIENTRY KbdGetConsole(PVOID Data, PULONG Kind, ULONG Flag,
  557.          =                              HKBD hKbd);
  558.          =BOOL APIENTRY WinPeekMsg(HAB hab, PQMSG pqmsg,
  559.          =                         HWND hwndFilter,
  560.          =                         ULONG msgFilterFirst,
  561.          =                         ULONG msgFilterLast, ULONG fl);
  562. .Template=KbdGetConsole(, , , );
  563.          =WinPeekMsg(, , , , , );
  564. .Refer   =WinPeekMsg
  565. .Refer   =KbdGetConsole
  566.  
  567. .Keyword =030 040 999 ReadConsoleInput
  568. .SComment=Replace with WinGetMsg or KbdGetConsole
  569. .LComment=For VIO applications use KbdGetConsole, specifying 1 for
  570.          =the flag; for Presentation Manager applications use
  571.          =WinGetMsg.
  572. .Sample  =Win32:
  573.          =  INPUT_RECORD inRecord;
  574.          =  DWORD numRead;
  575.          =  ReadConsoleInput(hConsole, &inRecord, 1, &numRead);
  576.          =OS/2 for PowerPC:
  577.          =  typedef union _EVENT {
  578.          =  KBDKEYINFO   KeyInfo;
  579.          =  MOUQUEINFO  MouInfo; } EVENT;
  580.          =  EVENT Event;
  581.          =  ULONG Type;
  582.          =  UHSORT Character;
  583.          =  ULONG   MouState;
  584.          =  KbdGetConsole(Data, &Type, 1, hKbd);
  585.          =  if (Type == 2) {
  586.          =       Character = Event.KeyInfo.chChar;
  587.          =         . . .
  588.          =  }
  589.          =  else if (Type == 3)
  590.          =       MouState = Event.MouInfo.fs;
  591.          =       . . .
  592.          =  }
  593. .Prototyp=APIRET KbdGetConsole(PVOID Data, PULONG Kind, ULONG Flag,
  594.          =                         HKBD hKbd);
  595.          =BOOL APIENTRY WinGetMsg(HAB hab, PQMSG pqmsg,
  596.          =                        HWND hwndFilter,
  597.          =                        ULONG msgFilterFirst,
  598.          =                        ULONG msgFilterLast);
  599. .Template=KbdGetConsole(, , , );
  600. .Template=WinGetMsg(, , , , );
  601. .Refer   =WinPeekMsg
  602. .Refer   =WinGetMsg
  603. .Refer   =KbdGetConsole
  604.  
  605. .Keyword =030 040 999 ReadConsoleOutput
  606. .SComment=Replace ReadConsoleOutput with VioReadCellStr
  607. .LComment=Replace ReadConsoleOutput with VioReadCellStr
  608. .Sample  =Win32:
  609.          =  CHAR_INFO Buffer[10];
  610.          =  SMALL_RECT small_rect = { 0, 0, 0, 10};
  611.          =  COORD BufSize = { 1, 10 };
  612.          =  COORD DestBuf = { 0, 0 };
  613.          =  ReadConsoleOutput(hConsole, &Buffer, &BufSize,  &DestBuf,
  614.          =                    Buffer, &small_rect);
  615.          =OS/2 for PowerPC:
  616.          =  CH CellStr[10];
  617.          =  ULONG Length = 10;
  618.          =  VioReadCellStr(CellStr, &Length, 0, 0, hvps);
  619. .Prototyp=APIRET VioReadCellStr(PCH CellStr, PULONG Length,
  620.          =                    ULONG Row, ULONG Column, hvps);
  621. .Template=VioReadCellStr(, , , , );
  622. .Refer   =VioReadCellStr
  623. .Refer   =VioWrtCellStr
  624.  
  625. .Keyword =030 020 999 ReadConsoleOutputCharacter
  626. .SComment=Replace ReadConsoleOutputCharacter with VioReadCharStr.
  627. .LComment=Replace ReadConsoleOutputCharacter with VioReadCharStr.  Be
  628.          =sure to provide two ULONG parameters derived from the COORD
  629.          =structure passed to ReadConsoleOutputCharacter.  Modify any
  630.          =logic dependent upon the return code.  The value of the
  631.          =fifth parameter to VioReadCharStr depends on whether the
  632.          =migrated version is PM  or VIO.
  633. .Sample  =Win32:
  634.          =  char Buffer[20];
  635.          =  DWORD NumRead;
  636.          =  COORD StartCoord = { 0, 0 };
  637.          =  ReadConsoleOutputCharacter(hConsole, Buffer, 20,
  638.          =                                StartCoord, &NumRead);
  639.          =OS/2 for PowerPC:
  640.          =  char Buffer[20];
  641.          =  ULONG Length = 20;
  642.          =  VioReadCharStr(Buffer, &Length, 0, 0, hvps);
  643. .Prototyp=APIRET APIENTRY VioReadCharStr (PCH pchCellStr, PULONG pcb,
  644.          =                                ULONG ulRow, ULONG ulColumn,
  645.          =                                HVIO hvio);
  646. .Template=VioReadCharStr($P2, $P3, , , $P1)
  647.          =VioReadCharStr($P2, $P3, , , 0)
  648. .Command =IF $GAPPTYPE = '' THEN
  649.          =  SmDisplayDlg ('Will the migrated version be a VIO or PM based application?',
  650.          =                $GAPPTYPE, ~VIO | ~PM | ~Cancel)
  651.          =IF $GAPPTYPE = 'PM' THEN
  652.          =  DO
  653.          =    SmMigrateKeyword ($T1)
  654.          =    SmOutputNote = ('Modify logic dependent upon the value returned from VioReadCharStr.')
  655.          =  END
  656.          =ELSE
  657.          =  DO
  658.          =    IF $GAPPTYPE = 'VIO' THEN
  659.          =      DO
  660.          =        SmMigrateKeyword ($T2)
  661.          =        SmOutputNote = ('Modify logic dependent upon the value returned from VioReadCharStr.')
  662.          =      END
  663.          =  END
  664.          =TERMINATE
  665. .Refer   =VioReadCharStr
  666. .Refer   =VioReadCellStr
  667.  
  668. .Keyword =030 020 999 ScrollConsoleScreenBuffer
  669. .SComment=Replace with VioScrolIUp, VioScrollDown, VioScrollLeft or VioScrollRight.
  670. .LComment=The VIO scroll functions do not use a clipping rectangle.
  671.          =They employ an integral value to indicate the number of
  672.          =lines to scroll the rectangle specified.  The parameters
  673.          =for the VIO APIs must be derived from the parameters of
  674.          =ScrollConsoleScreenBuffer.  Be sure to modify any code
  675.          =which is dependent upon the value returned.
  676. .Sample  =Win32:
  677.          =  SMALL_RECT srcScrollRect, srctClipRect;
  678.          =  CHAR_INFO   chiFill;
  679.          =  COORD        coordDest;
  680.          =  CONSOLE_SCREEN_BUFFER_INFO  csbiInfo;
  681.          =  GetConsoleBufferInfo(hStdOut, &csbiInfo);
  682.          =  srctScrollRect.Top = csbiInfo.dwSize.Y - 16;
  683.          =  srctScrollRect.Bottom = csbiInfo.dwSize.Y - 1;
  684.          =  srctScrollRect.Left = 0;
  685.          =  srctScrollRect.Right = csbiInfo.dwSize.X - 1;
  686.          =  /* The destination for the scroll rectangle is one row up. */
  687.          =  coordDest.X = 0;
  688.          =  coordDest.Y = csbiInfo.dwSize.Y - 17;
  689.          =  /* The clipping rectangle is the same as the scrolling
  690.          =      rectangle. The destination row is left unchanged. */
  691.          =  srctClipRect = srctScrollRect;
  692.          =  /* Fill the bottom row with green blanks. */
  693.          =  chiFill.Attributes = BACKGROUND_GREEN | FOREGROUND_RED;
  694.          =  chiFill.Char.AsciiChar = ' ';
  695.          =  /* Scroll up one line. */
  696.          =  ScrollConsoleScreenBuffer(
  697.          =      hStdout,         /* screen buffer handle     */
  698.          =      &srctScrollRect, /* scrolling rectangle      */
  699.          =      &srctClipRect,   /* clipping rectangle       */
  700.          =      coordDest,       /* top left destination cell*/
  701.          =      &chiFill);       /* fill character and color */
  702.          =OS/2 for PowerPC:
  703.          =  HVIO    hvps;
  704.          =  ULONG Rows = 25;
  705.          =  ULONG Columns = 80;
  706.          =  ULONG TopRow, LeftCol, BotRow, RightCol;
  707.          =  BYTE  bCell[2];
  708.          =  VioCreatePS(&hvps, Rows, Columns, 2, 1,  0);
  709.          =  . . .
  710.          =  TopRow  = Rows - 15 - 1;
  711.          =  LeftCol   =  0;
  712.          =  RightCol  = 79;
  713.          =  BotRow   = Rows - 1;
  714.          =  bCell[0] = 0x20;
  715.          =  bCell[1] = ( 0x01 << 4 ) + 0x0F;
  716.          =  VioScrollUp(TopRow, LeftCol, BotRow, RightCol, 1, bCell,
  717.          =              hvps);
  718. .Prototyp=APIRET APIENTRY VioScrollUp (ULONG ulTopRow,
  719.          =                             ULONG ulLeftCol, LONG ulBotRow,
  720.          =                             ULONG ulRightCol,
  721.          =                             ULONG cbLines, PBYTE pCell,
  722.          =                             HVIO hvio);
  723.          =APIRET APIENTRY VioScrollDown (ULONG ulTopRow,
  724.          =                               ULONG ulLeftCol,
  725.          =                               ULONG ulBotRow,
  726.          =                               ULONG ulRightCol,
  727.          =                               ULONG cbLines,  PBYTE pCell,
  728.          =                               HVIO hvio);
  729.          =APIRET APIENTRY VioScrollLeft (ULONG ulTopRow,
  730.          =                               ULONG ulLeftCol,
  731.          =                               ULONG ulBotRow,
  732.          =                               ULONG ulRightCol,
  733.          =                               ULONG cbCol, PBYTE pCell,
  734.          =                               HVIO hvio);
  735.          =APIRET APIENTRY VioScrollRight (ULONG ulTopRow,
  736.          =                                ULONG ulLeftCol,
  737.          =                                ULONG ulBotRow,
  738.          =                                ULONG ulRightCol,
  739.          =                                ULONG cbCol, PBYTE pCell,
  740.          =                                HVIO hvio);
  741. .Template=VioScrollUp(, , , , , , )
  742. .Template=VioScrollDown(, , , , , , )
  743. .Template=VioScrollLeft(, , , , , , )
  744. .Template=VioScrollRight(, , , , , , )
  745. .Refer   =VioScrollUp
  746. .Refer   =VioScrollDown
  747. .Refer   =VioScrollLeft
  748. .Refer   =VioScrollRight
  749. .Refer   =$SetConsoleWindowInfo
  750.  
  751. .Keyword =010 020 999 SetConsoleActiveScreenBuffer
  752. .SComment=Replace SetConsoleActiveScreenBuffer with VioAssociate
  753. .LComment=VioAssociate is only needed for Presentation Manager
  754.          =applications.  It is not needed for VIO applications.
  755. .Sample  =Win32:
  756.          =  HANDLE hConsole;
  757.          =  SECURITY_ATTRIBUTES sa = { sizeof(SECURITY_ATTRIBUTES),
  758.          =                                NULL, TRUE };
  759.          =  hConsole=CreateConsoleScreenBuffer(GENERIC_READ |
  760.          =   GENERIC_WRITE, 0, &sa, CONSOLE_TEXTMODE_BUFFER, NULL);
  761.          =  SetConsoleActiveScreenBuffer(hConsole);
  762.          =OS/2 for PowerPC:
  763.          =  HDC   hdc;
  764.          =  HVPS hvps;
  765.          =  hdc = WinOpenWindowDC (hwnd) ;
  766.          =  VioCreatePS ((PHVPS)&hvps, (SHORT) NUMLINES,
  767.          =               (SHORT) MAXWIDTH, (SHORT)  0, (SHORT) 1,
  768.          =               (HVPS) NULL) ;
  769.          =  VioAssociate (hdc, hvps) ;
  770. .Prototyp=APIRET APIENTRY VioAssociate(HDC hdc, HVIO hvps);
  771. .Template=VioAssociate(, $P1)
  772. .Command =SmMigrateKeyword ($T1)
  773.          =SmOutputNote ('Provide hdc parameter for VioAssociate.')
  774. .Refer   =VioAssoicate
  775. .Refer   =VioCreatePS
  776. .Refer   =$CreateActiveScreenBuffer
  777.  
  778. .Keyword =010 040 999 SetConsoleCursorInfo
  779. .SComment=Replace SetConsoleCursorInfo with VioSetCurType
  780. .LComment=If you creating a VIO application, replace
  781.          =SetConsoleCursorInfo with VioSetCurType.
  782.          =To set the CURSORDATA fields indicating CursorStartLine
  783.          =and CursorEndLine independent of the number of scan lines
  784.          =for each character cell, you may specify these parameters
  785.          =as percentages.  Workplace OS then calculates the physical
  786.          =start and end scan lines, respectively, by multiplying the
  787.          =percentage specified for the parameter by the total number
  788.          =of scan lines in the character cell and rounding to the
  789.          =nearest scan line.  Percentages are specified as negative
  790.          =values (or 0) in the range 0 through -100.  Specifying
  791.          =CursorStartLine -90 and CursorEndLine -100 requests a cursor
  792.          =that occupies the bottom 10 percent of the character cell.
  793.          =Most of the fields of the VIOCURSORINFO structure can be
  794.          =initialized based on the fields of the CONSOLE_CURSOR_INFO
  795.          =structure.
  796. .Sample  =Win32:
  797.          =  CONSOLE_CURSOR_INFO cursorInfo;
  798.          =  cursorInfo = { 1,  TRUE };
  799.          =  SetConsoleCursorInfo(hConsole, &cursorInfo);
  800.          =OS/2 for PowerPC:
  801.          =  VIOCURSORINFO cursorInfo;
  802.          =  cursorInfo = { -90, -100, 1, 0 };
  803.          =  VioSetCurType(&cursorInfo, hvps);
  804. .Prototyp=APIRET APIENTRY VioSetCurType
  805.          =                (PVIOCURSORINFO pvioCursorInfo, HVIO hvio);
  806. .Template=VioSetCurType($P2, $P1)
  807.          =VioSetCurType($P2, 0)
  808. .Command =IF $GAPPTYPE = '' THEN
  809.          =  SmDisplayDlg ('Will the migrated version be a VIO or PM based application?',
  810.          =                $GAPPTYPE, ~VIO | ~PM | ~Cancel)
  811.          =IF $GAPPTYPE = 'PM' THEN
  812.          =  DO
  813.          =    SmMigrateKeyword ($T1)
  814.          =    SmOutputNote = ('Modify logic dependent upon the value returned from VioSetCurType.')
  815.          =  END
  816.          =ELSE
  817.          =  DO
  818.          =    IF $GAPPTYPE = 'VIO' THEN
  819.          =      DO
  820.          =        SmMigrateKeyword ($T2)
  821.          =        SmOutputNote = ('Modify logic dependent upon the value returned from VioSetCurType.')
  822.          =      END
  823.          =  END
  824.          =TERMINATE
  825. .Refer   =VioSetCurType
  826. .Refer   =VioGetCurType
  827.  
  828. .Keyword =010 020 999 SetConsoleCursorPosition
  829. .SComment=Replace SetConsoleCursorPosition with VioSetCurPos.
  830. .LComment=Replace SetConsoleCursorPosition with VioSetCurPos.  The
  831.          =values of the third and fourth parameters of VioWrtCharStr
  832.          =must be extracted from the fourth parameter of
  833.          =WriteConsoleOutputCharacter.  If the migrated version will
  834.          =be a Presentation Manager application then this can be done
  835.          =by including OS2DEF.H and converting the Windows COORD type
  836.          =to a POINTL and specifying the y field of this structure as
  837.          =the third parameter and the x field as the fourth.  If the
  838.          =migrated version is to be a VIO application instead, then
  839.          =new variables will need to be declared and assigned.  Finaly
  840.          =WriteConsoleOutputCharacter returns 1 in order to indicate
  841.          =success and 0 in order to indicate an error.  VioWrtCharStr
  842.          =returns 0 in order to indicate success.  Any other value
  843.          =indicates an error.  Because of this it will be necessary to
  844.          =modify any logic which is dependent upon the return code.
  845. .Sample  =Win32:
  846.          =  COORD coord = { 10, 10 };
  847.          =  SetConsoleCursorPosition(hConsole, coord);
  848.          =OS/2 for PowerPC:
  849.          =  VioSetCurPos(10, 10, hvps);
  850. .Prototyp=APIRET APIENTRY VioSetCurPos (ULONG Row, ULONG Column, HVIO hvps);
  851. .Template=VioSetCurPos ($P2.y, $P2.x, $P1)
  852.          =VioSetCurPos ($P2.y, $P2.x, 0)
  853. .Command =IF $GAPPTYPE = '' THEN
  854.          =  SmDisplayDlg ('Will the migrated version be a VIO or PM based application?',
  855.          =                $GAPPTYPE, ~VIO | ~PM | ~Cancel)
  856.          =IF $GAPPTYPE = 'PM' THEN
  857.          =  DO
  858.          =    SmMigrateKeyword ($T1)
  859.          =    SmOutputNote = ('Modify logic dependent upon the value returned from VioSetCurPos.')
  860.          =  END
  861.          =ELSE
  862.          =  DO
  863.          =    IF $GAPPTYPE = 'VIO' THEN
  864.          =      DO
  865.          =        SmMigrateKeyword ($T2)
  866.          =        SmOutputNote = ('Modify logic dependent upon the value returned from VioSetCurPos.')
  867.          =      END
  868.          =  END
  869.          =TERMINATE
  870. .Refer   =VioSetCurPos
  871.  
  872. .Keyword =010 020 999 SetConsoleOutputCP
  873. .SComment=SetConsoleOutputCP with VioSetCp
  874. .LComment=The codepage must be a valid Workplace OS codepage.  Provide
  875.          =the proper HVIO for the third parameter of VioSetCp.
  876. .Sample  =Win32:
  877.          =  UINT     IDCodePage;
  878.          =  ...
  879.          =  BOOL     rc = SetConsoleOutputCP (IDCodePage);
  880.          =OS/2 for PowerPC:
  881.          =  HVIO      hvps;
  882.          =  APIRET    rc = VioCreatePS (&hvps, 25, 80, 1, 1, 0);
  883.          =  USHORT    CodePageID;
  884.          =  ...
  885.          =  APIRET    rc = VioSetCp (0, CodePageID, hvps);
  886.          =  ...
  887. .Prototyp=APIRET APIENTRY  VioSetCp (ULONG ulReserved,
  888.          =                           USHORT idCodePage, HVIO hvio);
  889. .Template=VioSetCp (0, $P1, )
  890.          =VioSetCp (0, $P1, 0)
  891. .Command =IF $GAPPTYPE = '' THEN
  892.          =  SmDisplayDlg ('Will the migrated version be a VIO or PM based application?',
  893.          =                $GAPPTYPE, ~VIO | ~PM | ~Cancel)
  894.          =IF $GAPPTYPE = 'PM' THEN
  895.          =  DO
  896.          =    SmMigrateKeyword ($T1)
  897.          =    SmOutputNote = ('Modify logic dependent upon the value returned from VioSetCp.')
  898.          =  END
  899.          =ELSE
  900.          =  DO
  901.          =    IF $GAPPTYPE = 'VIO' THEN
  902.          =      DO
  903.          =        SmMigrateKeyword ($T2)
  904.          =        SmOutputNote = ('Modify logic dependent upon the value returned from VioSetCp.')
  905.          =      END
  906.          =  END
  907.          =TERMINATE
  908. .Refer   =VioGetCp
  909. .Refer   =VioSetCp
  910. .Refer   =$GetConsoleOutputCP
  911.  
  912. .Keyword =010 020 999 SetConsoleScreenBufferSize
  913. .SComment=Replace SetConsoleScreenBufferSize with VioSetMode
  914. .LComment=The screen buffer size cannot be changed in Presentation
  915.          =Manager applications.  VioSetMode cannot be use in
  916.          =Presentation Manager applications.  Derive the values for
  917.          =the necessary fields in the VIOMODEINFO parameter of
  918.          =VioSetMode from the fields in the COORD parameter of
  919.          =SetConsoleScreenBufferSize.  The second parameter of
  920.          =VioSetMode will be 0 if the migrated version is to be a VIO
  921.          =application.  If it is a Presentation Manager application
  922.          =then the value of this parameter will be returned from a
  923.          =call to VioCreatePS.
  924. .Sample  =Win32:
  925.          =  CONSOLE_SCREEN_BUFFER_INFO buffer;
  926.          =  COORD coord;
  927.          =  GetConsoleScreenBufferInfo(hConsole, &buffer);
  928.          =  coord = buffer.dwSize;
  929.          =  coord.x -= 1;
  930.          =  coord.y -= 1;
  931.          =  SetConsoleScreenBufferSize(hConsole, &buffer);
  932.          =OS/2 for PowerPC:
  933.          =  VIOMODEINFO vioMode;
  934.          =  VioGetMode(&vioMode, hvps);
  935.          =  vioMode.row -= 1;
  936.          =  vioMode.col  -= 1;
  937.          =  VioSetMode(&vioMode, hvps);
  938. .Prototyp=APIRET APIENTRY VioSetMode (PVIOMODEINFO pvioModeInfo,
  939.          =                            HVIO hvio);
  940. .Template=VioSetMode ($P2, $P1)
  941.          =VioSetMode ($P2, 0)
  942. .Command =IF $GAPPTYPE = '' THEN
  943.          =  SmDisplayDlg ('Will the migrated version be a VIO or PM based application?',
  944.          =                $GAPPTYPE, ~VIO | ~PM | ~Cancel)
  945.          =IF $GAPPTYPE = 'PM' THEN
  946.          =  DO
  947.          =    SmMigrateKeyword ($T1)
  948.          =    SmOutputNote = ('Modify logic dependent upon the value returned from VioSetMode.')
  949.          =  END
  950.          =ELSE
  951.          =  DO
  952.          =    IF $GAPPTYPE = 'VIO' THEN
  953.          =      DO
  954.          =        SmMigrateKeyword ($T2)
  955.          =        SmOutputNote = ('Modify logic dependent upon the value returned from VioSetMode.')
  956.          =      END
  957.          =  END
  958.          =TERMINATE
  959. .Refer   =VioSetMode
  960. .Refer   =VioGetMode
  961. .Refer   =$GetConsoleScreenBufferInfo
  962.  
  963. .Keyword =030 030 999 SetConsoleTitle
  964. .SComment=Replace SetConsoleTitle with WinSetWindowText
  965. .LComment=WinSetWindowText is only appropriate for Presentation
  966.          =Manager applications.  Must query the frame window handle
  967.          =and provide this as the first parameter to WinSetWindowText.
  968. .Sample  =Win32:
  969.          =  char *pszTitle = "Sample Title";
  970.          =  SetConsoleTitle(hConsole, (LPTSTR) pszTitle);
  971.          =OS/2 for PowerPC:
  972.          =  HWND hwndFrame;
  973.          =  char *pszTitle = "Sample Title";
  974.          =  hwndFrame = WinQueryWindow(hwndClient, QW_PARENT);
  975.          =  WinSetWindowText(hwndFrame, pszTitle);
  976. .Prototyp=BOOL APIENTRY WinSetWindowText(HWND hwnd, PSZ pszText);
  977. .Template=WinSetWindowText(, $P1)
  978. .Refer   =WinSetWindowText
  979. .Refer   =$GetConsoleTile
  980.  
  981. .Keyword =010 030 999 SetConsoleWindowInfo
  982. .SComment=Replace SetConsoleWindowInfo with VioSetOrigin
  983. .LComment=The Row and Column parameters to VioSetOrigin specify
  984.          =the new absolute Row and Column.  These must be derived from
  985.          =the third parameter of SetConsoleWindowInfo.  The third
  986.          =parameter of VioSetOrigin will be 0 if the migrated version
  987.          =is to be a VIO application.  If it is a Presentation Manager
  988.          =application then the value of this parameter will be
  989.          =returned from a call to VioCreatePS.  Be sure to modify any
  990.          =logic which is dependent upon the value returned.
  991. .Sample  =Win32:
  992.          =  SMALL_RECT smRect = { 10, 0, 40, 79 };
  993.          =  SetConsoleWindowInfo(hConsole, TRUE, &smRect);
  994.          =OS/2 for PowerPC:
  995.          =  VioSetOrigin(10, 0, hvps);
  996. .Prototyp=APIRET APIENTRY VioSetOrigin(ULONG Row, ULONG Column,
  997.          =                             HVIO hvps);
  998. .Template=VioSetOrigin(, , $P1)
  999.          =VioSetOrigin(, , 0)
  1000. .Refer   =VioGetOrigin
  1001. .Refer   =$GetConsoleScreenBufferInfo
  1002.  
  1003. .Keyword =010 030 570 GetLocaleInfoW
  1004. .SComment=Replace with UniQueryLocaleInfo or UniQueryLocaleItem
  1005. .LComment=Replace with UniQueryLocaleInfo or UniQueryLocaleItem depending on the type
  1006.          =of information being requested. If the lcType parameter of the original call
  1007.          =is requesting information about time or date then UniQueryLocaleItem should
  1008.          =be used to replace this keyword, else UniQueryLocaleInfo should be used.
  1009.          =The proper migration for each of the keywords is as follows:
  1010.          =
  1011.          =UniQueryLocaleInfo
  1012.          =******************
  1013.          =A locale object handle obtained from a previous call to UniCreateLocaleObject
  1014.          =must be inserted for the first parameter. The second parameter must be the
  1015.          =address of a pointer to a UniLconv structure. The memory for the structure is
  1016.          =automatically allocated by the function call. It is the application's
  1017.          =responsibility to free the memory with the UniFreeLocaleInfo function when the
  1018.          =UniLconv structure is no longer needed. The member of the UniLconv structure
  1019.          =that contains the same information as the requested LCTYPE can be determined
  1020.          =with the mapping below:
  1021.          =
  1022.          =    LCTYPE                                 Structure Member
  1023.          =    ------                                 ----------------
  1024.          =    LOCALE_SDECIMAL                        UniChar *decimal_point
  1025.          =    LOCALE_STHOUSAND                       UniChar *thousands_sep
  1026.          =    LOCALE_SGROUPING                       UniChar *grouping
  1027.          =    LOCALE_SINTLSYMBOL                     UniChar *int_curr_symbol
  1028.          =    LOCALE_SCURRENCY                       UniChar *currency_symbol
  1029.          =    LOCALE_SMONDECIMALSEP                  UniChar *mon_decimal_point
  1030.          =    LOCALE_SMONTHOUSANDSEP                 UniChar *mon_thousands_sep
  1031.          =    LOCALE_SMONGROUPING                    UniChar *mon_grouping
  1032.          =    LOCALE_SPOSITIVESIGN                   UniChar *positive_sign
  1033.          =    LOCALE_SNEGATIVESIGN                   UniChar *negative_sign
  1034.          =    LOCALE_IINTLCURRDIGITS                 UniChar int_frac_digits
  1035.          =    LOCALE_ICURRDIGITS                     UniChar frac_digits
  1036.          =    LOCALE_IPOSSYMPRECEDES                 UniChar p_cs_precedes
  1037.          =    LOCALE_IPOSSEPBYSPACE                  UniChar p_sep_by_space
  1038.          =    LOCALE_INEGSYMPRECEDES                 UniChar n_cs_precedes
  1039.          =    LOCALE_INEGSEPBYSPACE                  UniChar n_sep_by_space
  1040.          =    LOCALE_IPOSSIGNPOSN                    UniChar p_sign_posn
  1041.          =    LOCALE_INEGSIGNPOSN                    UniChar n_sign_posn
  1042.          =
  1043.          =UniQueryLocaleItem
  1044.          =******************
  1045.          =A locale object handle obtained from a previous call to UniCreateLocaleObject
  1046.          =must be inserted for the first parameter. The second parameter must be the
  1047.          =informational item to be retrieved. The last parameter is the address of a
  1048.          =pointer that points to the start of the target string. The item constant name
  1049.          =to obtain the information requested with LCTYPE can be determined with the
  1050.          =mapping below:
  1051.          =
  1052.          =    LCTYPE                                 Item Constant Name
  1053.          =    ------                                 ------------------
  1054.          =    LOCALE_SSHORTDATE                      D_FMT
  1055.          =    LOCALE_STIMEFORMAT                     T_FMT
  1056.          =    LOCALE_S1159                           AM_STR
  1057.          =    LOCALE_S2359                           PM_STR
  1058.          =    LOCALE_SDAYNAME7                       DAY_1
  1059.          =    LOCALE_SDAYNAME1                       DAY_2
  1060.          =    LOCALE_SDAYNAME2                       DAY_3
  1061.          =    LOCALE_SDAYNAME3                       DAY_4
  1062.          =    LOCALE_SDAYNAME4                       DAY_5
  1063.          =    LOCALE_SDAYNAME5                       DAY_6
  1064.          =    LOCALE_SDAYNAME6                       DAY_7
  1065.          =    LOCALE_SABBREVDAYNAME7                 ABDAY_1
  1066.          =    LOCALE_SABBREVDAYNAME1                 ABDAY_2
  1067.          =    LOCALE_SABBREVDAYNAME2                 ABDAY_3
  1068.          =    LOCALE_SABBREVDAYNAME3                 ABDAY_4
  1069.          =    LOCALE_SABBREVDAYNAME4                 ABDAY_5
  1070.          =    LOCALE_SABBREVDAYNAME5                 ABDAY_6
  1071.          =    LOCALE_SABBREVDAYNAME6                 ABDAY_7
  1072.          =    LOCALE_SMONTHNAME1                     MON_1
  1073.          =    LOCALE_SMONTHNAME2                     MON_2
  1074.          =    LOCALE_SMONTHNAME3                     MON_3
  1075.          =    LOCALE_SMONTHNAME4                     MON_4
  1076.          =    LOCALE_SMONTHNAME5                     MON_5
  1077.          =    LOCALE_SMONTHNAME6                     MON_6
  1078.          =    LOCALE_SMONTHNAME7                     MON_7
  1079.          =    LOCALE_SMONTHNAME8                     MON_8
  1080.          =    LOCALE_SMONTHNAME9                     MON_9
  1081.          =    LOCALE_SMONTHNAME10                    MON_10
  1082.          =    LOCALE_SMONTHNAME11                    MON_11
  1083.          =    LOCALE_SMONTHNAME12                    MON_12
  1084.          =    LOCALE_SMONTHNAME13                    MON_13
  1085.          =    LOCALE_SABBREVMONTHNAME1               ABMON_1
  1086.          =    LOCALE_SABBREVMONTHNAME2               ABMON_2
  1087.          =    LOCALE_SABBREVMONTHNAME3               ABMON_3
  1088.          =    LOCALE_SABBREVMONTHNAME4               ABMON_4
  1089.          =    LOCALE_SABBREVMONTHNAME5               ABMON_5
  1090.          =    LOCALE_SABBREVMONTHNAME6               ABMON_6
  1091.          =    LOCALE_SABBREVMONTHNAME7               ABMON_7
  1092.          =    LOCALE_SABBREVMONTHNAME8               ABMON_8
  1093.          =    LOCALE_SABBREVMONTHNAME9               ABMON_9
  1094.          =    LOCALE_SABBREVMONTHNAME10              ABMON_10
  1095.          =    LOCALE_SABBREVMONTHNAME11              ABMON_11
  1096.          =    LOCALE_SABBREVMONTHNAME12              ABMON_12
  1097.          =    LOCALE_SABBREVMONTHNAME13              ABMON_13
  1098. .Sample  =Win32:
  1099.          =  GetLocaleInfoW(lcid, lcType, &lcData, StrSize);
  1100.          =OS/2 for PowerPC:
  1101.          =  UniQueryLocaleInfo(locale_object, &pLconv);
  1102.          =  UniQueryLocaleItem(locale_object, item, &pInfoItemStr);
  1103. .Prototyp=int UniQueryLocaleInfo(const LocaleObject locale_object, struct UniLconv** UniLconv_addr_ptr);
  1104.          =int UniQueryLocaleItem(const LocaleObject locale_object, nl_item item ,UniChar** info_item_addr_ptr);
  1105. .Template=UniQueryLocaleInfo( , )
  1106.          =UniQueryLocaleItem( , ?Item, )
  1107. .Command =IF $P2 = "locale_sshortdate" THEN
  1108.          =  ?Item = "D_FMT"
  1109.          =IF $P2 = "locale_stimeformat" THEN
  1110.          =  ?Item = "T_FMT"
  1111.          =IF $P2 = "locale_s1159" THEN
  1112.          =  ?Item = "AM_STR"
  1113.          =IF $P2 = "locale_s2359" THEN
  1114.          =  ?Item = "PM_STR"
  1115.          =IF $P2 = "locale_sdayname7" THEN
  1116.          =  ?Item = "DAY_1"
  1117.          =IF $P2 = "locale_sdayname1" THEN
  1118.          =  ?Item = "DAY_2"
  1119.          =IF $P2 = "locale_sdayname2" THEN
  1120.          =  ?Item = "DAY_3"
  1121.          =IF $P2 = "locale_sdayname3" THEN
  1122.          =  ?Item = "DAY_4"
  1123.          =IF $P2 = "locale_sdayname4" THEN
  1124.          =  ?Item = "DAY_5"
  1125.          =IF $P2 = "locale_sdayname5" THEN
  1126.          =  ?Item = "DAY_6"
  1127.          =IF $P2 = "locale_sdayname6" THEN
  1128.          =  ?Item = "DAY_7"
  1129.          =IF $P2 = "locale_sabbrevdayname7" THEN
  1130.          =  ?Item = "ABDAY_1"
  1131.          =IF $P2 = "locale_sabbrevdayname1" THEN
  1132.          =  ?Item = "ABDAY_2"
  1133.          =IF $P2 = "locale_sabbrevdayname2" THEN
  1134.          =  ?Item = "ABDAY_3"
  1135.          =IF $P2 = "locale_sabbrevdayname3" THEN
  1136.          =  ?Item = "ABDAY_4"
  1137.          =IF $P2 = "locale_sabbrevdayname4" THEN
  1138.          =  ?Item = "ABDAY_5"
  1139.          =IF $P2 = "locale_sabbrevdayname5" THEN
  1140.          =  ?Item = "ABDAY_6"
  1141.          =IF $P2 = "locale_sabbrevdayname6" THEN
  1142.          =  ?Item = "ABDAY_7"
  1143.          =IF $P2 = "locale_smonthname1" THEN
  1144.          =  ?Item = "MON_1"
  1145.          =IF $P2 = "locale_smonthname2" THEN
  1146.          =  ?Item = "MON_2"
  1147.          =IF $P2 = "locale_smonthname3" THEN
  1148.          =  ?Item = "MON_3"
  1149.          =if $p2 = "locale_smonthname4" then
  1150.          =  ?Item = "MON_4"
  1151.          =IF $P2 = "locale_smonthname5" THEN
  1152.          =  ?Item = "MON_5"
  1153.          =IF $P2 = "locale_smonthname6" THEN
  1154.          =  ?Item = "MON_6"
  1155.          =IF $P2 = "locale_smonthname7" THEN
  1156.          =  ?Item = "MON_7"
  1157.          =IF $P2 = "locale_smonthname8" THEN
  1158.          =  ?Item = "MON_8"
  1159.          =IF $P2 = "locale_smonthname9" THEN
  1160.          =  ?Item = "MON_9"
  1161.          =IF $P2 = "locale_smonthname10" THEN
  1162.          =  ?Item = "MON_10"
  1163.          =IF $P2 = "locale_smonthname11" THEN
  1164.          =  ?Item = "MON_11"
  1165.          =IF $P2 = "locale_smonthname12" THEN
  1166.          =  ?Item = "MON_12"
  1167.          =IF $P2 = "LOCALE_SMONTHNAME13" THEN
  1168.          =  ?Item = "MON_13"
  1169.          =IF $P2 = "locale_sabbrevmonthname1" THEN
  1170.          =  ?Item = "ABMON_1"
  1171.          =IF $P2 = "locale_sabbrevmonthname2" THEN
  1172.          =  ?Item = "ABMON_2"
  1173.          =IF $P2 = "locale_sabbrevmonthname3" THEN
  1174.          =  ?Item = "ABMON_3"
  1175.          =IF $P2 = "locale_sabbrevmonthname4" THEN
  1176.          =  ?Item = "ABMON_4"
  1177.          =IF $P2 = "locale_sabbrevmonthname5" THEN
  1178.          =  ?Item = "ABMON_5"
  1179.          =IF $P2 = "locale_sabbrevmonthname6" THEN
  1180.          =  ?Item = "ABMON_6"
  1181.          =IF $P2 = "locale_sabbrevmonthname7" THEN
  1182.          =  ?Item = "ABMON_7"
  1183.          =IF $P2 = "locale_sabbrevmonthname8" THEN
  1184.          =  ?Item = "ABMON_8"
  1185.          =IF $P2 = "locale_sabbrevmonthname9" THEN
  1186.          =  ?Item = "ABMON_9"
  1187.          =IF $P2 = "locale_sabbrevmonthname10" THEN
  1188.          =  ?Item = "ABMON_10"
  1189.          =IF $P2 = "locale_sabbrevmonthname11" THEN
  1190.          =  ?Item = "ABMON_11"
  1191.          =IF $P2 = "locale_sabbrevmonthname12" THEN
  1192.          =  ?Item = "ABMON_12"
  1193.          =IF $P2 = "LOCALE_SABBREVMONTHNAME13" THEN
  1194.          =  ?Item = "ABMON_13"
  1195.          =SmNoComment(ALL)
  1196.          =IF ?Item = "" THEN
  1197.          =  DO
  1198.          =    SmMigrateKeyword($T1)
  1199.          =    NOTE1 = "A locale object handle obtained from a previous call to UniCreateLocaleObject"
  1200.          =    NOTE2 = "must be inserted for the first parameter. The second parameter must be the"
  1201.          =    NOTE3 = "address of a pointer to a UniLconv structure. The memory for the structure is"
  1202.          =    NOTE4 = "automatically allocated by the function call. It is the application's"
  1203.          =    NOTE5 = "responsibility to free the memory with the UniFreeLocaleInfo function when the"
  1204.          =    NOTE6 = "UniLconv structure is no longer needed. The member of the UniLconv structure"
  1205.          =    NOTE7 = "that contains the same information as the requested lctype can be determined"
  1206.          =    NOTE8 = "with the mapping below:"
  1207.          =    NOTE9 = " "
  1208.          =    NOTE10 = "    lctype                                 Structure Member"
  1209.          =    NOTE11 = "    ------                                 ----------------"
  1210.          =    NOTE12 = "    locale_sdecimal                        UniChar *decimal_point"
  1211.          =    NOTE13 = "    locale_sthousand                       UniChar *thousands_sep"
  1212.          =    NOTE14 = "    locale_sgrouping                       UniChar *grouping"
  1213.          =    NOTE15 = "    locale_sintlsymbol                     UniChar *int_curr_symbol"
  1214.          =    NOTE16 = "    locale_scurrency                       UniChar *currency_symbol"
  1215.          =    NOTE17 = "    locale_smondecimalsep                  UniChar *mon_decimal_point"
  1216.          =    NOTE18 = "    locale_smonthousandsep                 UniChar *mon_thousands_sep"
  1217.          =    NOTE19 = "    locale_smongrouping                    UniChar *mon_grouping"
  1218.          =    NOTE20 = "    locale_spositivesign                   UniChar *positive_sign"
  1219.          =    NOTE21 = "    locale_snegativesign                   UniChar *negative_sign"
  1220.          =    NOTE22 = "    locale_iintlcurrdigits                 UniChar int_frac_digits"
  1221.          =    NOTE23 = "    locale_icurrdigits                     UniChar frac_digits"
  1222.          =    NOTE24 = "    locale_ipossymprecedes                 UniChar p_cs_precedes"
  1223.          =    NOTE25 = "    locale_ipossepbyspace                  UniChar p_sep_by_space"
  1224.          =    NOTE26 = "    locale_inegsymprecedes                 UniChar n_cs_precedes"
  1225.          =    NOTE27 = "    locale_inegsepbyspace                  UniChar n_sep_by_space"
  1226.          =    NOTE28 = "    locale_ipossignposn                    UniChar p_sign_posn"
  1227.          =    NOTE29 = "    locale_inegsignposn                    UniChar n_sign_posn"
  1228.          =    SmOutputNote(NOTE1)
  1229.          =    SmOutputNote(NOTE2)
  1230.          =    SmOutputNote(NOTE3)
  1231.          =    SmOutputNote(NOTE4)
  1232.          =    SmOutputNote(NOTE5)
  1233.          =    SmOutputNote(NOTE6)
  1234.          =    SmOutputNote(NOTE7)
  1235.          =    SmOutputNote(NOTE8)
  1236.          =    SmOutputNote(NOTE9)
  1237.          =    SmOutputNote(NOTE10)
  1238.          =    SmOutputNote(NOTE11)
  1239.          =    SmOutputNote(NOTE12)
  1240.          =    SmOutputNote(NOTE13)
  1241.          =    SmOutputNote(NOTE14)
  1242.          =    SmOutputNote(NOTE15)
  1243.          =    SmOutputNote(NOTE16)
  1244.          =    SmOutputNote(NOTE17)
  1245.          =    SmOutputNote(NOTE18)
  1246.          =    SmOutputNote(NOTE19)
  1247.          =    SmOutputNote(NOTE20)
  1248.          =    SmOutputNote(NOTE21)
  1249.          =    SmOutputNote(NOTE22)
  1250.          =    SmOutputNote(NOTE23)
  1251.          =    SmOutputNote(NOTE24)
  1252.          =    SmOutputNote(NOTE25)
  1253.          =    SmOutputNote(NOTE26)
  1254.          =    SmOutputNote(NOTE27)
  1255.          =    SmOutputNote(NOTE28)
  1256.          =    SmOutputNote(NOTE29)
  1257.          =  END
  1258.          =ELSE
  1259.          =  DO
  1260.          =    SmMigrateKeyword($T2)
  1261.          =    NOTE1 = "A locale object handle obtained from a previous call to UniCreateLocaleObject"
  1262.          =    NOTE2 = "must be inserted for the first parameter. The second parameter must be the"
  1263.          =    NOTE3 = "informational item to be retrieved. The last parameter is the address of a"
  1264.          =    NOTE4 = "pointer that points to the start of the target string."
  1265.          =    SmOutputNote(NOTE1)
  1266.          =    SmOutputNote(NOTE2)
  1267.          =    SmOutputNote(NOTE3)
  1268.          =    SmOutputNote(NOTE4)
  1269.          =  END
  1270.  
  1271. .Keyword =010 020 070 GetTimeFormatW
  1272. .SComment=Replace with UniStrftime
  1273. .LComment=Replace with UniStrftime. A locale object handle obtained from a previous
  1274.          =call to UniCreateLocaleObject must be inserted for the first parameter.
  1275.          =The format pictures from the original format string should be manually
  1276.          =migrated to conform to the correct format options (%) used in the new
  1277.          =format string. The new option specifiers that perform the same function
  1278.          =as the pictures of the original format string can be determined with the
  1279.          =mapping below:
  1280.          =
  1281.          =    Format Picture (Win32)                 Format Specifier (OS/2)
  1282.          =    ----------------------                 -----------------------
  1283.          =    h                                      Not Supported
  1284.          =    hh                                     %I
  1285.          =    H                                      Not Supported
  1286.          =    HH                                     %H, %T, or %R
  1287.          =    m                                      Not Supported
  1288.          =    mm                                     %M
  1289.          =    s                                      Not Supported
  1290.          =    ss                                     %S
  1291.          =    t                                      Not Supported
  1292.          =    tt                                     Not Supported
  1293. .Sample  =Win32:
  1294.          =  GetTimeFormatW(lcid, flags, &Time, &Format, &TimeStr, StrSize);
  1295.          =OS/2 for PowerPC:
  1296.          =  UniStrftime(locale_object, &TimeStr, StrSize, &Format, &Time);
  1297. .Prototyp=unsigned int UniStrftime(const localeObject locale_object, UniChar* ucs,
  1298.          =                         unsigned int strsize, const UniChar* format,
  1299.          =                         const struct tm* timeptr);
  1300. .Template=UniStrftime( , $P5, $P6, $P4, $P3)
  1301. .Command =SmMigrateKeyword($T1)
  1302.  
  1303. .Keyword =010 020 070 GetDateFormatW
  1304. .SComment=Replace with UniStrftime
  1305. .LComment=Replace with UniStrftime. A locale object handle obtained from a previous
  1306.          =call to UniCreateLocaleObject must be inserted for the first parameter.
  1307.          =The format pictures from the original format string should be manually
  1308.          =migrated to conform to the correct format options (%) used in the new
  1309.          =format string. The new option specifiers that perform the same function
  1310.          =as the pictures of the original format string can be determined with the
  1311.          =mapping below:
  1312.          =
  1313.          =    Format Picture (Win32)                 Format Specifier (OS/2)
  1314.          =    ----------------------                 -----------------------
  1315.          =    d                                      Not Supported
  1316.          =    dd                                     %d
  1317.          =    ddd                                    %a
  1318.          =    dddd                                   %A
  1319.          =    M                                      Not Supported
  1320.          =    MM                                     %m
  1321.          =    MMM                                    %b or %h
  1322.          =    MMMM                                   %B
  1323.          =    y                                      Not Supported
  1324.          =    yy                                     %y
  1325.          =    yyyy                                   %Y
  1326.          =    gg                                     Not Supported
  1327. .Sample  =Win32:
  1328.          =  GetDateFormatW(lcid, flags, &Date, &Format, &DateStr, StrSize);
  1329.          =OS/2 for PowerPC:
  1330.          =  UniStrftime(locale_object, &DateStr, StrSize, &Format, &Date);
  1331. .Prototyp=unsigned int UniStrftime(const localeObject locale_object, UniChar* ucs,
  1332.          =                         unsigned int strsize, const UniChar* format,
  1333.          =                         const struct tm* dateptr);
  1334. .Template=UniStrftime( , $P5, $P6, $P4, $P3)
  1335. .Command =SmMigrateKeyword($T1)
  1336.  
  1337. .Keyword =010 020 070 GetCurrencyFormatW
  1338. .SComment=Replace with UniStrfmon
  1339. .LComment=Replace with UniStrfmon. A locale object handle obtained from a previous
  1340.          =call to UniCreateLocaleObject must be inserted for the first parameter.
  1341.          =The CURRENCYFMT format structure and the flags from the original code should
  1342.          =be manually migrated to conform to the correct format options (%) used in
  1343.          =the new format string.  Extract the values from the value string in the
  1344.          =original code and insert them as arguments to the conversion specifiers in
  1345.          =the new format string.
  1346. .Sample  =Win32:
  1347.          =  GetCurrencyFormatW(lcid, flags, &Value, &Format, &CurrencyStr, StrSize);
  1348.          =OS/2 for PowerPC:
  1349.          =  UniStrftime(locale_object, &CurrencyStr, StrSize, &Format);
  1350. .Prototyp=int UniStrftime(const localeObject locale_object, UniChar* ucs,
  1351.          =                unsigned int strsize, const UniChar* format);
  1352. .Template=UniStrftime( , $P5, $P6, $P4)
  1353. .Command =SmMigrateKeyword($T1)
  1354.  
  1355. .Keyword =010 020 070 IsCharAlphaNumeric
  1356. .SComment=Replace with UniQueryAlnum
  1357. .LComment=Replace with UniQueryAlnum. A locale object handle created with
  1358.          =UniCreateLocaleObject must be supplied for the first parameter.
  1359. .Sample  =Win32:
  1360.          =  ans = IsCharAlphaNumberic(ch);
  1361.          =OS/2 for PowerPC:
  1362.          =  ans = UniQueryAlnum(locale_object, ch);
  1363. .Prototyp=int UniQueryAlnum(const LocaleObject locale_object, UniChar ch);
  1364. .Template=UniQueryAlnum( , $P1)
  1365. .Command =SmMigrateKeyword($T1)
  1366.  
  1367. .Keyword =010 020 070 IsCharAlpha
  1368. .SComment=Replace with UniQueryAlpha
  1369. .LComment=Replace with UniQueryAlpha. A locale object handle created with
  1370.          =UniCreateLocaleObject must be supplied for the first parameter.
  1371. .Sample  =Win32:
  1372.          =  ans = IsCharAlpha(ch);
  1373.          =OS/2 for PowerPC:
  1374.          =  ans = UniQueryAlpha(locale_object, ch);
  1375. .Prototyp=int UniQueryAlpha(const LocaleObject locale_object, UniChar ch);
  1376. .Template=UniQueryAlpha( ,$P1)
  1377. .Command =SmMigrateKeyword($T1)
  1378.  
  1379. .Keyword =010 020 070 IsCharLower
  1380. .SComment=Replace with UniQueryLower.
  1381. .LComment=Replace with UniQueryLower. A locale object handle created with
  1382.          =UniCreateLocaleObject must be supplied for the first parameter.
  1383. .Sample  =Win32:
  1384.          =  ans = IsCharLower(ch);
  1385.          =OS/2 for PowerPC:
  1386.          =  ans = UniQueryLower(locale_object, ch);
  1387. .Prototyp=int UniQueryLower(const LocaleObject locale_object, UniChar ch);
  1388. .Template=UniQueryLower( ,$P1)
  1389. .Command =SmMigrateKeyword($T1)
  1390.  
  1391. .Keyword =010 020 070 IsCharUpper
  1392. .SComment=Replace with UniQueryUpper.
  1393. .LComment=Replace with UniQueryUpper. A locale object handle created with
  1394.          =UniCreateLocaleObject must be supplied for the first parameter.
  1395. .Sample  =Win32:
  1396.          =  ans = IsCharUpper(ch);
  1397.          =OS/2 for PowerPC:
  1398.          =  ans = UniQueryUpper(locale_object, ch);
  1399. .Prototyp=int UniQueryUpper(const LocaleObject locale_object, UniChar ch);
  1400. .Template=UniQueryUpper( ,$P1)
  1401. .Command =SmMigrateKeyword($T1)
  1402.  
  1403. .Keyword =010 010 070 lstrcat
  1404. .SComment=Replace with UniStrcat
  1405. .LComment=Replace with UniStrcat
  1406. .Sample  =Win32:
  1407.          =  lstrcat(&str1, &str2);
  1408.          =OS/2 for PowerPC:
  1409.          =  UniStrcat(&str1, &str2);
  1410. .Prototyp=UniChar UniStrcat(UniChar* str1, const UniChar* str2);
  1411. .Template=UniStrcat($P1, $P2)
  1412. .Command =SmMigrateKeyword($T1)
  1413.  
  1414. .Keyword =010 010 070 lstrcmp
  1415. .SComment=Replace with UniStrcmp
  1416. .LComment=Replace with UniStrcmp
  1417. .Sample  =Win32:
  1418.          =  ans = lstrcmp(&str1, &str2);
  1419.          =OS/2 for PowerPC:
  1420.          =  ans = UniStrcmp(&str1, &str2);
  1421. .Prototyp=int UniStrcmp(UniChar* str1, const UniChar* str2);
  1422. .Template=UniStrcmp($P1, $P2)
  1423. .Command =SmMigrateKeyword($T1)
  1424.  
  1425. .Keyword =010 010 070 lstrcpy
  1426. .SComment=Replace with UniStrcpy
  1427. .LComment=Replace with UniStrcpy
  1428. .Sample  =Win32:
  1429.          =  lstrcpy(&str1, &str2);
  1430.          =OS/2 for PowerPC:
  1431.          =  UniStrcpy(&str1, &str2);
  1432. .Prototyp=UniChar* UniStrcpy(UniChar* str1, const UniChar* str2);
  1433. .Template=UniStrcpy($P1, $P2)
  1434. .Command =SmMigrateKeyword($T1)
  1435.  
  1436. .Keyword =010 010 070 lstrlen
  1437. .SComment=Replace with UniStrlen
  1438. .LComment=Replace with UniStrlen
  1439. .Sample  =Win32:
  1440.          =  lstrlen(&str);
  1441.          =OS/2 for PowerPC:
  1442.          =  UniStrlen(&str);
  1443. .Prototyp=unsigned int UniStrlen(const UniChar* str);
  1444. .Template=UniStrlen($P1)
  1445. .Command =SmMigrateKeyword($T1)
  1446.