Dlapi.h
上传用户:tj_dwf
上传日期:2020-11-17
资源大小:215k
文件大小:5k
源码类别:

RichEdit

开发平台:

Visual C++

  1. /******************************************************************************
  2. *
  3. *
  4. * Notepad2
  5. *
  6. * Dlapi.h
  7. *   Definitions for Directory Listing APIs
  8. *
  9. * See Readme.txt for more information about this source code.
  10. * Please send me your comments to this work.
  11. *
  12. * See License.txt for details about distribution and modification.
  13. *
  14. *                                              (c) Florian Balmer 1996-2010
  15. *                                                  florian.balmer@gmail.com
  16. *                                               http://www.flos-freeware.ch
  17. *
  18. *
  19. ******************************************************************************/
  20. #ifndef _DLAPI_H_
  21. #define _DLAPI_H_
  22. #ifdef __cplusplus
  23. extern L"C" { // C-Declarations
  24. #endif //__cplusplus
  25. //==== DirList ================================================================
  26. //==== LV_ITEMDATA Structure ==================================================
  27. typedef struct tagLV_ITEMDATA // lvid
  28. {
  29.   LPITEMIDLIST  pidl; // Item Id
  30.   LPSHELLFOLDER lpsf; // Parent IShellFolder Interface
  31. } LV_ITEMDATA, *LPLV_ITEMDATA;
  32. //==== DlInit() ===============================================================
  33. BOOL DirList_Init(HWND,LPCWSTR);
  34. //==== DlDestroy() ============================================================
  35. BOOL DirList_Destroy(HWND);
  36. //==== DlStartIconThread() ====================================================
  37. BOOL DirList_StartIconThread(HWND);
  38. //==== DlTerminateIconThread() ================================================
  39. BOOL DirList_TerminateIconThread(HWND);
  40. //==== DlFill() ===============================================================
  41. #define DL_FOLDERS      32
  42. #define DL_NONFOLDERS   64
  43. #define DL_INCLHIDDEN  128
  44. #define DL_ALLOBJECTS  (32|64|128)
  45. int DirList_Fill(HWND,LPCWSTR,DWORD,LPCWSTR,BOOL,BOOL,int,BOOL);
  46. //==== DlIconThread() =========================================================
  47. DWORD WINAPI DirList_IconThread(LPVOID);
  48. //==== DlGetDispInfo() ========================================================
  49. BOOL DirList_GetDispInfo(HWND,LPARAM,BOOL);
  50. //==== DlDeleteItem() =========================================================
  51. BOOL DirList_DeleteItem(HWND,LPARAM);
  52. //==== DlSort() ===============================================================
  53. #define DS_NAME     0
  54. #define DS_SIZE     1
  55. #define DS_TYPE     2
  56. #define DS_LASTMOD  3
  57. BOOL DirList_Sort(HWND,int,BOOL);
  58. //==== DlGetItem() ============================================================
  59. #define DLE_NONE 0
  60. #define DLE_DIR  1
  61. #define DLE_FILE 2
  62. #define DLI_FILENAME 1
  63. #define DLI_DISPNAME 2
  64. #define DLI_TYPE     4
  65. #define DLI_ALL (1|2|4)
  66. typedef struct tagDLITEM // dli
  67. {
  68.   UINT mask;
  69.   WCHAR szFileName[MAX_PATH];
  70.   WCHAR szDisplayName[MAX_PATH];
  71.   int  ntype;
  72. } DLITEM, *LPDLITEM;
  73. DirList_GetItem(HWND,int,LPDLITEM);
  74. //==== DlGetItemEx() ==========================================================
  75. int DirList_GetItemEx(HWND,int,LPWIN32_FIND_DATA);
  76. //==== DlPropertyDlg() ========================================================
  77. BOOL DirList_PropertyDlg(HWND,int);
  78. //==== DlDoDragDrop() =========================================================
  79. void DirList_DoDragDrop(HWND,LPARAM);
  80. //==== DlGetLongPathName() ====================================================
  81. BOOL DirList_GetLongPathName(HWND,LPWSTR);
  82. //==== DlSelectItem() =========================================================
  83. BOOL DirList_SelectItem(HWND,LPCWSTR,LPCWSTR);
  84. //==== DlCreateFilter() and DlMatchFilter() ===================================
  85. #define DL_FILTER_BUFSIZE 128
  86. typedef struct tagDL_FILTER { //dlf
  87.   int   nCount;
  88.   WCHAR  tFilterBuf[DL_FILTER_BUFSIZE];
  89.   WCHAR  *pFilter  [DL_FILTER_BUFSIZE];
  90.   BOOL  bExcludeFilter;
  91. } DL_FILTER, *PDL_FILTER;
  92. void DirList_CreateFilter(PDL_FILTER,LPCWSTR,BOOL);
  93. BOOL DirList_MatchFilter(LPSHELLFOLDER,LPCITEMIDLIST,PDL_FILTER);
  94. //==== DriveBox ===============================================================
  95. BOOL DriveBox_Init(HWND);
  96. int  DriveBox_Fill(HWND);
  97. BOOL DriveBox_GetSelDrive(HWND,LPWSTR,int,BOOL);
  98. BOOL DriveBox_SelectDrive(HWND,LPCWSTR);
  99. BOOL DriveBox_PropertyDlg(HWND);
  100. LRESULT DriveBox_DeleteItem(HWND,LPARAM);
  101. LRESULT DriveBox_GetDispInfo(HWND,LPARAM);
  102. //==== ItemID =================================================================
  103. //==== IL_Next() ==============================================================
  104. #define _IL_Next(pidl) ((LPITEMIDLIST)(((LPBYTE)(pidl)) + pidl->mkid.cb))
  105. //==== IL_Create() ============================================================
  106. LPITEMIDLIST IL_Create(LPMALLOC,
  107.                        LPCITEMIDLIST,UINT,
  108.                        LPCITEMIDLIST,UINT);
  109. //==== IL_GetSize() ===========================================================
  110. UINT IL_GetSize(LPCITEMIDLIST);
  111. //==== IL_GetDisplayName() ====================================================
  112. BOOL IL_GetDisplayName(LPSHELLFOLDER,
  113.                        LPCITEMIDLIST,
  114.                        DWORD,LPWSTR,int);
  115. #ifdef __cplusplus
  116. }
  117. #endif //__cplusplus
  118. #endif // _DLAPI_H_
  119. ///   End of Dlapi.h   \