Windows NT 4.0 source code leak
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

89 lines
1.8 KiB

4 years ago
  1. /***
  2. *
  3. * Copyright (C) 1993-1994, Microsoft Corporation. All Rights Reserved.
  4. * Information Contained Herein Is Proprietary and Confidential.
  5. *
  6. * File:
  7. * hello.h
  8. *
  9. * Purpose:
  10. * Contains the following:
  11. *
  12. * * The CHello class
  13. * - Creation
  14. * - Creating the standard dispatch object
  15. * - Deletion
  16. * - Reference count maintenance
  17. * - IUnknown methods
  18. * * The CHelloCF class, which creates instances of CHello.
  19. * - Creation
  20. * - Deletion
  21. * - Reference count maintenance
  22. * - IUnknown methods
  23. *
  24. *****************************************************************************/
  25. #include "common.h"
  26. #include "clsid.h"
  27. #include "hellopro.h"
  28. #pragma warning(disable:4355)
  29. /* The CHello class.
  30. *
  31. */
  32. CLASS CHello : public IUnknown
  33. {
  34. public:
  35. CHello();
  36. ~CHello();
  37. static CHello FAR* Create();
  38. void ProcessCommand(WPARAM wparam); // Process a Windows WM_COMMAND message
  39. // Standard OLE stuff.
  40. STDMETHOD(QueryInterface)(REFIID riid, void FAR* FAR* ppv);
  41. STDMETHOD_(ULONG, AddRef)(void);
  42. STDMETHOD_(ULONG, Release)(void);
  43. HWND m_hwnd; // The window to which we draw.
  44. BSTR m_bstrHelloMsg;
  45. private:
  46. ULONG m_refs; // Reference count.
  47. IUnknown FAR* m_disp_interface; // Pointer to the standard dispatch object.
  48. CHelloPro FAR* m_prog_interface; // What a programmer sees.
  49. };
  50. /* The class factory for CHello.
  51. *
  52. */
  53. CLASS CHelloCF : public IClassFactory
  54. {
  55. public:
  56. CHelloCF();
  57. static IClassFactory FAR* Create();
  58. STDMETHOD(QueryInterface)(REFIID riid, void FAR* FAR* ppv);
  59. STDMETHOD_(ULONG, AddRef)(void);
  60. STDMETHOD_(ULONG, Release)(void);
  61. STDMETHOD(CreateInstance)( IUnknown FAR* punkOuter,
  62. REFIID riid,
  63. void FAR* FAR* ppv);
  64. STDMETHOD(LockServer)(BOOL fLock);
  65. private:
  66. ULONG m_refs;
  67. };