System\Private\Windows\Ole\Composition.cs (9)
181public HRESULT DAdvise(FORMATETC* pformatetc, uint advf, IAdviseSink* pAdvSink, uint* pdwConnection) => _nativeDataObject.DAdvise(pformatetc, advf, pAdvSink, pdwConnection);
182public HRESULT DUnadvise(uint dwConnection) => _nativeDataObject.DUnadvise(dwConnection);
183public HRESULT EnumDAdvise(IEnumSTATDATA** ppenumAdvise) => _nativeDataObject.EnumDAdvise(ppenumAdvise);
184public HRESULT EnumFormatEtc(uint dwDirection, IEnumFORMATETC** ppenumFormatEtc) => _nativeDataObject.EnumFormatEtc(dwDirection, ppenumFormatEtc);
185public HRESULT GetCanonicalFormatEtc(FORMATETC* pformatectIn, FORMATETC* pformatetcOut) => _nativeDataObject.GetCanonicalFormatEtc(pformatectIn, pformatetcOut);
186public HRESULT GetData(FORMATETC* pformatetcIn, STGMEDIUM* pmedium) => _nativeDataObject.GetData(pformatetcIn, pmedium);
187public HRESULT GetDataHere(FORMATETC* pformatetc, STGMEDIUM* pmedium) => _nativeDataObject.GetDataHere(pformatetc, pmedium);
188public HRESULT QueryGetData(FORMATETC* pformatetc) => _nativeDataObject.QueryGetData(pformatetc);
189public HRESULT SetData(FORMATETC* pformatetc, STGMEDIUM* pmedium, BOOL fRelease) => _nativeDataObject.SetData(pformatetc, pmedium, fRelease);
System\Private\Windows\Ole\Composition.ManagedToNativeAdapter.cs (56)
36public HRESULT GetData(FORMATETC* pformatetcIn, STGMEDIUM* pmedium)
40return HRESULT.DV_E_FORMATETC;
45return HRESULT.E_POINTER;
54return HRESULT.S_OK;
60return HRESULT.S_OK;
68return HRESULT.DV_E_TYMED;
82return HRESULT.E_OUTOFMEMORY;
85HRESULT result = GetDataHere(pformatetcIn, pmedium);
95public HRESULT GetDataHere(FORMATETC* pformatetc, STGMEDIUM* pmedium)
99return HRESULT.DV_E_FORMATETC;
104return HRESULT.E_POINTER;
109return HRESULT.DV_E_TYMED;
116return HRESULT.DV_E_FORMATETC;
121return HRESULT.E_UNEXPECTED;
128HRESULT result = SaveDataToHGLOBAL(data, format, ref *pmedium);
129if (result != HRESULT.E_UNEXPECTED)
153public HRESULT QueryGetData(FORMATETC* pformatetc)
157return HRESULT.DV_E_FORMATETC;
162return HRESULT.DV_E_DVASPECT;
167return HRESULT.DV_E_TYMED;
172return HRESULT.S_FALSE;
177return HRESULT.DV_E_FORMATETC;
180return HRESULT.S_OK;
183public HRESULT GetCanonicalFormatEtc(FORMATETC* pformatectIn, FORMATETC* pformatetcOut)
187return HRESULT.E_POINTER;
191return (HRESULT)DATA_S_SAMEFORMATETC;
194public HRESULT SetData(FORMATETC* pformatetc, STGMEDIUM* pmedium, BOOL fRelease)
198return HRESULT.DV_E_FORMATETC;
203return HRESULT.E_POINTER;
219return HRESULT.S_OK;
222return HRESULT.E_NOTIMPL;
225public HRESULT EnumFormatEtc(uint dwDirection, IEnumFORMATETC** ppenumFormatEtc)
229return HRESULT.E_POINTER;
238return HRESULT.S_OK;
241return HRESULT.E_NOTIMPL;
244public HRESULT DAdvise(FORMATETC* pformatetc, uint advf, IAdviseSink* pAdvSink, uint* pdwConnection)
248return HRESULT.E_POINTER;
252return HRESULT.E_NOTIMPL;
255public HRESULT DUnadvise(uint dwConnection) => HRESULT.E_NOTIMPL;
257public HRESULT EnumDAdvise(IEnumSTATDATA** ppenumAdvise)
261return HRESULT.E_POINTER;
265return HRESULT.OLE_E_ADVISENOTSUPPORTED;
269private HRESULT SaveDataToHGLOBAL(object data, string format, ref STGMEDIUM medium)
291_ => HRESULT.E_UNEXPECTED
294static HRESULT SaveObjectToHGLOBAL(ref HGLOBAL hglobal, object data, string format)
306static HRESULT SaveFileListToHGLOBAL(HGLOBAL hglobal, string[] files)
310return HRESULT.S_OK;
315return HRESULT.E_INVALIDARG;
364return HRESULT.S_OK;
367static HRESULT SaveDbcsToHGLOBAL(HGLOBAL hglobal, string value)
382return HRESULT.S_OK;
385static HRESULT SaveUtf16ToHGLOBAL(HGLOBAL hglobal, string value)
401return HRESULT.S_OK;
404static HRESULT SaveUtf8ToHGLOBAL(HGLOBAL hglobal, string value)
420return HRESULT.S_OK;
System\Private\Windows\Ole\Composition.NativeToManagedAdapter.cs (19)
34public HRESULT DAdvise(Com.FORMATETC* pformatetc, uint advf, Com.IAdviseSink* pAdvSink, uint* pdwConnection)
40public HRESULT DUnadvise(uint dwConnection)
46public HRESULT EnumDAdvise(Com.IEnumSTATDATA** ppenumAdvise)
52public HRESULT EnumFormatEtc(uint dwDirection, Com.IEnumFORMATETC** ppenumFormatEtc)
58public HRESULT GetData(Com.FORMATETC* pformatetcIn, Com.STGMEDIUM* pmedium)
64public HRESULT GetDataHere(Com.FORMATETC* pformatetc, Com.STGMEDIUM* pmedium)
70public HRESULT QueryGetData(Com.FORMATETC* pformatetc)
76public HRESULT GetCanonicalFormatEtc(Com.FORMATETC* pformatectIn, Com.FORMATETC* pformatetcOut)
82public HRESULT SetData(Com.FORMATETC* pformatetc, Com.STGMEDIUM* pmedium, BOOL fRelease)
144throw new ExternalException(SR.ExternalException, (int)HRESULT.E_OUTOFMEMORY);
306HRESULT hr = dataObject->GetData(formatetc, out Com.STGMEDIUM medium);
312Debug.WriteLineIf(hr == HRESULT.CLIPBRD_E_BAD_DATA, "CLIPBRD_E_BAD_DATA returned when trying to get clipboard data.");
313Debug.WriteLineIf(hr == HRESULT.DV_E_TYMED, "DV_E_TYMED returned when trying to get clipboard data.");
315Debug.WriteLineIf(hr == HRESULT.E_UNEXPECTED, "E_UNEXPECTED returned when trying to get clipboard data.");
316Debug.WriteLineIf(hr == HRESULT.COR_E_SERIALIZATION,
322if (medium.tymed == Com.TYMED.TYMED_HGLOBAL && !medium.hGlobal.IsNull && hr != HRESULT.COR_E_SERIALIZATION)
564while (enumFORMATETC.Value->Next(1, &formatEtc) == HRESULT.S_OK)
645HRESULT hr = nativeDataObject.Value->QueryGetData(formatEtc);
648return hr == HRESULT.S_OK;
System\Private\Windows\Ole\Composition.RuntimeToNativeAdapter.cs (31)
33HRESULT Com.IDataObject.Interface.DAdvise(Com.FORMATETC* pformatetc, uint advf, Com.IAdviseSink* pAdvSink, uint* pdwConnection)
36return (HRESULT)DAdvise(ref *(FORMATETC*)pformatetc, (ADVF)advf, adviseSink, out *(int*)pdwConnection);
39HRESULT Com.IDataObject.Interface.DUnadvise(uint dwConnection)
47return (HRESULT)e.HResult;
50return HRESULT.S_OK;
53HRESULT Com.IDataObject.Interface.EnumDAdvise(Com.IEnumSTATDATA** ppenumAdvise)
57return HRESULT.E_POINTER;
62HRESULT hr = (HRESULT)EnumDAdvise(out var enumAdvice);
69return hr.Succeeded ? hr : HRESULT.E_NOINTERFACE;
72HRESULT Com.IDataObject.Interface.EnumFormatEtc(uint dwDirection, Com.IEnumFORMATETC** ppenumFormatEtc)
76return HRESULT.E_POINTER;
80*ppenumFormatEtc = ComHelpers.TryGetComPointer<Com.IEnumFORMATETC>(comTypeFormatEtc, out HRESULT hr);
81return hr.Succeeded ? HRESULT.S_OK : HRESULT.E_NOINTERFACE;
84HRESULT Com.IDataObject.Interface.GetCanonicalFormatEtc(Com.FORMATETC* pformatectIn, Com.FORMATETC* pformatetcOut) =>
85(HRESULT)GetCanonicalFormatEtc(ref *(FORMATETC*)pformatectIn, out *(FORMATETC*)pformatetcOut);
87HRESULT Com.IDataObject.Interface.GetData(Com.FORMATETC* pformatetcIn, Com.STGMEDIUM* pmedium)
91return HRESULT.E_POINTER;
98return HRESULT.S_OK;
102return (HRESULT)e.HResult;
106HRESULT Com.IDataObject.Interface.GetDataHere(Com.FORMATETC* pformatetc, Com.STGMEDIUM* pmedium)
110return HRESULT.E_POINTER;
120return (HRESULT)e.HResult;
124return HRESULT.S_OK;
127HRESULT Com.IDataObject.Interface.QueryGetData(Com.FORMATETC* pformatetc) => (HRESULT)QueryGetData(ref *(FORMATETC*)pformatetc);
129HRESULT Com.IDataObject.Interface.SetData(Com.FORMATETC* pformatetc, Com.STGMEDIUM* pmedium, BOOL fRelease)
133return HRESULT.E_POINTER;
143return (HRESULT)e.HResult;
146return HRESULT.S_OK;
Windows\Win32\System\Com\ComHelpers.cs (11)
40internal static ComScope<T> TryGetComScope<T>(object? @object, out HRESULT hr) where T : unmanaged, IComIID =>
49T* result = TryGetComPointer<T>(@object, out HRESULT hr);
68using var scope = TryGetComScope<T>(@object, out HRESULT hr);
76/// Typically either <see cref="HRESULT.S_OK"/> or <see cref="HRESULT.E_POINTER"/>. Check for success, not
80internal static T* TryGetComPointer<T>(object? @object, out HRESULT result) where T : unmanaged, IComIID
84result = HRESULT.E_POINTER;
115result = HRESULT.E_NOINTERFACE;
122result = HRESULT.S_OK;
182HRESULT hr = unknown->QueryInterface(IID.Get<IUnknown>(), (void**)&unknown);
339HRESULT hr = PInvokeCore.LoadRegTypeLib(typeLibrary, majorVersion, minorVersion, 0, typelib);
Windows\Win32\System\Com\ComManagedStream.cs (30)
46HRESULT IStream.Interface.Clone(IStream** ppstm)
50return HRESULT.E_POINTER;
57return HRESULT.S_OK;
60HRESULT IStream.Interface.Commit(uint grfCommitFlags)
66return HRESULT.S_OK;
69HRESULT IStream.Interface.CopyTo(IStream* pstm, ulong cb, ulong* pcbRead, ulong* pcbWritten)
73return HRESULT.STG_E_INVALIDPOINTER;
109return HRESULT.S_OK;
112HRESULT ISequentialStream.Interface.Read(void* pv, uint cb, uint* pcbRead)
116return HRESULT.STG_E_INVALIDPOINTER;
127return HRESULT.S_OK;
130HRESULT IStream.Interface.Read(void* pv, uint cb, uint* pcbRead)
133HRESULT IStream.Interface.Seek(long dlibMove, SeekOrigin dwOrigin, ulong* plibNewPosition)
179return HRESULT.S_OK;
182return HRESULT.S_OK;
185HRESULT IStream.Interface.SetSize(ulong libNewSize)
188return HRESULT.S_OK;
191HRESULT IStream.Interface.Stat(STATSTG* pstatstg, uint grfStatFlag)
195return HRESULT.STG_E_INVALIDPOINTER;
217return HRESULT.S_OK;
221HRESULT IStream.Interface.LockRegion(ulong libOffset, ulong cb, uint dwLockType) => HRESULT.STG_E_INVALIDFUNCTION;
224HRESULT IStream.Interface.Revert() => HRESULT.S_OK;
227HRESULT IStream.Interface.UnlockRegion(ulong libOffset, ulong cb, uint dwLockType) => HRESULT.STG_E_INVALIDFUNCTION;
229HRESULT ISequentialStream.Interface.Write(void* pv, uint cb, uint* pcbWritten)
233return HRESULT.STG_E_INVALIDPOINTER;
244return HRESULT.S_OK;
247HRESULT IStream.Interface.Write(void* pv, uint cb, uint* pcbWritten)
Windows\Win32\System\Com\IComCallableWrapper.cs (4)
32public unsafe HRESULT QueryInterface(in Guid riid, out void* ppvObject)
41public unsafe HRESULT QueryInterface(Guid* riid, void** ppvObject)
44return ((delegate* unmanaged[Stdcall]<IComCallableWrapper*, Guid*, void**, HRESULT>)_vtbl[0])(pThis, riid, ppvObject);
62internal delegate* unmanaged[Stdcall]<IEnumUnknown*, Guid*, void**, HRESULT> QueryInterface_1;
Windows\Win32\System\Com\WinFormsComWrappers.cs (9)
20unknown->QueryInterface_1 = (delegate* unmanaged[Stdcall]<IUnknown*, Guid*, void**, HRESULT>)fpQueryInterface;
56/// Handles exceptions and converts to <see cref="HRESULT"/>.
59internal static HRESULT UnwrapAndInvoke<TThis, TInterface>(TThis* @this, Func<TInterface, HRESULT> func)
66return @object is null ? HRESULT.COR_E_OBJECTDISPOSED : func(@object);
95/// <inheritdoc cref="UnwrapAndInvoke{TThis, TInterface}(TThis*, Func{TInterface, HRESULT})"/>
96internal static HRESULT UnwrapAndInvoke<TThis, TInterface>(TThis* @this, Action<TInterface> action)
105return HRESULT.COR_E_OBJECTDISPOSED;
109return HRESULT.S_OK;