[PATCH 2/8] include: Add IShellItemArray and IShellItemFilter interface declarations. (resend)

David Hedberg david.hedberg at gmail.com
Tue Jul 20 09:39:07 CDT 2010


My previous attempt involved adding the mmdeviceapi-related GUID's to
libuuid, but this seem to be the cleaner solution.
---
 dlls/mmdevapi/main.c |    2 +
 include/shobjidl.idl |   72 +++++++++++++++++++++++++++++++++++++++++++++++++-
 2 files changed, 73 insertions(+), 1 deletions(-)

diff --git a/dlls/mmdevapi/main.c b/dlls/mmdevapi/main.c
index 18d8f80..c8fcea0 100644
--- a/dlls/mmdevapi/main.c
+++ b/dlls/mmdevapi/main.c
@@ -38,7 +38,9 @@
 
 #include "ole2.h"
 #include "olectl.h"
+#include "propsys.h"
 #include "initguid.h"
+#include "propkeydef.h"
 #include "mmdeviceapi.h"
 #include "dshow.h"
 #include "dsound.h"
diff --git a/include/shobjidl.idl b/include/shobjidl.idl
index 9200b10..288e62c 100644
--- a/include/shobjidl.idl
+++ b/include/shobjidl.idl
@@ -30,7 +30,7 @@ import "propidl.idl";
 /* FIXME: import "prsht.idl";*/
 import "msxml.idl";
 import "wtypes.idl";
-/* FIXME: import "propsys.idl"; */
+import "propsys.idl";
 /* FIXME: import "structuredquery.idl"; */
 
 cpp_quote("/* FIXME: #include <sherrors.h> */")
@@ -444,6 +444,76 @@ interface IEnumShellItems : IUnknown
 }
 
 /*****************************************************************************
+ * IShellItemArray interface
+ */
+[
+ object,
+ uuid(B63EA76D-1F85-456F-A19C-48159EFA858B),
+ pointer_default(unique)
+]
+interface IShellItemArray : IUnknown
+{
+    typedef [v1_enum] enum SIATTRIBFLAGS {
+        SIATTRIBFLAGS_AND            = 0x0001,
+        SIATTRIBFLAGS_OR             = 0x0002,
+        SIATTRIBFLAGS_APPCOMPAT      = 0x0003,
+        SIATTRIBFLAGS_MASK           = 0x0003,
+        SIATTRIBFLAGS_ALLITEMS       = 0x4000
+    } SIATTRIBFLAGS;
+    cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(SIATTRIBFLAGS)")
+
+    HRESULT BindToHandler(
+        [in, unique] IBindCtx *pbc,
+        [in] REFGUID bhid,
+        [in] REFIID riid,
+        [out, iid_is(riid)] void **ppvOut);
+
+    HRESULT GetPropertyStore(
+        [in] GETPROPERTYSTOREFLAGS flags,
+        [in] REFIID riid,
+        [out, iid_is(riid)] void **ppv);
+
+    HRESULT GetPropertyDescriptionList(
+        [in] REFPROPERTYKEY keyType,
+        [in] REFIID riid,
+        [out, iid_is(riid)] void **ppv);
+
+    HRESULT GetAttributes(
+        [in] SIATTRIBFLAGS AttribFlags,
+        [in] SFGAOF sfgaoMask,
+        [out] SFGAOF *psfgaoAttribs);
+
+    HRESULT GetCount(
+        [out] DWORD *pdwNumItems);
+
+    HRESULT GetItemAt(
+        [in] DWORD dwIndex,
+        [out] IShellItem **ppsi);
+
+    HRESULT EnumItems(
+        [out] IEnumShellItems **ppenumShellItems);
+
+}
+
+/*****************************************************************************
+ * IShellItemFilter interface
+ */
+[
+ object,
+ uuid(2659B475-EEB8-48B7-8F07-B378810F48CF),
+ pointer_default(unique)
+]
+interface IShellItemFilter : IUnknown
+{
+    HRESULT IncludeItem(
+        [in] IShellItem *psi);
+
+    HRESULT GetEnumFlagsForItem(
+        [in] IShellItem *psi,
+        [out] SHCONTF *pgrfFlags);
+}
+
+/*****************************************************************************
  * FOLDERSETTINGS
  */
 typedef char *LPVIEWSETTINGS;
-- 
1.7.1.1




More information about the wine-patches mailing list