CONTITLE.C
/******************************************************************************\ 
*       This is a part of the Microsoft Source Code Samples.  
*       Copyright 1993 - 1998 Microsoft Corporation. 
*       All rights reserved.  
*       This source code is only intended as a supplement to  
*       Microsoft Development Tools and/or WinHelp documentation. 
*       See these sources for detailed information regarding the  
*       Microsoft samples programs. 
\******************************************************************************/ 
 
#include <windows.h> 
#include <stdio.h> 
#include "console.h" 
 
/******************************************************************** 
* FUNCTION: demoGetTitle(HANDLE hConOut)                            * 
*                                                                   * 
* PURPOSE: demonstrate GetConsoleTitle and SetConsoleTitle. Read and* 
*          display the console title, then set the console title.   * 
*                                                                   * 
* INPUT: handle to write to                                         * 
********************************************************************/ 
 
void demoGetTitle(HANDLE hConOut) 
{ 
  BOOL bSuccess; 
  CHAR szTitleBuf[256]; /* buffer for the current console title */ 
  CHAR szTemp[256]; 
  HANDLE hStdIn; /* standard input handle */ 
  DWORD dwStdInMode; /* standard input handle mode */ 
  DWORD dwBytesRead; 
 
  setConTitle(__FILE__); 
  hStdIn = GetStdHandle(STD_INPUT_HANDLE); 
  PERR(hStdIn != INVALID_HANDLE_VALUE, "GetStdHandle"); 
  /* save the console mode */ 
  bSuccess = GetConsoleMode(hStdIn, &dwStdInMode); 
  PERR(bSuccess, "GetConsoleMode"); 
  /* turn on line input mode so we can enter a string. */ 
  /* when turning on ENABLE_LINE_INPUT, you MUST also turn on */ 
  /* ENABLE_ECHO_INPUT. */ 
  bSuccess = SetConsoleMode(hStdIn, dwStdInMode | ENABLE_LINE_INPUT | 
      ENABLE_ECHO_INPUT); 
  PERR(bSuccess, "SetConsoleMode"); 
  myPuts(hConOut, "Let's get the console title with GetConsoleTitle."); 
  /* get the console title */ 
  dwBytesRead = GetConsoleTitle(szTitleBuf, sizeof(szTitleBuf)); 
  PERR(dwBytesRead, "GetConsoleTitle"); 
  sprintf(szTemp, "The console title is: %s", szTitleBuf); 
  myPuts(hConOut, szTemp); 
  myPuts(hConOut, "\nNow let's set a new console title with SetConsoleTitle."); 
  myPuts(hConOut, "\nEnter a new console title:"); 
  bSuccess = ReadFile(hStdIn, szTitleBuf, 256, &dwBytesRead, NULL); 
  PERR(bSuccess, "ReadFile"); 
  if (dwBytesRead > 2) /* did the user type any chars before hitting return? */ 
    { 
    /* null terminate the string - less two for cr/lf */ 
    szTitleBuf[dwBytesRead - 2] = 0; 
    bSuccess = SetConsoleTitle(szTitleBuf); 
    PERR(bSuccess, "SetConsoleTitle"); 
    } 
  /* restore the console title to the original mode */ 
  bSuccess = SetConsoleMode(hStdIn, dwStdInMode); 
  PERR(bSuccess, "SetConsoleMode"); 
  myPuts(hConOut, "\nHit enter to return..."); 
  myGetchar(); 
  return; 
}