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. ///