﻿<?xml version="1.0" encoding="utf-8"?><Type Name="CallingConvention" FullName="System.Runtime.InteropServices.CallingConvention" FullNameSP="System_Runtime_InteropServices_CallingConvention" Maintainer="ecma"><TypeSignature Language="ILASM" Value=".class public sealed serializable CallingConvention extends System.Enum" /><TypeSignature Language="C#" Value="public enum CallingConvention" /><TypeSignature Language="ILAsm" Value=".class public auto ansi serializable sealed CallingConvention extends System.Enum" /><MemberOfLibrary>RuntimeInfrastructure</MemberOfLibrary><AssemblyInfo><AssemblyName>mscorlib</AssemblyName><AssemblyPublicKey>[00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 ]</AssemblyPublicKey><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><Base><BaseTypeName>System.Enum</BaseTypeName></Base><Attributes><Attribute><AttributeName>System.Runtime.InteropServices.ComVisible(true)</AttributeName></Attribute></Attributes><Docs><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>Always use the <see cref="T:System.Runtime.InteropServices.CallingConvention" /> enumeration rather than the <see cref="T:System.Runtime.InteropServices.CALLCONV" /> enumeration to specify a calling convention in managed code. The latter exists only for the sake of COM definitions. The <see cref="T:System.Runtime.InteropServices.CallingConvention" /> enumeration is used by <see cref="T:System.Runtime.InteropServices.DllImportAttribute" /> and several classes in <see cref="N:System.Reflection.Emit" /> to dynamically emit platform invoke signatures.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Specifies the calling convention required to call methods implemented in unmanaged code.</para></summary></Docs><Members><Member MemberName="Cdecl"><MemberSignature Language="ILASM" Value=".field public static literal valuetype System.Runtime.InteropServices.CallingConvention Cdecl = 2" /><MemberSignature Language="C#" Value="Cdecl" /><MemberSignature Language="ILAsm" Value=".field public static literal valuetype System.Runtime.InteropServices.CallingConvention Cdecl = int32(2)" /><MemberType>Field</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Runtime.InteropServices.CallingConvention</ReturnType></ReturnValue><Parameters /><MemberValue>Cdecl</MemberValue><Docs><remarks>To be added.</remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>The caller cleans the stack. This enables calling functions with varargs, which makes it appropriate to use for methods that accept a variable number of parameters, such as Printf.</para></summary></Docs><Excluded>0</Excluded></Member><Member MemberName="FastCall"><MemberSignature Language="ILASM" Value=".field public static literal valuetype System.Runtime.InteropServices.CallingConvention FastCall = 5" /><MemberSignature Language="C#" Value="FastCall" /><MemberSignature Language="ILAsm" Value=".field public static literal valuetype System.Runtime.InteropServices.CallingConvention FastCall = int32(5)" /><MemberType>Field</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Runtime.InteropServices.CallingConvention</ReturnType></ReturnValue><Parameters /><MemberValue>FastCall</MemberValue><Docs><remarks>To be added.</remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>This calling convention is not supported.</para></summary></Docs><Excluded>0</Excluded></Member><Member MemberName="StdCall"><MemberSignature Language="ILASM" Value=".field public static literal valuetype System.Runtime.InteropServices.CallingConvention StdCall = 3" /><MemberSignature Language="C#" Value="StdCall" /><MemberSignature Language="ILAsm" Value=".field public static literal valuetype System.Runtime.InteropServices.CallingConvention StdCall = int32(3)" /><MemberType>Field</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Runtime.InteropServices.CallingConvention</ReturnType></ReturnValue><Parameters /><MemberValue>StdCall</MemberValue><Docs><remarks>To be added.</remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>The callee cleans the stack. This is the default convention for calling unmanaged functions with platform invoke.</para></summary></Docs><Excluded>0</Excluded></Member><Member MemberName="ThisCall"><MemberSignature Language="ILASM" Value=".field public static literal valuetype System.Runtime.InteropServices.CallingConvention ThisCall = 4" /><MemberSignature Language="C#" Value="ThisCall" /><MemberSignature Language="ILAsm" Value=".field public static literal valuetype System.Runtime.InteropServices.CallingConvention ThisCall = int32(4)" /><MemberType>Field</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Runtime.InteropServices.CallingConvention</ReturnType></ReturnValue><Parameters /><MemberValue>ThisCall</MemberValue><Docs><remarks>To be added.</remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>The first parameter is the this pointer and is stored in register ECX. Other parameters are pushed on the stack. This calling convention is used to call methods on classes exported from an unmanaged DLL.</para></summary></Docs><Excluded>0</Excluded></Member><Member MemberName="Winapi"><MemberSignature Language="C#" Value="Winapi" /><MemberSignature Language="ILAsm" Value=".field public static literal valuetype System.Runtime.InteropServices.CallingConvention Winapi = int32(1)" /><MemberType>Field</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Runtime.InteropServices.CallingConvention</ReturnType></ReturnValue><MemberValue>Winapi</MemberValue><Docs><remarks>To be added.</remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>This member is not actually a calling convention, but instead uses the default platform calling convention. For example, on Windows the default is <see cref="F:System.Runtime.InteropServices.CallingConvention.StdCall" /> and on Windows CE.NET it is <see cref="F:System.Runtime.InteropServices.CallingConvention.Cdecl" />.</para></summary></Docs></Member></Members><TypeExcluded>0</TypeExcluded></Type>