// stdafx.h : include file for standard system include files,
//  or project specific include files that are used frequently, but
//      are changed infrequently
//

#if !defined(AFX_STDAFX_H__7473DF18_56E3_11D3_922A_00A0C9E87F14__INCLUDED_)
#define AFX_STDAFX_H__7473DF18_56E3_11D3_922A_00A0C9E87F14__INCLUDED_

#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000

#define VC_EXTRALEAN		// Exclude rarely-used stuff from Windows headers

#include <afxwin.h>         // MFC core and standard components
#include <afxext.h>         // MFC extensions
#include <afxdisp.h>        // MFC OLE automation classes
#ifndef _AFX_NO_AFXCMN_SUPPORT
#include <afxcmn.h>			// MFC support for Windows Common Controls
#endif // _AFX_NO_AFXCMN_SUPPORT

// library header file includes
#include<iostream.h>
#include<fstream.h>
#include<math.h>
#include<ctype.h>

// progress structure
typedef struct tagRESULTS{
	CString activity_string;	// used for currently active work in dialog list box
	CString file_error_string;	// used for file error messages
	int progress;				// used for progress bar update (not called at present!)
} RESULTS;

// parameter argument structure for the worker thread
typedef struct tagTHREADPARAMS{	
	int num_to_fac;
	int circuit_input_value;
	CString circuit_file_name;
	CString circuit_input_select;
	CString out_file_name;
	ifstream fin;		// file streams
	ofstream fout;
	CView* pView;		// ptr to the view 
	CWnd* pWnd;				// ptr to mainframe window
	tagRESULTS* res;	// ptr to the intermediate thread results  
} THREADPARAMS;

// my classes header files
#include "complex.h"
#include "bstate.h"
#include "calgos.h"
#include "circuit.h"
#include "cmodexp.h"
#include "gate.h"
#include "gates.h"
#include "hilbert.h"
#include "qalgos.h"

// user defined message ids 
#define WM_USER_THREAD_UPDATE_PROGRESS 0x04FF
#define WM_USER_THREAD_UPDATE_BOX 0x04FE
#define WM_USER_THREAD_FILE_ERROR 0x04FD

//{{AFX_INSERT_LOCATION}}
// Microsoft Developer Studio will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_STDAFX_H__7473DF18_56E3_11D3_922A_00A0C9E87F14__INCLUDED_)
