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.

195 lines
7.9 KiB

  1. #ifndef _IDLCOMM_H_
  2. #define _IDLCOMM_H_
  3. #ifndef _SHELLP_H_
  4. #include <shellp.h>
  5. #endif
  6. //===========================================================================
  7. // HIDA -- IDList Array handle
  8. //===========================================================================
  9. STDAPI_(void) IDLData_InitializeClipboardFormats(void);
  10. STDAPI_(LPITEMIDLIST) HIDA_ILClone(HIDA hida, UINT i);
  11. STDAPI_(LPITEMIDLIST) HIDA_FillIDList(HIDA hida, UINT i, LPITEMIDLIST pidl);
  12. #define DTID_HDROP 0x00000001L
  13. #define DTID_HIDA 0x00000002L
  14. #define DTID_NETRES 0x00000004L
  15. #define DTID_CONTENTS 0x00000008L
  16. #define DTID_FDESCA 0x00000010L
  17. #define DTID_OLEOBJ 0x00000020L
  18. #define DTID_OLELINK 0x00000040L
  19. #define DTID_FD_LINKUI 0x00000080L
  20. #define DTID_FDESCW 0x00000100L
  21. #define DTID_PREFERREDEFFECT 0x00000200L
  22. #define DTID_EMBEDDEDOBJECT 0x00000400L
  23. //
  24. // This macro checks if pdtgt is a subclass of CIDLDropTarget.
  25. // (HACK: We assume nobody overrides QueryInterface).
  26. //
  27. STDAPI_(BOOL) DoesDropTargetSupportDAD(IDropTarget *pdtgt);
  28. //
  29. // IDs for non-default drag & drop menu
  30. //
  31. #define DDIDM_COPY 1
  32. #define DDIDM_MOVE 2
  33. #define DDIDM_LINK 3
  34. #define DDIDM_SCRAP_COPY 4
  35. #define DDIDM_SCRAP_MOVE 5
  36. #define DDIDM_DOCLINK 6
  37. #define DDIDM_CONTENTS_COPY 7
  38. #define DDIDM_CONTENTS_MOVE 8
  39. #define DDIDM_SYNCCOPY 9
  40. #define DDIDM_SYNCCOPYTYPE 10
  41. #define DDIDM_CONTENTS_LINK 11
  42. #define DDIDM_CONTENTS_DESKCOMP 12
  43. #define DDIDM_CONTENTS_DESKIMG 13
  44. #define DDIDM_OBJECT_COPY 14
  45. #define DDIDM_OBJECT_MOVE 15
  46. #define DDIDM_CONTENTS_DESKURL 16
  47. #define DDIDM_EXTFIRST 0x1000
  48. #define DDIDM_EXTLAST 0x7fff
  49. #define MK_FAKEDROP 0x8000 // Real keys being held down?
  50. //===========================================================================
  51. // HDKA
  52. //===========================================================================
  53. //
  54. // Struct: ContextMenuInfo:
  55. //
  56. // This data structure is used by FileView_DoContextMenu (and its private
  57. // function, _AppendMenuItems) to handler multiple context menu handlers.
  58. //
  59. // History:
  60. // 02-25-93 SatoNa Created
  61. //
  62. typedef struct { // cmi
  63. IContextMenu *pcm;
  64. UINT idCmdFirst;
  65. UINT idCmdMax;
  66. DWORD dwCompat;
  67. CLSID clsid;
  68. } ContextMenuInfo;
  69. //------------------------------------------------------------------------
  70. // Dynamic class array
  71. //
  72. STDAPI_(int) DCA_AppendClassSheetInfo(HDCA hdca, HKEY hkeyProgID, LPPROPSHEETHEADER ppsh, IDataObject * pdtobj);
  73. //===========================================================================
  74. // HDXA
  75. //===========================================================================
  76. typedef HDSA HDXA; // hdma
  77. #define HDXA_Create() ((HDXA)DSA_Create(SIZEOF(ContextMenuInfo), 4))
  78. STDAPI_(UINT) HDXA_AppendMenuItems(
  79. HDXA hdxa, IDataObject * pdtobj,
  80. UINT nKeys, HKEY *ahkeyClsKeys,
  81. LPCITEMIDLIST pidlFolder,
  82. HMENU hmenu, UINT uInsert,
  83. UINT idCmdFirst, UINT idCmdLast,
  84. UINT fFlags,
  85. HDCA hdca);
  86. STDAPI_(UINT) HDXA_AppendMenuItems2(HDXA hdxa, IDataObject *pdtobj,
  87. UINT nKeys, HKEY *ahkeyClsKeys,
  88. LPCITEMIDLIST pidlFolder,
  89. QCMINFO* pqcm,
  90. UINT fFlags,
  91. HDCA hdca,
  92. IUnknown* pSite);
  93. STDAPI HDXA_LetHandlerProcessCommandEx(HDXA hdxa, LPCMINVOKECOMMANDINFOEX pici, UINT_PTR * pidCmd);
  94. STDAPI HDXA_GetCommandString(HDXA hdxa, UINT_PTR idCmd, UINT wFlags, UINT * pwReserved, LPSTR pszName, UINT cchMax);
  95. STDAPI_(void) HDXA_DeleteAll(HDXA hdxa);
  96. STDAPI_(void) HDXA_Destroy(HDXA hdxa);
  97. //
  98. // Clipboard Format for IDLData object.
  99. //
  100. #define ICFHDROP 0
  101. #define ICFFILENAME 1
  102. #define ICFNETRESOURCE 2
  103. #define ICFFILECONTENTS 3
  104. #define ICFFILEGROUPDESCRIPTORA 4
  105. #define ICFFILENAMEMAPW 5
  106. #define ICFFILENAMEMAP 6
  107. #define ICFHIDA 7
  108. #define ICFOFFSETS 8
  109. #define ICFPRINTERFRIENDLYNAME 9
  110. #define ICFPRIVATESHELLDATA 10
  111. #define ICFHTML 11
  112. #define ICFFILENAMEW 12
  113. #define ICFFILEGROUPDESCRIPTORW 13
  114. #define ICFPREFERREDDROPEFFECT 14
  115. #define ICFPERFORMEDDROPEFFECT 15
  116. #define ICFPASTESUCCEEDED 16
  117. #define ICFSHELLURL 17
  118. #define ICFINDRAGLOOP 18
  119. #define ICF_DRAGCONTEXT 19
  120. #define ICF_TARGETCLSID 20
  121. #define ICF_EMBEDDEDOBJECT 21
  122. #define ICF_OBJECTDESCRIPTOR 22
  123. #define ICF_NOTRECYCLABLE 23
  124. #define ICFLOGICALPERFORMEDDROPEFFECT 24
  125. #define ICF_BRIEFCASE 25
  126. #define ICF_UNICODETEXT 26
  127. #define ICF_TEXT 27
  128. #define ICF_DROPEFFECTFOLDERLIST 28
  129. #define ICF_AUTOPLAYHIDA 29
  130. #define ICF_MAX 30
  131. EXTERN_C CLIPFORMAT g_acfIDLData[];
  132. #define g_cfNetResource g_acfIDLData[ICFNETRESOURCE]
  133. #define g_cfHIDA g_acfIDLData[ICFHIDA]
  134. #define g_cfOFFSETS g_acfIDLData[ICFOFFSETS]
  135. #define g_cfPrinterFriendlyName g_acfIDLData[ICFPRINTERFRIENDLYNAME]
  136. #define g_cfFileNameA g_acfIDLData[ICFFILENAME]
  137. #define g_cfFileContents g_acfIDLData[ICFFILECONTENTS]
  138. #define g_cfFileGroupDescriptorA g_acfIDLData[ICFFILEGROUPDESCRIPTORA]
  139. #define g_cfFileGroupDescriptorW g_acfIDLData[ICFFILEGROUPDESCRIPTORW]
  140. #define g_cfFileNameMapW g_acfIDLData[ICFFILENAMEMAPW]
  141. #define g_cfFileNameMapA g_acfIDLData[ICFFILENAMEMAP]
  142. #define g_cfPrivateShellData g_acfIDLData[ICFPRIVATESHELLDATA]
  143. #define g_cfHTML g_acfIDLData[ICFHTML]
  144. #define g_cfFileNameW g_acfIDLData[ICFFILENAMEW]
  145. #define g_cfPreferredDropEffect g_acfIDLData[ICFPREFERREDDROPEFFECT]
  146. #define g_cfPerformedDropEffect g_acfIDLData[ICFPERFORMEDDROPEFFECT]
  147. #define g_cfLogicalPerformedDropEffect g_acfIDLData[ICFLOGICALPERFORMEDDROPEFFECT]
  148. #define g_cfPasteSucceeded g_acfIDLData[ICFPASTESUCCEEDED]
  149. #define g_cfShellURL g_acfIDLData[ICFSHELLURL]
  150. #define g_cfInDragLoop g_acfIDLData[ICFINDRAGLOOP]
  151. #define g_cfDragContext g_acfIDLData[ICF_DRAGCONTEXT]
  152. #define g_cfTargetCLSID g_acfIDLData[ICF_TARGETCLSID]
  153. #define g_cfEmbeddedObject g_acfIDLData[ICF_EMBEDDEDOBJECT]
  154. #define g_cfObjectDescriptor g_acfIDLData[ICF_OBJECTDESCRIPTOR]
  155. #define g_cfNotRecyclable g_acfIDLData[ICF_NOTRECYCLABLE]
  156. #define g_cfBriefObj g_acfIDLData[ICF_BRIEFCASE]
  157. #define g_cfText g_acfIDLData[ICF_TEXT]
  158. #define g_cfUnicodeText g_acfIDLData[ICF_UNICODETEXT]
  159. #define g_cfDropEffectFolderList g_acfIDLData[ICF_DROPEFFECTFOLDERLIST]
  160. #define g_cfAutoPlayHIDA g_acfIDLData[ICF_AUTOPLAYHIDA]
  161. EXTERN_C CLIPFORMAT g_cfMountedVolume;
  162. // Most places will only generate one so minimize the number of changes in the code (bad idea!)
  163. #ifdef UNICODE
  164. #define g_cfFileNameMap g_cfFileNameMapW
  165. #define g_cfFileName g_cfFileNameW
  166. #else
  167. #define g_cfFileNameMap g_cfFileNameMapA
  168. #define g_cfFileName g_cfFileNameA
  169. #endif
  170. STDAPI_(LPCITEMIDLIST) IDA_GetIDListPtr(LPIDA pida, UINT i);
  171. STDAPI_(LPITEMIDLIST) IDA_FullIDList(LPIDA pida, UINT i);
  172. #endif // _IDLCOMM_H_