mscorlib(4.0.0.0) API with additions
System.Runtime.InteropServices Namespace Reference

Classes

interface  _Activator
 Exposes the T:System.Activator class to unmanaged code. More...
 
interface  _Assembly
 Exposes the public members of the T:System.Reflection.Assembly class to unmanaged code. More...
 
interface  _AssemblyBuilder
 Exposes the T:System.Reflection.Emit.AssemblyBuilder class to unmanaged code. More...
 
interface  _AssemblyName
 Exposes the T:System.Reflection.AssemblyName class to unmanaged code. More...
 
interface  _Attribute
 Exposes the T:System.Attribute class to unmanaged code. More...
 
interface  _ConstructorBuilder
 Exposes the T:System.Reflection.Emit.ConstructorBuilder class to unmanaged code. More...
 
interface  _ConstructorInfo
 Exposes the public members of the T:System.Reflection.ConstructorInfo class to unmanaged code. More...
 
interface  _CustomAttributeBuilder
 Exposes the T:System.Reflection.Emit.CustomAttributeBuilder class to unmanaged code. More...
 
interface  _EnumBuilder
 Exposes the T:System.Reflection.Emit.EnumBuilder class to unmanaged code. More...
 
interface  _EventBuilder
 Exposes the T:System.Reflection.Emit.EventBuilder class to unmanaged code. More...
 
interface  _EventInfo
 Exposes the public members of the T:System.Reflection.EventInfo class to unmanaged code. More...
 
interface  _Exception
 Exposes the public members of the T:System.Exception class to unmanaged code. More...
 
interface  _FieldBuilder
 Exposes the T:System.Reflection.Emit.FieldBuilder class to unmanaged code. More...
 
interface  _FieldInfo
 Exposes the public members of the T:System.Reflection.FieldInfo class to unmanaged code. More...
 
interface  _ILGenerator
 Exposes the T:System.Reflection.Emit.ILGenerator class to unmanaged code. More...
 
interface  _LocalBuilder
 Exposes the T:System.Reflection.Emit.LocalBuilder class to unmanaged code. More...
 
interface  _MemberInfo
 Exposes the public members of the T:System.Reflection.MemberInfo class to unmanaged code. More...
 
interface  _MethodBase
 Exposes the public members of the T:System.Reflection.MethodBase class to unmanaged code. More...
 
interface  _MethodBuilder
 Exposes the T:System.Reflection.Emit.MethodBuilder class to unmanaged code. More...
 
interface  _MethodInfo
 Exposes the public members of the T:System.Reflection.MethodInfo class to unmanaged code. More...
 
interface  _MethodRental
 Exposes the T:System.Reflection.Emit.MethodRental class to unmanaged code. More...
 
interface  _Module
 Exposes the T:System.Reflection.Module class to unmanaged code. More...
 
interface  _ModuleBuilder
 Exposes the T:System.Reflection.Emit.ModuleBuilder class to unmanaged code. More...
 
interface  _ParameterBuilder
 Exposes the T:System.Reflection.Emit.ParameterBuilder class to unmanaged code. More...
 
interface  _ParameterInfo
 Exposes the T:System.Reflection.ParameterInfo class to unmanaged code. More...
 
interface  _PropertyBuilder
 Exposes the T:System.Reflection.Emit.PropertyBuilder class to unmanaged code. More...
 
interface  _PropertyInfo
 Exposes the public members of the T:System.Reflection.PropertyInfo class to unmanaged code. More...
 
interface  _SignatureHelper
 Exposes the T:System.Reflection.Emit.SignatureHelper class to unmanaged code. More...
 
interface  _Thread
 Exposes the T:System.Threading.Thread class to unmanaged code. More...
 
interface  _Type
 Exposes the public members of the T:System.Type class to the unmanaged code. More...
 
interface  _TypeBuilder
 Exposes the T:System.Reflection.Emit.TypeBuilder class to unmanaged code. More...
 
class  AllowReversePInvokeCallsAttribute
 Allows an unmanaged method to call a managed method. More...
 
struct  ArrayWithOffset
 Encapsulates an array and an offset within the specified array. More...
 
class  AutomationProxyAttribute
 Specifies whether the type should be marshaled using the Automation marshaler or a custom proxy and stub. More...
 
class  BestFitMappingAttribute
 Controls whether Unicode characters are converted to the closest matching ANSI characters. More...
 
struct  BIND_OPTS
 Use T:System.Runtime.InteropServices.ComTypes.BIND_OPTS instead. More...
 
struct  BINDPTR
 Use T:System.Runtime.InteropServices.ComTypes.BINDPTR instead. More...
 
class  BStrWrapper
 Marshals data of type VT_BSTR from managed to unmanaged code. This class cannot be inherited. More...
 
class  ClassInterfaceAttribute
 Indicates the type of class interface to be generated for a class exposed to COM, if an interface is generated at all. More...
 
class  CoClassAttribute
 Specifies the class identifier of a coclass imported from a type library. More...
 
class  ComAliasNameAttribute
 Indicates the COM alias for a parameter or field type. More...
 
class  ComAwareEventInfo
 Permits late-bound registration of an event handler. More...
 
class  ComCompatibleVersionAttribute
 Indicates to a COM client that all classes in the current version of an assembly are compatible with classes in an earlier version of the assembly. More...
 
class  ComConversionLossAttribute
 Indicates that information was lost about a class or interface when it was imported from a type library to an assembly. More...
 
class  ComDefaultInterfaceAttribute
 Specifies a default interface to expose to COM. This class cannot be inherited. More...
 
class  ComEventInterfaceAttribute
 Identifies the source interface and the class that implements the methods of the event interface that is generated when a coclass is imported from a COM type library. More...
 
class  ComEventsHelper
 Provides methods that enable .NET Framework delegates that handle events to be added and removed from COM objects. More...
 
class  COMException
 The exception that is thrown when an unrecognized HRESULT is returned from a COM method call. More...
 
class  ComImportAttribute
 Indicates that the attributed type was previously defined in COM. More...
 
class  ComRegisterFunctionAttribute
 Specifies the method to call when you register an assembly for use from COM; this enables the execution of user-written code during the registration process. More...
 
class  ComSourceInterfacesAttribute
 Identifies a list of interfaces that are exposed as COM event sources for the attributed class. More...
 
class  ComUnregisterFunctionAttribute
 Specifies the method to call when you unregister an assembly for use from COM; this allows for the execution of user-written code during the unregistration process. More...
 
class  ComVisibleAttribute
 Controls accessibility of an individual managed type or member, or of all types within an assembly, to COM. More...
 
struct  CONNECTDATA
 Use T:System.Runtime.InteropServices.ComTypes.CONNECTDATA instead. More...
 
class  CriticalHandle
 Represents a wrapper class for handle resources. More...
 
class  CurrencyWrapper
 Wraps objects the marshaler should marshal as a VT_CY. More...
 
class  DefaultCharSetAttribute
 Specifies the value of the T:System.Runtime.InteropServices.CharSet enumeration. This class cannot be inherited. More...
 
class  DefaultDllImportSearchPathsAttribute
 Specifies the paths that are used to search for DLLs that provide functions for platform invokes. More...
 
class  DefaultParameterValueAttribute
 Sets the default value of a parameter when called from a language that supports default parameters. This class cannot be inherited. More...
 
class  DispatchWrapper
 Wraps objects the marshaler should marshal as a VT_DISPATCH. More...
 
class  DispIdAttribute
 Specifies the COM dispatch identifier (DISPID) of a method, field, or property. More...
 
struct  DISPPARAMS
 Use T:System.Runtime.InteropServices.ComTypes.DISPPARAMS instead. More...
 
class  DllImportAttribute
 Indicates that the attributed method is exposed by an unmanaged dynamic-link library (DLL) as a static entry point. More...
 
struct  ELEMDESC
 Use T:System.Runtime.InteropServices.ComTypes.ELEMDESC instead. More...
 
class  ErrorWrapper
 Wraps objects the marshaler should marshal as a VT_ERROR. More...
 
struct  EXCEPINFO
 Use T:System.Runtime.InteropServices.ComTypes.EXCEPINFO instead. More...
 
class  ExtensibleClassFactory
 Enables customization of managed objects that extend from unmanaged objects during creation. More...
 
class  ExternalException
 The base exception type for all COM interop exceptions and structured exception handling (SEH) exceptions. More...
 
class  FieldOffsetAttribute
 Indicates the physical position of fields within the unmanaged representation of a class or structure. More...
 
struct  FILETIME
 Use T:System.Runtime.InteropServices.ComTypes.FILETIME instead. More...
 
struct  FUNCDESC
 Use T:System.Runtime.InteropServices.ComTypes.FUNCDESC instead. More...
 
struct  GCHandle
 Provides a way to access a managed object from unmanaged memory. More...
 
class  GuidAttribute
 Supplies an explicit T:System.Guid when an automatic GUID is undesirable. More...
 
class  HandleCollector
 Tracks outstanding handles and forces a garbage collection when the specified threshold is reached. More...
 
struct  HandleRef
 Wraps a managed object holding a handle to a resource that is passed to unmanaged code using platform invoke. More...
 
interface  ICustomAdapter
 Provides a way for clients to access the actual object, rather than the adapter object handed out by a custom marshaler. More...
 
interface  ICustomFactory
 Enables users to write activation code for managed objects that extend T:System.MarshalByRefObject. More...
 
interface  ICustomMarshaler
 Provides custom wrappers for handling method calls. More...
 
interface  ICustomQueryInterface
 Enables developers to provide a custom, managed implementation of the IUnknown::QueryInterface(REFIID riid, void **ppvObject) method. More...
 
class  IDispatchImplAttribute
 Indicates which IDispatch implementation the common language runtime uses when exposing dual interfaces and dispinterfaces to COM. More...
 
struct  IDLDESC
 Use T:System.Runtime.InteropServices.ComTypes.IDLDESC instead. More...
 
class  ImportedFromTypeLibAttribute
 Indicates that the types defined within an assembly were originally defined in a type library. More...
 
class  InAttribute
 Indicates that data should be marshaled from the caller to the callee, but not back to the caller. More...
 
class  InterfaceTypeAttribute
 Indicates whether a managed interface is dual, dispatch-only, or IUnknown -only when exposed to COM. More...
 
class  InvalidComObjectException
 The exception thrown when an invalid COM object is used. More...
 
