|
|
1.1 ! root 1: /**************************************************************************** ! 2: ! 3: MANDEL.H -- Constants and function definitions for MANDEL.C ! 4: ! 5: Copyright (C) 1990 Microsoft Corporation. ! 6: ! 7: ****************************************************************************/ ! 8: ! 9: #define IDM_ABOUT 100 ! 10: #define IDM_ZOOMIN 101 ! 11: #define IDM_ZOOMOUT 105 ! 12: #define IDM_TOP 106 ! 13: #define IDM_REDRAW 107 ! 14: #define IDM_EXIT 108 ! 15: #define IDM_CONTINUOUS 109 ! 16: ! 17: #define IDM_1LINE 200 ! 18: #define IDM_2LINES 201 ! 19: #define IDM_4LINES 202 ! 20: #define IDM_8LINES 203 ! 21: #define IDM_16LINES 204 ! 22: #define IDM_32LINES 205 ! 23: ! 24: #define ID_OK 304 ! 25: ! 26: #define WM_DOSOMEWORK (WM_USER+0) ! 27: #define WM_PAINTLINE (WM_USER+1) ! 28: ! 29: #define LBID_SERVERS 102 ! 30: ! 31: #define WIDTH 300 ! 32: #define HEIGHT 300 ! 33: ! 34: #define MAXLINES 32 ! 35: ! 36: #ifndef MAXPATHLEN ! 37: #define MAXPATHLEN 260 ! 38: #endif ! 39: ! 40: #define MAXID 64 // saved zoomin operations ! 41: ! 42: #define MAX_BUFSIZE (HEIGHT * sizeof(long) * MAXLINES) ! 43: ! 44: extern int iLines; ! 45: ! 46: // A table of servers we know about ! 47: typedef struct _svr_table { ! 48: char name[16+1]; // name of remote server ! 49: int hfPipe; // RPC handle ! 50: int iStatus; // status of connection ! 51: int cPicture; // picture id for this line ! 52: DWORD dwLine; // line we're drawing ! 53: int cLines; // lines in this chunk ! 54: } svr_table; ! 55: ! 56: // if RPC, this data is defined within the IDL file ! 57: #ifndef RPC ! 58: typedef struct _cpoint { ! 59: double real; ! 60: double imag; ! 61: } CPOINT; ! 62: ! 63: typedef CPOINT * PCPOINT; ! 64: ! 65: typedef struct _LONGRECT { /* rcl */ ! 66: long xLeft; ! 67: long yBottom; ! 68: long xRight; ! 69: long yTop; ! 70: } LONGRECT; ! 71: ! 72: typedef LONGRECT *PLONGRECT; ! 73: ! 74: typedef struct _LINEBUF { ! 75: WORD adw[MAX_BUFSIZE]; ! 76: } LINEBUF; ! 77: ! 78: typedef LINEBUF * PLINEBUF; ! 79: #endif ! 80: ! 81: extern svr_table SvrTable[]; // the table ! 82: extern int SvrTableSz; // # of objects in it ! 83: extern int cPictureID; // current picture; index to table ! 84: ! 85: extern RECT rcHistory[]; ! 86: int APIENTRY WinMain(HANDLE, HANDLE, LPSTR, int); ! 87: BOOL InitApplication(HANDLE); ! 88: BOOL InitInstance(HANDLE, int); ! 89: LONG APIENTRY MainWndProc(HWND, UINT, UINT, LONG); ! 90: BOOL APIENTRY About(HWND, UINT, UINT, LONG); ! 91: BOOL APIENTRY SaveAsDlgProc(HWND, UINT, UINT, LONG); ! 92: void DoSomeWork(HWND, BOOL); ! 93: void IncPictureID(void); ! 94: ! 95: void InitHistogram(void); ! 96: void CountHistogram(void); ! 97: void CalcHistogram(int x, ! 98: int y, ! 99: DWORD dwIter, ! 100: DWORD dwThreshold); ! 101: #define NCOLORS 11 ! 102: ! 103: extern int fContinueZoom; ! 104: extern int fZoomIn; ! 105: extern int iHistMaxI; ! 106: extern int iHistMaxJ; ! 107: extern int Histogram[4][4][NCOLORS+1]; ! 108: extern int ColorCount[4][4]; ! 109: extern BOOL fRectDefined; ! 110: ! 111: extern char pszFail[]; ! 112: ! 113: BOOL InitRemote( HWND ); ! 114: void PollForServers( void ); ! 115: void CheckPoll( void ); ! 116: BOOL CheckDrawStatus( HWND); ! 117: void RetryConnections( void ); ! 118: void SetNewCalc( CPOINT cptUL, double dPrecision, RECT rcl); ! 119: BOOL CheckDrawingID( int ); ! 120: ! 121: extern BOOL fLocalWork; ! 122: extern BOOL fRemoteWork; ! 123: ! 124: ! 125: // Status of connection to server ! 126: ! 127: #define SS_DISCONN 0 ! 128: #define SS_IDLE 1 ! 129: #define SS_READPENDING 2 ! 130: #define SS_PAINTING 3 ! 131: #define SS_LOCAL 4 ! 132: ! 133: ! 134: // Buffer routines ! 135: ! 136: BOOL TakeDrawBuffer( void ); ! 137: PDWORD GetDrawBuffer( void ); ! 138: void FreeDrawBuffer( void ); ! 139: void ReturnDrawBuffer( void ); ! 140: DWORD QueryThreshold( void ); ! 141: ! 142: int GetServerCount( void ); ! 143: void GetServerName( int, char *); ! 144: ! 145: ! 146: extern RECT rcZoom; ! 147: extern double dPrec; ! 148: ! 149: #define MINPREC 5.0E-9 ! 150: #define MAXPREC 5.0E-3 ! 151: ! 152: // if RPC version, this routine is defined within the IDL file ! 153: #ifndef RPC ! 154: void MandelCalc( PCPOINT pcptLL, ! 155: PLONGRECT prcDraw, ! 156: double precision, ! 157: DWORD ulThreshold, ! 158: PLINEBUF pbBuf); ! 159: #endif ! 160: ! 161: typedef struct _calcbuf { ! 162: LONGRECT rclDraw; ! 163: double dblPrecision; ! 164: DWORD dwThreshold; ! 165: CPOINT cptLL; ! 166: } CALCBUF; ! 167: ! 168: short calcmand(double dreal, double dimag, short maxit); ! 169: ! 170: typedef struct _mults { ! 171: double rs; /* real squared */ ! 172: double is; /* imag squared */ ! 173: double ri; /* real * imaginary */ ! 174: } mults;
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.