Needed to compile Tera Term.
From: Alex Henrie alexhenrie24@gmail.com
To avoid confusion or conflict with the ShellItem struct defined in the Windows headers. --- dlls/shell32/shellitem.c | 82 ++++++++++++++++++++-------------------- 1 file changed, 41 insertions(+), 41 deletions(-)
diff --git a/dlls/shell32/shellitem.c b/dlls/shell32/shellitem.c index a6d4ee9ef07..c0b5b87f078 100644 --- a/dlls/shell32/shellitem.c +++ b/dlls/shell32/shellitem.c @@ -34,32 +34,32 @@
WINE_DEFAULT_DEBUG_CHANNEL(shell);
-typedef struct _ShellItem { +typedef struct { IShellItem2 IShellItem2_iface; LONG ref; LPITEMIDLIST pidl; IPersistIDList IPersistIDList_iface; IShellItemImageFactory IShellItemImageFactory_iface; -} ShellItem; +} ShellItemImpl;
typedef struct _CustomDestinationList { ICustomDestinationList ICustomDestinationList_iface; LONG ref; } CustomDestinationList;
-static inline ShellItem *impl_from_IShellItem2(IShellItem2 *iface) +static inline ShellItemImpl *impl_from_IShellItem2(IShellItem2 *iface) { - return CONTAINING_RECORD(iface, ShellItem, IShellItem2_iface); + return CONTAINING_RECORD(iface, ShellItemImpl, IShellItem2_iface); }
-static inline ShellItem *impl_from_IPersistIDList( IPersistIDList *iface ) +static inline ShellItemImpl *impl_from_IPersistIDList(IPersistIDList *iface) { - return CONTAINING_RECORD(iface, ShellItem, IPersistIDList_iface); + return CONTAINING_RECORD(iface, ShellItemImpl, IPersistIDList_iface); }
-static inline ShellItem *impl_from_IShellItemImageFactory( IShellItemImageFactory *iface ) +static inline ShellItemImpl *impl_from_IShellItemImageFactory(IShellItemImageFactory *iface) { - return CONTAINING_RECORD(iface, ShellItem, IShellItemImageFactory_iface); + return CONTAINING_RECORD(iface, ShellItemImpl, IShellItemImageFactory_iface); }
static inline CustomDestinationList *impl_from_ICustomDestinationList( ICustomDestinationList *iface ) @@ -70,7 +70,7 @@ static inline CustomDestinationList *impl_from_ICustomDestinationList( ICustomDe static HRESULT WINAPI ShellItem_QueryInterface(IShellItem2 *iface, REFIID riid, void **ppv) { - ShellItem *This = impl_from_IShellItem2(iface); + ShellItemImpl *This = impl_from_IShellItem2(iface);
TRACE("(%p, %s, %p)\n", iface, debugstr_guid(riid), ppv);
@@ -101,7 +101,7 @@ static HRESULT WINAPI ShellItem_QueryInterface(IShellItem2 *iface, REFIID riid,
static ULONG WINAPI ShellItem_AddRef(IShellItem2 *iface) { - ShellItem *This = impl_from_IShellItem2(iface); + ShellItemImpl *This = impl_from_IShellItem2(iface); ULONG ref = InterlockedIncrement(&This->ref);
TRACE("(%p), new refcount=%li\n", iface, ref); @@ -111,7 +111,7 @@ static ULONG WINAPI ShellItem_AddRef(IShellItem2 *iface)
static ULONG WINAPI ShellItem_Release(IShellItem2 *iface) { - ShellItem *This = impl_from_IShellItem2(iface); + ShellItemImpl *This = impl_from_IShellItem2(iface); ULONG ref = InterlockedDecrement(&This->ref);
TRACE("(%p), new refcount=%li\n", iface, ref); @@ -125,7 +125,7 @@ static ULONG WINAPI ShellItem_Release(IShellItem2 *iface) return ref; }
-static HRESULT ShellItem_get_parent_pidl(ShellItem *This, LPITEMIDLIST *parent_pidl) +static HRESULT ShellItem_get_parent_pidl(ShellItemImpl *This, ITEMIDLIST **parent_pidl) { *parent_pidl = ILClone(This->pidl); if (*parent_pidl) @@ -146,7 +146,7 @@ static HRESULT ShellItem_get_parent_pidl(ShellItem *This, LPITEMIDLIST *parent_p } }
-static HRESULT ShellItem_get_parent_shellfolder(ShellItem *This, IShellFolder **ppsf) +static HRESULT ShellItem_get_parent_shellfolder(ShellItemImpl *This, IShellFolder **ppsf) { LPITEMIDLIST parent_pidl; IShellFolder *desktop; @@ -174,7 +174,7 @@ static HRESULT ShellItem_get_parent_shellfolder(ShellItem *This, IShellFolder ** return ret; }
-static HRESULT ShellItem_get_shellfolder(ShellItem *This, IBindCtx *pbc, IShellFolder **ppsf) +static HRESULT ShellItem_get_shellfolder(ShellItemImpl *This, IBindCtx *pbc, IShellFolder **ppsf) { IShellFolder *desktop; HRESULT ret; @@ -201,7 +201,7 @@ static HRESULT ShellItem_get_shellfolder(ShellItem *This, IBindCtx *pbc, IShellF static HRESULT WINAPI ShellItem_BindToHandler(IShellItem2 *iface, IBindCtx *pbc, REFGUID rbhid, REFIID riid, void **ppvOut) { - ShellItem *This = impl_from_IShellItem2(iface); + ShellItemImpl *This = impl_from_IShellItem2(iface); HRESULT ret; TRACE("(%p,%p,%s,%p,%p)\n", iface, pbc, shdebugstr_guid(rbhid), riid, ppvOut);
@@ -246,7 +246,7 @@ static HRESULT WINAPI ShellItem_BindToHandler(IShellItem2 *iface, IBindCtx *pbc,
static HRESULT WINAPI ShellItem_GetParent(IShellItem2 *iface, IShellItem **ppsi) { - ShellItem *This = impl_from_IShellItem2(iface); + ShellItemImpl *This = impl_from_IShellItem2(iface); LPITEMIDLIST parent_pidl; HRESULT ret;
@@ -265,7 +265,7 @@ static HRESULT WINAPI ShellItem_GetParent(IShellItem2 *iface, IShellItem **ppsi) static HRESULT WINAPI ShellItem_GetDisplayName(IShellItem2 *iface, SIGDN sigdnName, LPWSTR *ppszName) { - ShellItem *This = impl_from_IShellItem2(iface); + ShellItemImpl *This = impl_from_IShellItem2(iface); TRACE("(%p,%x,%p)\n", iface, sigdnName, ppszName);
return SHGetNameFromIDList(This->pidl, sigdnName, ppszName); @@ -274,7 +274,7 @@ static HRESULT WINAPI ShellItem_GetDisplayName(IShellItem2 *iface, SIGDN sigdnNa static HRESULT WINAPI ShellItem_GetAttributes(IShellItem2 *iface, SFGAOF sfgaoMask, SFGAOF *psfgaoAttribs) { - ShellItem *This = impl_from_IShellItem2(iface); + ShellItemImpl *This = impl_from_IShellItem2(iface); IShellFolder *parent_folder; LPITEMIDLIST child_pidl; HRESULT ret; @@ -358,7 +358,7 @@ static HRESULT WINAPI ShellItem_Compare(IShellItem2 *iface, IShellItem *oth, static HRESULT WINAPI ShellItem2_GetPropertyStore(IShellItem2 *iface, GETPROPERTYSTOREFLAGS flags, REFIID riid, void **ppv) { - ShellItem *This = impl_from_IShellItem2(iface); + ShellItemImpl *This = impl_from_IShellItem2(iface); FIXME("Stub: %p (%d, %s, %p)\n", This, flags, shdebugstr_guid(riid), ppv); return E_NOTIMPL; } @@ -366,7 +366,7 @@ static HRESULT WINAPI ShellItem2_GetPropertyStore(IShellItem2 *iface, GETPROPERT static HRESULT WINAPI ShellItem2_GetPropertyStoreWithCreateObject(IShellItem2 *iface, GETPROPERTYSTOREFLAGS flags, IUnknown *punkCreateObject, REFIID riid, void **ppv) { - ShellItem *This = impl_from_IShellItem2(iface); + ShellItemImpl *This = impl_from_IShellItem2(iface); FIXME("Stub: %p (%08x, %p, %s, %p)\n", This, flags, punkCreateObject, shdebugstr_guid(riid), ppv); return E_NOTIMPL; @@ -375,7 +375,7 @@ static HRESULT WINAPI ShellItem2_GetPropertyStoreWithCreateObject(IShellItem2 *i static HRESULT WINAPI ShellItem2_GetPropertyStoreForKeys(IShellItem2 *iface, const PROPERTYKEY *rgKeys, UINT cKeys, GETPROPERTYSTOREFLAGS flags, REFIID riid, void **ppv) { - ShellItem *This = impl_from_IShellItem2(iface); + ShellItemImpl *This = impl_from_IShellItem2(iface); FIXME("Stub: %p (%p, %d, %08x, %s, %p)\n", This, rgKeys, cKeys, flags, shdebugstr_guid(riid), ppv); return E_NOTIMPL; @@ -384,70 +384,70 @@ static HRESULT WINAPI ShellItem2_GetPropertyStoreForKeys(IShellItem2 *iface, con static HRESULT WINAPI ShellItem2_GetPropertyDescriptionList(IShellItem2 *iface, REFPROPERTYKEY keyType, REFIID riid, void **ppv) { - ShellItem *This = impl_from_IShellItem2(iface); + ShellItemImpl *This = impl_from_IShellItem2(iface); FIXME("Stub: %p (%p, %s, %p)\n", This, keyType, debugstr_guid(riid), ppv); return E_NOTIMPL; }
static HRESULT WINAPI ShellItem2_Update(IShellItem2 *iface, IBindCtx *pbc) { - ShellItem *This = impl_from_IShellItem2(iface); + ShellItemImpl *This = impl_from_IShellItem2(iface); FIXME("Stub: %p (%p)\n", This, pbc); return E_NOTIMPL; }
static HRESULT WINAPI ShellItem2_GetProperty(IShellItem2 *iface, REFPROPERTYKEY key, PROPVARIANT *ppropvar) { - ShellItem *This = impl_from_IShellItem2(iface); + ShellItemImpl *This = impl_from_IShellItem2(iface); FIXME("Stub: %p (%p, %p)\n", This, key, ppropvar); return E_NOTIMPL; }
static HRESULT WINAPI ShellItem2_GetCLSID(IShellItem2 *iface, REFPROPERTYKEY key, CLSID *pclsid) { - ShellItem *This = impl_from_IShellItem2(iface); + ShellItemImpl *This = impl_from_IShellItem2(iface); FIXME("Stub: %p (%p, %p)\n", This, key, pclsid); return E_NOTIMPL; }
static HRESULT WINAPI ShellItem2_GetFileTime(IShellItem2 *iface, REFPROPERTYKEY key, FILETIME *pft) { - ShellItem *This = impl_from_IShellItem2(iface); + ShellItemImpl *This = impl_from_IShellItem2(iface); FIXME("Stub: %p (%p, %p)\n", This, key, pft); return E_NOTIMPL; }
static HRESULT WINAPI ShellItem2_GetInt32(IShellItem2 *iface, REFPROPERTYKEY key, int *pi) { - ShellItem *This = impl_from_IShellItem2(iface); + ShellItemImpl *This = impl_from_IShellItem2(iface); FIXME("Stub: %p (%p, %p)\n", This, key, pi); return E_NOTIMPL; }
static HRESULT WINAPI ShellItem2_GetString(IShellItem2 *iface, REFPROPERTYKEY key, LPWSTR *ppsz) { - ShellItem *This = impl_from_IShellItem2(iface); + ShellItemImpl *This = impl_from_IShellItem2(iface); FIXME("Stub: %p (%p, %p)\n", This, key, ppsz); return E_NOTIMPL; }
static HRESULT WINAPI ShellItem2_GetUInt32(IShellItem2 *iface, REFPROPERTYKEY key, ULONG *pui) { - ShellItem *This = impl_from_IShellItem2(iface); + ShellItemImpl *This = impl_from_IShellItem2(iface); FIXME("Stub: %p (%p, %p)\n", This, key, pui); return E_NOTIMPL; }
static HRESULT WINAPI ShellItem2_GetUInt64(IShellItem2 *iface, REFPROPERTYKEY key, ULONGLONG *pull) { - ShellItem *This = impl_from_IShellItem2(iface); + ShellItemImpl *This = impl_from_IShellItem2(iface); FIXME("Stub: %p (%p, %p)\n", This, key, pull); return E_NOTIMPL; }
static HRESULT WINAPI ShellItem2_GetBool(IShellItem2 *iface, REFPROPERTYKEY key, BOOL *pf) { - ShellItem *This = impl_from_IShellItem2(iface); + ShellItemImpl *This = impl_from_IShellItem2(iface); FIXME("Stub: %p (%p, %p)\n", This, key, pf); return E_NOTIMPL; } @@ -480,19 +480,19 @@ static const IShellItem2Vtbl ShellItem2_Vtbl = { static HRESULT WINAPI ShellItem_IPersistIDList_QueryInterface(IPersistIDList *iface, REFIID riid, void **ppv) { - ShellItem *This = impl_from_IPersistIDList(iface); + ShellItemImpl *This = impl_from_IPersistIDList(iface); return IShellItem2_QueryInterface(&This->IShellItem2_iface, riid, ppv); }
static ULONG WINAPI ShellItem_IPersistIDList_AddRef(IPersistIDList *iface) { - ShellItem *This = impl_from_IPersistIDList(iface); + ShellItemImpl *This = impl_from_IPersistIDList(iface); return IShellItem2_AddRef(&This->IShellItem2_iface); }
static ULONG WINAPI ShellItem_IPersistIDList_Release(IPersistIDList *iface) { - ShellItem *This = impl_from_IPersistIDList(iface); + ShellItemImpl *This = impl_from_IPersistIDList(iface); return IShellItem2_Release(&This->IShellItem2_iface); }
@@ -506,7 +506,7 @@ static HRESULT WINAPI ShellItem_IPersistIDList_GetClassID(IPersistIDList* iface, static HRESULT WINAPI ShellItem_IPersistIDList_SetIDList(IPersistIDList* iface, LPCITEMIDLIST pidl) { - ShellItem *This = impl_from_IPersistIDList(iface); + ShellItemImpl *This = impl_from_IPersistIDList(iface); LPITEMIDLIST new_pidl;
TRACE("(%p,%p)\n", This, pidl); @@ -526,7 +526,7 @@ static HRESULT WINAPI ShellItem_IPersistIDList_SetIDList(IPersistIDList* iface, static HRESULT WINAPI ShellItem_IPersistIDList_GetIDList(IPersistIDList* iface, LPITEMIDLIST *ppidl) { - ShellItem *This = impl_from_IPersistIDList(iface); + ShellItemImpl *This = impl_from_IPersistIDList(iface);
TRACE("(%p,%p)\n", This, ppidl);
@@ -549,26 +549,26 @@ static const IPersistIDListVtbl ShellItem_IPersistIDList_Vtbl = { static HRESULT WINAPI ShellItem_IShellItemImageFactory_QueryInterface(IShellItemImageFactory *iface, REFIID riid, void **ppv) { - ShellItem *This = impl_from_IShellItemImageFactory(iface); + ShellItemImpl *This = impl_from_IShellItemImageFactory(iface); return IShellItem2_QueryInterface(&This->IShellItem2_iface, riid, ppv); }
static ULONG WINAPI ShellItem_IShellItemImageFactory_AddRef(IShellItemImageFactory *iface) { - ShellItem *This = impl_from_IShellItemImageFactory(iface); + ShellItemImpl *This = impl_from_IShellItemImageFactory(iface); return IShellItem2_AddRef(&This->IShellItem2_iface); }
static ULONG WINAPI ShellItem_IShellItemImageFactory_Release(IShellItemImageFactory *iface) { - ShellItem *This = impl_from_IShellItemImageFactory(iface); + ShellItemImpl *This = impl_from_IShellItemImageFactory(iface); return IShellItem2_Release(&This->IShellItem2_iface); }
static HRESULT WINAPI ShellItem_IShellItemImageFactory_GetImage(IShellItemImageFactory *iface, SIZE size, SIIGBF flags, HBITMAP *phbm) { - ShellItem *This = impl_from_IShellItemImageFactory(iface); + ShellItemImpl *This = impl_from_IShellItemImageFactory(iface); static const BITMAPINFOHEADER dummy_bmi_header = { .biSize = sizeof(dummy_bmi_header), .biWidth = 1, @@ -601,7 +601,7 @@ static const IShellItemImageFactoryVtbl ShellItem_IShellItemImageFactory_Vtbl =
HRESULT WINAPI IShellItem_Constructor(IUnknown *pUnkOuter, REFIID riid, void **ppv) { - ShellItem *This; + ShellItemImpl *This; HRESULT ret;
TRACE("(%p,%s)\n",pUnkOuter, debugstr_guid(riid));
From: Alex Henrie alexhenrie24@gmail.com
Needed to compile Tera Term. --- include/Makefile.in | 1 + include/shlguid.h | 5 ---- include/shobjidl.idl | 1 + include/shobjidl_core.idl | 54 +++++++++++++++++++++++++++++++++++++++ 4 files changed, 56 insertions(+), 5 deletions(-) create mode 100644 include/shobjidl_core.idl
diff --git a/include/Makefile.in b/include/Makefile.in index 62904d8d2a0..848837f84fc 100644 --- a/include/Makefile.in +++ b/include/Makefile.in @@ -685,6 +685,7 @@ SOURCES = \ shlobj.h \ shlwapi.h \ shobjidl.idl \ + shobjidl_core.idl \ shtypes.idl \ sipbase.h \ slerror.h \ diff --git a/include/shlguid.h b/include/shlguid.h index c6878c36864..8d68700accf 100644 --- a/include/shlguid.h +++ b/include/shlguid.h @@ -19,8 +19,6 @@ #ifndef __WINE_SHLGUID_H #define __WINE_SHLGUID_H
-DEFINE_OLEGUID(CLSID_ShellDesktop, 0x00021400, 0, 0); - DEFINE_OLEGUID(CATID_BrowsableShellExt, 0x00021490, 0, 0); DEFINE_OLEGUID(CATID_BrowseInPlace, 0x00021491, 0, 0); DEFINE_OLEGUID(CATID_DeskBand, 0x00021492, 0, 0); @@ -124,13 +122,11 @@ DEFINE_GUID(IID_IInputObjectSite, 0xF1DB8392, 0x7331, 0x11D0, 0x8C, 0x99, 0x00 /**************************************************************************** * the next IID's are the namespace elements of the pidls */ -DEFINE_GUID(CLSID_NetworkPlaces, 0x208D2C60, 0x3AEA, 0x1069, 0xA2, 0xD7, 0x08, 0x00, 0x2B, 0x30, 0x30, 0x9D); DEFINE_GUID(CLSID_NetworkDomain, 0x46e06680, 0x4bf0, 0x11d1, 0x83, 0xee, 0x00, 0xa0, 0xc9, 0x0d, 0xc8, 0x49); DEFINE_GUID(CLSID_NetworkServer, 0xc0542a90, 0x4bf0, 0x11d1, 0x83, 0xee, 0x00, 0xa0, 0xc9, 0x0d, 0xc8, 0x49); DEFINE_GUID(CLSID_NetworkShare, 0x54a754c0, 0x4bf0, 0x11d1, 0x83, 0xee, 0x00, 0xa0, 0xc9, 0x0d, 0xc8, 0x49); DEFINE_GUID(CLSID_MyComputer, 0x20D04FE0, 0x3AEA, 0x1069, 0xA2, 0xD8, 0x08, 0x00, 0x2B, 0x30, 0x30, 0x9D); DEFINE_GUID(CLSID_Internet, 0x871C5380, 0x42A0, 0x1069, 0xA2, 0xEA, 0x08, 0x00, 0x2B, 0x30, 0x30, 0x9D); -DEFINE_GUID(CLSID_ShellFSFolder, 0xF3364BA0, 0x65B9, 0x11CE, 0xA9, 0xBA, 0x00, 0xAA, 0x00, 0x4A, 0xE8, 0x37); DEFINE_GUID(CLSID_RecycleBin, 0x645FF040, 0x5081, 0x101B, 0x9F, 0x08, 0x00, 0xAA, 0x00, 0x2F, 0x95, 0x4E); DEFINE_GUID(CLSID_ControlPanel, 0x21EC2020, 0x3AEA, 0x1069, 0xA2, 0xDD, 0x08, 0x00, 0x2B, 0x30, 0x30, 0x9D); DEFINE_GUID(CLSID_Printers, 0x2227A280, 0x3AEA, 0x1069, 0xA2, 0xDE, 0x08, 0x00, 0x2B, 0x30, 0x30, 0x9D); @@ -145,7 +141,6 @@ DEFINE_GUID(CLSID_DragDropHelper, 0x4657278a, 0x411b, 0x11d2, 0x83, 0x9a, 0x00,
DEFINE_GUID(CLSID_ProgressDialog, 0xf8383852, 0xfcd3, 0x11d1, 0xa6, 0xb9, 0x0, 0x60, 0x97, 0xdf, 0x5b, 0xd4);
-DEFINE_GUID(CLSID_ShellItem, 0x2fe352ea, 0xfd1f, 0x11d2, 0xb1, 0xf4, 0x00, 0xc0, 0x4f, 0x8e, 0xeb, 0x3e); DEFINE_GUID(CLSID_NewMenu, 0xd969a300, 0xe7ff, 0x11d0, 0xa9, 0x3b, 0x0, 0xa0, 0xc9, 0xf, 0x27, 0x19);
#define PSGUID_SHELLDETAILS {0x28636aa6, 0x953d, 0x11d2, 0xb5, 0xd6, 0x0, 0xc0, 0x4f, 0xd9, 0x18, 0xd0} diff --git a/include/shobjidl.idl b/include/shobjidl.idl index 065e0c8c528..a5b27ec1003 100644 --- a/include/shobjidl.idl +++ b/include/shobjidl.idl @@ -33,6 +33,7 @@ import "wtypes.idl"; import "propsys.idl"; import "objectarray.idl"; /* FIXME: import "structuredquery.idl"; */ +import "shobjidl_core.idl";
cpp_quote("/* FIXME: #include <sherrors.h> */")
diff --git a/include/shobjidl_core.idl b/include/shobjidl_core.idl new file mode 100644 index 00000000000..c52cf32e401 --- /dev/null +++ b/include/shobjidl_core.idl @@ -0,0 +1,54 @@ +/* + * Copyright 2022 Alex Henrie + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +[ +] +library ShellCoreObjects +{ + [ + uuid(208d2c60-3aea-1069-a2d7-08002b30309d) + ] + coclass NetworkPlaces + { + interface IShellFolder2; + } + + [ + uuid(00021400-0000-0000-c000-000000000046) + ] + coclass ShellDesktop + { + interface IShellFolder2; + } + + [ + uuid(f3364ba0-65b9-11ce-a9ba-00aa004ae837) + ] + coclass ShellFSFolder + { + interface IShellFolder2; + } + + [ + uuid(9ac9fbe1-e0a2-4ad6-b4ee-e212013ea917) + ] + coclass ShellItem + { + interface IShellItem2; + } +}
Hi,
It looks like your patch introduced the new failures shown below. Please investigate and fix them before resubmitting your patch. If they are not new, fixing them anyway would help a lot. Otherwise please ask for the known failures list to be updated.
The tests also ran into some preexisting test failures. If you know how to fix them that would be helpful. See the TestBot job for the details:
The full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=126876
Your paranoid android.
=== debian11 (32 bit zh:CN report) ===
shell32: autocomplete.c:614: Test failed: Expected (null), got L"ab" autocomplete.c:637: Test failed: Expected (null), got L"www.ax"
Gabriel Ivăncescu (@insn) commented about dlls/shell32/shellitem.c:
WINE_DEFAULT_DEBUG_CHANNEL(shell);
-typedef struct _ShellItem { +typedef struct { IShellItem2 IShellItem2_iface; LONG ref; LPITEMIDLIST pidl; IPersistIDList IPersistIDList_iface; IShellItemImageFactory IShellItemImageFactory_iface; -} ShellItem; +} ShellItemImpl;
In my opinion it's probably better to use something like "shell_item" since you're changing it and that has zero chance to conflict due to being in snake case. You could also get rid of the typedef if you want to make it explicit and use "struct shell_item" when declaring types of it instead.
Typically rest of wine code which uses snake case tends to either typedef with a `_t` suffix at the end, or use `struct type_name` with no typedef. (`_t` has slight problem that it can cause conflicts with POSIX)
Zebediah Figura (@zfigura) commented about include/shobjidl_core.idl:
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
- */
+[ +] +library ShellCoreObjects
Why do we have a library declaration with no uuid?
On Mon Nov 28 20:02:17 2022 +0000, Zebediah Figura wrote:
Why do we have a library declaration with no uuid?
It didn't appear to be necessary, but I can add it.
On Mon Nov 28 20:03:29 2022 +0000, Alex Henrie wrote:
It didn't appear to be necessary, but I can add it.
I don't understand. Either LIBID_ShellCoreObjects exists, and presumably is also registered, or there's no point in having the library declaration?
On Mon Nov 28 20:17:41 2022 +0000, Zebediah Figura wrote:
I don't understand. Either LIBID_ShellCoreObjects exists, and presumably is also registered, or there's no point in having the library declaration?
Tera Term checks whether `__ShellCoreObjects_LIBRARY_DEFINED__` is defined, and if it isn't, it tries to define some GUIDs itself which leads to a link-time conflict. I could have created shobjidl_core as a plain .h file instead and that would also work fine, but I didn't want to make someone in the future have to go back and convert it to a .idl. I'll just add the UUID; someone would probably have had to add it in the future anyway.