class  InvalidOleVariantTypeException
 The exception thrown by the marshaler when it encounters an argument of a variant type that can not be marshaled to managed code. More...
 
interface  IRegistrationServices
 Provides a set of services for registering and unregistering managed assemblies for use from COM. More...
 
interface  ITypeLibConverter
 Provides a set of services that convert a managed assembly to a COM type library and vice versa. More...
 
interface  ITypeLibExporterNameProvider
 Provides control over the casing of names when exported to a type library. More...
 
interface  ITypeLibExporterNotifySink
 Provides a callback mechanism for the assembly converter to inform the caller of the status of the conversion, and involve the caller in the conversion process itself. More...
 
interface  ITypeLibImporterNotifySink
 Provides a callback mechanism for the type library converter to inform the caller of the status of the conversion, and involve the caller in the conversion process itself. More...
 
class  LCIDConversionAttribute
 Indicates that a method's unmanaged signature expects a locale identifier (LCID) parameter. More...
 
class  ManagedToNativeComInteropStubAttribute
 Provides support for user customization of interop stubs in managed-to-COM interop scenarios. More...
 
class  Marshal
 Provides a collection of methods for allocating unmanaged memory, copying unmanaged memory blocks, and converting managed to unmanaged types, as well as other miscellaneous methods used when interacting with unmanaged code. More...
 
class  MarshalAsAttribute
 Indicates how to marshal the data between managed and unmanaged code. More...
 
class  MarshalDirectiveException
 The exception that is thrown by the marshaler when it encounters a T:System.Runtime.InteropServices.MarshalAsAttribute it does not support. More...
 
class  OptionalAttribute
 Indicates that a parameter is optional. More...
 
struct  OSPlatform
 Represents an operating system platform. More...
 
class  OutAttribute
 Indicates that data should be marshaled from callee back to caller. More...
 
struct  PARAMDESC
 Use T:System.Runtime.InteropServices.ComTypes.PARAMDESC instead. More...
 
class  PreserveSigAttribute
 Indicates that the HRESULT or retval signature transformation that takes place during COM interop calls should be suppressed. More...
 
class  PrimaryInteropAssemblyAttribute
 Indicates that the attributed assembly is a primary interop assembly. More...
 
class  ProgIdAttribute
 Allows the user to specify the ProgID of a class. More...
 
class  RegistrationServices
 Provides a set of services for registering and unregistering managed assemblies for use from COM. More...
 
class  RuntimeEnvironment
 Provides a collection of static methods that return information about the common language runtime environment. More...
 
class  RuntimeInformation
 Provides information about the .NET runtime installation. More...
 
class  SafeArrayRankMismatchException
 The exception thrown when the rank of an incoming SAFEARRAY does not match the rank specified in the managed signature. More...
 
class  SafeArrayTypeMismatchException
 The exception thrown when the type of the incoming SAFEARRAY does not match the type specified in the managed signature. More...
 
class  SafeBuffer
 Provides a controlled memory buffer that can be used for reading and writing. Attempts to access memory outside the controlled buffer (underruns and overruns) raise exceptions. More...
 
class  SafeHandle
 Represents a wrapper class for operating system handles. This class must be inherited. More...
 
class  SEHException
 Represents structured exception handling (SEH) errors. More...
 
class  SetWin32ContextInIDispatchAttribute
 This attribute has been deprecated. More...
 
class  StandardOleMarshalObject
 Replaces the standard common language runtime (CLR) free-threaded marshaler with the standard OLE STA marshaler. More...
 
struct  STATSTG
 Use T:System.Runtime.InteropServices.ComTypes.STATSTG instead. More...
 
class  StructLayoutAttribute
 Lets you control the physical layout of the data fields of a class or structure in memory. More...
 
struct  TYPEATTR
 Use T:System.Runtime.InteropServices.ComTypes.TYPEATTR instead. More...
 
struct  TYPEDESC
 Use T:System.Runtime.InteropServices.ComTypes.TYPEDESC instead. More...
 
class  TypeIdentifierAttribute
 Provides support for type equivalence. More...
 
struct  TYPELIBATTR
 Use T:System.Runtime.InteropServices.ComTypes.TYPELIBATTR instead. More...
 
class  TypeLibConverter
 Provides a set of services that convert a managed assembly to a COM type library and vice versa. More...
 
class  TypeLibFuncAttribute
 Contains the T:System.Runtime.InteropServices.FUNCFLAGS that were originally imported for this method from the COM type library. More...
 
class  TypeLibImportClassAttribute
 Specifies which T:System.Type exclusively uses an interface. This class cannot be inherited. More...
 
class  TypeLibTypeAttribute
 Contains the T:System.Runtime.InteropServices.TYPEFLAGS that were originally imported for this type from the COM type library. More...
 
class  TypeLibVarAttribute
 Contains the T:System.Runtime.InteropServices.VARFLAGS that were originally imported for this field from the COM type library. More...
 
class  TypeLibVersionAttribute
 Specifies the version number of an exported type library. More...
 
interface  UCOMIBindCtx
 Use T:System.Runtime.InteropServices.ComTypes.BIND_OPTS instead. More...
 
interface  UCOMIConnectionPoint
 Use T:System.Runtime.InteropServices.ComTypes.IConnectionPoint instead. More...
 
interface  UCOMIConnectionPointContainer
 Use T:System.Runtime.InteropServices.ComTypes.IConnectionPointContainer instead. More...
 
interface  UCOMIEnumConnectionPoints
 Use T:System.Runtime.InteropServices.ComTypes.IEnumConnectionPoints instead. More...
 
interface  UCOMIEnumConnections
 Use T:System.Runtime.InteropServices.ComTypes.IEnumConnections instead. More...
 
interface  UCOMIEnumMoniker
 Use T:System.Runtime.InteropServices.ComTypes.IEnumMoniker instead. More...
 
interface  UCOMIEnumString
 Use T:System.Runtime.InteropServices.ComTypes.IEnumString instead. More...
 
interface  UCOMIEnumVARIANT
 Use T:System.Runtime.InteropServices.ComTypes.IEnumVARIANT instead. More...
 
interface  UCOMIMoniker
 Use T:System.Runtime.InteropServices.ComTypes.IMoniker instead. More...
 
interface  UCOMIPersistFile
 Use T:System.Runtime.InteropServices.ComTypes.IPersistFile instead. More...
 
interface  UCOMIRunningObjectTable
 Use T:System.Runtime.InteropServices.ComTypes.IRunningObjectTable instead. More...
 
interface  UCOMIStream
 Use T:System.Runtime.InteropServices.ComTypes.IStream instead. More...
 
interface  UCOMITypeComp
 Use T:System.Runtime.InteropServices.ComTypes.ITypeComp instead. More...
 
interface  UCOMITypeInfo
 Use T:System.Runtime.InteropServices.ComTypes.ITypeInfo instead. More...
 
interface  UCOMITypeLib
 Use T:System.Runtime.InteropServices.ComTypes.ITypeLib instead. More...
 
class  UnknownWrapper
 Wraps objects the marshaler should marshal as a VT_UNKNOWN. More...
 
class  UnmanagedFunctionPointerAttribute
 Controls the marshaling behavior of a delegate signature passed as an unmanaged function pointer to or from unmanaged code. This class cannot be inherited. More...
 
struct  VARDESC
 Use T:System.Runtime.InteropServices.ComTypes.VARDESC instead. More...
 
class  VariantWrapper
 Marshals data of type VT_VARIANT | VT_BYREF from managed to unmanaged code. This class cannot be inherited. More...
 

Enumerations

enum  Architecture { Architecture.X86, Architecture.X64, Architecture.Arm, Architecture.Arm64 }
 Indicates the processor architecture. More...
 
enum  AssemblyRegistrationFlags { AssemblyRegistrationFlags.None = 0x0, AssemblyRegistrationFlags.SetCodeBase = 0x1 }
 Defines a set of flags used when registering assemblies. More...
 
enum  CALLCONV {
  CALLCONV.CC_CDECL = 1, CALLCONV.CC_MSCPASCAL = 2, CALLCONV.CC_PASCAL = 2, CALLCONV.CC_MACPASCAL = 3,
  CALLCONV.CC_STDCALL = 4, CALLCONV.CC_RESERVED = 5, CALLCONV.CC_SYSCALL = 6, CALLCONV.CC_MPWCDECL = 7,
  CALLCONV.CC_MPWPASCAL = 8, CALLCONV.CC_MAX = 9
}
 Use T:System.Runtime.InteropServices.ComTypes.CALLCONV instead. More...
 
enum  CallingConvention {
  CallingConvention.Winapi = 1, CallingConvention.Cdecl, CallingConvention.StdCall, CallingConvention.ThisCall,
  CallingConvention.FastCall
}
 Specifies the calling convention required to call methods implemented in unmanaged code. More...
 
enum  CharSet { CharSet.None = 1, CharSet.Ansi, CharSet.Unicode, CharSet.Auto }
 Dictates which character set marshaled strings should use. More...
 
enum  ClassInterfaceType { ClassInterfaceType.None, ClassInterfaceType.AutoDispatch, ClassInterfaceType.AutoDual }
 Identifies the type of class interface that is generated for a class. More...
 
enum  ComInterfaceType { ComInterfaceType.InterfaceIsDual, ComInterfaceType.InterfaceIsIUnknown, ComInterfaceType.InterfaceIsIDispatch, ComInterfaceType.InterfaceIsIInspectable }
 Identifies how to expose an interface to COM. More...
 
enum  ComMemberType { ComMemberType.Method, ComMemberType.PropGet, ComMemberType.PropSet }
 Describes the type of a COM member. More...
 
enum  CustomQueryInterfaceMode { CustomQueryInterfaceMode.Ignore, CustomQueryInterfaceMode.Allow }
 Indicates whether the M:System.Runtime.InteropServices.Marshal.GetComInterfaceForObject(System.Object,System.Type,System.Runtime.InteropServices.CustomQueryInterfaceMode) method's IUnknown::QueryInterface calls can use the T:System.Runtime.InteropServices.ICustomQueryInterface interface. More...
 
enum  CustomQueryInterfaceResult { CustomQueryInterfaceResult.Handled, CustomQueryInterfaceResult.NotHandled, CustomQueryInterfaceResult.Failed }
 Provides return values for the M:System.Runtime.InteropServices.ICustomQueryInterface.GetInterface(System.Guid@,System.IntPtr@) method. More...
 
enum  DESCKIND {
  DESCKIND.DESCKIND_NONE, DESCKIND.DESCKIND_FUNCDESC, DESCKIND.DESCKIND_VARDESC, DESCKIND.DESCKIND_TYPECOMP,
  DESCKIND.DESCKIND_IMPLICITAPPOBJ, DESCKIND.DESCKIND_MAX
}
 Use T:System.Runtime.InteropServices.ComTypes.DESCKIND instead. More...
 
enum  DllImportSearchPath {
  DllImportSearchPath.UseDllDirectoryForDependencies = 0x100, DllImportSearchPath.ApplicationDirectory = 0x200, DllImportSearchPath.UserDirectories = 0x400, DllImportSearchPath.System32 = 0x800,
  DllImportSearchPath.SafeDirectories = 0x1000, DllImportSearchPath.AssemblyDirectory = 0x2, DllImportSearchPath.LegacyBehavior = 0x0
}
 Specifies the paths that are used to search for DLLs that provide functions for platform invokes. More...
 
enum  ExporterEventKind { ExporterEventKind.NOTIF_TYPECONVERTED, ExporterEventKind.NOTIF_CONVERTWARNING, ExporterEventKind.ERROR_REFTOINVALIDASSEMBLY }
 Describes the callbacks that the type library exporter makes when exporting a type library. More...
 
enum  FUNCFLAGS : short {
  FUNCFLAGS.FUNCFLAG_FRESTRICTED = 0x1, FUNCFLAGS.FUNCFLAG_FSOURCE = 0x2, FUNCFLAGS.FUNCFLAG_FBINDABLE = 0x4, FUNCFLAGS.FUNCFLAG_FREQUESTEDIT = 0x8,
  FUNCFLAGS.FUNCFLAG_FDISPLAYBIND = 0x10, FUNCFLAGS.FUNCFLAG_FDEFAULTBIND = 0x20, FUNCFLAGS.FUNCFLAG_FHIDDEN = 0x40, FUNCFLAGS.FUNCFLAG_FUSESGETLASTERROR = 0x80,
  FUNCFLAGS.FUNCFLAG_FDEFAULTCOLLELEM = 0x100, FUNCFLAGS.FUNCFLAG_FUIDEFAULT = 0x200, FUNCFLAGS.FUNCFLAG_FNONBROWSABLE = 0x400, FUNCFLAGS.FUNCFLAG_FREPLACEABLE = 0x800,
  FUNCFLAGS.FUNCFLAG_FIMMEDIATEBIND = 0x1000
}
 Use T:System.Runtime.InteropServices.ComTypes.FUNCFLAGS instead. More...
 
enum  FUNCKIND {
  FUNCKIND.FUNC_VIRTUAL, FUNCKIND.FUNC_PUREVIRTUAL, FUNCKIND.FUNC_NONVIRTUAL, FUNCKIND.FUNC_STATIC,
  FUNCKIND.FUNC_DISPATCH
}
 Use T:System.Runtime.InteropServices.ComTypes.FUNCKIND instead. More...
 
enum  GCHandleType { GCHandleType.Weak, GCHandleType.WeakTrackResurrection, GCHandleType.Normal, GCHandleType.Pinned }
 Represents the types of handles the T:System.Runtime.InteropServices.GCHandle class can allocate. More...
 
enum  IDispatchImplType { IDispatchImplType.SystemDefinedImpl, IDispatchImplType.InternalImpl, IDispatchImplType.CompatibleImpl }
 Indicates which IDispatch implementation to use for a particular class. More...
 
enum  IDLFLAG : short {
  IDLFLAG.IDLFLAG_NONE = 0x0, IDLFLAG.IDLFLAG_FIN = 0x1, IDLFLAG.IDLFLAG_FOUT = 0x2, IDLFLAG.IDLFLAG_FLCID = 0x4,
  IDLFLAG.IDLFLAG_FRETVAL = 0x8
}
 Use T:System.Runtime.InteropServices.ComTypes.IDLFLAG instead. More...
 
enum  IMPLTYPEFLAGS { IMPLTYPEFLAGS.IMPLTYPEFLAG_FDEFAULT = 0x1, IMPLTYPEFLAGS.IMPLTYPEFLAG_FSOURCE = 0x2, IMPLTYPEFLAGS.IMPLTYPEFLAG_FRESTRICTED = 0x4, IMPLTYPEFLAGS.IMPLTYPEFLAG_FDEFAULTVTABLE = 0x8 }
 Use T:System.Runtime.InteropServices.ComTypes.IMPLTYPEFLAGS instead. More...
 
enum  ImporterEventKind { ImporterEventKind.NOTIF_TYPECONVERTED, ImporterEventKind.NOTIF_CONVERTWARNING, ImporterEventKind.ERROR_REFTOINVALIDTYPELIB }
 Describes the callbacks that the type library importer makes when importing a type library. More...
 
enum  INVOKEKIND { INVOKEKIND.INVOKE_FUNC = 1, INVOKEKIND.INVOKE_PROPERTYGET = 2, INVOKEKIND.INVOKE_PROPERTYPUT = 4, INVOKEKIND.INVOKE_PROPERTYPUTREF = 8 }
 Use T:System.Runtime.InteropServices.ComTypes.INVOKEKIND instead. More...
 
enum  LayoutKind { LayoutKind.Sequential = 0, LayoutKind.Explicit = 2, LayoutKind.Auto = 3 }
 Controls the layout of an object when exported to unmanaged code. More...
 
enum  LIBFLAGS : short { LIBFLAGS.LIBFLAG_FRESTRICTED = 0x1, LIBFLAGS.LIBFLAG_FCONTROL = 0x2, LIBFLAGS.LIBFLAG_FHIDDEN = 0x4, LIBFLAGS.LIBFLAG_FHASDISKIMAGE = 0x8 }
 Use T:System.Runtime.InteropServices.ComTypes.LIBFLAGS instead. More...
 
enum  PARAMFLAG : short {
  PARAMFLAG.PARAMFLAG_NONE = 0x0, PARAMFLAG.PARAMFLAG_FIN = 0x1, PARAMFLAG.PARAMFLAG_FOUT = 0x2, PARAMFLAG.PARAMFLAG_FLCID = 0x4,
  PARAMFLAG.PARAMFLAG_FRETVAL = 0x8, PARAMFLAG.PARAMFLAG_FOPT = 0x10, PARAMFLAG.PARAMFLAG_FHASDEFAULT = 0x20, PARAMFLAG.PARAMFLAG_FHASCUSTDATA = 0x40
}
 Use T:System.Runtime.InteropServices.ComTypes.PARAMFLAG instead. More...
 
enum  PInvokeMap {
  NoMangle = 1, CharSetMask = 6, CharSetNotSpec = 0, CharSetAnsi = 2,
  CharSetUnicode = 4, CharSetAuto = 6, PinvokeOLE = 0x20, SupportsLastError = 0x40,
  BestFitMask = 48, BestFitEnabled = 0x10, BestFitDisabled = 0x20, BestFitUseAsm = 48,
  ThrowOnUnmappableCharMask = 12288, ThrowOnUnmappableCharEnabled = 0x1000, ThrowOnUnmappableCharDisabled = 0x2000, ThrowOnUnmappableCharUseAsm = 12288,
  CallConvMask = 1792, CallConvWinapi = 0x100, CallConvCdecl = 0x200, CallConvStdcall = 768,
  CallConvThiscall = 0x400, CallConvFastcall = 1280
}
 
enum  RegistrationClassContext {
  RegistrationClassContext.InProcessServer = 0x1, RegistrationClassContext.InProcessHandler = 0x2, RegistrationClassContext.LocalServer = 0x4, RegistrationClassContext.InProcessServer16 = 0x8,
  RegistrationClassContext.RemoteServer = 0x10, RegistrationClassContext.InProcessHandler16 = 0x20, RegistrationClassContext.Reserved1 = 0x40, RegistrationClassContext.Reserved2 = 0x80,
  RegistrationClassContext.Reserved3 = 0x100, RegistrationClassContext.Reserved4 = 0x200, RegistrationClassContext.NoCodeDownload = 0x400, RegistrationClassContext.Reserved5 = 0x800,
  RegistrationClassContext.NoCustomMarshal = 0x1000, RegistrationClassContext.EnableCodeDownload = 0x2000, RegistrationClassContext.NoFailureLog = 0x4000, RegistrationClassContext.DisableActivateAsActivator = 0x8000,
  RegistrationClassContext.EnableActivateAsActivator = 0x10000, RegistrationClassContext.FromDefaultContext = 0x20000
}
 Specifies the set of execution contexts in which a class object will be made available for requests to construct instances. More...
 
enum  RegistrationConnectionType {
  RegistrationConnectionType.SingleUse = 0x0, RegistrationConnectionType.MultipleUse = 0x1, RegistrationConnectionType.MultiSeparate = 0x2, RegistrationConnectionType.Suspended = 0x4,
  RegistrationConnectionType.Surrogate = 0x8
}
 Defines the types of connections to a class object. More...
 
enum  SYSKIND { SYSKIND.SYS_WIN16, SYSKIND.SYS_WIN32, SYSKIND.SYS_MAC }
 Use T:System.Runtime.InteropServices.ComTypes.SYSKIND instead. More...
 
enum  TYPEFLAGS : short {
  TYPEFLAGS.TYPEFLAG_FAPPOBJECT = 0x1, TYPEFLAGS.TYPEFLAG_FCANCREATE = 0x2, TYPEFLAGS.TYPEFLAG_FLICENSED = 0x4, TYPEFLAGS.TYPEFLAG_FPREDECLID = 0x8,
  TYPEFLAGS.TYPEFLAG_FHIDDEN = 0x10, TYPEFLAGS.TYPEFLAG_FCONTROL = 0x20, TYPEFLAGS.TYPEFLAG_FDUAL = 0x40, TYPEFLAGS.TYPEFLAG_FNONEXTENSIBLE = 0x80,
  TYPEFLAGS.TYPEFLAG_FOLEAUTOMATION = 0x100, TYPEFLAGS.TYPEFLAG_FRESTRICTED = 0x200, TYPEFLAGS.TYPEFLAG_FAGGREGATABLE = 0x400, TYPEFLAGS.TYPEFLAG_FREPLACEABLE = 0x800,
  TYPEFLAGS.TYPEFLAG_FDISPATCHABLE = 0x1000, TYPEFLAGS.TYPEFLAG_FREVERSEBIND = 0x2000, TYPEFLAGS.TYPEFLAG_FPROXY = 0x4000
}
 Use T:System.Runtime.InteropServices.ComTypes.TYPEFLAGS instead. More...
 
