Leaked source code of windows server 2003
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.

88 lines
2.3 KiB

  1. //+-------------------------------------------------------------------------
  2. //
  3. // Microsoft Windows
  4. // Copyright (C) Microsoft Corporation, 1992 - 1993.
  5. //
  6. // File: dmsgfltr.cpp
  7. //
  8. // Contents: This tiny message filter implementation exists to prevent
  9. // the eating of mouse messages by applications during drag and
  10. // drop. The default behavior of the call control is to eat these
  11. // messages. And application can specify whatever behavior they
  12. // want with messages.
  13. //
  14. // Classes: CDragMessageFilter
  15. //
  16. // History: dd-mmm-yy Author Comment
  17. // 03-Apr-94 Ricksa Created
  18. //
  19. //--------------------------------------------------------------------------
  20. #ifndef _DMSGFLTR_H_
  21. #define _DMSGFLTR_H_
  22. //+-------------------------------------------------------------------------
  23. //
  24. // Class: CDragMessageFilter
  25. //
  26. // Purpose: Handles special message filter processing req'd by Drag
  27. // and Drop.
  28. //
  29. // Interface: QueryInterface - get new interface
  30. // AddRef - bump reference count
  31. // Release - dec reference count
  32. // HandleInComingCall - handle new RPC
  33. // RetryRejectedCall - whether to retry rejected
  34. // MessagePending - handle message during RPC
  35. //
  36. // History: dd-mmm-yy Author Comment
  37. // 03-Apr-94 Ricksa Created
  38. //
  39. //--------------------------------------------------------------------------
  40. class CDragMessageFilter : public CPrivAlloc, public IMessageFilter
  41. {
  42. public:
  43. CDragMessageFilter(void);
  44. ~CDragMessageFilter(void);
  45. HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void **ppvObject);
  46. ULONG STDMETHODCALLTYPE AddRef(void);
  47. ULONG STDMETHODCALLTYPE Release(void);
  48. DWORD STDMETHODCALLTYPE HandleInComingCall(
  49. DWORD dwCallType,
  50. HTASK htaskCaller,
  51. DWORD dwTickCount,
  52. LPINTERFACEINFO lpInterfaceInfo);
  53. DWORD STDMETHODCALLTYPE RetryRejectedCall(
  54. HTASK htaskCallee,
  55. DWORD dwTickCount,
  56. DWORD dwRejectType);
  57. DWORD STDMETHODCALLTYPE MessagePending(
  58. HTASK htaskCallee,
  59. DWORD dwTickCount,
  60. DWORD dwPendingType);
  61. static HRESULT Create(IMessageFilter **pMF);
  62. private:
  63. // Previous message filter
  64. LPMESSAGEFILTER _lpMessageFilterPrev;
  65. // Reference count on our object
  66. LONG _crefs;
  67. };
  68. #endif // _DMSGFLTR_H_