Variant Struct

Definition

Important

This API is not CLS-compliant.

Represents an object that can be interpreted as more than one type.

public value class Variant
public value class Variant
struct Variant
[System.CLSCompliant(false)]
public struct Variant
[<System.CLSCompliant(false)>]
type Variant = struct
Public Structure Variant
Inheritance
Variant
Attributes

Examples

This example shows how the MPF ViewFilter class uses this Variant structure to convert an incoming variant object to a character.

namespace Microsoft.VisualStudio.Package  
{  
    [CLSCompliant(false)]  
    [System.Runtime.InteropServices.ComVisible(true)]  
    public class ViewFilter   
        : IVsTextViewFilter  
        , IVsTextViewEvents  
        , IOleCommandTarget  
        , IDisposable  
    {  
        public virtual void HandlePostExec(ref Guid guidCmdGroup,  
                                           uint nCmdId,  
                                           uint nCmdexecopt,  
                                           IntPtr pvaIn,  
                                           IntPtr pvaOut)  
        {   

            if (guidCmdGroup == VsMenus.guidStandardCommandSet2K) {  
                VsCommands2K cmd = (VsCommands2K)nCmdId;  
                char ch = '\0';  
                if (cmd == VsCommands2K.TYPECHAR && pvaIn != IntPtr.Zero) {  
                    Variant v = Variant.ToVariant(pvaIn);  
                    ch = v.ToChar();  

                    // Do something with the character  

                }  
            }  
        }  
    }  
}  

Remarks

This version of the variant structure is specific to the managed package framework (MPF) language service classes and is designed to primarily convert a variant to a character. More specifically, if the variant has the type VT_UI2, the variant object is converted to a character.

This structure is actually used in only one place in the MPF language service classes, the HandlePreExec method of the ViewFilter class. This structure is used to convert the incoming variant to a character if the type of command is TYPECHAR.

Notes to Callers

This is a structure and can be treated as a variable type. It has limited functionality, mainly designed to convert from a variant object to a character.

Properties

Value

Determines the value of this Variant object.

Vt

Determines the type of the Variant object.

Methods

ToChar()

Interprets the Variant object's value as a Unicode character if the variant type is VT_UI2.

ToVariant(IntPtr)

Converts the given variant object to a Variant class object.

Applies to