⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 square.h

📁 英文版的 想要的话可以下载了 为大家服务
💻 H
字号:
/*
 * SQUARE.H
 * Square Automation Object Chapter 15
 *
 * Definitions, classes, and prototypes for an EXE that
 * provides Square objects to automation controllers
 *
 * Copyright (c)1993-1995 Microsoft Corporation, All Rights Reserved
 *
 * Kraig Brockschmidt, Microsoft
 * Internet  :  kraigb@microsoft.com
 * Compuserve:  >INTERNET:kraigb@microsoft.com
 */


#ifndef _SQUARE_H_
#define _SQUARE_H_

//Get the object definitions
#define INC_AUTOMATION
#define CHAPTER15
#define GUIDS_FROM_TYPELIB
#include <inole.h>
#include <math.h>

#include "isquare.h"

LRESULT APIENTRY MainWndProc(HWND, UINT, WPARAM, LPARAM);

class CApp
    {
    friend LRESULT APIENTRY MainWndProc(HWND, UINT, WPARAM, LPARAM);

    protected:
        HINSTANCE       m_hInst;            //WinMain parameters
        HINSTANCE       m_hInstPrev;
        LPSTR           m_pszCmdLine;
        UINT            m_nCmdShow;

        BOOL            m_fInitialized;     //Did CoInitialize work?
        LPCLASSFACTORY  m_pIClassFactory;   //Our class factory
        DWORD           m_dwRegCO;          //Registration key

    public:
        CApp(HINSTANCE, HINSTANCE, LPSTR, UINT);
        ~CApp(void);
        BOOL Init(void);
    };

typedef CApp *PCApp;


void ObjectDestroyed(void);


class CSquareClassFactory : public IClassFactory
    {
    protected:
        ULONG           m_cRef;
        HWND            m_hWnd;         //Main window (hidden)
        HINSTANCE       m_hInst;        //Module instance

    public:
        CSquareClassFactory(HWND, HINSTANCE);
        ~CSquareClassFactory(void);

        //IUnknown members
        STDMETHODIMP         QueryInterface(REFIID, PPVOID);
        STDMETHODIMP_(ULONG) AddRef(void);
        STDMETHODIMP_(ULONG) Release(void);

        //IClassFactory members
        STDMETHODIMP  CreateInstance(LPUNKNOWN, REFIID, PPVOID);
        STDMETHODIMP  LockServer(BOOL);
    };

typedef CSquareClassFactory *PCSquareClassFactory;


//Information for the window in which we draw
LRESULT APIENTRY SquareWndProc(HWND, UINT, WPARAM, LPARAM);

#define SZCLASSSQUARE       TEXT("SquareWindow")


class CSquare : public ISphereSquare
    {
    friend LRESULT APIENTRY SquareWndProc(HWND, UINT, WPARAM
        , LPARAM);

    protected:
        ULONG           m_cRef;         //Object reference count
        HWND            m_hWnd;         //Drawing window.

        ITypeInfo      *m_pITypeInfo;   //Loaded
        IUnknown       *m_pIUnkDisp;    //From CreateStdDispatch

        //Plotting variables
        double          m_cRadius;      //Edge length
        double          m_dTheta;       //Angle
        double          m_dDeclin;      //Declination

        int             m_xOrg, m_yOrg; //Origin point
        int             m_cx, m_cy;     //Window size
        int             m_xPos, m_yPos; //Window position

        COLORREF        m_crLinePos;    //Positive line color
        HPEN            m_hPenPos;      //Positive line pen

        COLORREF        m_crLineNeg;    //Negative line color
        HPEN            m_hPenNeg;      //Negative line pen

        COLORREF        m_crBack;       //Background color

    public:
        CSquare(void);
        ~CSquare(void);

        BOOL        Init(HWND, HINSTANCE);
        void        CreatePens(BOOL, BOOL);
        void        Draw(HDC);

        //IUnknown Members
        STDMETHODIMP         QueryInterface(REFIID, PPVOID);
        STDMETHODIMP_(ULONG) AddRef(void);
        STDMETHODIMP_(ULONG) Release(void);

        //ISphereSquare members
        STDMETHODIMP_(double) get_Radius(void);
        STDMETHODIMP_(void) put_Radius(double);
        STDMETHODIMP_(double) get_Theta(void);
        STDMETHODIMP_(void) put_Theta(double);
        STDMETHODIMP_(double) get_Declination(void);
        STDMETHODIMP_(void) put_Declination(double);
        STDMETHODIMP_(long) get_BackColor(void);
        STDMETHODIMP_(void) put_BackColor(long);
        STDMETHODIMP_(long) get_LineColorPositive(void);
        STDMETHODIMP_(void) put_LineColorPositive(long);
        STDMETHODIMP_(long) get_LineColorNegative(void);
        STDMETHODIMP_(void) put_LineColorNegative(long);
        STDMETHODIMP_(void) Draw(void);
        STDMETHODIMP_(void) SetCenterPoint(int, int);
        STDMETHODIMP_(void) ShowWindow(int);
        STDMETHODIMP_(void) SetWindowPosition(int, int);
        STDMETHODIMP_(void) SetWindowSize(int, int);
    };

typedef CSquare *PCSquare;


#define CBSQUAREWNDEXTRA        sizeof(PCSquare)
#define SQWL_STRUCTURE          0

//Handy constant
#define PI 3.1415926535

#endif //_SQUARE_H_

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -