' ########################################################################################
' Microsoft Windows
' File: MMC.inc
' Copyright (c) 2011 Jos? Roca
' Portions Copyright (c) Microsoft Corporation.
' All Rights Reserved.
' THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
' EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
' MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
' ########################################################################################
#IF NOT %DEF(PBX_MMC_PBI)
#DEFINE PBX_MMC_PBI
%EQUATE `MMC_INC = 1
'/* header files for imported files */
#INCLUDE ONCE "Legacy/System/BaseTsd.inc"
#INCLUDE ONCE "Legacy/COM/OAIdl.inc"
#IF NOT %DEF(%MMC_VER)
%EQUATE `MMC_VER = &H0210
#ENDIF
$CLSID_MMCVersionInfo = GUID$("{D6FEDB1D-CF21-4BD9-AF3B-C5468E9C6684}")
$CLSID_ConsolePower = GUID$("{F0285374-DFF1-11D3-B433-00C04F8ECD78}")
%EQUATE `MMCLV_AUTO = -1
%EQUATE `MMCLV_NOPARAM = -2
%EQUATE `MMCLV_NOICON = -1
%EQUATE `MMCLV_VIEWSTYLE_ICON = 0
%EQUATE `MMCLV_VIEWSTYLE_SMALLICON = &H2
%EQUATE `MMCLV_VIEWSTYLE_LIST = &H3
%EQUATE `MMCLV_VIEWSTYLE_REPORT = &H1
%EQUATE `MMCLV_VIEWSTYLE_FILTERED = &H4
%EQUATE `MMCLV_NOPTR = 0
%EQUATE `MMCLV_UPDATE_NOINVALIDATEALL = &H1
%EQUATE `MMCLV_UPDATE_NOSCROLL = &H2
'static LPOLESTR MMC_CALLBACK = ( LPOLESTR )-1;
%EQUATE `MMC_IMAGECALLBACK = -1
'#define MMC_TEXTCALLBACK MMC_CALLBACK
'typedef LONG_PTR HSCOPEITEM;
'typedef long COMPONENTID;
'typedef LONG_PTR HRESULTITEM;
%EQUATE `RDI_STR = &H2
%EQUATE `RDI_IMAGE = &H4
%EQUATE `RDI_STATE = &H8
%EQUATE `RDI_PARAM = &H10
%EQUATE `RDI_INDEX = &H20
%EQUATE `RDI_INDENT = &H40
' enum MMC_RESULT_VIEW_STYLE
%EQUATE `MMC_SINGLESEL = &H0001
%EQUATE `MMC_SHOWSELALWAYS = &H0002
%EQUATE `MMC_NOSORTHEADER = &H0004
%EQUATE `MMC_ENSUREFOCUSVISIBLE = &H0008
%EQUATE `MMC_VIEW_OPTIONS_NONE = 0
%EQUATE `MMC_VIEW_OPTIONS_NOLISTVIEWS = &H1
%EQUATE `MMC_VIEW_OPTIONS_MULTISELECT = &H2
%EQUATE `MMC_VIEW_OPTIONS_OWNERDATALIST = &H4
%EQUATE `MMC_VIEW_OPTIONS_FILTERED = &H8
%EQUATE `MMC_VIEW_OPTIONS_CREATENEW = &H10
%EQUATE `MMC_VIEW_OPTIONS_USEFONTLINKING = &H20
%EQUATE `MMC_VIEW_OPTIONS_EXCLUDE_SCOPE_ITEMS_FROM_LIST = &H40
%EQUATE `MMC_VIEW_OPTIONS_LEXICAL_SORT = &H80
%EQUATE `MMC_PSO_NOAPPLYNOW = &H1
%EQUATE `MMC_PSO_HASHELP = &H2
%EQUATE `MMC_PSO_NEWWIZARDTYPE = &H4
%EQUATE `MMC_PSO_NO_PROPTITLE = &H8
' enum MMC_CONTROL_TYPE
%EQUATE `MMC_CONTROL_TYPE_TOOLBAR = 0
%EQUATE `MMC_CONTROL_TYPE_MENUBUTTON = %MMC_CONTROL_TYPE_TOOLBAR + 1
%EQUATE `MMC_CONTROL_TYPE_OMBOBOXBAR = %MMC_CONTROL_TYPE_MENUBUTTON + 1
' enum MMC_CONSOLE_VERB
%EQUATE `MMC_VERB_NONE = &H0000
%EQUATE `MMC_VERB_OPEN = &H8000
%EQUATE `MMC_VERB_COPY = &H8001
%EQUATE `MMC_VERB_PASTE = &H8002
%EQUATE `MMC_VERB_DELETE = &H8003
%EQUATE `MMC_VERB_PROPERTIES = &H8004
%EQUATE `MMC_VERB_RENAME = &H8005
%EQUATE `MMC_VERB_REFRESH = &H8006
%EQUATE `MMC_VERB_PRINT = &H8007
%EQUATE `MMC_VERB_CUT = &H8008 ' // Used only to explicitly disable/hide
 ' // the cut verb, when copy & paste are enabled.
' // must be last
%EQUATE `MMC_VERB_MAX = &H8009
%EQUATE `MMC_VERB_FIRST = %MMC_VERB_OPEN
%EQUATE `MMC_VERB_LAST = %MMC_VERB_MAX - 1
'#include <pshpack8.h>
' // Size = 20 bytes
TYPE MMCBUTTON DWORD FILL
 nBitmap AS LONG ' int
 idCommand AS LONG ' int
 fsState AS BYTE ' BYTE
 fsType AS BYTE ' BYTE
 lpButtonText AS WSTRINGZ PTR
 lpTooltipText AS WSTRINGZ PTR
END TYPE
'#include <poppack.h>
' enum MMC_BUTTON_STATE
%EQUATE `MMC_BUTTON_STATE_ENABLED = &H1
%EQUATE `MMC_BUTTON_STATE_CHECKED = &H2
%EQUATE `MMC_BUTTON_STATE_HIDDEN = &H4
%EQUATE `MMC_BUTTON_STATE_INDETERMINATE = &H8
%EQUATE `MMC_BUTTON_STATE_BUTTONPRESSED = &H10
' // Size = 40 bytes
TYPE RESULTDATAITEM DWORD
 mask AS DWORD
 bScopeItem AS LONG
 itemID AS LONG ' HRESULTITEM
 nIndex AS LONG ' int
 nCol AS LONG ' int
 str AS WSTRINGZ PTR
 nImage AS LONG ' int
 nState AS DWORD ' UINT
 lParam AS LONG
 iIndent AS LONG ' int
END TYPE
%EQUATE `RFI_PARTIAL = &H1
%EQUATE `RFI_WRAP = &H2
' // Size = 12 bytes
TYPE RESULTFINDINFO DWORD
 psz AS WSTRINGZ PTR
 nStart AS LONG ' int
 dwOptions AS DWORD
END TYPE
%EQUATE `RSI_DESCENDING = &H1
%EQUATE `RSI_NOSORTICON = &H2
%EQUATE `SDI_STR = &H2
%EQUATE `SDI_IMAGE = &H4
%EQUATE `SDI_OPENIMAGE = &H8
%EQUATE `SDI_STATE = &H10
%EQUATE `SDI_PARAM = &H20
%EQUATE `SDI_CHILDREN = &H40
%EQUATE `SDI_PARENT = 0
%EQUATE `SDI_PREVIOUS = &H10000000
%EQUATE `SDI_NEXT = &H20000000
%EQUATE `SDI_FIRST = &H8000000
' // Size = 36 bytes
TYPE SCOPEDATAITEM DWORD
 mask AS DWORD
 displayname AS WSTRINGZ PTR
 nImage AS LONG ' int
 nOpenImage AS LONG ' int
 nState AS DWORD ' UINT
 cChildren AS LONG ' int
 lParam AS LONG
 relativeID AS LONG ' HSCOPEITEM
 ID AS LONG ' HSCOPEITEM
END TYPE
' enum MMC_SCOPE_ITEM_STATE
%EQUATE `MMC_SCOPE_ITEM_STATE_NORMAL = &H1
%EQUATE `MMC_SCOPE_ITEM_STATE_BOLD = &H2
%EQUATE `MMC_SCOPE_ITEM_STATE_EXPANDEDONCE = &H3
' // Size = 24 bytes
TYPE CONTEXTMENUITEM DWORD
 strName AS WSTRINGZ PTR
 strStatusBarText AS WSTRINGZ PTR
 lCommandID AS LONG
 lInsertionPointID AS LONG
 fFlags AS LONG
 fSpecialFlags AS LONG
END TYPE
' enum MMC_MENU_COMMAND_IDS
%EQUATE `MMCC_STANDARD_VIEW_SELECT = -1
' // Size = 12 bytes
TYPE MENUBUTTONDATA DWORD
 idCommand AS LONG ' int
 x AS LONG ' int
 y AS LONG ' int
END TYPE
'typedef LONG_PTR MMC_COOKIE;
%EQUATE `MMC_MULTI_SELECT_COOKIE = -2
%EQUATE `MMC_WINDOW_COOKIE = -3
%EQUATE `SPECIAL_COOKIE_MIN = -10
%EQUATE `SPECIAL_COOKIE_MAX = -1
' enum MMC_FILTER_TYPE
%EQUATE `MMC_STRING_FILTER = 0
%EQUATE `MMC_INT_FILTER = &H1
%EQUATE `MMC_FILTER_NOVALUE = &H8000
' // Size = 12 bytes
TYPE MMC_FILTERDATA DWORD
 pszText AS WSTRINGZ PTR
 cchTextMax AS LONG ' INT
 lValue AS LONG
END TYPE
' enum MMC_FILTER_CHANGE_CODE
%EQUATE `MFCC_DISABLE = 0
%EQUATE `MFCC_ENABLE = 1
%EQUATE `MFCC_VALUE_CHANGE = 2
' // Size = 16 bytes
TYPE MMC_RESTORE_VIEW DWORD
 dwSize AS DWORD
 cookie AS LONG ' MMC_COOKIE
 pViewType AS WSTRINGZ PTR
 lViewOptions AS LONG ' long
END TYPE
' // Size = 12 bytes
TYPE MMC_EXPANDSYNC_STRUCT DWORD
 bHandled AS LONG
 bExpanding AS LONG
 hItem AS LONG ' HSCOPEITEM
END TYPE
' // Size = 8 bytes
TYPE MMC_VISIBLE_COLUMNS DWORD
 nVisibleColumns AS LONG ' INT
 rgVisibleCols(0) AS LONG ' INT
