216 references to SAFEARRAY
System.Private.Windows.Core (31)
Windows\Win32\System\Com\SAFEARRAY.cs (2)
27public static SAFEARRAY* CreateEmpty(VARENUM arrayType) 63fixed (SAFEARRAY* pThis = &this)
Windows\Win32\System\Com\SafeArrayScope.cs (20)
10/// Helper to scope lifetime of a <see cref="SAFEARRAY"/> created via 12/// Destroys the <see cref="SAFEARRAY"/> (if any) when disposed. Note that this scope currently only works for a 13/// one dimensional <see cref="SAFEARRAY"/>. 17/// Use in a <see langword="using" /> statement to ensure the <see cref="SAFEARRAY"/> gets disposed. 20/// If the <see cref="SAFEARRAY"/> you are intending to scope the lifetime of has type <see cref="VARENUM.VT_UNKNOWN"/>, 28public SAFEARRAY* Value => (SAFEARRAY*)_value; 30public SafeArrayScope(SAFEARRAY* value) 144/// A copy will be made of anything that is put into the <see cref="SAFEARRAY"/> 145/// and anything the <see cref="SAFEARRAY"/> gives out is a copy and has been add ref appropriately if applicable. 146/// Be sure to dispose of items that are given to the <see cref="SAFEARRAY"/> if necessary. All 147/// items given out by the <see cref="SAFEARRAY"/> should be disposed. 225PInvokeCore.SafeArrayPutElement((SAFEARRAY*)_value, pIndices, value).ThrowOnFailure(); 237SAFEARRAY* safeArray = (SAFEARRAY*)_value; 250public static explicit operator VARIANT(in SafeArrayScope<T> scope) => new() { vt = VARENUM.VT_ARRAY | scope.Value->VarType, data = new() { parray = (SAFEARRAY*)scope._value } }; 252public static implicit operator SAFEARRAY*(in SafeArrayScope<T> scope) => (SAFEARRAY*)scope._value; 257public static implicit operator SAFEARRAY**(in SafeArrayScope<T> scope) => (SAFEARRAY**)Unsafe.AsPointer(ref Unsafe.AsRef(in scope._value));
Windows\Win32\System\Variant\VARIANT.cs (9)
106return ToArray(*(SAFEARRAY**)data, vt); 247private static Array? ToArray(SAFEARRAY* psa, VARENUM vt) 439private static void TransposeArray(SAFEARRAY* psa, Array array, VARENUM arrayType) 451static void StackTransposeArray(SAFEARRAY* psa, Array array, VARENUM arrayType) 459static void HeapTransposeArray(SAFEARRAY* psa, Array array, VARENUM arrayType) 467static void InternalTransposeArray(SAFEARRAY* psa, Array array, VARENUM arrayType, Span<int> indices, Span<int> lower, Span<int> upper) 504private static void SetArrayValue(SAFEARRAY* psa, Array array, Span<int> indices, Span<int> lowerBounds, VARENUM arrayType) 621private static Array CreateArrayFromSafeArray(SAFEARRAY* psa, VARENUM vt) 738return (uint)sizeof(SAFEARRAY*);
System.Windows.Forms (33)
System\Windows\Forms\Accessibility\AccessibleObject.cs (18)
790internal virtual HRESULT GetTextSelection(SAFEARRAY** pRetVal) => HRESULT.E_NOTIMPL; 792internal virtual HRESULT GetTextVisibleRanges(SAFEARRAY** pRetVal) => HRESULT.E_NOTIMPL; 936HRESULT IAccessibleEx.Interface.GetRuntimeId(SAFEARRAY** pRetVal) 1039HRESULT IRawElementProviderFragment.Interface.GetRuntimeId(SAFEARRAY** pRetVal) 1068HRESULT IRawElementProviderFragment.Interface.GetEmbeddedFragmentRoots(SAFEARRAY** pRetVal) 1271HRESULT ILegacyIAccessibleProvider.Interface.GetSelection(SAFEARRAY** pvarSelectedChildren) 1280*pvarSelectedChildren = SAFEARRAY.CreateEmpty(VARENUM.VT_UNKNOWN); 1336HRESULT ITextProvider.Interface.GetSelection(SAFEARRAY** pRetVal) => GetTextSelection(pRetVal); 1338HRESULT ITextProvider.Interface.GetVisibleRanges(SAFEARRAY** pRetVal) => GetTextVisibleRanges(pRetVal); 1350HRESULT ITextProvider2.Interface.GetSelection(SAFEARRAY** pRetVal) => GetTextSelection(pRetVal); 1352HRESULT ITextProvider2.Interface.GetVisibleRanges(SAFEARRAY** pRetVal) => GetTextVisibleRanges(pRetVal); 1412HRESULT ITableProvider.Interface.GetRowHeaders(SAFEARRAY** pRetVal) 1427HRESULT ITableProvider.Interface.GetColumnHeaders(SAFEARRAY** pRetVal) 1453HRESULT ITableItemProvider.Interface.GetRowHeaderItems(SAFEARRAY** pRetVal) 1468HRESULT ITableItemProvider.Interface.GetColumnHeaderItems(SAFEARRAY** pRetVal) 3020HRESULT IMultipleViewProvider.Interface.GetSupportedViews(SAFEARRAY** pRetVal) 3029*pRetVal = result is null ? SAFEARRAY.CreateEmpty(VARENUM.VT_I4) : new SafeArrayScope<int>(result); 3123HRESULT ISelectionProvider.Interface.GetSelection(SAFEARRAY** pRetVal)
System\Windows\Forms\Accessibility\LabelEditAccessibleObject.cs (2)
85internal override HRESULT GetTextSelection(SAFEARRAY** pRetVal) 88internal override HRESULT GetTextVisibleRanges(SAFEARRAY** pRetVal)
System\Windows\Forms\Accessibility\LabelEditUiaTextProvider.cs (2)
149public override HRESULT GetSelection(SAFEARRAY** pRetVal) 204public override HRESULT GetVisibleRanges(SAFEARRAY** pRetVal)
System\Windows\Forms\Controls\ComboBox\ComboBox.ComboBoxChildEditUiaProvider.cs (2)
109internal override unsafe HRESULT GetTextSelection(SAFEARRAY** pRetVal) => _textProvider.GetSelection(pRetVal); 111internal override unsafe HRESULT GetTextVisibleRanges(SAFEARRAY** pRetVal) => _textProvider.GetVisibleRanges(pRetVal);
System\Windows\Forms\Controls\ComboBox\ComboBox.ComboBoxUiaTextProvider.cs (3)
204public override HRESULT GetSelection(SAFEARRAY** pRetVal) 265public override HRESULT GetVisibleRanges(SAFEARRAY** pRetVal) 274*pRetVal = SAFEARRAY.CreateEmpty(VARENUM.VT_UNKNOWN);
System\Windows\Forms\Controls\TextBox\TextBoxBase.TextBoxBaseAccessibleObject.cs (2)
100internal override HRESULT GetTextSelection(SAFEARRAY** pRetVal) 103internal override HRESULT GetTextVisibleRanges(SAFEARRAY** pRetVal)
System\Windows\Forms\Controls\TextBox\TextBoxBase.TextBoxBaseUiaTextProvider.cs (4)
25public override HRESULT GetSelection(SAFEARRAY** pRetVal) 34*pRetVal = SAFEARRAY.CreateEmpty(VARENUM.VT_UNKNOWN); 56public override HRESULT GetVisibleRanges(SAFEARRAY** pRetVal) 65*pRetVal = SAFEARRAY.CreateEmpty(VARENUM.VT_UNKNOWN);
System.Windows.Forms.Primitives (19)
Interop\UiaCore\Interop.StubFragmentRoot.cs (2)
55HRESULT IRawElementProviderFragment.Interface.GetRuntimeId(SAFEARRAY** pRetVal) 77HRESULT IRawElementProviderFragment.Interface.GetEmbeddedFragmentRoots(SAFEARRAY** pRetVal)
System\Windows\Forms\Automation\UiaTextProvider.cs (3)
19public abstract HRESULT GetSelection(SAFEARRAY** pRetVal); 21public abstract HRESULT GetVisibleRanges(SAFEARRAY** pRetVal); 85return new(SAFEARRAY.CreateEmpty(VARENUM.VT_R8));
System\Windows\Forms\Automation\UiaTextRange.cs (5)
327HRESULT ITextRangeProvider.Interface.GetBoundingRectangles(SAFEARRAY** pRetVal) 341*pRetVal = SAFEARRAY.CreateEmpty(VARENUM.VT_R8); 374*pRetVal = SAFEARRAY.CreateEmpty(VARENUM.VT_R8); 630HRESULT ITextRangeProvider.Interface.GetChildren(SAFEARRAY** pRetVal) 637*pRetVal = SAFEARRAY.CreateEmpty(VARENUM.VT_UNKNOWN);
Windows\Win32\System\Com\ComSafeArrayScope.cs (9)
9/// Helper to scope lifetime of a <see cref="SAFEARRAY"/> created via 11/// that holds COM pointers. Destroys the <see cref="SAFEARRAY"/> (if any) when disposed. Note that this scope 12/// currently only works for a one dimensional <see cref="SAFEARRAY"/> of type <see cref="VARENUM.VT_UNKNOWN"/> 16/// Use in a <see langword="using" /> statement to ensure the <see cref="SAFEARRAY"/> gets disposed. 23public ComSafeArrayScope(SAFEARRAY* value) 46/// The <see cref="SAFEARRAY"/> will ref count the COM pointer on get/put. 47/// Be sure to release of COM pointers that are given to/from the <see cref="SAFEARRAY"/>. 70public static implicit operator SAFEARRAY**(in ComSafeArrayScope<T> scope) => scope._value; 72public static implicit operator SAFEARRAY*(in ComSafeArrayScope<T> scope) => scope._value;
System.Windows.Forms.Primitives.Tests (133)
Interop\Oleaut32\SAFEARRAYTests.cs (11)
25Assert.Equal(24, Marshal.SizeOf<SAFEARRAY>()); 26Assert.Equal(24, sizeof(SAFEARRAY)); 37Assert.Equal(32, Marshal.SizeOf<SAFEARRAY>()); 38Assert.Equal(32, sizeof(SAFEARRAY)); 60SAFEARRAY* psa = PInvokeCore.SafeArrayCreate((VARENUM)vt, 1, &saBound); 96SAFEARRAY* psa = PInvokeCore.SafeArrayCreateEx(VT_RECORD, 1, &saBound, recordInfo); 185SAFEARRAY* psa = PInvokeCore.SafeArrayCreate((VARENUM)vt, 2, saBounds); 221SAFEARRAY* psa = PInvokeCore.SafeArrayCreate(VT_I4, 1, &saBound); 268SAFEARRAY* psa = PInvokeCore.SafeArrayCreate(VT_I4, 1, &saBound); 322SAFEARRAY* psa = PInvokeCore.SafeArrayCreate(VT_I4, 2, saBounds); 376SAFEARRAY* psa = PInvokeCore.SafeArrayCreate(VT_I4, 2, saBounds);
Interop\Oleaut32\VARIANTTests.cs (110)
1997SAFEARRAY* psa = CreateSafeArray(VT_UI1, result); 2019SAFEARRAY* psa = CreateSafeArray(VT_UI1, result, 1); 2137SAFEARRAY* psa = CreateSafeArray(VT_I1, result); 2164SAFEARRAY* psa = CreateSafeArray(VT_I1, result, 1, 2); 2190SAFEARRAY* psa = CreateSafeArray(VT_I2, result); 2215SAFEARRAY* psa = CreateSafeArray(VT_I2, result, 1); 2252SAFEARRAY* psa = CreateSafeArray(VT_I2, result); 2279SAFEARRAY* psa = CreateSafeArray(VT_I2, result, 1, 2); 2305SAFEARRAY* psa = CreateSafeArray(VT_UI2, result); 2330SAFEARRAY* psa = CreateSafeArray(VT_UI2, result, 1); 2367SAFEARRAY* psa = CreateSafeArray(VT_UI2, result); 2394SAFEARRAY* psa = CreateSafeArray(VT_UI2, result, 1, 2); 2420SAFEARRAY* psa = CreateSafeArray(VT_I4, result); 2445SAFEARRAY* psa = CreateSafeArray(VT_I4, result, 1); 2482SAFEARRAY* psa = CreateSafeArray(VT_I4, result); 2509SAFEARRAY* psa = CreateSafeArray(VT_I4, result, 1, 2); 2535SAFEARRAY* psa = CreateSafeArray(VT_INT, result); 2560SAFEARRAY* psa = CreateSafeArray(VT_INT, result, 1); 2584SAFEARRAY* psa = CreateSafeArray(VT_INT, result); 2611SAFEARRAY* psa = CreateSafeArray(VT_INT, result, 1, 2); 2637SAFEARRAY* psa = CreateSafeArray(VT_UI4, result); 2662SAFEARRAY* psa = CreateSafeArray(VT_UI4, result, 1); 2699SAFEARRAY* psa = CreateSafeArray(VT_UI4, result); 2726SAFEARRAY* psa = CreateSafeArray(VT_UI4, result, 1, 2); 2752SAFEARRAY* psa = CreateSafeArray(VT_UINT, result); 2777SAFEARRAY* psa = CreateSafeArray(VT_UINT, result, 1); 2801SAFEARRAY* psa = CreateSafeArray(VT_UINT, result); 2828SAFEARRAY* psa = CreateSafeArray(VT_UINT, result, 1, 2); 2854SAFEARRAY* psa = CreateSafeArray(VT_INT, result); 2879SAFEARRAY* psa = CreateSafeArray(VT_INT, result, 1); 2916SAFEARRAY* psa = CreateSafeArray(VT_INT, result); 2943SAFEARRAY* psa = CreateSafeArray(VT_INT, result, 1, 2); 2969SAFEARRAY* psa = CreateSafeArray(VT_I4, result); 2994SAFEARRAY* psa = CreateSafeArray(VT_I4, result, 1); 3018SAFEARRAY* psa = CreateSafeArray(VT_I4, result); 3045SAFEARRAY* psa = CreateSafeArray(VT_I4, result, 1, 2); 3071SAFEARRAY* psa = CreateSafeArray(VT_UINT, result); 3096SAFEARRAY* psa = CreateSafeArray(VT_UINT, result, 1); 3133SAFEARRAY* psa = CreateSafeArray(VT_UINT, result); 3160SAFEARRAY* psa = CreateSafeArray(VT_UINT, result, 1, 2); 3186SAFEARRAY* psa = CreateSafeArray(VT_UI4, result); 3211SAFEARRAY* psa = CreateSafeArray(VT_UI4, result, 1); 3235SAFEARRAY* psa = CreateSafeArray(VT_UI4, result); 3262SAFEARRAY* psa = CreateSafeArray(VT_UI4, result, 1, 2); 3288SAFEARRAY* psa = CreateSafeArray(VT_I8, result); 3313SAFEARRAY* psa = CreateSafeArray(VT_I8, result, 1); 3350SAFEARRAY* psa = CreateSafeArray(VT_I8, result); 3377SAFEARRAY* psa = CreateSafeArray(VT_I8, result, 1, 2); 3403SAFEARRAY* psa = CreateSafeArray(VT_UI8, result); 3427SAFEARRAY* psa = CreateSafeArray(VT_UI8, result, 1); 3464SAFEARRAY* psa = CreateSafeArray(VT_UI8, result); 3491SAFEARRAY* psa = CreateSafeArray(VT_UI8, result, 1, 2); 3517SAFEARRAY* psa = CreateSafeArray(VT_R4, result); 3542SAFEARRAY* psa = CreateSafeArray(VT_R4, result, 1); 3579SAFEARRAY* psa = CreateSafeArray(VT_R4, result); 3606SAFEARRAY* psa = CreateSafeArray(VT_R4, result, 1, 2); 3632SAFEARRAY* psa = CreateSafeArray(VT_R8, result); 3657SAFEARRAY* psa = CreateSafeArray(VT_R8, result, 1); 3694SAFEARRAY* psa = CreateSafeArray(VT_R8, result); 3721SAFEARRAY* psa = CreateSafeArray(VT_R8, result, 1, 2); 3747SAFEARRAY* psa = CreateSafeArray(VT_ERROR, result); 3772SAFEARRAY* psa = CreateSafeArray(VT_ERROR, result, 1); 3809SAFEARRAY* psa = CreateSafeArray(VT_ERROR, result); 3836SAFEARRAY* psa = CreateSafeArray(VT_ERROR, result, 1, 2); 3869SAFEARRAY* psa = CreateSafeArray(VT_BOOL, boolResult); 3895SAFEARRAY* psa = CreateSafeArray(VT_BOOL, boolResult, 1); 3938SAFEARRAY* psa = CreateSafeArray(VT_BOOL, boolResult); 3966SAFEARRAY* psa = CreateSafeArray(VT_BOOL, boolResult, 1, 2); 4002SAFEARRAY* psa = CreateSafeArray(VT_DECIMAL, decimalResult); 4028SAFEARRAY* psa = CreateSafeArray(VT_DECIMAL, decimalResult, 1); 4077SAFEARRAY* psa = CreateSafeArray(VT_DECIMAL, decimalResult); 4105SAFEARRAY* psa = CreateSafeArray(VT_DECIMAL, decimalResult, 1, 2); 4131SAFEARRAY* psa = CreateSafeArray(VT_CY, result); 4156SAFEARRAY* psa = CreateSafeArray(VT_CY, result, 1); 4198SAFEARRAY* psa = CreateSafeArray(VT_CY, result); 4225SAFEARRAY* psa = CreateSafeArray(VT_CY, result, 1, 2); 4251SAFEARRAY* psa = CreateSafeArray(VT_DATE, result); 4276SAFEARRAY* psa = CreateSafeArray(VT_DATE, result, 1); 4325SAFEARRAY* psa = CreateSafeArray(VT_DATE, result); 4352SAFEARRAY* psa = CreateSafeArray(VT_DATE, result, 1, 2); 4381SAFEARRAY* psa = CreateSafeArray(VT_BSTR, result); 4408SAFEARRAY* psa = CreateSafeArray(VT_BSTR, result, 1); 4443SAFEARRAY* psa = CreateSafeArray(VT_BSTR, result); 4480SAFEARRAY* psa = CreateSafeArray(VT_BSTR, result, 1, 2); 4513SAFEARRAY* psa = CreateSafeArray(VT_UNKNOWN, result); 4550SAFEARRAY* psa = CreateSafeArray(VT_UNKNOWN, result, 1); 4597SAFEARRAY* psa = CreateSafeArray(VT_UNKNOWN, result); 4654SAFEARRAY* psa = CreateSafeArray(VT_UNKNOWN, result, 1, 2); 4695SAFEARRAY* psa = CreateSafeArray(VT_DISPATCH, result); 4732SAFEARRAY* psa = CreateSafeArray(VT_DISPATCH, result, 1); 4779SAFEARRAY* psa = CreateSafeArray(VT_DISPATCH, result); 4836SAFEARRAY* psa = CreateSafeArray(VT_DISPATCH, result, 1, 2); 4878SAFEARRAY* psa = CreateSafeArray(VT_DISPATCH, result); 4916SAFEARRAY* psa = CreateSafeArray(VT_DISPATCH, result, 1); 4964SAFEARRAY* psa = CreateSafeArray(VT_DISPATCH, result); 5022SAFEARRAY* psa = CreateSafeArray(VT_DISPATCH, result, 1, 2); 5084SAFEARRAY* psa = CreateSafeArray(VT_VARIANT, result); 5136SAFEARRAY* psa = CreateSafeArray(VT_VARIANT, result, 1); 5219SAFEARRAY* psa = CreateSafeArray(VT_VARIANT, result); 5312SAFEARRAY* psa = CreateSafeArray(VT_I1, Array.Empty<byte>()); 5351SAFEARRAY* psa = CreateSafeArray((VARENUM)arrayVt, Array.Empty<byte>()); 5369SAFEARRAY* psa = CreateSafeArray((VARENUM)vt, Array.Empty<byte>()); 5399SAFEARRAY* psa = PInvokeCore.SafeArrayCreate(VT_I4, (uint)rank, saBounds); 5412private static unsafe SAFEARRAY* CreateSafeArray<T>(VARENUM vt, T[] result, int lbound = 0) where T : unmanaged 5420SAFEARRAY* psa = PInvokeCore.SafeArrayCreate(vt, 1, &saBound); 5444private unsafe SAFEARRAY* CreateSafeArray<T>(VARENUM vt, T[,] multiDimArray, int lbound1 = 0, int lbound2 = 0) where T : unmanaged 5459SAFEARRAY* psa = PInvokeCore.SafeArrayCreate(vt, 2, saBounds); 5632SAFEARRAY* psa = CreateRecordSafeArray(result, pRecordInfo); 5736private static SAFEARRAY* CreateRecordSafeArray<T>(T[] result, IRecordInfo* recordInfo, int lbound = 0) 5744SAFEARRAY* psa = PInvokeCore.SafeArrayCreateEx(VT_RECORD, 1, &saBound, recordInfo);
System\Windows\Forms\Automation\UiaTextRangeTests.cs (6)
564using SafeArrayScope<double> actual = new((SAFEARRAY*)null); 594using SafeArrayScope<double> actual = new((SAFEARRAY*)null); 623using SafeArrayScope<double> safeArrayScope = new((SAFEARRAY*)null); 664using SafeArrayScope<double> actual = new((SAFEARRAY*)null); 747using SafeArrayScope<double> actual = new((SAFEARRAY*)null); 829using SafeArrayScope<double> actual = new((SAFEARRAY*)null);
Windows\Win32\System\Com\ComSafeArrayScopeTests.cs (2)
14SAFEARRAY* array = SAFEARRAY.CreateEmpty(VARENUM.VT_INT);
Windows\Win32\System\Com\SafeArrayScopeTests.cs (4)
75SAFEARRAY* array = SAFEARRAY.CreateEmpty(Variant.VARENUM.VT_UNKNOWN); 90SAFEARRAY* array = SAFEARRAY.CreateEmpty(Variant.VARENUM.VT_INT);