26 private static bool IsIn(
int dwFlags)
28 return (dwFlags & 0x10000000) != 0;
31 private static bool IsOut(
int dwFlags)
33 return (dwFlags & 0x20000000) != 0;
36 private static bool IsAnsi(
int dwFlags)
38 return (dwFlags & 0xFF0000) != 0;
43 return (dwFlags & 0xFF00) != 0;
48 return (dwFlags & 0xFF) != 0;
118 int num = (int)varEnum;
151 int cb = (pManagedHome.Length + 1) * 2;
153 Buffer.
Memmove(ref *(
char*)(
void*)intPtr, ref pManagedHome.GetRawStringData(), (nuint)pManagedHome.Length + (nuint)1u);
172 byte* ptr = (
byte*)(
void*)intPtr;
173 *(ptr + num - 3) = 0;
174 *(ptr + num - 2) = 0;
175 *(ptr + num - 1) = 0;
187 int num3 = checked(
capacity * 2 + 4);
189 byte* ptr2 = (
byte*)(
void*)intPtr;
190 *(ptr2 + num3 - 1) = 0;
191 *(ptr2 + num3 - 2) = 0;
197 (ptr2 + num4)[1] = 0;
225 if (pManagedHome ==
null)
233 if (pManagedHome.GetType().IsArray)
237 if (pManagedHome is
string pManagedHome2)
245 if (pManagedHome.GetType().IsLayoutSequential || pManagedHome.GetType().IsExplicitLayout)
264 int newLength2 = ((!(pNativeHome ==
IntPtr.
Zero)) ?
string.strlen((
byte*)(
void*)pNativeHome) : 0);
265 ((
StringBuilder)pManagedHome).ReplaceBufferAnsiInternal((sbyte*)(
void*)pNativeHome, newLength2);
270 int newLength = ((!(pNativeHome ==
IntPtr.
Zero)) ?
string.wcslen((
char*)(
void*)pNativeHome) : 0);
271 ((
StringBuilder)pManagedHome).ReplaceBufferInternal((
char*)(
void*)pNativeHome, newLength);
static void Memmove(ref byte dest, ref byte src, nuint len)
static unsafe int StringToAnsiString(string s, byte *buffer, int bufferLength, bool bestFit=false, bool throwOnUnmappableChar=false)
static void FreeCoTaskMem(IntPtr ptr)
static IntPtr AllocCoTaskMem(int cb)
static void DestroyStructure(IntPtr ptr, Type structuretype)
static int SizeOfHelper(Type t, bool throwIfNotMarshalable)
static readonly int SystemMaxDBCSCharSize
static string Arg_MarshalAsAnyRestriction
static string Arg_NDirectBadObject
static unsafe IntPtr ConvertToNative(int flags, string strManaged, IntPtr pNativeBuffer)
static void ConvertContentsToManaged(IntPtr pMarshalState, ref object pManagedHome, IntPtr pNativeHome)
static void CreateMarshaler(IntPtr pMarshalState, IntPtr pMT, int dwFlags, IntPtr pManagedMarshaler)
static void ConvertSpaceToNative(IntPtr pMarshalState, ref object pManagedHome, IntPtr pNativeHome)
static void ConvertContentsToNative(IntPtr pMarshalState, ref object pManagedHome, IntPtr pNativeHome)
static void CheckStringLength(int length)
static unsafe void FmtClassUpdateNativeInternal(object obj, byte *pNative, ref CleanupWorkListElement pCleanupWorkList)
static unsafe void FmtClassUpdateCLRInternal(object obj, byte *pNative)
static void DestroyCleanupList(ref CleanupWorkListElement pCleanupWorkList)
override string ToString()
unsafe void InternalCopy(IntPtr dest, int charLen)
static void ThrowInvalidOperationException()
static TypeCode GetTypeCode(Type? type)
static readonly IntPtr Zero
unsafe IntPtr ConvertArrayToNative(object pManagedHome, int dwFlags)
IntPtr ConvertToNative(object pManagedHome, int dwFlags)
unsafe IntPtr ConvertLayoutToNative(object pManagedHome, int dwFlags)
static bool IsAnsi(int dwFlags)
static unsafe IntPtr ConvertStringToNative(string pManagedHome, int dwFlags)
static bool IsThrowOn(int dwFlags)
AsAnyMarshaler(IntPtr pvArrayMarshaler)
unsafe IntPtr ConvertStringBuilderToNative(StringBuilder pManagedHome, int dwFlags)
void ClearNative(IntPtr pNativeHome)
static bool IsIn(int dwFlags)
static bool IsOut(int dwFlags)
static bool IsBestFit(int dwFlags)
unsafe void ConvertToManaged(object pManagedHome, IntPtr pNativeHome)
CleanupWorkListElement cleanupWorkList
BackPropAction backPropAction