END TYPE
' enum MMC_NOTIFY_TYPE
%EQUATE `MMCN_ACTIVATE = &H8001
%EQUATE `MMCN_ADD_IMAGES = &H8002
%EQUATE `MMCN_BTN_CLICK = &H8003
%EQUATE `MMCN_CLICK = &H8004 ' // NOT USED
%EQUATE `MMCN_COLUMN_CLICK = &H8005
%EQUATE `MMCN_CONTEXTMENU = &H8006 ' // NOT USED
%EQUATE `MMCN_CUTORMOVE = &H8007
%EQUATE `MMCN_DBLCLICK = &H8008
%EQUATE `MMCN_DELETE = &H8009
%EQUATE `MMCN_DESELECT_ALL = &H800A
%EQUATE `MMCN_EXPAND = &H800B
%EQUATE `MMCN_HELP = &H800C ' // NOT USED
%EQUATE `MMCN_MENU_BTNCLICK = &H800D
%EQUATE `MMCN_MINIMIZED = &H800E
%EQUATE `MMCN_PASTE = &H800F
%EQUATE `MMCN_PROPERTY_CHANGE = &H8010
%EQUATE `MMCN_QUERY_PASTE = &H8011
%EQUATE `MMCN_REFRESH = &H8012
%EQUATE `MMCN_REMOVE_CHILDREN = &H8013
%EQUATE `MMCN_RENAME = &H8014
%EQUATE `MMCN_SELECT = &H8015
%EQUATE `MMCN_SHOW = &H8016
%EQUATE `MMCN_VIEW_CHANGE = &H8017
%EQUATE `MMCN_SNAPINHELP = &H8018
%EQUATE `MMCN_CONTEXTHELP = &H8019
%EQUATE `MMCN_INITOCX = &H801A
%EQUATE `MMCN_FILTER_CHANGE = &H801B
%EQUATE `MMCN_FILTERBTN_CLICK = &H801C
%EQUATE `MMCN_RESTORE_VIEW = &H801D
%EQUATE `MMCN_PRINT = &H801E
%EQUATE `MMCN_PRELOAD = &H801F
%EQUATE `MMCN_LISTPAD = &H8020
%EQUATE `MMCN_EXPANDSYNC = &H8021
%EQUATE `MMCN_COLUMNS_CHANGED = &H8022
%EQUATE `MMCN_CANPASTE_OUTOFPROC = &H8023
' enum DATA_OBJECT_TYPES
%EQUATE `CCT_SCOPE = &H8000
%EQUATE `CCT_RESULT = &H8001
%EQUATE `CCT_SNAPIN_MANAGER = &H8002
%EQUATE `CCT_UNINITIALIZED = &Hffff
%EQUATE `MMC_NW_OPTION_NONE = 0
%EQUATE `MMC_NW_OPTION_NOSCOPEPANE = &H1
%EQUATE `MMC_NW_OPTION_NOTOOLBARS = &H2
%EQUATE `MMC_NW_OPTION_SHORTTITLE = &H4
%EQUATE `MMC_NW_OPTION_CUSTOMTITLE = &H8
%EQUATE `MMC_NW_OPTION_NOPERSIST = &H10
%EQUATE `MMC_NW_OPTION_NOACTIONPANE = &H20
'#define CCF_NODETYPE ( L"CCF_NODETYPE" )
'#define CCF_SZNODETYPE ( L"CCF_SZNODETYPE" )
'#define CCF_DISPLAY_NAME ( L"CCF_DISPLAY_NAME" )
'#define CCF_SNAPIN_CLASSID ( L"CCF_SNAPIN_CLASSID" )
'#define CCF_SNAPIN_CLASS ( L"CCF_SNAPIN_CLASS" )
'#define CCF_WINDOW_TITLE ( L"CCF_WINDOW_TITLE" )
'#define CCF_MMC_MULTISELECT_DATAOBJECT ( L"CCF_MMC_MULTISELECT_DATAOBJECT" )
$CCF_NODETYPE = "CCF_NODETYPE"
$CCF_SZNODETYPE = "CCF_SZNODETYPE"
$CCF_DISPLAY_NAME = "CCF_DISPLAY_NAME"
$CCF_SNAPIN_CLASSID = "CCF_SNAPIN_CLASSID"
$CCF_SNAPIN_CLASS = "CCF_SNAPIN_CLASS"
$CCF_WINDOW_TITLE = "CCF_WINDOW_TITLE"
$CCF_MMC_MULTISELECT_DATAOBJECT = "CCF_MMC_MULTISELECT_DATAOBJECT"
' // Size = 8 bytes
TYPE SMMCDataObjects DWORD
 count AS DWORD
 lpDataObject(0) AS DWORD PTR ' LPDATAOBJECT - IDataObject interface
END TYPE
'#define CCF_MULTI_SELECT_SNAPINS ( L"CCF_MULTI_SELECT_SNAPINS" )
$CCF_MULTI_SELECT_SNAPINS = "CCF_MULTI_SELECT_SNAPINS"
' // Size = 20 bytes
TYPE SMMCObjectTypes DWORD
 count AS DWORD
 guid(0) AS GUID ' GUID
END TYPE
'#define CCF_OBJECT_TYPES_IN_MULTI_SELECT ( L"CCF_OBJECT_TYPES_IN_MULTI_SELECT" )
$CCF_OBJECT_TYPES_IN_MULTI_SELECT = "CCF_OBJECT_TYPES_IN_MULTI_SELECT"
'typedef SMMCObjectTypes SMMCDynamicExtensions;
'#define CCF_MMC_DYNAMIC_EXTENSIONS ( L"CCF_MMC_DYNAMIC_EXTENSIONS" )
'#define CCF_SNAPIN_PRELOADS ( L"CCF_SNAPIN_PRELOADS" )
$CCF_MMC_DYNAMIC_EXTENSIONS = "CCF_MMC_DYNAMIC_EXTENSIONS"
$CCF_SNAPIN_PRELOADS = "CCF_SNAPIN_PRELOADS"
' // Size = 8 bytes
TYPE SNodeID DWORD
 cBytes AS DWORD
 id(0) AS BYTE
END TYPE
' // Size = 12 bytes
TYPE SNodeID2 DWORD
 dwFlags AS DWORD
 cBytes AS DWORD
 id(0) AS BYTE
END TYPE
%EQUATE `MMC_NODEID_SLOW_RETRIEVAL = &H1
'#define CCF_NODEID2 ( L"CCF_NODEID2" )
'#define CCF_NODEID ( L"CCF_NODEID" )
$CCF_NODEID2 = "CCF_NODEID2"
$CCF_NODEID = "CCF_NODEID"
' // Size = 12 bytes
TYPE SColumnSetID DWORD
 dwFlags AS DWORD
 cBytes AS DWORD
 id(0) AS BYTE
END TYPE
'#define CCF_COLUMN_SET_ID ( L"CCF_COLUMN_SET_ID" )
$CCF_COLUMN_SET_ID = "CCF_COLUMN_SET_ID"
'STDAPI MMCPropertyChangeNotify(LONG_PTR lNotifyHandle, LPARAM param);
'#include <specstrings.h>
'STDAPI MMCPropertyHelp(__in LPOLESTR pszHelpTopic);
DECLARE FUNCTION MMCPropertyHelp LIB "mssnapr.dll" ALIAS "MMCPropertyHelp" ( BYREF pszHelpTopic AS WSTRINGZ ) AS LONG
'STDAPI MMCFreeNotifyHandle(LONG_PTR lNotifyHandle);
'// MMCPropPageCallback is only available in mmc.lib. See MMCAfxPropPageCallback if linking against mmcutil.lib.
'STDAPI MMCPropPageCallback(void* vpsp);
'EXTERN_C const CLSID CLSID_NodeManager;
'EXTERN_C const CLSID CLSID_MessageView;
'// Snap-in implemented callback responsible for calling AFX_MANAGE_STATE() for the snapin-in's module.
'typedef void (STDAPICALLTYPE *PFNAfxManageStateCallback)();
'// Sets up a PROPSHEETPAGE structure for calling the snap-in's PFNAfxManageStateCallback.
'// MMCAfxPropPageCallback is available in both mmc.lib and mmcutil.lib.
'// Returns:
'// S_OK - success
'// E_POINTER - vpsp or pfnCallback is null
'// E_INVALIDARG - vpsp->pfnCallback must be the same for all property pages
'// E_INVALIDARG - pfnManageStateCallback must be the same for all property pages
'// E_UNEXPECTED - vpsp has already been passed to MMCAfxPropPageCallback
'STDAPI MMCAfxPropPageCallback(void* vpsp, PFNAfxManageStateCallback pfnManageStateCallback);
'#define DOBJ_NULL (LPDATAOBJECT) 0
'#define DOBJ_CUSTOMOCX (LPDATAOBJECT) -1
'#define DOBJ_CUSTOMWEB (LPDATAOBJECT) -2
'#define DOBJ_NOCONSOLE (LPDATAOBJECT) -3
'#define SPECIAL_DOBJ_MIN -10
'#define SPECIAL_DOBJ_MAX 0
%EQUATE `DOBJ_NULL = 0
%EQUATE `DOBJ_CUSTOMOCX = -1
%EQUATE `DOBJ_CUSTOMWEB = -2
%EQUATE `DOBJ_NOCONSOLE = -3
%EQUATE `SPECIAL_DOBJ_MIN = -10
%EQUATE `SPECIAL_DOBJ_MAX = 0
'#define IS_SPECIAL_DATAOBJECT(d) (((LONG_PTR)(d) >= SPECIAL_DOBJ_MIN) && ((LONG_PTR)(d) <= SPECIAL_DOBJ_MAX))
MACRO IS_SPECIAL_DATAOBJECT(d) = (d >= %SPECIAL_DOBJ_MIN AND d <= %SPECIAL_DOBJ_MAX)
'#define IS_SPECIAL_COOKIE(c) (((c) >= SPECIAL_COOKIE_MIN) && ((c) <= SPECIAL_COOKIE_MAX))
MACRO IS_SPECIAL_COOKIE(c) = (c >= %SPECIAL_COOKIE_MIN AND c <= %SPECIAL_COOKIE_MAX)
' ########################################################################################
' IComponentData interface
' IID = 955AB28A-5218-11D0-A985-00C04FD8D565
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%MMC_IComponentData_INTERFACE_DEFINED)
 %MMC_IComponentData_INTERFACE_DEFINED = 1
$IID_MMC_IComponentData = GUID$("{955AB28A-5218-11D0-A985-00C04FD8D565}")
INTERFACE MMC_IComponentData $IID_MMC_IComponentData
 INHERIT IUnknown
 ' =====================================================================================
 METHOD Initialize ( ' VTable offset = 12
 BYVAL pUnknown AS IUnknown
 ) AS LONG
 ' =====================================================================================
 METHOD CreateComponent ( ' VTable offset = 16
 BYREF ppComponent AS MMC_IComponent ' LPCOMPONENT *ppComponent
 ) AS LONG
 ' =====================================================================================
 METHOD Notify ( ' VTable offset = 20
 BYVAL lpDataObject AS IDataObject
 , BYVAL event AS DWORD
 , BYVAL arg AS LONG
 , BYVAL param AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD Destroy ( ' VTable offset = 24
 ) AS LONG
 ' =====================================================================================
 METHOD QueryDataObject ( ' VTable offset = 28
 BYVAL cookie AS LONG
 , BYVAL type AS LONG
 , BYREF ppDataObject AS IDataObject
 ) AS LONG
 ' =====================================================================================
 METHOD GetDisplayInfo ( ' VTable offset = 32
 BYREF pScopeDataItem AS SCOPEDATAITEM
 ) AS LONG
 ' =====================================================================================
 METHOD CompareObjects ( ' VTable offset = 36
 BYVAL lpDataObjectA AS IDataObject
 , BYVAL lpDataObjectB AS IDataObject
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __MMC_IComponentData_INTERFACE_DEFINED__ */
' ########################################################################################
' IComponent interface
' IID = 43136EB2-D36C-11CF-ADBC-00AA00A80033
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%MMC_IComponent_INTERFACE_DEFINED)
 %MMC_IComponent_INTERFACE_DEFINED = 1
$IID_MMC_IComponent = GUID$("{43136EB2-D36C-11CF-ADBC-00AA00A80033}")
INTERFACE MMC_IComponent $IID_MMC_IComponent
 INHERIT IUnknown
 ' =====================================================================================
 METHOD Initialize ( ' VTable offset = 12
 BYVAL lpConsole AS MMC_IConsole
 ) AS LONG
 ' =====================================================================================
 METHOD Notify ( ' VTable offset = 16
 BYVAL lpDataObject AS IDataObject
 , BYVAL event AS DWORD
 , BYVAL arg AS LONG
 , BYVAL param AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD Destroy ( ' VTable offset = 20
 BYVAL cookie AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD QueryDataObject ( ' VTable offset = 24
 BYVAL cookie AS LONG
 , BYVAL type AS LONG
 , BYREF ppDataObject AS IDataObject
 ) AS LONG
 ' =====================================================================================
 METHOD GetResultViewType ( ' VTable offset = 28
 BYVAL cookie AS LONG
 , BYREF ppViewType AS DWORD
 , BYREF pViewOptions AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD GetDisplayInfo ( ' VTable offset = 32
 BYREF pResultDataItem AS RESULTDATAITEM
 ) AS LONG
 ' =====================================================================================
 METHOD CompareObjects ( ' VTable offset = 36
 BYVAL lpDataObjectA AS IDataObject
 , BYVAL lpDataObjectB AS IDataObject
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __MMC_IComponent_INTERFACE_DEFINED__ */
' ########################################################################################
' IResultDataCompare interface
' IID = E8315A52-7A1A-11D0-A2D2-00C04FD909DD
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%MMC_IResultDataCompare_INTERFACE_DEFINED)
 %MMC_IResultDataCompare_INTERFACE_DEFINED = 1
$IID_MMC_IResultDataCompare = GUID$("{E8315A52-7A1A-11D0-A2D2-00C04FD909DD}")
INTERFACE MMC_IResultDataCompare $IID_MMC_IResultDataCompare
 INHERIT IUnknown
 ' =====================================================================================
 METHOD Compare ( ' VTable offset = 12
 BYVAL lUserParam AS LONG
 , BYVAL cookieA AS LONG
 , BYVAL cookieB AS LONG
 , BYREF pnResult AS LONG
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __MMC_IResultDataCompare_INTERFACE_DEFINED__ */
' ########################################################################################
' IResultOwnerData interface
' IID = 9CB396D8-EA83-11D0-AEF1-00C04FB6DD2C
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%MMC_IResultOwnerData_INTERFACE_DEFINED)
 %MMC_IResultOwnerData_INTERFACE_DEFINED = 1
$IID_MMC_IResultOwnerData = GUID$("{9CB396D8-EA83-11D0-AEF1-00C04FB6DD2C}")
INTERFACE MMC_IResultOwnerData $IID_MMC_IResultOwnerData
 INHERIT IUnknown
 ' =====================================================================================
 METHOD FindItem ( ' VTable offset = 12
 BYREF pFindInfo AS RESULTFINDINFO
 , BYREF pnFoundIndex AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD CacheHint ( ' VTable offset = 16
 BYVAL nStartIndex AS LONG
 , BYVAL nEndIndex AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD SortItems ( ' VTable offset = 20
 BYVAL nColumn AS LONG
 , BYVAL dwSortOptions AS DWORD
 , BYVAL lUserParam AS LONG
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __MMC_IResultOwnerData_INTERFACE_DEFINED__ */
' ########################################################################################
' IConsole interface
' IID = 43136EB1-D36C-11CF-ADBC-00AA00A80033
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%MMC_IConsole_INTERFACE_DEFINED)
 %MMC_IConsole_INTERFACE_DEFINED = 1
$IID_MMC_IConsole = GUID$("{43136EB1-D36C-11CF-ADBC-00AA00A80033}")
INTERFACE MMC_IConsole $IID_MMC_IConsole
 INHERIT IUnknown
 ' =====================================================================================
 METHOD SetHeader ( ' VTable offset = 12
 BYVAL pHeader AS MMC_IHeaderCtrl
 ) AS LONG
 ' =====================================================================================
 METHOD SetToolbar ( ' VTable offset = 16
 BYVAL pToolbar AS MMC_IToolbar
 ) AS LONG
 ' =====================================================================================
 METHOD QueryResultView ( ' VTable offset = 20
 BYREF pUnknown AS IUnknown
 ) AS LONG
 ' =====================================================================================
 METHOD QueryScopeImageList ( ' VTable offset = 24
 BYREF ppImageList AS MMC_IImageList
 ) AS LONG
 ' =====================================================================================
 METHOD QueryResultImageList ( ' VTable offset = 28
 BYREF ppImageList AS MMC_IImageList
 ) AS LONG
 ' =====================================================================================
 METHOD UpdateAllViews ( ' VTable offset = 32
 BYVAL lpDataObject AS IDataObject
 , BYVAL data AS LONG
 , BYVAL hint AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD MessageBox ( ' VTable offset = 36
 BYREF lpszText AS WSTRINGZ
 , BYREF lpszTitle AS WSTRINGZ
 , BYVAL fuStyle AS DWORD
 , BYREF piRetval AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD QueryConsoleVerb ( ' VTable offset = 40
 BYREF ppConsoleVerb AS MMC_IConsoleVerb
 ) AS LONG
 ' =====================================================================================
 METHOD SelectScopeItem ( ' VTable offset = 44
 BYVAL hScopeItem AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD GetMainWindow ( ' VTable offset = 48
 BYREF phwnd AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD NewWindow ( ' VTable offset = 52
 BYVAL hScopeItem AS LONG
 , BYVAL lOptions AS LONG
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __MMC_IConsole_INTERFACE_DEFINED__ */
' ########################################################################################
' IHeaderCtrl interface
' IID = 43136EB3-D36C-11CF-ADBC-00AA00A80033
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%MMC_IHeaderCtrl_INTERFACE_DEFINED)
 %MMC_IHeaderCtrl_INTERFACE_DEFINED = 1
%EQUATE `AUTO_WIDTH = -1
%EQUATE `HIDE_COLUMN = -4
$IID_MMC_IHeaderCtrl = GUID$("{43136EB3-D36C-11CF-ADBC-00AA00A80033}")
INTERFACE MMC_IHeaderCtrl $IID_MMC_IHeaderCtrl
 INHERIT IUnknown
 ' =====================================================================================
 METHOD InsertColumn ( ' VTable offset = 12
 BYVAL nCol AS LONG
 , BYREF title AS WSTRINGZ
 , BYVAL nFormat AS LONG
 , BYVAL nWidth AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD DeleteColumn ( ' VTable offset = 16
 BYVAL nCol AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD SetColumnText ( ' VTable offset = 20
 BYVAL nCol AS LONG
 , BYREF title AS WSTRINGZ
 ) AS LONG
 ' =====================================================================================
 METHOD GetColumnText ( ' VTable offset = 24
 BYVAL nCol AS LONG
 , BYREF pText AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetColumnWidth ( ' VTable offset = 28
 BYVAL nCol AS LONG
 , BYVAL nWidth AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD GetColumnWidth ( ' VTable offset = 32
 BYVAL nCol AS LONG
 , BYREF pWidth AS LONG
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __MMC_IHeaderCtrl_INTERFACE_DEFINED__ */
' enum __MIDL___MIDL_itf_mmc_0000_0006_0001
%EQUATE `CCM_INSERTIONPOINTID_MASK_SPECIAL = &Hffff0000
%EQUATE `CCM_INSERTIONPOINTID_MASK_SHARED = &H80000000
%EQUATE `CCM_INSERTIONPOINTID_MASK_CREATE_PRIMARY = &H40000000
%EQUATE `CCM_INSERTIONPOINTID_MASK_ADD_PRIMARY = &H20000000
%EQUATE `CCM_INSERTIONPOINTID_MASK_ADD_3RDPARTY = &H10000000
%EQUATE `CCM_INSERTIONPOINTID_MASK_RESERVED = &Hfff0000
%EQUATE `CCM_INSERTIONPOINTID_MASK_FLAGINDEX = &H1f
%EQUATE `CCM_INSERTIONPOINTID_PRIMARY_TOP = &Ha0000000
%EQUATE `CCM_INSERTIONPOINTID_PRIMARY_NEW = &Ha0000001
%EQUATE `CCM_INSERTIONPOINTID_PRIMARY_TASK = &Ha0000002
%EQUATE `CCM_INSERTIONPOINTID_PRIMARY_VIEW = &Ha0000003
%EQUATE `CCM_INSERTIONPOINTID_PRIMARY_HELP = &Ha0000004
%EQUATE `CCM_INSERTIONPOINTID_3RDPARTY_NEW = &H90000001
%EQUATE `CCM_INSERTIONPOINTID_3RDPARTY_TASK = &H90000002
%EQUATE `CCM_INSERTIONPOINTID_ROOT_MENU = &H80000000
' enum __MIDL___MIDL_itf_mmc_0000_0006_0002
' { CCM_INSERTIONALLOWED_TOP = ( 1L << (( CCM_INSERTIONPOINTID_PRIMARY_TOP & CCM_INSERTIONPOINTID_MASK_FLAGINDEX ) ) ) ,
' CCM_INSERTIONALLOWED_NEW = ( 1L << (( CCM_INSERTIONPOINTID_PRIMARY_NEW & CCM_INSERTIONPOINTID_MASK_FLAGINDEX ) ) ) ,
' CCM_INSERTIONALLOWED_TASK = ( 1L << (( CCM_INSERTIONPOINTID_PRIMARY_TASK & CCM_INSERTIONPOINTID_MASK_FLAGINDEX ) ) ) ,
' CCM_INSERTIONALLOWED_VIEW = ( 1L << (( CCM_INSERTIONPOINTID_PRIMARY_VIEW & CCM_INSERTIONPOINTID_MASK_FLAGINDEX ) ) )
' } ;
%EQUATE `CCM_INSERTIONALLOWED_TOP = &H00000001
%EQUATE `CCM_INSERTIONALLOWED_NEW = &H00000002
%EQUATE `CCM_INSERTIONALLOWED_TASK = &H00000004
%EQUATE `CCM_INSERTIONALLOWED_VIEW = &H00000008
' enum __MIDL___MIDL_itf_mmc_0000_0006_0003
%EQUATE `CCM_COMMANDID_MASK_RESERVED = &Hffff0000
' enum __MIDL___MIDL_itf_mmc_0000_0006_0004
%EQUATE `CCM_SPECIAL_SEPARATOR = &H1
%EQUATE `CCM_SPECIAL_SUBMENU = &H2
%EQUATE `CCM_SPECIAL_DEFAULT_ITEM = &H4
%EQUATE `CCM_SPECIAL_INSERTION_POINT = &H8
%EQUATE `CCM_SPECIAL_TESTONLY = &H10
' ########################################################################################
' IContextMenuCallback interface
' IID = 43136EB7-D36C-11CF-ADBC-00AA00A80033
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%MMC_IContextMenuCallback_INTERFACE_DEFINED)
 %MMC_IContextMenuCallback_INTERFACE_DEFINED = 1