enum  TYPEKIND {
  TYPEKIND.TKIND_ENUM, TYPEKIND.TKIND_RECORD, TYPEKIND.TKIND_MODULE, TYPEKIND.TKIND_INTERFACE,
  TYPEKIND.TKIND_DISPATCH, TYPEKIND.TKIND_COCLASS, TYPEKIND.TKIND_ALIAS, TYPEKIND.TKIND_UNION,
  TYPEKIND.TKIND_MAX
}
 Use T:System.Runtime.InteropServices.ComTypes.TYPEKIND instead. More...
 
enum  TypeLibExporterFlags {
  TypeLibExporterFlags.None = 0x0, TypeLibExporterFlags.OnlyReferenceRegistered = 0x1, TypeLibExporterFlags.CallerResolvedReferences = 0x2, TypeLibExporterFlags.OldNames = 0x4,
  TypeLibExporterFlags.ExportAs32Bit = 0x10, TypeLibExporterFlags.ExportAs64Bit = 0x20
}
 Indicates how a type library should be produced. More...
 
enum  TypeLibFuncFlags {
  TypeLibFuncFlags.FRestricted = 0x1, TypeLibFuncFlags.FSource = 0x2, TypeLibFuncFlags.FBindable = 0x4, TypeLibFuncFlags.FRequestEdit = 0x8,
  TypeLibFuncFlags.FDisplayBind = 0x10, TypeLibFuncFlags.FDefaultBind = 0x20, TypeLibFuncFlags.FHidden = 0x40, TypeLibFuncFlags.FUsesGetLastError = 0x80,
  TypeLibFuncFlags.FDefaultCollelem = 0x100, TypeLibFuncFlags.FUiDefault = 0x200, TypeLibFuncFlags.FNonBrowsable = 0x400, TypeLibFuncFlags.FReplaceable = 0x800,
  TypeLibFuncFlags.FImmediateBind = 0x1000
}
 Describes the original settings of the FUNCFLAGS in the COM type library from where this method was imported. More...
 
enum  TypeLibImporterFlags {
  TypeLibImporterFlags.None = 0x0, TypeLibImporterFlags.PrimaryInteropAssembly = 0x1, TypeLibImporterFlags.UnsafeInterfaces = 0x2, TypeLibImporterFlags.SafeArrayAsSystemArray = 0x4,
  TypeLibImporterFlags.TransformDispRetVals = 0x8, TypeLibImporterFlags.PreventClassMembers = 0x10, TypeLibImporterFlags.SerializableValueClasses = 0x20, TypeLibImporterFlags.ImportAsX86 = 0x100,
  TypeLibImporterFlags.ImportAsX64 = 0x200, TypeLibImporterFlags.ImportAsItanium = 0x400, TypeLibImporterFlags.ImportAsAgnostic = 0x800, TypeLibImporterFlags.ReflectionOnlyLoading = 0x1000,
  TypeLibImporterFlags.NoDefineVersionResource = 0x2000, TypeLibImporterFlags.ImportAsArm = 0x4000
}
 Indicates how an assembly should be produced. More...
 
enum  TypeLibTypeFlags {
  TypeLibTypeFlags.FAppObject = 0x1, TypeLibTypeFlags.FCanCreate = 0x2, TypeLibTypeFlags.FLicensed = 0x4, TypeLibTypeFlags.FPreDeclId = 0x8,
  TypeLibTypeFlags.FHidden = 0x10, TypeLibTypeFlags.FControl = 0x20, TypeLibTypeFlags.FDual = 0x40, TypeLibTypeFlags.FNonExtensible = 0x80,
  TypeLibTypeFlags.FOleAutomation = 0x100, TypeLibTypeFlags.FRestricted = 0x200, TypeLibTypeFlags.FAggregatable = 0x400, TypeLibTypeFlags.FReplaceable = 0x800,
  TypeLibTypeFlags.FDispatchable = 0x1000, TypeLibTypeFlags.FReverseBind = 0x2000
}
 Describes the original settings of the T:System.Runtime.InteropServices.TYPEFLAGS in the COM type library from which the type was imported. More...
 
enum  TypeLibVarFlags {
  TypeLibVarFlags.FReadOnly = 0x1, TypeLibVarFlags.FSource = 0x2, TypeLibVarFlags.FBindable = 0x4, TypeLibVarFlags.FRequestEdit = 0x8,
  TypeLibVarFlags.FDisplayBind = 0x10, TypeLibVarFlags.FDefaultBind = 0x20, TypeLibVarFlags.FHidden = 0x40, TypeLibVarFlags.FRestricted = 0x80,
  TypeLibVarFlags.FDefaultCollelem = 0x100, TypeLibVarFlags.FUiDefault = 0x200, TypeLibVarFlags.FNonBrowsable = 0x400, TypeLibVarFlags.FReplaceable = 0x800,
  TypeLibVarFlags.FImmediateBind = 0x1000
}
 Describes the original settings of the T:System.Runtime.InteropServices.VARFLAGS in the COM type library from which the variable was imported. More...
 
enum  UnmanagedType {
  UnmanagedType.Bool = 2, UnmanagedType.I1 = 3, UnmanagedType.U1 = 4, UnmanagedType.I2 = 5,
  UnmanagedType.U2 = 6, UnmanagedType.I4 = 7, UnmanagedType.U4 = 8, UnmanagedType.I8 = 9,
  UnmanagedType.U8 = 10, UnmanagedType.R4 = 11, UnmanagedType.R8 = 12, UnmanagedType.Currency = 0xF,
  UnmanagedType.BStr = 19, UnmanagedType.LPStr = 20, UnmanagedType.LPWStr = 21, UnmanagedType.LPTStr = 22,
  UnmanagedType.ByValTStr = 23, UnmanagedType.IUnknown = 25, UnmanagedType.IDispatch = 26, UnmanagedType.Struct = 27,
  UnmanagedType.Interface = 28, UnmanagedType.SafeArray = 29, UnmanagedType.ByValArray = 30, UnmanagedType.SysInt = 0x1F,
  UnmanagedType.SysUInt = 0x20, UnmanagedType.VBByRefStr = 34, UnmanagedType.AnsiBStr = 35, UnmanagedType.TBStr = 36,
  UnmanagedType.VariantBool = 37, UnmanagedType.FunctionPtr = 38, UnmanagedType.AsAny = 40, UnmanagedType.LPArray = 42,
  UnmanagedType.LPStruct = 43, UnmanagedType.CustomMarshaler = 44, UnmanagedType.Error = 45, UnmanagedType.IInspectable = 46,
  UnmanagedType.HString = 47, UnmanagedType.LPUTF8Str = 48
}
 Identifies how to marshal parameters or fields to unmanaged code. More...
 
enum  VarEnum {
  VarEnum.VT_EMPTY = 0, VarEnum.VT_NULL = 1, VarEnum.VT_I2 = 2, VarEnum.VT_I4 = 3,
  VarEnum.VT_R4 = 4, VarEnum.VT_R8 = 5, VarEnum.VT_CY = 6, VarEnum.VT_DATE = 7,
  VarEnum.VT_BSTR = 8, VarEnum.VT_DISPATCH = 9, VarEnum.VT_ERROR = 10, VarEnum.VT_BOOL = 11,
  VarEnum.VT_VARIANT = 12, VarEnum.VT_UNKNOWN = 13, VarEnum.VT_DECIMAL = 14, VarEnum.VT_I1 = 0x10,
  VarEnum.VT_UI1 = 17, VarEnum.VT_UI2 = 18, VarEnum.VT_UI4 = 19, VarEnum.VT_I8 = 20,
  VarEnum.VT_UI8 = 21, VarEnum.VT_INT = 22, VarEnum.VT_UINT = 23, VarEnum.VT_VOID = 24,
  VarEnum.VT_HRESULT = 25, VarEnum.VT_PTR = 26, VarEnum.VT_SAFEARRAY = 27, VarEnum.VT_CARRAY = 28,
  VarEnum.VT_USERDEFINED = 29, VarEnum.VT_LPSTR = 30, VarEnum.VT_LPWSTR = 0x1F, VarEnum.VT_RECORD = 36,
  VarEnum.VT_FILETIME = 0x40, VarEnum.VT_BLOB = 65, VarEnum.VT_STREAM = 66, VarEnum.VT_STORAGE = 67,
  VarEnum.VT_STREAMED_OBJECT = 68, VarEnum.VT_STORED_OBJECT = 69, VarEnum.VT_BLOB_OBJECT = 70, VarEnum.VT_CF = 71,
  VarEnum.VT_CLSID = 72, VarEnum.VT_VECTOR = 0x1000, VarEnum.VT_ARRAY = 0x2000, VarEnum.VT_BYREF = 0x4000
}
 Indicates how to marshal the array elements when an array is marshaled from managed to unmanaged code as a F:System.Runtime.InteropServices.UnmanagedType.SafeArray. More...
 
enum  VARFLAGS : short {
  VARFLAGS.VARFLAG_FREADONLY = 0x1, VARFLAGS.VARFLAG_FSOURCE = 0x2, VARFLAGS.VARFLAG_FBINDABLE = 0x4, VARFLAGS.VARFLAG_FREQUESTEDIT = 0x8,
  VARFLAGS.VARFLAG_FDISPLAYBIND = 0x10, VARFLAGS.VARFLAG_FDEFAULTBIND = 0x20, VARFLAGS.VARFLAG_FHIDDEN = 0x40, VARFLAGS.VARFLAG_FRESTRICTED = 0x80,
  VARFLAGS.VARFLAG_FDEFAULTCOLLELEM = 0x100, VARFLAGS.VARFLAG_FUIDEFAULT = 0x200, VARFLAGS.VARFLAG_FNONBROWSABLE = 0x400, VARFLAGS.VARFLAG_FREPLACEABLE = 0x800,
  VARFLAGS.VARFLAG_FIMMEDIATEBIND = 0x1000
}
 Use T:System.Runtime.InteropServices.ComTypes.VARFLAGS instead. More...
 

Functions

delegate IntPtr ObjectCreationDelegate (IntPtr aggregator)
 Creates a COM object. More...
 

