/*
* COM interfaces for shell objects
*
* Copyright (C) 1999 Juergen Schmied
* Copyright (C) 2003 Alexandre Julliard
*
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
/*
* Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
* other than GPL or LGPL is available it will apply instead, Oracle elects to use only
* the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
* a choice of LGPL license versions is made available with the language indicating
* that LGPLv2 or any later version may be used, or where a choice of which version
* of the LGPL is applied is otherwise unspecified.
*/
import "objidl.idl";
import "oleidl.idl";
import "oaidl.idl";
import "docobj.idl";
import "shtypes.idl";
import "servprov.idl";
import "comcat.idl";
import "propidl.idl";
/* FIXME: import "prsht.idl";*/
import "msxml.idl";
import "wtypes.idl";
import "propsys.idl";
import "objectarray.idl";
/* FIXME: import "structuredquery.idl"; */
cpp_quote("/* FIXME: #include <sherrors.h> */")
/*****************************************************************************
* IPersistFolder interface
*/
[
]
interface IPersistFolder : IPersist
{
}
/*****************************************************************************
* IPersistFolder2 interface
*/
[
]
interface IPersistFolder2 : IPersistFolder
{
}
/*****************************************************************************
* IPersistIDList interface
*/
[
]
interface IPersistIDList : IPersist
{
}
/*****************************************************************************
* IEnumIDList interface
*/
[
]
interface IEnumIDList : IUnknown
{
}
/*****************************************************************************
* IShellPropSheetExt interface
*/
cpp_quote("#if 0")
cpp_quote("#else")
cpp_quote("#include <prsht.h>")
cpp_quote("typedef LPFNADDPROPSHEETPAGE LPFNSVADDPROPSHEETPAGE;")
cpp_quote("#endif")
[
]
interface IShellPropSheetExt : IUnknown
{
enum tagSHELLPROPSHEETEXTPAGEID {
EXPPS_FILETYPES = 0x1
};
}
/*****************************************************************************
* IShellFolder interface
*/
[
]
interface IShellFolder : IUnknown
{
{
SHGDN_NORMAL = 0,
SHGDN_INFOLDER = 1,
SHGDN_FOREDITING = 0x1000,
SHGDN_INCLUDE_NONFILESYS = 0x2000,
SHGDN_FORADDRESSBAR = 0x4000,
SHGDN_FORPARSING = 0x8000
} SHGNO;
enum tagSHCONTF
{
SHCONTF_FOLDERS = 32,
SHCONTF_NONFOLDERS = 64,
SHCONTF_INCLUDEHIDDEN = 128,
SHCONTF_INIT_ON_FIRST_NEXT = 256,
SHCONTF_NETPRINTERSRCH = 512,
SHCONTF_SHAREABLE = 1024,
SHCONTF_STORAGE = 2048
};
cpp_quote("#define SFGAO_CANCOPY DROPEFFECT_COPY")
cpp_quote("#define SFGAO_CANMOVE DROPEFFECT_MOVE")
cpp_quote("#define SFGAO_CANLINK DROPEFFECT_LINK")
cpp_quote("#define SFGAO_STORAGE 0x00000008L")
cpp_quote("#define SFGAO_CANRENAME 0x00000010L")
cpp_quote("#define SFGAO_CANDELETE 0x00000020L")
cpp_quote("#define SFGAO_HASPROPSHEET 0x00000040L")
cpp_quote("#define SFGAO_DROPTARGET 0x00000100L")
cpp_quote("#define SFGAO_CAPABILITYMASK 0x00000177L")
cpp_quote("#define SFGAO_ENCRYPTED 0x00002000L")
cpp_quote("#define SFGAO_ISSLOW 0x00004000L")
cpp_quote("#define SFGAO_GHOSTED 0x00008000L")
cpp_quote("#define SFGAO_LINK 0x00010000L")
cpp_quote("#define SFGAO_SHARE 0x00020000L")
cpp_quote("#define SFGAO_READONLY 0x00040000L")
cpp_quote("#define SFGAO_HIDDEN 0x00080000L")
cpp_quote("#define SFGAO_DISPLAYATTRMASK 0x000FC000L")
cpp_quote("#define SFGAO_FILESYSANCESTOR 0x10000000L")
cpp_quote("#define SFGAO_FOLDER 0x20000000L")
cpp_quote("#define SFGAO_FILESYSTEM 0x40000000L")
cpp_quote("#define SFGAO_HASSUBFOLDER 0x80000000L")
cpp_quote("#define SFGAO_CONTENTSMASK 0x80000000L")
cpp_quote("#define SFGAO_VALIDATE 0x01000000L")
cpp_quote("#define SFGAO_REMOVABLE 0x02000000L")
cpp_quote("#define SFGAO_COMPRESSED 0x04000000L")
cpp_quote("#define SFGAO_BROWSABLE 0x08000000L")
cpp_quote("#define SFGAO_NONENUMERATED 0x00100000L")
cpp_quote("#define SFGAO_NEWCONTENT 0x00200000L")
cpp_quote("#define SFGAO_STREAM 0x00400000L")
cpp_quote("#define SFGAO_STORAGEANCESTOR 0x00800000L")
}
/*****************************************************************************
* IEnumExtraSearch interface
*/
[
]
interface IEnumExtraSearch : IUnknown
{
{
/*
*WCHAR wszMenuText[80];
*WCHAR wszHelpText[MAX_PATH];
*/
/*
*WCHAR wszIcon[MAX_PATH+10];
*WCHAR wszGreyIcon[MAX_PATH+10];
*WCHAR wszClrIcon[MAX_PATH+10];
*/
} EXTRASEARCH, *LPEXTRASEARCH;
}
/*****************************************************************************
* IShellFolder2 interface
*/
[
]
interface IShellFolder2 : IShellFolder
{
{
} SHCOLUMNID, *LPSHCOLUMNID;
}
/*****************************************************************************
* IShellItem interface
*/
[
]
interface IShellItem : IUnknown
{
SIGDN_NORMALDISPLAY = 0,
SIGDN_PARENTRELATIVEPARSING = 0x80018001,
SIGDN_DESKTOPABSOLUTEPARSING = 0x80028000,
SIGDN_PARENTRELATIVEEDITING = 0x80031001,
SIGDN_DESKTOPABSOLUTEEDITING = 0x8004c000,
SIGDN_FILESYSPATH = 0x80058000,
SIGDN_URL = 0x80068000,
SIGDN_PARENTRELATIVEFORADDRESSBAR = 0x8007c001,
SIGDN_PARENTRELATIVE = 0x80080001
} SIGDN; /* & 0xFFFF => SHGDN */
{
SICHINT_DISPLAY = 0x00000000,
SICHINT_CANONICAL = 0x10000000,
SICHINT_TEST_FILESYSPATH_IF_NOT_EQUAL = 0x20000000,
SICHINT_ALLFIELDS = 0x80000000
};
}
/*****************************************************************************
* IShellItem2 interface
*/
[
]
interface IShellItem2 : IShellItem
{
}
NWMF_UNLOADING = 0x0001,
NWMF_USERINITED = 0x0002,
NWMF_FIRST = 0x0004,
NWMF_OVERRIDEKEY = 0x0008,
NWMF_SHOWHELP = 0x0010,
NWMF_HTMLDIALOG = 0x0020,
NWMF_FROMDIALOGCHILD = 0x0040,
NWMF_USERREQUESTED = 0x0080,
NWMF_USERALLOWED = 0x0100
} NWMF;
[
]
interface INewWindowManager : IUnknown
{
}
cpp_quote("#define SID_SNewWindowManager IID_INewWindowManager")
/*****************************************************************************
* IEnumShellItems interface
*/
[
]
interface IEnumShellItems : IUnknown
{
}
/*****************************************************************************
* IShellItemArray interface
*/
[
]
interface IShellItemArray : IUnknown
{
SIATTRIBFLAGS_AND = 0x0001,
SIATTRIBFLAGS_OR = 0x0002,
SIATTRIBFLAGS_APPCOMPAT = 0x0003,
SIATTRIBFLAGS_MASK = 0x0003,
SIATTRIBFLAGS_ALLITEMS = 0x4000
cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(SIATTRIBFLAGS)")
}
{
DOGIF_DEFAULT = 0x0,
DOGIF_TRAVERSE_LINK = 0x1,
DOGIF_NO_HDROP = 0x2,
DOGIF_NO_URL = 0x4,
DOGIF_ONLY_IF_ONE = 0x8
cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(DATAOBJ_GET_ITEM_FLAGS)")
cpp_quote("HRESULT WINAPI SHGetNameFromIDList(PCIDLIST_ABSOLUTE pidl, SIGDN sigdnName, PWSTR *ppszName);")
cpp_quote("HRESULT WINAPI SHCreateItemFromParsingName(PCWSTR pszPath, IBindCtx *pbc, REFIID riid, void **ppv);")
cpp_quote("HRESULT WINAPI SHCreateItemFromIDList(PCIDLIST_ABSOLUTE pidl, REFIID riid, void **ppv);")
cpp_quote("HRESULT WINAPI SHGetItemFromDataObject(IDataObject *pdtobj, DATAOBJ_GET_ITEM_FLAGS dwFlags, REFIID riid, void **ppv);")
cpp_quote("HRESULT WINAPI SHGetIDListFromObject(IUnknown *punk, PIDLIST_ABSOLUTE *ppidl);")
cpp_quote("HRESULT WINAPI SHGetItemFromObject(IUnknown *punk, REFIID riid, void **ppv);")
cpp_quote("HRESULT WINAPI SHCreateShellItemArray(PCIDLIST_ABSOLUTE pidlParent, IShellFolder* psf, UINT cidl, PCUITEMID_CHILD_ARRAY ppidl, IShellItemArray **ppsiItemArray);")
cpp_quote("HRESULT WINAPI SHCreateShellItemArrayFromShellItem(IShellItem *psi, REFIID riid, void **ppv);")
cpp_quote("HRESULT WINAPI SHCreateShellItemArrayFromDataObject(IDataObject *pdo, REFIID riid, void **ppv);")
/*****************************************************************************
* IShellItemFilter interface
*/
[
]
interface IShellItemFilter : IUnknown
{
}
/*****************************************************************************
* FOLDERSETTINGS
*/
typedef char *LPVIEWSETTINGS;
typedef enum
{
FWF_AUTOARRANGE = 0x00000001,
FWF_ABBREVIATEDNAMES = 0x00000002,
FWF_SNAPTOGRID = 0x00000004,
FWF_OWNERDATA = 0x00000008,
FWF_BESTFITWINDOW = 0x00000010,
FWF_DESKTOP = 0x00000020,
FWF_SINGLESEL = 0x00000040,
FWF_NOSUBFOLDERS = 0x00000080,
FWF_TRANSPARENT = 0x00000100,
FWF_NOCLIENTEDGE = 0x00000200,
FWF_NOSCROLL = 0x00000400,
FWF_ALIGNLEFT = 0x00000800,
FWF_NOICONS = 0x00001000,
FWF_SHOWSELALWAYS = 0x00002000,
FWF_NOVISIBLE = 0x00004000,
FWF_SINGLECLICKACTIVATE = 0x00008000,
FWF_NOWEBVIEW = 0x00010000,
FWF_HIDEFILENAMES = 0x00020000,
FWF_CHECKSELECT = 0x00040000,
FWF_NOENUMREFRESH = 0x00080000,
FWF_NOGROUPING = 0x00100000,
FWF_FULLROWSELECT = 0x00200000,
FWF_NOFILTERS = 0x00400000,
FWF_NOCOLUMNHEADER = 0x00800000,
FWF_NOHEADERINALLVIEWS = 0x01000000,
FWF_EXTENDEDTILES = 0x02000000,
FWF_TRICHECKSELECT = 0x04000000,
FWF_AUTOCHECKSELECT = 0x08000000,
FWF_NOBROWSERVIEWSTATE = 0x10000000,
FWF_SUBSETGROUPS = 0x20000000,
FWF_USESEARCHFOLDER = 0x40000000,
FWF_ALLOWRTLREADING = 0x80000000
} FOLDERFLAGS;
typedef enum
{
FVM_AUTO =-1,
FVM_ICON = 1,
FVM_SMALLICON = 2,
FVM_LIST = 3,
FVM_DETAILS = 4,
FVM_THUMBNAIL = 5,
FVM_TILE = 6,
FVM_THUMBSTRIP = 7,
FVM_CONTENT = 8,
{
/*****************************************************************************
* IShellIcon interface
*/
[
]
interface IShellIcon : IUnknown
{
[out] int *pIconIndex);
}
/*****************************************************************************
* IShellView interface
*/
interface IShellBrowser; /* forward declaration */
[
]
interface IShellView : IOleWindow
{
cpp_quote("#define SVSI_DESELECT 0x00000000")
cpp_quote("#define SVSI_SELECT 0x00000001")
cpp_quote("#define SVSI_EDIT 0x00000003")
cpp_quote("#define SVSI_DESELECTOTHERS 0x00000004")
cpp_quote("#define SVSI_ENSUREVISIBLE 0x00000008")
cpp_quote("#define SVSI_FOCUSED 0x00000010")
cpp_quote("#define SVSI_TRANSLATEPT 0x00000020")
cpp_quote("#define SVSI_SELECTIONMARK 0x00000040")
cpp_quote("#define SVSI_POSITIONITEM 0x00000080")
cpp_quote("#define SVSI_CHECK 0x00000100")
cpp_quote("#define SVSI_NOSTATECHANGE 0x80000000")
typedef enum
{
SVGIO_BACKGROUND = 0x00000000,
SVGIO_SELECTION = 0x00000001,
SVGIO_ALLVIEW = 0x00000002,
SVGIO_CHECKED = 0x00000003,
SVGIO_TYPE_MASK = 0x0000000f,
SVGIO_FLAG_VIEWORDER = 0x80000000,
} SVGIO;
typedef enum
{
SVUIA_DEACTIVATE = 0,
SVUIA_ACTIVATE_FOCUS = 2,
} SVUIA_STATUS;
}
[
]
interface IShellView2 : IShellView
{
cpp_quote("#include <pshpack8.h>")
{
SHELLVIEWID const *pvid;
cpp_quote("#include <poppack.h>")
);
);
);
);
}
/*****************************************************************************
* IFolderView interface
*/
[
]
interface IFolderView : IUnknown
{
);
);
);
);
);
);
}
/*****************************************************************************
* IShellBrowser interface
*/
[
]
interface IShellBrowser : IOleWindow
{
cpp_quote("#define SBSP_DEFBROWSER 0x00000000")
cpp_quote("#define SBSP_SAMEBROWSER 0x00000001")
cpp_quote("#define SBSP_NEWBROWSER 0x00000002")
cpp_quote("#define SBSP_DEFMODE 0x00000000")
cpp_quote("#define SBSP_OPENMODE 0x00000010")
cpp_quote("#define SBSP_EXPLOREMODE 0x00000020")
cpp_quote("#define SBSP_HELPMODE 0x00000040")
cpp_quote("#define SBSP_NOTRANSFERHIST 0x00000080")
cpp_quote("#define SBSP_ABSOLUTE 0x00000000")
cpp_quote("#define SBSP_RELATIVE 0x00001000")
cpp_quote("#define SBSP_PARENT 0x00002000")
cpp_quote("#define SBSP_NAVIGATEBACK 0x00004000")
cpp_quote("#define SBSP_NAVIGATEFORWARD 0x00008000")
cpp_quote("#define SBSP_ALLOW_AUTONAVIGATE 0x00010000")
cpp_quote("#define SBSP_KEEPSAMETEMPLATE 0x00020000")
cpp_quote("#define SBSP_KEEPWORDWHEELTEXT 0x00040000")
cpp_quote("#define SBSP_ACTIVATE_NOFOCUS 0x00080000")
cpp_quote("#define SBSP_CREATENOHISTORY 0x00100000")
cpp_quote("#define SBSP_PLAYNOSOUND 0x00200000")
cpp_quote("#define SBSP_CALLERUNTURUSTED 0x00800000")
cpp_quote("#define SBSP_TRUSTFIRSTDOWNLOAD 0x01000000")
cpp_quote("#define SBSP_UNTRUSTEDFORDOWNLOAD 0x02000000")
cpp_quote("#define SBSP_NOAUTOSELECT 0x04000000")
cpp_quote("#define SBSP_WRITENOHISTORY 0x08000000")
cpp_quote("#define SBSP_TRUSTEDFORACTIVEX 0x10000000")
cpp_quote("#define SBSP_FEEDNAVIGATION 0x20000000")
cpp_quote("#define SBSP_REDIRECT 0x40000000")
cpp_quote("#define SBSP_INITIATEDBYHLINKFRAME 0x80000000")
cpp_quote("#define FCW_STATUS 0x0001")
cpp_quote("#define FCW_TOOLBAR 0x0002")
cpp_quote("#define FCW_TREE 0x0003")
cpp_quote("#define FCW_INTERNETBAR 0x0006")
cpp_quote("#define FCW_PROGRESS 0x0008")
cpp_quote("#define FCT_MERGE 0x0001")
cpp_quote("#define FCT_CONFIGABLE 0x0002")
cpp_quote("#define FCT_ADDTOEND 0x0004")
cpp_quote("#if 0")
cpp_quote("#else")
cpp_quote("#include <commctrl.h>")
cpp_quote("typedef LPTBBUTTON LPTBBUTTONSB;")
cpp_quote("#endif")
[local]
}
/*****************************************************************************
* IShellLinkA interface
*/
[
]
interface IShellLinkA : IUnknown
{
typedef enum
{
SLR_NO_UI = 0x0001,
SLR_ANY_MATCH = 0x0002,
SLR_UPDATE = 0x0004,
SLR_NOUPDATE = 0x0008,
SLR_NOSEARCH = 0x0010,
SLR_NOTRACK = 0x0020,
SLR_NOLINKINFO = 0x0040,
SLR_INVOKE_MSI = 0x0080,
SLR_NO_UI_WITH_MSG_PUMP = 0x0101,
} SLR_FLAGS;
typedef enum
{
SLGP_SHORTPATH = 0x0001,
SLGP_UNCPRIORITY = 0x0002,
SLGP_RAWPATH = 0x0004,
} SLGP_FLAGS;
}
/*****************************************************************************
* IShellLinkW interface
*/
[
]
interface IShellLinkW : IUnknown
{
}
cpp_quote("#define IShellLink WINELIB_NAME_AW(IShellLink)")
/*****************************************************************************
* IShellExtInit interface
*/
[
]
interface IShellExtInit : IUnknown
{
}
/*******************************************************************************/
/* Note: the following interfaces are not in shobjidl.idl under Windows, they */
/* are declared directly in shlobj.h. It hopefully won't break anything to put */
/* them here anyway. */
/*******************************************************************************/
/*****************************************************************************
* IPersistFolder3 interface
*/
[
]
interface IPersistFolder3 : IPersistFolder2
{
{
int csidl;
}
/*****************************************************************************
* IExtractIconA interface
*/
[
]
interface IExtractIconA : IUnknown
{
cpp_quote("#define GIL_OPENICON 0x0001")
cpp_quote("#define GIL_FORSHELL 0x0002")
cpp_quote("#define GIL_ASYNC 0x0020")
cpp_quote("#define GIL_DEFAULTICON 0x0040")
cpp_quote("#define GIL_FORSHORTCUT 0x0080")
cpp_quote("#define GIL_SIMULATEDOC 0x0001")
cpp_quote("#define GIL_PERINSTANCE 0x0002")
cpp_quote("#define GIL_PERCLASS 0x0004")
cpp_quote("#define GIL_NOTFILENAME 0x0008")
cpp_quote("#define GIL_DONTCACHE 0x0010")
}
/*****************************************************************************
* IExtractIconW interface
*/
[
]
interface IExtractIconW : IUnknown
{
}
cpp_quote("#define LPEXTRACTICON WINELIB_NAME_AW(LPEXTRACTICON)")
cpp_quote("#define IExtractIcon WINELIB_NAME_AW(IExtractIcon)")
/*****************************************************************************
* ICommDlgBrowser interface
*/
[
]
interface ICommDlgBrowser : IUnknown
{
cpp_quote("#define CDBOSC_SETFOCUS 0x00000000")
cpp_quote("#define CDBOSC_KILLFOCUS 0x00000001")
cpp_quote("#define CDBOSC_SELCHANGE 0x00000002")
cpp_quote("#define CDBOSC_RENAME 0x00000003")
cpp_quote("#define CDBOSC_STATECHANGE 0x00000004")
}
/*****************************************************************************
* ICommDlgBrowser2 interface
*/
[
]
interface ICommDlgBrowser2 : ICommDlgBrowser
{
}
/*****************************************************************************
* ICommDlgBrowser3 interface
*/
[
]
interface ICommDlgBrowser3 : ICommDlgBrowser2
{
[in] int cchFileSpec);
}
/*****************************************************************************
* IDockingWindow interface
*/
[
]
interface IDockingWindow : IOleWindow
{
};
/*****************************************************************************
* IDockingWindowFrame interface
*/
[
]
interface IDockingWindowFrame : IOleWindow
{
cpp_quote("#define DWFRF_NORMAL 0x0000")
cpp_quote("#define DWFRF_DELETECONFIGDATA 0x0001")
cpp_quote("#define DWFAF_HIDDEN 0x0001")
}
/*****************************************************************************
* IDragSourceHelper interface
*/
[
]
interface IDragSourceHelper : IUnknown
{
{
} SHDRAGIMAGE, *LPSHDRAGIMAGE;
}
/*****************************************************************************
* IDropTargetHelper interface
*/
[
]
interface IDropTargetHelper : IUnknown
{
}
/*****************************************************************************
* IContextMenu interface
*/
[
]
interface IContextMenu : IUnknown
{
cpp_quote("#define CMF_NORMAL 0x00000000")
cpp_quote("#define CMF_DEFAULTONLY 0x00000001")
cpp_quote("#define CMF_VERBSONLY 0x00000002")
cpp_quote("#define CMF_EXPLORE 0x00000004")
cpp_quote("#define CMF_NOVERBS 0x00000008")
cpp_quote("#define CMF_CANRENAME 0x00000010")
cpp_quote("#define CMF_NODEFAULT 0x00000020")
cpp_quote("#define CMF_INCLUDESTATIC 0x00000040")
cpp_quote("#define CMF_EXTENDEDVERBS 0x00000100")
cpp_quote("#define CMF_RESERVED 0xffff0000")
cpp_quote("#define GCS_VERBA 0x00000000")
cpp_quote("#define GCS_HELPTEXTA 0x00000001")
cpp_quote("#define GCS_VALIDATEA 0x00000002")
cpp_quote("#define GCS_VERBW 0x00000004")
cpp_quote("#define GCS_HELPTEXTW 0x00000005")
cpp_quote("#define GCS_VALIDATEW 0x00000006")
cpp_quote("#define GCS_UNICODE 0x00000004")
cpp_quote("#define GCS_VERB WINELIB_NAME_AW(GCS_VERB)")
cpp_quote("#define GCS_HELPTEXT WINELIB_NAME_AW(GCS_HELPTEXT)")
cpp_quote("#define GCS_VALIDATE WINELIB_NAME_AW(GCS_VALIDATE)")
cpp_quote("#define CMDSTR_NEWFOLDERA \"NewFolder\"")
cpp_quote("#define CMDSTR_VIEWLISTA \"ViewList\"")
cpp_quote("#define CMDSTR_VIEWDETAILSA \"ViewDetails\"")
cpp_quote("#if defined(__GNUC__)")
cpp_quote("# define CMDSTR_NEWFOLDERW (const WCHAR []){ 'N','e','w','F','o','l','d','e','r',0 }")
cpp_quote("# define CMDSTR_VIEWLISTW (const WCHAR []){ 'V','i','e','w','L','i','s','t',0 }")
cpp_quote("# define CMDSTR_VIEWDETAILSW (const WCHAR []){ 'V','i','e','w','D','e','t','a','i','l','s',0 }")
cpp_quote("#elif defined(_MSC_VER)")
cpp_quote("# define CMDSTR_NEWFOLDERW L\"NewFolder\"")
cpp_quote("# define CMDSTR_VIEWLISTW L\"ViewList\"")
cpp_quote("# define CMDSTR_VIEWDETAILSW L\"ViewDetails\"")
cpp_quote("#else")
cpp_quote("static const WCHAR CMDSTR_NEWFOLDERW[] = {'N','e','w','F','o','l','d','e','r',0};")
cpp_quote("static const WCHAR CMDSTR_VIEWLISTW [] = {'V','i','e','w','L','i','s','t',0};")
cpp_quote("static const WCHAR CMDSTR_VIEWDETAILSW[] = {'V','i','e','w','D','e','t','a','i','l','s',0};")
cpp_quote("#endif")
cpp_quote("#define CMDSTR_NEWFOLDER WINELIB_NAME_AW(CMDSTR_NEWFOLDER)")
cpp_quote("#define CMDSTR_VIEWLIST WINELIB_NAME_AW(CMDSTR_VIEWLIST)")
cpp_quote("#define CMDSTR_VIEWDETAILS WINELIB_NAME_AW(CMDSTR_VIEWDETAILS)")
cpp_quote("#define CMIC_MASK_HOTKEY SEE_MASK_HOTKEY")
cpp_quote("#define CMIC_MASK_ICON SEE_MASK_ICON")
cpp_quote("#define CMIC_MASK_FLAG_NO_UI SEE_MASK_FLAG_NO_UI")
cpp_quote("#define CMIC_MASK_UNICODE SEE_MASK_UNICODE")
cpp_quote("#define CMIC_MASK_NO_CONSOLE SEE_MASK_NO_CONSOLE")
cpp_quote("#define CMIC_MASK_HASLINKNAME SEE_MASK_HASLINKNAME")
cpp_quote("#define CMIC_MASK_FLAG_SEP_VDM SEE_MASK_FLAG_SEPVDM")
cpp_quote("#define CMIC_MASK_HASTITLE SEE_MASK_HASTITLE")
cpp_quote("#define CMIC_MASK_ASYNCOK SEE_MASK_ASYNCOK")
cpp_quote("#define CMIC_MASK_NOASYNC SEE_MASK_NOASYNC")
cpp_quote("#define CMIC_MASK_SHIFT_DOWN 0x10000000")
cpp_quote("#define CMIC_MASK_PTINVOKE 0x20000000")
cpp_quote("#define CMIC_MASK_CONTROL_DOWN 0x40000000")
cpp_quote("#define CMIC_MASK_FLAG_LOG_USAGE SEE_MASK_FLAG_LOG_USAGE")
cpp_quote("#define CMIC_MASK_NOZONECHECKS SEE_MASK_NOZONECHECKS")
{
{
}
/*****************************************************************************
* IContextMenu2 interface
*/
[
]
interface IContextMenu2 : IContextMenu
{
}
/*****************************************************************************
* IContextMenu3 interface
*/
[
]
interface IContextMenu3 : IContextMenu2
{
}
[
]
interface IContextMenuCB : IUnknown
{
}
/*****************************************************************************
* IShellExecuteHookA interface
*/
[
]
interface IShellExecuteHookA : IUnknown
{
cpp_quote("struct _SHELLEXECUTEINFOA;")
}
/*****************************************************************************
* IShellExecuteHookW interface
*/
[
]
interface IShellExecuteHookW : IUnknown
{
cpp_quote("struct _SHELLEXECUTEINFOW;")
}
/*****************************************************************************
* IShellLinkDataList interface
*/
[
]
interface IShellLinkDataList : IUnknown
{
[in] void *pDataBlock);
[out] void **ppDataBlock);
}
/*****************************************************************************
* IResolveShellLink interface
*/
[
]
interface IResolveShellLink : IUnknown
{
}
/*****************************************************************************
* IURLSearchHook interface
*/
[
]
interface IURLSearchHook : IUnknown
{
}
/*****************************************************************************
* ISearchContext interface
*/
[
]
interface ISearchContext : IUnknown
{
}
/*****************************************************************************
* IURLSearchHook2 interface
*/
[
]
interface IURLSearchHook2 : IURLSearchHook
{
}
cpp_quote("#define INewShortcutHook WINELIB_NAME_AW(INewShortcutHook)")
/*****************************************************************************
* INewShortcutHookA interface
*/
[
]
interface INewShortcutHookA : IUnknown
{
[in] int cchReferent);
[in] int cchExtension);
}
/*****************************************************************************
* INewShortcutHookW interface
*/
[
]
interface INewShortcutHookW : IUnknown
{
[in] int cchReferent);
[in] int cchExtension);
}
/*****************************************************************************
* IRunnableTask interface
*/
[
]
interface IRunnableTask : IUnknown
{
}
/*****************************************************************************
* IShellChangeNotify interface
*/
[
]
interface IShellChangeNotify : IUnknown
{
}
/*****************************************************************************
* IFileSystemBindData interface
*/
[
]
interface IFileSystemBindData : IUnknown
{
}
/*****************************************************************************
* ITaskbarList interface
*/
[
]
interface ITaskbarList : IUnknown
{
}
/*****************************************************************************
* ITaskbarList2 interface
*/
[
]
interface ITaskbarList2 : ITaskbarList
{
}
cpp_quote("#ifdef MIDL_PASS")
cpp_quote("#endif")
THBF_ENABLED = 0x0000,
THBF_DISABLED = 0x0001,
THBF_DISMISSONCLICK = 0x0002,
THBF_NOBACKGROUND = 0x0004,
THBF_HIDDEN = 0x0008,
THBF_NONINTERACTIVE = 0x0010
cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(THUMBBUTTONFLAGS)")
THB_BITMAP = 0x0001,
THB_ICON = 0x0002,
THB_TOOLTIP = 0x0004,
THB_FLAGS = 0x0008
cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(THUMBBUTTONMASK)")
cpp_quote("#include <pshpack8.h>")
} THUMBBUTTON, *LPTHUMBBUTTON;
cpp_quote("#include <poppack.h>")
[
]
interface ITaskbarList3 : ITaskbarList2
{
TBPF_NOPROGRESS = 0x0000,
TBPF_INDETERMINATE = 0x0001,
TBPF_NORMAL = 0x0002,
TBPF_ERROR = 0x0004,
TBPF_PAUSED = 0x0008
} TBPFLAG;
cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(TBPFLAG)")
}
[
]
interface ITaskbarList4 : ITaskbarList3
{
STPF_NONE = 0x0000,
STPF_USEAPPTHUMBNAILALWAYS = 0x0001,
STPF_USEAPPTHUMBNAILWHENACTIVE = 0x0002,
STPF_USEAPPPEEKALWAYS = 0x0004,
STPF_USEAPPPEEKWHENACTIVE = 0x0008
} STPFLAG;
cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(STPFLAG)")
}
/*****************************************************************************
* IAutoCompleteDropDown interface
*/
[
]
interface IAutoCompleteDropDown : IUnknown
{
cpp_quote("#define ACDD_VISIBLE 0x0001")
}
[
]
interface IProfferService : IUnknown
{
}
/*****************************************************************************
* IExplorerBrowserEvents interface
*/
[
]
interface IExplorerBrowserEvents : IUnknown
{
}
cpp_quote("#define SID_ExplorerPaneVisibility IID_IExplorerPaneVisibility")
/*****************************************************************************
* IExplorerPaneVisibility interface
*/
[
]
interface IExplorerPaneVisibility : IUnknown
{
typedef enum tagEXPLORERPANESTATE {
EPS_DONTCARE = 0x0,
EPS_DEFAULT_ON = 0x1,
EPS_DEFAULT_OFF = 0x2,
EPS_STATE_MASK = 0xffff,
EPS_INITIALSTATE = 0x10000,
EPS_FORCE = 0x20000
}
EBF_NONE = 0,
EBF_SELECTFROMDATAOBJECT = 0x100,
EBF_NODROPTARGET = 0x200
EBO_NONE = 0x00,
EBO_NAVIGATEONCE = 0x01,
EBO_SHOWFRAMES = 0x02,
EBO_ALWAYSNAVIGATE = 0x04,
EBO_NOTRAVELLOG = 0x08,
EBO_NOWRAPPERWINDOW = 0x10,
EBO_HTMLSHAREPOINTVIEW = 0x20
cpp_quote("#define SID_SExplorerBrowserFrame IID_ICommDlgBrowser")
/*****************************************************************************
* IExplorerBrowser interface
*/
[
]
interface IExplorerBrowser : IUnknown
{
}
/*****************************************************************************
* INameSpaceTreeControl interface
*/
[
]
interface INameSpaceTreeControl : IUnknown
{
[v1_enum] enum _NSTCSTYLE {
NSTCS_HASEXPANDOS = 0x00000001,
NSTCS_HASLINES = 0x00000002,
NSTCS_SINGLECLICKEXPAND = 0x00000004,
NSTCS_FULLROWSELECT = 0x00000008,
NSTCS_SPRINGEXPAND = 0x00000010,
NSTCS_HORIZONTALSCROLL = 0x00000020,
NSTCS_ROOTHASEXPANDO = 0x00000040,
NSTCS_SHOWSELECTIONALWAYS = 0x00000080,
NSTCS_NOINFOTIP = 0x00000200,
NSTCS_EVENHEIGHT = 0x00000400,
NSTCS_NOREPLACEOPEN = 0x00000800,
NSTCS_DISABLEDRAGDROP = 0x00001000,
NSTCS_NOORDERSTREAM = 0x00002000,
NSTCS_RICHTOOLTIP = 0x00004000,
NSTCS_BORDER = 0x00008000,
NSTCS_NOEDITLABELS = 0x00010000,
NSTCS_TABSTOP = 0x00020000,
NSTCS_FAVORITESMODE = 0x00080000,
NSTCS_AUTOHSCROLL = 0x00100000,
NSTCS_FADEINOUTEXPANDOS = 0x00200000,
NSTCS_EMPTYTEXT = 0x00400000,
NSTCS_CHECKBOXES = 0x00800000,
NSTCS_PARTIALCHECKBOXES = 0x01000000,
NSTCS_EXCLUSIONCHECKBOXES = 0x02000000,
NSTCS_DIMMEDCHECKBOXES = 0x04000000,
NSTCS_NOINDENTCHECKS = 0x08000000,
NSTCS_ALLOWJUNCTIONS = 0x10000000,
NSTCS_SHOWTABSBUTTON = 0x20000000,
NSTCS_SHOWDELETEBUTTON = 0x40000000,
NSTCS_SHOWREFRESHBUTTON = (int)0x80000000
};
[v1_enum] enum _NSTCROOTSTYLE {
NSTCRS_VISIBLE = 0x0000,
NSTCRS_HIDDEN = 0x0001,
NSTCRS_EXPANDED = 0x0002
};
[v1_enum] enum _NSTCITEMSTATE {
NSTCIS_NONE = 0x0000,
NSTCIS_SELECTED = 0x0001,
NSTCIS_EXPANDED = 0x0002,
NSTCIS_BOLD = 0x0004,
NSTCIS_DISABLED = 0x0008,
NSTCIS_SELECTEDNOEXPAND = 0x0010
};
NSTCGNI_NEXT = 0,
NSTCGNI_NEXTVISIBLE = 1,
NSTCGNI_PREV = 2,
NSTCGNI_PREVVISIBLE = 3,
NSTCGNI_PARENT = 4,
NSTCGNI_CHILD = 5,
NSTCGNI_FIRSTVISIBLE = 6,
} NSTCGNI;
[out] int *piStateNumber);
[in] int iStateNumber);
}
/*****************************************************************************
* INameSpaceTreeControl2 interface
*/
[
]
interface INameSpaceTreeControl2 : INameSpaceTreeControl
{
NSTCS2_DEFAULT = 0x00,
NSTCS2_INTERRUPTNOTIFICATIONS = 0x01,
NSTCS2_SHOWNULLSPACEMENU = 0x02,
NSTCS2_DISPLAYPADDING = 0x04,
NSTCS2_DISPLAYPINNEDONLY = 0x08,
} NSTCSTYLE2;
cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(NSTCSTYLE2)")
}
/*****************************************************************************
* INameSpaceTreeControlEvents interface
*/
[
]
interface INameSpaceTreeControlEvents : IUnknown
{
[v1_enum] enum _NSTCEHITTEST {
NSTCEHT_NOWHERE = 0x0001,
NSTCEHT_ONITEMICON = 0x0002,
NSTCEHT_ONITEMLABEL = 0x0004,
NSTCEHT_ONITEMIDENT = 0x0008,
NSTCEHT_ONITEMBUTTON = 0x0010,
NSTCEHT_ONITEMRIGHT = 0x0020,
NSTCEHT_ONITEMSTATEICON = 0x0040,
NSTCEHT_ONITEM = 0x0046,
NSTCEHT_ONITEMTABBUTTON = 0x1000
};
[v1_enum] enum _NSTCECLICKTYPE {
NSTCECT_LBUTTON = 0x1,
NSTCECT_MBUTTON = 0x2,
NSTCECT_RBUTTON = 0x3,
NSTCECT_BUTTON = 0x3,
NSTCECT_DBLCLICK = 0x4
};
[out] int *piDefaultIcon,
[out] int *piOpenIcon);
}
/*****************************************************************************
* INameSpaceTreeControlCustomDraw interface
*/
[
]
interface INameSpaceTreeControlCustomDraw : IUnknown
{
{
int iImage;
int iLevel;
int iIndent;
}
/*****************************************************************************
* INameSpaceTreeControlDropHandler interface
*/
[
]
interface INameSpaceTreeControlDropHandler : IUnknown
{
[in] int iNewPosition,
[in] int iOldPosition);
[in] int iNewPosition,
[in] int iOldPosition);
}
cpp_quote("#define NSTCDHPOS_ONTOP -1")
interface IFileDialog;
{
FDEOR_DEFAULT = 0,
FDEOR_ACCCEP = 1,
FDEOR_REFUSE = 2
{
FDESVR_DEFAULT = 0,
FDESVR_ACCEPT = 1,
FDESVR_REFUSE = 2
/*****************************************************************************
* IFileDialogEvents interface
*/
[
]
interface IFileDialogEvents : IUnknown
{
}
/*****************************************************************************
* IModalWindow interface
*/
[
]
interface IModalWindow : IUnknown
{
[local]
}
{
FDAP_BOTTOM = 0,
FDAP_TOP = 1
} FDAP;
/*****************************************************************************
* IFileDialog interface
*/
[
]
interface IFileDialog : IModalWindow
{
[v1_enum] enum _FILEOPENDIALOGOPTIONS
{
FOS_OVERWRITEPROMPT = 0x00000002,
FOS_STRICTFILETYPES = 0x00000004,
FOS_NOCHANGEDIR = 0x00000008,
FOS_PICKFOLDERS = 0x00000020,
FOS_FORCEFILESYSTEM = 0x00000040,
FOS_ALLNONSTORAGEITEMS = 0x00000080,
FOS_NOVALIDATE = 0x00000100,
FOS_ALLOWMULTISELECT = 0x00000200,
FOS_PATHMUSTEXIST = 0x00000800,
FOS_FILEMUSTEXIST = 0x00001000,
FOS_CREATEPROMPT = 0x00002000,
FOS_SHAREAWARE = 0x00004000,
FOS_NOREADONLYRETURN = 0x00008000,
FOS_NOTESTFILECREATE = 0x00010000,
FOS_HIDEMRUPLACES = 0x00020000,
FOS_HIDEPINNEDPLACES = 0x00040000,
FOS_NODEREFERENCELINKS = 0x00100000,
FOS_DONTADDTORECENT = 0x02000000,
FOS_FORCESHOWHIDDEN = 0x10000000,
FOS_DEFAULTNOMINIMODE = 0x20000000,
FOS_FORCEPREVIEWPANEON = 0x40000000
};
}
/*****************************************************************************
* IFileDialog2 interface
*/
[
]
interface IFileDialog2 : IFileDialog
{
}
/*****************************************************************************
* IFileOperationProgressSink interface
*/
[
]
interface IFileOperationProgressSink : IUnknown
{
}
/*****************************************************************************
* IFileSaveDialog interface
*/
[
]
interface IFileSaveDialog : IFileDialog
{
}
/*****************************************************************************
* IFileOpenDialog interface
*/
[
]
interface IFileOpenDialog : IFileDialog
{
}
{
CDCS_INACTIVE = 0x0,
CDCS_ENABLED = 0x1,
CDCS_VISIBLE = 0x2,
CDCS_ENABLEDVISIBLE = 0x3
cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(CDCONTROLSTATEF)")
/*****************************************************************************
* IFileDialogCustomize interface
*/
[
]
interface IFileDialogCustomize : IUnknown
{
}
/*****************************************************************************
* IFileDialogControlEvents interface
*/
[
]
interface IFileDialogControlEvents : IUnknown
{
}
{
KF_CATEGORY_VIRTUAL = 0x00000001,
KF_CATEGORY_FIXED = 0x00000002,
KF_CATEGORY_COMMON = 0x00000003,
KF_CATEGORY_PERUSER = 0x00000004
} KF_CATEGORY;
{
KF_REDIRECTION_CAPABILITIES_ALLOW_ALL = 0x000000ff,
KF_REDIRECTION_CAPABILITIES_REDIRECTABLE = 0x00000001,
KF_REDIRECTION_CAPABILITIES_DENY_ALL = 0x000fff00,
KF_REDIRECTION_CAPABILITIES_DENY_POLICY_REDIRECTED = 0x00000100,
KF_REDIRECTION_CAPABILITIES_DENY_POLICY = 0x00000200,
KF_REDIRECTION_CAPABILITIES_DENY_PERMISSIONS = 0x00000400
{
KFDF_LOCAL_REDIRECT_ONLY = 0x00000002,
KFDF_ROAMABLE = 0x00000004,
KFDF_PRECREATE = 0x00000008,
KFDF_STREAM = 0x00000010,
KFDF_PUBLISHEXPANDEDPATH = 0x00000020
{
[
]
interface IKnownFolder : IUnknown
{
}
{
KF_REDIRECT_USER_EXCLUSIVE = 0x00000001,
KF_REDIRECT_COPY_SOURCE_DACL = 0x00000002,
KF_REDIRECT_OWNER_USER = 0x00000004,
KF_REDIRECT_SET_OWNER_EXPLICIT = 0x00000008,
KF_REDIRECT_CHECK_ONLY = 0x00000010,
KF_REDIRECT_WITH_UI = 0x00000020,
KF_REDIRECT_UNPIN = 0x00000040,
KF_REDIRECT_PIN = 0x00000080,
KF_REDIRECT_COPY_CONTENTS = 0x00000200,
KF_REDIRECT_DEL_SOURCE_CONTENTS = 0x00000400,
KF_REDIRECT_EXCLUDE_ALL_KNOWN_SUBFOLDERS = 0x00000800
[
]
interface IKnownFolderManager : IUnknown
{
{
} FFFP_MODE;
}
/* function for releasing structure returned from IKnownFolder::GetFolderDefinition */
cpp_quote("static inline void FreeKnownFolderDefinitionFields(KNOWNFOLDER_DEFINITION *pKFD)")
cpp_quote("{")
cpp_quote(" CoTaskMemFree(pKFD->pszName);")
cpp_quote(" CoTaskMemFree(pKFD->pszDescription);")
cpp_quote(" CoTaskMemFree(pKFD->pszRelativePath);")
cpp_quote(" CoTaskMemFree(pKFD->pszParsingName);")
cpp_quote(" CoTaskMemFree(pKFD->pszTooltip);")
cpp_quote(" CoTaskMemFree(pKFD->pszLocalizedName);")
cpp_quote(" CoTaskMemFree(pKFD->pszIcon);")
cpp_quote(" CoTaskMemFree(pKFD->pszSecurity);")
cpp_quote("}")
[
]
interface IApplicationAssociationRegistration : IUnknown
{
}
[
]
interface ICustomDestinationList : IUnknown
{
KDC_FREQUENT = 1,
}
/*****************************************************************************
* ShellObjects typelibrary
*/
[
lcid(0x0000),
version(1.0)
]
{
[
]
{
interface IExplorerBrowser;
}
[
]
{
interface IFileOpenDialog;
}
[
]
{
interface IFileSaveDialog;
}
[
]
{
interface INameSpaceTreeControl2;
}
[
]
{
interface IKnownFolderManager;
}
[
]
{
interface IApplicationAssociationRegistration;
}
[
]
{
interface IShellLinkW;
}
[
]
{
interface ITaskbarList4;
}
[
]
interface ICustomDestinationList;
}
[
]
{
interface IEnumObjects;
}
}