$IID_MMC_IContextMenuCallback = GUID$("{43136EB7-D36C-11CF-ADBC-00AA00A80033}")
INTERFACE MMC_IContextMenuCallback $IID_MMC_IContextMenuCallback
 INHERIT IUnknown
 ' =====================================================================================
 METHOD AddItem ( ' VTable offset = 12
 BYREF pItem AS CONTEXTMENUITEM
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __MMC_IContextMenuCallback_INTERFACE_DEFINED__ */
' ########################################################################################
' IContextMenuProvider interface
' IID = 9A93B3FB-4E75-4C74-871A-2CDA667F39A5
' Inherited interface = IContextMenuCallback
' ########################################################################################
#IF NOT %DEF(%MMC_IContextMenuProvider_INTERFACE_DEFINED)
 %MMC_IContextMenuProvider_INTERFACE_DEFINED = 1
$IID_MMC_IContextMenuProvider = GUID$("{9A93B3FB-4E75-4C74-871A-2CDA667F39A5}")
INTERFACE MMC_IContextMenuProvider $IID_MMC_IContextMenuProvider
 INHERIT IUnknown
 ' =====================================================================================
 ' IContextMenuCallback Method
 ' =====================================================================================
 METHOD AddItem ( ' VTable offset = 12
 BYREF pItem AS CONTEXTMENUITEM
 ) AS LONG
 ' =====================================================================================
 ' =====================================================================================
 ' IContextMenuCallback Method
 ' =====================================================================================
 METHOD EmptyMenuList ( ' VTable offset = 16
 ) AS LONG
 ' =====================================================================================
 METHOD AddPrimaryExtensionItems ( ' VTable offset = 20
 BYVAL piExtension AS IUnknown
 , BYVAL piDataObject AS IDataObject
 ) AS LONG
 ' =====================================================================================
 METHOD AddThirdPartyExtensionItems ( ' VTable offset = 24
 BYVAL piDataObject AS IDataObject
 ) AS LONG
 ' =====================================================================================
 METHOD ShowContextMenu ( ' VTable offset = 28
 BYVAL hwndParent AS DWORD
 , BYVAL xPos AS LONG
 , BYVAL yPos AS LONG
 , BYREF plSelected AS LONG
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __MMC_IContextMenuProvider_INTERFACE_DEFINED__ */
' ########################################################################################
' IExtendContextMenu interface
' IID = 4F3B7A4F-CFAC-11CF-B8E3-00C04FD8D5B0
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%MMC_IExtendContextMenu_INTERFACE_DEFINED)
 %MMC_IExtendContextMenu_INTERFACE_DEFINED = 1
$IID_MMC_IExtendContextMenu = GUID$("{4F3B7A4F-CFAC-11CF-B8E3-00C04FD8D5B0}")
INTERFACE MMC_IExtendContextMenu $IID_MMC_IExtendContextMenu
 INHERIT IUnknown
 ' =====================================================================================
 METHOD AddMenuItems ( ' VTable offset = 12
 BYVAL piDataObject AS IDataObject
 , BYVAL piCallback AS MMC_IContextMenuCallback
 , BYREF pInsertionAllowed AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD Command ( ' VTable offset = 16
 BYVAL lCommandID AS LONG
 , BYVAL piDataObject AS IDataObject
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __MMC_IExtendContextMenu_INTERFACE_DEFINED__ */
%EQUATE `ILSIF_LEAVE_LARGE_ICON = &H40000000
%EQUATE `ILSIF_LEAVE_SMALL_ICON = &H20000000
%EQUATE `ILSIF_LEAVE_MASK = %ILSIF_LEAVE_LARGE_ICON OR %ILSIF_LEAVE_SMALL_ICON
MACRO ILSI_LARGE_ICON(nLoc) = (nLoc OR %ILSIF_LEAVE_SMALL_ICON)
MACRO ILSI_SMALL_ICON(nLoc) = (nLoc OR %ILSIF_LEAVE_LARGE_ICON)
' ########################################################################################
' IImageList interface
' IID = 43136EB8-D36C-11CF-ADBC-00AA00A80033
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%MMC_IImageList_INTERFACE_DEFINED)
 %MMC_IImageList_INTERFACE_DEFINED = 1
$IID_MMC_IImageList = GUID$("{43136EB8-D36C-11CF-ADBC-00AA00A80033}")
INTERFACE MMC_IImageList $IID_MMC_IImageList
 INHERIT IUnknown
 ' =====================================================================================
 METHOD ImageListSetIcon ( ' VTable offset = 12
 BYVAL pIcon AS LONG
 , BYVAL nLoc AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD ImageListSetStrip ( ' VTable offset = 16
 BYVAL pBMapSm AS LONG
 , BYVAL pBMapLg AS LONG
 , BYVAL nStartLoc AS LONG
 , BYVAL cMask AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __MMC_IImageList_INTERFACE_DEFINED__ */
' ########################################################################################
' IResultData interface
' IID = 31DA5FA0-E0EB-11CF-9F21-00AA003CA9F6
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%MMC_IResultData_INTERFACE_DEFINED)
 %MMC_IResultData_INTERFACE_DEFINED = 1
$IID_MMC_IResultData = GUID$("{31DA5FA0-E0EB-11CF-9F21-00AA003CA9F6}")
INTERFACE MMC_IResultData $IID_MMC_IResultData
 INHERIT IUnknown
 ' =====================================================================================
 METHOD InsertItem ( ' VTable offset = 12
 BYREF item AS RESULTDATAITEM
 ) AS LONG
 ' =====================================================================================
 METHOD DeleteItem ( ' VTable offset = 16
 BYVAL itemID AS LONG
 , BYVAL nCol AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD FindItemByLParam ( ' VTable offset = 20
 BYVAL lParam AS LONG
 , BYREF pItemID AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD DeleteAllRsltItems ( ' VTable offset = 24
 ) AS LONG
 ' =====================================================================================
 METHOD SetItem ( ' VTable offset = 28
 BYREF item AS RESULTDATAITEM
 ) AS LONG
 ' =====================================================================================
 METHOD GetItem ( ' VTable offset = 32
 BYREF item AS RESULTDATAITEM
 ) AS LONG
 ' =====================================================================================
 METHOD GetNextItem ( ' VTable offset = 36
 BYREF item AS RESULTDATAITEM
 ) AS LONG
 ' =====================================================================================
 METHOD ModifyItemState ( ' VTable offset = 40
 BYVAL nIndex AS LONG
 , BYVAL itemID AS LONG
 , BYVAL uAdd AS DWORD
 , BYVAL uRemove AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD ModifyViewStyle ( ' VTable offset = 44
 BYVAL add AS DWORD
 , BYVAL remove AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetViewMode ( ' VTable offset = 48
 BYVAL lViewMode AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD GetViewMode ( ' VTable offset = 52
 BYREF lViewMode AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD UpdateItem ( ' VTable offset = 56
 BYVAL itemID AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD Sort ( ' VTable offset = 60
 BYVAL nColumn AS LONG
 , BYVAL dwSortOptions AS DWORD
 , BYVAL lUserParam AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD SetDescBarText ( ' VTable offset = 64
 BYREF DescText AS WSTRINGZ
 ) AS LONG
 ' =====================================================================================
 METHOD SetItemCount ( ' VTable offset = 68
 BYVAL nItemCount AS LONG
 , BYVAL dwOptions AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __MMC_IResultData_INTERFACE_DEFINED__ */
' ########################################################################################
' IConsoleNameSpace interface
' IID = BEDEB620-F24D-11CF-8AFC-00AA003CA9F6
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%MMC_IConsoleNameSpace_INTERFACE_DEFINED)
 %MMC_IConsoleNameSpace_INTERFACE_DEFINED = 1
$IID_MMC_IConsoleNameSpace = GUID$("{BEDEB620-F24D-11CF-8AFC-00AA003CA9F6}")
INTERFACE MMC_IConsoleNameSpace $IID_MMC_IConsoleNameSpace
 INHERIT IUnknown
 ' =====================================================================================
 METHOD InsertItem ( ' VTable offset = 12
 BYREF item AS SCOPEDATAITEM
 ) AS LONG
 ' =====================================================================================
 METHOD DeleteItem ( ' VTable offset = 16
 BYVAL hItem AS LONG
 , BYVAL fDeleteThis AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD SetItem ( ' VTable offset = 20
 BYREF item AS SCOPEDATAITEM
 ) AS LONG
 ' =====================================================================================
 METHOD GetItem ( ' VTable offset = 24
 BYREF item AS SCOPEDATAITEM
 ) AS LONG
 ' =====================================================================================
 METHOD GetChildItem ( ' VTable offset = 28
 BYVAL item AS LONG
 , BYREF pItemChild AS LONG
 , BYREF pCookie AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD GetNextItem ( ' VTable offset = 32
 BYVAL item AS LONG
 , BYREF pItemNext AS LONG
 , BYREF pCookie AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD GetParentItem ( ' VTable offset = 36
 BYVAL item AS LONG
 , BYREF pItemParent AS LONG
 , BYREF pCookie AS LONG
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __MMC_IConsoleNameSpace_INTERFACE_DEFINED__ */
' ########################################################################################
' IConsoleNameSpace2 interface
' IID = 255F18CC-65DB-11D1-A7DC-00C04FD8D565
' Inherited interface = IConsoleNameSpace
' ########################################################################################
#IF NOT %DEF(%MMC_IConsoleNameSpace2_INTERFACE_DEFINED)
 %MMC_IConsoleNameSpace2_INTERFACE_DEFINED = 1
$IID_MMC_IConsoleNameSpace2 = GUID$("{255F18CC-65DB-11D1-A7DC-00C04FD8D565}")
INTERFACE MMC_IConsoleNameSpace2 $IID_MMC_IConsoleNameSpace2
 INHERIT IUnknown
 ' =====================================================================================
 ' IConsoleNameSpace Methods
 ' =====================================================================================
 METHOD InsertItem ( ' VTable offset = 12
 BYREF item AS SCOPEDATAITEM
 ) AS LONG
 ' =====================================================================================
 METHOD DeleteItem ( ' VTable offset = 16
 BYVAL hItem AS LONG
 , BYVAL fDeleteThis AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD SetItem ( ' VTable offset = 20
 BYREF item AS SCOPEDATAITEM
 ) AS LONG
 ' =====================================================================================
 METHOD GetItem ( ' VTable offset = 24
 BYREF item AS SCOPEDATAITEM
 ) AS LONG
 ' =====================================================================================
 METHOD GetChildItem ( ' VTable offset = 28
 BYVAL item AS LONG
 , BYREF pItemChild AS LONG
 , BYREF pCookie AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD GetNextItem ( ' VTable offset = 32
 BYVAL item AS LONG
 , BYREF pItemNext AS LONG
 , BYREF pCookie AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD GetParentItem ( ' VTable offset = 36
 BYVAL item AS LONG
 , BYREF pItemParent AS LONG
 , BYREF pCookie AS LONG
 ) AS LONG
 ' =====================================================================================
 ' =====================================================================================
 ' IConsoleNameSpace2 Methods
 ' =====================================================================================
 METHOD Expand ( ' VTable offset = 40
 BYVAL hItem AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD AddExtension ( ' VTable offset = 44
 BYVAL hItem AS LONG
 , BYREF lpClsid AS GUID
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __MMC_IConsoleNameSpace2_INTERFACE_DEFINED__ */
'typedef struct _PSP *HPROPSHEETPAGE;
' ########################################################################################
' IPropertySheetCallback interface
' IID = 85DE64DD-EF21-11CF-A285-00C04FD8DBE6
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%MMC_IPropertySheetCallback_INTERFACE_DEFINED)
 %MMC_IPropertySheetCallback_INTERFACE_DEFINED = 1
$IID_MMC_IPropertySheetCallback = GUID$("{85DE64DD-EF21-11CF-A285-00C04FD8DBE6}")
INTERFACE MMC_IPropertySheetCallback $IID_MMC_IPropertySheetCallback
 INHERIT IUnknown
 ' =====================================================================================
 METHOD AddPage ( ' VTable offset = 12
 BYVAL hPage AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD RemovePage ( ' VTable offset = 16
 BYVAL hPage AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __MMC_IPropertySheetCallback_INTERFACE_DEFINED__ */
' ########################################################################################
' IPropertySheetProvider interface
' IID = 85DE64DE-EF21-11CF-A285-00C04FD8DBE6
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%MMC_IPropertySheetProvider_INTERFACE_DEFINED)
 %MMC_IPropertySheetProvider_INTERFACE_DEFINED = 1
$IID_MMC_IPropertySheetProvider = GUID$("{85DE64DE-EF21-11CF-A285-00C04FD8DBE6}")
INTERFACE MMC_IPropertySheetProvider $IID_MMC_IPropertySheetProvider
 INHERIT IUnknown
 ' =====================================================================================
 METHOD CreatePropertySheet ( ' VTable offset = 12
 BYREF title AS WSTRINGZ
 , BYVAL type AS BYTE
 , BYVAL cookie AS LONG
 , BYVAL pIDataObjectm AS IDataObject
 , BYVAL dwOptions AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD FindPropertySheet ( ' VTable offset = 16
 BYVAL hItem AS LONG
 , BYVAL lpComponent AS MMC_IComponent
 , BYVAL lpDataObject AS IDataObject
 ) AS LONG
 ' =====================================================================================
 METHOD AddPrimaryPages ( ' VTable offset = 20
 BYVAL lpUnknown AS IUnknown
 , BYVAL bCreateHandle AS LONG
 , BYVAL hNotifyWindow AS DWORD
 , BYVAL bScopePane AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD AddExtensionPages ( ' VTable offset = 24
 ) AS LONG
 ' =====================================================================================
 METHOD Show ( ' VTable offset = 28
 BYVAL window AS LONG
 , BYVAL page AS LONG
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __MMC_IPropertySheetProvider_INTERFACE_DEFINED__ */
' ########################################################################################
' IExtendPropertySheet interface
' IID = 85DE64DC-EF21-11CF-A285-00C04FD8DBE6
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%MMC_IExtendPropertySheet_INTERFACE_DEFINED)
 %MMC_IExtendPropertySheet_INTERFACE_DEFINED = 1
$IID_MMC_IExtendPropertySheet = GUID$("{85DE64DC-EF21-11CF-A285-00C04FD8DBE6}")
INTERFACE MMC_IExtendPropertySheet $IID_MMC_IExtendPropertySheet
 INHERIT IUnknown
 ' =====================================================================================
 METHOD CreatePropertyPages ( ' VTable offset = 12
 BYVAL lpProvider AS MMC_IPropertySheetCallback
 , BYVAL handle AS LONG
 , BYVAL lpIDataObject AS IDataObject
 ) AS LONG
 ' =====================================================================================
 METHOD QueryPagesFor ( ' VTable offset = 16
 BYVAL lpDataObject AS IDataObject
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __MMC_IExtendPropertySheet_INTERFACE_DEFINED__ */
' ########################################################################################
' IControlbar interface
' IID = 69FB811E-6C1C-11D0-A2CB-00C04FD909DD
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%MMC_IControlbar_INTERFACE_DEFINED)
 %MMC_IControlbar_INTERFACE_DEFINED = 1
$IID_MMC_IControlbar = GUID$("{69FB811E-6C1C-11D0-A2CB-00C04FD909DD}")
INTERFACE MMC_IControlbar $IID_MMC_IControlbar
 INHERIT IUnknown
 ' =====================================================================================
 METHOD Create ( ' VTable offset = 12
 BYVAL nType AS LONG
 , BYVAL pExtendControlbar AS MMC_IExtendControlbar
 , BYREF ppUnknown AS IUnknown
 ) AS LONG
 ' =====================================================================================
 METHOD Attach ( ' VTable offset = 16
 BYVAL nType AS LONG
 , BYVAL lpUnknown AS IUnknown
 ) AS LONG
 ' =====================================================================================
 METHOD Detach ( ' VTable offset = 20
 BYVAL lpUnknown AS IUnknown
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __MMC_IControlbar_INTERFACE_DEFINED__ */
' ########################################################################################
' IExtendControlbar interface
' IID = 49506520-6F40-11D0-A98B-00C04FD8D565
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%MMC_IExtendControlbar_INTERFACE_DEFINED)
 %MMC_IExtendControlbar_INTERFACE_DEFINED = 1
$IID_MMC_IExtendControlbar = GUID$("{49506520-6F40-11D0-A98B-00C04FD8D565}")
INTERFACE MMC_IExtendControlbar $IID_MMC_IExtendControlbar
 INHERIT IUnknown
 ' =====================================================================================
 METHOD SetControlbar ( ' VTable offset = 12
 BYVAL pControlbar AS MMC_IControlBar
 ) AS LONG
 ' =====================================================================================
 METHOD ControlbarNotify ( ' VTable offset = 16
 BYVAL event AS LONG
 , BYVAL arg AS LONG
 , BYVAL param AS LONG
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __MMC_IExtendControlbar_INTERFACE_DEFINED__ */
' ########################################################################################
' IToolbar interface
' IID = 43136EB9-D36C-11CF-ADBC-00AA00A80033
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%MMC_IToolbar_INTERFACE_DEFINED)
 %MMC_IToolbar_INTERFACE_DEFINED = 1
$IID_MMC_IToolbar = GUID$("{43136EB9-D36C-11CF-ADBC-00AA00A80033}")
INTERFACE MMC_IToolbar $IID_MMC_IToolbar
 INHERIT IUnknown
 ' =====================================================================================
 METHOD AddBitmap ( ' VTable offset = 12
 BYVAL nImages AS LONG
 , BYVAL hbmp AS DWORD
 , BYVAL cxSize AS LONG
 , BYVAL cySize AS LONG
 , BYVAL crMask AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD AddButtons ( ' VTable offset = 16
 BYVAL nButtons AS LONG
 , BYREF lpButtons AS MMCBUTTON
 ) AS LONG
 ' =====================================================================================
 METHOD InsertButton ( ' VTable offset = 20
 BYVAL nIndex AS LONG
 , BYREF lpButtons AS MMCBUTTON
 ) AS LONG
 ' =====================================================================================
 METHOD DeleteButton ( ' VTable offset = 24
 BYVAL nIndex AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD GetButtonState ( ' VTable offset = 28
 BYVAL idCommand AS LONG
 , BYVAL nState AS LONG
 , BYREF pState AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD SetButtonState ( ' VTable offset = 32
 BYVAL idCommand AS LONG
 , BYVAL nState AS LONG
 , BYVAL bState AS LONG
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __MMC_IToolbar_INTERFACE_DEFINED__ */
' ########################################################################################
' IConsoleVerb interface
' IID = E49F7A60-74AF-11D0-A286-00C04FD8FE93
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%MMC_IConsoleVerb_INTERFACE_DEFINED)
 %MMC_IConsoleVerb_INTERFACE_DEFINED = 1
$IID_MMC_IConsoleVerb = GUID$("{E49F7A60-74AF-11D0-A286-00C04FD8FE93}")
INTERFACE MMC_IConsoleVerb $IID_MMC_IConsoleVerb
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetVerbState ( ' VTable offset = 12
 BYVAL eCmdID AS DWORD
 , BYVAL nState AS LONG
 , BYREF pState AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD SetVerbState ( ' VTable offset = 16
 BYVAL eCmdID AS DWORD
 , BYVAL nState AS LONG
 , BYVAL bState AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD SetDefaultVerb ( ' VTable offset = 20
 BYVAL eCmdID AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetDefaultVerb ( ' VTable offset = 24
 BYREF peCmdID AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __MMC_IConsoleVerb_INTERFACE_DEFINED__ */
' ########################################################################################
' ISnapinAbout interface
' IID = 1245208C-A151-11D0-A7D7-00C04FD909DD
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%MMC_ISnapinAbout_INTERFACE_DEFINED)
 %MMC_ISnapinAbout_INTERFACE_DEFINED = 1
$IID_MMC_ISnapinAbout = GUID$("{1245208C-A151-11D0-A7D7-00C04FD909DD}")
INTERFACE MMC_ISnapinAbout $IID_MMC_ISnapinAbout
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetSnapinDescription ( ' VTable offset = 12
 BYREF lpDescription AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetProvider ( ' VTable offset = 16
 BYREF lpName AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetSnapinVersion ( ' VTable offset = 20
 BYREF lpVersion AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetSnapinImage ( ' VTable offset = 24
 BYREF hAppIcon AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetStaticFolderImage ( ' VTable offset = 28
 BYREF hSmallImage AS DWORD
 , BYREF hSmallImageOpen AS DWORD
 , BYREF hLargeImage AS DWORD
 , BYREF cMask AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __MMC_ISnapinAbout_INTERFACE_DEFINED__ */
' ########################################################################################
' IMenuButton interface
' IID = 951ED750-D080-11D0-B197-000000000000
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%MMC_IMenuButton_INTERFACE_DEFINED)
 %MMC_IMenuButton_INTERFACE_DEFINED = 1
$IID_MMC_IMenuButton = GUID$("{951ED750-D080-11D0-B197-000000000000}")
INTERFACE MMC_IMenuButton $IID_MMC_IMenuButton
 INHERIT IUnknown
 ' =====================================================================================
 METHOD AddButton ( ' VTable offset = 12
 BYVAL idCommand AS LONG
 , BYREF lpButtonText AS WSTRINGZ
 , BYREF lpTooltipText AS WSTRINGZ
 ) AS LONG
 ' =====================================================================================
 METHOD SetButton ( ' VTable offset = 16
 BYVAL idCommand AS LONG
 , BYREF lpButtonText AS WSTRINGZ
 , BYREF lpTooltipText AS WSTRINGZ
 ) AS LONG
 ' =====================================================================================
 METHOD SetButtonState ( ' VTable offset = 20
 BYVAL idCommand AS LONG
 , BYVAL nState AS LONG
 , BYVAL bState AS LONG
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __MMC_IMenuButton_INTERFACE_DEFINED__ */
' ########################################################################################
' ISnapinHelp interface
' IID = A6B15ACE-DF59-11D0-A7DD-00C04FD909DD
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%MMC_ISnapinHelp_INTERFACE_DEFINED)
 %MMC_ISnapinHelp_INTERFACE_DEFINED = 1
$IID_MMC_ISnapinHelp = GUID$("{A6B15ACE-DF59-11D0-A7DD-00C04FD909DD}")
INTERFACE MMC_ISnapinHelp $IID_MMC_ISnapinHelp
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetHelpTopic ( ' VTable offset = 12
 BYREF lpCompiledHelpFile AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __MMC_ISnapinHelp_INTERFACE_DEFINED__ */
' ########################################################################################
' IExtendPropertySheet2 interface
' IID = B7A87232-4A51-11D1-A7EA-00C04FD909DD
' Inherited interface = IExtendPropertySheet
' ########################################################################################
#IF NOT %DEF(%MMC_IExtendPropertySheet2_INTERFACE_DEFINED)
 %MMC_IExtendPropertySheet2_INTERFACE_DEFINED = 1
$IID_MMC_IExtendPropertySheet2 = GUID$("{B7A87232-4A51-11D1-A7EA-00C04FD909DD}")
INTERFACE MMC_IExtendPropertySheet2 $IID_MMC_IExtendPropertySheet2
 INHERIT IUnknown
 ' =====================================================================================
 ' IExtendPropertySheet Methods
 ' =====================================================================================
 METHOD CreatePropertyPages ( ' VTable offset = 12
 BYVAL lpProvider AS MMC_IPropertySheetCallback
 , BYVAL handle AS LONG
 , BYVAL lpIDataObject AS IDataObject
 ) AS LONG
 ' =====================================================================================
 METHOD QueryPagesFor ( ' VTable offset = 16
 BYVAL lpDataObject AS IDataObject
 ) AS LONG
 ' =====================================================================================
 ' =====================================================================================
 ' IExtendPropertySheet2 Method
 ' =====================================================================================
 METHOD GetWatermarks ( ' VTable offset = 20
 BYVAL lpIDataObject AS IDataObject
 , BYREF lphWatermark AS DWORD
 , BYREF lphHeader AS DWORD
 , BYREF lphPalette AS DWORD
 , BYREF bStretch AS LONG
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __MMC_IExtendPropertySheet2_INTERFACE_DEFINED__ */
' ########################################################################################
' IHeaderCtrl2 interface
' IID = 9757ABB8-1B32-11D1-A7CE-00C04FD8D565
' Inherited interface = IHeaderCtrl
' ########################################################################################
#IF NOT %DEF(%MMC_IHeaderCtrl2_INTERFACE_DEFINED)
 %MMC_IHeaderCtrl2_INTERFACE_DEFINED = 1
$IID_MMC_IHeaderCtrl2 = GUID$("{9757ABB8-1B32-11D1-A7CE-00C04FD8D565}")
INTERFACE MMC_IHeaderCtrl2 $IID_MMC_IHeaderCtrl2
 INHERIT IUnknown
 ' =====================================================================================
 ' IHeaderCtrl Methods
 ' =====================================================================================
 METHOD InsertColumn ( ' VTable offset = 12
 BYVAL nCol AS LONG
 , BYREF title AS WSTRINGZ
 , BYVAL nFormat AS LONG
 , BYVAL nWidth AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD DeleteColumn ( ' VTable offset = 16
 BYVAL nCol AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD SetColumnText ( ' VTable offset = 20
 BYVAL nCol AS LONG
 , BYREF title AS WSTRINGZ
 ) AS LONG
 ' =====================================================================================
 METHOD GetColumnText ( ' VTable offset = 24
 BYVAL nCol AS LONG
 , BYREF pText AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetColumnWidth ( ' VTable offset = 28
 BYVAL nCol AS LONG
 , BYVAL nWidth AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD GetColumnWidth ( ' VTable offset = 32
 BYVAL nCol AS LONG
 , BYREF pWidth AS LONG
 ) AS LONG
 ' =====================================================================================
 ' =====================================================================================
 ' IHeaderCtrl2 Methods
 ' =====================================================================================
 METHOD SetChangeTimeOut ( ' VTable offset = 36
 BYVAL uTimeout AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetColumnFilter ( ' VTable offset = 40
 BYVAL nColumn AS DWORD
 , BYVAL dwType AS DWORD
 , BYREF pFilterData AS MMC_FILTERDATA
 ) AS LONG
 ' =====================================================================================
 METHOD GetColumnFilter ( ' VTable offset = 44
 BYVAL nColumn AS DWORD
 , BYREF pdwType AS DWORD
 , BYREF pFilterData AS MMC_FILTERDATA
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __MMC_IHeaderCtrl2_INTERFACE_DEFINED__ */
' ########################################################################################
' ISnapinHelp2 interface
' IID = 4861A010-20F9-11D2-A510-00C04FB6DD2C
' Inherited interface = ISnapinHelp
' ########################################################################################
#IF NOT %DEF(%MMC_ISnapinHelp2_INTERFACE_DEFINED)
 %MMC_ISnapinHelp2_INTERFACE_DEFINED = 1
$IID_MMC_ISnapinHelp2 = GUID$("{4861A010-20F9-11D2-A510-00C04FB6DD2C}")
INTERFACE MMC_ISnapinHelp2 $IID_MMC_ISnapinHelp2
 INHERIT IUnknown
 ' =====================================================================================
 ' ISnapinHelp Method
 ' =====================================================================================
 METHOD GetHelpTopic ( ' VTable offset = 12
 BYREF lpCompiledHelpFile AS DWORD
 ) AS LONG
 ' =====================================================================================
 ' =====================================================================================
 ' ISnapinHelp2 Method
 ' =====================================================================================
 METHOD GetLinkedTopics ( ' VTable offset = 16
 BYREF lpCompiledHelpFiles AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __MMC_ISnapinHelp2_INTERFACE_DEFINED__ */
' enum MMC_TASK_DISPLAY_TYPE
%EQUATE `MMC_TASK_DISPLAY_UNINITIALIZED = 0
%EQUATE `MMC_TASK_DISPLAY_TYPE_SYMBOL = %MMC_TASK_DISPLAY_UNINITIALIZED + 1
%EQUATE `MMC_TASK_DISPLAY_TYPE_VANILLA_GIF = %MMC_TASK_DISPLAY_TYPE_SYMBOL + 1
%EQUATE `MMC_TASK_DISPLAY_TYPE_CHOCOLATE_GIF = %MMC_TASK_DISPLAY_TYPE_VANILLA_GIF + 1
%EQUATE `MMC_TASK_DISPLAY_TYPE_BITMAP = %MMC_TASK_DISPLAY_TYPE_CHOCOLATE_GIF + 1
' // Size = 12 bytes
TYPE MMC_TASK_DISPLAY_SYMBOL DWORD
 szFontFamilyName AS WSTRINGZ PTR
 szURLtoEOT AS WSTRINGZ PTR
 szSymbolString AS WSTRINGZ PTR
END TYPE
' // Size = 8 bytes
TYPE MMC_TASK_DISPLAY_BITMAP DWORD
 szMouseOverBitmap AS WSTRINGZ PTR
 szMouseOffBitmap AS WSTRINGZ PTR
END TYPE
' // Size = 12 bytes
UNION MMC_TASK_DISPLAY_OBJECT_UNION DWORD
 uBitmap AS MMC_TASK_DISPLAY_BITMAP
 uSymbol AS MMC_TASK_DISPLAY_SYMBOL
END UNION
' // Size = 16 bytes
TYPE MMC_TASK_DISPLAY_OBJECT
 eDisplayType AS LONG ' MMC_TASK_DISPLAY_TYPE
 MMC_TASK_DISPLAY_OBJECT_UNION
END TYPE
' enum MMC_ACTION_TYPE
%EQUATE `MMC_ACTION_UNINITIALIZED = -1
%EQUATE `MMC_ACTION_ID = %MMC_ACTION_UNINITIALIZED + 1
%EQUATE `MMC_ACTION_LINK = %MMC_ACTION_ID + 1
%EQUATE `MMC_ACTION_SCRIPT = %MMC_ACTION_LINK + 1
' // Size = 4 bytes
UNION MMC_TASK_UNION DWORD
 nCommandID AS LONG ' LONG_PTR
 szActionURL AS WSTRINGZ PTR
 szScript AS WSTRINGZ PTR
END UNION
' // Size = 32 bytes
TYPE MMC_TASK DWORD
 sDisplayObject AS MMC_TASK_DISPLAY_OBJECT
 szText AS WSTRINGZ PTR
 szHelpString AS WSTRINGZ PTR
 eActionType AS LONG ' MMC_ACTION_TYPE
 MMC_TASK_UNION
END TYPE
' // Size = 12 bytes
TYPE MMC_LISTPAD_INFO DWORD
 szTitle AS WSTRINGZ PTR
 szButtonText AS WSTRINGZ PTR
 nCommandID AS LONG ' LONG_PTR
END TYPE
'typedef DWORD MMC_STRING_ID;
' ########################################################################################
' IEnumTASK interface
' IID = 338698B1-5A02-11D1-9FEC-00600832DB4A
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%MMC_IEnumTASK_INTERFACE_DEFINED)
 %MMC_IEnumTASK_INTERFACE_DEFINED = 1
$IID_MMC_IEnumTASK = GUID$("{338698B1-5A02-11D1-9FEC-00600832DB4A}")
INTERFACE MMC_IEnumTASK $IID_MMC_IEnumTASK
 INHERIT IUnknown
 ' =====================================================================================
 METHOD Next ( ' VTable offset = 12
 BYVAL celt AS DWORD
 , BYREF rgelt AS MMC_TASK
 , BYREF pceltFetched AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD Skip ( ' VTable offset = 16
 BYVAL celt AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD Reset ( ' VTable offset = 20
 ) AS LONG
 ' =====================================================================================
 METHOD Clone ( ' VTable offset = 24
 BYREF ppenum AS MMC_IEnumTask
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __MMC_IEnumTASK_INTERFACE_DEFINED__ */
' ########################################################################################
' IExtendTaskPad interface
' IID = 8DEE6511-554D-11D1-9FEA-00600832DB4A
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%MMC_IExtendTaskPad_INTERFACE_DEFINED)
 %MMC_IExtendTaskPad_INTERFACE_DEFINED = 1
$IID_MMC_IExtendTaskPad = GUID$("{8DEE6511-554D-11D1-9FEA-00600832DB4A}")
INTERFACE MMC_IExtendTaskPad $IID_MMC_IExtendTaskPad
 INHERIT IUnknown
 ' =====================================================================================
 METHOD TaskNotify ( ' VTable offset = 12
 BYVAL pdo AS IDataObject
 , BYREF arg AS VARIANT
 , BYREF param AS VARIANT
 ) AS LONG
 ' =====================================================================================
 METHOD EnumTasks ( ' VTable offset = 16
 BYVAL pdo AS IDataObject
 , BYREF szTaskGroup AS WSTRINGZ
 , BYREF ppEnumTASK AS MMC_IEnumTask
 ) AS LONG
 ' =====================================================================================
 METHOD GetTitle ( ' VTable offset = 20
 BYREF pszGroup AS WSTRINGZ
 , BYREF pszTitle AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetDescriptiveText ( ' VTable offset = 24
 BYREF pszGroup AS WSTRINGZ
 , BYREF pszDescriptiveText AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetBackground ( ' VTable offset = 28
 BYREF pszGroup AS WSTRINGZ
 , BYREF pTDO AS MMC_TASK_DISPLAY_OBJECT
 ) AS LONG
 ' =====================================================================================
 METHOD GetListPadInfo ( ' VTable offset = 32
 BYREF pszGroup AS WSTRINGZ
 , BYREF lpListPadInfo AS MMC_LISTPAD_INFO
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __MMC_IExtendTaskPad_INTERFACE_DEFINED__ */
' ########################################################################################
' IConsole2 interface
' IID = 103D842A-AA63-11D1-A7E1-00C04FD8D565
' Inherited interface = IConsole
' ########################################################################################
#IF NOT %DEF(%MMC_IConsole2_INTERFACE_DEFINED)
 %MMC_IConsole2_INTERFACE_DEFINED = 1
$IID_MMC_IConsole2 = GUID$("{103D842A-AA63-11D1-A7E1-00C04FD8D565}")
INTERFACE MMC_IConsole2 $IID_MMC_IConsole2
 INHERIT IUnknown
 ' =====================================================================================
 ' IConsole Methods
 ' =====================================================================================
 METHOD SetHeader ( ' VTable offset = 12
 BYVAL pHeader AS MMC_IHeaderCtrl
 ) AS LONG
 ' =====================================================================================
 METHOD SetToolbar ( ' VTable offset = 16
 BYVAL pToolbar AS MMC_IToolbar
 ) AS LONG
 ' =====================================================================================
 METHOD QueryResultView ( ' VTable offset = 20
 BYREF pUnknown AS IUnknown
 ) AS LONG
 ' =====================================================================================
 METHOD QueryScopeImageList ( ' VTable offset = 24
 BYREF ppImageList AS MMC_IImageList
 ) AS LONG
 ' =====================================================================================
 METHOD QueryResultImageList ( ' VTable offset = 28
 BYREF ppImageList AS MMC_IImageList
 ) AS LONG
 ' =====================================================================================
 METHOD UpdateAllViews ( ' VTable offset = 32
 BYVAL lpDataObject AS IDataObject
 , BYVAL data AS LONG
 , BYVAL hint AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD MessageBox ( ' VTable offset = 36
 BYREF lpszText AS WSTRINGZ
 , BYREF lpszTitle AS WSTRINGZ
 , BYVAL fuStyle AS DWORD
 , BYREF piRetval AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD QueryConsoleVerb ( ' VTable offset = 40
 BYREF ppConsoleVerb AS MMC_IConsoleVerb
 ) AS LONG
 ' =====================================================================================
 METHOD SelectScopeItem ( ' VTable offset = 44
 BYVAL hScopeItem AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD GetMainWindow ( ' VTable offset = 48
 BYREF phwnd AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD NewWindow ( ' VTable offset = 52
 BYVAL hScopeItem AS LONG
 , BYVAL lOptions AS LONG
 ) AS LONG
 ' =====================================================================================
 ' =====================================================================================
 ' IConsole2 Methods
 ' =====================================================================================
 METHOD Expand ( ' VTable offset = 56
 BYVAL hItem AS LONG
 , BYVAL bExpand AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD IsTaskpadViewPreferred ( ' VTable offset = 60
 ) AS LONG
 ' =====================================================================================
 METHOD SetStatusText ( ' VTable offset = 64
 BYREF pszStatusText AS WSTRINGZ
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __MMC_IConsole2_INTERFACE_DEFINED__ */
' ########################################################################################
' IDisplayHelp interface
' IID = CC593830-B926-11D1-8063-0000F875A9CE
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%MMC_IDisplayHelp_INTERFACE_DEFINED)
 %MMC_IDisplayHelp_INTERFACE_DEFINED = 1
$IID_MCM_IDisplayHelp = GUID$("{CC593830-B926-11D1-8063-0000F875A9CE}")
INTERFACE MCM_IDisplayHelp $IID_MCM_IDisplayHelp
 INHERIT IUnknown
 ' =====================================================================================
 METHOD ShowTopic ( ' VTable offset = 12
 BYREF pszHelpTopic AS WSTRINGZ
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __MMC_IDisplayHelp_INTERFACE_DEFINED__ */
' ########################################################################################
' IRequiredExtensions interface
' IID = 72782D7A-A4A0-11D1-AF0F-00C04FB6DD2C
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%MCM_IRequiredExtensions_INTERFACE_DEFINED)
 %MCM_IRequiredExtensions_INTERFACE_DEFINED = 1
$IID_MCM_IRequiredExtensions = GUID$("{72782D7A-A4A0-11D1-AF0F-00C04FB6DD2C}")
INTERFACE MCM_IRequiredExtensions $IID_MCM_IRequiredExtensions
 INHERIT IUnknown
 ' =====================================================================================
 METHOD EnableAllExtensions ( ' VTable offset = 12
 ) AS LONG
 ' =====================================================================================
 METHOD GetFirstExtension ( ' VTable offset = 16
 BYREF pExtCLSID AS GUID
 ) AS LONG
 ' =====================================================================================
 METHOD GetNextExtension ( ' VTable offset = 20
 BYREF pExtCLSID AS GUID
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __MCM_IRequiredExtensions_INTERFACE_DEFINED__ */
' ########################################################################################
' IStringTable interface
' IID = DE40B7A4-0F65-11D2-8E25-00C04F8ECD78
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%MCM_IStringTable_INTERFACE_DEFINED)
 %MCM_IStringTable_INTERFACE_DEFINED = 1
$IID_MCM_IStringTable = GUID$("{DE40B7A4-0F65-11D2-8E25-00C04F8ECD78}")
INTERFACE MCM_IStringTable $IID_MCM_IStringTable
 INHERIT IUnknown
 ' =====================================================================================
 METHOD AddString ( ' VTable offset = 12
 BYREF pszAdd AS WSTRINGZ
 , BYREF pStringID AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetString ( ' VTable offset = 16
 BYVAL StringID AS DWORD
 , BYVAL cchBuffer AS DWORD
 , BYREF lpBuffer AS WSTRINGZ
 , BYREF pcchOut AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetStringLength ( ' VTable offset = 20
 BYVAL StringID AS DWORD
 , BYREF pcchString AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD DeleteString ( ' VTable offset = 24
 BYVAL StringID AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD DeleteAllStrings ( ' VTable offset = 28
 ) AS LONG
 ' =====================================================================================
 METHOD FindString ( ' VTable offset = 32
 BYREF pszFind AS WSTRINGZ
 , BYREF pStringID AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD Enumerate ( ' VTable offset = 36
 BYREF ppEnum AS IEnumString
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __MCM_IStringTable_INTERFACE_DEFINED__ */
%EQUATE `HDI_HIDDEN = &H1
' // Size = 16 bytes
TYPE MMC_COLUMN_DATA DWORD
 nColIndex AS LONG ' int
 dwFlags AS DWORD
 nWidth AS LONG ' int
 ulReserved AS DWORD ' ULONG_PTR
END TYPE
' // Size = 12 bytes
TYPE MMC_COLUMN_SET_DATA DWORD
 cbSize AS LONG ' int
 nNumCols AS LONG ' int
 pColData AS MMC_COLUMN_DATA PTR
END TYPE
' // Size = 12 bytes
TYPE MMC_SORT_DATA DWORD
 nColIndex AS LONG ' int
 dwSortOptions AS DWORD
 ulReserved AS DWORD ' ULONG_PTR
END TYPE
' // Size = 12 bytes
TYPE MMC_SORT_SET_DATA DWORD
 cbSize AS LONG ' int
 nNumItems AS LONG ' int
 pSortData AS MMC_SORT_DATA PTR
END TYPE
' ########################################################################################
' IColumnData interface
' IID = 547C1354-024D-11D3-A707-00C04F8EF4CB
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%MMC_IColumnData_INTERFACE_DEFINED)
 %MMC_IColumnData_INTERFACE_DEFINED = 1
$IID_MMC_IColumnData = GUID$("{547C1354-024D-11D3-A707-00C04F8EF4CB}")
INTERFACE MMC_IColumnData $IID_MMC_IColumnData
 INHERIT IUnknown
 ' =====================================================================================
 METHOD SetColumnConfigData ( ' VTable offset = 12
 BYREF pColID AS SColumnSetID
 , BYREF pColSetData AS MMC_COLUMN_SET_DATA
 ) AS LONG
 ' =====================================================================================
 METHOD GetColumnConfigData ( ' VTable offset = 16
 BYREF pColID AS SColumnSetID
 , BYREF ppColSetData AS MMC_COLUMN_SET_DATA
 ) AS LONG
 ' =====================================================================================
 METHOD SetColumnSortData ( ' VTable offset = 20
 BYREF pColID AS SColumnSetID
 , BYREF pColSortData AS MMC_SORT_SET_DATA
 ) AS LONG
 ' =====================================================================================
 METHOD GetColumnSortData ( ' VTable offset = 24
 BYREF pColID AS SColumnSetID
 , BYREF ppColSortData AS MMC_SORT_SET_DATA
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __MMC_IColumnData_INTERFACE_DEFINED__ */
' ########################################################################################
' IMessageView interface
' IID = 80F94174-FCCC-11D2-B991-00C04F8ECD78
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%MMC_IMessageView_INTERFACE_DEFINED)
 %MMC_IMessageView_INTERFACE_DEFINED = 1
' enum tagIconIdentifier
%EQUATE `Icon_None = 0
%EQUATE `Icon_Error = 32513
%EQUATE `Icon_Question = 32514
%EQUATE `Icon_Warning = 32515
%EQUATE `Icon_Information = 32516
%EQUATE `Icon_First = %Icon_Error
%EQUATE `Icon_Last = %Icon_Information
$IID_MMC_IMessageView = GUID$("{80F94174-FCCC-11D2-B991-00C04F8ECD78}")
INTERFACE MMC_IMessageView $IID_MMC_IMessageView
 INHERIT IUnknown
 ' =====================================================================================
 METHOD SetTitleText ( ' VTable offset = 12
 BYREF pszTitleText AS WSTRINGZ
 ) AS LONG
 ' =====================================================================================
 METHOD SetBodyText ( ' VTable offset = 16
 BYREF pszBodyText AS WSTRINGZ
 ) AS LONG
 ' =====================================================================================
 METHOD SetIcon ( ' VTable offset = 20
 BYVAL id AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD Clear ( ' VTable offset = 24
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __MMC_IMessageView_INTERFACE_DEFINED__ */
' // Size = 12 bytes
TYPE RDITEMHDR DWORD
 dwFlags AS DWORD
 cookie AS LONG ' MMC_COOKIE
 lpReserved AS LONG
END TYPE
MACRO RDCITEMHDR = RDITEMHDR
%EQUATE `RDCI_ScopeItem = &H80000000
' // Size = 24 bytes
TYPE RDCOMPARE DWORD
 cbSize AS DWORD
 dwFlags AS DWORD
 nColumn AS LONG ' int
 lUserParam AS LONG
 prdch1 AS RDITEMHDR PTR
 prdch2 AS RDITEMHDR PTR
END TYPE
' ########################################################################################
' IResultDataCompareEx interface
' IID = 96933476-0251-11D3-AEB0-00C04F8ECD78
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%MMC_IResultDataCompareEx_INTERFACE_DEFINED)
 %MMC_IResultDataCompareEx_INTERFACE_DEFINED = 1
$IID_MMC_IResultDataCompareEx = GUID$("{96933476-0251-11D3-AEB0-00C04F8ECD78}")
INTERFACE MMC_IResultDataCompareEx $IID_MMC_IResultDataCompareEx
 INHERIT IUnknown
 ' =====================================================================================
 METHOD Compare ( ' VTable offset = 12
 BYREF prdc AS RDCOMPARE
 , BYREF pnResult AS LONG
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __MMC_IResultDataCompareEx_INTERFACE_DEFINED__ */
' enum MMC_VIEW_TYPE
%EQUATE `MMC_VIEW_TYPE_LIST = 0
%EQUATE `MMC_VIEW_TYPE_HTML = %MMC_VIEW_TYPE_LIST + 1
%EQUATE `MMC_VIEW_TYPE_OCX = %MMC_VIEW_TYPE_HTML + 1
%EQUATE `RVTI_MISC_OPTIONS_NOLISTVIEWS = &H1
%EQUATE `RVTI_LIST_OPTIONS_NONE = &H0
%EQUATE `RVTI_LIST_OPTIONS_OWNERDATALIST = &H2
%EQUATE `RVTI_LIST_OPTIONS_MULTISELECT = &H4
%EQUATE `RVTI_LIST_OPTIONS_FILTERED = &H8
%EQUATE `RVTI_LIST_OPTIONS_USEFONTLINKING = &H20
%EQUATE `RVTI_LIST_OPTIONS_EXCLUDE_SCOPE_ITEMS_FROM_LIST = &H40
%EQUATE `RVTI_LIST_OPTIONS_LEXICAL_SORT = &H80
%EQUATE `RVTI_LIST_OPTIONS_ALLOWPASTE = &H100
%EQUATE `RVTI_HTML_OPTIONS_NONE = &H0
%EQUATE `RVTI_HTML_OPTIONS_NOLISTVIEW = &H1
%EQUATE `RVTI_OCX_OPTIONS_NONE = &H0
%EQUATE `RVTI_OCX_OPTIONS_NOLISTVIEW = &H1
%EQUATE `RVTI_OCX_OPTIONS_CACHE_OCX = &H2
' // Size = 8 bytes
TYPE RESULT_VIEW_TYPE_INFO_UNION_STRUCT_1 DWORD
 dwHTMLOptions AS DWORD
 pstrURL AS WSTRINGZ PTR
END TYPE
' // Size = 8 bytes
TYPE RESULT_VIEW_TYPE_INFO_UNION_STRUCT_2 DWORD
 dwOCXOptions AS DWORD
 pUnkControl AS DWORD PTR
END TYPE
' // Size = 8 bytes
UNION RESULT_VIEW_TYPE_INFO_UNION DWORD
 dwListOptions AS DWORD
 RESULT_VIEW_TYPE_INFO_UNION_STRUCT_1
 RESULT_VIEW_TYPE_INFO_UNION_STRUCT_2
END UNION
' // Size = 20 bytes
TYPE RESULT_VIEW_TYPE_INFO DWORD
 pstrPersistableViewDescription AS WSTRINGZ PTR
 eViewType AS LONG ' MMC_VIEW_TYPE
 dwMiscOptions AS DWORD
 RESULT_VIEW_TYPE_INFO_UNION
END TYPE
'#define CCF_DESCRIPTION ( L"CCF_DESCRIPTION" )
'#define CCF_HTML_DETAILS ( L"CCF_HTML_DETAILS" )
$$CCF_DESCRIPTION = "CCF_DESCRIPTION"$$
$$CCF_HTML_DETAILS = "CCF_HTML_DETAILS"$$
' // Size = 28 bytes
TYPE CONTEXTMENUITEM2 DWORD
 strName AS WSTRINGZ PTR
 strStatusBarText AS WSTRINGZ PTR
 lCommandID AS LONG
 lInsertionPointID AS LONG
 fFlags AS LONG
 fSpecialFlags AS LONG
 strLanguageIndependentName AS WSTRINGZ PTR
END TYPE
' // Size = 32 bytes
TYPE MMC_EXT_VIEW_DATA DWORD
 viewID AS GUID ' GUID
 pszURL AS WSTRINGZ PTR
 pszViewTitle AS WSTRINGZ PTR
 pszTooltipText AS WSTRINGZ PTR
 bReplacesDefaultView AS LONG
END TYPE
%EQUATE `MMC_DEFAULT_OPERATION_COPY = &H1
' ########################################################################################
' IComponentData2 interface
' IID = CCA0F2D2-82DE-41B5-BF47-3B2076273D5C
' Inherited interface = IComponentData
' ########################################################################################
#IF NOT %DEF(%MMC_IComponentData2_INTERFACE_DEFINED)
 %MMC_IComponentData2_INTERFACE_DEFINED = 1
$IID_MMC_IComponentData2 = GUID$("{CCA0F2D2-82DE-41B5-BF47-3B2076273D5C}")
INTERFACE MMC_IComponentData2 $IID_MMC_IComponentData2
 INHERIT IUnknown
 ' =====================================================================================
 ' IComponentData Methods
 ' =====================================================================================
 METHOD Initialize ( ' VTable offset = 12
 BYVAL pUnknown AS IUnknown
 ) AS LONG
 ' =====================================================================================
 METHOD CreateComponent ( ' VTable offset = 16
 BYREF ppComponent AS MMC_IComponent ' LPCOMPONENT *ppComponent
 ) AS LONG
 ' =====================================================================================
 METHOD Notify ( ' VTable offset = 20
 BYVAL lpDataObject AS IDataObject
 , BYVAL event AS DWORD
 , BYVAL arg AS LONG
 , BYVAL param AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD Destroy ( ' VTable offset = 24
 ) AS LONG
 ' =====================================================================================
 METHOD QueryDataObject ( ' VTable offset = 28
 BYVAL cookie AS LONG
 , BYVAL type AS LONG
 , BYREF ppDataObject AS IDataObject
 ) AS LONG
 ' =====================================================================================
 METHOD GetDisplayInfo ( ' VTable offset = 32
 BYREF pScopeDataItem AS SCOPEDATAITEM
 ) AS LONG
 ' =====================================================================================
 METHOD CompareObjects ( ' VTable offset = 36
 BYVAL lpDataObjectA AS IDataObject
 , BYVAL lpDataObjectB AS IDataObject
 ) AS LONG
 ' =====================================================================================
 ' =====================================================================================
 ' IComponentData2 Methods
 ' =====================================================================================
 METHOD QueryDispatch ( ' VTable offset = 40
 BYVAL cookie AS LONG
 , BYVAL type AS DWORD
 , BYREF ppDispatch AS IDispatch
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __MMC_IComponentData2_INTERFACE_DEFINED__ */
' ########################################################################################
' IComponent2 interface
' IID = 79A2D615-4A10-4ED4-8C65-8633F9335095
' Inherited interface = IComponent
' ########################################################################################
#IF NOT %DEF(%MMC_IComponent2_INTERFACE_DEFINED)
 %MMC_IComponent2_INTERFACE_DEFINED = 1
$IID_MMC_IComponent2 = GUID$("{79A2D615-4A10-4ED4-8C65-8633F9335095}")
INTERFACE MMC_IComponent2 $IID_MMC_IComponent2
 INHERIT IUnknown
 ' =====================================================================================
 ' IComponent Methods
 ' =====================================================================================
 METHOD Initialize ( ' VTable offset = 12
 BYVAL lpConsole AS MMC_IConsole
 ) AS LONG
 ' =====================================================================================
 METHOD Notify ( ' VTable offset = 16
 BYVAL lpDataObject AS IDataObject
 , BYVAL event AS DWORD
 , BYVAL arg AS LONG
 , BYVAL param AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD Destroy ( ' VTable offset = 20
 BYVAL cookie AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD QueryDataObject ( ' VTable offset = 24
 BYVAL cookie AS LONG
 , BYVAL type AS LONG
 , BYREF ppDataObject AS IDataObject
 ) AS LONG
 ' =====================================================================================
 METHOD GetResultViewType ( ' VTable offset = 28
 BYVAL cookie AS LONG
 , BYREF ppViewType AS DWORD
 , BYREF pViewOptions AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD GetDisplayInfo ( ' VTable offset = 32
 BYREF pResultDataItem AS RESULTDATAITEM
 ) AS LONG
 ' =====================================================================================
 METHOD CompareObjects ( ' VTable offset = 36
 BYVAL lpDataObjectA AS IDataObject
 , BYVAL lpDataObjectB AS IDataObject
 ) AS LONG
 ' =====================================================================================
 ' =====================================================================================
 ' IComponent2 Methods
 ' =====================================================================================
 METHOD QueryDispatch ( ' VTable offset = 40
 BYVAL cookie AS LONG
 , BYVAL type AS DWORD
 , BYREF ppDispatch AS IDispatch
 ) AS LONG
 ' =====================================================================================
 METHOD GetResultViewType2 ( ' VTable offset = 44
 BYVAL cookie AS LONG
 , BYREF pResultViewType AS RESULT_VIEW_TYPE_INFO
 ) AS LONG
 ' =====================================================================================
 METHOD RestoreResultView ( ' VTable offset = 48
 BYVAL cookie AS LONG
 , BYREF pResultViewType AS RESULT_VIEW_TYPE_INFO
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __MMC_IComponent2_INTERFACE_DEFINED__ */
' ########################################################################################
' IContextMenuCallback2 interface
' IID = E178BC0E-2ED0-4B5E-8097-42C9087E8B33
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%MMC_IContextMenuCallback2_INTERFACE_DEFINED)
 %MMC_IContextMenuCallback2_INTERFACE_DEFINED = 1
$IID_MMC_IContextMenuCallback2 = GUID$("{E178BC0E-2ED0-4B5E-8097-42C9087E8B33}")
INTERFACE MMC_IContextMenuCallback2 $IID_MMC_IContextMenuCallback2
 INHERIT IUnknown
 ' =====================================================================================
 METHOD AddItem ( ' VTable offset = 12
 BYREF pItem AS CONTEXTMENUITEM2
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __MMC_IContextMenuCallback2_INTERFACE_DEFINED__ */
' ########################################################################################
' IMMCVersionInfo interface
' IID = A8D2C5FE-CDCB-4B9D-BDE5-A27343FF54BC
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%MMC_IMMCVersionInfo_INTERFACE_DEFINED)
 %MMC_IMMCVersionInfo_INTERFACE_DEFINED = 1
$IID_MMC_IMMCVersionInfo = GUID$("{A8D2C5FE-CDCB-4B9D-BDE5-A27343FF54BC}")
INTERFACE MMC_IMMCVersionInfo $IID_MMC_IMMCVersionInfo
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetMMCVersion ( ' VTable offset = 12
 BYREF pVersionMajor AS LONG
 , BYREF pVersionMinor AS LONG
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __MMC_IMMCVersionInfo_INTERFACE_DEFINED__ */
' ########################################################################################
' IExtendView interface
' IID = 89995CEE-D2ED-4C0E-AE5E-DF7E76F3FA53
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%MMC_IExtendView_INTERFACE_DEFINED)
 %MMC_IExtendView_INTERFACE_DEFINED = 1
$IID_MMC_IExtendView = GUID$("{89995CEE-D2ED-4C0E-AE5E-DF7E76F3FA53}")
INTERFACE MMC_IExtendView $IID_MMC_IExtendView
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetViews ( ' VTable offset = 12
 BYVAL pDataObject AS IDataObject
 , BYVAL pViewExtensionCallback AS MMC_IViewExtensionCallback
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __MMC_IExtendView_INTERFACE_DEFINED__ */
' ########################################################################################
' IViewExtensionCallback interface
' IID = 34DD928A-7599-41E5-9F5E-D6BC3062C2DA
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%MMC_IViewExtensionCallback_INTERFACE_DEFINED)
 %MMC_IViewExtensionCallback_INTERFACE_DEFINED = 1
$IID_MMC_IViewExtensionCallback = GUID$("{34DD928A-7599-41E5-9F5E-D6BC3062C2DA}")
INTERFACE MMC_IViewExtensionCallback $IID_MMC_IViewExtensionCallback
 INHERIT IUnknown
 ' =====================================================================================
 METHOD AddView ( ' VTable offset = 12
 BYREF pExtViewData AS MMC_EXT_VIEW_DATA
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __MMC_IViewExtensionCallback_INTERFACE_DEFINED__ */
' ########################################################################################
' IConsolePower interface
' IID = 1CFBDD0E-62CA-49CE-A3AF-DBB2DE61B068
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%MMC_IConsolePower_INTERFACE_DEFINED)
 %MMC_IConsolePower_INTERFACE_DEFINED = 1
$IID_MMC_IConsolePower = GUID$("{1CFBDD0E-62CA-49CE-A3AF-DBB2DE61B068}")
INTERFACE MMC_IConsolePower $IID_MMC_IConsolePower
 INHERIT IUnknown
 ' =====================================================================================
 METHOD SetExecutionState ( ' VTable offset = 12
 BYVAL dwAdd AS DWORD
 , BYVAL dwRemove AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD ResetIdleTimer ( ' VTable offset = 16
 BYVAL dwFlags AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __MMC_IConsolePower_INTERFACE_DEFINED__ */
' ########################################################################################
' IConsolePowerSink interface
' IID = 3333759F-FE4F-4975-B143-FEC0A5DD6D65
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%MMC_IConsolePowerSink_INTERFACE_DEFINED)
 %MMC_IConsolePowerSink_INTERFACE_DEFINED = 1
$IID_MMC_IConsolePowerSink = GUID$("{3333759F-FE4F-4975-B143-FEC0A5DD6D65}")
INTERFACE MMC_IConsolePowerSink $IID_MMC_IConsolePowerSink
 INHERIT IUnknown
 ' =====================================================================================
 METHOD OnPowerBroadcast ( ' VTable offset = 12
 BYVAL nEvent AS DWORD
 , BYVAL lParam AS LONG
 , BYREF plReturn AS LONG
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IConsolePowerSink_INTERFACE_DEFINED__ */
' ########################################################################################
' INodeProperties interface
' IID = 15BC4D24-A522-4406-AA55-0749537A6865
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%MMC_INodeProperties_INTERFACE_DEFINED)
 %MMC_INodeProperties_INTERFACE_DEFINED = 1
$IID_MMC_INodeProperties = GUID$("{15BC4D24-A522-4406-AA55-0749537A6865}")
INTERFACE MMC_INodeProperties $IID_MMC_INodeProperties
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetProperty ( ' VTable offset = 12
 BYVAL pDataObject AS IDataObject
 , BYVAL szPropertyName AS WSTRING
 , BYREF pbstrProperty AS WSTRING
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __MMC_INodeProperties_INTERFACE_DEFINED__ */
' ########################################################################################
' IConsole3 interface
' IID = 4F85EFDB-D0E1-498C-8D4A-D010DFDD404F
' Inherited interface = IConsole2
' ########################################################################################
#IF NOT %DEF(%MMC_IConsole3_INTERFACE_DEFINED)
 %MMC_IConsole3_INTERFACE_DEFINED = 1
$IID_MMC_IConsole3 = GUID$("{4F85EFDB-D0E1-498C-8D4A-D010DFDD404F}")
INTERFACE MMC_IConsole3 $IID_MMC_IConsole3
 INHERIT IUnknown
 ' =====================================================================================
 ' IConsole Methods
 ' =====================================================================================
 METHOD SetHeader ( ' VTable offset = 12
 BYVAL pHeader AS MMC_IHeaderCtrl
 ) AS LONG
 ' =====================================================================================
 METHOD SetToolbar ( ' VTable offset = 16
 BYVAL pToolbar AS MMC_IToolbar
 ) AS LONG
 ' =====================================================================================
 METHOD QueryResultView ( ' VTable offset = 20
 BYREF pUnknown AS IUnknown
 ) AS LONG
 ' =====================================================================================
 METHOD QueryScopeImageList ( ' VTable offset = 24
 BYREF ppImageList AS MMC_IImageList
 ) AS LONG
 ' =====================================================================================
 METHOD QueryResultImageList ( ' VTable offset = 28
 BYREF ppImageList AS MMC_IImageList
 ) AS LONG
 ' =====================================================================================
 METHOD UpdateAllViews ( ' VTable offset = 32
 BYVAL lpDataObject AS IDataObject
 , BYVAL data AS LONG
 , BYVAL hint AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD MessageBox ( ' VTable offset = 36
 BYREF lpszText AS WSTRINGZ
 , BYREF lpszTitle AS WSTRINGZ
 , BYVAL fuStyle AS DWORD
 , BYREF piRetval AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD QueryConsoleVerb ( ' VTable offset = 40
 BYREF ppConsoleVerb AS MMC_IConsoleVerb
 ) AS LONG
 ' =====================================================================================
 METHOD SelectScopeItem ( ' VTable offset = 44
 BYVAL hScopeItem AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD GetMainWindow ( ' VTable offset = 48
 BYREF phwnd AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD NewWindow ( ' VTable offset = 52
 BYVAL hScopeItem AS LONG
 , BYVAL lOptions AS LONG
 ) AS LONG
 ' =====================================================================================
 ' =====================================================================================
 ' IConsole2 Methods
 ' =====================================================================================
 METHOD Expand ( ' VTable offset = 56
 BYVAL hItem AS LONG
 , BYVAL bExpand AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD IsTaskpadViewPreferred ( ' VTable offset = 60
 ) AS LONG
 ' =====================================================================================
 METHOD SetStatusText ( ' VTable offset = 64
 BYREF pszStatusText AS WSTRINGZ
 ) AS LONG
 ' =====================================================================================
 ' =====================================================================================
 ' IConsole3 Methods
 ' =====================================================================================
 METHOD RenameScopeItem ( ' VTable offset = 68
 BYVAL hScopeItem AS LONG
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __MMC_IConsole3_INTERFACE_DEFINED__ */
' ########################################################################################
' IResultData2 interface
' IID = 0F36E0EB-A7F1-4A81-BE5A-9247F7DE4B1B
' Inherited interface = IResultData
' ########################################################################################
#IF NOT %DEF(%MMC_IResultData2_INTERFACE_DEFINED)
 %MMC_IResultData2_INTERFACE_DEFINED = 1
$IID_MMC_IResultData2 = GUID$("{0F36E0EB-A7F1-4A81-BE5A-9247F7DE4B1B}")
INTERFACE MMC_IResultData2 $IID_MMC_IResultData2
 INHERIT IUnknown
 ' =====================================================================================
 ' IResultData Methods
 ' =====================================================================================
 METHOD InsertItem ( ' VTable offset = 12
 BYREF item AS RESULTDATAITEM
 ) AS LONG
 ' =====================================================================================
 METHOD DeleteItem ( ' VTable offset = 16
 BYVAL itemID AS LONG
 , BYVAL nCol AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD FindItemByLParam ( ' VTable offset = 20
 BYVAL lParam AS LONG
 , BYREF pItemID AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD DeleteAllRsltItems ( ' VTable offset = 24
 ) AS LONG
 ' =====================================================================================
 METHOD SetItem ( ' VTable offset = 28
 BYREF item AS RESULTDATAITEM
 ) AS LONG
 ' =====================================================================================
 METHOD GetItem ( ' VTable offset = 32
 BYREF item AS RESULTDATAITEM
 ) AS LONG
 ' =====================================================================================
 METHOD GetNextItem ( ' VTable offset = 36
 BYREF item AS RESULTDATAITEM
 ) AS LONG
 ' =====================================================================================
 METHOD ModifyItemState ( ' VTable offset = 40
 BYVAL nIndex AS LONG
 , BYVAL itemID AS LONG
 , BYVAL uAdd AS DWORD
 , BYVAL uRemove AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD ModifyViewStyle ( ' VTable offset = 44
 BYVAL add AS DWORD
 , BYVAL remove AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetViewMode ( ' VTable offset = 48
 BYVAL lViewMode AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD GetViewMode ( ' VTable offset = 52
 BYREF lViewMode AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD UpdateItem ( ' VTable offset = 56
 BYVAL itemID AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD Sort ( ' VTable offset = 60
 BYVAL nColumn AS LONG
 , BYVAL dwSortOptions AS DWORD
 , BYVAL lUserParam AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD SetDescBarText ( ' VTable offset = 64
 BYREF DescText AS WSTRINGZ
 ) AS LONG
 ' =====================================================================================
 METHOD SetItemCount ( ' VTable offset = 68
 BYVAL nItemCount AS LONG
 , BYVAL dwOptions AS DWORD
 ) AS LONG
 ' =====================================================================================
 ' =====================================================================================
 ' IResultData2 Methods
 ' =====================================================================================
 METHOD RenameResultItem ( ' VTable offset = 72
 BYVAL itemID AS LONG
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __MMC_IResultData2_INTERFACE_DEFINED__ */
' enum MMC_ITEM_OVERLAY
%EQUATE `MMC_ITEM_OVERLAY_NONE = 0
%EQUATE `MMC_ITEM_OVERLAY_ERROR = 1
%EQUATE `MMC_ITEM_OVERLAY_WARNING = 2
%EQUATE `MMC_ITEM_OVERLAY_INFO = 3
%EQUATE `MMC_ITEM_OVERLAY_BUSY = 4
%EQUATE `MMC_ITEM_OVERLAY_UNAVAILABLE = 5
%EQUATE `MMC_ITEM_OVERLAY_SHORTCUT = 6
%EQUATE `MMC_ITEM_OVERLAY_RUNNING = 7
%EQUATE `MMC_ITEM_OVERLAY_PAUSED = 8
%EQUATE `MMC_ITEM_OVERLAY_STOPPED = 9
%EQUATE `MMC_ITEM_OVERLAY_COMPLETE = 10
%EQUATE `MMC_ITEM_OVERLAY_STATE_MASK = &Hf00
%EQUATE `MMC_ITEM_OVERLAY_STATE_SHIFT = 8
'#define MMC_OVERLAY_ITEM_INDEX_TO_ITEM_STATE(i) (((i) << MMC_ITEM_OVERLAY_STATE_SHIFT) & MMC_ITEM_OVERLAY_STATE_MASK)
FUNCTION MMC_OVERLAY_ITEM_INDEX_TO_ITEM_STATE (BYVAL i AS DWORD) AS DWORD
 SHIFT LEFT i, %MMC_ITEM_OVERLAY_STATE_SHIFT
 FUNCTION = (i AND %MMC_ITEM_OVERLAY_STATE_MASK)
END FUNCTION
'#define MMC_OVERLAY_ITEM_INDEX_FROM_ITEM_STATE(state) (((state) & MMC_ITEM_OVERLAY_STATE_MASK) >> MMC_ITEM_OVERLAY_STATE_SHIFT)
FUNCTION MMC_OVERLAY_ITEM_INDEX_FROM_ITEM_STATE (BYVAL dwstate AS DWORD) AS DWORD
 dwstate = dwstate AND %MMC_ITEM_OVERLAY_STATE_MASK
 SHIFT RIGHT dwstate, %MMC_ITEM_OVERLAY_STATE_SHIFT
 FUNCTION = dwstate
END FUNCTION
%EQUATE `MMC_ITEM_STATE_MASK = &Hff
#ENDIF
