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.

215 lines
3.5 KiB

  1. enum mnkType {NOMNK, FILEMNK, POINTERMNK, ITEMMNK, ANTIMNK, COMPOSITEMNK};
  2. enum olever {undetermined, ole1, ole2 };
  3. enum ExtentKeys
  4. {
  5. mnk_MAC = 1,
  6. mnk_DFS = 2,
  7. mnk_UNICODE = 3,
  8. mnk_MacPathName = 4,
  9. mnk_ShellLink = 5
  10. };
  11. struct SExtentList
  12. {
  13. ULONG m_cbMonikerExtents;
  14. BYTE *m_pchMonikerExtents;
  15. };
  16. struct SFileMoniker
  17. {
  18. void *vtbl1;
  19. void *vtbl2;
  20. ULONG m_refs;
  21. void *vtbl3;
  22. ULONG m_marshal;
  23. CLSID m_clsid;
  24. SExtentList m_ExtentList;
  25. WCHAR *m_szPath;
  26. char *m_pszAnsiPath;
  27. USHORT m_ccPath;
  28. USHORT m_cbAnsiPath;
  29. DWORD m_dwHashValue;
  30. ULONG m_fUnicodeExtent:1;
  31. ULONG m_fClassVerified:1;
  32. ULONG m_fHashValueValid:1;
  33. USHORT m_cAnti;
  34. USHORT m_endServer;
  35. enum olever m_ole1;
  36. };
  37. struct SFileMonikerCk
  38. {
  39. void *vtbl1;
  40. void *vtbl2;
  41. ULONG m_refs;
  42. void *vtbl3;
  43. ULONG m_marshal;
  44. void *vtbl4;
  45. ULONG m_debug;
  46. CLSID m_clsid;
  47. SExtentList m_ExtentList;
  48. WCHAR *m_szPath;
  49. char *m_pszAnsiPath;
  50. USHORT m_ccPath;
  51. USHORT m_cbAnsiPath;
  52. DWORD m_dwHashValue;
  53. ULONG m_fUnicodeExtent:1;
  54. ULONG m_fClassVerified:1;
  55. ULONG m_fHashValueValid:1;
  56. USHORT m_cAnti;
  57. USHORT m_endServer;
  58. enum olever m_ole1;
  59. };
  60. struct SPointerMoniker
  61. {
  62. void *vtbl1;
  63. void *vtbl2;
  64. ULONG m_refs;
  65. void *vtbl3;
  66. ULONG m_marshal;
  67. LPUNKNOWN m_pUnk;
  68. };
  69. struct SPointerMonikerCk
  70. {
  71. void *vtbl1;
  72. void *vtbl2;
  73. ULONG m_refs;
  74. void *vtbl3;
  75. ULONG m_marshal;
  76. void *vtbl4;
  77. ULONG m_debug;
  78. LPUNKNOWN m_pUnk;
  79. };
  80. struct SItemMoniker
  81. {
  82. void *vtbl1;
  83. void *vtbl2;
  84. ULONG m_refs;
  85. void *vtbl3;
  86. ULONG m_marshal;
  87. WCHAR *m_lpszItem;
  88. char *m_pszAnsiItem;
  89. USHORT m_ccItem;
  90. USHORT m_cbAnsiItem;
  91. WCHAR *m_lpszDelimiter;
  92. char *m_pszAnsiDelimiter;
  93. USHORT m_ccDelimiter;
  94. USHORT m_cbAnsiDelimiter;
  95. ULONG m_fHashValueValid:1;
  96. DWORD m_dwHashValue;
  97. };
  98. struct SItemMonikerCk
  99. {
  100. void *vtbl1;
  101. void *vtbl2;
  102. ULONG m_refs;
  103. void *vtbl3;
  104. ULONG m_marshal;
  105. void *vtbl4;
  106. ULONG m_debug;
  107. WCHAR *m_lpszItem;
  108. char *m_pszAnsiItem;
  109. USHORT m_ccItem;
  110. USHORT m_cbAnsiItem;
  111. WCHAR *m_lpszDelimiter;
  112. char *m_pszAnsiDelimiter;
  113. USHORT m_ccDelimiter;
  114. USHORT m_cbAnsiDelimiter;
  115. ULONG m_fHashValueValid:1;
  116. DWORD m_dwHashValue;
  117. };
  118. struct SAntiMoniker
  119. {
  120. void *vtbl1;
  121. void *vtbl2;
  122. ULONG m_refs;
  123. void *vtbl3;
  124. ULONG m_marshal;
  125. ULONG m_count;
  126. };
  127. struct SAntiMonikerCk
  128. {
  129. void *vtbl1;
  130. void *vtbl2;
  131. ULONG m_refs;
  132. void *vtbl3;
  133. ULONG m_marshal;
  134. void *vtbl4;
  135. ULONG m_debug;
  136. ULONG m_count;
  137. };
  138. struct SCompositeMoniker
  139. {
  140. void *vtbl1;
  141. void *vtbl2;
  142. ULONG m_refs;
  143. void *vtbl3;
  144. ULONG m_marshal;
  145. LPMONIKER m_pmkLeft;
  146. LPMONIKER m_pmkRight;
  147. BOOL m_fReduced;
  148. };
  149. struct SCompositeMonikerCk
  150. {
  151. void *vtbl1;
  152. void *vtbl2;
  153. ULONG m_refs;
  154. void *vtbl3;
  155. ULONG m_marshal;
  156. void *vtbl4;
  157. ULONG m_debug;
  158. LPMONIKER m_pmkLeft;
  159. LPMONIKER m_pmkRight;
  160. BOOL m_fReduced;
  161. };