ALOCFREE.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: demoAllocFree(HANDLE hConOld, HANDLE *hConOut) *
* *
* PURPOSE: demonstrate FreeConsole & AllocConsole. Free the console *
* and allocate a new one *
* *
* INPUT: the current console output handle and a temporary 'scratch' *
* console handle *
*********************************************************************/

void demoAllocFree(HANDLE hConOld, HANDLE *hConOut)
{
BOOL bSuccess;

setConTitle(__FILE__);
myPuts(hConOld, "Let's free the current console with FreeConsole. It will\n"
"disappear for 3 seconds, then we'll allocate a new one.\n"
"with AllocConsole. Hit return to continue...");
myGetchar();
bSuccess = FreeConsole();
PERR(bSuccess, "FreeConsole");
Sleep(3000);
bSuccess = AllocConsole();
PERR(bSuccess, "AllocConsole");
*hConOut = GetStdHandle(STD_OUTPUT_HANDLE);
/* set our console text attribute */
bSuccess = SetConsoleTextAttribute(*hConOut, FOREGROUND_CYAN);
PERR(bSuccess, "SetConsoleTextAttribute");
myPuts(*hConOut, "This is a new console that we've allocated with AllocConsole.");
Sleep(2000);
/* must refresh the screen since we've replaced the console */
showConAPIs(*hConOut);
return;
}