[in] LPBC pbcReserved,
[in, string] LPOLESTR lpszDisplayName,
[out] ULONG *pchEaten,
- [out] LPITEMIDLIST *ppidl,
+ [out] PIDLIST_RELATIVE *ppidl,
[in, out, unique] ULONG *pdwAttributes);
HRESULT EnumObjects(
[out] IEnumIDList **ppenumIDList);
HRESULT BindToObject(
- [in] LPCITEMIDLIST pidl,
+ [in] PCUIDLIST_RELATIVE pidl,
[in] LPBC pbcReserved,
[in] REFIID riid,
[out, iid_is(riid)] void **ppvOut);
HRESULT BindToStorage(
- [in] LPCITEMIDLIST pidl,
+ [in] PCUIDLIST_RELATIVE pidl,
[in] LPBC pbcReserved,
[in] REFIID riid,
[out, iid_is(riid)] void **ppvObj);
HRESULT CompareIDs(
[in] LPARAM lParam,
- [in] LPCITEMIDLIST pidl1,
- [in] LPCITEMIDLIST pidl2);
+ [in] PCUIDLIST_RELATIVE pidl1,
+ [in] PCUIDLIST_RELATIVE pidl2);
HRESULT CreateViewObject(
[in] HWND hwndOwner,
HRESULT GetAttributesOf(
[in] UINT cidl,
- [in, size_is(cidl)] LPCITEMIDLIST *apidl,
+ [in, size_is(cidl)] PCUITEMID_CHILD_ARRAY apidl,
[in, out] SFGAOF *rgfInOut);
HRESULT GetUIObjectOf(
[in] HWND hwndOwner,
[in] UINT cidl,
- [in, size_is(cidl)] LPCITEMIDLIST *apidl,
+ [in, size_is(cidl)] PCUITEMID_CHILD_ARRAY apidl,
[in] REFIID riid,
[in, out, unique] UINT *prgfInOut,
[out, iid_is(riid)] void **ppvOut);
HRESULT GetDisplayNameOf(
- [in] LPCITEMIDLIST pidl,
+ [in] PCUITEMID_CHILD pidl,
[in] SHGDNF uFlags,
[out] STRRET *lpName);
HRESULT SetNameOf(
[in] HWND hwnd,
- [in] LPCITEMIDLIST pidl,
+ [in] PCUITEMID_CHILD pidl,
[in, string] LPCOLESTR lpszName,
[in] SHGDNF uFlags,
- [out] LPITEMIDLIST *ppidlOut);
+ [out] PITEMID_CHILD *ppidlOut);
}
HRESULT EnumSearches( [out] IEnumExtraSearch **ppenum );
HRESULT GetDefaultColumn( [in] DWORD dwReserved, [out] ULONG *pSort, [out] ULONG *pDisplay );
HRESULT GetDefaultColumnState( [in] UINT iColumn, [out] SHCOLSTATEF *pcsFlags );
- HRESULT GetDetailsEx( [in] LPCITEMIDLIST pidl, [in] const SHCOLUMNID *pscid, [out] VARIANT *pv);
- HRESULT GetDetailsOf( [in] LPCITEMIDLIST pidl, [in] UINT iColumn, [out] SHELLDETAILS *psd);
+ HRESULT GetDetailsEx( [in] PCUITEMID_CHILD pidl, [in] const SHCOLUMNID *pscid, [out] VARIANT *pv);
+ HRESULT GetDetailsOf( [in] PCUITEMID_CHILD pidl, [in] UINT iColumn, [out] SHELLDETAILS *psd);
HRESULT MapColumnToSCID( [in] UINT iColumn, [in] SHCOLUMNID *pscid );
}
);
}
+[v1_enum] enum tagSORTDIRECTION
+{
+ SORT_DESCENDING = -1,
+ SORT_ASCENDING = 1
+};
+typedef int SORTDIRECTION;
+
+typedef struct SORTCOLUMN
+{
+ PROPERTYKEY propkey;
+ SORTDIRECTION direction;
+} SORTCOLUMN;
+
+typedef [v1_enum] enum FVTEXTTYPE
+{
+ FVST_EMPTYTEXT = 0
+} FVTEXTTYPE;
+
+[
+ uuid(1af3a467-214f-4298-908e-06b03e0b39f9),
+ object,
+ pointer_default(unique)
+]
+interface IFolderView2 : IFolderView
+{
+ HRESULT SetGroupBy(
+ [in] REFPROPERTYKEY key,
+ [in] BOOL ascending);
+
+ [local]
+ HRESULT GetGroupBy(
+ [out] PROPERTYKEY *pkey,
+ [out] BOOL *ascending);
+
+ [call_as(GetGroupBy)]
+ HRESULT RemoteGetGroupBy(
+ [out] PROPERTYKEY *pkey,
+ [out] BOOL *ascending);
+
+ HRESULT SetViewProperty(
+ [in] PCUITEMID_CHILD pidl,
+ [in] REFPROPERTYKEY propkey,
+ [in] REFPROPVARIANT propvar);
+
+ HRESULT GetViewProperty(
+ [in] PCUITEMID_CHILD pidl,
+ [in] REFPROPERTYKEY propkey,
+ [out] PROPVARIANT *propvar);
+
+ HRESULT SetTileViewProperties(
+ [in] PCUITEMID_CHILD pidl,
+ [in, string] LPCWSTR prop_list);
+
+ HRESULT SetExtendedTileViewProperties(
+ [in] PCUITEMID_CHILD pidl,
+ [in, string] LPCWSTR prop_list);
+
+ HRESULT SetText(
+ [in] FVTEXTTYPE type,
+ [in] LPCWSTR text);
+
+ HRESULT SetCurrentFolderFlags(
+ [in] DWORD mask,
+ [in] DWORD flags);
+
+ HRESULT GetCurrentFolderFlags([out] DWORD *flags);
+
+ HRESULT GetSortColumnCount([out] int *columns);
+
+ HRESULT SetSortColumns(
+ [in, size_is(count)] const SORTCOLUMN *columns,
+ [in] int count);
+
+ HRESULT GetSortColumns(
+ [out, size_is(count)] SORTCOLUMN *columns,
+ [in] int count);
+
+ HRESULT GetItem(
+ [in] int ittem,
+ [in] REFIID riid,
+ [out, iid_is(riid)] void **ppv);
+
+ HRESULT GetVisibleItem(
+ [in] int start,
+ [in] BOOL previous,
+ [out] int *item);
+
+ HRESULT GetSelectedItem(
+ [in] int start,
+ [out] int *item);
+
+ HRESULT GetSelection(
+ [in] BOOL none_implies_folder,
+ [out] IShellItemArray **array);
+
+ HRESULT GetSelectionState(
+ [in] PCUITEMID_CHILD pidl,
+ [out] DWORD *flags);
+
+ HRESULT InvokeVerbOnSelection([in, unique, string] LPCSTR verb);
+
+ HRESULT SetViewModeAndIconSize(
+ [in] FOLDERVIEWMODE mode,
+ [in] int size);
+
+ HRESULT GetViewModeAndIconSize(
+ [out] FOLDERVIEWMODE *mode,
+ [out] int *size);
+
+ HRESULT SetGroupSubsetCount([in] UINT visible_rows);
+
+ HRESULT GetGroupSubsetCount([out] UINT *visible_rows);
+
+ HRESULT SetRedraw([in] BOOL redraw);
+
+ HRESULT IsMoveInSameFolder();
+
+ HRESULT DoRename();
+}
+
/*****************************************************************************
* IShellBrowser interface
*/
typedef [v1_enum] enum FDE_OVERWRITE_RESPONSE
{
FDEOR_DEFAULT = 0,
- FDEOR_ACCCEP = 1,
+ FDEOR_ACCEPT = 1,
FDEOR_REFUSE = 2
} FDE_OVERWRITE_RESPONSE;
HRESULT AbortList();
}
+[
+ uuid(ddefe873-6997-4e68-be26-39b633adbe12),
+ object,
+ pointer_default(unique)
+]
+interface IQueryCancelAutoPlay : IUnknown
+{
+ HRESULT AllowAutoPlay([in, string] LPCWSTR path,
+ [in] DWORD content_type,
+ [in, string] LPCWSTR label,
+ [in] DWORD serial_number);
+}
+
+[
+ uuid(d594d0d8-8da7-457b-b3b4-ce5dbaac0b88),
+ pointer_default(unique)
+]
+interface ITransferAdviseSink : IUnknown
+{
+ [v1_enum] enum _TRANSFER_ADVISE_STATE
+ {
+ TS_NONE = 0,
+ TS_PERFORMING = 1,
+ TS_PREPARING = 2,
+ TS_INDETERMINATE = 4
+ };
+ typedef DWORD TRANSFER_ADVISE_STATE;
+
+ HRESULT UpdateProgress([in] ULONGLONG size_current,
+ [in] ULONGLONG size_total,
+ [in] INT files_current,
+ [in] INT files_total,
+ [in] INT folders_current,
+ [in] INT folders_total);
+ HRESULT UpdateTransferState([in] TRANSFER_ADVISE_STATE state);
+ HRESULT ConfirmOverwrite([in] IShellItem *source,
+ [in] IShellItem *dest_parent,
+ [in, string] LPCWSTR name);
+ HRESULT ConfirmEncryptLoss([in] IShellItem *source);
+ HRESULT FileFailure([in] IShellItem *item,
+ [in, unique, string] LPCWSTR itemname,
+ [in] HRESULT hr,
+ [in, out, unique, size_is(crename)] LPWSTR rename,
+ [in] ULONG crename);
+ HRESULT SubStreamFailure([in] IShellItem *item,
+ [in, string] LPCWSTR stream,
+ [in] HRESULT hr);
+ HRESULT PropertyFailure([in] IShellItem *item,
+ [in, unique] const PROPERTYKEY *key,
+ [in] HRESULT hr);
+}
+
+[v1_enum] enum _TRANSFER_SOURCE_FLAGS
+{
+ TSF_NORMAL = 0,
+ TSF_FAIL_EXIST = 0,
+ TSF_RENAME_EXIST = 0x1,
+ TSF_OVERWRITE_EXIST = 0x2,
+ TSF_ALLOW_DECRYPTION = 0x4,
+ TSF_NO_SECURITY = 0x8,
+ TSF_COPY_CREATION_TIME = 0x10,
+ TSF_COPY_WRITE_TIME = 0x20,
+ TSF_USE_FULL_ACCESS = 0x40,
+ TSF_DELETE_RECYCLE_IF_POSSIBLE = 0x80,
+ TSF_COPY_HARD_LINK = 0x100,
+ TSF_COPY_LOCALIZED_NAME = 0x200,
+ TSF_MOVE_AS_COPY_DELETE = 0x400,
+ TSF_SUSPEND_SHELLEVENTS = 0x800
+};
+typedef DWORD TRANSFER_SOURCE_FLAGS;
+
+[
+ uuid(00adb003-bde9-45c6-8e29-d09f9353e108),
+ object,
+ pointer_default(unique)
+]
+interface ITransferSource : IUnknown
+{
+ HRESULT Advise([in] ITransferAdviseSink *sink, [out] DWORD *cookie);
+ HRESULT Unadvise([in] DWORD cookie);
+ HRESULT SetProperties([in] IPropertyChangeArray *array);
+ HRESULT OpenItem([in] IShellItem *item,
+ [in] TRANSFER_SOURCE_FLAGS flags,
+ [in] REFIID riid,
+ [out, iid_is(riid)] void **ppv);
+ HRESULT MoveItem([in] IShellItem *item,
+ [in] IShellItem *parent_dest,
+ [in, string] LPCWSTR name_dest,
+ [in] TRANSFER_SOURCE_FLAGS flags,
+ [out] IShellItem **newitem);
+ HRESULT RecycleItem([in] IShellItem *source,
+ [in] IShellItem *parent_dest,
+ [in] TRANSFER_SOURCE_FLAGS flags,
+ [out] IShellItem **new_dest);
+ HRESULT RemoveItem([in] IShellItem *source, [in] TRANSFER_SOURCE_FLAGS flags);
+ HRESULT RenameItem([in] IShellItem *source,
+ [in, string] LPCWSTR newname,
+ [in] TRANSFER_SOURCE_FLAGS flags,
+ [out] IShellItem **new_dest);
+ HRESULT LinkItem([in] IShellItem *source,
+ [in] IShellItem *parent_dest,
+ [in, unique, string] LPCWSTR new_name,
+ [in] TRANSFER_SOURCE_FLAGS flags,
+ [out] IShellItem **new_dest);
+ HRESULT ApplyPropertiesToItem([in] IShellItem *source, [out] IShellItem **newitem);
+ HRESULT GetDefaultDestinationName([in] IShellItem *source,
+ [in] IShellItem *parent_dest,
+ [out, string] LPWSTR *dest_name);
+ HRESULT EnterFolder([in] IShellItem *child_folder);
+ HRESULT LeaveFolder([in] IShellItem *child_folder);
+}
+
+[
+ uuid(48addd32-3ca5-4124-abe3-b5a72531b207),
+ object,
+ pointer_default(unique)
+]
+interface ITransferDestination : IUnknown
+{
+ HRESULT Advise([in] ITransferAdviseSink *sink, [out] DWORD *cookie);
+ HRESULT Unadvise([in] DWORD cookie);
+ HRESULT CreateItem([in, string] LPCWSTR name,
+ [in] DWORD attr,
+ [in] ULONGLONG size,
+ [in] TRANSFER_SOURCE_FLAGS flags,
+ [in] REFIID riid,
+ [out, iid_is(riid)] void **ppv,
+ [in] REFIID resources,
+ [out, iid_is(riid)] void **presources);
+}
+
/*****************************************************************************
* ShellObjects typelibrary
*/
interface ICustomDestinationList;
}
+ [
+ uuid(331f1768-05a9-4ddd-b86e-dae34ddc998a)
+ ]
+ coclass QueryCancelAutoPlay
+ {
+ interface IQueryCancelAutoPlay;
+ }
+
[
uuid(9ac9fbe1-e0a2-4ad6-b4ee-e212013ea917)
]
interface IShellItem2;
}
}
+
+enum _OPPROGDLGF
+{
+ OPPROGDLG_DEFAULT = 0,
+ OPPROGDLG_ENABLEPAUSE = 0x80,
+ OPPROGDLG_ALLOWUNDO = 0x100,
+ OPPROGDLG_DONTDISPLAYSOURCEPATH = 0x200,
+ OPPROGDLG_DONTDISPLAYDESTPATH = 0x400,
+ OPPROGDLG_NOMULTIDAYESTIMATES = 0x800,
+ OPPROGDLG_DONTDISPLAYLOCATIONS = 0x1000
+};
+typedef DWORD OPPROGDLGF;
+
+enum _PDMODE
+{
+ PDM_DEFAULT = 0,
+ PDM_RUN = 0x1,
+ PDM_PREFLIGHT = 0x2,
+ PDM_UNDOING = 0x4,
+ PDM_ERRORSBLOCKING = 0x8,
+ PDM_INDETERMINATE = 0x10
+};
+typedef DWORD PDMODE;
+
+typedef enum PDOPSTATUS
+{
+ PDOPS_RUNNING = 1,
+ PDOPS_PAUSED = 2,
+ PDOPS_CANCELLED = 3,
+ PDOPS_STOPPED = 4,
+ PDOPS_ERRORS = 5
+} PDOPSTATUS;
+
+typedef enum _SPACTION
+{
+ SPACTION_NONE = 0,
+ SPACTION_MOVING = 1,
+ SPACTION_COPYING = 2,
+ SPACTION_RECYCLING = 3,
+ SPACTION_APPLYINGATTRIBS = 4,
+ SPACTION_DOWNLOADING = 5,
+ SPACTION_SEARCHING_INTERNET = 6,
+ SPACTION_CALCULATING = 7,
+ SPACTION_UPLOADING = 8,
+ SPACTION_SEARCHING_FILES = 9,
+ SPACTION_DELETING = 10,
+ SPACTION_RENAMING = 11,
+ SPACTION_FORMATTING = 12,
+ SPACTION_COPY_MOVING = 13
+} SPACTION;
+
+[
+ uuid(0C9FB851-E5C9-43EB-A370-F0677B13874C),
+ object,
+ pointer_default(unique)
+]
+interface IOperationsProgressDialog : IUnknown
+{
+ HRESULT StartProgressDialog(
+ [in] HWND hwndOwner,
+ [in] OPPROGDLGF flags);
+ HRESULT StopProgressDialog();
+ HRESULT SetOperation(
+ [in] SPACTION action);
+ HRESULT SetMode(
+ [in] PDMODE mode);
+ HRESULT UpdateProgress(
+ [in] ULONGLONG ullPointsCurrent,
+ [in] ULONGLONG ullPointsTotal,
+ [in] ULONGLONG ullSizeCurrent,
+ [in] ULONGLONG ullSizeTotal,
+ [in] ULONGLONG ullItemsCurrent,
+ [in] ULONGLONG ullItemsTotal);
+ HRESULT UpdateLocations(
+ [in, optional] IShellItem *psiSource,
+ [in, optional] IShellItem *psiTarget,
+ [in, optional] IShellItem *psiItem);
+ HRESULT ResetTimer();
+ HRESULT PauseTimer();
+ HRESULT ResumeTimer();
+ HRESULT GetMilliseconds(
+ [out] ULONGLONG *pullElapsed,
+ [out] ULONGLONG *pullRemaining);
+ HRESULT GetOperationStatus(
+ [out] PDOPSTATUS *popstatus);
+};
+
+[
+ uuid(947aab5f-0a5c-4c13-b4d6-4bf7836fc9f8),
+ object,
+ pointer_default(unique)
+]
+interface IFileOperation : IUnknown
+{
+ HRESULT Advise(
+ [in] IFileOperationProgressSink *pfops,
+ [out] DWORD *pdwCookie);
+ HRESULT Unadvise(
+ [in] DWORD dwCookie);
+ HRESULT SetOperationFlags(
+ [in] DWORD dwOperationFlags);
+ HRESULT SetProgressMessage(
+ [in] LPCWSTR pszMessage);
+ HRESULT SetProgressDialog(
+ [in] IOperationsProgressDialog *popd);
+ HRESULT SetProperties(
+ [in] IPropertyChangeArray *pproparray);
+ HRESULT SetOwnerWindow(
+ [in] HWND hwndOwner);
+ HRESULT ApplyPropertiesToItem(
+ [in] IShellItem *psiItem);
+ HRESULT ApplyPropertiesToItems(
+ [in] IUnknown *punkItems);
+ HRESULT RenameItem(
+ [in] IShellItem *psiItem,
+ [in] LPCWSTR pszNewName,
+ [in] IFileOperationProgressSink *pfopsItem);
+ HRESULT RenameItems(
+ [in] IUnknown *pUnkItems,
+ [in] LPCWSTR pszNewName);
+ HRESULT MoveItem(
+ [in] IShellItem *psiItem,
+ [in] IShellItem *psiDestinationFolder,
+ [in] LPCWSTR pszNewName,
+ [in] IFileOperationProgressSink *pfopsItem);
+ HRESULT MoveItems(
+ [in] IUnknown *punkItems,
+ [in] IShellItem *psiDestinationFolder);
+ HRESULT CopyItem(
+ [in] IShellItem *psiItem,
+ [in] IShellItem *psiDestinationFolder,
+ [in] LPCWSTR pszCopyName,
+ [in] IFileOperationProgressSink *pfopsItem);
+ HRESULT CopyItems(
+ [in] IUnknown *punkItems,
+ [in] IShellItem *psiDestinationFolder);
+ HRESULT DeleteItem(
+ [in] IShellItem *psiItem,
+ [in] IFileOperationProgressSink *pfopsItem);
+ HRESULT DeleteItems(
+ [in] IUnknown *punkItems);
+ HRESULT NewItem(
+ [in] IShellItem *psiDestinationFolder,
+ [in] DWORD dwFileAttributes,
+ [in] LPCWSTR pszName,
+ [in] LPCWSTR pszTemplateName,
+ [in] IFileOperationProgressSink *pfopsItem);
+ HRESULT PerformOperations();
+ HRESULT GetAnyOperationsAborted(
+ [out] BOOL *pfAnyOperationsAborted);
+};
+
+[
+ uuid(6CCB7BE0-6807-11d0-B810-00C04FD706EC),
+ object,
+ local,
+ pointer_default(unique)
+]
+interface IShellTaskScheduler : IUnknown
+{
+ HRESULT AddTask(
+ [in] IRunnableTask *pTask,
+ [in] REFGUID rtoid,
+ [in] DWORD_PTR lParam,
+ [in] DWORD dwPriority);
+ HRESULT RemoveTasks(
+ [in] REFGUID rtoid,
+ [in] DWORD_PTR lParam,
+ [in] BOOL fWaitIfRunning);
+ UINT CountTasks(
+ [in] REFGUID rtoid);
+ HRESULT Status(
+ [in] DWORD dwReleaseStatus,
+ [in] DWORD dwThreadTimeout);
+}