/*
* FRAGMENT.H
* Fragmented File Generator Chapter 7
*
* Copyright (c)1993-1995 Microsoft Corporation, All Rights Reserved
*
* Kraig Brockschmidt, Microsoft
* Internet : kraigb@microsoft.com
* Compuserve: >INTERNET:kraigb@microsoft.com
*/
#ifndef _FRAGMENT_H_
#define _FRAGMENT_H_
#define INC_OLE2
#define CHAPTER7
#include <inole.h>
#include <string.h>
#define CSTREAMS 26
#define CCHPATHMAX 256
class CFragment
{
private:
BOOL m_fInitialized; //CoInitilize?
IMalloc *m_pIMalloc; //Task allocator
char *m_pch; //Char array (8 bits)
TCHAR *m_pszScratch; //Scratch space
UINT m_cch; //Stream size
UINT m_cStreams; //Stream count
TCHAR m_szFile[CCHPATHMAX]; //File in use
HCURSOR m_hCur; //Saved cursor
public:
CFragment::CFragment(void);
CFragment::~CFragment(void);
BOOL Init(void);
BOOL AllocCharArrays(void);
BOOL CreateFragmentedFile(void);
void FreeSpaceInFile(void);
void DefragmentFile(void);
private:
void StreamCreate(IStorage *, UINT, IStream **);
void Message(LPTSTR);
#ifndef WIN32
//Substitute for Win32 MoveFile under Win16
void MyMoveFile(char *, char *);
#endif
};
#endif //_FRAGMENT_H_