include: Add IKnownFolder and IKnownFolderManager interfaces.
This commit is contained in:
parent
9d74a70ad5
commit
12261fefd4
|
@ -2811,6 +2811,162 @@ interface IFileDialogControlEvents : IUnknown
|
||||||
[in] DWORD dwIDCtl);
|
[in] DWORD dwIDCtl);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
typedef [v1_enum] enum tagKF_CATEGORY
|
||||||
|
{
|
||||||
|
KF_CATEGORY_VIRTUAL = 0x00000001,
|
||||||
|
KF_CATEGORY_FIXED = 0x00000002,
|
||||||
|
KF_CATEGORY_COMMON = 0x00000003,
|
||||||
|
KF_CATEGORY_PERUSER = 0x00000004
|
||||||
|
} KF_CATEGORY;
|
||||||
|
|
||||||
|
typedef [v1_enum] enum tagKF_REDIRECTION_CAPABILITIES
|
||||||
|
{
|
||||||
|
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
|
||||||
|
} KF_REDIRECTION_CAPABILITIES;
|
||||||
|
|
||||||
|
typedef [v1_enum] enum tagKF_DEFINITION_FLAGS
|
||||||
|
{
|
||||||
|
KFDF_LOCAL_REDIRECT_ONLY = 0x00000002,
|
||||||
|
KFDF_ROAMABLE = 0x00000004,
|
||||||
|
KFDF_PRECREATE = 0x00000008
|
||||||
|
} KF_DEFINITION_FLAGS;
|
||||||
|
|
||||||
|
typedef struct tagKNOWNFOLDER_DEFINITION
|
||||||
|
{
|
||||||
|
KF_CATEGORY category;
|
||||||
|
LPWSTR pszName;
|
||||||
|
LPWSTR pszDescription;
|
||||||
|
KNOWNFOLDERID fidParent;
|
||||||
|
LPWSTR pszRelativePath;
|
||||||
|
LPWSTR pszParsingName;
|
||||||
|
LPWSTR pszTooltip;
|
||||||
|
LPWSTR pszLocalizedName;
|
||||||
|
LPWSTR pszIcon;
|
||||||
|
LPWSTR pszSecurity;
|
||||||
|
DWORD dwAttributes;
|
||||||
|
KF_DEFINITION_FLAGS kfdFlags;
|
||||||
|
FOLDERTYPEID ftidType;
|
||||||
|
} KNOWNFOLDER_DEFINITION;
|
||||||
|
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(3aa7af7e-9b36-420C-a8e3-f77d4674a488),
|
||||||
|
pointer_default(ref)
|
||||||
|
]
|
||||||
|
interface IKnownFolder : IUnknown
|
||||||
|
{
|
||||||
|
HRESULT GetId(
|
||||||
|
[out] KNOWNFOLDERID *pkfid);
|
||||||
|
|
||||||
|
HRESULT GetCategory(
|
||||||
|
[out] KF_CATEGORY *pCategory);
|
||||||
|
|
||||||
|
HRESULT GetShellItem(
|
||||||
|
[in] DWORD dwFlags,
|
||||||
|
[in] REFIID riid,
|
||||||
|
[out, iid_is(riid)] void **ppv);
|
||||||
|
|
||||||
|
HRESULT GetPath(
|
||||||
|
[in] DWORD dwFlags,
|
||||||
|
[out, string] LPWSTR *ppszPath);
|
||||||
|
|
||||||
|
HRESULT SetPath(
|
||||||
|
[in] DWORD dwFlags,
|
||||||
|
[in, string] LPCWSTR pszPath);
|
||||||
|
|
||||||
|
HRESULT GetIDList(
|
||||||
|
[in] DWORD dwFlags,
|
||||||
|
[out] PIDLIST_ABSOLUTE *ppidl);
|
||||||
|
|
||||||
|
HRESULT GetFolderType(
|
||||||
|
[out] FOLDERTYPEID *pftid);
|
||||||
|
|
||||||
|
HRESULT GetRedirectionCapabilities(
|
||||||
|
[out] KF_REDIRECTION_CAPABILITIES *pCapabilities);
|
||||||
|
|
||||||
|
HRESULT GetFolderDefinition(
|
||||||
|
[out] KNOWNFOLDER_DEFINITION *pKFD);
|
||||||
|
}
|
||||||
|
|
||||||
|
typedef [v1_enum] enum tagKF_REDIRECT_FLAGS
|
||||||
|
{
|
||||||
|
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
|
||||||
|
} KF_REDIRECT_FLAGS;
|
||||||
|
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(8BE2D872-86AA-4d47-B776-32CCA40C7018),
|
||||||
|
pointer_default(ref)
|
||||||
|
]
|
||||||
|
interface IKnownFolderManager : IUnknown
|
||||||
|
{
|
||||||
|
typedef [v1_enum] enum tagFFFP_MODE
|
||||||
|
{
|
||||||
|
FFFP_EXACTMATCH,
|
||||||
|
FFFP_NEARESTPARENTMATCH
|
||||||
|
} FFFP_MODE;
|
||||||
|
|
||||||
|
HRESULT FolderIdFromCsidl(
|
||||||
|
[in] int nCsidl,
|
||||||
|
[out] KNOWNFOLDERID *pfid);
|
||||||
|
|
||||||
|
HRESULT FolderIdToCsidl(
|
||||||
|
[in] REFKNOWNFOLDERID rfid,
|
||||||
|
[out] int *pnCsidl);
|
||||||
|
|
||||||
|
HRESULT GetFolderIds(
|
||||||
|
[out, size_is(, *pCount)] KNOWNFOLDERID **ppKFId,
|
||||||
|
[in, out] UINT *pCount);
|
||||||
|
|
||||||
|
HRESULT GetFolder(
|
||||||
|
[in] REFKNOWNFOLDERID rfid,
|
||||||
|
[out] IKnownFolder **ppkf);
|
||||||
|
|
||||||
|
HRESULT GetFolderByName(
|
||||||
|
[in, string] LPCWSTR pszCanonicalName,
|
||||||
|
[out] IKnownFolder **ppkf);
|
||||||
|
|
||||||
|
HRESULT RegisterFolder(
|
||||||
|
[in] REFKNOWNFOLDERID rfid,
|
||||||
|
[in] KNOWNFOLDER_DEFINITION const *pKFD);
|
||||||
|
|
||||||
|
HRESULT UnregisterFolder(
|
||||||
|
[in] REFKNOWNFOLDERID rfid);
|
||||||
|
|
||||||
|
HRESULT FindFolderFromPath(
|
||||||
|
[in, string] LPCWSTR pszPath,
|
||||||
|
[in] FFFP_MODE mode,
|
||||||
|
[out] IKnownFolder **ppkf);
|
||||||
|
|
||||||
|
HRESULT FindFolderFromIDList(
|
||||||
|
[in] PCIDLIST_ABSOLUTE pidl,
|
||||||
|
[out] IKnownFolder **ppkf);
|
||||||
|
|
||||||
|
HRESULT Redirect(
|
||||||
|
[in] REFKNOWNFOLDERID rfid,
|
||||||
|
[in, unique] HWND hwnd,
|
||||||
|
[in] KF_REDIRECT_FLAGS flags,
|
||||||
|
[in, unique, string] LPCWSTR pszTargetPath,
|
||||||
|
[in] UINT cFolders,
|
||||||
|
[in, size_is(cFolders), unique] KNOWNFOLDERID const *pExclusion,
|
||||||
|
[out, string] LPWSTR *ppszError);
|
||||||
|
}
|
||||||
|
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* ShellObjects typelibrary
|
* ShellObjects typelibrary
|
||||||
*/
|
*/
|
||||||
|
@ -2852,4 +3008,12 @@ library ShellObjects
|
||||||
{
|
{
|
||||||
interface INameSpaceTreeControl2;
|
interface INameSpaceTreeControl2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[
|
||||||
|
uuid(4df0c730-df9d-4ae3-9153-aa6b82e9795a)
|
||||||
|
]
|
||||||
|
coclass KnownFolderManager
|
||||||
|
{
|
||||||
|
interface IKnownFolderManager;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -113,6 +113,7 @@ typedef [v1_enum] enum tagSHCOLSTATE
|
||||||
typedef DWORD SHCOLSTATEF;
|
typedef DWORD SHCOLSTATEF;
|
||||||
|
|
||||||
typedef GUID KNOWNFOLDERID;
|
typedef GUID KNOWNFOLDERID;
|
||||||
|
typedef GUID FOLDERTYPEID;
|
||||||
|
|
||||||
cpp_quote("#if 0")
|
cpp_quote("#if 0")
|
||||||
typedef KNOWNFOLDERID *REFKNOWNFOLDERID;
|
typedef KNOWNFOLDERID *REFKNOWNFOLDERID;
|
||||||
|
|
Loading…
Reference in New Issue