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.

101 lines
2.8 KiB

  1. //+---------------------------------------------------------------------------
  2. //
  3. // Microsoft Windows
  4. // Copyright (C) Microsoft Corporation, 1997.
  5. //
  6. // File: O N C O M M A N D . H
  7. //
  8. // Contents: Command handler prototypes for the InvokeCommand code.
  9. //
  10. // Notes:
  11. //
  12. // Author: jeffspr 4 Nov 1997
  13. //
  14. //----------------------------------------------------------------------------
  15. #pragma once
  16. #ifndef _ONCOMMAND_H_
  17. #define _ONCOMMAND_H_
  18. //---[ Typedefs ]-------------------------------------------------------------
  19. // Typedefs for the functions that we'll GetProcAddress from the
  20. // NetWare config DLL
  21. typedef HRESULT (WINAPI *FOLDERONCOMMANDPROC)(
  22. LPITEMIDLIST *,
  23. ULONG,
  24. HWND,
  25. LPSHELLFOLDER);
  26. struct FoldOnCommandParams
  27. {
  28. FOLDERONCOMMANDPROC pfnfocp;
  29. LPITEMIDLIST * apidl;
  30. ULONG cidl;
  31. HWND hwndOwner;
  32. LPSHELLFOLDER psf;
  33. HINSTANCE hInstFolder;
  34. };
  35. typedef struct FoldOnCommandParams FOLDONCOMMANDPARAMS;
  36. typedef struct FoldOnCommandParams * PFOLDONCOMMANDPARAMS;
  37. HRESULT HrCommandHandlerThread(
  38. FOLDERONCOMMANDPROC pfnCommandHandler,
  39. LPITEMIDLIST * apidl,
  40. ULONG cidl,
  41. HWND hwndOwner,
  42. LPSHELLFOLDER psf);
  43. DWORD WINAPI FolderCommandHandlerThreadProc(LPVOID lpParam);
  44. //---[ Internal versions of the command handlers ]----------------------------
  45. //
  46. // These are called by the standard handler functions once they've retrieved
  47. // the actual data from the pidls. They are also called from those pieces
  48. // of the code that keep the native data, such as the tray
  49. //
  50. //
  51. //---[ Standard command handler functions ]----------------------------------
  52. //
  53. // These are the pidl based functions that are called from the shell folder
  54. //
  55. HRESULT HrFolderCommandHandler(
  56. UINT uiCommand,
  57. LPITEMIDLIST * apidl,
  58. ULONG cidl,
  59. HWND hwndOwner,
  60. LPCMINVOKECOMMANDINFO lpici,
  61. LPSHELLFOLDER psf);
  62. // All of these below handle individual commands
  63. //
  64. HRESULT HrOnCommandInvoke(
  65. LPITEMIDLIST * apidl,
  66. ULONG cidl,
  67. HWND hwndOwner,
  68. LPSHELLFOLDER psf);
  69. HRESULT HrOnCommandProperties(
  70. LPITEMIDLIST * apidl,
  71. ULONG cidl,
  72. HWND hwndOwner,
  73. LPSHELLFOLDER psf);
  74. HRESULT HrOnCommandDelete(
  75. LPITEMIDLIST * apidl,
  76. ULONG cidl,
  77. HWND hwndOwner,
  78. LPSHELLFOLDER psf);
  79. HRESULT HrOnCommandCreateShortcut(
  80. LPITEMIDLIST * apidl,
  81. ULONG cidl,
  82. HWND hwndOwner,
  83. LPSHELLFOLDER psf);
  84. #endif // _ONCOMMAND_H_