Enumeration Type Documentation

◆ Architecture

Indicates the processor architecture.

Enumerator
X86 

An Intel-based 32-bit processor architecture.

X64 

An Intel-based 64-bit processor architecture.

Arm 

A 32-bit ARM processor architecture.

Arm64 

A 64-bit ARM processor architecture.

Definition at line 4 of file Architecture.cs.

◆ AssemblyRegistrationFlags

Defines a set of flags used when registering assemblies.

Enumerator
None 

Indicates no special settings.

SetCodeBase 

Indicates that the code base key for the assembly should be set in the registry.

Definition at line 6 of file AssemblyRegistrationFlags.cs.

◆ CALLCONV

Use T:System.Runtime.InteropServices.ComTypes.CALLCONV instead.

Enumerator
CC_CDECL 

Indicates that the Cdecl calling convention is used for a method.

CC_MSCPASCAL 

Indicates that the Mscpascal calling convention is used for a method.

CC_PASCAL 

Indicates that the Pascal calling convention is used for a method.

CC_MACPASCAL 

Indicates that the Macpascal calling convention is used for a method.

CC_STDCALL 

Indicates that the Stdcall calling convention is used for a method.

CC_RESERVED 

This value is reserved for future use.

CC_SYSCALL 

Indicates that the Syscall calling convention is used for a method.

CC_MPWCDECL 

Indicates that the Mpwcdecl calling convention is used for a method.

CC_MPWPASCAL 

Indicates that the Mpwpascal calling convention is used for a method.

CC_MAX 

Indicates the end of the T:System.Runtime.InteropServices.CALLCONV enumeration.

Definition at line 6 of file CALLCONV.cs.

◆ CallingConvention

Specifies the calling convention required to call methods implemented in unmanaged code.

Enumerator
Winapi 

This member is not actually a calling convention, but instead uses the default platform calling convention. For example, on Windows the default is F:System.Runtime.InteropServices.CallingConvention.StdCall and on Windows CE.NET it is F:System.Runtime.InteropServices.CallingConvention.Cdecl.

Cdecl 

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.

StdCall 

The callee cleans the stack. This is the default convention for calling unmanaged functions with platform invoke.

ThisCall 

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.

FastCall 

This calling convention is not supported.

Definition at line 7 of file CallingConvention.cs.

◆ CharSet

Dictates which character set marshaled strings should use.

Enumerator
None 

This value is obsolete and has the same behavior as F:System.Runtime.InteropServices.CharSet.Ansi.

Ansi 

Marshal strings as multiple-byte character strings.

Unicode 

Marshal strings as Unicode 2-byte characters.

Auto 

Automatically marshal strings appropriately for the target operating system. The default is F:System.Runtime.InteropServices.CharSet.Unicode on Windows NT, Windows 2000, Windows XP, and the Windows Server 2003 family; the default is F:System.Runtime.InteropServices.CharSet.Ansi on Windows 98 and Windows Me. Although the common language runtime default is F:System.Runtime.InteropServices.CharSet.Auto, languages may override this default. For example, by default C# marks all methods and types as F:System.Runtime.InteropServices.CharSet.Ansi.

Definition at line 7 of file CharSet.cs.

◆ ClassInterfaceType

Identifies the type of class interface that is generated for a class.

Enumerator
None 

Indicates that no class interface is generated for the class. If no interfaces are implemented explicitly, the class can only provide late-bound access through the IDispatch interface. This is the recommended setting for T:System.Runtime.InteropServices.ClassInterfaceAttribute. Using ClassInterfaceType.None is the only way to expose functionality through interfaces implemented explicitly by the class.

AutoDispatch 

Indicates that the class only supports late binding for COM clients. A dispinterface for the class is automatically exposed to COM clients on request. The type library produced by Tlbexp.exe (Type Library Exporter) does not contain type information for the dispinterface in order to prevent clients from caching the DISPIDs of the interface. The dispinterface does not exhibit the versioning problems described in T:System.Runtime.InteropServices.ClassInterfaceAttribute because clients can only late-bind to the interface.

AutoDual 

Indicates that a dual class interface is automatically generated for the class and exposed to COM. Type information is produced for the class interface and published in the type library. Using AutoDual is strongly discouraged because of the versioning limitations described in T:System.Runtime.InteropServices.ClassInterfaceAttribute.

Definition at line 7 of file ClassInterfaceType.cs.

◆ ComInterfaceType

Identifies how to expose an interface to COM.

Enumerator
InterfaceIsDual 

Indicates that the interface is exposed to COM as a dual interface, which enables both early and late binding. F:System.Runtime.InteropServices.ComInterfaceType.InterfaceIsDual is the default value.

InterfaceIsIUnknown 

Indicates that an interface is exposed to COM as an interface that is derived from IUnknown, which enables only early binding.

InterfaceIsIDispatch 

Indicates that an interface is exposed to COM as a dispinterface, which enables late binding only.

InterfaceIsIInspectable 

Indicates that an interface is exposed to COM as a Windows Runtime interface.

Definition at line 7 of file ComInterfaceType.cs.

◆ ComMemberType

Describes the type of a COM member.

Enumerator
Method 

The member is a normal method.

PropGet 

The member gets properties.

PropSet 

The member sets properties.

Definition at line 7 of file ComMemberType.cs.

◆ CustomQueryInterfaceMode

Indicates whether the M:System.Runtime.InteropServices.Marshal.GetComInterfaceForObject(System.Object,System.Type,System.Runtime.InteropServices.CustomQueryInterfaceMode) method's IUnknown::QueryInterface calls can use the T:System.Runtime.InteropServices.ICustomQueryInterface interface.

Enumerator
Ignore 

IUnknown::QueryInterface method calls should ignore the T:System.Runtime.InteropServices.ICustomQueryInterface interface.

Allow 

IUnknown::QueryInterface method calls can use the T:System.Runtime.InteropServices.ICustomQueryInterface interface. When you use this value, the M:System.Runtime.InteropServices.Marshal.GetComInterfaceForObject(System.Object,System.Type,System.Runtime.InteropServices.CustomQueryInterfaceMode) method overload functions like the M:System.Runtime.InteropServices.Marshal.GetComInterfaceForObject(System.Object,System.Type) overload.

Definition at line 6 of file CustomQueryInterfaceMode.cs.

◆ CustomQueryInterfaceResult

Provides return values for the M:System.Runtime.InteropServices.ICustomQueryInterface.GetInterface(System.Guid@,System.IntPtr@) method.

Enumerator
Handled 

The interface pointer that is returned from the M:System.Runtime.InteropServices.ICustomQueryInterface.GetInterface(System.Guid@,System.IntPtr@) method can be used as the result of IUnknown::QueryInterface.

NotHandled 

The custom QueryInterface was not used. Instead, the default implementation of IUnknown::QueryInterface should be used.

Failed 

The interface for a specific interface ID is not available. In this case, the returned interface is null. E_NOINTERFACE is returned to the caller of IUnknown::QueryInterface.

Definition at line 7 of file CustomQueryInterfaceResult.cs.

◆ DESCKIND

Use T:System.Runtime.InteropServices.ComTypes.DESCKIND instead.

Enumerator
DESCKIND_NONE 

Indicates that no match was found.

DESCKIND_FUNCDESC 

Indicates that a T:System.Runtime.InteropServices.FUNCDESC was returned.

DESCKIND_VARDESC 

Indicates that a VARDESC was returned.

DESCKIND_TYPECOMP 

Indicates that a TYPECOMP was returned.

DESCKIND_IMPLICITAPPOBJ 

Indicates that an IMPLICITAPPOBJ was returned.

DESCKIND_MAX 

Indicates an end of enumeration marker.

Definition at line 6 of file DESCKIND.cs.

◆ DllImportSearchPath

Specifies the paths that are used to search for DLLs that provide functions for platform invokes.

Enumerator
UseDllDirectoryForDependencies 

Search for the dependencies of a DLL in the folder where the DLL is located before searching other folders.

ApplicationDirectory 

Include the application directory in the DLL search path.

UserDirectories 

Include any path that was explicitly added to the process-wide search path by using the Win32 AddDllDirectory function.

System32 

Include the %WinDir%\System32 directory in the DLL search path.

SafeDirectories 

Include the application directory, the %WinDir%\System32 directory, and user directories in the DLL search path.

AssemblyDirectory 

When searching for assembly dependencies, include the directory that contains the assembly itself, and search that directory first. This value is used by the .NET Framework, before the paths are passed to the Win32 LoadLibraryEx function.

LegacyBehavior 

Search the application directory, and then call the Win32 LoadLibraryEx function with the LOAD_WITH_ALTERED_SEARCH_PATH flag. This value is ignored if any other value is specified. Operating systems that do not support the T:System.Runtime.InteropServices.DefaultDllImportSearchPathsAttribute attribute use this value, and ignore other values.

Definition at line 6 of file DllImportSearchPath.cs.

◆ ExporterEventKind

Describes the callbacks that the type library exporter makes when exporting a type library.

Enumerator
NOTIF_TYPECONVERTED 

Specifies that the event is invoked when a type has been exported.

NOTIF_CONVERTWARNING 

Specifies that the event is invoked when a warning occurs during conversion.

ERROR_REFTOINVALIDASSEMBLY 

This value is not supported in this version of the .NET Framework.

Definition at line 6 of file ExporterEventKind.cs.

◆ FUNCFLAGS

Use T:System.Runtime.InteropServices.ComTypes.FUNCFLAGS instead.

Enumerator
FUNCFLAG_FRESTRICTED 

The function should not be accessible from macro languages. This flag is intended for system-level functions or functions that type browsers should not display.

FUNCFLAG_FSOURCE 

The function returns an object that is a source of events.

FUNCFLAG_FBINDABLE 

The function that supports data binding.

FUNCFLAG_FREQUESTEDIT 

When set, any call to a method that sets the property results first in a call to IPropertyNotifySink::OnRequestEdit. The implementation of OnRequestEdit determines if the call is allowed to set the property.

FUNCFLAG_FDISPLAYBIND 

The function that is displayed to the user as bindable. F:System.Runtime.InteropServices.FUNCFLAGS.FUNCFLAG_FBINDABLE must also be set.

FUNCFLAG_FDEFAULTBIND 

The function that best represents the object. Only one function in a type information can have this attribute.

FUNCFLAG_FHIDDEN 

