Siehe auch: Tutorial03.csproj

COMVariant bildet einen Ersatz für den in COM erlaubten Datentyp Variant der zur Laufzeit einen beliebigen Typ annehmen kann. Prüfen Sie mit COMVariant.TypeName auf den Namen des Typs und mit COMVariant.IsCOMProxy ob es sich um einen COMProxy handelt.n diesem Fall können Sie den Typ zur Laufzeit casten sowie bei den Microsoft Interop Assemblies. Betrachten Sie dazu folgendes Codebeispiel aus Tutorial03.csproj:
 

/* the property Selection from Excel.Application is defined as COMVariant */
/* It can have multiple types at runtime what is currently selected, a worksheet, a range, a window or other*/

COMVariant myVariant = application.Selection;
switch (myVariant.TypeName)
{
   
case "Worksheet":
        Excel.
Worksheet sheet = (Excel.Worksheet)myVariant;
       
break;
    case "Range":
        Excel.
Range range = (Excel.Range)myVariant;
       
break;
}


In Tutorial03.csproj sehen sie ebenfalls wie sie mit scalaren Properties umgehen die als Variant definiert sind.

COMObject steht für einen COMProxy dessen Typ zur Kompilierzeit nicht bekannt ist und hat damit Ähnlichkeit zu COMVariant, jedoch handelt es sich in jedem Fall um einen COMProxy und nicht um einen scalaren Typ wie bool oder int. Betrachten Sie dazu folgendes Codebeispiel:

foreach (Office.COMAddIn item in application.COMAddIns)
{
    /* COMAddIn.Application is defined as COMObject*/
    Excel.Application parentApplication = (Excel.Application)item.Application;
}

Wichtiger Hinweis:

Sie müssen die Object Factory der Core-Library von LateBindingApi.Excel initialisieren bevor Sie COMObject und COMVariant Typen nutzen können. Sie benötigen dazu lediglich den folgenden Aufruf:
/*
* Initialize Api COMObject & COMVariant Support
*/
LateBindingApi.Core.Factory.Initialize();