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.

84 lines
1.8 KiB

  1. /*++
  2. Copyright (C) Microsoft Corporation, 1995 - 1999
  3. All rights reserved.
  4. Module Name:
  5. dragdrop.hxx
  6. Abstract:
  7. print queue drag & drop related stuff
  8. Author:
  9. Lazar Ivanov (LazarI) 10-Mar-2000
  10. Revision History:
  11. --*/
  12. #ifndef _DRAGDROP_HXX
  13. #define _DRAGDROP_HXX
  14. /////////////////////////////////////////////////////
  15. // forward declarations
  16. //
  17. class TPrinter;
  18. /////////////////////////////////////////////////////
  19. // IPrintQueueDT - print queue drop target interface
  20. //
  21. #undef INTERFACE
  22. #define INTERFACE IPrintQueueDT
  23. DECLARE_INTERFACE_(IPrintQueueDT, IUnknown)
  24. {
  25. //////////////////
  26. // IUnknown
  27. //
  28. STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID * ppvObj) PURE;
  29. STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  30. STDMETHOD_(ULONG,Release)(THIS) PURE;
  31. ///////////////////
  32. // IPrintQueueDT
  33. //
  34. STDMETHOD(RegisterDragDrop)(THIS_ HWND hwndLV, TPrinter *pPrinter) PURE;
  35. STDMETHOD(RevokeDragDrop)(THIS) PURE;
  36. };
  37. /////////////////////////////////////////////////////
  38. // common drag & drop APIs & data structures
  39. //
  40. namespace DragDrop
  41. {
  42. // print job info
  43. struct JOBINFO
  44. {
  45. // UI related
  46. int iItem;
  47. HWND hwndLV;
  48. // not UI related
  49. TCHAR szPrinterName[kPrinterBufMax];
  50. DWORD dwJobID;
  51. };
  52. // print job clipboard format (JOBINFO)
  53. extern CLIPFORMAT g_cfPrintJob;
  54. // registers the clipboard format for a print job (JOBINFO)
  55. void RegisterPrintJobClipboardFormat();
  56. // creates IDataObject & IDropSource for a printer job object
  57. HRESULT CreatePrintJobObject(const JOBINFO &jobInfo, REFIID riid, void **ppv);
  58. // instantiate a IPrintQueueDT implementation
  59. HRESULT CreatePrintQueueDT(REFIID riid, void **ppv);
  60. } // namespace DragDrop
  61. #endif // ndef _DRAGDROP_HXX