| Server IP : 209.209.40.120 / Your IP : 216.73.217.112 Web Server : Microsoft-IIS/10.0 System : Windows NT NEWWWW 10.0 build 17763 (Windows Server 2019) i586 User : NEWWWW$ ( 0) PHP Version : 8.3.30 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /Program Files (x86)/Windows Kits/10/Include/10.0.19041.0/um/ |
Upload File : |
//
// Microsoft Windows
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// File: shobjidl.idl
//
// Contents: This interface definition contains shell objects that can be remoted
//
cpp_quote("#include <winapifamily.h>")
cpp_quote("#if _MSC_VER >= 1200")
cpp_quote("#pragma warning(push)")
cpp_quote("#pragma warning(disable:4820) /* padding added after data member */")
cpp_quote("#ifndef _MSC_EXTENSIONS")
cpp_quote("#pragma warning(disable:4309) /* truncation of constant value */")
cpp_quote("#endif")
cpp_quote("#endif")
#pragma region Desktop Family
cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
import "objidl.idl";
import "oleidl.idl";
import "oaidl.idl";
import "docobj.idl";
import "shtypes.idl";
import "servprov.idl";
import "comcat.idl"; // for IEnumGUID
import "propidl.idl";
import "prsht.idl";
import "msxml.idl";
import "wtypes.idl";
import "propsys.idl";
import "ObjectArray.idl";
import "StructuredQueryCondition.idl";
import "shobjidl_core.idl";
cpp_quote("#include <sherrors.h>")
[
object,
uuid("C7B236CE-EE80-11D0-985F-006008059382"),
pointer_default(unique),
local
]
interface IQueryCodePage : IUnknown
{
HRESULT GetCodePage([out, annotation("_Out_")] UINT *puiCodePage);
HRESULT SetCodePage([in, annotation("_In_")] UINT uiCodePage);
} ;
// These values are used by any Sync Engine to expose internal engine states to the PropertyStore's PKEY_StorageProviderState
// in the File Indexer. To update the key, bind through GPS_EXTRINSICPROPERTIES and use the IPropertyStore interface
// to set the key to the desired bitmask value.
typedef [v1_enum] enum SYNC_ENGINE_STATE_FLAGS
{
SESF_NONE = 0x00, // No state
SESF_SERVICE_QUOTA_NEARING_LIMIT = 0x01, // This value is set when the user's quota is nearing capacity. The values for this is dependent on the user's total quota space.
SESF_SERVICE_QUOTA_EXCEEDED_LIMIT = 0x02, // The user's quota is completely filled
SESF_AUTHENTICATION_ERROR = 0x04, // The credentials for the user's account are invalid
SESF_PAUSED_DUE_TO_METERED_NETWORK = 0x08, // Sync engine is paused due to metered network settings
SESF_PAUSED_DUE_TO_DISK_SPACE_FULL = 0x10, // The drive that contains the sync engine content has reached the maximum allowed space
SESF_PAUSED_DUE_TO_CLIENT_POLICY = 0x20, // User has gone over the daily limit of requests or data transfers to the service
SESF_PAUSED_DUE_TO_SERVICE_POLICY = 0x40, // Service has requested us to throttle all requests
SESF_SERVICE_UNAVAILABLE = 0x80, // Service can't be reached at this time
SESF_PAUSED_DUE_TO_USER_REQUEST = 0x100, // Sync engine was paused due to an explicit user request
SESF_ALL_FLAGS = (SESF_NONE | SESF_SERVICE_QUOTA_NEARING_LIMIT | SESF_SERVICE_QUOTA_EXCEEDED_LIMIT | SESF_AUTHENTICATION_ERROR | SESF_PAUSED_DUE_TO_METERED_NETWORK | SESF_PAUSED_DUE_TO_DISK_SPACE_FULL | SESF_PAUSED_DUE_TO_CLIENT_POLICY | SESF_PAUSED_DUE_TO_SERVICE_POLICY | SESF_SERVICE_UNAVAILABLE | SESF_PAUSED_DUE_TO_USER_REQUEST),
} SYNC_ENGINE_STATE_FLAGS;
cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(SYNC_ENGINE_STATE_FLAGS)")
// FOLDERSETTINGS is a data structure that explorer passes from one folder
// view to another, when the user is browsing. It calls ISV::GetCurrentInfo
// member to get the current settings and pass it to ISV::CreateViewWindow
// to allow the next folder view 'inherit' it. These settings assumes a
// particular UI (which the shell's folder view has), and shell extensions
// may or may not use those settings.
typedef char * LPVIEWSETTINGS;
[
uuid(3cc974d2-b302-4d36-ad3e-06d93f695d3f),
object,
pointer_default(unique)
]
interface IFolderViewOptions : IUnknown
{
typedef [v1_enum] enum FOLDERVIEWOPTIONS
{
FVO_DEFAULT = 0x00000000, // default needs none of these options and will use Itemsview
FVO_VISTALAYOUT = 0x00000001, // always use listview to maintain vista parity
FVO_CUSTOMPOSITION = 0x00000002, // requires the custom positioning of items within the X,Y space of the view
FVO_CUSTOMORDERING = 0x00000004, // requires the custom reordering feature of the view
FVO_SUPPORTHYPERLINKS = 0x00000008, // requires the use of hyperlinks in tiles and details modes
FVO_NOANIMATIONS = 0x00000010, // turn off animations within the view
FVO_NOSCROLLTIPS = 0x00000020, // turn off scroll tips
} FOLDERVIEWOPTIONS;
cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(FOLDERVIEWOPTIONS)")
HRESULT SetFolderViewOptions(
[in] FOLDERVIEWOPTIONS fvoMask,
[in] FOLDERVIEWOPTIONS fvoFlags);
HRESULT GetFolderViewOptions(
[out] FOLDERVIEWOPTIONS *pfvoFlags);
}
cpp_quote("#if (NTDDI_VERSION >= NTDDI_VISTA)")
[
uuid(ec39fa88-f8af-41c5-8421-38bed28f4673),
object,
pointer_default(unique)
]
interface IShellView3 : IShellView2
{
[v1_enum] enum _SV3CVW3_FLAGS
{
SV3CVW3_DEFAULT = 0x00000000,
SV3CVW3_NONINTERACTIVE = 0x00000001, // Instead of bringing up UI, fail silently.
SV3CVW3_FORCEVIEWMODE = 0x00000002, // Prefer view mode set by CreateViewWindow3 over saved view state
SV3CVW3_FORCEFOLDERFLAGS = 0x00000004, // Prefer folder flags set by CreateViewWindow3 over saved view state
};
typedef DWORD SV3CVW3_FLAGS;
HRESULT CreateViewWindow3(
[in] IShellBrowser *psbOwner,
[in, unique] IShellView *psvPrev,
[in] SV3CVW3_FLAGS dwViewFlags,
[in] FOLDERFLAGS dwMask,
[in] FOLDERFLAGS dwFlags,
[in] FOLDERVIEWMODE fvMode,
[in, unique] const SHELLVIEWID *pvid,
[in] const RECT *prcView,
[out] HWND *phwndView);
}
cpp_quote("#endif // NTDDI_VISTA")
cpp_quote("#if (NTDDI_VERSION >= NTDDI_WIN7)")
// to discover the search box, use IServiceProvider::QueryService() using SID_SSearchBoxInfo on a site pointer within the explorer window
[
uuid(6af6e03f-d664-4ef4-9626-f7e0ed36755e),
object
]
interface ISearchBoxInfo : IUnknown
{
HRESULT GetCondition(
[in] REFIID riid,
[out, iid_is(riid)] void **ppv);
HRESULT GetText([out, string] LPWSTR *ppsz);
}
cpp_quote("#endif // (NTDDI_VERSION >= NTDDI_WIN7)")
cpp_quote("#if (_WIN32_IE >= _WIN32_IE_IE70)")
[
uuid(e693cf68-d967-4112-8763-99172aee5e5a),
object,
pointer_default(unique)
]
interface IVisualProperties : IUnknown
{
typedef [v1_enum] enum VPWATERMARKFLAGS
{
VPWF_DEFAULT = 0x00000000, // Windows XP behavior
VPWF_ALPHABLEND = 0x00000001, // alpha blend the bitmap, assumed 24-bit color + 8-bit alpha
} VPWATERMARKFLAGS;
cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(VPWATERMARKFLAGS)")
HRESULT SetWatermark([in, unique] HBITMAP hbmp, [in] VPWATERMARKFLAGS vpwf);
typedef [v1_enum] enum VPCOLORFLAGS
{
VPCF_TEXT = 1,
VPCF_BACKGROUND = 2,
VPCF_SORTCOLUMN = 3,
VPCF_SUBTEXT = 4,
VPCF_TEXTBACKGROUND = 5,
} VPCOLORFLAGS; // misnamed, this is not a flags type
HRESULT SetColor(
[in] VPCOLORFLAGS vpcf,
[in] COLORREF cr);
HRESULT GetColor(
[in] VPCOLORFLAGS vpcf,
[out] COLORREF *pcr);
HRESULT SetItemHeight([in] int cyItemInPixels);
HRESULT GetItemHeight([out] int *cyItemInPixels);
HRESULT SetFont(
[in] const LOGFONTW* plf,
[in] BOOL bRedraw);
HRESULT GetFont([out] LOGFONTW* plf);
HRESULT SetTheme(
[in, unique, string] LPCWSTR pszSubAppName,
[in, unique, string] LPCWSTR pszSubIdList);
}
cpp_quote("#endif // _WIN32_IE_IE70")
cpp_quote("#if (_WIN32_IE >= _WIN32_IE_IE70)")
[
uuid(c8ad25a1-3294-41ee-8165-71174bd01c57),
object,
pointer_default(unique)
]
interface ICommDlgBrowser3 : ICommDlgBrowser2
{
HRESULT OnColumnClicked(
[in] IShellView *ppshv,
[in] int iColumn);
HRESULT GetCurrentFilter(
[out, string, size_is(cchFileSpec)] LPWSTR pszFileSpec,
[in] int cchFileSpec);
HRESULT OnPreViewCreated([in] IShellView *ppshv);
}
cpp_quote("#endif // (_WIN32_IE >= _WIN32_IE_IE70)")
// Notification callback for changes to user accounts
[
object,
uuid(a561e69a-b4b8-4113-91a5-64c6bcca3430),
version(1.0)
]
interface IUserAccountChangeCallback : IUnknown
{
HRESULT OnPictureChange(
[in, string] LPCWSTR pszUserName);
}
// This structure is defined in winbase.h or winternl.h which is not visible to idl files,
// so we redeclare it here.
cpp_quote("#ifdef MIDL_PASS")
typedef struct _OVERLAPPED {
ULONG_PTR Internal;
ULONG_PTR InternalHigh;
union {
struct {
DWORD Offset;
DWORD OffsetHigh;
};
PVOID Pointer;
};
HANDLE hEvent;
} OVERLAPPED, *LPOVERLAPPED;
cpp_quote("#endif // MIDL_PASS")
[
object,
uuid(fe0b6665-e0ca-49b9-a178-2b5cb48d92a5),
pointer_default(unique),
local
]
interface IStreamAsync : IStream
{
HRESULT ReadAsync([out, size_is(cb), length_is(*pcbRead), annotation("_Out_writes_bytes_to_(cb, *pcbRead)")] void *pv, [in] DWORD cb, [out, annotation("_Out_opt_ _Deref_out_range_(0, cb)")] LPDWORD pcbRead, [in, annotation("_In_")] LPOVERLAPPED lpOverlapped);
HRESULT WriteAsync([in, size_is(cb), annotation("_In_reads_bytes_(cb)")] void const *lpBuffer, [in] DWORD cb, [out, annotation("_Out_opt_ _Deref_out_range_(0, cb)")] LPDWORD pcbWritten, [in, annotation("_In_")] LPOVERLAPPED lpOverlapped);
HRESULT OverlappedResult([in, annotation("_In_")] LPOVERLAPPED lpOverlapped, [out, annotation("_Out_")] LPDWORD lpNumberOfBytesTransferred, [in, annotation("_In_")] BOOL bWait);
HRESULT CancelIo();
}
[
object,
uuid(8a68fdda-1fdc-4c20-8ceb-416643b5a625),
pointer_default(unique),
local
]
interface IStreamUnbufferedInfo : IUnknown
{
HRESULT GetSectorSize([out, annotation("_Out_")] ULONG *pcbSectorSize);
}
cpp_quote("#if (_WIN32_IE >= _WIN32_IE_IE70)")
cpp_quote("SHSTDAPI SHRemovePersonalPropertyValues(_In_ IShellItemArray *psia);")
cpp_quote("SHSTDAPI SHAddDefaultPropertiesByExt(_In_ PCWSTR pszExt, _In_ IPropertyStore *pPropStore);")
cpp_quote("SHSTDAPI SHCreateDefaultPropertiesOp(_In_ IShellItem *psi, _Outptr_ IFileOperation **ppFileOp);")
cpp_quote("SHSTDAPI SHSetDefaultProperties(_In_opt_ HWND hwnd, _In_ IShellItem *psi, DWORD dwFileOpFlags, _In_opt_ IFileOperationProgressSink *pfops);")
cpp_quote("#endif // (_WIN32_IE >= _WIN32_IE_IE70)")
cpp_quote("#if (NTDDI_VERSION >= NTDDI_WIN2K)")
cpp_quote("#if (NTDDI_VERSION >= NTDDI_VISTA)")
// IDragSourceHelper2::SetFlags dwFlags
typedef [v1_enum] enum DSH_FLAGS
{
DSH_ALLOWDROPDESCRIPTIONTEXT = 0x0001, // Allow text specified in DropDescription to be displayed on drag image
} DSH_FLAGS;
cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(DSH_FLAGS)")
[
uuid(83E07D0D-0C5F-4163-BF1A-60B274051E40),
local,
pointer_default(unique)
]
interface IDragSourceHelper2 : IDragSourceHelper
{
HRESULT SetFlags(
[in, annotation("_In_")] DWORD dwFlags);
}
cpp_quote("#endif // NTDDI_VISTA")
cpp_quote("#endif // NTDDI_WIN2K")
// New for XP, but used by downlevel code
//cpp_quote("#if (NTDDI_VERSION >= NTDDI_WINXP)")
// HW Event Handler Interface
[
object,
uuid(C1FB73D0-EC3A-4ba2-B512-8CDB9187B6D1),
pointer_default(unique)
]
interface IHWEventHandler : IUnknown
{
HRESULT Initialize(
[in, string] LPCWSTR pszParams);
HRESULT HandleEvent(
[in, string] LPCWSTR pszDeviceID,
[in, string] LPCWSTR pszAltDeviceID,
[in, string] LPCWSTR pszEventType);
HRESULT HandleEventWithContent(
[in, string] LPCWSTR pszDeviceID,
[in, string] LPCWSTR pszAltDeviceID,
[in, string] LPCWSTR pszEventType,
[in, string] LPCWSTR pszContentTypeHandler,
[in] IDataObject* pdataobject);
}
// HW Event Handler Interface 2
[
object,
uuid(CFCC809F-295D-42e8-9FFC-424B33C487E6),
pointer_default(unique)
]
interface IHWEventHandler2 : IHWEventHandler
{
HRESULT HandleEventWithHWND(
[in, string] LPCWSTR pszDeviceID,
[in, string] LPCWSTR pszAltDeviceID,
[in, string] LPCWSTR pszEventType,
[in] HWND hwndOwner);
}
// HW Event Handler Interface
[
object,
uuid(DDEFE873-6997-4e68-BE26-39B633ADBE12),
pointer_default(unique)
]
interface IQueryCancelAutoPlay : IUnknown
{
HRESULT AllowAutoPlay(
[in, string] LPCWSTR pszPath,
[in] DWORD dwContentType,
[in, string] LPCWSTR pszLabel,
[in] DWORD dwSerialNumber);
}
cpp_quote("#if (NTDDI_VERSION >= NTDDI_VISTA)")
//
// IDynamicHWHandler is a new feature in AutoPlay V3 (Vista)
// A handler can register this interface for show/hide itself from the Autoplay prompt dialog.
// Additionally, it may specify a different action string than one supplied by the static
// handler registration under HKLM.
//
// params:
// [in] pszDeviceID - DevicePath or drive root (e.g. G:\),
// [in] dwContentType - bitfield of content types detected so far, similar to the param in IQueryCancelAutoPlay
// [out] *ppszAction - if not NULL, use this as the Action string.
// if NULL, fallback to default static action string.
//
// returns:
// S_OK = show, S_FALSE = hide, E_xx = error
//
// Dynamic HW Handler Interface
[
object,
uuid(DC2601D7-059E-42fc-A09D-2AFD21B6D5F7),
pointer_default(unique)
]
interface IDynamicHWHandler : IUnknown
{
HRESULT GetDynamicInfo(
[in, string] LPCWSTR pszDeviceID,
[in] DWORD dwContentType,
[out, string] LPWSTR* ppszAction);
}
cpp_quote("#endif // NTDDI_VISTA")
//cpp_quote("#endif // NTDDI_WINXP")
[
uuid(19108294-0441-4AFF-8013-FA0A730B0BEA),
object
]
interface IUserNotificationCallback : IUnknown
{
// All of these return S_OK to continue, S_FALSE or other error codes to stop
// These are all "fire and forget" callbacks. Dont pump messages during these
// callbacks...
HRESULT OnBalloonUserClick([in] POINT * pt);
HRESULT OnLeftClick([in] POINT * pt);
HRESULT OnContextMenu([in] POINT * pt);
}
[
uuid(215913CC-57EB-4FAB-AB5A-E5FA7BEA2A6C),
object,
pointer_default(unique)
]
interface IUserNotification2 : IUnknown
{
HRESULT SetBalloonInfo(
[in, unique, string] LPCWSTR pszTitle,
[in, unique, string] LPCWSTR pszText,
[in] DWORD dwInfoFlags);
HRESULT SetBalloonRetry(
[in] DWORD dwShowTime, // times in msec
[in] DWORD dwInterval,
[in] UINT cRetryCount);
HRESULT SetIconInfo(
[in, unique] HICON hIcon,
[in, unique, string] LPCWSTR pszToolTip);
HRESULT Show(
[in, unique] IQueryContinue *pqc,
[in] DWORD dwContinuePollInterval,
[in, unique] IUserNotificationCallback *pSink);
HRESULT PlaySound([in, string] LPCWSTR pszSoundName);
}
cpp_quote("#if (NTDDI_VERSION >= NTDDI_VISTA)")
//-------------------------------------------------------------------------
//
// IDeskBand2 interface
//
//
// [Member functions]
//
// IDeskBand2::CanRenderComposited(pfCanRenderComposited)
// Does the deskband support composited rendering (glass/translucent)?
//
// IDeskBand2::SetCompositionState(fCompositionEnabled)
// Tell the deskband to render with or without composition.
//
// IDeskBand2::GetCompositionState(pfCompositionEnabled)
// Does the deskband currently render with or without composition?
//
//-------------------------------------------------------------------------
[
uuid(79D16DE4-ABEE-4021-8D9D-9169B261D657),
object,
]
interface IDeskBand2 : IDeskBand
{
HRESULT CanRenderComposited([out] BOOL *pfCanRenderComposited);
HRESULT SetCompositionState([in] BOOL fCompositionEnabled);
HRESULT GetCompositionState([out] BOOL *pfCompositionEnabled);
}
cpp_quote("#endif // NTDDI_VISTA")
[
uuid(4CD19ADA-25A5-4A32-B3B7-347BEE5BE36B),
object,
]
interface IStartMenuPinnedList : IUnknown
{
// if pitem is not pinned, return S_OK
// if pitem is pinned, the pitem is successfully removed from pinned list, return S_OK
// if pitem is pinned, the pitem fail to be removed from pinned list, return error HRESULT
HRESULT RemoveFromList([in] IShellItem *pitem);
}
[
object,
uuid(3d73a659-e5d0-4d42-afc0-5121ba425c8d), // IID_ICDBurn
pointer_default(unique)
]
interface ICDBurn : IUnknown
{
HRESULT GetRecorderDriveLetter(
[out, string, size_is(cch)] LPWSTR pszDrive,
[in] UINT cch);
HRESULT Burn([in] HWND hwnd);
HRESULT HasRecordableDrive([out] BOOL *pfHasRecorder);
}
// Wizard Extension objects. These interfaces defined methods for extending
// Win32 wizard in a progromatic way.
// Range of ID's that extensions can used, these mustn't clash with
// the existing wizards dialog IDS. (That enables them to still
// do PropSheet_SetCurSelByID).
cpp_quote("#define IDD_WIZEXTN_FIRST 0x5000")
cpp_quote("#define IDD_WIZEXTN_LAST 0x5100")
// This site object is requested via a QueryService of the objects site,
// it allows the extension to navigate in/out out itself, eg. when the
// extension has shown all of its pages and wants to navigate to the
// next page it would call GetNextPage and select the specified HPAGE.
// Wizard Extension Site
[
uuid(88960f5b-422f-4e7b-8013-73415381c3c3),
local
]
interface IWizardSite : IUnknown
{
HRESULT GetPreviousPage([out, annotation("_Out_")] HPROPSHEETPAGE *phpage);
HRESULT GetNextPage([out, annotation("_Out_")] HPROPSHEETPAGE *phpage);
HRESULT GetCancelledPage([out, annotation("_Out_")] HPROPSHEETPAGE *phpage);
}
cpp_quote("#define SID_WizardSite IID_IWizardSite")
// A wizard extension is implemented using this object, the extension will declare the
// pages that it supports using the AddPages method, and then when its host needs to navigate
// into the extenion it will do so via GetFirstPage and selecting that.
// Wizard Extension
[
uuid(c02ea696-86cc-491e-9b23-74394a0444a8),
local
]
interface IWizardExtension : IUnknown
{
HRESULT AddPages(
[out, size_is(cPages), annotation("_Out_writes_to_(cPages, *pnPagesAdded)")] HPROPSHEETPAGE* aPages,
[in, annotation("_In_")] UINT cPages,
[out, annotation("_Out_ _Deref_out_range_(0, cPages)")] UINT *pnPagesAdded);
HRESULT GetFirstPage([out, annotation("_Out_")] HPROPSHEETPAGE *phpage);
HRESULT GetLastPage([out, annotation("_Out_")] HPROPSHEETPAGE *phpage);
}
// The Web Wizard is a HTML host for wizard pages, it allows you
// create a HTML wizard starting at the URL defined via SetInitialURL.
// Web Wizard Page Extension
[
uuid(0e6b3f66-98d1-48c0-a222-fbde74e2fbc5),
local,
pointer_default(unique)
]
interface IWebWizardExtension : IWizardExtension
{
HRESULT SetInitialURL([in, string, annotation("_In_")] LPCWSTR pszURL);
HRESULT SetErrorURL([in, string, annotation("_In_")] LPCWSTR pszErrorURL);
}
cpp_quote("#define SID_WebWizardHost IID_IWebWizardExtension")
// flags for the host to control the publishing wizard
cpp_quote ("#define SHPWHF_NORECOMPRESS 0x00000001 // don't allow/prompt for recompress of streams")
cpp_quote ("#define SHPWHF_NONETPLACECREATE 0x00000002 // don't create a network place when transfer is complete")
cpp_quote ("#define SHPWHF_NOFILESELECTOR 0x00000004 // don't show the file selector")
cpp_quote ("#define SHPWHF_USEMRU 0x00000008 // For OPW. Use the Most-Recently-Used Print Provider")
cpp_quote ("#if (NTDDI_VERSION >= NTDDI_VISTA)")
cpp_quote ("#define SHPWHF_ANYLOCATION 0x00000100 // allow publishing to any location")
cpp_quote ("#endif // NTDDI_VISTA")
cpp_quote ("#define SHPWHF_VALIDATEVIAWEBFOLDERS 0x00010000 // enable web folders to validate network places (ANP support)")
// Web Publishing Wizard
[
uuid(aa9198bb-ccec-472d-beed-19a4f6733f7a),
local,
pointer_default(unique)
]
interface IPublishingWizard : IWizardExtension
{
HRESULT Initialize(
[in, unique, annotation("_In_opt_")] IDataObject *pdo,
[in, annotation("_In_")] DWORD dwOptions,
[in, string, annotation("_In_")] LPCWSTR pszServiceScope);
HRESULT GetTransferManifest(
[out, annotation("_Out_opt_")] HRESULT *phrFromTransfer,
[out, annotation("_Outptr_opt_")] IXMLDOMDocument **pdocManifest);
}
cpp_quote("#if (NTDDI_VERSION >= NTDDI_WINXP) || (_WIN32_IE >= _WIN32_IE_IE70)")
// Object to host an IFolderView in a window. This is used to build check mark selection
// UI for files.
// Shell Folder Host
[
uuid(1ea58f02-d55a-411d-b09e-9e65ac21605b),
local,
]
interface IFolderViewHost : IUnknown
{
HRESULT Initialize(
[in, annotation("_In_")] HWND hwndParent,
[in, annotation("_In_")] IDataObject *pdo,
[in, annotation("_In_")] RECT *prc);
}
cpp_quote("#if (_WIN32_IE >= _WIN32_IE_IE70)")
//
// This allows you to set the accessible name on COM objects that function as UI elements
//
[
uuid(95A391C5-9ED4-4c28-8401-AB9E06719E11),
object,
]
interface IAccessibleObject : IUnknown
{
HRESULT SetAccessibleName([in, string] LPCWSTR pszName);
}
cpp_quote("#endif // (_WIN32_IE >= _WIN32_IE_IE70)")
// New for Vista, but used by downlevel code
//cpp_quote("#if (NTDDI_VERSION >= NTDDI_VISTA)")
[
object,
uuid(96E5AE6D-6AE1-4b1c-900C-C6480EAA8828),
pointer_default(unique)
]
interface IResultsFolder : IUnknown
{
HRESULT AddItem([in] IShellItem *psi);
[local]
HRESULT AddIDList(
[in, annotation("_In_")] PCIDLIST_ABSOLUTE pidl,
[out, annotation("_Outptr_opt_")] PITEMID_CHILD *ppidlAdded);
[call_as(AddIDList)]
HRESULT RemoteAddIDList(
[in] PCIDLIST_ABSOLUTE pidl,
[out] PITEMID_CHILD *ppidlAdded);
HRESULT RemoveItem([in] IShellItem *psi);
HRESULT RemoveIDList([in] PCIDLIST_ABSOLUTE pidl);
HRESULT RemoveAll();
}
//cpp_quote("#endif // NTDDI_VISTA")
cpp_quote("#if (_WIN32_IE >= _WIN32_IE_IE70)")
cpp_quote("#endif // (_WIN32_IE >= _WIN32_IE_IE70)")
cpp_quote("#endif // NTDDI_WINXP || (_WIN32_IE >= _WIN32_IE_IE70)")
//
// Flags for IAutoCompleteDropDown::GetDropDownStatus
//
cpp_quote("#define ACDD_VISIBLE 0x0001")
[
uuid(3CD141F4-3C6A-11d2-BCAA-00C04FD929DB),
object,
pointer_default(unique)
]
interface IAutoCompleteDropDown : IUnknown
{
HRESULT GetDropDownStatus(
[out] DWORD *pdwFlags,
[out, string] LPWSTR *ppwszString);
HRESULT ResetEnumerator();
}
cpp_quote("#if (NTDDI_VERSION >= NTDDI_WINXP)")
// the cd burning wizard extension sets return codes through a property bag
// to tell the main wizard whether it should stop or keep going
cpp_quote("#define PROPSTR_EXTENSIONCOMPLETIONSTATE L\"ExtensionCompletionState\"")
enum tagCDBURNINGEXTENSIONRET
{
CDBE_RET_DEFAULT = 0x00000000,
CDBE_RET_DONTRUNOTHEREXTS = 0x00000001,
CDBE_RET_STOPWIZARD = 0x00000002,
};
cpp_quote("#define SID_CDWizardHost IID_ICDBurnExt")
[v1_enum] enum _CDBE_ACTIONS
{
CDBE_TYPE_MUSIC = 0x00000001,
CDBE_TYPE_DATA = 0x00000002,
CDBE_TYPE_ALL = (int) 0xFFFFFFFF
};
typedef DWORD CDBE_ACTIONS;
// add-ons for cd burning
[
uuid(2271dcca-74fc-4414-8fb7-c56b05ace2d7)
]
interface ICDBurnExt : IUnknown
{
HRESULT GetSupportedActionTypes([out] CDBE_ACTIONS *pdwActions);
}
cpp_quote("#endif // NTDDI_WINXP")
// New for XP, but used by downlevel code
//cpp_quote("#if (NTDDI_VERSION >= NTDDI_WINXP)")
[
uuid(61E00D45-8FFF-4e60-924E-6537B61612DD),
object,
pointer_default(unique),
local
]
interface IEnumReadyCallback : IUnknown
{
HRESULT EnumReady();
}
// interface between CDefView and clients like the NSC which will try to share enumeration with the view
[
uuid(8C8BF236-1AEC-495f-9894-91D57C3C686F),
local
]
interface IEnumerableView : IUnknown
{
HRESULT SetEnumReadyCallback([in, annotation("_In_")] IEnumReadyCallback *percb);
HRESULT CreateEnumIDListFromContents(
[in, annotation("_In_")] PCIDLIST_ABSOLUTE pidlFolder,
[in, annotation("_In_")] DWORD dwEnumFlags,
[out, annotation("_Outptr_")] IEnumIDList **ppEnumIDList);
}
// QueryService id find the enumerable view. One case where the QS may fail is if the view is holding on to unrealized items (requires possible I/O to get the real item).
cpp_quote("#define SID_EnumerableView IID_IEnumerableView")
//cpp_quote("#endif // NTDDI_WINXP")
cpp_quote("#if (NTDDI_VERSION >= NTDDI_WINXP) || (_WIN32_IE >= _WIN32_IE_IE70)")
// supports inserting an item into a folder
[
uuid(D2B57227-3D23-4b95-93C0-492BD454C356),
object,
local
]
interface IInsertItem : IUnknown
{
HRESULT InsertItem([in, annotation("_In_")] PCUIDLIST_RELATIVE pidl);
}
cpp_quote("#if (NTDDI_VERSION >= NTDDI_WINXP)")
[
object,
uuid(47c01f95-e185-412c-b5c5-4f27df965aea), // IID_IFolderBandPriv
pointer_default(unique)
]
interface IFolderBandPriv : IUnknown
{
HRESULT SetCascade([in] BOOL fCascade);
HRESULT SetAccelerators([in] BOOL fAccelerators);
HRESULT SetNoIcons([in] BOOL fNoIcons);
HRESULT SetNoText([in] BOOL fNoText);
}
// image recompression object, given the cx, cy and a quality that we need go through the steps
// of creating a stream that we can give to somebody containing an image that size. if the
// image is < that size then return S_FALSE.
// Image Recompression Object
[
uuid(505f1513-6b3e-4892-a272-59f8889a4d3e),
pointer_default(unique),
object
]
interface IImageRecompress : IUnknown
{
HRESULT RecompressImage(
[in] IShellItem *psi,
[in] int cx,
[in] int cy,
[in] int iQuality,
[in] IStorage *pstg,
[out] IStream **ppstrmOut);
}
cpp_quote("#endif // NTDDI_WINXP")
cpp_quote("#endif // NTDDI_WINXP) || (_WIN32_IE >= _WIN32_IE_IE70)")
cpp_quote("#if (NTDDI_VERSION >= NTDDI_VISTA)")
// Event notifications from the controls, handled by an interface
// optionally implemented by the same IFileDialogEvents object supplied by the app.
[
uuid(36116642-D713-4b97-9B83-7484A9D00433),
object,
pointer_default(unique)
]
interface IFileDialogControlEvents : IUnknown
{
// An item in a combobox, toolsmenu, or radiobutton group was selected.
// (this notification is *not* sent when an item is chosen from the open dropdown,
// as the action here is always the same: close the dialog as if the user clicked open.
// At that point, the app will then be able to call GetSelectedItem() for the open dropdown, to
// obtain the item that was chosen).
HRESULT OnItemSelected(
[in] IFileDialogCustomize *pfdc,
[in] DWORD dwIDCtl,
[in] DWORD dwIDItem);
// A pushbutton was clicked.
HRESULT OnButtonClicked(
[in] IFileDialogCustomize *pfdc,
[in] DWORD dwIDCtl);
// A checkbutton was toggled.
HRESULT OnCheckButtonToggled(
[in] IFileDialogCustomize *pfdc,
[in] DWORD dwIDCtl,
[in] BOOL bChecked);
// A combobox, toolsmenu or open dropdown is about to be "dropped down". At this point,
// the application may want to update the contents based on the current state of the dialog.
HRESULT OnControlActivating(
[in] IFileDialogCustomize *pfdc,
[in] DWORD dwIDCtl);
}
[
uuid(61744fc7-85b5-4791-a9b0-272276309b13),
object,
pointer_default(unique)
]
interface IFileDialog2 : IFileDialog
{
// Changing the text on the Cancel button can be useful for a "basket mode" where IFileDialogEvents::OnFileOk
// is used to accumulate items, and Open/Cancel would be changed to Add/Done for example.
HRESULT SetCancelButtonLabel([in] LPCWSTR pszLabel);
// Replaces any items in the navigation pane with this item instead, to guide the user from navigating outside of
// this part of the namespace.
HRESULT SetNavigationRoot([in] IShellItem *psi);
}
// Application File Extension and URL Protocol Registration UI
[
object,
uuid(1f76a169-f994-40ac-8fc8-0959e8874710),
pointer_default(unique)
]
interface IApplicationAssociationRegistrationUI : IUnknown
{
HRESULT LaunchAdvancedAssociationUI([in, string] LPCWSTR pszAppRegistryName);
}
cpp_quote("#endif // NTDDI_VISTA")
[
uuid(fce4bde0-4b68-4b80-8e9c-7426315a7388),
object,
pointer_default(ref),
local,
]
interface IShellRunDll : IUnknown
{
HRESULT Run([in, string, annotation("_In_")] LPCWSTR pszArgs);
}
[
object,
uuid(76e54780-ad74-48e3-a695-3ba9a0aff10d),
pointer_default(unique),
local
]
interface IPreviousVersionsInfo : IUnknown
{
HRESULT AreSnapshotsAvailable(
[in, string, annotation("_In_")] LPCWSTR pszPath,
[in, annotation("_In_")] BOOL fOkToBeSlow,
[out, annotation("_Out_")] BOOL *pfAvailable);
}
cpp_quote("#if (NTDDI_VERSION >= NTDDI_VISTA)")
// used to find the item that should be used when browsing to this item (used by pagespace control)
[
object,
uuid(05edda5c-98a3-4717-8adb-c5e7da991eb1),
pointer_default(unique)
]
interface IUseToBrowseItem : IRelatedItem
{
}
// and many more to come "related items"...
//
// "public partner" - like to SharedPics from MyPics
// "private partner" - link to MyPics from SharedPics
// "recyle bin root" - where (and if) recycle bin is supported
// "machine root" - for "open containing machine"
cpp_quote("#endif // NTDDI_VISTA")
// SID_SCommandBarState: {B99EAA5C-3850-4400-BC33-2CE534048BF8}
cpp_quote("DEFINE_GUID(SID_SCommandBarState, 0xB99EAA5C, 0x3850, 0x4400, 0xBC, 0x33, 0x2C, 0xE5, 0x34, 0x04, 0x8B, 0xF8);")
// New for Vista, but used by downlevel code
//cpp_quote("#if (NTDDI_VERSION >= NTDDI_VISTA)")
[
object,
uuid(7cc7aed8-290e-49bc-8945-c1401cc9306c),
]
interface INameSpaceTreeControl2 : INameSpaceTreeControl
{
typedef [v1_enum] enum NSTCSTYLE2
{
NSTCS2_DEFAULT = 0x00000000,
NSTCS2_INTERRUPTNOTIFICATIONS = 0x00000001,
NSTCS2_SHOWNULLSPACEMENU = 0x00000002,
NSTCS2_DISPLAYPADDING = 0x00000004,
NSTCS2_DISPLAYPINNEDONLY = 0x00000008, // Filters items based on PKEY_IsPinnedToNameSpaceTree
NTSCS2_NOSINGLETONAUTOEXPAND = 0x00000010, // Prevent auto expansion of singleton nodes in tree
NTSCS2_NEVERINSERTNONENUMERATED = 0x00000020, // Don't insert non-enumerated (SFGAO_NONENUMERATED) items
} NSTCSTYLE2;
cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(NSTCSTYLE2)")
HRESULT SetControlStyle(
[in] NSTCSTYLE nstcsMask,
[in] NSTCSTYLE nstcsStyle);
HRESULT GetControlStyle(
[in] NSTCSTYLE nstcsMask,
[out] NSTCSTYLE *pnstcsStyle);
HRESULT SetControlStyle2(
[in] NSTCSTYLE2 nstcsMask,
[in] NSTCSTYLE2 nstcsStyle);
HRESULT GetControlStyle2(
[in] NSTCSTYLE2 nstcsMask,
[out] NSTCSTYLE2 *pnstcsStyle);
}
cpp_quote("#define NSTCS2_ALLMASK (NSTCS2_INTERRUPTNOTIFICATIONS | NSTCS2_SHOWNULLSPACEMENU | NSTCS2_DISPLAYPADDING)")
cpp_quote("#define ISLBUTTON(x) (NSTCECT_LBUTTON == ((x) & NSTCECT_BUTTON))")
cpp_quote("#define ISMBUTTON(x) (NSTCECT_MBUTTON == ((x) & NSTCECT_BUTTON))")
cpp_quote("#define ISRBUTTON(x) (NSTCECT_RBUTTON == ((x) & NSTCECT_BUTTON))")
cpp_quote("#define ISDBLCLICK(x) (NSTCECT_DBLCLICK == ((x) & NSTCECT_DBLCLICK))")
[
object,
uuid(93D77985-B3D8-4484-8318-672CDDA002CE),
local
]
interface INameSpaceTreeControlEvents : IUnknown
{
[v1_enum] enum _NSTCEHITTEST
{
// items up to 0x00ff reflect the TVHITTESTINFO flags
NSTCEHT_NOWHERE = 0x0001,
NSTCEHT_ONITEMICON = 0x0002,
NSTCEHT_ONITEMLABEL = 0x0004,
NSTCEHT_ONITEMINDENT = 0x0008,
NSTCEHT_ONITEMBUTTON = 0x0010,
NSTCEHT_ONITEMRIGHT = 0x0020,
NSTCEHT_ONITEMSTATEICON = 0x0040,
NSTCEHT_ONITEM = 0x0046,
// items below don't reflect the TVHITTESTINFO flags
NSTCEHT_ONITEMTABBUTTON = 0x1000,
};
typedef DWORD NSTCEHITTEST;
[v1_enum] enum _NSTCECLICKTYPE
{
NSTCECT_LBUTTON = 0x0001,
NSTCECT_MBUTTON = 0x0002,
NSTCECT_RBUTTON = 0x0003,
NSTCECT_BUTTON = 0x0003,
NSTCECT_DBLCLICK = 0x0004,
};
typedef DWORD NSTCECLICKTYPE;
HRESULT OnItemClick(
[in, annotation("_In_")] IShellItem *psi,
[in, annotation("_In_")] NSTCEHITTEST nstceHitTest,
[in, annotation("_In_")] NSTCECLICKTYPE nstceClickType);
HRESULT OnPropertyItemCommit([in, annotation("_In_")] IShellItem *psi);
HRESULT OnItemStateChanging(
[in, annotation("_In_")] IShellItem *psi,
[in, annotation("_In_")] NSTCITEMSTATE nstcisMask,
[in, annotation("_In_")] NSTCITEMSTATE nstcisState);
HRESULT OnItemStateChanged(
[in, annotation("_In_")] IShellItem *psi,
[in, annotation("_In_")] NSTCITEMSTATE nstcisMask,
[in, annotation("_In_")] NSTCITEMSTATE nstcisState);
HRESULT OnSelectionChanged([in, annotation("_In_")] IShellItemArray *psiaSelection);
HRESULT OnKeyboardInput(
[in, annotation("_In_")] UINT uMsg,
[in, annotation("_In_")] WPARAM wParam,
[in, annotation("_In_")] LPARAM lParam);
HRESULT OnBeforeExpand([in, annotation("_In_")] IShellItem *psi);
HRESULT OnAfterExpand([in, annotation("_In_")] IShellItem *psi);
HRESULT OnBeginLabelEdit([in, annotation("_In_")] IShellItem *psi);
HRESULT OnEndLabelEdit([in, annotation("_In_")] IShellItem *psi);
HRESULT OnGetToolTip(
[in, annotation("_In_")] IShellItem *psi,
[out, string, size_is(cchTip), annotation("_Out_writes_(cchTip)")] LPWSTR pszTip,
[in, annotation("_In_")] int cchTip);
HRESULT OnBeforeItemDelete([in, annotation("_In_")] IShellItem *psi);
HRESULT OnItemAdded(
[in, annotation("_In_")] IShellItem *psi,
[in, annotation("_In_")] BOOL fIsRoot);
HRESULT OnItemDeleted(
[in, annotation("_In_")] IShellItem *psi,
[in, annotation("_In_")] BOOL fIsRoot);
HRESULT OnBeforeContextMenu(
[in, unique, annotation("_In_opt_")] IShellItem *psi,
[in, annotation("_In_")] REFIID riid,
[out, iid_is(riid), annotation("_Outptr_")] void **ppv);
// psi can only be NULL if NSTCS2_SHOWNULLSPACEMENU is set
HRESULT OnAfterContextMenu(
[in, annotation("_In_opt_")] IShellItem *psi,
[in, annotation("_In_")] IContextMenu *pcmIn,
[in, annotation("_In_")] REFIID riid,
[out, iid_is(riid), annotation("_Outptr_")] void **ppv);
HRESULT OnBeforeStateImageChange([in, annotation("_In_")] IShellItem *psi);
HRESULT OnGetDefaultIconIndex(
[in, annotation("_In_")] IShellItem *psi,
[out, annotation("_Out_")] int *piDefaultIcon,
[out, annotation("_Out_")] int *piOpenIcon);
}
cpp_quote("#define NSTCDHPOS_ONTOP -1")
[
object,
uuid(F9C665D6-C2F2-4c19-BF33-8322D7352F51),
local
]
interface INameSpaceTreeControlDropHandler : IUnknown
{
HRESULT OnDragEnter(
[in, unique, annotation("_In_opt_")] IShellItem *psiOver,
[in, annotation("_In_")] IShellItemArray *psiaData,
[in, annotation("_In_")] BOOL fOutsideSource,
[in, annotation("_In_")] DWORD grfKeyState,
[in, out, annotation("_Inout_")] DWORD *pdwEffect);
HRESULT OnDragOver(
[in, unique, annotation("_In_opt_")] IShellItem *psiOver,
[in, annotation("_In_")] IShellItemArray *psiaData,
[in, annotation("_In_")] DWORD grfKeyState,
[in, out, annotation("_Inout_")] DWORD *pdwEffect);
HRESULT OnDragPosition(
[in, unique, annotation("_In_opt_")] IShellItem *psiOver,
[in, annotation("_In_")] IShellItemArray *psiaData,
[in, annotation("_In_")] int iNewPosition,
[in, annotation("_In_")] int iOldPosition);
HRESULT OnDrop(
[in, unique, annotation("_In_opt_")] IShellItem *psiOver,
[in, annotation("_In_")] IShellItemArray *psiaData,
[in, annotation("_In_")] int iPosition,
[in, annotation("_In_")] DWORD grfKeyState,
[in, out, annotation("_Inout_")] DWORD *pdwEffect);
HRESULT OnDropPosition(
[in, unique, annotation("_In_opt_")] IShellItem *psiOver,
[in, annotation("_In_")] IShellItemArray *psiaData,
[in, annotation("_In_")] int iNewPosition,
[in, annotation("_In_")] int iOldPosition);
HRESULT OnDragLeave([in, unique, annotation("_In_opt_")] IShellItem *psiOver);
}
[
object,
uuid(71f312de-43ed-4190-8477-e9536b82350b),
local
]
interface INameSpaceTreeAccessible : IUnknown
{
HRESULT OnGetDefaultAccessibilityAction(
[in, annotation("_In_")] IShellItem *psi,
[out, annotation("_Outptr_")] BSTR *pbstrDefaultAction);
HRESULT OnDoDefaultAccessibilityAction([in, annotation("_In_")] IShellItem *psi);
HRESULT OnGetAccessibilityRole(
[in, annotation("_In_")] IShellItem *psi,
[out, annotation("_Out_")] VARIANT *pvarRole);
}
[
object,
uuid(2D3BA758-33EE-42d5-BB7B-5F3431D86C78),
local
]
interface INameSpaceTreeControlCustomDraw : IUnknown
{
typedef struct NSTCCUSTOMDRAW
{
IShellItem *psi;
UINT uItemState; // CDIS_xxx values
NSTCITEMSTATE nstcis;
LPCWSTR pszText;
int iImage;
HIMAGELIST himl;
int iLevel;
int iIndent;
} NSTCCUSTOMDRAW;
HRESULT PrePaint(
[in, annotation("_In_")] HDC hdc,
[in, annotation("_In_")] RECT *prc,
[out, annotation("_Out_")] LRESULT *plres);
HRESULT PostPaint(
[in, annotation("_In_")] HDC hdc,
[in, annotation("_In_")] RECT *prc);
HRESULT ItemPrePaint(
[in, annotation("_In_")] HDC hdc,
[in, annotation("_In_")] RECT *prc,
[in, annotation("_In_")] NSTCCUSTOMDRAW *pnstccdItem,
[in, out, annotation("_Inout_")] COLORREF *pclrText,
[in, out, annotation("_Inout_")] COLORREF *pclrTextBk,
[out, annotation("_Out_")] LRESULT *plres);
HRESULT ItemPostPaint(
[in, annotation("_In_")] HDC hdc,
[in, annotation("_In_")] RECT *prc,
[in, annotation("_In_")] NSTCCUSTOMDRAW *pnstccdItem);
}
//cpp_quote("#endif // NTDDI_VISTA")
cpp_quote("#if (NTDDI_VERSION >= NTDDI_VISTA)")
//
// for show/hide deskbands
//
[
object,
uuid(6D67E846-5B9C-4db8-9CBC-DDE12F4254F1),
pointer_default(unique)
]
interface ITrayDeskBand : IUnknown
{
HRESULT ShowDeskBand([in] REFCLSID clsid);
HRESULT HideDeskBand([in] REFCLSID clsid);
HRESULT IsDeskBandShown([in] REFCLSID clsid);
HRESULT DeskBandRegistrationChanged();
}
[
uuid(B9075C7C-D48E-403f-AB99-D6C77A1084AC),
object,
pointer_default(unique)
]
interface IBandHost : IUnknown
{
HRESULT CreateBand(
[in] REFCLSID rclsidBand,
[in] BOOL fAvailable,
[in] BOOL fVisible,
[in] REFIID riid,
[out, iid_is(riid)]void **ppv);
HRESULT SetBandAvailability(
[in] REFCLSID rclsidBand,
[in] BOOL fAvailable);
HRESULT DestroyBand([in] REFCLSID rclsidBand);
}
cpp_quote("#define SID_SBandHost IID_IBandHost")
cpp_quote("#endif // NTDDI_VISTA")
[
object,
uuid(0DF60D92-6818-46d6-B358-D66170DDE466),
pointer_default(unique)
]
interface IComputerInfoChangeNotify : IUnknown
{
HRESULT ComputerInfoChanged();
}
cpp_quote("#if (NTDDI_VERSION >= NTDDI_WIN7)")
cpp_quote("#endif // NTDDI_WIN7")
[
object,
uuid(c1646bc4-f298-4f91-a204-eb2dd1709d1a),
]
interface IDesktopGadget : IUnknown
{
HRESULT RunGadget([in] LPCWSTR gadgetPath);
}
cpp_quote("#if (NTDDI_VERSION >= NTDDI_WINTHRESHOLD)")
cpp_quote("#endif // NTDDI_WINTHRESHOLD")
//
// NOTE - this typelib is never registered anywhere
// objects that want their typelibs to be registered
// in shell32 should add their coclass to shldisp.idl
//
// Microsoft Shell Objects
[
uuid(50a7e9b1-70ef-11d1-b75a-00a0c90564fe), // LIBID_ShellObjects
lcid(0x0000),
version(1.0)
]
library ShellObjects
{
// CLSID_QueryCancelAutoPlay
[ uuid(331F1768-05A9-4ddd-B86E-DAE34DDC998A) ] coclass QueryCancelAutoPlay { interface IQueryCancelAutoPlay; }
// CLSID_TimeCategorizer
[ uuid(3bb4118f-ddfd-4d30-a348-9fb5d6bf1afe) ] coclass TimeCategorizer { interface ICategorizer; }
// CLSID_AlphabeticalCategorizer
[ uuid(3c2654c6-7372-4f6b-b310-55d6128f49d2) ] coclass AlphabeticalCategorizer { interface ICategorizer; }
// CLSID_MergedCategorizer
[ uuid(8e827c11-33e7-4bc1-b242-8cd9a1c2b304) ] coclass MergedCategorizer { interface ICategorizer; }
// CLSID_ImageProperties
[ uuid(7ab770c7-0e23-4d7a-8aa2-19bfad479829) ] coclass ImageProperties { interface IPersistFile; }
// CLSID_CDBurn
[ uuid(fbeb8a05-beee-4442-804e-409d6c4515e9) ] coclass CDBurn { interface ICDBurn; }
// CLSID_StartMenuPin
[ uuid(a2a9545d-a0c2-42b4-9708-a0b2badd77c8) ] coclass StartMenuPin { interface IStartMenuPinnedList; }
// For supporting HTML wizard extensions we provide this object, it implements the IWizardExtenion
// and allows the site to specific via an IPropertyBag an URL which should be displayed. The property
// bag is requested from the SID_WebWizardHost, and it used inturn to return parameter information
// back to the site (eg. any information that the displayed HTML would like to communicate).
// CLSID_WebWizardHost
[ uuid(c827f149-55c1-4d28-935e-57e47caed973) ] coclass WebWizardHost { interface IWebWizardExtension; }
// CLSID_PublishDropTarget
[ uuid(CC6EEFFB-43F6-46c5-9619-51D571967F7D) ] coclass PublishDropTarget { interface IDropTarget; }
// CLSID_PublishingWizard
[ uuid(6b33163c-76a5-4b6c-bf21-45de9cd503a1) ] coclass PublishingWizard { interface IPublishingWizard; }
cpp_quote("#define SID_PublishingWizard CLSID_PublishingWizard")
// CLSID_InternetPrintOrdering
[ uuid(add36aa8-751a-4579-a266-d66f5202ccbb) ] coclass InternetPrintOrdering { interface IDropTarget; }
// CLSID_FolderViewHost
[ uuid(20b1cb23-6968-4eb9-b7d4-a66d00d07cee) ] coclass FolderViewHost { interface IFolderViewHost; }
// CLSID_ExplorerBrowser
[ uuid(71f96385-ddd6-48d3-a0c1-ae06e8b055fb) ] coclass ExplorerBrowser { interface IExplorerBrowser; }
// CLSID_ImageRecompress
[ uuid(6e33091c-d2f8-4740-b55e-2e11d1477a2c) ] coclass ImageRecompress { interface IImageRecompress; }
// CLSID_TrayBandSiteService
[ uuid(F60AD0A0-E5E1-45cb-B51A-E15B9F8B2934) ] coclass TrayBandSiteService { interface IBandSite; }
// CLSID_TrayDeskBand
[ uuid(E6442437-6C68-4f52-94DD-2CFED267EFB9) ] coclass TrayDeskBand { interface ITrayDeskBand; }
// CLSID_AttachmentServices
[ uuid(4125dd96-e03a-4103-8f70-e0597d803b9c) ] coclass AttachmentServices { interface IAttachmentExecute; }
// CLSID_DocPropShellExtension
[ uuid(883373C3-BF89-11D1-BE35-080036B11A03) ] coclass DocPropShellExtension { interface IShellExtInit; }
// CLSID_FSCopyHandler
[ uuid(D197380A-0A79-4dc8-A033-ED882C2FA14B) ] coclass FSCopyHandler { interface IUnknown; }
// CLSID_PreviousVersions
[ uuid(596AB062-B4D2-4215-9F74-E9109B0A8153) ] coclass PreviousVersions { interface IPreviousVersionsInfo; }
// CLSID_NamespaceTreeControl
[ uuid(AE054212-3535-4430-83ED-D501AA6680E6) ] coclass NamespaceTreeControl { interface INameSpaceTreeControl2; }
// CLSID_IENamespaceTreeControl
[ uuid(ACE52D03-E5CD-4b20-82FF-E71B11BEAE1D) ] coclass IENamespaceTreeControl { interface IUnknown; }
// CLSID_ApplicationAssociationRegistrationUI
[ uuid(1968106d-f3b5-44cf-890e-116fcb9ecef1) ] coclass ApplicationAssociationRegistrationUI { interface IApplicationAssociationRegistrationUI; }
// CLSID_DesktopGadget
[ uuid(924ccc1b-6562-4c85-8657-d177925222b6) ] coclass DesktopGadget { interface IDesktopGadget; }
// CLSID_AccessibilityDockingService
[ uuid(29CE1D46-B481-4AA0-A08A-D3EBC8ACA402) ] coclass AccessibilityDockingService { interface IAccessibilityDockingService; }
// CLSID_ExecuteFolder
[ uuid(11dbb47c-a525-400b-9e80-a54615a090c0) ] coclass ExecuteFolder { interface IExecuteCommand; }
// CLSID_VirtualDesktopManager
[ uuid(aa509086-5ca9-4c25-8f95-589d3c07b48a) ] coclass VirtualDesktopManager { interface IVirtualDesktopManager; }
// CLSID_StorageProviderBanners
[uuid(7CCDF9F4-E576-455A-8BC7-F6EC68D6F063)] coclass StorageProviderBanners { interface IStorageProviderBanners; }
};
// helper APIs to simplify initializing an instance of IShellLibrary and working with file system paths
cpp_quote("#if (NTDDI_VERSION >= NTDDI_WIN7)")
cpp_quote("#if (_WIN32_IE >= _WIN32_IE_IE70)")
cpp_quote("#if defined(__cplusplus) && !defined(CINTERFACE)")
cpp_quote("")
cpp_quote("// These functions properly initialize their _Outptr_ parameters to NULL, and only return NULL")
cpp_quote("// on failure, but /analyze can't presently distinguish the failure case from the success case, and")
cpp_quote("// throws warning C6387 anyway. Thus, the warning is disabled to avoid generating noise for code")
cpp_quote("// that includes shobjidl.h and compiles with /analyze.")
cpp_quote("#pragma warning(push)")
cpp_quote("#pragma warning(disable:6387)")
cpp_quote("__inline HRESULT SHResolveFolderPathInLibrary(_In_ IShellLibrary *plib, _In_ PCWSTR pszFolderPath, _In_ DWORD dwTimeout, _Outptr_ PWSTR *ppszResolvedPath)")
cpp_quote("{")
cpp_quote(" *ppszResolvedPath = NULL;")
cpp_quote(" PIDLIST_ABSOLUTE pidlFolder = SHSimpleIDListFromPath(pszFolderPath);")
cpp_quote(" HRESULT hr = pidlFolder ? S_OK : E_INVALIDARG;")
cpp_quote(" if (SUCCEEDED(hr))")
cpp_quote(" {")
cpp_quote(" IShellItem *psiFolder;")
cpp_quote(" hr = SHCreateItemFromIDList(pidlFolder, IID_PPV_ARGS(&psiFolder));")
cpp_quote(" if (SUCCEEDED(hr))")
cpp_quote(" {")
cpp_quote(" IShellItem *psiResolved;")
cpp_quote(" hr = plib->ResolveFolder(psiFolder, dwTimeout, IID_PPV_ARGS(&psiResolved));")
cpp_quote(" if (SUCCEEDED(hr))")
cpp_quote(" {")
cpp_quote(" hr = psiResolved->GetDisplayName(SIGDN_DESKTOPABSOLUTEPARSING, ppszResolvedPath);")
cpp_quote(" psiResolved->Release();")
cpp_quote(" }")
cpp_quote(" psiFolder->Release();")
cpp_quote(" }")
cpp_quote(" CoTaskMemFree(pidlFolder);")
cpp_quote(" }")
cpp_quote(" return hr;")
cpp_quote("}")
cpp_quote("")
cpp_quote("#pragma warning(pop)")
cpp_quote("#endif // __cplusplus && !CINTERFACE")
cpp_quote("#endif // _WIN32_IE >= _WIN32_IE_IE70")
cpp_quote("#endif // NTDDI_WIN7")
cpp_quote("")
cpp_quote("#if (NTDDI_VERSION >= NTDDI_WIN8)")
// Accessibility Docking Service
// This service allows an accessibility window to dock itself to the bottom of
// the app monitor. This API ensures that when the docking has completed,
// the accessibility window is no longer obscuring/overlaying any of the user's applications or other windows
// A sample scenario:
// The user has an accessibility keyboard that is currently a floating window. Since it is above all other windows,
// it's obsuring the user's applications. The user presses the "dock" button on the keyboard, which causes it to dock
// to bottom of the screen. Tailored experiences and most desktop applications are moved so that they are no
// longer obscured by keyboard.
typedef [v1_enum] enum UNDOCK_REASON
{
UR_RESOLUTION_CHANGE = 0, // The accessibility window has been undocked because the resolution has changed
UR_MONITOR_DISCONNECT = 1, // Undocked because the monitor was disconnected
} UNDOCK_REASON;
// Developers who are interested in using the Accessibility Docking Service
// will need to implement this interface. This is the interface on which apps will receive undock notifications
// that happen in response to certain system events (listed in the enumeration above)
[
object,
uuid(157733FD-A592-42E5-B594-248468C5A81B)
]
interface IAccessibilityDockingServiceCallback : IUnknown
{
HRESULT Undocked([in] UNDOCK_REASON undockReason); // Called when the accessibility window has been undocked
}
// Developers who are interested in using the Accessibility Docking Service
// do not need to implement the following interface. An implementation is provided through the CoCreatable Object
// with the ID CLSID_AccessibilityDockingService
[
object,
uuid(8849DC22-CEDF-4C95-998D-051419DD3F76)
]
interface IAccessibilityDockingService : IUnknown
{
// This is used to get the available docking size (Fixed Width, Max Height) on a particular monitor
// The units passed back are in screen pixels
HRESULT GetAvailableSize([in] HMONITOR hMonitor, [out] UINT *pcxFixed, [out] UINT *pcyMax);
// This is used to dock a window into the bottom of a monitor while the system is in immersive mode
// The requested height is in screen pixels
HRESULT DockWindow([in] HWND hwnd, [in] HMONITOR hMonitor, [in] UINT cyRequested, [in] IAccessibilityDockingServiceCallback *pCallback);
// This undocks the passed in window
HRESULT UndockWindow([in] HWND hwnd);
}
cpp_quote("#endif // NTDDI_WIN8")
cpp_quote("#if (NTDDI_VERSION >= NTDDI_WIN10_RS4)")
// StorageProviderBanners implements this interface.
// Interface can obtained by instantiating StorageProviderBanners using CoCreateInstance with CLSID_StorageProviderBanners as an inproc server.
[
object,
uuid(5efb46d7-47C0-4b68-acda-ded47c90ec91),
pointer_default(unique),
]
interface IStorageProviderBanners : IUnknown
{
HRESULT SetBanner([in] LPCWSTR providerIdentity, [in] LPCWSTR subscriptionId, [in] LPCWSTR contentId);
HRESULT ClearBanner([in] LPCWSTR providerIdentity, [in] LPCWSTR subscriptionId);
HRESULT ClearAllBanners([in] LPCWSTR providerIdentity);
HRESULT GetBanner([in] LPCWSTR providerIdentity, [in] LPCWSTR subscriptionId, [out] LPWSTR* contentId);
}
cpp_quote("#endif // NTDDI_WIN10_RS4")
cpp_quote("#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */")
#pragma endregion
cpp_quote("#if _MSC_VER >= 1200")
cpp_quote("#pragma warning(pop)")
cpp_quote("#endif")