The function should not be displayed to the user, although it exists and is bindable.

FUNCFLAG_FUSESGETLASTERROR 

The function supports GetLastError. If an error occurs during the function, the caller can call GetLastError to retrieve the error code.

FUNCFLAG_FDEFAULTCOLLELEM 

Permits an optimization in which the compiler looks for a member named "xyz" on the type of "abc". If such a member is found, and is flagged as an accessor function for an element of the default collection, a call is generated to that member function. Permitted on members in dispinterfaces and interfaces; not permitted on modules.

FUNCFLAG_FUIDEFAULT 

The type information member is the default member for display in the user interface.

FUNCFLAG_FNONBROWSABLE 

The property appears in an object browser, but not in a properties browser.

FUNCFLAG_FREPLACEABLE 

Tags the interface as having default behaviors.

FUNCFLAG_FIMMEDIATEBIND 

Mapped as individual bindable properties.

Definition at line 7 of file FUNCFLAGS.cs.

◆ FUNCKIND

Use T:System.Runtime.InteropServices.ComTypes.FUNCKIND instead.

Enumerator
FUNC_VIRTUAL 

The function is accessed the same as F:System.Runtime.InteropServices.FUNCKIND.FUNC_PUREVIRTUAL, except the function has an implementation.

FUNC_PUREVIRTUAL 

The function is accessed through the virtual function table (VTBL), and takes an implicit this pointer.

FUNC_NONVIRTUAL 

The function is accessed by static address and takes an implicit this pointer.

FUNC_STATIC 

The function is accessed by static address and does not take an implicit this pointer.

FUNC_DISPATCH 

The function can be accessed only through IDispatch.

Definition at line 6 of file FUNCKIND.cs.

◆ GCHandleType

Represents the types of handles the T:System.Runtime.InteropServices.GCHandle class can allocate.

Enumerator
Weak 

This handle type is used to track an object, but allow it to be collected. When an object is collected, the contents of the T:System.Runtime.InteropServices.GCHandle are zeroed. Weak references are zeroed before the finalizer runs, so even if the finalizer resurrects the object, the Weak reference is still zeroed.

WeakTrackResurrection 

This handle type is similar to F:System.Runtime.InteropServices.GCHandleType.Weak, but the handle is not zeroed if the object is resurrected during finalization.

Normal 

This handle type represents an opaque handle, meaning you cannot resolve the address of the pinned object through the handle. You can use this type to track an object and prevent its collection by the garbage collector. This enumeration member is useful when an unmanaged client holds the only reference, which is undetectable from the garbage collector, to a managed object.

Pinned 

This handle type is similar to F:System.Runtime.InteropServices.GCHandleType.Normal, but allows the address of the pinned object to be taken. This prevents the garbage collector from moving the object and hence undermines the efficiency of the garbage collector. Use the M:System.Runtime.InteropServices.GCHandle.Free method to free the allocated handle as soon as possible.

Definition at line 7 of file GCHandleType.cs.

◆ IDispatchImplType

Indicates which IDispatch implementation to use for a particular class.

Enumerator
SystemDefinedImpl 

Specifies that the common language runtime decides which IDispatch implementation to use.

InternalImpl 

Specifies that the IDispatch implementation is supplied by the runtime.

CompatibleImpl 

Specifies that the IDispatch implementation is supplied by passing the type information for the object to the COM CreateStdDispatch API method.

Definition at line 7 of file IDispatchImplType.cs.

◆ IDLFLAG

Use T:System.Runtime.InteropServices.ComTypes.IDLFLAG instead.

Enumerator
IDLFLAG_NONE 

Whether the parameter passes or receives information is unspecified.

IDLFLAG_FIN 

The parameter passes information from the caller to the callee.

IDLFLAG_FOUT 

The parameter returns information from the callee to the caller.

IDLFLAG_FLCID 

The parameter is the local identifier of a client application.

IDLFLAG_FRETVAL 

The parameter is the return value of the member.

Definition at line 7 of file IDLFLAG.cs.

◆ IMPLTYPEFLAGS

Use T:System.Runtime.InteropServices.ComTypes.IMPLTYPEFLAGS instead.

Enumerator
IMPLTYPEFLAG_FDEFAULT 

The interface or dispinterface represents the default for the source or sink.

IMPLTYPEFLAG_FSOURCE 

This member of a coclass is called rather than implemented.

IMPLTYPEFLAG_FRESTRICTED 

The member should not be displayed or programmable by users.

IMPLTYPEFLAG_FDEFAULTVTABLE 

Sinks receive events through the virtual function table (VTBL).

Definition at line 7 of file IMPLTYPEFLAGS.cs.

◆ ImporterEventKind

Describes the callbacks that the type library importer makes when importing a type library.

Enumerator
NOTIF_TYPECONVERTED 

Specifies that the event is invoked when a type has been imported.

NOTIF_CONVERTWARNING 

Specifies that the event is invoked when a warning occurs during conversion.

ERROR_REFTOINVALIDTYPELIB 

This property is not supported in this version of the .NET Framework.

Definition at line 6 of file ImporterEventKind.cs.

◆ INVOKEKIND

Use T:System.Runtime.InteropServices.ComTypes.INVOKEKIND instead.

Enumerator
INVOKE_FUNC 

The member is called using a normal function invocation syntax.

INVOKE_PROPERTYGET 

The function is invoked using a normal property-access syntax.

INVOKE_PROPERTYPUT 

The function is invoked using a property value assignment syntax.

INVOKE_PROPERTYPUTREF 

The function is invoked using a property reference assignment syntax.

Definition at line 6 of file INVOKEKIND.cs.

◆ LayoutKind

Controls the layout of an object when exported to unmanaged code.

Enumerator
Sequential 

The members of the object are laid out sequentially, in the order in which they appear when exported to unmanaged memory. The members are laid out according to the packing specified in F:System.Runtime.InteropServices.StructLayoutAttribute.Pack, and can be noncontiguous.

Explicit 

The precise position of each member of an object in unmanaged memory is explicitly controlled, subject to the setting of the F:System.Runtime.InteropServices.StructLayoutAttribute.Pack field. Each member must use the T:System.Runtime.InteropServices.FieldOffsetAttribute to indicate the position of that field within the type.

Auto 

The runtime automatically chooses an appropriate layout for the members of an object in unmanaged memory. Objects defined with this enumeration member cannot be exposed outside of managed code. Attempting to do so generates an exception.

Definition at line 7 of file LayoutKind.cs.

◆ LIBFLAGS

Use T:System.Runtime.InteropServices.ComTypes.LIBFLAGS instead.

Enumerator
LIBFLAG_FRESTRICTED 

The type library is restricted, and should not be displayed to users.

LIBFLAG_FCONTROL 

The type library describes controls, and should not be displayed in type browsers intended for nonvisual objects.

LIBFLAG_FHIDDEN 

The type library should not be displayed to users, although its use is not restricted. Should be used by controls. Hosts should create a new type library that wraps the control with extended properties.

LIBFLAG_FHASDISKIMAGE 

The type library exists in a persisted form on disk.

Definition at line 7 of file LIBFLAGS.cs.

◆ PARAMFLAG

Use T:System.Runtime.InteropServices.ComTypes.PARAMFLAG instead.

Enumerator
PARAMFLAG_NONE 

Whether the parameter passes or receives information is unspecified.

PARAMFLAG_FIN 

The parameter passes information from the caller to the callee.

PARAMFLAG_FOUT 

The parameter returns information from the callee to the caller.

PARAMFLAG_FLCID 

The parameter is the local identifier of a client application.

PARAMFLAG_FRETVAL 

The parameter is the return value of the member.

PARAMFLAG_FOPT 

The parameter is optional.

PARAMFLAG_FHASDEFAULT 

The parameter has default behaviors defined.

PARAMFLAG_FHASCUSTDATA 

The parameter has custom data.

Definition at line 7 of file PARAMFLAG.cs.

◆ RegistrationClassContext

Specifies the set of execution contexts in which a class object will be made available for requests to construct instances.

Enumerator
InProcessServer 

The code that creates and manages objects of this class is a DLL that runs in the same process as the caller of the function specifying the class context.

InProcessHandler 

The code that manages objects of this class is an in-process handler.

LocalServer 

The EXE code that creates and manages objects of this class runs on same machine but is loaded in a separate process space.

InProcessServer16 

Not used.

RemoteServer 

A remote machine context.

InProcessHandler16 

Not used.

Reserved1 

Not used.

Reserved2 

Not used.

Reserved3 

Not used.

Reserved4 

Not used.

NoCodeDownload 

Disallows the downloading of code from the Directory Service or the Internet.

Reserved5 

Not used.

NoCustomMarshal 

Specifies whether activation fails if it uses custom marshaling.

EnableCodeDownload 

Allows the downloading of code from the Directory Service or the Internet.

NoFailureLog 

Overrides the logging of failures.

DisableActivateAsActivator 

Disables activate-as-activator (AAA) activations for this activation only.

EnableActivateAsActivator 

Enables activate-as-activator (AAA) activations for this activation only.

FromDefaultContext 

Begin this activation from the default context of the current apartment.

Definition at line 5 of file RegistrationClassContext.cs.

◆ RegistrationConnectionType

Defines the types of connections to a class object.

Enumerator
SingleUse 

Once an application is connected to a class object with CoGetClassObject, the class object is removed from public view so that no other applications can connect to it. This value is commonly used for single document interface (SDI) applications.

MultipleUse 

Multiple applications can connect to the class object through calls to CoGetClassObject.

MultiSeparate 

Registers separate CLSCTX_LOCAL_SERVER and CLSCTX_INPROC_SERVER class factories.

Suspended 

Suspends registration and activation requests for the specified CLSID until there is a call to CoResumeClassObjects.

Surrogate 

The class object is a surrogate process used to run DLL servers.

Definition at line 5 of file RegistrationConnectionType.cs.

◆ SYSKIND

Use T:System.Runtime.InteropServices.ComTypes.SYSKIND instead.

Enumerator
SYS_WIN16 

The target operating system for the type library is 16-bit Windows systems. By default, data fields are packed.

SYS_WIN32 

The target operating system for the type library is 32-bit Windows systems. By default, data fields are naturally aligned (for example, 2-byte integers are aligned on even-byte boundaries; 4-byte integers are aligned on quad-word boundaries, and so on).

SYS_MAC 

