diff --git a/PInvoke/Ole/Ole32/ObjBase.cs b/PInvoke/Ole/Ole32/ObjBase.cs
index 30ed9013..565a40bd 100644
--- a/PInvoke/Ole/Ole32/ObjBase.cs
+++ b/PInvoke/Ole/Ole32/ObjBase.cs
@@ -1117,6 +1117,66 @@ namespace Vanara.PInvoke
[PInvokeData("objbase.h", MSDNShortId = "0f5c9ef5-3918-4f93-bfd1-1017029b3dc1")]
public static extern HRESULT CoGetObject([MarshalAs(UnmanagedType.LPWStr)] string pszName, in BIND_OPTS pBindOptions, in Guid riid, [MarshalAs(UnmanagedType.IUnknown)] out object ppv);
+ ///
+ /// Converts a display name into a moniker that identifies the object named, and then binds to the object identified by the moniker.
+ ///
+ /// The display name of the object to be created.
+ ///
+ /// The binding options used to create a moniker that creates the actual object. For details, see BIND_OPTS. This parameter can be NULL.
+ ///
+ /// A reference to the identifier of an interface that is implemented on the object to be created.
+ /// The address of a pointer to the interface specified by riid on the object that is created.
+ ///
+ ///
+ /// This function can return the standard return values E_FAIL, E_OUTOFMEMORY, and E_UNEXPECTED, as well as the following values.
+ ///
+ ///
+ ///
+ /// Return code
+ /// Description
+ ///
+ /// -
+ /// S_OK
+ /// The object was created successfully.
+ ///
+ /// -
+ /// MK_E_SYNTAX
+ /// The pszName parameter is not a properly formed display name.
+ ///
+ /// -
+ /// MK_E_NOOBJECT
+ ///
+ /// The object identified by this moniker, or some object identified by the composite moniker of which this moniker is a part, could
+ /// not be found.
+ ///
+ ///
+ /// -
+ /// MK_E_EXCEEDEDDEADLINE
+ /// The binding operation could not be completed within the time limit specified by the BIND_OPTS structure passed in pBindOptions.
+ ///
+ /// -
+ /// MK_E_CONNECTMANUALLY
+ ///
+ /// The binding operation requires assistance from the end user. The most common reasons for returning this value are that a
+ /// password is needed or that a floppy needs to be mounted.
+ ///
+ ///
+ /// -
+ /// MK_E_INTERMEDIATEINTERFACENOTSUPPORTED
+ ///
+ /// An intermediate object was found but it did not support an interface required to complete the binding operation. For example, an
+ /// item moniker returns this value if its container does not support the IOleItemContainer interface.
+ ///
+ ///
+ ///
+ ///
+ /// CoGetObject encapsulates calls to the COM library functions CreateBindCtx, MkParseDisplayName, and IMoniker::BindToObject.
+ // https://docs.microsoft.com/en-us/windows/win32/api/objbase/nf-objbase-cogetobject HRESULT CoGetObject( LPCWSTR pszName, BIND_OPTS
+ // *pBindOptions, REFIID riid, void **ppv );
+ [DllImport(Lib.Ole32, SetLastError = false, ExactSpelling = true)]
+ [PInvokeData("objbase.h", MSDNShortId = "0f5c9ef5-3918-4f93-bfd1-1017029b3dc1")]
+ public static extern HRESULT CoGetObject([MarshalAs(UnmanagedType.LPWStr)] string pszName, [In] BIND_OPTS_V pBindOptions, in Guid riid, [MarshalAs(UnmanagedType.IUnknown)] out object ppv);
+
///
/// Converts a display name into a moniker that identifies the object named, and then binds to the object identified by the moniker.
///