[SHELL] IPersistFolder2::GetCurFolder takes a PIDLIST_ABSOLUTE*. CORE-16385
[reactos.git] / sdk / include / psdk / shobjidl.idl
index 5590163..7c2aab3 100644 (file)
@@ -36,6 +36,10 @@ import "objectarray.idl";
 
 cpp_quote("/* FIXME: #include <sherrors.h> */")
 
+cpp_quote("#ifdef WINE_NO_UNICODE_MACROS")
+cpp_quote("#undef PlaySound")
+cpp_quote("#endif")
+
 
 /*****************************************************************************
  * IPersistFolder interface
@@ -65,7 +69,7 @@ interface IPersistFolder2 : IPersistFolder
 {
     typedef IPersistFolder2 *LPPERSISTFOLDER2;
 
-    HRESULT GetCurFolder( [out] LPITEMIDLIST *ppidl );
+    HRESULT GetCurFolder( [out] PIDLIST_ABSOLUTE *ppidl );
 }
 
 
@@ -2196,6 +2200,156 @@ interface IDefaultExtractIconInit : IUnknown
                        [in] int iIcon);
 }
 
+
+#ifdef __REACTOS__
+/*****************************************************************************
+ * IExplorerCommand interface (Vista+)
+ */
+
+interface IEnumExplorerCommand;
+
+[
+    uuid(A08CE4D0-FA25-44AB-B57C-C7B1C323E0B9),
+    pointer_default(unique)
+]
+interface IExplorerCommand : IUnknown
+{
+    cpp_quote("// GetIcon(ppszIcon) Receives resource string that identifies icon source")
+    typedef [v1_enum] enum _EXPCMDSTATE
+    {
+        ECS_ENABLED         = 0x000,
+        ECS_DISABLED        = 0x001,
+        ECS_HIDDEN          = 0x002,
+        ECS_CHECKBOX        = 0x004,
+        ECS_CHECKED         = 0x008,
+        ECS_RADIOCHECK      = 0x010,    // Windows 7
+    } EXPCMDSTATE;
+
+    typedef [v1_enum] enum _EXPCMDFLAGS
+    {
+        ECF_DEFAULT         = 0x000,
+        ECF_HASSUBCOMMANDS  = 0x001,
+        ECF_HASSPLITBUTTON  = 0x002,
+        ECF_HIDELABEL       = 0x004,
+        ECF_ISSEPARATOR     = 0x008,
+        ECF_HASLUASHIELD    = 0x010,
+        ECF_SEPARATORBEFORE = 0x020,    // Windows 7
+        ECF_SEPARATORAFTER  = 0x040,    // Windows 7
+        ECF_ISDROPDOWN      = 0x080,    // Windows 7
+        ECF_TOGGLEABLE      = 0x100,    // Windows 8
+        ECF_AUTOMENUICONS   = 0x200,    // Windows 8
+    } EXPCMDFLAGS;
+
+    HRESULT GetTitle(
+                    [in, unique] IShellItemArray *psiItemArray,
+                    [out, string] LPWSTR *ppszName);
+    HRESULT GetIcon(
+                    [in, unique] IShellItemArray *psiItemArray,
+                    [out, string] LPWSTR *ppszIcon);
+    HRESULT GetToolTip(
+                    [in, unique] IShellItemArray *psiItemArray,
+                    [out, string] LPWSTR *ppszInfotip);
+    HRESULT GetCanonicalName(
+                    [out] GUID* pguidCommandName);
+    HRESULT GetState(
+                    [in] IShellItemArray *psiItemArray,
+                    [in] BOOL fOkToBeSlow,
+                    [out] EXPCMDSTATE *pCmdState);
+    HRESULT Invoke(
+                    [in] IShellItemArray *psiItemArray,
+                    [in, unique] IBindCtx *pbc);
+    HRESULT GetFlags(
+                    [out] EXPCMDFLAGS *pFlags);
+    HRESULT EnumSubCommands(
+                    [out] IEnumExplorerCommand **ppEnum);
+};
+
+
+/*****************************************************************************
+ * IExplorerCommandState interface (Vista+)
+ */
+[
+    object,
+    uuid(BDDACB60-7657-47AE-8445-D23E1ACF82AE),
+    pointer_default(unique)
+]
+interface IExplorerCommandState : IUnknown
+{
+    HRESULT GetState(
+                    [in] IShellItemArray *psiItemArray,
+                    [in] BOOL fOkToBeSlow,
+                    [out] EXPCMDSTATE *pCmdState);
+}
+
+
+/*****************************************************************************
+ * IInitializeCommand interface (Vista+)
+ */
+[
+    object,
+    uuid(85075ACF-231F-40EA-9610-D26B7B58F638),
+    pointer_default(unique)
+]
+interface IInitializeCommand : IUnknown
+{
+    HRESULT Initialize(
+                    [in, string] LPCWSTR pszCommandName,
+                    [in] IPropertyBag *ppb);
+}
+
+
+/*****************************************************************************
+ * IEnumExplorerCommand interface (Vista+)
+ */
+[
+    object,
+    uuid(A88826F8-186F-4987-AADE-EA0CEF8FBFE8),
+    pointer_default(unique)
+]
+interface IEnumExplorerCommand : IUnknown
+{
+    [local]
+    HRESULT Next(
+                    [in] ULONG celt,
+                    [out] IExplorerCommand** pUICommand,
+                    [out, optional] ULONG *pceltFetched);
+    [call_as(Next)]
+    HRESULT RemoteNext(
+                    [in] ULONG celt,
+                    [out] IExplorerCommand** pUICommand,
+                    [out, optional] ULONG *pceltFetched);
+    HRESULT Skip(
+                    [in] ULONG celt);
+    HRESULT Reset();
+    HRESULT Clone(
+                    [out] IEnumExplorerCommand **ppenum);
+};
+
+
+/*****************************************************************************
+ * IExplorerCommandProvider interface (Vista+)
+ */
+[
+    uuid(64961751-0835-43C0-8FFE-D57686530E64),
+    pointer_default(unique)
+]
+interface IExplorerCommandProvider : IUnknown
+{
+    cpp_quote("// GetCommands usually creates an IEnumExplorerCommand")
+    cpp_quote("// GetCommand usually creates an IExplorerCommand")
+
+    HRESULT GetCommands(
+                    [in] IUnknown *punkSite,
+                    [in] REFIID riid,
+                    [out, iid_is(riid)] void **ppv);
+    HRESULT GetCommand(
+                    [in] REFGUID rguidCommandId,
+                    [in] REFIID riid,
+                    [out, iid_is(riid)] void **ppv);
+};
+
+#endif // __REACTOS__
+
 /*****************************************************************************
  * IDeskBand interface
  */