The target operating system for the type library is Apple Macintosh. By default, all data fields are aligned on even-byte boundaries.

Definition at line 6 of file SYSKIND.cs.

◆ TYPEFLAGS

Use T:System.Runtime.InteropServices.ComTypes.TYPEFLAGS instead.

Enumerator
TYPEFLAG_FAPPOBJECT 

A type description that describes an Application object.

TYPEFLAG_FCANCREATE 

Instances of the type can be created by ITypeInfo::CreateInstance.

TYPEFLAG_FLICENSED 

The type is licensed.

TYPEFLAG_FPREDECLID 

The type is predefined. The client application should automatically create a single instance of the object that has this attribute. The name of the variable that points to the object is the same as the class name of the object.

TYPEFLAG_FHIDDEN 

The type should not be displayed to browsers.

TYPEFLAG_FCONTROL 

The type is a control from which other types will be derived, and should not be displayed to users.

TYPEFLAG_FDUAL 

The interface supplies both IDispatch and VTBL binding.

TYPEFLAG_FNONEXTENSIBLE 

The interface cannot add members at run time.

TYPEFLAG_FOLEAUTOMATION 

The types used in the interface are fully compatible with Automation, including VTBL binding support. Setting dual on an interface sets this flag in addition to F:System.Runtime.InteropServices.TYPEFLAGS.TYPEFLAG_FDUAL. Not allowed on dispinterfaces.

TYPEFLAG_FRESTRICTED 

Should not be accessible from macro languages. This flag is intended for system-level types or types that type browsers should not display.

TYPEFLAG_FAGGREGATABLE 

The class supports aggregation.

TYPEFLAG_FREPLACEABLE 

The object supports IConnectionPointWithDefault, and has default behaviors.

TYPEFLAG_FDISPATCHABLE 

Indicates that the interface derives from IDispatch, either directly or indirectly. This flag is computed, there is no Object Description Language for the flag.

TYPEFLAG_FREVERSEBIND 

Indicates base interfaces should be checked for name resolution before checking children, the reverse of the default behavior.

TYPEFLAG_FPROXY 

Indicates that the interface will be using a proxy/stub dynamic link library. This flag specifies that the type library proxy should not be unregistered when the type library is unregistered.

Definition at line 7 of file TYPEFLAGS.cs.

◆ TYPEKIND

Use T:System.Runtime.InteropServices.ComTypes.TYPEKIND instead.

Enumerator
TKIND_ENUM 

A set of enumerators.

TKIND_RECORD 

A structure with no methods.

TKIND_MODULE 

A module that can only have static functions and data (for example, a DLL).

TKIND_INTERFACE 

A type that has virtual functions, all of which are pure.

TKIND_DISPATCH 

A set of methods and properties that are accessible through IDispatch::Invoke. By default, dual interfaces return TKIND_DISPATCH.

TKIND_COCLASS 

A set of implemented components interfaces.

TKIND_ALIAS 

A type that is an alias for another type.

TKIND_UNION 

A union of all members that have an offset of zero.

TKIND_MAX 

End of enumeration marker.

Definition at line 6 of file TYPEKIND.cs.

◆ TypeLibExporterFlags

Indicates how a type library should be produced.

Enumerator
None 

Specifies no flags. This is the default.

OnlyReferenceRegistered 

Exports references to types that were imported from COM as IUnknown if the type does not have a registered type library. Set this flag when you want the type library exporter to look for dependent types in the registry rather than in the same directory as the input assembly.

CallerResolvedReferences 

Allows the caller to explicitly resolve type library references without consulting the registry.

OldNames 

When exporting type libraries, the .NET Framework resolves type name conflicts by decorating the type with the name of the namespace; for example, System.Windows.Forms.HorizontalAlignment is exported as System_Windows_Forms_HorizontalAlignment. When there is a conflict with the name of a type that is not visible from COM, the .NET Framework exports the undecorated name. Set the F:System.Runtime.InteropServices.TypeLibExporterFlags.OldNames flag or use the /oldnames option in the Type Library Exporter (Tlbexp.exe) to force the .NET Framework to export the decorated name. Note that exporting the decorated name was the default behavior in versions prior to the .NET Framework version 2.0.

ExportAs32Bit 

When compiling on a 64-bit computer, specifies that the Type Library Exporter (Tlbexp.exe) generates a 32-bit type library. All data types are transformed appropriately.

ExportAs64Bit 

When compiling on a 32-bit computer, specifies that the Type Library Exporter (Tlbexp.exe) generates a 64-bit type library. All data types are transformed appropriately.

Definition at line 7 of file TypeLibExporterFlags.cs.

◆ TypeLibFuncFlags

Describes the original settings of the FUNCFLAGS in the COM type library from where this method was imported.

Enumerator
FRestricted 

This flag is intended for system-level functions or functions that type browsers should not display.

FSource 

The function returns an object that is a source of events.

FBindable 

The function that supports data binding.

FRequestEdit 

When set, any call to a method that sets the property results first in a call to IPropertyNotifySink::OnRequestEdit.

FDisplayBind 

The function that is displayed to the user as bindable. F:System.Runtime.InteropServices.TypeLibFuncFlags.FBindable must also be set.

FDefaultBind 

The function that best represents the object. Only one function in a type information can have this attribute.

FHidden 

The function should not be displayed to the user, although it exists and is bindable.

FUsesGetLastError 

The function supports GetLastError.

FDefaultCollelem 

Permits an optimization in which the compiler looks for a member named "xyz" on the type "abc". If such a member is found and is flagged as an accessor function for an element of the default collection, then a call is generated to that member function.

FUiDefault 

The type information member is the default member for display in the user interface.

FNonBrowsable 

The property appears in an object browser, but not in a properties browser.

FReplaceable 

Tags the interface as having default behaviors.

FImmediateBind 

The function is mapped as individual bindable properties.

Definition at line 7 of file TypeLibFuncFlags.cs.

◆ TypeLibImporterFlags

Indicates how an assembly should be produced.

Enumerator
None 

No special settings. This is the default.

PrimaryInteropAssembly 

Generates a primary interop assembly. For more information, see the T:System.Runtime.InteropServices.PrimaryInteropAssemblyAttribute attribute. A keyfile must be specified.

UnsafeInterfaces 

Imports all interfaces as interfaces that suppress the common language runtime's stack crawl for F:System.Security.Permissions.SecurityPermissionFlag.UnmanagedCode permission. Be sure you understand the responsibilities associated with suppressing this security check.

SafeArrayAsSystemArray 

Imports all SAFEARRAY instances as T:System.Array instead of typed, single-dimensional, zero-based managed arrays. This option is useful when dealing with multi-dimensional, non-zero-based SAFEARRAY instances, which otherwise cannot be accessed unless you edit the resulting assembly by using the MSIL Disassembler (Ildasm.exe) and MSIL Assembler (Ilasm.exe) tools.

TransformDispRetVals 

Transforms [out, retval] parameters of methods on dispatch-only interfaces (dispinterface) into return values.

PreventClassMembers 

Not used.

SerializableValueClasses 

Uses serializable classes.

ImportAsX86 

Imports a type library for the x86 platform.

ImportAsX64 

Imports a type library for the x86 64-bit platform.

ImportAsItanium 

Imports a type library for the Itanium platform.

ImportAsAgnostic 

Imports a type library for any platform.

ReflectionOnlyLoading 

Uses reflection-only loading.

NoDefineVersionResource 

Prevents inclusion of a version resource in the interop assembly. For more information, see the M:System.Reflection.Emit.AssemblyBuilder.DefineVersionInfoResource method.

ImportAsArm 

Imports a library for the ARM platform.

Definition at line 7 of file TypeLibImporterFlags.cs.

◆ TypeLibTypeFlags

Describes the original settings of the T:System.Runtime.InteropServices.TYPEFLAGS in the COM type library from which the type was imported.

Enumerator
FAppObject 

A type description that describes an Application object.

FCanCreate 

Instances of the type can be created by ITypeInfo::CreateInstance.

FLicensed 

The type is licensed.

FPreDeclId 

The type is predefined. The client application should automatically create a single instance of the object that has this attribute. The name of the variable that points to the object is the same as the class name of the object.

FHidden 

The type should not be displayed to browsers.

FControl 

The type is a control from which other types will be derived, and should not be displayed to users.

FDual 

The interface supplies both IDispatch and V-table binding.

FNonExtensible 

The interface cannot add members at run time.

FOleAutomation 

The types used in the interface are fully compatible with Automation, including vtable binding support.

FRestricted 

This flag is intended for system-level types or types that type browsers should not display.

FAggregatable 

The class supports aggregation.

FReplaceable 

The object supports IConnectionPointWithDefault, and has default behaviors.

FDispatchable 

Indicates that the interface derives from IDispatch, either directly or indirectly.

FReverseBind 

Indicates base interfaces should be checked for name resolution before checking child interfaces. This is the reverse of the default behavior.

Definition at line 7 of file TypeLibTypeFlags.cs.

◆ TypeLibVarFlags

Describes the original settings of the T:System.Runtime.InteropServices.VARFLAGS in the COM type library from which the variable was imported.

Enumerator
FReadOnly 

Assignment to the variable should not be allowed.

FSource 

The variable returns an object that is a source of events.

FBindable 

The variable supports data binding.

FRequestEdit 

Indicates that the property supports the COM OnRequestEdit notification.

FDisplayBind 

The variable is displayed as bindable. F:System.Runtime.InteropServices.TypeLibVarFlags.FBindable must also be set.

FDefaultBind 

The variable is the single property that best represents the object. Only one variable in a type info can have this value.

FHidden 

The variable should not be displayed in a browser, though it exists and is bindable.

FRestricted 

This flag is intended for system-level functions or functions that type browsers should not display.

FDefaultCollelem 

Permits an optimization in which the compiler looks for a member named "xyz" on the type "abc". If such a member is found and is flagged as an accessor function for an element of the default collection, then a call is generated to that member function.

FUiDefault 

The default display in the user interface.

FNonBrowsable 

The variable appears in an object browser, but not in a properties browser.

FReplaceable 

Tags the interface as having default behaviors.

FImmediateBind 

The variable is mapped as individual bindable properties.

Definition at line 7 of file TypeLibVarFlags.cs.

◆ UnmanagedType

Identifies how to marshal parameters or fields to unmanaged code.

Enumerator
Bool 

A 4-byte Boolean value (true != 0, false = 0). This is the Win32 BOOL type.

