Source code of Windows XP (NT5)
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.

68 lines
2.3 KiB

  1. //--------------------------------------------------------------
  2. // Copyright (C) Microsoft Corporation, 1996 - 1999
  3. //
  4. // File: dragdrop.h
  5. //
  6. // Contents: The header for dragdrop.c
  7. //
  8. // History: Feb-26-98 xiaohs created
  9. //
  10. //--------------------------------------------------------------
  11. #ifndef DRAGDROP_H
  12. #define DRAGDROP_H
  13. #ifdef __cplusplus
  14. extern "C" {
  15. #endif
  16. //==============================================================================
  17. // The following are used by Drag-Drop functionalities
  18. //==============================================================================
  19. #undef IToClass
  20. // macro to get from interface pointer to class pointer
  21. #define _IOffset(class, itf) ((UINT)(ULONG_PTR)&(((class *)0)->itf))
  22. #define IToClass(class, itf, pitf) ((class *)(((LPBYTE)pitf)-_IOffset(class, itf)))
  23. #define ARRAYSIZE(a) (sizeof(a)/sizeof(a[0]))
  24. HRESULT CDataObj_CreateInstance(DWORD dwCount,
  25. LPWSTR *prgwszFileName,
  26. BYTE **prgBlob,
  27. DWORD *prgdwSize,
  28. IDataObject **ppdtobj);
  29. HRESULT CDropSource_CreateInstance(IDropSource **ppdsrc);
  30. HRESULT CertMgrUIStartDragDrop(LPNMLISTVIEW pvmn,
  31. HWND hwndControl,
  32. DWORD dwExportFormat,
  33. BOOL fExportChain);
  34. BOOL GetFileNameAndContent(LPNMLISTVIEW pvmn,
  35. HWND hwndControl,
  36. DWORD dwExportFormat,
  37. BOOL fExportChain,
  38. DWORD *pdwCount,
  39. LPWSTR **pprgszFileName,
  40. BYTE ***pprgBlob,
  41. DWORD **pprgdwSize);
  42. BOOL FreeFileNameAndContent( DWORD dwCount,
  43. LPWSTR *prgwszFileName,
  44. BYTE **prgBlob,
  45. DWORD *prgdwSize);
  46. #ifdef __cplusplus
  47. } // Balance extern "C" above
  48. #endif
  49. #endif //DRAGDROP_H