Move interface declarations to shobjidl.idl.
diff --git a/include/shlguid.h b/include/shlguid.h
index aa55148..a4ed422 100644
--- a/include/shlguid.h
+++ b/include/shlguid.h
@@ -40,7 +40,6 @@
DEFINE_SHLGUID(CGID_ShellServiceObject, 0x000214D2L, 0, 0);
DEFINE_SHLGUID(CGID_ExplorerBarDoc, 0x000214D3L, 0, 0);
-DEFINE_SHLGUID(IID_INewShortcutHookA, 0x000214E1L, 0, 0);
DEFINE_SHLGUID(IID_IShellIcon, 0x000214E5L, 0, 0);
DEFINE_SHLGUID(IID_IShellPropSheetExt, 0x000214E9L, 0, 0);
DEFINE_SHLGUID(IID_IShellDetails, 0x000214ECL, 0, 0);
@@ -49,7 +48,6 @@
DEFINE_SHLGUID(IID_IFileViewerA, 0x000214F0L, 0, 0);
DEFINE_SHLGUID(IID_IFileViewerSite, 0x000214F3L, 0, 0);
DEFINE_SHLGUID(IID_IPropSheetPage, 0x000214F6L, 0, 0);
-DEFINE_SHLGUID(IID_INewShortcutHookW, 0x000214F7L, 0, 0);
DEFINE_SHLGUID(IID_IFileViewerW, 0x000214F8L, 0, 0);
DEFINE_SHLGUID(IID_IShellCopyHookW, 0x000214FCL, 0, 0);
DEFINE_SHLGUID(IID_IRemoteComputer, 0x000214FEL, 0, 0);
@@ -71,6 +69,8 @@
/* DEFINE_SHLGUID(IID_IShellLinkW, 0x000214F9L, 0, 0); */
/* DEFINE_SHLGUID(IID_IShellExecuteHookA, 0x000214F5L, 0, 0); */
/* DEFINE_SHLGUID(IID_IShellExecuteHookW, 0x000214FBL, 0, 0); */
+/* DEFINE_SHLGUID(IID_INewShortcutHookA, 0x000214E1L, 0, 0); */
+/* DEFINE_SHLGUID(IID_INewShortcutHookW, 0x000214F7L, 0, 0); */
DEFINE_GUID(SID_STopLevelBrowser, 0x4C96BE40L, 0x915C, 0x11CF, 0x99, 0xD3, 0x00, 0xAA, 0x00, 0x4A, 0xE8, 0x37);
diff --git a/include/shlobj.h b/include/shlobj.h
index 259e66c..5a5b1d4 100644
--- a/include/shlobj.h
+++ b/include/shlobj.h
@@ -816,31 +816,25 @@
void WINAPI SHChangeNotify(LONG wEventId, UINT uFlags, LPCVOID dwItem1, LPCVOID dwItem2);
-/*
- * IShellChangeNotify
- */
-typedef struct IShellChangeNotify IShellChangeNotify, *LPSHELLCHANGENOTIFY;
-
-#define INTERFACE IShellChangeNotify
-DECLARE_INTERFACE_(IShellChangeNotify,IUnknown)
+typedef struct tagDATABLOCKHEADER
{
- /*** IUnknown methods ***/
- STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
- STDMETHOD_(ULONG,AddRef)(THIS) PURE;
- STDMETHOD_(ULONG,Release)(THIS) PURE;
- /*** IShellChangeNotify methods ***/
- STDMETHOD(OnChange)(THIS_ LONG lEvent, LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2) PURE;
-};
-#undef INTERFACE
+ DWORD cbSize;
+ DWORD dwSignature;
+} DATABLOCK_HEADER, *LPDATABLOCK_HEADER, *LPDBLIST;
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IShellChangeNotify_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IShellChangeNotify_AddRef(p) (p)->lpVtbl->AddRef(p)
-#define IShellChangeNotify_Release(p) (p)->lpVtbl->Release(p)
-/*** IShellChangeNotify methods ***/
-#define IShellChangeNotify_OnChange(p,a,b,c) (p)->lpVtbl->OnChange(p,a,b,c)
-#endif
+typedef struct {
+ DATABLOCK_HEADER dbh;
+ CHAR szDarwinID[MAX_PATH];
+ WCHAR szwDarwinID[MAX_PATH];
+} EXP_DARWIN_LINK, *LPEXP_DARWIN_LINK;
+
+#define EXP_SZ_LINK_SIG 0xa0000001
+#define NT_CONSOLE_PROPS_SIG 0xa0000002
+#define NT_FE_CONSOLE_PROPS_SIG 0xa0000004
+#define EXP_SPECIAL_FOLDER_SIG 0xa0000005
+#define EXP_DARWIN_ID_SIG 0xa0000006
+#define EXP_LOGO3_ID_SIG 0xa0000007
+#define EXP_SZ_ICON_SIG 0xa0000007
typedef struct _SHChangeDWORDAsIDList {
USHORT cb;
@@ -1089,70 +1083,6 @@
BOOL WINAPI DAD_AutoScroll(HWND,AUTO_SCROLL_DATA*,LPPOINT);
HRESULT WINAPI SHDoDragDrop(HWND,IDataObject*,IDropSource*,DWORD,LPDWORD);
-/*****************************************************************************
- * IFileSystemBindData interface
- */
-#ifndef __IFileSystemBindData_FWD_DEFINED__
-#define __IFileSystemBindData_FWD_DEFINED__
-typedef struct IFileSystemBindData IFileSystemBindData;
-#endif
-
-#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 SetFindData(
- const WIN32_FIND_DATAW* pfd) = 0;
-
- virtual HRESULT STDMETHODCALLTYPE GetFindData(
- WIN32_FIND_DATAW* pfd) = 0;
-
-};
-#else
-typedef struct IFileSystemBindDataVtbl IFileSystemBindDataVtbl;
-struct IFileSystemBindData {
- const IFileSystemBindDataVtbl* lpVtbl;
-};
-struct IFileSystemBindDataVtbl {
-
- /*** 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 *SetFindData)(
- IFileSystemBindData* This,
- const WIN32_FIND_DATAW* pfd);
-
- HRESULT (STDMETHODCALLTYPE *GetFindData)(
- IFileSystemBindData* This,
- 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
-
-#endif /* __IFileSystemBindData_INTERFACE_DEFINED__ */
-
LPITEMIDLIST WINAPI ILAppendID(LPITEMIDLIST,LPCSHITEMID,BOOL);
LPITEMIDLIST WINAPI ILClone(LPCITEMIDLIST);
LPITEMIDLIST WINAPI ILCloneFirst(LPCITEMIDLIST);
diff --git a/include/shobjidl.idl b/include/shobjidl.idl
index 34e670c..11471e1 100644
--- a/include/shobjidl.idl
+++ b/include/shobjidl.idl
@@ -1105,3 +1105,190 @@
HRESULT Execute(
[in, out] struct _SHELLEXECUTEINFOW* pei);
}
+
+/*****************************************************************************
+ * IShellLinkDataList interface
+ */
+[
+ object,
+ uuid(45e2b4ae-b1c3-11d0-b92f-00a0c90312e1),
+ pointer_default(unique)
+]
+interface IShellLinkDataList : IUnknown
+{
+ HRESULT AddDataBlock(
+ [in] void *pDataBlock);
+ HRESULT CopyDataBlock(
+ [in] DWORD dwSig,
+ [out] void **ppDataBlock);
+ HRESULT RemoveDataBlock(
+ [in] DWORD dwSig);
+ HRESULT GetFlags(
+ [out] DWORD *pdwFlags);
+ HRESULT SetFlags(
+ [in] DWORD dwFlags);
+}
+
+
+/*****************************************************************************
+ * IResolveShellLink interface
+ */
+[
+ object,
+ uuid(5cd52983-9449-11d2-963a-00c04f79adf0),
+ pointer_default(unique)
+]
+interface IResolveShellLink : IUnknown
+{
+ HRESULT ResolveShellLink(
+ [in] IUnknown *punk,
+ [in] HWND hwnd,
+ [in] DWORD fFlags);
+}
+
+
+/*****************************************************************************
+ * IURLSearchHook interface
+ */
+[
+ object,
+ uuid(ac60f6a0-0fd9-11d0-99cb-00c04fd64497),
+ pointer_default(unique)
+]
+interface IURLSearchHook : IUnknown
+{
+ HRESULT Translate(
+ [in, out] LPWSTR lpwszSearchURL,
+ [in] DWORD cchBufferSize);
+}
+
+
+/*****************************************************************************
+ * ISearchContext interface
+ */
+[
+ object,
+ uuid(09f656a2-41af-480c-88f7-16cc0d164615),
+ pointer_default(unique)
+]
+interface ISearchContext : IUnknown
+{
+ HRESULT GetSearchUrl(
+ [in] BSTR *pbstrSearchUrl);
+ HRESULT GetSearchText(
+ [in] BSTR *pbstrSearchText);
+ HRESULT GetSearchStyle(
+ [in] BSTR *pdwSearchStyle);
+}
+
+
+/*****************************************************************************
+ * IURLSearchHook2 interface
+ */
+[
+ object,
+ uuid(5ee44da4-6d32-46e3-86bc-07540dedd0e0),
+ pointer_default(unique)
+]
+interface IURLSearchHook2 : IURLSearchHook
+{
+ HRESULT TranslateWithSearchContext(
+ [in, out] LPWSTR lpwszSearchURL,
+ [in] DWORD cchBufferSize,
+ [in] ISearchContext *pSearchContext);
+}
+
+
+cpp_quote("#define INewShortcutHook WINELIB_NAME_AW(INewShortcutHook)")
+
+/*****************************************************************************
+ * INewShortcutHookA interface
+ */
+[
+ object,
+ uuid(000214e1-0000-0000-c000-000000000046),
+ pointer_default(unique)
+]
+interface INewShortcutHookA : IUnknown
+{
+ HRESULT SetReferent(
+ [in] LPCSTR pcszReferent,
+ [in] HWND hwnd);
+ HRESULT GetReferent(
+ [out] LPCSTR pcszReferent,
+ [in] int cchReferent);
+ HRESULT SetFolder(
+ [in] LPCSTR pcszReferent);
+ HRESULT GetFolder(
+ [out] LPSTR pcszReferent,
+ [in] int cchFolder);
+ HRESULT GetName(
+ [out] LPSTR pszName,
+ [in] int cchName);
+ HRESULT GetExtension(
+ [out] LPSTR pszExtension,
+ [in] int cchExtension);
+}
+
+
+/*****************************************************************************
+ * INewShortcutHookW interface
+ */
+[
+ object,
+ uuid(000214f7-0000-0000-c000-000000000046),
+ pointer_default(unique)
+]
+interface INewShortcutHookW : IUnknown
+{
+ HRESULT SetReferent(
+ [in] LPCWSTR pcszReferent,
+ [in] HWND hwnd);
+ HRESULT GetReferent(
+ [out] LPCWSTR pcszReferent,
+ [in] int cchReferent);
+ HRESULT SetFolder(
+ [in] LPCWSTR pcszReferent);
+ HRESULT GetFolder(
+ [out] LPWSTR pcszReferent,
+ [in] int cchFolder);
+ HRESULT GetName(
+ [out] LPWSTR pszName,
+ [in] int cchName);
+ HRESULT GetExtension(
+ [out] LPWSTR pszExtension,
+ [in] int cchExtension);
+}
+
+
+/*****************************************************************************
+ * IShellChangeNotify interface
+ */
+[
+ object,
+ uuid(d82be2b1-5764-11d0-a96e-00c04fd705a2),
+ pointer_default(unique)
+]
+interface IShellChangeNotify : IUnknown
+{
+ HRESULT OnChange(
+ [in] LONG lEvent,
+ [in] LPCITEMIDLIST pidl1,
+ [in] LPCITEMIDLIST pidl2);
+}
+
+/*****************************************************************************
+ * IFileSystemBindData interface
+ */
+[
+ object,
+ uuid(01e18d10-4d8b-11d2-855d-006008059367),
+ pointer_default(unique)
+]
+interface IFileSystemBindData : IUnknown
+{
+ HRESULT SetFindData(
+ [in] const WIN32_FIND_DATAW *pfd);
+ HRESULT GetFindData(
+ [out] WIN32_FIND_DATAW *pfd);
+}