@@ -4282,6 +4436,17 @@ library ShellObjects
     {
         interface IApplicationActivationManager;
     }
+
+#ifdef __REACTOS__
+    [
+        uuid(0010890e-8789-413c-adbc-48f5b511b3af)
+    ]
+    coclass UserNotification
+    {
+        interface IUserNotification;
+    }
+#endif // __REACTOS__
+
 }
 
 enum _OPPROGDLGF
@@ -4458,3 +4623,126 @@ interface IShellTaskScheduler : IUnknown
         [in] DWORD dwReleaseStatus, 
         [in] DWORD dwThreadTimeout);
 }
+
+
+[
+    uuid(47c01f95-e185-412c-b5c5-4f27df965aea),
+    object,
+    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);
+}
+
+
+#ifdef __REACTOS__
+/*****************************************************************************
+ * IQueryContinue interface
+ */
+
+[
+    uuid(7307055c-b24a-486b-9f25-163e597a28a9),
+    object,
+    pointer_default(unique)
+]
+interface IQueryContinue : IUnknown
+{
+    // Returns S_OK if the operation should continue, and S_FALSE if not.
+    HRESULT QueryContinue();
+}
+
+
+/*****************************************************************************
+ * IUserNotification interface
+ */
+
+[
+    uuid(ba9711ba-5893-4787-a7e1-41277151550b),
+    object,
+    pointer_default(unique)
+]
+interface IUserNotification : IUnknown
+{
+    HRESULT SetBalloonInfo(
+        [in, unique, string] LPCWSTR pszTitle,
+        [in, unique, string] LPCWSTR pszText,
+        [in] DWORD dwInfoFlags);
+
+    HRESULT SetBalloonRetry(
+        [in] DWORD dwShowTime,  // Time intervals in milliseconds
+        [in] DWORD dwInterval,
+        [in] UINT cRetryCount);
+
+    HRESULT SetIconInfo(
+        [in, unique] HICON hIcon,
+        [in, unique, string] LPCWSTR pszToolTip);
+
+    // Blocks until the notification times out.
+    HRESULT Show(
+        [in, unique] IQueryContinue *pqc,
+        [in] DWORD dwContinuePollInterval);
+
+    HRESULT PlaySound(
+        [in, string] LPCWSTR pszSoundName);
+};
+
+
+/*****************************************************************************
+ * IUserNotificationCallback interface (Vista+)
+ */
+
+[
+    uuid(19108294-0441-4aff-8013-fa0a730b0bea),
+    object
+]
+interface IUserNotificationCallback : IUnknown
+{
+    HRESULT OnBalloonUserClick([in] POINT * pt);
+    HRESULT OnLeftClick([in] POINT * pt);
+    HRESULT OnContextMenu([in] POINT * pt);
+};
+
+
+/*****************************************************************************
+ * IUserNotification2 interface (Vista+)
+ */
+
+[
+    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,  // Time intervals in milliseconds
+        [in] DWORD dwInterval,
+        [in] UINT cRetryCount);
+
+    HRESULT SetIconInfo(
+        [in, unique] HICON hIcon,
+        [in, unique, string] LPCWSTR pszToolTip);
+
+    // Blocks until the notification times out.
+    HRESULT Show(
+        [in, unique] IQueryContinue *pqc,
+        [in] DWORD dwContinuePollInterval,
+        [in, unique] IUserNotificationCallback *pSink);
+
+    HRESULT PlaySound(
+        [in, string] LPCWSTR pszSoundName);
+};
+
+#endif // __REACTOS__