QUAD.H
资源名称:MSDN_VC98.zip [点击查看]
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:4k
源码类别:
Windows编程
开发平台:
Visual C++
- //+---------------------------------------------------------------------------
- //
- // Microsoft Windows
- // Copyright 1992 - 1997 Microsoft Corporation.
- //
- // File: quad.h
- //
- // Contents: class definitions for the Quadrant Engine
- //
- // Classes: CQuadrantEngineCF
- // CQuadrantEngine
- //
- // Functions:
- //
- // History: 4-14-94 stevebl Created
- //
- //----------------------------------------------------------------------------
- #ifndef __QUAD_H__
- #define __QUAD_H__
- #ifdef __cplusplus
- #include <frcngn.h>
- #include <frhost.h>
- #include <qudcln.h>
- #include <qudngn.h>
- //+---------------------------------------------------------------------------
- //
- // Class: CQuadrantEngineCF
- //
- // Purpose: the class factory for the Quadrant Engine
- //
- // Interface: CQuadrantEngineCF -- constructor
- // ~CQuadrantEngineCF -- destructor
- // QueryInterface -- retrieves an interface on the cf
- // AddRef -- incrementes referencec count
- // Release -- decrements reference count
- // CreateInstance -- creates a Quadrant Engine object
- // LockServer -- keeps cf from being deleted on release
- //
- // History: 4-14-94 stevebl Created
- //
- //----------------------------------------------------------------------------
- class CQuadrantEngineCF : public IClassFactory
- {
- public:
- CQuadrantEngineCF();
- ~CQuadrantEngineCF();
- HRESULT STDMETHODCALLTYPE QueryInterface(REFIID, LPVOID *);
- ULONG STDMETHODCALLTYPE AddRef(void);
- ULONG STDMETHODCALLTYPE Release(void);
- HRESULT STDMETHODCALLTYPE CreateInstance(LPUNKNOWN, REFIID, LPVOID*);
- HRESULT STDMETHODCALLTYPE LockServer(BOOL);
- protected:
- ULONG _cRef;
- };
- //+---------------------------------------------------------------------------
- //
- // Class: CQuadrantEngine
- //
- // Purpose: implementation for the quadrant engine object
- //
- // Interface: QueryInterface -- retrieves an interface from the engine
- // AddRef -- increments refcount
- // Release -- decrements refcount
- // Init -- initializes quadrant engine
- // UseBoundingBoxes -- tells engine to use bounding boxes
- // SetGraphSize -- tells engine the size of its graph
- // Start -- starts engine
- // Stop -- stops engine
- // Reset -- resets engine
- // GraphicsThread -- entry point for the graphics thread
- // PlotAreaSlowly -- plots a rectangle
- // Subdivide -- recursively plots a quadrant
- // Initialize -- private method to initialize c++ object
- // CQuadrantEngine -- constructor
- // ~CQuadrantEngine -- destructor
- //
- // History: 4-14-94 stevebl Created
- //
- //----------------------------------------------------------------------------
- class CQuadrantEngine : public IQuadrantEngine
- {
- public:
- // IUnknown methods
- HRESULT STDMETHODCALLTYPE QueryInterface(REFIID, LPVOID *);
- ULONG STDMETHODCALLTYPE AddRef(void);
- ULONG STDMETHODCALLTYPE Release(void);
- // IQuadrantEngine methods
- HRESULT STDMETHODCALLTYPE Init(
- IQuadrantClient *pqc,
- IFractalHost *pfh);
- HRESULT STDMETHODCALLTYPE UseBoundingBoxes(BOOL fFlag);
- HRESULT STDMETHODCALLTYPE SetGraphSize(
- unsigned int uWidth,
- unsigned int uHeight);
- HRESULT STDMETHODCALLTYPE Start(void);
- HRESULT STDMETHODCALLTYPE Stop(void);
- HRESULT STDMETHODCALLTYPE Reset(void);
- // Methods that aren't part of any interface
- DWORD GraphicsThread(void);
- void PlotAreaSlowly(
- int iXLow,
- int iYLow,
- int iXHigh,
- int iYHigh);
- void Subdivide(
- int iXLow,
- int iYLow,
- int iXHigh,
- int iYHigh);
- BOOL Initialize(void);
- CQuadrantEngine();
- ~CQuadrantEngine();
- private:
- BOOL _fUseBoundingBoxes;
- ULONG _cRef;
- unsigned _uWidth, _uHeight;
- HANDLE _hRestart, _hRunning;
- HANDLE _hEngine;
- DWORD _dwThreadId;
- IFractalHost * _pfh;
- IQuadrantClient * _pqc;
- };
- extern HINSTANCE ghinst;
- extern ULONG gcRef, gcLock;
- #endif //__cplusplus
- #endif //__QUAD_H__