ReactOS 0.4.17-dev-784-g3812a95
mmc.idl
Go to the documentation of this file.
1/*
2 * PROJECT: ReactOS MMC idl
3 * LICENSE: GPL-2.0+ (https://spdx.org/licenses/GPL-2.0+)
4 * PURPOSE: Define MMC interfaces
5 * COPYRIGHT: Copyright 2017-2019 Mark Jansen (mark.jansen@reactos.org)
6 */
7
8
9import "objidl.idl";
10
11interface IComponent;
12interface IComponentData;
13interface IExtendPropertySheet;
14interface IExtendPropertySheet2;
15
16interface IConsole;
17interface IConsole2;
18interface IConsoleNameSpace;
21interface IConsoleNameSpace2;
22interface IHeaderCtrl;
23interface IToolbar;
24interface IImageList;
25interface IConsoleVerb;
26interface ISnapinAbout;
27
28
33
46
47
48typedef enum _MMC_NOTIFY_TYPE {
49 MMCN_ACTIVATE = 0x8001,
52 MMCN_CLICK = 0x8004,
56 MMCN_DBLCLICK = 0x8008,
57 MMCN_DELETE = 0x8009,
59 MMCN_EXPAND = 0x800B,
60 MMCN_HELP = 0x800C,
63 MMCN_PASTE = 0x800F,
66 MMCN_REFRESH = 0x8012,
68 MMCN_RENAME = 0x8014,
69 MMCN_SELECT = 0x8015,
70 MMCN_SHOW = 0x8016,
74 MMCN_INITOCX = 0x801A,
78 MMCN_PRINT = 0x801E,
79 MMCN_PRELOAD = 0x801F,
80 MMCN_LISTPAD = 0x8020,
85
86
87typedef enum _DATA_OBJECT_TYPES {
88 CCT_SCOPE = 0x8000,
89 CCT_RESULT = 0x8001,
91 CCT_UNINITIALIZED = 0xFFFF
93
94typedef enum _MMC_BUTTON_STATE {
95 ENABLED = 0x1,
96 CHECKED = 0x2,
97 HIDDEN = 0x4,
99 BUTTONPRESSED = 0x10
101
102typedef enum _MMC_CONSOLE_VERB {
112 MMC_VERB_CUT = 0x8008
114
117
118cpp_quote("#define SDI_PARENT (0x00000000)")
119cpp_quote("#define SDI_STR (0x00000002)")
120cpp_quote("#define SDI_IMAGE (0x00000004)")
121cpp_quote("#define SDI_OPENIMAGE (0x00000008)")
122cpp_quote("#define SDI_STATE (0x00000010)")
123cpp_quote("#define SDI_PARAM (0x00000020)")
124cpp_quote("#define SDI_CHILDREN (0x00000040)")
125cpp_quote("#define SDI_PREVIOUS (0x10000000)")
126cpp_quote("#define SDI_NEXT (0x20000000)")
127cpp_quote("#define SDI_FIRST (0x08000000)")
128
129
130typedef struct _SCOPEDATAITEM {
131 DWORD mask;
132 LPOLESTR displayname;
133 int nImage;
134 int nOpenImage;
135 UINT nState;
136 int cChildren;
137 LPARAM lParam;
138 HSCOPEITEM relativeID;
139 HSCOPEITEM ID;
140} SCOPEDATAITEM, *LPSCOPEDATAITEM;
141
142
143typedef struct _RESULTDATAITEM {
144 DWORD mask;
145 BOOL bScopeItem;
146 HRESULTITEM itemID;
147 int nIndex;
148 int nCol;
149 LPOLESTR str;
150 int nImage;
151 UINT nState;
152 LPARAM lParam;
153 int iIndent;
154} RESULTDATAITEM, *LPRESULTDATAITEM;
155
156
157#include <pshpack8.h>
158typedef struct _MMCBUTTON {
159 int nBitmap;
160 int idCommand;
161 BYTE fsState;
162 BYTE fsType;
163 LPOLESTR lpButtonText;
164 LPOLESTR lpTooltipText;
165} MMCBUTTON, *LPMMCBUTTON;
166#include <poppack.h>
167
168
169typedef LONG_PTR MMC_COOKIE;
170
171
172[
173 object,
174 uuid(955ab28a-5218-11d0-a985-00c04fd8d565)
175]
176interface IComponentData : IUnknown
177{
178 HRESULT Initialize(
179 [in] LPUNKNOWN pUnknown
180 );
181
182 HRESULT CreateComponent(
183 [out] LPCOMPONENT *ppComponent
184 );
185
186 HRESULT Notify(
187 [in] LPDATAOBJECT lpDataObject,
188 [in] MMC_NOTIFY_TYPE event,
189 [in] LPARAM arg,
190 [in] LPARAM param
191 );
192
193 HRESULT Destroy();
194
195 HRESULT QueryDataObject(
196 [in] long cookie,
197 [in] DATA_OBJECT_TYPES type,
198 [out] LPDATAOBJECT *ppDataObject
199 );
200
201 HRESULT GetDisplayInfo(
202 [in, out] SCOPEDATAITEM *pScopeDataItem
203 );
204
205 HRESULT CompareObjects(
206 [in] LPDATAOBJECT lpDataObjectA,
207 [in] LPDATAOBJECT lpDataObjectB
208 );
209}
210
211[
212 object,
213 uuid(43136eb2-d36c-11cf-adbc-00aa00a80033)
214]
215interface IComponent : IUnknown
216{
217 HRESULT Initialize(
218 [in] LPCONSOLE lpConsole
219 );
220
221 HRESULT Notify(
222 [in] LPDATAOBJECT lpDataObject,
223 [in] MMC_NOTIFY_TYPE event,
224 LPARAM arg,
225 LPARAM param
226 );
227
228 HRESULT Destroy(
229 LONG cookie
230 );
231
232 HRESULT QueryDataObject(
233 [in] long cookie,
234 [in] DATA_OBJECT_TYPES type,
235 [out] LPDATAOBJECT *ppDataObject
236 );
237
238 HRESULT GetResultViewType(
239 [in] long cookie,
240 [out] LPOLESTR *ppViewType,
241 [out] long *pViewOptions
242 );
243
244 HRESULT GetDisplayInfo(
245 [in, out] RESULTDATAITEM *pResultDataItem
246 );
247
248 HRESULT CompareObjects(
249 [in] LPDATAOBJECT lpDataObjectA,
250 [in] LPDATAOBJECT lpDataObjectB
251 );
252}
253
254
255[
256 object,
257 uuid(43136eb1-d36c-11cf-adbc-00aa00a80033)
258]
259interface IConsole : IUnknown
260{
261 HRESULT SetHeader(
262 [in] LPHEADERCTRL pHeader
263 );
264
265 HRESULT SetToolbar(
266 [in] LPTOOLBAR pToolbar
267 );
268
269 HRESULT QueryResultView(
270 [out] LPUNKNOWN *pUnknown
271 );
272
273 HRESULT QueryScopeImageList(
274 [out] LPIMAGELIST *ppImageList
275 );
276
277 HRESULT QueryResultImageList(
278 [out] LPIMAGELIST *ppImageList
279 );
280
281 HRESULT UpdateAllViews(
282 [in] LPDATAOBJECT lpDataObject,
283 [in] LPARAM data,
284 [in] LONG_PTR hint
285 );
286
287 HRESULT MessageBox(
288 [in] LPCWSTR lpszText,
289 [in] LPCWSTR lpszTitle,
290 [in] UINT fuStyle,
291 [out] int *piRetval
292 );
293
294 HRESULT QueryConsoleVerb(
295 [out] LPCONSOLEVERB *ppConsoleVerb
296 );
297
298 HRESULT SelectScopeItem(
299 [in] HSCOPEITEM hScopeItem
300 );
301
302 HRESULT GetMainWindow(
303 [out] HWND *phwnd
304 );
305
306 HRESULT NewWindow(
307 [in] HSCOPEITEM hScopeItem,
308 [in] unsigned long lOptions
309 );
310}
311
312
313[
314 object,
315 uuid(103d842a-aa63-11d1-a7e1-00c04fd8d565)
316]
317interface IConsole2 : IConsole
318{
319 HRESULT Expand(
320 [in] HSCOPEITEM hItem,
321 [in] BOOL bExpand
322 );
323
324 HRESULT IsTaskpadViewPreferred();
325
326 HRESULT SetStatusText(
327 [in] LPOLESTR pszStatusText
328 );
329}
330
331
332[
333 object,
334 uuid(bedeb620-f24d-11cf-8afc-00aa003ca9f6)
335]
336interface IConsoleNameSpace : IUnknown
337{
338 HRESULT InsertItem(
339 [in, out] LPSCOPEDATAITEM item
340 );
341
342 HRESULT DeleteItem(
343 [in] HSCOPEITEM hItem,
344 [in] long fDeleteThis
345 );
346
347 HRESULT SetItem(
348 [in] LPSCOPEDATAITEM item
349 );
350
351 HRESULT GetItem(
352 [in, out] LPSCOPEDATAITEM item
353 );
354
355 HRESULT GetChildItem(
356 [in] HSCOPEITEM item,
357 [out] HSCOPEITEM *pItemChild,
358 [out] long *plCookie
359 );
360
361 HRESULT GetNextItem(
362 [in] HSCOPEITEM item,
363 [out] HSCOPEITEM *pItemNext,
364 [out] long *plCookie
365 );
366
367 HRESULT GetParentItem(
368 [in] HSCOPEITEM item,
369 [out] HSCOPEITEM *pItemParent,
370 [out] long *plCookie
371 );
372}
373
374
375cpp_quote("#if 0")
376typedef struct { int dummy; } _PSP;
377typedef _PSP *HPROPSHEETPAGE;
378cpp_quote("#else")
379cpp_quote("#ifndef _HPROPSHEETPAGE_DEFINED")
380cpp_quote("#define _HPROPSHEETPAGE_DEFINED")
381cpp_quote("DECLARE_HANDLE(HPROPSHEETPAGE);")
382cpp_quote("#endif")
383cpp_quote("#endif")
384
385
386[
387 object,
388 uuid(85de64dd-ef21-11cf-a285-00c04fd8dbe6)
389]
390interface IPropertySheetCallback : IUnknown
391{
392 HRESULT AddPage(
393 [in] HPROPSHEETPAGE hPage
394 );
395
396 HRESULT RemovePage(
397 [in] HPROPSHEETPAGE hPage
398 );
399};
400
401
402[
403 object,
404 uuid(85de64de-ef21-11cf-a285-00c04fd8dbe6)
405]
406interface IPropertySheetProvider : IUnknown
407{
408 HRESULT CreatePropertySheet(
409 [in] LPCWSTR title,
410 [in] boolean type,
411 [in] MMC_COOKIE cookie,
412 [in] LPDATAOBJECT pIDataObjectm,
413 [in] DWORD dwOptions
414 );
415
416 HRESULT FindPropertySheet(
417 [in] HSCOPEITEM hItem,
418 [in] LPCOMPONENT lpComponent,
419 [in] LPDATAOBJECT lpDataObject
420 );
421
422 HRESULT AddPrimaryPages(
423 [in] LPUNKNOWN lpUnknown,
424 [in] BOOL bCreateHandle,
425 [in] HWND hNotifyWindow,
426 [in] BOOL bScopePane
427 );
428
429 HRESULT AddExtensionPages();
430
431 HRESULT Show(
432 [in] LONG_PTR window,
433 [in] int page
434 );
435};
436
437
438[
439 object,
440 uuid(85de64dc-ef21-11cf-a285-00c04fd8dbe6)
441]
442interface IExtendPropertySheet : IUnknown
443{
444 HRESULT CreatePropertyPages(
445 [in] LPPROPERTYSHEETCALLBACK lpProvider,
446 [in] LONG_PTR handle,
447 [in] LPDATAOBJECT lpIDataObject
448 );
449
450 HRESULT QueryPagesFor(
451 [in] LPDATAOBJECT lpDataObject
452 );
453};
454
455
456[
457 object,
458 uuid(b7a87232-4a51-11d1-a7ea-00c04fd909dd)
459]
460interface IExtendPropertySheet2 : IExtendPropertySheet
461{
462 HRESULT GetWatermarks(
463 [in] LPDATAOBJECT lpIDataObject,
464 [out] HBITMAP* lphWatermark,
465 [out] HBITMAP* lphHeader,
466 [out] HPALETTE* lphPalette,
467 [out] BOOL* bStretch
468 );
469};
470
471
472[
473 object,
474 uuid(255f18cc-65db-11d1-a7dc-00c04fd8d565)
475]
476interface IConsoleNameSpace2 : IConsoleNameSpace
477{
478 HRESULT Expand(
479 [in] HSCOPEITEM hItem
480 );
481
482 HRESULT AddExtension(
483 [in] HSCOPEITEM hItem,
484 [in] LPCLSID lpClsid
485 );
486}
487
488
489[
490 object,
491 uuid(43136eb3-d36c-11cf-adbc-00aa00a80033)
492]
493interface IHeaderCtrl : IUnknown
494{
495 HRESULT InsertColumn(
496 [in] int nCol,
497 [in] LPCWSTR title,
498 [in] int nFormat,
499 [in] int nWidth
500 );
501
502 HRESULT DeleteColumn(
503 [in] int nCol
504 );
505
506 HRESULT SetColumnText(
507 [in] int nCol,
508 [in] LPCWSTR title
509 );
510
511 HRESULT GetColumnText(
512 [in] int nCol,
513 [out] LPOLESTR *pText
514 );
515
516 HRESULT SetColumnWidth(
517 [in] int nCol,
518 [in] int nWidth
519 );
520
521 HRESULT GetColumnWidth(
522 [in] int nCol,
523 [out] int *pWidth
524 );
525}
526
527
528[
529 object,
530 uuid(43136eb9-d36c-11cf-adbc-00aa00a80033)
531]
532interface IToolbar : IUnknown
533{
534 HRESULT AddBitmap(
535 [in] int nImages,
536 [in] HBITMAP hbmp,
537 [in] int cxSize,
538 [in] int cySize,
539 [in] COLORREF crMask
540 );
541
542 HRESULT AddButtons(
543 [in] int nButtons,
544 [in] LPMMCBUTTON lpButtons
545 );
546
547 HRESULT InsertButton(
548 [in] int nIndex,
549 [in] LPMMCBUTTON lpButton
550 );
551
552 HRESULT DeleteButton(
553 [in] int nIndex
554 );
555
556 HRESULT GetButtonState(
557 [in] int idCommand,
558 [in] MMC_BUTTON_STATE nState,
559 [out] BOOL *pState
560 );
561
562 HRESULT SetButtonState(
563 [in] int idCommand,
564 [in] MMC_BUTTON_STATE nState,
565 [in] BOOL bState
566 );
567}
568
569
570[
571 object,
572 uuid(43136eb8-d36c-11cf-adbc-00aa00a80033)
573]
574interface IImageList : IUnknown
575{
576 HRESULT ImageListSetIcon(
577 [in] LONG_PTR *Icon,
578 [in] long nLoc
579 );
580
581 HRESULT ImageListSetStrip(
582 [in] LONG_PTR *BMapSm,
583 [in] LONG_PTR *BMapLg,
584 [in] long nStartLoc,
585 [in] COLORREF cMask
586 );
587}
588
589
590[
591 object,
592 uuid(e49f7a60-74af-11d0-a286-00c04fd8fe93)
593]
594interface IConsoleVerb : IUnknown
595{
596 HRESULT GetVerbState(
597 [in] MMC_CONSOLE_VERB eCmdID,
598 [in] MMC_BUTTON_STATE nState,
599 [out] BOOL *pState
600 );
601
602 HRESULT SetVerbState(
603 [in] MMC_CONSOLE_VERB eCmdID,
604 [in] MMC_BUTTON_STATE nState,
605 [in] BOOL bState
606 );
607
608 HRESULT SetDefaultVerb(
609 [in] MMC_CONSOLE_VERB eCmID
610 );
611
612 HRESULT GetDefaultVerb(
613 [out] MMC_CONSOLE_VERB *peCmID
614 );
615}
616
617[
618 object,
619 uuid(1245208c-a151-11d0-a7d7-00c04fd909dd)
620]
621interface ISnapinAbout : IUnknown
622{
623 HRESULT GetSnapinDescription(
624 [out] LPOLESTR* lpDescription
625 );
626
627 HRESULT GetProvider(
628 [out] LPOLESTR* lpName
629 );
630
631 HRESULT GetSnapinVersion(
632 [out] LPOLESTR* lpVersion
633 );
634
635 HRESULT GetSnapinImage(
636 [out] HICON* hAppIcon
637 );
638
639 HRESULT GetStaticFolderImage(
640 [out] HBITMAP* hSmallImage,
641 [out] HBITMAP* hSmallImageOpen,
642 [out] HBITMAP* hLargeImage,
643 [out] COLORREF* cMask
644 );
645}
646
647
648
649
CD3D10_BUFFER_DESC D3D10_BUFFER_DESC cpp_quote(" ~CD3D10_BUFFER_DESC() {}") operator const D3D10_BUFFER_DESC &() const
Definition: d3d10.idl:491
ISnapinAbout * LPSNAPINABOUT
Definition: mmc.idl:45
_MMC_CONSOLE_VERB
Definition: mmc.idl:102
@ MMC_VERB_PROPERTIES
Definition: mmc.idl:108
@ MMC_VERB_PRINT
Definition: mmc.idl:111
@ MMC_VERB_REFRESH
Definition: mmc.idl:110
@ MMC_VERB_DELETE
Definition: mmc.idl:107
@ MMC_VERB_CUT
Definition: mmc.idl:112
@ MMC_VERB_RENAME
Definition: mmc.idl:109
@ MMC_VERB_PASTE
Definition: mmc.idl:106
@ MMC_VERB_NONE
Definition: mmc.idl:103
@ MMC_VERB_OPEN
Definition: mmc.idl:104
@ MMC_VERB_COPY
Definition: mmc.idl:105
enum _MMC_CONSOLE_VERB MMC_CONSOLE_VERB
LONG_PTR HSCOPEITEM
Definition: mmc.idl:115
IConsoleNameSpace * LPCONSOLENAMESPACE
Definition: mmc.idl:36
IPropertySheetCallback * LPPROPERTYSHEETCALLBACK
Definition: mmc.idl:37
IToolbar * LPTOOLBAR
Definition: mmc.idl:41
IConsoleNameSpace2 * LPCONSOLENAMESPACE2
Definition: mmc.idl:39
ISnapinAbout * LPSNAPABOUT
Definition: mmc.idl:44
IImageList * LPIMAGELIST
Definition: mmc.idl:42
LONG_PTR HRESULTITEM
Definition: mmc.idl:116
_MMC_NOTIFY_TYPE
Definition: mmc.idl:48
@ MMCN_DBLCLICK
Definition: mmc.idl:56
@ MMCN_FILTERBTN_CLICK
Definition: mmc.idl:76
@ MMCN_SHOW
Definition: mmc.idl:70
@ MMCN_MENU_BTNCLICK
Definition: mmc.idl:61
@ MMCN_VIEW_CHANGE
Definition: mmc.idl:71
@ MMCN_HELP
Definition: mmc.idl:60
@ MMCN_CONTEXTHELP
Definition: mmc.idl:73
@ MMCN_SELECT
Definition: mmc.idl:69
@ MMCN_DESELECT_ALL
Definition: mmc.idl:58
@ MMCN_REFRESH
Definition: mmc.idl:66
@ MMCN_RESTORE_VIEW
Definition: mmc.idl:77
@ MMCN_PRELOAD
Definition: mmc.idl:79
@ MMCN_MINIMIZED
Definition: mmc.idl:62
@ MMCN_PASTE
Definition: mmc.idl:63
@ MMCN_LISTPAD
Definition: mmc.idl:80
@ MMCN_BTN_CLICK
Definition: mmc.idl:51
@ MMCN_INITOCX
Definition: mmc.idl:74
@ MMCN_EXPAND
Definition: mmc.idl:59
@ MMCN_REMOVE_CHILDREN
Definition: mmc.idl:67
@ MMCN_SNAPINHELP
Definition: mmc.idl:72
@ MMCN_EXPANDSYNC
Definition: mmc.idl:81
@ MMCN_DELETE
Definition: mmc.idl:57
@ MMCN_RENAME
Definition: mmc.idl:68
@ MMCN_CONTEXTMENU
Definition: mmc.idl:54
@ MMCN_ACTIVATE
Definition: mmc.idl:49
@ MMCN_PROPERTY_CHANGE
Definition: mmc.idl:64
@ MMCN_CUTORMOVE
Definition: mmc.idl:55
@ MMCN_COLUMNS_CHANGED
Definition: mmc.idl:82
@ MMCN_CANPASTE_OUTOFPROC
Definition: mmc.idl:83
@ MMCN_COLUMN_CLICK
Definition: mmc.idl:53
@ MMCN_PRINT
Definition: mmc.idl:78
@ MMCN_ADD_IMAGES
Definition: mmc.idl:50
@ MMCN_QUERY_PASTE
Definition: mmc.idl:65
@ MMCN_CLICK
Definition: mmc.idl:52
@ MMCN_FILTER_CHANGE
Definition: mmc.idl:75
IComponentData * LPCOMPONENTDATA
Definition: mmc.idl:30
IConsoleVerb * LPCONSOLEVERB
Definition: mmc.idl:43
IComponent * LPCOMPONENT
Definition: mmc.idl:29
_DATA_OBJECT_TYPES
Definition: mmc.idl:87
@ CCT_UNINITIALIZED
Definition: mmc.idl:91
@ CCT_RESULT
Definition: mmc.idl:89
@ CCT_SNAPIN_MANAGER
Definition: mmc.idl:90
@ CCT_SCOPE
Definition: mmc.idl:88
enum _MMC_NOTIFY_TYPE MMC_NOTIFY_TYPE
enum _DATA_OBJECT_TYPES DATA_OBJECT_TYPES
enum _MMC_BUTTON_STATE MMC_BUTTON_STATE
IConsole2 * LPCONSOLE2
Definition: mmc.idl:35
IPropertySheetProvider * LPPROPERTYSHEETPROVIDER
Definition: mmc.idl:38
IExtendPropertySheet * LPEXTENDPROPERTYSHEET
Definition: mmc.idl:31
_MMC_BUTTON_STATE
Definition: mmc.idl:94
@ HIDDEN
Definition: mmc.idl:97
@ ENABLED
Definition: mmc.idl:95
@ BUTTONPRESSED
Definition: mmc.idl:99
@ CHECKED
Definition: mmc.idl:96
@ INDETERMINATE
Definition: mmc.idl:98
IConsole * LPCONSOLE
Definition: mmc.idl:34
IExtendPropertySheet2 * LPEXTENDPROPERTYSHEET2
Definition: mmc.idl:32
IHeaderCtrl * LPHEADERCTRL
Definition: mmc.idl:40
__int3264 LONG_PTR
Definition: mstsclib_h.h:276