diff --git a/include/shlguid.h b/include/shlguid.h index aa5514882fd..a4ed4226adb 100644 --- a/include/shlguid.h +++ b/include/shlguid.h @@ -40,7 +40,6 @@ DEFINE_SHLGUID(CGID_ShellDocView, 0x000214D1L, 0, 0); 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_IShellCopyHookA, 0x000214EFL, 0, 0); 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_IQueryInfo, 0x00021500L, 0, 0); /* 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 259e66cff6a..5a5b1d4daad 100644 --- a/include/shlobj.h +++ b/include/shlobj.h @@ -816,31 +816,25 @@ typedef struct _SHChangeNotifyEntry 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_DragLeave(void); 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 34e670c5979..11471e13aee 100644 --- a/include/shobjidl.idl +++ b/include/shobjidl.idl @@ -1105,3 +1105,190 @@ interface IShellExecuteHookW : IUnknown 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); +}