I1 

A 1-byte signed integer. You can use this member to transform a Boolean value into a 1-byte, C-style bool (true = 1, false = 0).

U1 

A 1-byte unsigned integer.

I2 

A 2-byte signed integer.

U2 

A 2-byte unsigned integer.

I4 

A 4-byte signed integer.

U4 

A 4-byte unsigned integer.

I8 

An 8-byte signed integer.

U8 

An 8-byte unsigned integer.

R4 

A 4-byte floating-point number.

R8 

An 8-byte floating-point number.

Currency 

A currency type. Used on a T:System.Decimal to marshal the decimal value as a COM currency type instead of as a Decimal.

BStr 

A Unicode character string that is a length-prefixed double byte. You can use this member, which is the default string in COM, on the T:System.String data type.

LPStr 

A single byte, null-terminated ANSI character string. You can use this member on the T:System.String and T:System.Text.StringBuilder data types.

LPWStr 

A 2-byte, null-terminated Unicode character string.

LPTStr 

A platform-dependent character string: ANSI on Windows 98, and Unicode on Windows NT and Windows XP. This value is supported only for platform invoke and not for COM interop, because exporting a string of type LPTStr is not supported.

ByValTStr 

Used for in-line, fixed-length character arrays that appear within a structure. The character type used with F:System.Runtime.InteropServices.UnmanagedType.ByValTStr is determined by the T:System.Runtime.InteropServices.CharSet argument of the T:System.Runtime.InteropServices.StructLayoutAttribute attribute applied to the containing structure. Always use the F:System.Runtime.InteropServices.MarshalAsAttribute.SizeConst field to indicate the size of the array.

IUnknown 

A COM IUnknown pointer. You can use this member on the T:System.Object data type.

IDispatch 

A COM IDispatch pointer (Object in Microsoft Visual Basic 6.0).

Struct 

A VARIANT, which is used to marshal managed formatted classes and value types.

Interface 

A COM interface pointer. The T:System.Guid of the interface is obtained from the class metadata. Use this member to specify the exact interface type or the default interface type if you apply it to a class. This member produces the same behavior as F:System.Runtime.InteropServices.UnmanagedType.IUnknown when you apply it to the T:System.Object data type.

SafeArray 

A SafeArray, which is a self-describing array that carries the type, rank, and bounds of the associated array data. You can use this member with the F:System.Runtime.InteropServices.MarshalAsAttribute.SafeArraySubType field to override the default element type.

ByValArray 

When the P:System.Runtime.InteropServices.MarshalAsAttribute.Value property is set to ByValArray, the F:System.Runtime.InteropServices.MarshalAsAttribute.SizeConst field must be set to indicate the number of elements in the array. The F:System.Runtime.InteropServices.MarshalAsAttribute.ArraySubType field can optionally contain the T:System.Runtime.InteropServices.UnmanagedType of the array elements when it is necessary to differentiate among string types. You can use this T:System.Runtime.InteropServices.UnmanagedType only on an array that whose elements appear as fields in a structure.

SysInt 

A platform-dependent, signed integer: 4 bytes on 32-bit Windows, 8 bytes on 64-bit Windows.

SysUInt 

A platform-dependent, unsigned integer: 4 bytes on 32-bit Windows, 8 bytes on 64-bit Windows.

VBByRefStr 

A value that enables Visual Basic to change a string in unmanaged code and have the results reflected in managed code. This value is only supported for platform invoke.

AnsiBStr 

An ANSI character string that is a length-prefixed single byte. You can use this member on the T:System.String data type.

TBStr 

A length-prefixed, platform-dependent char string: ANSI on Windows 98, Unicode on Windows NT. You rarely use this BSTR-like member.

VariantBool 

A 2-byte, OLE-defined VARIANT_BOOL type (true = -1, false = 0).

FunctionPtr 

An integer that can be used as a C-style function pointer. You can use this member on a T:System.Delegate data type or on a type that inherits from a T:System.Delegate.

AsAny 

A dynamic type that determines the type of an object at run time and marshals the object as that type. This member is valid for platform invoke methods only.

LPArray 

A pointer to the first element of a C-style array. When marshaling from managed to unmanaged code, the length of the array is determined by the length of the managed array. When marshaling from unmanaged to managed code, the length of the array is determined from the F:System.Runtime.InteropServices.MarshalAsAttribute.SizeConst and F:System.Runtime.InteropServices.MarshalAsAttribute.SizeParamIndex fields, optionally followed by the unmanaged type of the elements within the array when it is necessary to differentiate among string types.

LPStruct 

A pointer to a C-style structure that you use to marshal managed formatted classes. This member is valid for platform invoke methods only.

CustomMarshaler 

Specifies the custom marshaler class when used with the F:System.Runtime.InteropServices.MarshalAsAttribute.MarshalType or F:System.Runtime.InteropServices.MarshalAsAttribute.MarshalTypeRef field. The F:System.Runtime.InteropServices.MarshalAsAttribute.MarshalCookie field can be used to pass additional information to the custom marshaler. You can use this member on any reference type.

Error 

A native type that is associated with an F:System.Runtime.InteropServices.UnmanagedType.I4 or an F:System.Runtime.InteropServices.UnmanagedType.U4 and that causes the parameter to be exported as an HRESULT in the exported type library.

IInspectable 

A Windows Runtime interface pointer. You can use this member on the T:System.Object data type.

HString 

A Windows Runtime string. You can use this member on the T:System.String data type.

LPUTF8Str 

A pointer to a UTF-8 encoded string.

Definition at line 7 of file UnmanagedType.cs.

◆ VarEnum

Indicates how to marshal the array elements when an array is marshaled from managed to unmanaged code as a F:System.Runtime.InteropServices.UnmanagedType.SafeArray.

Enumerator
VT_EMPTY 

Indicates that a value was not specified.

VT_NULL 

Indicates a null value, similar to a null value in SQL.

VT_I2 

Indicates a short integer.

VT_I4 

Indicates a long integer.

VT_R4 

Indicates a float value.

VT_R8 

Indicates a double value.

VT_CY 

Indicates a currency value.

VT_DATE 

Indicates a DATE value.

VT_BSTR 

Indicates a BSTR string.

VT_DISPATCH 

Indicates an IDispatch pointer.

VT_ERROR 

Indicates an SCODE.

VT_BOOL 

Indicates a Boolean value.

VT_VARIANT 

Indicates a VARIANT far pointer.

VT_UNKNOWN 

Indicates an IUnknown pointer.

VT_DECIMAL 

Indicates a decimal value.

VT_I1 

Indicates a char value.

VT_UI1 

Indicates a byte.

VT_UI2 

Indicates an unsignedshort.

VT_UI4 

Indicates an unsignedlong.

VT_I8 

Indicates a 64-bit integer.

VT_UI8 

Indicates an 64-bit unsigned integer.

VT_INT 

Indicates an integer value.

VT_UINT 

Indicates an unsigned integer value.

VT_VOID 

Indicates a C style void.

VT_HRESULT 

Indicates an HRESULT.

VT_PTR 

Indicates a pointer type.

VT_SAFEARRAY 

Indicates a SAFEARRAY. Not valid in a VARIANT.

VT_CARRAY 

Indicates a C style array.

VT_USERDEFINED 

Indicates a user defined type.

VT_LPSTR 

Indicates a null-terminated string.

VT_LPWSTR 

Indicates a wide string terminated by null.

VT_RECORD 

Indicates a user defined type.

VT_FILETIME 

Indicates a FILETIME value.

VT_BLOB 

Indicates length prefixed bytes.

VT_STREAM 

Indicates that the name of a stream follows.

VT_STORAGE 

Indicates that the name of a storage follows.

VT_STREAMED_OBJECT 

Indicates that a stream contains an object.

VT_STORED_OBJECT 

Indicates that a storage contains an object.

VT_BLOB_OBJECT 

Indicates that a blob contains an object.

VT_CF 

Indicates the clipboard format.

VT_CLSID 

Indicates a class ID.

VT_VECTOR 

Indicates a simple, counted array.

VT_ARRAY 

Indicates a SAFEARRAY pointer.

VT_BYREF 

Indicates that a value is a reference.

Definition at line 7 of file VarEnum.cs.

◆ VARFLAGS

Use T:System.Runtime.InteropServices.ComTypes.VARFLAGS instead.

Enumerator
VARFLAG_FREADONLY 

Assignment to the variable should not be allowed.

VARFLAG_FSOURCE 

The variable returns an object that is a source of events.

VARFLAG_FBINDABLE 

The variable supports data binding.

VARFLAG_FREQUESTEDIT 

When set, any attempt to directly change the property results in a call to IPropertyNotifySink::OnRequestEdit. The implementation of OnRequestEdit determines if the change is accepted.

VARFLAG_FDISPLAYBIND 

The variable is displayed to the user as bindable. F:System.Runtime.InteropServices.VARFLAGS.VARFLAG_FBINDABLE must also be set.

VARFLAG_FDEFAULTBIND 

The variable is the single property that best represents the object. Only one variable in type information can have this attribute.

VARFLAG_FHIDDEN 

The variable should not be displayed to the user in a browser, although it exists and is bindable.

VARFLAG_FRESTRICTED 

The variable should not be accessible from macro languages. This flag is intended for system-level variables or variables that you do not want type browsers to display.

VARFLAG_FDEFAULTCOLLELEM 

Permits an optimization in which the compiler looks for a member named "xyz" on the type of "abc". If such a member is found and is flagged as an accessor function for an element of the default collection, then a call is generated to that member function. Permitted on members in dispinterfaces and interfaces; not permitted on modules.

VARFLAG_FUIDEFAULT 

The variable is the default display in the user interface.

VARFLAG_FNONBROWSABLE 

The variable appears in an object browser, but not in a properties browser.

VARFLAG_FREPLACEABLE 

Tags the interface as having default behaviors.

VARFLAG_FIMMEDIATEBIND 

The variable is mapped as individual bindable properties.

Definition at line 7 of file VARFLAGS.cs.

Function Documentation

◆ ObjectCreationDelegate()

delegate IntPtr System.Runtime.InteropServices.ObjectCreationDelegate ( IntPtr  aggregator)

Creates a COM object.

Parameters
aggregatorA pointer to the managed object's IUnknown interface.
Returns
An T:System.IntPtr object that represents the IUnknown interface of the COM object.