APP.H
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:4k
源码类别:

Windows编程

开发平台:

Visual C++

  1. //---------------------------------------------------------------------------
  2. // App.h
  3. //---------------------------------------------------------------------------
  4. // Sample spr program
  5. //---------------------------------------------------------------------------
  6. // (C) Copyright 1992-1997 by Microsoft Corporation.  All rights reserved.
  7. //
  8. // THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF 
  9. // ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO 
  10. // THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A 
  11. // PARTICULAR PURPOSE.
  12. //---------------------------------------------------------------------------
  13. //---------------------------------------------------------------------------
  14. // Globals
  15. //---------------------------------------------------------------------------
  16. extern class CApp *g_papp;
  17. extern char       *g_pszCodeFile;
  18. extern char       *g_pszRecFile;
  19. extern int         g_mode;
  20. #define MODE_NORMAL     0
  21. #define MODE_PLAYBACK   1
  22. #define MODE_RECORD     2
  23. //---------------------------------------------------------------------------
  24. // Events on client of App
  25. //---------------------------------------------------------------------------
  26. BOOL    AppEvt_Pause(int pause);
  27. BOOL    AppEvt_FQueryTerminate(BOOL fPromptUser);
  28. void    AppEvt_NewGame();
  29. BOOL    AppEvt_DlgProc(  HWND hwnd, UINT msg, WPARAM wp, LPARAM lp);
  30. LRESULT AppEvt_PSWndProc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp);
  31. //---------------------------------------------------------------------------
  32. // App class
  33. //---------------------------------------------------------------------------
  34. class CApp : public ISpruuidsApp, public IOleComponent, public COleAuto
  35.   {
  36. public:
  37.   // *** Constructor / Descructor ***
  38.   static HRESULT CreateApp(HINSTANCE hinst);
  39.   CApp(HINSTANCE hinst);
  40.   ~CApp();
  41.   // *** IUnknown methods ***
  42.   STDMETHOD(QueryInterface)(REFIID riid, void** ppvObj);
  43.   STDMETHOD_(ULONG, AddRef)(void);
  44.   STDMETHOD_(ULONG, Release)(void);
  45.   inline IUnknown  *GetUnknown(void)  {return (ISpruuidsApp *)this;};
  46.   inline IDispatch *GetDispatch(void) {return (ISpruuidsApp *)this;};
  47.   // *** IDispatch methods ***
  48.   DECLARE_STANDARD_DISPATCH();
  49.   // Overrides required by COleAuto:
  50.   virtual ITypeInfo **GetTinfoClsAddr(void) { return &m_ptinfoCls; };
  51.   virtual ITypeInfo **GetTinfoIntAddr(void) { return &m_ptinfoInt; };
  52.   virtual HRESULT GetTypeLibInfo(HINSTANCE *phinstOut, const GUID **pplibidOut, 
  53.                                  SHORT *pwMajLibOut, SHORT *pwMinLibOut,
  54.                                  const CLSID **ppclsidOut, const IID **ppiidOut,
  55.                                  ITypeLib ***ppptlOut);
  56.   virtual IDispatch *GetPrimary() {return this->GetDispatch(); };
  57.   // *** SpruuidsApp methods ****
  58.   STDMETHOD(get_Application)(ISpruuidsApp** lppaReturn);
  59.   STDMETHOD(get_Parent)(ISpruuidsApp** lppaReturn);
  60.   STDMETHOD(Quit)(void);
  61.   STDMETHOD(get_Game)(IGame** lppaReturn);
  62.   // *** IComponent methods ***
  63.   STDMETHOD_(BOOL, FPreTranslateMessage)(MSG* pMsg);
  64.   STDMETHOD_(void, OnEnterState)(ULONG uStateID, BOOL fEnter);
  65.   STDMETHOD_(void, OnAppActivate)(BOOL fActive, DWORD dwOtherThreadID);
  66.   STDMETHOD_(void, OnLoseActivation)(void);
  67.   STDMETHOD_(BOOL, FDoIdle)(DWORD grfidlef);
  68.   STDMETHOD_(BOOL, FContinueMessageLoop)(ULONG uReason, void* pvLoopData);
  69.   STDMETHOD_(BOOL, FQueryTerminate)(BOOL fPromptUser);
  70.   STDMETHOD_(void, Terminate)(void);
  71.   // *** Public methods ***
  72.   HRESULT MainMsgLoop(void);
  73.   HRESULT LoadGame(void);
  74.   void    CloseGame(void);
  75.   void    CausePause(int p);
  76.   HRESULT CheckTypeInfo(UINT itinfo);
  77.   HRESULT Playback(void);
  78.   // *** Public member variables ***
  79.   class CMsgLoop *m_pmsgloop;
  80.   class CGame    *m_pgame;
  81.   HWND       m_hwndDlg;
  82.   HWND       m_hwndPS;
  83.   HWND       m_hwndStat;
  84.   HWND       m_hwndAbout;
  85.   HINSTANCE  m_hinst;
  86.   DWORD      m_idcomp;
  87.   BOOL       m_fRegisteredComp;
  88.   ULONG      m_cmodal;
  89.   BOOL       m_fQuit;
  90.   ULONG      m_cref;
  91.   ITypeInfo *m_ptinfoCls;   // This OLE Automation object's coclass   TypeInfo
  92.   ITypeInfo *m_ptinfoInt;   // This OLE Automation object's interface TypeInfo
  93.   // DEBUG info
  94.   static HRESULT s_hr;
  95.   #define SIG_App 'App '
  96.   DECLARE_SIGNATURE(SIG_App);
  97.   };
  98. //--- EOF -------------------------------------------------------------------