diff --git a/PInvoke/Shell32/ShObjIdl.cs b/PInvoke/Shell32/ShObjIdl.cs
index 539a2348..529bf5fc 100644
--- a/PInvoke/Shell32/ShObjIdl.cs
+++ b/PInvoke/Shell32/ShObjIdl.cs
@@ -994,6 +994,7 @@ namespace Vanara.PInvoke
/// The GETPROPERTYSTOREFLAGS constants that modify the property store object.
/// A reference to the IID of the object to be retrieved.
/// When this method returns, contains the address of an IPropertyStore interface pointer.
+ [return: MarshalAs(UnmanagedType.Interface)]
IPropertyStore GetPropertyStore(GETPROPERTYSTOREFLAGS flags, [In, MarshalAs(UnmanagedType.LPStruct)] Guid riid);
///
@@ -1016,6 +1017,7 @@ namespace Vanara.PInvoke
/// A reference to the IID of the object to be retrieved.
/// When this method returns, contains the address of the requested IPropertyStore interface pointer.
// TODO: Create ICreateObject for second param
+ [return: MarshalAs(UnmanagedType.Interface)]
IPropertyStore GetPropertyStoreWithCreateObject(GETPROPERTYSTOREFLAGS flags, [MarshalAs(UnmanagedType.IUnknown)] object punkCreateObject,
[In, MarshalAs(UnmanagedType.LPStruct)] Guid riid);
@@ -1027,6 +1029,7 @@ namespace Vanara.PInvoke
/// The GETPROPERTYSTOREFLAGS constants that modify the property store object.
/// A reference to the IID of the object to be retrieved.
///
+ [return: MarshalAs(UnmanagedType.Interface)]
IPropertyStore GetPropertyStoreForKeys([In, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 1)] PROPERTYKEY[] rgKeys, uint cKeys, GETPROPERTYSTOREFLAGS flags, [In, MarshalAs(UnmanagedType.LPStruct)] Guid riid);
/// Gets a property description list object given a reference to a property key.