Added IFileSystemBindData implementation.

diff --git a/include/shlobj.h b/include/shlobj.h
index 8f707b9..8901dd2 100644
--- a/include/shlobj.h
+++ b/include/shlobj.h
@@ -38,7 +38,6 @@
 BOOL WINAPI SHGetPathFromIDListW (LPCITEMIDLIST pidl,LPWSTR pszPath);
 #define     SHGetPathFromIDList WINELIB_NAME_AW(SHGetPathFromIDList)
 
-
 /*****************************************************************************
  * Predeclare interfaces
  */
@@ -651,6 +650,84 @@
 
 #include <poppack.h> 
 
+/*****************************************************************************
+ * IFileSystemBindData interface
+ */
+#ifndef __IFileSystemBindData_FWD_DEFINED__
+#define __IFileSystemBindData_FWD_DEFINED__
+typedef struct IFileSystemBindData IFileSystemBindData;
+#endif
+
+typedef IFileSystemBindData *LPFILESYSTEMBINDDATA;
+
+#ifndef __IFileSystemBindData_INTERFACE_DEFINED__
+#define __IFileSystemBindData_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IFileSystemBindData, 0x01e18d10, 0x4d8b, 0x11d2, 0x85,0x5d, 0x00,0x60,0x08,0x05,0x93,0x67);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+struct IFileSystemBindData : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE GetFindData(
+        WIN32_FIND_DATAW* pfd) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetFindData(
+        const WIN32_FIND_DATAW* pfd) = 0;
+
+};
+#else
+typedef struct IFileSystemBindDataVtbl IFileSystemBindDataVtbl;
+struct IFileSystemBindData {
+    const IFileSystemBindDataVtbl* lpVtbl;
+};
+struct IFileSystemBindDataVtbl {
+    ICOM_MSVTABLE_COMPAT_FIELDS
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IFileSystemBindData* This,
+        REFIID riid,
+        void** ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IFileSystemBindData* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IFileSystemBindData* This);
+
+    /*** IFileSystemBindData methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetFindData)(
+        IFileSystemBindData* This,
+        WIN32_FIND_DATAW* pfd);
+
+    HRESULT (STDMETHODCALLTYPE *SetFindData)(
+        IFileSystemBindData* This,
+        const WIN32_FIND_DATAW* pfd);
+
+};
+
+/*** IUnknown methods ***/
+#define IFileSystemBindData_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IFileSystemBindData_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IFileSystemBindData_Release(p) (p)->lpVtbl->Release(p)
+/*** IFileSystemBindData methods ***/
+#define IFileSystemBindData_GetFindData(p,a) (p)->lpVtbl->GetFindData(p,a)
+#define IFileSystemBindData_SetFindData(p,a) (p)->lpVtbl->SetFindData(p,a)
+
+#endif
+
+#define IFileSystemBindData_METHODS \
+    ICOM_MSVTABLE_COMPAT_FIELDS \
+    /*** IUnknown methods ***/ \
+    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
+    STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
+    STDMETHOD_(ULONG,Release)(THIS) PURE; \
+    /*** IFileSystemBindData methods ***/ \
+    STDMETHOD_(HRESULT,GetFindData)(THIS_ WIN32_FIND_DATAW* pfd) PURE; \
+    STDMETHOD_(HRESULT,SetFindData)(THIS_ const WIN32_FIND_DATAW* pfd) PURE;
+
+#endif  /* __IFileSystemBindData_INTERFACE_DEFINED__ */
+
+
 #ifdef __cplusplus
 } /* extern "C" */
 #endif /* defined(__cplusplus) */