static const CLASS_AND_INTERFACES ExpectedInterfaces[] =
{
+ {
+ ID_NAME(CLSID_CDBurn),
+ {
+ { 0x0, &IID_IObjectWithSite },
+ { 0x0, &IID_IUnknown },
+ { 0x8, &IID_IShellExtInit },
+ { 0xc, &IID_IContextMenu },
+ { 0x10, &IID_IShellPropSheetExt },
+ { 0x14, &IID_IDiscMasterProgressEvents },
+ { 0x18, &IID_IDropTarget },
+ { 0x1c, &IID_IPersistFile },
+ { 0x20, &IID_IOleCommandTarget },
+ { 0x24, &IID_ICDBurn },
+ { 0x28, &IID_ICDBurnPriv },
+ { 0x2c, &IID_IPersistPropertyBag },
+ { 0x30, &IID_IDriveFolderExt },
+ { 0x34, &IID_INamespaceWalkCB },
+ { 0x3c, &IID_IServiceProvider },
+ { 0x40, &IID_ITransferAdviseSinkPriv },
+ { 0x44, &IID_IQueryCancelAutoPlay },
+ }
+ },
+ {
+ ID_NAME(CLSID_ControlPanel),
+ {
+ { 0x0, &IID_IUnknown },
+ { 0x10, &IID_IPersistFolder2 },
+ { 0x10, &IID_IPersistFolder },
+ { 0x10, &IID_IPersist },
+ { FARAWY, &IID_IShellIconOverlay },
+ { FARAWY, &IID_IShellFolder2 },
+ { FARAWY, &IID_IShellFolder },
+ }
+ },
{
ID_NAME(CLSID_CopyToMenu),
{
{ 0x70, &IID_IDeskMovr },
{ 0x74, &IID_IOleObject },
{ 0x78, &IID_IPersistPropertyBag },
+ { 0x7c, &IID_IOleControl },
{ 0x80, &IID_IOleInPlaceActiveObject },
{ 0x84, &IID_IViewObjectEx },
{ 0x84, &IID_IViewObject2 },
{ 0x88, &IID_IOleWindow },
{ 0x88, &IID_IOleInPlaceObject },
{ 0x88, &IID_IOleInPlaceObjectWindowless },
+ { 0x8c, &IID_IQuickActivate },
}
},
{
{ 0xc, &IID_IDockingWindow },
{ 0xc, &IID_IOleWindow },
{ 0x10, &IID_IInputObject },
+ { 0x14, &IID_IOleClientSite },
{ 0x18, &IID_IOleInPlaceSite },
+ { 0x1c, &IID_IOleControlSite },
}
},
{
{ 0x4, &IID_IPersistFolder },
{ 0x4, &IID_IPersist },
{ 0x8, &IID_IObjectSafety },
+ { 0x10, &IID_IParentAndItem },
}
},
{
{
ID_NAME(CLSID_FolderViewHost),
{
- { 0x0, &IID_IUnknown },
+ { 0x0, &IID_IFolderViewHost },
+ { 0x0, &IID_IUnknown },
{ 0x4, &IID_IServiceProvider },
{ 0x8, &IID_IOleWindow },
{ 0xc, &IID_IFolderView },
{ 0x0, &IID_IShellFolder },
{ 0x0, &IID_IUnknown },
{ 0x4, &IID_IShellService },
+ { 0x8, &IID_ITranslateShellChangeNotify },
{ 0xc, &IID_IPersistFolder2 },
{ 0xc, &IID_IPersistFolder },
{ 0xc, &IID_IPersist },
{ 0x10, &IID_IPersistPropertyBag },
+ { 0x14, &IID_IShellIconOverlay },
+ { 0x18, &IID_ICompositeFolder },
+ { 0x1c, &IID_IItemNameLimits },
}
},
{
{ 0x10, &IID_IFolderFilter },
}
},
+ {
+ ID_NAME(CLSID_MyComputer),
+ {
+ { 0x0, &IID_IUnknown },
+ { 0x10, &IID_IPersistFolder2 },
+ { 0x10, &IID_IPersistFolder },
+ { 0x10, &IID_IPersist },
+ { 0x10, &IID_IPersistFreeThreadedObject },
+ { FARAWY, &IID_IShellIconOverlay },
+ { FARAWY, &IID_IShellFolder2 },
+ { FARAWY, &IID_IShellFolder },
+ }
+ },
+ {
+ ID_NAME(CLSID_MyDocuments),
+ {
+ { -0x4, &IID_IPersistFolder },
+ { -0x4, &IID_IPersist },
+ { 0x0, &IID_IShellFolder2 },
+ { 0x0, &IID_IShellFolder },
+ { 0x0, &IID_IUnknown },
+ { 0x4, &IID_IShellIconOverlay },
+ { FARAWY, &IID_IShellIcon },
+ { FARAWY, &IID_IPersistFolder3 },
+ { FARAWY, &IID_IPersistFolder2 },
+ { FARAWY, &IID_IStorage },
+ { FARAWY, &IID_IContextMenuCB },
+ { FARAWY, &IID_IOleCommandTarget },
+ { FARAWY, &IID_IItemNameLimits },
+ { FARAWY, &IID_IPropertySetStorage },
+ }
+ },
+ {
+ ID_NAME(CLSID_NetworkPlaces),
+ {
+ { 0x0, &IID_IUnknown },
+ { 0x10, &IID_IPersistFolder3 },
+ { 0x10, &IID_IPersistFolder2 },
+ { 0x10, &IID_IPersistFolder },
+ { 0x10, &IID_IPersist },
+ { 0x10, &IID_IPersistFreeThreadedObject },
+ { FARAWY, &IID_IShellIconOverlay },
+ { FARAWY, &IID_IShellFolder2 },
+ { FARAWY, &IID_IShellFolder },
+ }
+ },
{
ID_NAME(CLSID_NewMenu),
{
{ 0x10, &IID_IShellMenuAcc },
}
},
+ {
+ ID_NAME(CLSID_Printers),
+ {
+ { -0xc, &IID_IRemoteComputer },
+ { -0x4, &IID_IFolderNotify },
+ { 0x0, &IID_IShellFolder2 },
+ { 0x0, &IID_IShellFolder },
+ { 0x0, &IID_IUnknown },
+ { 0x4, &IID_IPersistFolder2 },
+ { 0x4, &IID_IPersistFolder },
+ { 0x4, &IID_IPersist },
+ { 0x8, &IID_IContextMenuCB },
+ { 0xc, &IID_IShellIconOverlay },
+ }
+ },
+ {
+ ID_NAME(CLSID_QueryAssociations),
+ {
+ { 0x0, &IID_IAssociationArrayOld },
+ { 0x0, &IID_IUnknown },
+ { 0x4, &IID_IAssociationArrayInitialize },
+ { 0x8, &IID_IQueryAssociations },
+ }
+ },
{
ID_NAME(CLSID_QuickLinks),
{
{ 0x94, &IID_IFolderBandPriv },
}
},
+ {
+ ID_NAME(CLSID_RecycleBin),
+ {
+ { 0x0, &IID_IPersistFolder2 },
+ { 0x0, &IID_IPersistFolder },
+ //{ 0x0, &IID_IPersist },
+ { 0x0, &IID_IUnknown },
+ { 0x4, &IID_IShellFolder2 },
+ { 0x4, &IID_IShellFolder },
+ { 0x8, &IID_IContextMenu },
+ { 0xc, &IID_IShellPropSheetExt },
+ { 0x10, &IID_IShellExtInit },
+ }
+ },
{
ID_NAME(CLSID_SendToMenu),
{
{ 0x8, &IID_IPersist },
{ 0xc, &IID_IShellIcon },
{ 0x14, &IID_IContextMenuCB },
+ { 0x18, &IID_ITranslateShellChangeNotify },
+ { 0x1c, &IID_IItemNameLimits },
{ 0x20, &IID_IOleCommandTarget },
+ { FARAWY, &IID_IShellIconOverlay },
{ FARAWY, &IID_IShellFolder2 },
{ FARAWY, &IID_IShellFolder },
}
{ 0xc, &IID_IShellFolder2 },
{ 0xc, &IID_IShellFolder },
{ 0x10, &IID_IShellIcon },
+ { 0x14, &IID_IShellIconOverlay },
{ 0x18, &IID_IPersistFolder3 },
{ 0x18, &IID_IPersistFolder2 },
{ 0x18, &IID_IPersistFolder },
{ 0x18, &IID_IPersist },
+ { 0x18, &IID_IPersistFreeThreadedObject },
{ 0x1c, &IID_IStorage },
+ { 0x24, &IID_IPropertySetStorage },
+ { 0x28, &IID_IItemNameLimits },
{ 0x2c, &IID_IContextMenuCB },
{ 0x34, &IID_IOleCommandTarget },
}
{ 0x8, &IID_IServiceProvider },
{ 0xc, &IID_IObjectSafety },
{ 0x14, &IID_IObjectWithSite },
+ { 0x1c, &IID_IConnectionPointContainer },
}
},
{
{ 0x0, &IID_IFolderViewOC },
{ 0x0, &IID_IDispatch },
{ 0x0, &IID_IUnknown },
+ { 0x4, &IID_IProvideClassInfo2 },
+ { 0x4, &IID_IProvideClassInfo },
{ 0x8, &IID_IObjectSafety },
+ { 0x10, &IID_IConnectionPointContainer },
{ 0x88, &IID_IPersistStreamInit },
{ 0x88, &IID_IPersist },
+ { 0x8c, &IID_IOleControl },
{ 0x90, &IID_IOleObject },
{ 0x94, &IID_IOleInPlaceActiveObject },
{ 0x98, &IID_IOleInPlaceObjectWindowless },
{ 0x0, &IID_IShellItem },
{ 0x0, &IID_IUnknown },
{ 0x4, &IID_IPersistIDList },
+ { 0x8, &IID_IParentAndItem },
}
},
{
{ 0x14, &IID_IContextMenu },
{ 0x18, &IID_IDropTarget },
{ 0x1c, &IID_IQueryInfo },
+ { 0x20, &IID_IShellLinkDataList },
{ 0x24, &IID_IExtractIconA },
{ 0x28, &IID_IExtractIconW },
{ 0x2c, &IID_IExtractImage2 },
{ 0x2c, &IID_IExtractImage },
{ 0x30, &IID_IPersistPropertyBag },
{ 0x34, &IID_IServiceProvider },
+ { 0x38, &IID_IFilter },
{ 0x3c, &IID_IObjectWithSite },
+ { 0x44, &IID_ICustomizeInfoTip },
+ { FARAWY, &IID_ISLTracker },
}
},
#if 0 // Apparently we can only get this through Folder.Items().GetLink
{ 0xc, &IID_IObjectWithSite },
}
},
+ {
+ ID_NAME(CLSID_Thumbnail),
+ {
+ { 0x0, &IID_IUnknown },
+ { 0x4, &IID_IParentAndItem },
+ { 0x8, &IID_IObjectWithSite },
+ },
+ },
{
ID_NAME(CLSID_TrackShellMenu),
{