MALLOC1.H

/* 
* MALLOC1.H
* C Malloc Demonstration Chapter 2
*
* Copyright (c)1993-1995 Microsoft Corporation, All Rights Reserved
*
* Kraig Brockschmidt, Microsoft
* Internet : kraigb@microsoft.com
* Compuserve: >INTERNET:kraigb@microsoft.com
*/


#ifndef _MALLOC1_H_
#define _MALLOC1_H_

#include <inole.h>
#include <malloc.h>

//Menu Resource ID and Commands
#define IDR_MENU 1


#define IDM_COGETMALLOC 100
#define IDM_RELEASE 101
#define IDM_ALLOC 102
#define IDM_FREE 103
#define IDM_REALLOC 104
#define IDM_GETSIZE 105
#define IDM_DIDALLOC 106
#define IDM_HEAPMINIMIZE 107
#define IDM_EXIT 108



//MALLOC1.CPP
LRESULT APIENTRY MallocWndProc(HWND, UINT, WPARAM, LPARAM);

//How many allocations we'll perform
#define CALLOCS 10


typedef struct App
{
HINSTANCE m_hInst; //WinMain parameters
HINSTANCE m_hInstPrev;
UINT m_nCmdShow;

HWND m_hWnd; //Main window handle
IMalloc *m_pIMalloc; //From CoGetMalloc

BOOL m_fAllocated; //We have allocations?
ULONG m_rgcb[CALLOCS]; //Sizes to allocate
LPVOID m_rgpv[CALLOCS]; //Allocated pointers
} APP, *PAPP;


PAPP App_Create(HINSTANCE, HINSTANCE, UINT);
void App_Destroy(PAPP);
BOOL App_Init(PAPP);
void App_GetAllocator(PAPP);
BOOL App_HaveAllocator(PAPP);
BOOL App_DoAllocations(PAPP, BOOL);
BOOL App_HaveAllocations(PAPP);
void App_FreeAllocations(PAPP, BOOL);
void App_Message(PAPP, LPTSTR);



#define CBWNDEXTRA sizeof(PAPP)
#define MALLOCWL_STRUCTURE 0


#endif //_MALLOC1_H_