MMC.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:257k
源码类别:

模拟服务器

开发平台:

C/C++

  1. #pragma warning( disable: 4049 )  /* more than 64k source lines */
  2. /* this ALWAYS GENERATED file contains the definitions for the interfaces */
  3.  /* File created by MIDL compiler version 6.00.0347 */
  4. /* Compiler settings for mmc.idl:
  5.     Oicf, W1, Zp8, env=Win32 (32b run)
  6.     protocol : dce , ms_ext, c_ext, robust
  7.     error checks: allocation ref bounds_check enum stub_data 
  8.     VC __declspec() decoration level: 
  9.          __declspec(uuid()), __declspec(selectany), __declspec(novtable)
  10.          DECLSPEC_UUID(), MIDL_INTERFACE()
  11. */
  12. //@@MIDL_FILE_HEADING(  )
  13. /* verify that the <rpcndr.h> version is high enough to compile this file*/
  14. #ifndef __REQUIRED_RPCNDR_H_VERSION__
  15. #define __REQUIRED_RPCNDR_H_VERSION__ 475
  16. #endif
  17. #include "rpc.h"
  18. #include "rpcndr.h"
  19. #ifndef __RPCNDR_H_VERSION__
  20. #error this stub requires an updated version of <rpcndr.h>
  21. #endif // __RPCNDR_H_VERSION__
  22. #ifndef COM_NO_WINDOWS_H
  23. #include "windows.h"
  24. #include "ole2.h"
  25. #endif /*COM_NO_WINDOWS_H*/
  26. #ifndef __mmc_h__
  27. #define __mmc_h__
  28. #if defined(_MSC_VER) && (_MSC_VER >= 1020)
  29. #pragma once
  30. #endif
  31. /* Forward Declarations */ 
  32. #ifndef __IComponentData_FWD_DEFINED__
  33. #define __IComponentData_FWD_DEFINED__
  34. typedef interface IComponentData IComponentData;
  35. #endif  /* __IComponentData_FWD_DEFINED__ */
  36. #ifndef __IComponent_FWD_DEFINED__
  37. #define __IComponent_FWD_DEFINED__
  38. typedef interface IComponent IComponent;
  39. #endif  /* __IComponent_FWD_DEFINED__ */
  40. #ifndef __IResultDataCompare_FWD_DEFINED__
  41. #define __IResultDataCompare_FWD_DEFINED__
  42. typedef interface IResultDataCompare IResultDataCompare;
  43. #endif  /* __IResultDataCompare_FWD_DEFINED__ */
  44. #ifndef __IResultOwnerData_FWD_DEFINED__
  45. #define __IResultOwnerData_FWD_DEFINED__
  46. typedef interface IResultOwnerData IResultOwnerData;
  47. #endif  /* __IResultOwnerData_FWD_DEFINED__ */
  48. #ifndef __IConsole_FWD_DEFINED__
  49. #define __IConsole_FWD_DEFINED__
  50. typedef interface IConsole IConsole;
  51. #endif  /* __IConsole_FWD_DEFINED__ */
  52. #ifndef __IHeaderCtrl_FWD_DEFINED__
  53. #define __IHeaderCtrl_FWD_DEFINED__
  54. typedef interface IHeaderCtrl IHeaderCtrl;
  55. #endif  /* __IHeaderCtrl_FWD_DEFINED__ */
  56. #ifndef __IContextMenuCallback_FWD_DEFINED__
  57. #define __IContextMenuCallback_FWD_DEFINED__
  58. typedef interface IContextMenuCallback IContextMenuCallback;
  59. #endif  /* __IContextMenuCallback_FWD_DEFINED__ */
  60. #ifndef __IContextMenuProvider_FWD_DEFINED__
  61. #define __IContextMenuProvider_FWD_DEFINED__
  62. typedef interface IContextMenuProvider IContextMenuProvider;
  63. #endif  /* __IContextMenuProvider_FWD_DEFINED__ */
  64. #ifndef __IExtendContextMenu_FWD_DEFINED__
  65. #define __IExtendContextMenu_FWD_DEFINED__
  66. typedef interface IExtendContextMenu IExtendContextMenu;
  67. #endif  /* __IExtendContextMenu_FWD_DEFINED__ */
  68. #ifndef __IImageList_FWD_DEFINED__
  69. #define __IImageList_FWD_DEFINED__
  70. typedef interface IImageList IImageList;
  71. #endif  /* __IImageList_FWD_DEFINED__ */
  72. #ifndef __IResultData_FWD_DEFINED__
  73. #define __IResultData_FWD_DEFINED__
  74. typedef interface IResultData IResultData;
  75. #endif  /* __IResultData_FWD_DEFINED__ */
  76. #ifndef __IConsoleNameSpace_FWD_DEFINED__
  77. #define __IConsoleNameSpace_FWD_DEFINED__
  78. typedef interface IConsoleNameSpace IConsoleNameSpace;
  79. #endif  /* __IConsoleNameSpace_FWD_DEFINED__ */
  80. #ifndef __IConsoleNameSpace2_FWD_DEFINED__
  81. #define __IConsoleNameSpace2_FWD_DEFINED__
  82. typedef interface IConsoleNameSpace2 IConsoleNameSpace2;
  83. #endif  /* __IConsoleNameSpace2_FWD_DEFINED__ */
  84. #ifndef __IPropertySheetCallback_FWD_DEFINED__
  85. #define __IPropertySheetCallback_FWD_DEFINED__
  86. typedef interface IPropertySheetCallback IPropertySheetCallback;
  87. #endif  /* __IPropertySheetCallback_FWD_DEFINED__ */
  88. #ifndef __IPropertySheetProvider_FWD_DEFINED__
  89. #define __IPropertySheetProvider_FWD_DEFINED__
  90. typedef interface IPropertySheetProvider IPropertySheetProvider;
  91. #endif  /* __IPropertySheetProvider_FWD_DEFINED__ */
  92. #ifndef __IExtendPropertySheet_FWD_DEFINED__
  93. #define __IExtendPropertySheet_FWD_DEFINED__
  94. typedef interface IExtendPropertySheet IExtendPropertySheet;
  95. #endif  /* __IExtendPropertySheet_FWD_DEFINED__ */
  96. #ifndef __IControlbar_FWD_DEFINED__
  97. #define __IControlbar_FWD_DEFINED__
  98. typedef interface IControlbar IControlbar;
  99. #endif  /* __IControlbar_FWD_DEFINED__ */
  100. #ifndef __IExtendControlbar_FWD_DEFINED__
  101. #define __IExtendControlbar_FWD_DEFINED__
  102. typedef interface IExtendControlbar IExtendControlbar;
  103. #endif  /* __IExtendControlbar_FWD_DEFINED__ */
  104. #ifndef __IToolbar_FWD_DEFINED__
  105. #define __IToolbar_FWD_DEFINED__
  106. typedef interface IToolbar IToolbar;
  107. #endif  /* __IToolbar_FWD_DEFINED__ */
  108. #ifndef __IConsoleVerb_FWD_DEFINED__
  109. #define __IConsoleVerb_FWD_DEFINED__
  110. typedef interface IConsoleVerb IConsoleVerb;
  111. #endif  /* __IConsoleVerb_FWD_DEFINED__ */
  112. #ifndef __ISnapinAbout_FWD_DEFINED__
  113. #define __ISnapinAbout_FWD_DEFINED__
  114. typedef interface ISnapinAbout ISnapinAbout;
  115. #endif  /* __ISnapinAbout_FWD_DEFINED__ */
  116. #ifndef __IMenuButton_FWD_DEFINED__
  117. #define __IMenuButton_FWD_DEFINED__
  118. typedef interface IMenuButton IMenuButton;
  119. #endif  /* __IMenuButton_FWD_DEFINED__ */
  120. #ifndef __ISnapinHelp_FWD_DEFINED__
  121. #define __ISnapinHelp_FWD_DEFINED__
  122. typedef interface ISnapinHelp ISnapinHelp;
  123. #endif  /* __ISnapinHelp_FWD_DEFINED__ */
  124. #ifndef __IExtendPropertySheet2_FWD_DEFINED__
  125. #define __IExtendPropertySheet2_FWD_DEFINED__
  126. typedef interface IExtendPropertySheet2 IExtendPropertySheet2;
  127. #endif  /* __IExtendPropertySheet2_FWD_DEFINED__ */
  128. #ifndef __IHeaderCtrl2_FWD_DEFINED__
  129. #define __IHeaderCtrl2_FWD_DEFINED__
  130. typedef interface IHeaderCtrl2 IHeaderCtrl2;
  131. #endif  /* __IHeaderCtrl2_FWD_DEFINED__ */
  132. #ifndef __ISnapinHelp2_FWD_DEFINED__
  133. #define __ISnapinHelp2_FWD_DEFINED__
  134. typedef interface ISnapinHelp2 ISnapinHelp2;
  135. #endif  /* __ISnapinHelp2_FWD_DEFINED__ */
  136. #ifndef __IEnumTASK_FWD_DEFINED__
  137. #define __IEnumTASK_FWD_DEFINED__
  138. typedef interface IEnumTASK IEnumTASK;
  139. #endif  /* __IEnumTASK_FWD_DEFINED__ */
  140. #ifndef __IExtendTaskPad_FWD_DEFINED__
  141. #define __IExtendTaskPad_FWD_DEFINED__
  142. typedef interface IExtendTaskPad IExtendTaskPad;
  143. #endif  /* __IExtendTaskPad_FWD_DEFINED__ */
  144. #ifndef __IConsole2_FWD_DEFINED__
  145. #define __IConsole2_FWD_DEFINED__
  146. typedef interface IConsole2 IConsole2;
  147. #endif  /* __IConsole2_FWD_DEFINED__ */
  148. #ifndef __IDisplayHelp_FWD_DEFINED__
  149. #define __IDisplayHelp_FWD_DEFINED__
  150. typedef interface IDisplayHelp IDisplayHelp;
  151. #endif  /* __IDisplayHelp_FWD_DEFINED__ */
  152. #ifndef __IRequiredExtensions_FWD_DEFINED__
  153. #define __IRequiredExtensions_FWD_DEFINED__
  154. typedef interface IRequiredExtensions IRequiredExtensions;
  155. #endif  /* __IRequiredExtensions_FWD_DEFINED__ */
  156. #ifndef __IStringTable_FWD_DEFINED__
  157. #define __IStringTable_FWD_DEFINED__
  158. typedef interface IStringTable IStringTable;
  159. #endif  /* __IStringTable_FWD_DEFINED__ */
  160. #ifndef __IColumnData_FWD_DEFINED__
  161. #define __IColumnData_FWD_DEFINED__
  162. typedef interface IColumnData IColumnData;
  163. #endif  /* __IColumnData_FWD_DEFINED__ */
  164. #ifndef __IMessageView_FWD_DEFINED__
  165. #define __IMessageView_FWD_DEFINED__
  166. typedef interface IMessageView IMessageView;
  167. #endif  /* __IMessageView_FWD_DEFINED__ */
  168. #ifndef __IResultDataCompareEx_FWD_DEFINED__
  169. #define __IResultDataCompareEx_FWD_DEFINED__
  170. typedef interface IResultDataCompareEx IResultDataCompareEx;
  171. #endif  /* __IResultDataCompareEx_FWD_DEFINED__ */
  172. #ifndef __IComponentData2_FWD_DEFINED__
  173. #define __IComponentData2_FWD_DEFINED__
  174. typedef interface IComponentData2 IComponentData2;
  175. #endif  /* __IComponentData2_FWD_DEFINED__ */
  176. #ifndef __IComponent2_FWD_DEFINED__
  177. #define __IComponent2_FWD_DEFINED__
  178. typedef interface IComponent2 IComponent2;
  179. #endif  /* __IComponent2_FWD_DEFINED__ */
  180. #ifndef __IContextMenuCallback2_FWD_DEFINED__
  181. #define __IContextMenuCallback2_FWD_DEFINED__
  182. typedef interface IContextMenuCallback2 IContextMenuCallback2;
  183. #endif  /* __IContextMenuCallback2_FWD_DEFINED__ */
  184. #ifndef __IMMCVersionInfo_FWD_DEFINED__
  185. #define __IMMCVersionInfo_FWD_DEFINED__
  186. typedef interface IMMCVersionInfo IMMCVersionInfo;
  187. #endif  /* __IMMCVersionInfo_FWD_DEFINED__ */
  188. #ifndef __MMCVersionInfo_FWD_DEFINED__
  189. #define __MMCVersionInfo_FWD_DEFINED__
  190. #ifdef __cplusplus
  191. typedef class MMCVersionInfo MMCVersionInfo;
  192. #else
  193. typedef struct MMCVersionInfo MMCVersionInfo;
  194. #endif /* __cplusplus */
  195. #endif  /* __MMCVersionInfo_FWD_DEFINED__ */
  196. #ifndef __ConsolePower_FWD_DEFINED__
  197. #define __ConsolePower_FWD_DEFINED__
  198. #ifdef __cplusplus
  199. typedef class ConsolePower ConsolePower;
  200. #else
  201. typedef struct ConsolePower ConsolePower;
  202. #endif /* __cplusplus */
  203. #endif  /* __ConsolePower_FWD_DEFINED__ */
  204. #ifndef __IExtendView_FWD_DEFINED__
  205. #define __IExtendView_FWD_DEFINED__
  206. typedef interface IExtendView IExtendView;
  207. #endif  /* __IExtendView_FWD_DEFINED__ */
  208. #ifndef __IViewExtensionCallback_FWD_DEFINED__
  209. #define __IViewExtensionCallback_FWD_DEFINED__
  210. typedef interface IViewExtensionCallback IViewExtensionCallback;
  211. #endif  /* __IViewExtensionCallback_FWD_DEFINED__ */
  212. #ifndef __IConsolePower_FWD_DEFINED__
  213. #define __IConsolePower_FWD_DEFINED__
  214. typedef interface IConsolePower IConsolePower;
  215. #endif  /* __IConsolePower_FWD_DEFINED__ */
  216. #ifndef __IConsolePowerSink_FWD_DEFINED__
  217. #define __IConsolePowerSink_FWD_DEFINED__
  218. typedef interface IConsolePowerSink IConsolePowerSink;
  219. #endif  /* __IConsolePowerSink_FWD_DEFINED__ */
  220. #ifndef __INodeProperties_FWD_DEFINED__
  221. #define __INodeProperties_FWD_DEFINED__
  222. typedef interface INodeProperties INodeProperties;
  223. #endif  /* __INodeProperties_FWD_DEFINED__ */
  224. #ifndef __IConsole3_FWD_DEFINED__
  225. #define __IConsole3_FWD_DEFINED__
  226. typedef interface IConsole3 IConsole3;
  227. #endif  /* __IConsole3_FWD_DEFINED__ */
  228. #ifndef __IResultData2_FWD_DEFINED__
  229. #define __IResultData2_FWD_DEFINED__
  230. typedef interface IResultData2 IResultData2;
  231. #endif  /* __IResultData2_FWD_DEFINED__ */
  232. /* header files for imported files */
  233. #include "basetsd.h"
  234. #include "oaidl.h"
  235. #ifdef __cplusplus
  236. extern "C"{
  237. #endif 
  238. void * __RPC_USER MIDL_user_allocate(size_t);
  239. void __RPC_USER MIDL_user_free( void * ); 
  240. /* interface __MIDL_itf_mmc_0000 */
  241. /* [local] */ 
  242. #ifndef MMC_VER
  243. #define MMC_VER 0x0200
  244. #endif
  245. #if (MMC_VER >= 0x0110)
  246. #endif // MMC_VER >= 0x0110
  247. #if (MMC_VER >= 0x0120)
  248. #endif // MMC_VER >= 0x0120
  249. #if (MMC_VER >= 0x0200)
  250. #endif // MMC_VER >= 0x0200
  251. #if (MMC_VER >= 0x0110)
  252. #endif // MMC_VER >= 0x0110
  253. #if (MMC_VER >= 0x0120)
  254. #endif // MMC_VER >= 0x0120
  255. #if (MMC_VER >= 0x0200)
  256. #endif // MMC_VER >= 0x0200
  257. typedef IConsole *LPCONSOLE;
  258. typedef IHeaderCtrl *LPHEADERCTRL;
  259. typedef IToolbar *LPTOOLBAR;
  260. typedef IImageList *LPIMAGELIST;
  261. typedef IResultData *LPRESULTDATA;
  262. typedef IConsoleNameSpace *LPCONSOLENAMESPACE;
  263. typedef IPropertySheetProvider *LPPROPERTYSHEETPROVIDER;
  264. typedef IPropertySheetCallback *LPPROPERTYSHEETCALLBACK;
  265. typedef IContextMenuProvider *LPCONTEXTMENUPROVIDER;
  266. typedef IContextMenuCallback *LPCONTEXTMENUCALLBACK;
  267. typedef IControlbar *LPCONTROLBAR;
  268. typedef IConsoleVerb *LPCONSOLEVERB;
  269. typedef IMenuButton *LPMENUBUTTON;
  270. #if (MMC_VER >= 0x0110)
  271. typedef IConsole2 *LPCONSOLE2;
  272. typedef IHeaderCtrl2 *LPHEADERCTRL2;
  273. typedef IConsoleNameSpace2 *LPCONSOLENAMESPACE2;
  274. typedef IDisplayHelp *LPDISPLAYHELP;
  275. typedef IStringTable *LPSTRINGTABLE;
  276. #endif // MMC_VER >= 0x0110
  277. #if (MMC_VER >= 0x0120)
  278. typedef IColumnData *LPCOLUMNDATA;
  279. typedef IResultDataCompareEx *LPRESULTDATACOMPAREEX;
  280. #endif // MMC_VER >= 0x0120
  281. typedef IComponent *LPCOMPONENT;
  282. typedef IComponentData *LPCOMPONENTDATA;
  283. typedef IExtendPropertySheet *LPEXTENDPROPERTYSHEET;
  284. typedef IExtendContextMenu *LPEXTENDCONTEXTMENU;
  285. typedef IExtendControlbar *LPEXTENDCONTROLBAR;
  286. typedef IResultDataCompare *LPRESULTDATACOMPARE;
  287. typedef IResultOwnerData *LPRESULTOWNERDATA;
  288. typedef ISnapinAbout *LPSNAPABOUT;
  289. typedef ISnapinAbout *LPSNAPINABOUT;
  290. typedef ISnapinHelp *LPSNAPHELP;
  291. typedef ISnapinHelp *LPSNAPINHELP;
  292. #if (MMC_VER >= 0x0110)
  293. typedef IEnumTASK *LPENUMTASK;
  294. typedef IExtendPropertySheet2 *LPEXTENDPROPERTYSHEET2;
  295. typedef ISnapinHelp2 *LPSNAPINHELP2;
  296. typedef IExtendTaskPad *LPEXTENDTASKPAD;
  297. typedef IRequiredExtensions *LPREQUIREDEXTENSIONS;
  298. #endif // MMC_VER >= 0x0110
  299. #if (MMC_VER >= 0x0200)
  300. typedef IComponent2 *LPCOMPONENT2;
  301. typedef IComponentData2 *LPCOMPONENTDATA2;
  302. typedef IExtendView *LPEXTENDVIEW;
  303. typedef IViewExtensionCallback *LPVIEWEXTENSIONCALLBACK;
  304. typedef IConsolePower *LPCONSOLEPOWER;
  305. typedef IConsolePowerSink *LPCONSOLEPOWERSINK;
  306. typedef IConsole3 *LPCONSOLE3;
  307. typedef INodeProperties *LPNODEPROPERTIES;
  308. typedef IResultData2 *LPRESULTDATA2;
  309. #endif // MMC_VER >= 0x0200
  310. typedef BSTR *PBSTR;
  311. #define MMCLV_AUTO ( -1 )
  312. #define MMCLV_NOPARAM ( -2 )
  313. #define MMCLV_NOICON ( -1 )
  314. #define MMCLV_VIEWSTYLE_ICON ( 0 )
  315. #define MMCLV_VIEWSTYLE_SMALLICON ( 0x2 )
  316. #define MMCLV_VIEWSTYLE_LIST ( 0x3 )
  317. #define MMCLV_VIEWSTYLE_REPORT ( 0x1 )
  318. #define MMCLV_VIEWSTYLE_FILTERED ( 0x4 )
  319. #define MMCLV_NOPTR ( 0 )
  320. #define MMCLV_UPDATE_NOINVALIDATEALL ( 0x1 )
  321. #define MMCLV_UPDATE_NOSCROLL ( 0x2 )
  322. static unsigned short *MMC_CALLBACK = ( unsigned short * )-1;
  323. #if (MMC_VER >= 0x0120)
  324. #define MMC_IMAGECALLBACK (-1)
  325. #define MMC_TEXTCALLBACK  MMC_CALLBACK
  326. #endif // MMC_VER >= 0x0120
  327. typedef LONG_PTR HSCOPEITEM;
  328. typedef long COMPONENTID;
  329. typedef LONG_PTR HRESULTITEM;
  330. #define RDI_STR ( 0x2 )
  331. #define RDI_IMAGE ( 0x4 )
  332. #define RDI_STATE ( 0x8 )
  333. #define RDI_PARAM ( 0x10 )
  334. #define RDI_INDEX ( 0x20 )
  335. #define RDI_INDENT ( 0x40 )
  336. typedef enum _MMC_RESULT_VIEW_STYLE      
  337. {                                        
  338.     MMC_SINGLESEL           = 0x0001,    
  339.     MMC_SHOWSELALWAYS       = 0x0002,    
  340.     MMC_NOSORTHEADER        = 0x0004,    
  341. #if (MMC_VER >= 0x0120)                  
  342.     MMC_ENSUREFOCUSVISIBLE  = 0x0008     
  343. #endif // MMC_VER >= 0x0120              
  344. } MMC_RESULT_VIEW_STYLE;                 
  345. #if 0
  346. typedef 
  347. enum _MMC_RESULT_VIEW_STYLE
  348.     { _MMC_VIEW_STYLE__dummy_ = 0
  349.     }  MMC_RESULT_VIEW_STYLE;
  350. #endif
  351. #define MMC_VIEW_OPTIONS_NONE ( 0 )
  352. #define MMC_VIEW_OPTIONS_NOLISTVIEWS ( 0x1 )
  353. #define MMC_VIEW_OPTIONS_MULTISELECT ( 0x2 )
  354. #define MMC_VIEW_OPTIONS_OWNERDATALIST ( 0x4 )
  355. #define MMC_VIEW_OPTIONS_FILTERED ( 0x8 )
  356. #define MMC_VIEW_OPTIONS_CREATENEW ( 0x10 )
  357. #if (MMC_VER >= 0x0110)
  358. #define MMC_VIEW_OPTIONS_USEFONTLINKING ( 0x20 )
  359. #endif // MMC_VER >= 0x0110
  360. #if (MMC_VER >= 0x0120)
  361. #define MMC_VIEW_OPTIONS_EXCLUDE_SCOPE_ITEMS_FROM_LIST ( 0x40 )
  362. #define MMC_VIEW_OPTIONS_LEXICAL_SORT ( 0x80 )
  363. #endif // MMC_VER >= 0x0120
  364. #define MMC_PSO_NOAPPLYNOW ( 0x1 )
  365. #define MMC_PSO_HASHELP ( 0x2 )
  366. #define MMC_PSO_NEWWIZARDTYPE ( 0x4 )
  367. #define MMC_PSO_NO_PROPTITLE ( 0x8 )
  368. typedef 
  369. enum _MMC_CONTROL_TYPE
  370.     { TOOLBAR = 0,
  371. MENUBUTTON = TOOLBAR + 1,
  372. COMBOBOXBAR = MENUBUTTON + 1
  373.     }  MMC_CONTROL_TYPE;
  374. typedef enum _MMC_CONSOLE_VERB                               
  375. {                                                            
  376.     MMC_VERB_NONE            = 0x0000,                       
  377.     MMC_VERB_OPEN            = 0x8000,                       
  378.     MMC_VERB_COPY            = 0x8001,                       
  379.     MMC_VERB_PASTE           = 0x8002,                       
  380.     MMC_VERB_DELETE          = 0x8003,                       
  381.     MMC_VERB_PROPERTIES      = 0x8004,                       
  382.     MMC_VERB_RENAME          = 0x8005,                       
  383.     MMC_VERB_REFRESH         = 0x8006,                       
  384.     MMC_VERB_PRINT           = 0x8007,                       
  385. #if (MMC_VER >= 0x0110)                                      
  386.     MMC_VERB_CUT             = 0x8008,  // Used only to explicitly disable/hide
  387.                                         // the cut verb, when copy & paste are enabled.
  388.                                                              
  389.     // must be last                                          
  390.     MMC_VERB_MAX,                                            
  391.     MMC_VERB_FIRST           = MMC_VERB_OPEN,                
  392.     MMC_VERB_LAST            = MMC_VERB_MAX - 1              
  393. #endif // MMC_VER >= 0x0110                                  
  394. } MMC_CONSOLE_VERB;                                          
  395. #if 0
  396. typedef 
  397. enum _MMC_CONSOLE_VERB
  398.     { MMC_VERB__dummy_ = 0
  399.     }  MMC_CONSOLE_VERB;
  400. #endif
  401. #include <pshpack8.h>
  402. typedef struct _MMCButton
  403.     {
  404.     int nBitmap;
  405.     int idCommand;
  406.     BYTE fsState;
  407.     BYTE fsType;
  408.     LPOLESTR lpButtonText;
  409.     LPOLESTR lpTooltipText;
  410.     }  MMCBUTTON;
  411. #include <poppack.h>
  412. typedef MMCBUTTON *LPMMCBUTTON;
  413. typedef 
  414. enum _MMC_BUTTON_STATE
  415.     { ENABLED = 0x1,
  416. CHECKED = 0x2,
  417. HIDDEN = 0x4,
  418. INDETERMINATE = 0x8,
  419. BUTTONPRESSED = 0x10
  420.     }  MMC_BUTTON_STATE;
  421. typedef struct _RESULTDATAITEM
  422.     {
  423.     DWORD mask;
  424.     BOOL bScopeItem;
  425.     HRESULTITEM itemID;
  426.     int nIndex;
  427.     int nCol;
  428.     LPOLESTR str;
  429.     int nImage;
  430.     UINT nState;
  431.     LPARAM lParam;
  432.     int iIndent;
  433.     }  RESULTDATAITEM;
  434. typedef RESULTDATAITEM *LPRESULTDATAITEM;
  435. #define RFI_PARTIAL ( 0x1 )
  436. #define RFI_WRAP ( 0x2 )
  437. typedef struct _RESULTFINDINFO
  438.     {
  439.     LPOLESTR psz;
  440.     int nStart;
  441.     DWORD dwOptions;
  442.     }  RESULTFINDINFO;
  443. typedef RESULTFINDINFO *LPRESULTFINDINFO;
  444. #define RSI_DESCENDING ( 0x1 )
  445. #define RSI_NOSORTICON ( 0x2 )
  446. #define SDI_STR ( 0x2 )
  447. #define SDI_IMAGE ( 0x4 )
  448. #define SDI_OPENIMAGE ( 0x8 )
  449. #define SDI_STATE ( 0x10 )
  450. #define SDI_PARAM ( 0x20 )
  451. #define SDI_CHILDREN ( 0x40 )
  452. #define SDI_PARENT ( 0 )
  453. #define SDI_PREVIOUS ( 0x10000000 )
  454. #define SDI_NEXT ( 0x20000000 )
  455. #define SDI_FIRST ( 0x8000000 )
  456. typedef struct _SCOPEDATAITEM
  457.     {
  458.     DWORD mask;
  459.     LPOLESTR displayname;
  460.     int nImage;
  461.     int nOpenImage;
  462.     UINT nState;
  463.     int cChildren;
  464.     LPARAM lParam;
  465.     HSCOPEITEM relativeID;
  466.     HSCOPEITEM ID;
  467.     }  SCOPEDATAITEM;
  468. typedef SCOPEDATAITEM *LPSCOPEDATAITEM;
  469. typedef 
  470. enum _MMC_SCOPE_ITEM_STATE
  471.     { MMC_SCOPE_ITEM_STATE_NORMAL = 0x1,
  472. MMC_SCOPE_ITEM_STATE_BOLD = 0x2,
  473. MMC_SCOPE_ITEM_STATE_EXPANDEDONCE = 0x3
  474.     }  MMC_SCOPE_ITEM_STATE;
  475. typedef struct _CONTEXTMENUITEM
  476.     {
  477.     LPWSTR strName;
  478.     LPWSTR strStatusBarText;
  479.     LONG lCommandID;
  480.     LONG lInsertionPointID;
  481.     LONG fFlags;
  482.     LONG fSpecialFlags;
  483.     }  CONTEXTMENUITEM;
  484. typedef CONTEXTMENUITEM *LPCONTEXTMENUITEM;
  485. typedef 
  486. enum _MMC_MENU_COMMAND_IDS
  487.     { MMCC_STANDARD_VIEW_SELECT = -1
  488.     }  MMC_MENU_COMMAND_IDS;
  489. typedef struct _MENUBUTTONDATA
  490.     {
  491.     int idCommand;
  492.     int x;
  493.     int y;
  494.     }  MENUBUTTONDATA;
  495. typedef MENUBUTTONDATA *LPMENUBUTTONDATA;
  496. typedef LONG_PTR MMC_COOKIE;
  497. #define MMC_MULTI_SELECT_COOKIE ( -2 )
  498. #define MMC_WINDOW_COOKIE ( -3 )
  499. #if (MMC_VER >= 0x0110)
  500. #define SPECIAL_COOKIE_MIN ( -10 )
  501. #define SPECIAL_COOKIE_MAX ( -1 )
  502. typedef 
  503. enum _MMC_FILTER_TYPE
  504.     { MMC_STRING_FILTER = 0,
  505. MMC_INT_FILTER = 0x1,
  506. MMC_FILTER_NOVALUE = 0x8000
  507.     }  MMC_FILTER_TYPE;
  508. typedef struct _MMC_FILTERDATA
  509.     {
  510.     LPOLESTR pszText;
  511.     INT cchTextMax;
  512.     LONG lValue;
  513.     }  MMC_FILTERDATA;
  514. typedef 
  515. enum _MMC_FILTER_CHANGE_CODE
  516.     { MFCC_DISABLE = 0,
  517. MFCC_ENABLE = 1,
  518. MFCC_VALUE_CHANGE = 2
  519.     }  MMC_FILTER_CHANGE_CODE;
  520. typedef struct _MMC_RESTORE_VIEW
  521.     {
  522.     DWORD dwSize;
  523.     MMC_COOKIE cookie;
  524.     LPOLESTR pViewType;
  525.     long lViewOptions;
  526.     }  MMC_RESTORE_VIEW;
  527. typedef struct _MMC_EXPANDSYNC_STRUCT
  528.     {
  529.     BOOL bHandled;
  530.     BOOL bExpanding;
  531.     HSCOPEITEM hItem;
  532.     }  MMC_EXPANDSYNC_STRUCT;
  533. #endif // MMC_VER >= 0x0110
  534. #if (MMC_VER >= 0x0120)
  535. typedef struct _MMC_VISIBLE_COLUMNS
  536.     {
  537.     INT nVisibleColumns;
  538.     INT rgVisibleCols[ 1 ];
  539.     }  MMC_VISIBLE_COLUMNS;
  540. #endif // MMC_VER >= 0x0120
  541. typedef enum _MMC_NOTIFY_TYPE                                
  542. {                                                            
  543.     MMCN_ACTIVATE           = 0x8001,                        
  544.     MMCN_ADD_IMAGES         = 0x8002,                        
  545.     MMCN_BTN_CLICK          = 0x8003,                        
  546.     MMCN_CLICK              = 0x8004,   // NOT USED          
  547.     MMCN_COLUMN_CLICK       = 0x8005,                        
  548.     MMCN_CONTEXTMENU        = 0x8006,   // NOT USED          
  549.     MMCN_CUTORMOVE          = 0x8007,                        
  550.     MMCN_DBLCLICK           = 0x8008,                        
  551.     MMCN_DELETE             = 0x8009,                        
  552.     MMCN_DESELECT_ALL       = 0x800A,                        
  553.     MMCN_EXPAND             = 0x800B,                        
  554.     MMCN_HELP               = 0x800C,   // NOT USED          
  555.     MMCN_MENU_BTNCLICK      = 0x800D,                        
  556.     MMCN_MINIMIZED          = 0x800E,                        
  557.     MMCN_PASTE              = 0x800F,                        
  558.     MMCN_PROPERTY_CHANGE    = 0x8010,                        
  559.     MMCN_QUERY_PASTE        = 0x8011,                        
  560.     MMCN_REFRESH            = 0x8012,                        
  561.     MMCN_REMOVE_CHILDREN    = 0x8013,                        
  562.     MMCN_RENAME             = 0x8014,                        
  563.     MMCN_SELECT             = 0x8015,                        
  564.     MMCN_SHOW               = 0x8016,                        
  565.     MMCN_VIEW_CHANGE        = 0x8017,                        
  566.     MMCN_SNAPINHELP         = 0x8018,                        
  567.     MMCN_CONTEXTHELP        = 0x8019,                        
  568.     MMCN_INITOCX            = 0x801A,                        
  569. #if (MMC_VER >= 0x0110)                                      
  570.     MMCN_FILTER_CHANGE      = 0x801B,                        
  571.     MMCN_FILTERBTN_CLICK    = 0x801C,                        
  572.     MMCN_RESTORE_VIEW       = 0x801D,                        
  573.     MMCN_PRINT              = 0x801E,                        
  574.     MMCN_PRELOAD            = 0x801F,                        
  575.     MMCN_LISTPAD            = 0x8020,                        
  576.     MMCN_EXPANDSYNC         = 0x8021,                        
  577. #if (MMC_VER >= 0x0120)                                      
  578.     MMCN_COLUMNS_CHANGED    = 0x8022,                        
  579. #if (MMC_VER >= 0x0200)                                      
  580.     MMCN_CANPASTE_OUTOFPROC = 0x8023,                        
  581. #endif // MMC_VER >= 0x0200                                  
  582. #endif // MMC_VER >= 0x0120                                  
  583. #endif // MMC_VER >= 0x0110                                  
  584. } MMC_NOTIFY_TYPE;                                           
  585. #if 0
  586. typedef 
  587. enum _MMC_NOTIFY_TYPE
  588.     { MMCN__dummy_ = 0
  589.     }  MMC_NOTIFY_TYPE;
  590. #endif
  591. typedef 
  592. enum _DATA_OBJECT_TYPES
  593.     { CCT_SCOPE = 0x8000,
  594. CCT_RESULT = 0x8001,
  595. CCT_SNAPIN_MANAGER = 0x8002,
  596. CCT_UNINITIALIZED = 0xffff
  597.     }  DATA_OBJECT_TYPES;
  598. #define MMC_NW_OPTION_NONE ( 0 )
  599. #define MMC_NW_OPTION_NOSCOPEPANE ( 0x1 )
  600. #define MMC_NW_OPTION_NOTOOLBARS ( 0x2 )
  601. #define MMC_NW_OPTION_SHORTTITLE ( 0x4 )
  602. #define MMC_NW_OPTION_CUSTOMTITLE ( 0x8 )
  603. #define MMC_NW_OPTION_NOPERSIST ( 0x10 )
  604. #define CCF_NODETYPE ( L"CCF_NODETYPE" )
  605. #define CCF_SZNODETYPE ( L"CCF_SZNODETYPE" )
  606. #define CCF_DISPLAY_NAME ( L"CCF_DISPLAY_NAME" )
  607. #define CCF_SNAPIN_CLASSID ( L"CCF_SNAPIN_CLASSID" )
  608. #define CCF_WINDOW_TITLE ( L"CCF_WINDOW_TITLE" )
  609. #define CCF_MMC_MULTISELECT_DATAOBJECT ( L"CCF_MMC_MULTISELECT_DATAOBJECT" )
  610. typedef struct _SMMCDataObjects
  611.     {
  612.     DWORD count;
  613.     LPDATAOBJECT lpDataObject[ 1 ];
  614.     }  SMMCDataObjects;
  615. #define CCF_MULTI_SELECT_SNAPINS ( L"CCF_MULTI_SELECT_SNAPINS" )
  616. typedef struct _SMMCObjectTypes
  617.     {
  618.     DWORD count;
  619.     GUID guid[ 1 ];
  620.     }  SMMCObjectTypes;
  621. #define CCF_OBJECT_TYPES_IN_MULTI_SELECT ( L"CCF_OBJECT_TYPES_IN_MULTI_SELECT" )
  622. #if (MMC_VER >= 0x0110)
  623. typedef SMMCObjectTypes SMMCDynamicExtensions;
  624. #define CCF_MMC_DYNAMIC_EXTENSIONS ( L"CCF_MMC_DYNAMIC_EXTENSIONS" )
  625. #define CCF_SNAPIN_PRELOADS ( L"CCF_SNAPIN_PRELOADS" )
  626. typedef struct _SNodeID
  627.     {
  628.     DWORD cBytes;
  629.     BYTE id[ 1 ];
  630.     }  SNodeID;
  631. #if (MMC_VER >= 0x0120)
  632. typedef struct _SNodeID2
  633.     {
  634.     DWORD dwFlags;
  635.     DWORD cBytes;
  636.     BYTE id[ 1 ];
  637.     }  SNodeID2;
  638. #define MMC_NODEID_SLOW_RETRIEVAL ( 0x1 )
  639. #define CCF_NODEID2 ( L"CCF_NODEID2" )
  640. #endif // MMC_VER >= 0x0120
  641. #define CCF_NODEID ( L"CCF_NODEID" )
  642. #if (MMC_VER >= 0x0120)
  643. typedef struct _SColumnSetID
  644.     {
  645.     DWORD dwFlags;
  646.     DWORD cBytes;
  647.     BYTE id[ 1 ];
  648.     }  SColumnSetID;
  649. #define CCF_COLUMN_SET_ID ( L"CCF_COLUMN_SET_ID" )
  650. #endif // MMC_VER >= 0x0120
  651. #endif // MMC_VER >= 0x0110
  652. STDAPI MMCPropertyChangeNotify(LONG_PTR lNotifyHandle, LPARAM param);
  653. #if (MMC_VER >= 0x0110)
  654. STDAPI MMCPropertyHelp(LPOLESTR pszHelpTopic);
  655. #endif // MMC_VER >= 0x0110
  656. STDAPI MMCFreeNotifyHandle(LONG_PTR lNotifyHandle);
  657. STDAPI MMCPropPageCallback(void* vpsp);
  658. EXTERN_C const CLSID CLSID_NodeManager;
  659. #if (MMC_VER >= 0x0120)
  660. EXTERN_C const CLSID CLSID_MessageView;
  661. #endif // MMC_VER >= 0x0120
  662. #define DOBJ_NULL        (LPDATAOBJECT)   0
  663. #define DOBJ_CUSTOMOCX   (LPDATAOBJECT)  -1
  664. #define DOBJ_CUSTOMWEB   (LPDATAOBJECT)  -2
  665. #if (MMC_VER >= 0x0110)
  666. #if (MMC_VER >= 0x0120)
  667. #define DOBJ_NOCONSOLE   (LPDATAOBJECT)  -3
  668. #endif // MMC_VER >= 0x0120
  669. #define SPECIAL_DOBJ_MIN                -10
  670. #define SPECIAL_DOBJ_MAX                  0
  671. #endif // MMC_VER >= 0x0110
  672. #define IS_SPECIAL_DATAOBJECT(d) (((LONG_PTR)(d) >= SPECIAL_DOBJ_MIN)   && ((LONG_PTR)(d) <= SPECIAL_DOBJ_MAX))
  673. #define IS_SPECIAL_COOKIE(c)     (((c)          >= SPECIAL_COOKIE_MIN) && ((c)          <= SPECIAL_COOKIE_MAX))
  674. extern RPC_IF_HANDLE __MIDL_itf_mmc_0000_v0_0_c_ifspec;
  675. extern RPC_IF_HANDLE __MIDL_itf_mmc_0000_v0_0_s_ifspec;
  676. #ifndef __IComponentData_INTERFACE_DEFINED__
  677. #define __IComponentData_INTERFACE_DEFINED__
  678. /* interface IComponentData */
  679. /* [unique][helpstring][uuid][object] */ 
  680. EXTERN_C const IID IID_IComponentData;
  681. #if defined(__cplusplus) && !defined(CINTERFACE)
  682.     
  683.     MIDL_INTERFACE("955AB28A-5218-11D0-A985-00C04FD8D565")
  684.     IComponentData : public IUnknown
  685.     {
  686.     public:
  687.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Initialize( 
  688.             /* [in] */ LPUNKNOWN pUnknown) = 0;
  689.         
  690.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CreateComponent( 
  691.             /* [out] */ LPCOMPONENT *ppComponent) = 0;
  692.         
  693.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Notify( 
  694.             /* [in] */ LPDATAOBJECT lpDataObject,
  695.             /* [in] */ MMC_NOTIFY_TYPE event,
  696.             /* [in] */ LPARAM arg,
  697.             /* [in] */ LPARAM param) = 0;
  698.         
  699.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Destroy( void) = 0;
  700.         
  701.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE QueryDataObject( 
  702.             /* [in] */ MMC_COOKIE cookie,
  703.             /* [in] */ DATA_OBJECT_TYPES type,
  704.             /* [out] */ LPDATAOBJECT *ppDataObject) = 0;
  705.         
  706.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetDisplayInfo( 
  707.             /* [out][in] */ SCOPEDATAITEM *pScopeDataItem) = 0;
  708.         
  709.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CompareObjects( 
  710.             /* [in] */ LPDATAOBJECT lpDataObjectA,
  711.             /* [in] */ LPDATAOBJECT lpDataObjectB) = 0;
  712.         
  713.     };
  714.     
  715. #else  /* C style interface */
  716.     typedef struct IComponentDataVtbl
  717.     {
  718.         BEGIN_INTERFACE
  719.         
  720.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  721.             IComponentData * This,
  722.             /* [in] */ REFIID riid,
  723.             /* [iid_is][out] */ void **ppvObject);
  724.         
  725.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  726.             IComponentData * This);
  727.         
  728.         ULONG ( STDMETHODCALLTYPE *Release )( 
  729.             IComponentData * This);
  730.         
  731.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Initialize )( 
  732.             IComponentData * This,
  733.             /* [in] */ LPUNKNOWN pUnknown);
  734.         
  735.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreateComponent )( 
  736.             IComponentData * This,
  737.             /* [out] */ LPCOMPONENT *ppComponent);
  738.         
  739.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Notify )( 
  740.             IComponentData * This,
  741.             /* [in] */ LPDATAOBJECT lpDataObject,
  742.             /* [in] */ MMC_NOTIFY_TYPE event,
  743.             /* [in] */ LPARAM arg,
  744.             /* [in] */ LPARAM param);
  745.         
  746.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Destroy )( 
  747.             IComponentData * This);
  748.         
  749.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *QueryDataObject )( 
  750.             IComponentData * This,
  751.             /* [in] */ MMC_COOKIE cookie,
  752.             /* [in] */ DATA_OBJECT_TYPES type,
  753.             /* [out] */ LPDATAOBJECT *ppDataObject);
  754.         
  755.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetDisplayInfo )( 
  756.             IComponentData * This,
  757.             /* [out][in] */ SCOPEDATAITEM *pScopeDataItem);
  758.         
  759.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CompareObjects )( 
  760.             IComponentData * This,
  761.             /* [in] */ LPDATAOBJECT lpDataObjectA,
  762.             /* [in] */ LPDATAOBJECT lpDataObjectB);
  763.         
  764.         END_INTERFACE
  765.     } IComponentDataVtbl;
  766.     interface IComponentData
  767.     {
  768.         CONST_VTBL struct IComponentDataVtbl *lpVtbl;
  769.     };
  770.     
  771. #ifdef COBJMACROS
  772. #define IComponentData_QueryInterface(This,riid,ppvObject)
  773.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  774. #define IComponentData_AddRef(This)
  775.     (This)->lpVtbl -> AddRef(This)
  776. #define IComponentData_Release(This)
  777.     (This)->lpVtbl -> Release(This)
  778. #define IComponentData_Initialize(This,pUnknown)
  779.     (This)->lpVtbl -> Initialize(This,pUnknown)
  780. #define IComponentData_CreateComponent(This,ppComponent)
  781.     (This)->lpVtbl -> CreateComponent(This,ppComponent)
  782. #define IComponentData_Notify(This,lpDataObject,event,arg,param)
  783.     (This)->lpVtbl -> Notify(This,lpDataObject,event,arg,param)
  784. #define IComponentData_Destroy(This)
  785.     (This)->lpVtbl -> Destroy(This)
  786. #define IComponentData_QueryDataObject(This,cookie,type,ppDataObject)
  787.     (This)->lpVtbl -> QueryDataObject(This,cookie,type,ppDataObject)
  788. #define IComponentData_GetDisplayInfo(This,pScopeDataItem)
  789.     (This)->lpVtbl -> GetDisplayInfo(This,pScopeDataItem)
  790. #define IComponentData_CompareObjects(This,lpDataObjectA,lpDataObjectB)
  791.     (This)->lpVtbl -> CompareObjects(This,lpDataObjectA,lpDataObjectB)
  792. #endif /* COBJMACROS */
  793. #endif  /* C style interface */
  794. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IComponentData_Initialize_Proxy( 
  795.     IComponentData * This,
  796.     /* [in] */ LPUNKNOWN pUnknown);
  797. void __RPC_STUB IComponentData_Initialize_Stub(
  798.     IRpcStubBuffer *This,
  799.     IRpcChannelBuffer *_pRpcChannelBuffer,
  800.     PRPC_MESSAGE _pRpcMessage,
  801.     DWORD *_pdwStubPhase);
  802. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IComponentData_CreateComponent_Proxy( 
  803.     IComponentData * This,
  804.     /* [out] */ LPCOMPONENT *ppComponent);
  805. void __RPC_STUB IComponentData_CreateComponent_Stub(
  806.     IRpcStubBuffer *This,
  807.     IRpcChannelBuffer *_pRpcChannelBuffer,
  808.     PRPC_MESSAGE _pRpcMessage,
  809.     DWORD *_pdwStubPhase);
  810. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IComponentData_Notify_Proxy( 
  811.     IComponentData * This,
  812.     /* [in] */ LPDATAOBJECT lpDataObject,
  813.     /* [in] */ MMC_NOTIFY_TYPE event,
  814.     /* [in] */ LPARAM arg,
  815.     /* [in] */ LPARAM param);
  816. void __RPC_STUB IComponentData_Notify_Stub(
  817.     IRpcStubBuffer *This,
  818.     IRpcChannelBuffer *_pRpcChannelBuffer,
  819.     PRPC_MESSAGE _pRpcMessage,
  820.     DWORD *_pdwStubPhase);
  821. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IComponentData_Destroy_Proxy( 
  822.     IComponentData * This);
  823. void __RPC_STUB IComponentData_Destroy_Stub(
  824.     IRpcStubBuffer *This,
  825.     IRpcChannelBuffer *_pRpcChannelBuffer,
  826.     PRPC_MESSAGE _pRpcMessage,
  827.     DWORD *_pdwStubPhase);
  828. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IComponentData_QueryDataObject_Proxy( 
  829.     IComponentData * This,
  830.     /* [in] */ MMC_COOKIE cookie,
  831.     /* [in] */ DATA_OBJECT_TYPES type,
  832.     /* [out] */ LPDATAOBJECT *ppDataObject);
  833. void __RPC_STUB IComponentData_QueryDataObject_Stub(
  834.     IRpcStubBuffer *This,
  835.     IRpcChannelBuffer *_pRpcChannelBuffer,
  836.     PRPC_MESSAGE _pRpcMessage,
  837.     DWORD *_pdwStubPhase);
  838. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IComponentData_GetDisplayInfo_Proxy( 
  839.     IComponentData * This,
  840.     /* [out][in] */ SCOPEDATAITEM *pScopeDataItem);
  841. void __RPC_STUB IComponentData_GetDisplayInfo_Stub(
  842.     IRpcStubBuffer *This,
  843.     IRpcChannelBuffer *_pRpcChannelBuffer,
  844.     PRPC_MESSAGE _pRpcMessage,
  845.     DWORD *_pdwStubPhase);
  846. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IComponentData_CompareObjects_Proxy( 
  847.     IComponentData * This,
  848.     /* [in] */ LPDATAOBJECT lpDataObjectA,
  849.     /* [in] */ LPDATAOBJECT lpDataObjectB);
  850. void __RPC_STUB IComponentData_CompareObjects_Stub(
  851.     IRpcStubBuffer *This,
  852.     IRpcChannelBuffer *_pRpcChannelBuffer,
  853.     PRPC_MESSAGE _pRpcMessage,
  854.     DWORD *_pdwStubPhase);
  855. #endif  /* __IComponentData_INTERFACE_DEFINED__ */
  856. #ifndef __IComponent_INTERFACE_DEFINED__
  857. #define __IComponent_INTERFACE_DEFINED__
  858. /* interface IComponent */
  859. /* [unique][helpstring][uuid][object] */ 
  860. EXTERN_C const IID IID_IComponent;
  861. #if defined(__cplusplus) && !defined(CINTERFACE)
  862.     
  863.     MIDL_INTERFACE("43136EB2-D36C-11CF-ADBC-00AA00A80033")
  864.     IComponent : public IUnknown
  865.     {
  866.     public:
  867.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Initialize( 
  868.             /* [in] */ LPCONSOLE lpConsole) = 0;
  869.         
  870.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Notify( 
  871.             /* [in] */ LPDATAOBJECT lpDataObject,
  872.             /* [in] */ MMC_NOTIFY_TYPE event,
  873.             /* [in] */ LPARAM arg,
  874.             /* [in] */ LPARAM param) = 0;
  875.         
  876.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Destroy( 
  877.             /* [in] */ MMC_COOKIE cookie) = 0;
  878.         
  879.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE QueryDataObject( 
  880.             /* [in] */ MMC_COOKIE cookie,
  881.             /* [in] */ DATA_OBJECT_TYPES type,
  882.             /* [out] */ LPDATAOBJECT *ppDataObject) = 0;
  883.         
  884.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetResultViewType( 
  885.             /* [in] */ MMC_COOKIE cookie,
  886.             /* [out] */ LPOLESTR *ppViewType,
  887.             /* [out] */ long *pViewOptions) = 0;
  888.         
  889.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetDisplayInfo( 
  890.             /* [out][in] */ RESULTDATAITEM *pResultDataItem) = 0;
  891.         
  892.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CompareObjects( 
  893.             /* [in] */ LPDATAOBJECT lpDataObjectA,
  894.             /* [in] */ LPDATAOBJECT lpDataObjectB) = 0;
  895.         
  896.     };
  897.     
  898. #else  /* C style interface */
  899.     typedef struct IComponentVtbl
  900.     {
  901.         BEGIN_INTERFACE
  902.         
  903.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  904.             IComponent * This,
  905.             /* [in] */ REFIID riid,
  906.             /* [iid_is][out] */ void **ppvObject);
  907.         
  908.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  909.             IComponent * This);
  910.         
  911.         ULONG ( STDMETHODCALLTYPE *Release )( 
  912.             IComponent * This);
  913.         
  914.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Initialize )( 
  915.             IComponent * This,
  916.             /* [in] */ LPCONSOLE lpConsole);
  917.         
  918.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Notify )( 
  919.             IComponent * This,
  920.             /* [in] */ LPDATAOBJECT lpDataObject,
  921.             /* [in] */ MMC_NOTIFY_TYPE event,
  922.             /* [in] */ LPARAM arg,
  923.             /* [in] */ LPARAM param);
  924.         
  925.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Destroy )( 
  926.             IComponent * This,
  927.             /* [in] */ MMC_COOKIE cookie);
  928.         
  929.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *QueryDataObject )( 
  930.             IComponent * This,
  931.             /* [in] */ MMC_COOKIE cookie,
  932.             /* [in] */ DATA_OBJECT_TYPES type,
  933.             /* [out] */ LPDATAOBJECT *ppDataObject);
  934.         
  935.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetResultViewType )( 
  936.             IComponent * This,
  937.             /* [in] */ MMC_COOKIE cookie,
  938.             /* [out] */ LPOLESTR *ppViewType,
  939.             /* [out] */ long *pViewOptions);
  940.         
  941.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetDisplayInfo )( 
  942.             IComponent * This,
  943.             /* [out][in] */ RESULTDATAITEM *pResultDataItem);
  944.         
  945.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CompareObjects )( 
  946.             IComponent * This,
  947.             /* [in] */ LPDATAOBJECT lpDataObjectA,
  948.             /* [in] */ LPDATAOBJECT lpDataObjectB);
  949.         
  950.         END_INTERFACE
  951.     } IComponentVtbl;
  952.     interface IComponent
  953.     {
  954.         CONST_VTBL struct IComponentVtbl *lpVtbl;
  955.     };
  956.     
  957. #ifdef COBJMACROS
  958. #define IComponent_QueryInterface(This,riid,ppvObject)
  959.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  960. #define IComponent_AddRef(This)
  961.     (This)->lpVtbl -> AddRef(This)
  962. #define IComponent_Release(This)
  963.     (This)->lpVtbl -> Release(This)
  964. #define IComponent_Initialize(This,lpConsole)
  965.     (This)->lpVtbl -> Initialize(This,lpConsole)
  966. #define IComponent_Notify(This,lpDataObject,event,arg,param)
  967.     (This)->lpVtbl -> Notify(This,lpDataObject,event,arg,param)
  968. #define IComponent_Destroy(This,cookie)
  969.     (This)->lpVtbl -> Destroy(This,cookie)
  970. #define IComponent_QueryDataObject(This,cookie,type,ppDataObject)
  971.     (This)->lpVtbl -> QueryDataObject(This,cookie,type,ppDataObject)
  972. #define IComponent_GetResultViewType(This,cookie,ppViewType,pViewOptions)
  973.     (This)->lpVtbl -> GetResultViewType(This,cookie,ppViewType,pViewOptions)
  974. #define IComponent_GetDisplayInfo(This,pResultDataItem)
  975.     (This)->lpVtbl -> GetDisplayInfo(This,pResultDataItem)
  976. #define IComponent_CompareObjects(This,lpDataObjectA,lpDataObjectB)
  977.     (This)->lpVtbl -> CompareObjects(This,lpDataObjectA,lpDataObjectB)
  978. #endif /* COBJMACROS */
  979. #endif  /* C style interface */
  980. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IComponent_Initialize_Proxy( 
  981.     IComponent * This,
  982.     /* [in] */ LPCONSOLE lpConsole);
  983. void __RPC_STUB IComponent_Initialize_Stub(
  984.     IRpcStubBuffer *This,
  985.     IRpcChannelBuffer *_pRpcChannelBuffer,
  986.     PRPC_MESSAGE _pRpcMessage,
  987.     DWORD *_pdwStubPhase);
  988. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IComponent_Notify_Proxy( 
  989.     IComponent * This,
  990.     /* [in] */ LPDATAOBJECT lpDataObject,
  991.     /* [in] */ MMC_NOTIFY_TYPE event,
  992.     /* [in] */ LPARAM arg,
  993.     /* [in] */ LPARAM param);
  994. void __RPC_STUB IComponent_Notify_Stub(
  995.     IRpcStubBuffer *This,
  996.     IRpcChannelBuffer *_pRpcChannelBuffer,
  997.     PRPC_MESSAGE _pRpcMessage,
  998.     DWORD *_pdwStubPhase);
  999. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IComponent_Destroy_Proxy( 
  1000.     IComponent * This,
  1001.     /* [in] */ MMC_COOKIE cookie);
  1002. void __RPC_STUB IComponent_Destroy_Stub(
  1003.     IRpcStubBuffer *This,
  1004.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1005.     PRPC_MESSAGE _pRpcMessage,
  1006.     DWORD *_pdwStubPhase);
  1007. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IComponent_QueryDataObject_Proxy( 
  1008.     IComponent * This,
  1009.     /* [in] */ MMC_COOKIE cookie,
  1010.     /* [in] */ DATA_OBJECT_TYPES type,
  1011.     /* [out] */ LPDATAOBJECT *ppDataObject);
  1012. void __RPC_STUB IComponent_QueryDataObject_Stub(
  1013.     IRpcStubBuffer *This,
  1014.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1015.     PRPC_MESSAGE _pRpcMessage,
  1016.     DWORD *_pdwStubPhase);
  1017. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IComponent_GetResultViewType_Proxy( 
  1018.     IComponent * This,
  1019.     /* [in] */ MMC_COOKIE cookie,
  1020.     /* [out] */ LPOLESTR *ppViewType,
  1021.     /* [out] */ long *pViewOptions);
  1022. void __RPC_STUB IComponent_GetResultViewType_Stub(
  1023.     IRpcStubBuffer *This,
  1024.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1025.     PRPC_MESSAGE _pRpcMessage,
  1026.     DWORD *_pdwStubPhase);
  1027. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IComponent_GetDisplayInfo_Proxy( 
  1028.     IComponent * This,
  1029.     /* [out][in] */ RESULTDATAITEM *pResultDataItem);
  1030. void __RPC_STUB IComponent_GetDisplayInfo_Stub(
  1031.     IRpcStubBuffer *This,
  1032.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1033.     PRPC_MESSAGE _pRpcMessage,
  1034.     DWORD *_pdwStubPhase);
  1035. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IComponent_CompareObjects_Proxy( 
  1036.     IComponent * This,
  1037.     /* [in] */ LPDATAOBJECT lpDataObjectA,
  1038.     /* [in] */ LPDATAOBJECT lpDataObjectB);
  1039. void __RPC_STUB IComponent_CompareObjects_Stub(
  1040.     IRpcStubBuffer *This,
  1041.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1042.     PRPC_MESSAGE _pRpcMessage,
  1043.     DWORD *_pdwStubPhase);
  1044. #endif  /* __IComponent_INTERFACE_DEFINED__ */
  1045. #ifndef __IResultDataCompare_INTERFACE_DEFINED__
  1046. #define __IResultDataCompare_INTERFACE_DEFINED__
  1047. /* interface IResultDataCompare */
  1048. /* [unique][helpstring][uuid][object] */ 
  1049. EXTERN_C const IID IID_IResultDataCompare;
  1050. #if defined(__cplusplus) && !defined(CINTERFACE)
  1051.     
  1052.     MIDL_INTERFACE("E8315A52-7A1A-11D0-A2D2-00C04FD909DD")
  1053.     IResultDataCompare : public IUnknown
  1054.     {
  1055.     public:
  1056.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Compare( 
  1057.             /* [in] */ LPARAM lUserParam,
  1058.             /* [in] */ MMC_COOKIE cookieA,
  1059.             /* [in] */ MMC_COOKIE cookieB,
  1060.             /* [out][in] */ int *pnResult) = 0;
  1061.         
  1062.     };
  1063.     
  1064. #else  /* C style interface */
  1065.     typedef struct IResultDataCompareVtbl
  1066.     {
  1067.         BEGIN_INTERFACE
  1068.         
  1069.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1070.             IResultDataCompare * This,
  1071.             /* [in] */ REFIID riid,
  1072.             /* [iid_is][out] */ void **ppvObject);
  1073.         
  1074.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1075.             IResultDataCompare * This);
  1076.         
  1077.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1078.             IResultDataCompare * This);
  1079.         
  1080.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Compare )( 
  1081.             IResultDataCompare * This,
  1082.             /* [in] */ LPARAM lUserParam,
  1083.             /* [in] */ MMC_COOKIE cookieA,
  1084.             /* [in] */ MMC_COOKIE cookieB,
  1085.             /* [out][in] */ int *pnResult);
  1086.         
  1087.         END_INTERFACE
  1088.     } IResultDataCompareVtbl;
  1089.     interface IResultDataCompare
  1090.     {
  1091.         CONST_VTBL struct IResultDataCompareVtbl *lpVtbl;
  1092.     };
  1093.     
  1094. #ifdef COBJMACROS
  1095. #define IResultDataCompare_QueryInterface(This,riid,ppvObject)
  1096.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1097. #define IResultDataCompare_AddRef(This)
  1098.     (This)->lpVtbl -> AddRef(This)
  1099. #define IResultDataCompare_Release(This)
  1100.     (This)->lpVtbl -> Release(This)
  1101. #define IResultDataCompare_Compare(This,lUserParam,cookieA,cookieB,pnResult)
  1102.     (This)->lpVtbl -> Compare(This,lUserParam,cookieA,cookieB,pnResult)
  1103. #endif /* COBJMACROS */
  1104. #endif  /* C style interface */
  1105. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IResultDataCompare_Compare_Proxy( 
  1106.     IResultDataCompare * This,
  1107.     /* [in] */ LPARAM lUserParam,
  1108.     /* [in] */ MMC_COOKIE cookieA,
  1109.     /* [in] */ MMC_COOKIE cookieB,
  1110.     /* [out][in] */ int *pnResult);
  1111. void __RPC_STUB IResultDataCompare_Compare_Stub(
  1112.     IRpcStubBuffer *This,
  1113.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1114.     PRPC_MESSAGE _pRpcMessage,
  1115.     DWORD *_pdwStubPhase);
  1116. #endif  /* __IResultDataCompare_INTERFACE_DEFINED__ */
  1117. #ifndef __IResultOwnerData_INTERFACE_DEFINED__
  1118. #define __IResultOwnerData_INTERFACE_DEFINED__
  1119. /* interface IResultOwnerData */
  1120. /* [unique][helpstring][uuid][object] */ 
  1121. EXTERN_C const IID IID_IResultOwnerData;
  1122. #if defined(__cplusplus) && !defined(CINTERFACE)
  1123.     
  1124.     MIDL_INTERFACE("9CB396D8-EA83-11d0-AEF1-00C04FB6DD2C")
  1125.     IResultOwnerData : public IUnknown
  1126.     {
  1127.     public:
  1128.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE FindItem( 
  1129.             /* [in] */ LPRESULTFINDINFO pFindInfo,
  1130.             /* [out] */ int *pnFoundIndex) = 0;
  1131.         
  1132.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CacheHint( 
  1133.             /* [in] */ int nStartIndex,
  1134.             /* [in] */ int nEndIndex) = 0;
  1135.         
  1136.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SortItems( 
  1137.             /* [in] */ int nColumn,
  1138.             /* [in] */ DWORD dwSortOptions,
  1139.             /* [in] */ LPARAM lUserParam) = 0;
  1140.         
  1141.     };
  1142.     
  1143. #else  /* C style interface */
  1144.     typedef struct IResultOwnerDataVtbl
  1145.     {
  1146.         BEGIN_INTERFACE
  1147.         
  1148.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1149.             IResultOwnerData * This,
  1150.             /* [in] */ REFIID riid,
  1151.             /* [iid_is][out] */ void **ppvObject);
  1152.         
  1153.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1154.             IResultOwnerData * This);
  1155.         
  1156.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1157.             IResultOwnerData * This);
  1158.         
  1159.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *FindItem )( 
  1160.             IResultOwnerData * This,
  1161.             /* [in] */ LPRESULTFINDINFO pFindInfo,
  1162.             /* [out] */ int *pnFoundIndex);
  1163.         
  1164.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CacheHint )( 
  1165.             IResultOwnerData * This,
  1166.             /* [in] */ int nStartIndex,
  1167.             /* [in] */ int nEndIndex);
  1168.         
  1169.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SortItems )( 
  1170.             IResultOwnerData * This,
  1171.             /* [in] */ int nColumn,
  1172.             /* [in] */ DWORD dwSortOptions,
  1173.             /* [in] */ LPARAM lUserParam);
  1174.         
  1175.         END_INTERFACE
  1176.     } IResultOwnerDataVtbl;
  1177.     interface IResultOwnerData
  1178.     {
  1179.         CONST_VTBL struct IResultOwnerDataVtbl *lpVtbl;
  1180.     };
  1181.     
  1182. #ifdef COBJMACROS
  1183. #define IResultOwnerData_QueryInterface(This,riid,ppvObject)
  1184.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1185. #define IResultOwnerData_AddRef(This)
  1186.     (This)->lpVtbl -> AddRef(This)
  1187. #define IResultOwnerData_Release(This)
  1188.     (This)->lpVtbl -> Release(This)
  1189. #define IResultOwnerData_FindItem(This,pFindInfo,pnFoundIndex)
  1190.     (This)->lpVtbl -> FindItem(This,pFindInfo,pnFoundIndex)
  1191. #define IResultOwnerData_CacheHint(This,nStartIndex,nEndIndex)
  1192.     (This)->lpVtbl -> CacheHint(This,nStartIndex,nEndIndex)
  1193. #define IResultOwnerData_SortItems(This,nColumn,dwSortOptions,lUserParam)
  1194.     (This)->lpVtbl -> SortItems(This,nColumn,dwSortOptions,lUserParam)
  1195. #endif /* COBJMACROS */
  1196. #endif  /* C style interface */
  1197. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IResultOwnerData_FindItem_Proxy( 
  1198.     IResultOwnerData * This,
  1199.     /* [in] */ LPRESULTFINDINFO pFindInfo,
  1200.     /* [out] */ int *pnFoundIndex);
  1201. void __RPC_STUB IResultOwnerData_FindItem_Stub(
  1202.     IRpcStubBuffer *This,
  1203.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1204.     PRPC_MESSAGE _pRpcMessage,
  1205.     DWORD *_pdwStubPhase);
  1206. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IResultOwnerData_CacheHint_Proxy( 
  1207.     IResultOwnerData * This,
  1208.     /* [in] */ int nStartIndex,
  1209.     /* [in] */ int nEndIndex);
  1210. void __RPC_STUB IResultOwnerData_CacheHint_Stub(
  1211.     IRpcStubBuffer *This,
  1212.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1213.     PRPC_MESSAGE _pRpcMessage,
  1214.     DWORD *_pdwStubPhase);
  1215. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IResultOwnerData_SortItems_Proxy( 
  1216.     IResultOwnerData * This,
  1217.     /* [in] */ int nColumn,
  1218.     /* [in] */ DWORD dwSortOptions,
  1219.     /* [in] */ LPARAM lUserParam);
  1220. void __RPC_STUB IResultOwnerData_SortItems_Stub(
  1221.     IRpcStubBuffer *This,
  1222.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1223.     PRPC_MESSAGE _pRpcMessage,
  1224.     DWORD *_pdwStubPhase);
  1225. #endif  /* __IResultOwnerData_INTERFACE_DEFINED__ */
  1226. #ifndef __IConsole_INTERFACE_DEFINED__
  1227. #define __IConsole_INTERFACE_DEFINED__
  1228. /* interface IConsole */
  1229. /* [unique][helpstring][uuid][object] */ 
  1230. EXTERN_C const IID IID_IConsole;
  1231. #if defined(__cplusplus) && !defined(CINTERFACE)
  1232.     
  1233.     MIDL_INTERFACE("43136EB1-D36C-11CF-ADBC-00AA00A80033")
  1234.     IConsole : public IUnknown
  1235.     {
  1236.     public:
  1237.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetHeader( 
  1238.             /* [in] */ LPHEADERCTRL pHeader) = 0;
  1239.         
  1240.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetToolbar( 
  1241.             /* [in] */ LPTOOLBAR pToolbar) = 0;
  1242.         
  1243.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE QueryResultView( 
  1244.             /* [out] */ LPUNKNOWN *pUnknown) = 0;
  1245.         
  1246.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE QueryScopeImageList( 
  1247.             /* [out] */ LPIMAGELIST *ppImageList) = 0;
  1248.         
  1249.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE QueryResultImageList( 
  1250.             /* [out] */ LPIMAGELIST *ppImageList) = 0;
  1251.         
  1252.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE UpdateAllViews( 
  1253.             /* [in] */ LPDATAOBJECT lpDataObject,
  1254.             /* [in] */ LPARAM data,
  1255.             /* [in] */ LONG_PTR hint) = 0;
  1256.         
  1257.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE MessageBox( 
  1258.             /* [in] */ LPCWSTR lpszText,
  1259.             /* [in] */ LPCWSTR lpszTitle,
  1260.             /* [in] */ UINT fuStyle,
  1261.             /* [out] */ int *piRetval) = 0;
  1262.         
  1263.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE QueryConsoleVerb( 
  1264.             /* [out] */ LPCONSOLEVERB *ppConsoleVerb) = 0;
  1265.         
  1266.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SelectScopeItem( 
  1267.             /* [in] */ HSCOPEITEM hScopeItem) = 0;
  1268.         
  1269.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetMainWindow( 
  1270.             /* [out] */ HWND *phwnd) = 0;
  1271.         
  1272.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE NewWindow( 
  1273.             /* [in] */ HSCOPEITEM hScopeItem,
  1274.             /* [in] */ unsigned long lOptions) = 0;
  1275.         
  1276.     };
  1277.     
  1278. #else  /* C style interface */
  1279.     typedef struct IConsoleVtbl
  1280.     {
  1281.         BEGIN_INTERFACE
  1282.         
  1283.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1284.             IConsole * This,
  1285.             /* [in] */ REFIID riid,
  1286.             /* [iid_is][out] */ void **ppvObject);
  1287.         
  1288.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1289.             IConsole * This);
  1290.         
  1291.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1292.             IConsole * This);
  1293.         
  1294.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetHeader )( 
  1295.             IConsole * This,
  1296.             /* [in] */ LPHEADERCTRL pHeader);
  1297.         
  1298.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetToolbar )( 
  1299.             IConsole * This,
  1300.             /* [in] */ LPTOOLBAR pToolbar);
  1301.         
  1302.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *QueryResultView )( 
  1303.             IConsole * This,
  1304.             /* [out] */ LPUNKNOWN *pUnknown);
  1305.         
  1306.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *QueryScopeImageList )( 
  1307.             IConsole * This,
  1308.             /* [out] */ LPIMAGELIST *ppImageList);
  1309.         
  1310.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *QueryResultImageList )( 
  1311.             IConsole * This,
  1312.             /* [out] */ LPIMAGELIST *ppImageList);
  1313.         
  1314.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *UpdateAllViews )( 
  1315.             IConsole * This,
  1316.             /* [in] */ LPDATAOBJECT lpDataObject,
  1317.             /* [in] */ LPARAM data,
  1318.             /* [in] */ LONG_PTR hint);
  1319.         
  1320.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *MessageBox )( 
  1321.             IConsole * This,
  1322.             /* [in] */ LPCWSTR lpszText,
  1323.             /* [in] */ LPCWSTR lpszTitle,
  1324.             /* [in] */ UINT fuStyle,
  1325.             /* [out] */ int *piRetval);
  1326.         
  1327.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *QueryConsoleVerb )( 
  1328.             IConsole * This,
  1329.             /* [out] */ LPCONSOLEVERB *ppConsoleVerb);
  1330.         
  1331.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SelectScopeItem )( 
  1332.             IConsole * This,
  1333.             /* [in] */ HSCOPEITEM hScopeItem);
  1334.         
  1335.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetMainWindow )( 
  1336.             IConsole * This,
  1337.             /* [out] */ HWND *phwnd);
  1338.         
  1339.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *NewWindow )( 
  1340.             IConsole * This,
  1341.             /* [in] */ HSCOPEITEM hScopeItem,
  1342.             /* [in] */ unsigned long lOptions);
  1343.         
  1344.         END_INTERFACE
  1345.     } IConsoleVtbl;
  1346.     interface IConsole
  1347.     {
  1348.         CONST_VTBL struct IConsoleVtbl *lpVtbl;
  1349.     };
  1350.     
  1351. #ifdef COBJMACROS
  1352. #define IConsole_QueryInterface(This,riid,ppvObject)
  1353.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1354. #define IConsole_AddRef(This)
  1355.     (This)->lpVtbl -> AddRef(This)
  1356. #define IConsole_Release(This)
  1357.     (This)->lpVtbl -> Release(This)
  1358. #define IConsole_SetHeader(This,pHeader)
  1359.     (This)->lpVtbl -> SetHeader(This,pHeader)
  1360. #define IConsole_SetToolbar(This,pToolbar)
  1361.     (This)->lpVtbl -> SetToolbar(This,pToolbar)
  1362. #define IConsole_QueryResultView(This,pUnknown)
  1363.     (This)->lpVtbl -> QueryResultView(This,pUnknown)
  1364. #define IConsole_QueryScopeImageList(This,ppImageList)
  1365.     (This)->lpVtbl -> QueryScopeImageList(This,ppImageList)
  1366. #define IConsole_QueryResultImageList(This,ppImageList)
  1367.     (This)->lpVtbl -> QueryResultImageList(This,ppImageList)
  1368. #define IConsole_UpdateAllViews(This,lpDataObject,data,hint)
  1369.     (This)->lpVtbl -> UpdateAllViews(This,lpDataObject,data,hint)
  1370. #define IConsole_MessageBox(This,lpszText,lpszTitle,fuStyle,piRetval)
  1371.     (This)->lpVtbl -> MessageBox(This,lpszText,lpszTitle,fuStyle,piRetval)
  1372. #define IConsole_QueryConsoleVerb(This,ppConsoleVerb)
  1373.     (This)->lpVtbl -> QueryConsoleVerb(This,ppConsoleVerb)
  1374. #define IConsole_SelectScopeItem(This,hScopeItem)
  1375.     (This)->lpVtbl -> SelectScopeItem(This,hScopeItem)
  1376. #define IConsole_GetMainWindow(This,phwnd)
  1377.     (This)->lpVtbl -> GetMainWindow(This,phwnd)
  1378. #define IConsole_NewWindow(This,hScopeItem,lOptions)
  1379.     (This)->lpVtbl -> NewWindow(This,hScopeItem,lOptions)
  1380. #endif /* COBJMACROS */
  1381. #endif  /* C style interface */
  1382. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IConsole_SetHeader_Proxy( 
  1383.     IConsole * This,
  1384.     /* [in] */ LPHEADERCTRL pHeader);
  1385. void __RPC_STUB IConsole_SetHeader_Stub(
  1386.     IRpcStubBuffer *This,
  1387.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1388.     PRPC_MESSAGE _pRpcMessage,
  1389.     DWORD *_pdwStubPhase);
  1390. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IConsole_SetToolbar_Proxy( 
  1391.     IConsole * This,
  1392.     /* [in] */ LPTOOLBAR pToolbar);
  1393. void __RPC_STUB IConsole_SetToolbar_Stub(
  1394.     IRpcStubBuffer *This,
  1395.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1396.     PRPC_MESSAGE _pRpcMessage,
  1397.     DWORD *_pdwStubPhase);
  1398. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IConsole_QueryResultView_Proxy( 
  1399.     IConsole * This,
  1400.     /* [out] */ LPUNKNOWN *pUnknown);
  1401. void __RPC_STUB IConsole_QueryResultView_Stub(
  1402.     IRpcStubBuffer *This,
  1403.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1404.     PRPC_MESSAGE _pRpcMessage,
  1405.     DWORD *_pdwStubPhase);
  1406. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IConsole_QueryScopeImageList_Proxy( 
  1407.     IConsole * This,
  1408.     /* [out] */ LPIMAGELIST *ppImageList);
  1409. void __RPC_STUB IConsole_QueryScopeImageList_Stub(
  1410.     IRpcStubBuffer *This,
  1411.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1412.     PRPC_MESSAGE _pRpcMessage,
  1413.     DWORD *_pdwStubPhase);
  1414. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IConsole_QueryResultImageList_Proxy( 
  1415.     IConsole * This,
  1416.     /* [out] */ LPIMAGELIST *ppImageList);
  1417. void __RPC_STUB IConsole_QueryResultImageList_Stub(
  1418.     IRpcStubBuffer *This,
  1419.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1420.     PRPC_MESSAGE _pRpcMessage,
  1421.     DWORD *_pdwStubPhase);
  1422. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IConsole_UpdateAllViews_Proxy( 
  1423.     IConsole * This,
  1424.     /* [in] */ LPDATAOBJECT lpDataObject,
  1425.     /* [in] */ LPARAM data,
  1426.     /* [in] */ LONG_PTR hint);
  1427. void __RPC_STUB IConsole_UpdateAllViews_Stub(
  1428.     IRpcStubBuffer *This,
  1429.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1430.     PRPC_MESSAGE _pRpcMessage,
  1431.     DWORD *_pdwStubPhase);
  1432. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IConsole_MessageBox_Proxy( 
  1433.     IConsole * This,
  1434.     /* [in] */ LPCWSTR lpszText,
  1435.     /* [in] */ LPCWSTR lpszTitle,
  1436.     /* [in] */ UINT fuStyle,
  1437.     /* [out] */ int *piRetval);
  1438. void __RPC_STUB IConsole_MessageBox_Stub(
  1439.     IRpcStubBuffer *This,
  1440.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1441.     PRPC_MESSAGE _pRpcMessage,
  1442.     DWORD *_pdwStubPhase);
  1443. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IConsole_QueryConsoleVerb_Proxy( 
  1444.     IConsole * This,
  1445.     /* [out] */ LPCONSOLEVERB *ppConsoleVerb);
  1446. void __RPC_STUB IConsole_QueryConsoleVerb_Stub(
  1447.     IRpcStubBuffer *This,
  1448.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1449.     PRPC_MESSAGE _pRpcMessage,
  1450.     DWORD *_pdwStubPhase);
  1451. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IConsole_SelectScopeItem_Proxy( 
  1452.     IConsole * This,
  1453.     /* [in] */ HSCOPEITEM hScopeItem);
  1454. void __RPC_STUB IConsole_SelectScopeItem_Stub(
  1455.     IRpcStubBuffer *This,
  1456.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1457.     PRPC_MESSAGE _pRpcMessage,
  1458.     DWORD *_pdwStubPhase);
  1459. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IConsole_GetMainWindow_Proxy( 
  1460.     IConsole * This,
  1461.     /* [out] */ HWND *phwnd);
  1462. void __RPC_STUB IConsole_GetMainWindow_Stub(
  1463.     IRpcStubBuffer *This,
  1464.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1465.     PRPC_MESSAGE _pRpcMessage,
  1466.     DWORD *_pdwStubPhase);
  1467. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IConsole_NewWindow_Proxy( 
  1468.     IConsole * This,
  1469.     /* [in] */ HSCOPEITEM hScopeItem,
  1470.     /* [in] */ unsigned long lOptions);
  1471. void __RPC_STUB IConsole_NewWindow_Stub(
  1472.     IRpcStubBuffer *This,
  1473.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1474.     PRPC_MESSAGE _pRpcMessage,
  1475.     DWORD *_pdwStubPhase);
  1476. #endif  /* __IConsole_INTERFACE_DEFINED__ */
  1477. #ifndef __IHeaderCtrl_INTERFACE_DEFINED__
  1478. #define __IHeaderCtrl_INTERFACE_DEFINED__
  1479. /* interface IHeaderCtrl */
  1480. /* [unique][helpstring][uuid][object] */ 
  1481. #define AUTO_WIDTH ( -1 )
  1482. #if (MMC_VER >= 0x0120)
  1483. #define HIDE_COLUMN ( -4 )
  1484. #endif // MMC_VER >= 0x0120
  1485. EXTERN_C const IID IID_IHeaderCtrl;
  1486. #if defined(__cplusplus) && !defined(CINTERFACE)
  1487.     
  1488.     MIDL_INTERFACE("43136EB3-D36C-11CF-ADBC-00AA00A80033")
  1489.     IHeaderCtrl : public IUnknown
  1490.     {
  1491.     public:
  1492.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE InsertColumn( 
  1493.             /* [in] */ int nCol,
  1494.             /* [in] */ LPCWSTR title,
  1495.             /* [in] */ int nFormat,
  1496.             /* [in] */ int nWidth) = 0;
  1497.         
  1498.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE DeleteColumn( 
  1499.             /* [in] */ int nCol) = 0;
  1500.         
  1501.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetColumnText( 
  1502.             /* [in] */ int nCol,
  1503.             /* [in] */ LPCWSTR title) = 0;
  1504.         
  1505.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetColumnText( 
  1506.             /* [in] */ int nCol,
  1507.             /* [out] */ LPOLESTR *pText) = 0;
  1508.         
  1509.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetColumnWidth( 
  1510.             /* [in] */ int nCol,
  1511.             /* [in] */ int nWidth) = 0;
  1512.         
  1513.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetColumnWidth( 
  1514.             /* [in] */ int nCol,
  1515.             /* [out] */ int *pWidth) = 0;
  1516.         
  1517.     };
  1518.     
  1519. #else  /* C style interface */
  1520.     typedef struct IHeaderCtrlVtbl
  1521.     {
  1522.         BEGIN_INTERFACE
  1523.         
  1524.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1525.             IHeaderCtrl * This,
  1526.             /* [in] */ REFIID riid,
  1527.             /* [iid_is][out] */ void **ppvObject);
  1528.         
  1529.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1530.             IHeaderCtrl * This);
  1531.         
  1532.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1533.             IHeaderCtrl * This);
  1534.         
  1535.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *InsertColumn )( 
  1536.             IHeaderCtrl * This,
  1537.             /* [in] */ int nCol,
  1538.             /* [in] */ LPCWSTR title,
  1539.             /* [in] */ int nFormat,
  1540.             /* [in] */ int nWidth);
  1541.         
  1542.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *DeleteColumn )( 
  1543.             IHeaderCtrl * This,
  1544.             /* [in] */ int nCol);
  1545.         
  1546.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetColumnText )( 
  1547.             IHeaderCtrl * This,
  1548.             /* [in] */ int nCol,
  1549.             /* [in] */ LPCWSTR title);
  1550.         
  1551.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetColumnText )( 
  1552.             IHeaderCtrl * This,
  1553.             /* [in] */ int nCol,
  1554.             /* [out] */ LPOLESTR *pText);
  1555.         
  1556.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetColumnWidth )( 
  1557.             IHeaderCtrl * This,
  1558.             /* [in] */ int nCol,
  1559.             /* [in] */ int nWidth);
  1560.         
  1561.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetColumnWidth )( 
  1562.             IHeaderCtrl * This,
  1563.             /* [in] */ int nCol,
  1564.             /* [out] */ int *pWidth);
  1565.         
  1566.         END_INTERFACE
  1567.     } IHeaderCtrlVtbl;
  1568.     interface IHeaderCtrl
  1569.     {
  1570.         CONST_VTBL struct IHeaderCtrlVtbl *lpVtbl;
  1571.     };
  1572.     
  1573. #ifdef COBJMACROS
  1574. #define IHeaderCtrl_QueryInterface(This,riid,ppvObject)
  1575.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1576. #define IHeaderCtrl_AddRef(This)
  1577.     (This)->lpVtbl -> AddRef(This)
  1578. #define IHeaderCtrl_Release(This)
  1579.     (This)->lpVtbl -> Release(This)
  1580. #define IHeaderCtrl_InsertColumn(This,nCol,title,nFormat,nWidth)
  1581.     (This)->lpVtbl -> InsertColumn(This,nCol,title,nFormat,nWidth)
  1582. #define IHeaderCtrl_DeleteColumn(This,nCol)
  1583.     (This)->lpVtbl -> DeleteColumn(This,nCol)
  1584. #define IHeaderCtrl_SetColumnText(This,nCol,title)
  1585.     (This)->lpVtbl -> SetColumnText(This,nCol,title)
  1586. #define IHeaderCtrl_GetColumnText(This,nCol,pText)
  1587.     (This)->lpVtbl -> GetColumnText(This,nCol,pText)
  1588. #define IHeaderCtrl_SetColumnWidth(This,nCol,nWidth)
  1589.     (This)->lpVtbl -> SetColumnWidth(This,nCol,nWidth)
  1590. #define IHeaderCtrl_GetColumnWidth(This,nCol,pWidth)
  1591.     (This)->lpVtbl -> GetColumnWidth(This,nCol,pWidth)
  1592. #endif /* COBJMACROS */
  1593. #endif  /* C style interface */
  1594. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IHeaderCtrl_InsertColumn_Proxy( 
  1595.     IHeaderCtrl * This,
  1596.     /* [in] */ int nCol,
  1597.     /* [in] */ LPCWSTR title,
  1598.     /* [in] */ int nFormat,
  1599.     /* [in] */ int nWidth);
  1600. void __RPC_STUB IHeaderCtrl_InsertColumn_Stub(
  1601.     IRpcStubBuffer *This,
  1602.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1603.     PRPC_MESSAGE _pRpcMessage,
  1604.     DWORD *_pdwStubPhase);
  1605. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IHeaderCtrl_DeleteColumn_Proxy( 
  1606.     IHeaderCtrl * This,
  1607.     /* [in] */ int nCol);
  1608. void __RPC_STUB IHeaderCtrl_DeleteColumn_Stub(
  1609.     IRpcStubBuffer *This,
  1610.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1611.     PRPC_MESSAGE _pRpcMessage,
  1612.     DWORD *_pdwStubPhase);
  1613. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IHeaderCtrl_SetColumnText_Proxy( 
  1614.     IHeaderCtrl * This,
  1615.     /* [in] */ int nCol,
  1616.     /* [in] */ LPCWSTR title);
  1617. void __RPC_STUB IHeaderCtrl_SetColumnText_Stub(
  1618.     IRpcStubBuffer *This,
  1619.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1620.     PRPC_MESSAGE _pRpcMessage,
  1621.     DWORD *_pdwStubPhase);
  1622. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IHeaderCtrl_GetColumnText_Proxy( 
  1623.     IHeaderCtrl * This,
  1624.     /* [in] */ int nCol,
  1625.     /* [out] */ LPOLESTR *pText);
  1626. void __RPC_STUB IHeaderCtrl_GetColumnText_Stub(
  1627.     IRpcStubBuffer *This,
  1628.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1629.     PRPC_MESSAGE _pRpcMessage,
  1630.     DWORD *_pdwStubPhase);
  1631. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IHeaderCtrl_SetColumnWidth_Proxy( 
  1632.     IHeaderCtrl * This,
  1633.     /* [in] */ int nCol,
  1634.     /* [in] */ int nWidth);
  1635. void __RPC_STUB IHeaderCtrl_SetColumnWidth_Stub(
  1636.     IRpcStubBuffer *This,
  1637.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1638.     PRPC_MESSAGE _pRpcMessage,
  1639.     DWORD *_pdwStubPhase);
  1640. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IHeaderCtrl_GetColumnWidth_Proxy( 
  1641.     IHeaderCtrl * This,
  1642.     /* [in] */ int nCol,
  1643.     /* [out] */ int *pWidth);
  1644. void __RPC_STUB IHeaderCtrl_GetColumnWidth_Stub(
  1645.     IRpcStubBuffer *This,
  1646.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1647.     PRPC_MESSAGE _pRpcMessage,
  1648.     DWORD *_pdwStubPhase);
  1649. #endif  /* __IHeaderCtrl_INTERFACE_DEFINED__ */
  1650. /* interface __MIDL_itf_mmc_0116 */
  1651. /* [local] */ 
  1652. enum __MIDL___MIDL_itf_mmc_0116_0001
  1653.     { CCM_INSERTIONPOINTID_MASK_SPECIAL = 0xffff0000,
  1654. CCM_INSERTIONPOINTID_MASK_SHARED = 0x80000000,
  1655. CCM_INSERTIONPOINTID_MASK_CREATE_PRIMARY = 0x40000000,
  1656. CCM_INSERTIONPOINTID_MASK_ADD_PRIMARY = 0x20000000,
  1657. CCM_INSERTIONPOINTID_MASK_ADD_3RDPARTY = 0x10000000,
  1658. CCM_INSERTIONPOINTID_MASK_RESERVED = 0xfff0000,
  1659. CCM_INSERTIONPOINTID_MASK_FLAGINDEX = 0x1f,
  1660. CCM_INSERTIONPOINTID_PRIMARY_TOP = 0xa0000000,
  1661. CCM_INSERTIONPOINTID_PRIMARY_NEW = 0xa0000001,
  1662. CCM_INSERTIONPOINTID_PRIMARY_TASK = 0xa0000002,
  1663. CCM_INSERTIONPOINTID_PRIMARY_VIEW = 0xa0000003,
  1664. CCM_INSERTIONPOINTID_3RDPARTY_NEW = 0x90000001,
  1665. CCM_INSERTIONPOINTID_3RDPARTY_TASK = 0x90000002,
  1666. CCM_INSERTIONPOINTID_ROOT_MENU = 0x80000000
  1667.     } ;
  1668. enum __MIDL___MIDL_itf_mmc_0116_0002
  1669.     { CCM_INSERTIONALLOWED_TOP = 1L << (CCM_INSERTIONPOINTID_PRIMARY_TOP & CCM_INSERTIONPOINTID_MASK_FLAGINDEX),
  1670. CCM_INSERTIONALLOWED_NEW = 1L << (CCM_INSERTIONPOINTID_PRIMARY_NEW & CCM_INSERTIONPOINTID_MASK_FLAGINDEX),
  1671. CCM_INSERTIONALLOWED_TASK = 1L << (CCM_INSERTIONPOINTID_PRIMARY_TASK & CCM_INSERTIONPOINTID_MASK_FLAGINDEX),
  1672. CCM_INSERTIONALLOWED_VIEW = 1L << (CCM_INSERTIONPOINTID_PRIMARY_VIEW & CCM_INSERTIONPOINTID_MASK_FLAGINDEX)
  1673.     } ;
  1674. enum __MIDL___MIDL_itf_mmc_0116_0003
  1675.     { CCM_COMMANDID_MASK_RESERVED = 0xffff0000
  1676.     } ;
  1677. enum __MIDL___MIDL_itf_mmc_0116_0004
  1678.     { CCM_SPECIAL_SEPARATOR = 0x1,
  1679. CCM_SPECIAL_SUBMENU = 0x2,
  1680. CCM_SPECIAL_DEFAULT_ITEM = 0x4,
  1681. CCM_SPECIAL_INSERTION_POINT = 0x8,
  1682. CCM_SPECIAL_TESTONLY = 0x10
  1683.     } ;
  1684. extern RPC_IF_HANDLE __MIDL_itf_mmc_0116_v0_0_c_ifspec;
  1685. extern RPC_IF_HANDLE __MIDL_itf_mmc_0116_v0_0_s_ifspec;
  1686. #ifndef __IContextMenuCallback_INTERFACE_DEFINED__
  1687. #define __IContextMenuCallback_INTERFACE_DEFINED__
  1688. /* interface IContextMenuCallback */
  1689. /* [unique][helpstring][uuid][object] */ 
  1690. EXTERN_C const IID IID_IContextMenuCallback;
  1691. #if defined(__cplusplus) && !defined(CINTERFACE)
  1692.     
  1693.     MIDL_INTERFACE("43136EB7-D36C-11CF-ADBC-00AA00A80033")
  1694.     IContextMenuCallback : public IUnknown
  1695.     {
  1696.     public:
  1697.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE AddItem( 
  1698.             /* [in] */ CONTEXTMENUITEM *pItem) = 0;
  1699.         
  1700.     };
  1701.     
  1702. #else  /* C style interface */
  1703.     typedef struct IContextMenuCallbackVtbl
  1704.     {
  1705.         BEGIN_INTERFACE
  1706.         
  1707.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1708.             IContextMenuCallback * This,
  1709.             /* [in] */ REFIID riid,
  1710.             /* [iid_is][out] */ void **ppvObject);
  1711.         
  1712.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1713.             IContextMenuCallback * This);
  1714.         
  1715.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1716.             IContextMenuCallback * This);
  1717.         
  1718.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *AddItem )( 
  1719.             IContextMenuCallback * This,
  1720.             /* [in] */ CONTEXTMENUITEM *pItem);
  1721.         
  1722.         END_INTERFACE
  1723.     } IContextMenuCallbackVtbl;
  1724.     interface IContextMenuCallback
  1725.     {
  1726.         CONST_VTBL struct IContextMenuCallbackVtbl *lpVtbl;
  1727.     };
  1728.     
  1729. #ifdef COBJMACROS
  1730. #define IContextMenuCallback_QueryInterface(This,riid,ppvObject)
  1731.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1732. #define IContextMenuCallback_AddRef(This)
  1733.     (This)->lpVtbl -> AddRef(This)
  1734. #define IContextMenuCallback_Release(This)
  1735.     (This)->lpVtbl -> Release(This)
  1736. #define IContextMenuCallback_AddItem(This,pItem)
  1737.     (This)->lpVtbl -> AddItem(This,pItem)
  1738. #endif /* COBJMACROS */
  1739. #endif  /* C style interface */
  1740. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IContextMenuCallback_AddItem_Proxy( 
  1741.     IContextMenuCallback * This,
  1742.     /* [in] */ CONTEXTMENUITEM *pItem);
  1743. void __RPC_STUB IContextMenuCallback_AddItem_Stub(
  1744.     IRpcStubBuffer *This,
  1745.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1746.     PRPC_MESSAGE _pRpcMessage,
  1747.     DWORD *_pdwStubPhase);
  1748. #endif  /* __IContextMenuCallback_INTERFACE_DEFINED__ */
  1749. #ifndef __IContextMenuProvider_INTERFACE_DEFINED__
  1750. #define __IContextMenuProvider_INTERFACE_DEFINED__
  1751. /* interface IContextMenuProvider */
  1752. /* [unique][helpstring][object][uuid][object] */ 
  1753. EXTERN_C const IID IID_IContextMenuProvider;
  1754. #if defined(__cplusplus) && !defined(CINTERFACE)
  1755.     
  1756.     MIDL_INTERFACE("43136EB6-D36C-11CF-ADBC-00AA00A80033")
  1757.     IContextMenuProvider : public IContextMenuCallback
  1758.     {
  1759.     public:
  1760.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE EmptyMenuList( void) = 0;
  1761.         
  1762.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE AddPrimaryExtensionItems( 
  1763.             /* [in] */ LPUNKNOWN piExtension,
  1764.             /* [in] */ LPDATAOBJECT piDataObject) = 0;
  1765.         
  1766.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE AddThirdPartyExtensionItems( 
  1767.             /* [in] */ LPDATAOBJECT piDataObject) = 0;
  1768.         
  1769.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE ShowContextMenu( 
  1770.             /* [in] */ HWND hwndParent,
  1771.             /* [in] */ long xPos,
  1772.             /* [in] */ long yPos,
  1773.             /* [retval][out] */ long *plSelected) = 0;
  1774.         
  1775.     };
  1776.     
  1777. #else  /* C style interface */
  1778.     typedef struct IContextMenuProviderVtbl
  1779.     {
  1780.         BEGIN_INTERFACE
  1781.         
  1782.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1783.             IContextMenuProvider * This,
  1784.             /* [in] */ REFIID riid,
  1785.             /* [iid_is][out] */ void **ppvObject);
  1786.         
  1787.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1788.             IContextMenuProvider * This);
  1789.         
  1790.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1791.             IContextMenuProvider * This);
  1792.         
  1793.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *AddItem )( 
  1794.             IContextMenuProvider * This,
  1795.             /* [in] */ CONTEXTMENUITEM *pItem);
  1796.         
  1797.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *EmptyMenuList )( 
  1798.             IContextMenuProvider * This);
  1799.         
  1800.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *AddPrimaryExtensionItems )( 
  1801.             IContextMenuProvider * This,
  1802.             /* [in] */ LPUNKNOWN piExtension,
  1803.             /* [in] */ LPDATAOBJECT piDataObject);
  1804.         
  1805.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *AddThirdPartyExtensionItems )( 
  1806.             IContextMenuProvider * This,
  1807.             /* [in] */ LPDATAOBJECT piDataObject);
  1808.         
  1809.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *ShowContextMenu )( 
  1810.             IContextMenuProvider * This,
  1811.             /* [in] */ HWND hwndParent,
  1812.             /* [in] */ long xPos,
  1813.             /* [in] */ long yPos,
  1814.             /* [retval][out] */ long *plSelected);
  1815.         
  1816.         END_INTERFACE
  1817.     } IContextMenuProviderVtbl;
  1818.     interface IContextMenuProvider
  1819.     {
  1820.         CONST_VTBL struct IContextMenuProviderVtbl *lpVtbl;
  1821.     };
  1822.     
  1823. #ifdef COBJMACROS
  1824. #define IContextMenuProvider_QueryInterface(This,riid,ppvObject)
  1825.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1826. #define IContextMenuProvider_AddRef(This)
  1827.     (This)->lpVtbl -> AddRef(This)
  1828. #define IContextMenuProvider_Release(This)
  1829.     (This)->lpVtbl -> Release(This)
  1830. #define IContextMenuProvider_AddItem(This,pItem)
  1831.     (This)->lpVtbl -> AddItem(This,pItem)
  1832. #define IContextMenuProvider_EmptyMenuList(This)
  1833.     (This)->lpVtbl -> EmptyMenuList(This)
  1834. #define IContextMenuProvider_AddPrimaryExtensionItems(This,piExtension,piDataObject)
  1835.     (This)->lpVtbl -> AddPrimaryExtensionItems(This,piExtension,piDataObject)
  1836. #define IContextMenuProvider_AddThirdPartyExtensionItems(This,piDataObject)
  1837.     (This)->lpVtbl -> AddThirdPartyExtensionItems(This,piDataObject)
  1838. #define IContextMenuProvider_ShowContextMenu(This,hwndParent,xPos,yPos,plSelected)
  1839.     (This)->lpVtbl -> ShowContextMenu(This,hwndParent,xPos,yPos,plSelected)
  1840. #endif /* COBJMACROS */
  1841. #endif  /* C style interface */
  1842. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IContextMenuProvider_EmptyMenuList_Proxy( 
  1843.     IContextMenuProvider * This);
  1844. void __RPC_STUB IContextMenuProvider_EmptyMenuList_Stub(
  1845.     IRpcStubBuffer *This,
  1846.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1847.     PRPC_MESSAGE _pRpcMessage,
  1848.     DWORD *_pdwStubPhase);
  1849. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IContextMenuProvider_AddPrimaryExtensionItems_Proxy( 
  1850.     IContextMenuProvider * This,
  1851.     /* [in] */ LPUNKNOWN piExtension,
  1852.     /* [in] */ LPDATAOBJECT piDataObject);
  1853. void __RPC_STUB IContextMenuProvider_AddPrimaryExtensionItems_Stub(
  1854.     IRpcStubBuffer *This,
  1855.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1856.     PRPC_MESSAGE _pRpcMessage,
  1857.     DWORD *_pdwStubPhase);
  1858. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IContextMenuProvider_AddThirdPartyExtensionItems_Proxy( 
  1859.     IContextMenuProvider * This,
  1860.     /* [in] */ LPDATAOBJECT piDataObject);
  1861. void __RPC_STUB IContextMenuProvider_AddThirdPartyExtensionItems_Stub(
  1862.     IRpcStubBuffer *This,
  1863.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1864.     PRPC_MESSAGE _pRpcMessage,
  1865.     DWORD *_pdwStubPhase);
  1866. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IContextMenuProvider_ShowContextMenu_Proxy( 
  1867.     IContextMenuProvider * This,
  1868.     /* [in] */ HWND hwndParent,
  1869.     /* [in] */ long xPos,
  1870.     /* [in] */ long yPos,
  1871.     /* [retval][out] */ long *plSelected);
  1872. void __RPC_STUB IContextMenuProvider_ShowContextMenu_Stub(
  1873.     IRpcStubBuffer *This,
  1874.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1875.     PRPC_MESSAGE _pRpcMessage,
  1876.     DWORD *_pdwStubPhase);
  1877. #endif  /* __IContextMenuProvider_INTERFACE_DEFINED__ */
  1878. #ifndef __IExtendContextMenu_INTERFACE_DEFINED__
  1879. #define __IExtendContextMenu_INTERFACE_DEFINED__
  1880. /* interface IExtendContextMenu */
  1881. /* [unique][helpstring][uuid][object] */ 
  1882. EXTERN_C const IID IID_IExtendContextMenu;
  1883. #if defined(__cplusplus) && !defined(CINTERFACE)
  1884.     
  1885.     MIDL_INTERFACE("4F3B7A4F-CFAC-11CF-B8E3-00C04FD8D5B0")
  1886.     IExtendContextMenu : public IUnknown
  1887.     {
  1888.     public:
  1889.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE AddMenuItems( 
  1890.             /* [in] */ LPDATAOBJECT piDataObject,
  1891.             /* [in] */ LPCONTEXTMENUCALLBACK piCallback,
  1892.             /* [out][in] */ long *pInsertionAllowed) = 0;
  1893.         
  1894.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Command( 
  1895.             /* [in] */ long lCommandID,
  1896.             /* [in] */ LPDATAOBJECT piDataObject) = 0;
  1897.         
  1898.     };
  1899.     
  1900. #else  /* C style interface */
  1901.     typedef struct IExtendContextMenuVtbl
  1902.     {
  1903.         BEGIN_INTERFACE
  1904.         
  1905.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1906.             IExtendContextMenu * This,
  1907.             /* [in] */ REFIID riid,
  1908.             /* [iid_is][out] */ void **ppvObject);
  1909.         
  1910.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1911.             IExtendContextMenu * This);
  1912.         
  1913.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1914.             IExtendContextMenu * This);
  1915.         
  1916.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *AddMenuItems )( 
  1917.             IExtendContextMenu * This,
  1918.             /* [in] */ LPDATAOBJECT piDataObject,
  1919.             /* [in] */ LPCONTEXTMENUCALLBACK piCallback,
  1920.             /* [out][in] */ long *pInsertionAllowed);
  1921.         
  1922.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Command )( 
  1923.             IExtendContextMenu * This,
  1924.             /* [in] */ long lCommandID,
  1925.             /* [in] */ LPDATAOBJECT piDataObject);
  1926.         
  1927.         END_INTERFACE
  1928.     } IExtendContextMenuVtbl;
  1929.     interface IExtendContextMenu
  1930.     {
  1931.         CONST_VTBL struct IExtendContextMenuVtbl *lpVtbl;
  1932.     };
  1933.     
  1934. #ifdef COBJMACROS
  1935. #define IExtendContextMenu_QueryInterface(This,riid,ppvObject)
  1936.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1937. #define IExtendContextMenu_AddRef(This)
  1938.     (This)->lpVtbl -> AddRef(This)
  1939. #define IExtendContextMenu_Release(This)
  1940.     (This)->lpVtbl -> Release(This)
  1941. #define IExtendContextMenu_AddMenuItems(This,piDataObject,piCallback,pInsertionAllowed)
  1942.     (This)->lpVtbl -> AddMenuItems(This,piDataObject,piCallback,pInsertionAllowed)
  1943. #define IExtendContextMenu_Command(This,lCommandID,piDataObject)
  1944.     (This)->lpVtbl -> Command(This,lCommandID,piDataObject)
  1945. #endif /* COBJMACROS */
  1946. #endif  /* C style interface */
  1947. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IExtendContextMenu_AddMenuItems_Proxy( 
  1948.     IExtendContextMenu * This,
  1949.     /* [in] */ LPDATAOBJECT piDataObject,
  1950.     /* [in] */ LPCONTEXTMENUCALLBACK piCallback,
  1951.     /* [out][in] */ long *pInsertionAllowed);
  1952. void __RPC_STUB IExtendContextMenu_AddMenuItems_Stub(
  1953.     IRpcStubBuffer *This,
  1954.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1955.     PRPC_MESSAGE _pRpcMessage,
  1956.     DWORD *_pdwStubPhase);
  1957. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IExtendContextMenu_Command_Proxy( 
  1958.     IExtendContextMenu * This,
  1959.     /* [in] */ long lCommandID,
  1960.     /* [in] */ LPDATAOBJECT piDataObject);
  1961. void __RPC_STUB IExtendContextMenu_Command_Stub(
  1962.     IRpcStubBuffer *This,
  1963.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1964.     PRPC_MESSAGE _pRpcMessage,
  1965.     DWORD *_pdwStubPhase);
  1966. #endif  /* __IExtendContextMenu_INTERFACE_DEFINED__ */
  1967. /* interface __MIDL_itf_mmc_0119 */
  1968. /* [local] */ 
  1969. #if (MMC_VER >= 0x0120)
  1970. #define ILSIF_LEAVE_LARGE_ICON  0x40000000
  1971. #define ILSIF_LEAVE_SMALL_ICON  0x20000000
  1972. #define ILSIF_LEAVE_MASK        (ILSIF_LEAVE_LARGE_ICON | ILSIF_LEAVE_SMALL_ICON)
  1973. #define ILSI_LARGE_ICON(nLoc)   (nLoc | ILSIF_LEAVE_SMALL_ICON)
  1974. #define ILSI_SMALL_ICON(nLoc)   (nLoc | ILSIF_LEAVE_LARGE_ICON)
  1975. #endif // MMC_VER >= 0x0120
  1976. extern RPC_IF_HANDLE __MIDL_itf_mmc_0119_v0_0_c_ifspec;
  1977. extern RPC_IF_HANDLE __MIDL_itf_mmc_0119_v0_0_s_ifspec;
  1978. #ifndef __IImageList_INTERFACE_DEFINED__
  1979. #define __IImageList_INTERFACE_DEFINED__
  1980. /* interface IImageList */
  1981. /* [unique][helpstring][uuid][object] */ 
  1982. EXTERN_C const IID IID_IImageList;
  1983. #if defined(__cplusplus) && !defined(CINTERFACE)
  1984.     
  1985.     MIDL_INTERFACE("43136EB8-D36C-11CF-ADBC-00AA00A80033")
  1986.     IImageList : public IUnknown
  1987.     {
  1988.     public:
  1989.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE ImageListSetIcon( 
  1990.             /* [in] */ LONG_PTR *pIcon,
  1991.             /* [in] */ long nLoc) = 0;
  1992.         
  1993.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE ImageListSetStrip( 
  1994.             /* [in] */ LONG_PTR *pBMapSm,
  1995.             /* [in] */ LONG_PTR *pBMapLg,
  1996.             /* [in] */ long nStartLoc,
  1997.             /* [in] */ COLORREF cMask) = 0;
  1998.         
  1999.     };
  2000.     
  2001. #else  /* C style interface */
  2002.     typedef struct IImageListVtbl
  2003.     {
  2004.         BEGIN_INTERFACE
  2005.         
  2006.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2007.             IImageList * This,
  2008.             /* [in] */ REFIID riid,
  2009.             /* [iid_is][out] */ void **ppvObject);
  2010.         
  2011.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2012.             IImageList * This);
  2013.         
  2014.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2015.             IImageList * This);
  2016.         
  2017.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *ImageListSetIcon )( 
  2018.             IImageList * This,
  2019.             /* [in] */ LONG_PTR *pIcon,
  2020.             /* [in] */ long nLoc);
  2021.         
  2022.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *ImageListSetStrip )( 
  2023.             IImageList * This,
  2024.             /* [in] */ LONG_PTR *pBMapSm,
  2025.             /* [in] */ LONG_PTR *pBMapLg,
  2026.             /* [in] */ long nStartLoc,
  2027.             /* [in] */ COLORREF cMask);
  2028.         
  2029.         END_INTERFACE
  2030.     } IImageListVtbl;
  2031.     interface IImageList
  2032.     {
  2033.         CONST_VTBL struct IImageListVtbl *lpVtbl;
  2034.     };
  2035.     
  2036. #ifdef COBJMACROS
  2037. #define IImageList_QueryInterface(This,riid,ppvObject)
  2038.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2039. #define IImageList_AddRef(This)
  2040.     (This)->lpVtbl -> AddRef(This)
  2041. #define IImageList_Release(This)
  2042.     (This)->lpVtbl -> Release(This)
  2043. #define IImageList_ImageListSetIcon(This,pIcon,nLoc)
  2044.     (This)->lpVtbl -> ImageListSetIcon(This,pIcon,nLoc)
  2045. #define IImageList_ImageListSetStrip(This,pBMapSm,pBMapLg,nStartLoc,cMask)
  2046.     (This)->lpVtbl -> ImageListSetStrip(This,pBMapSm,pBMapLg,nStartLoc,cMask)
  2047. #endif /* COBJMACROS */
  2048. #endif  /* C style interface */
  2049. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IImageList_ImageListSetIcon_Proxy( 
  2050.     IImageList * This,
  2051.     /* [in] */ LONG_PTR *pIcon,
  2052.     /* [in] */ long nLoc);
  2053. void __RPC_STUB IImageList_ImageListSetIcon_Stub(
  2054.     IRpcStubBuffer *This,
  2055.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2056.     PRPC_MESSAGE _pRpcMessage,
  2057.     DWORD *_pdwStubPhase);
  2058. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IImageList_ImageListSetStrip_Proxy( 
  2059.     IImageList * This,
  2060.     /* [in] */ LONG_PTR *pBMapSm,
  2061.     /* [in] */ LONG_PTR *pBMapLg,
  2062.     /* [in] */ long nStartLoc,
  2063.     /* [in] */ COLORREF cMask);
  2064. void __RPC_STUB IImageList_ImageListSetStrip_Stub(
  2065.     IRpcStubBuffer *This,
  2066.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2067.     PRPC_MESSAGE _pRpcMessage,
  2068.     DWORD *_pdwStubPhase);
  2069. #endif  /* __IImageList_INTERFACE_DEFINED__ */
  2070. #ifndef __IResultData_INTERFACE_DEFINED__
  2071. #define __IResultData_INTERFACE_DEFINED__
  2072. /* interface IResultData */
  2073. /* [unique][helpstring][uuid][object] */ 
  2074. EXTERN_C const IID IID_IResultData;
  2075. #if defined(__cplusplus) && !defined(CINTERFACE)
  2076.     
  2077.     MIDL_INTERFACE("31DA5FA0-E0EB-11cf-9F21-00AA003CA9F6")
  2078.     IResultData : public IUnknown
  2079.     {
  2080.     public:
  2081.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE InsertItem( 
  2082.             /* [out][in] */ LPRESULTDATAITEM item) = 0;
  2083.         
  2084.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE DeleteItem( 
  2085.             /* [in] */ HRESULTITEM itemID,
  2086.             /* [in] */ int nCol) = 0;
  2087.         
  2088.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE FindItemByLParam( 
  2089.             /* [in] */ LPARAM lParam,
  2090.             /* [out] */ HRESULTITEM *pItemID) = 0;
  2091.         
  2092.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE DeleteAllRsltItems( void) = 0;
  2093.         
  2094.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetItem( 
  2095.             /* [in] */ LPRESULTDATAITEM item) = 0;
  2096.         
  2097.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetItem( 
  2098.             /* [out][in] */ LPRESULTDATAITEM item) = 0;
  2099.         
  2100.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetNextItem( 
  2101.             /* [out][in] */ LPRESULTDATAITEM item) = 0;
  2102.         
  2103.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE ModifyItemState( 
  2104.             /* [in] */ int nIndex,
  2105.             /* [in] */ HRESULTITEM itemID,
  2106.             /* [in] */ UINT uAdd,
  2107.             /* [in] */ UINT uRemove) = 0;
  2108.         
  2109.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE ModifyViewStyle( 
  2110.             /* [in] */ MMC_RESULT_VIEW_STYLE add,
  2111.             /* [in] */ MMC_RESULT_VIEW_STYLE remove) = 0;
  2112.         
  2113.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetViewMode( 
  2114.             /* [in] */ long lViewMode) = 0;
  2115.         
  2116.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetViewMode( 
  2117.             /* [out] */ long *lViewMode) = 0;
  2118.         
  2119.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE UpdateItem( 
  2120.             /* [in] */ HRESULTITEM itemID) = 0;
  2121.         
  2122.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Sort( 
  2123.             /* [in] */ int nColumn,
  2124.             /* [in] */ DWORD dwSortOptions,
  2125.             /* [in] */ LPARAM lUserParam) = 0;
  2126.         
  2127.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetDescBarText( 
  2128.             /* [in] */ LPOLESTR DescText) = 0;
  2129.         
  2130.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetItemCount( 
  2131.             /* [in] */ int nItemCount,
  2132.             /* [in] */ DWORD dwOptions) = 0;
  2133.         
  2134.     };
  2135.     
  2136. #else  /* C style interface */
  2137.     typedef struct IResultDataVtbl
  2138.     {
  2139.         BEGIN_INTERFACE
  2140.         
  2141.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2142.             IResultData * This,
  2143.             /* [in] */ REFIID riid,
  2144.             /* [iid_is][out] */ void **ppvObject);
  2145.         
  2146.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2147.             IResultData * This);
  2148.         
  2149.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2150.             IResultData * This);
  2151.         
  2152.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *InsertItem )( 
  2153.             IResultData * This,
  2154.             /* [out][in] */ LPRESULTDATAITEM item);
  2155.         
  2156.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *DeleteItem )( 
  2157.             IResultData * This,
  2158.             /* [in] */ HRESULTITEM itemID,
  2159.             /* [in] */ int nCol);
  2160.         
  2161.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *FindItemByLParam )( 
  2162.             IResultData * This,
  2163.             /* [in] */ LPARAM lParam,
  2164.             /* [out] */ HRESULTITEM *pItemID);
  2165.         
  2166.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *DeleteAllRsltItems )( 
  2167.             IResultData * This);
  2168.         
  2169.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetItem )( 
  2170.             IResultData * This,
  2171.             /* [in] */ LPRESULTDATAITEM item);
  2172.         
  2173.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetItem )( 
  2174.             IResultData * This,
  2175.             /* [out][in] */ LPRESULTDATAITEM item);