Exemple #1
0
XLL_DEC XLOPER *ohRangeRetrieveError(XLOPER *xRange) {
    try {
        XLOPER xTemp;
        Excel(xlCoerce, &xTemp, 1, xRange);
        static XLOPER xRet;
        if (xTemp.xltype & xltypeErr)
            Excel(xlUDF, &xRet, 2, TempStrNoSize("\x13""ohRetrieveErrorImpl"), xRange);
        else
            ObjectHandler::scalarToOper(std::string(), xRet);
        return &xRet;
    } catch (...) {
        return 0;
    }
}
Exemple #2
0
XLL_DEC XLOPER *ohRangeRetrieveError(XLOPER *xRange) {
    try {
        reposit::Xloper xTemp;
        Excel(xlCoerce, &xTemp, 1, xRange);
        static XLOPER xRet;
        if (xTemp->xltype & xltypeErr) {
            Excel(xlUDF, &xRet, 2, TempStrNoSize("\x13""ohRetrieveErrorImpl"), xRange);
            xRet.xltype |= xlbitXLFree;
        } else {
            reposit::scalarToOper(std::string(), xRet);
        }
        return &xRet;
    } catch (...) {
        return 0;
    }
}
inline void unregisterxlInitiateFixedLegUnitedStates(const XLOPER & xDll) {

    XLOPER xlRegID ;

    // Enregistre la fonction xlInitiateFixedLeg
    Excel(xlfRegister, 0, 20, & xDll,
          TempStrNoSize("\x1E""xlInitiateFixedLegUnitedStates"),
          TempStrNoSize("\x0C""PCEPPEPEPPP#"),
          TempStrNoSize("\x21""INSTANCE.JAMBE.FIXE.UNITED.STATES"),
          TempStrNoSize("\xA1""Identifiant de l'instrument,date effective,date de premier coupon,date de dernier coupon,date de maturité,notionel,taux de coupon,fréquence,base annuelle,trigger"),
          TempStrNoSize("\x01""1"),
          TempStrNoSize("\x17""xlObjectTools - Object"),
          TempStrNoSize("\x00"""),
          TempStrNoSize("\x00"""),
          TempStrNoSize("\x3A""Cette fonction instancie une jambe fixe de swap en dollar."),
          TempStrNoSize("\x19""L'identifiant de la jambe"),
          TempStrNoSize("\x2B""La date de début de cumul du premier coupon"),
          TempStrNoSize("\x19""La date du premier coupon"),
          TempStrNoSize("\x19""La date de dernier coupon"),
          TempStrNoSize("\x1F""La date de maturité de la jambe"),
          TempStrNoSize("\x16""Le notionel du contrat"),
          TempStrNoSize("\x11""Le taux de coupon"),
          TempStrNoSize("\x16""La fréquence de coupon"),
          TempStrNoSize("\x1C""La base annuelle de la jambe"),
          TempStrNoSize("\x17""Déclenche le recalcul  ")) ;

    Excel4(xlfRegisterId, & xlRegID, 2, & xDll,
           TempStrNoSize("\x1E""xlInitiateFixedLegUnitedStates")) ;

    Excel4(xlfUnregister, 0, 1, & xlRegID) ;

}
void registerFixingCurves(const XLOPER &xDll) {
        Excel(xlfRegister, 0, 14, &xDll,
            TempStrNoSize("\x16""createDailyFixingCurve"),
            TempStrNoSize("\x06""CCPPL#"),
            TempStrNoSize("\x16""createDailyFixingCurve"),
            TempStrNoSize("\x1E""ObjectID,Dates,Rates,Permanent"),
            TempStrNoSize("\x01""1"),
            TempStrNoSize("\x9""prObjects"),
            TempStrNoSize("\x00"""),          
            TempStrNoSize("\x00"""),          
            TempStrNoSize("\x40""Construct an object of class DailyFixingCurve and returns its id"),
            TempStrNoSize("\x1A""id of object to be created"), 
            TempStrNoSize("\xB""Curve dates"),
            TempStrNoSize("\xE""Rate Set Rates"),
            TempStrNoSize("\x1D""object permanent/nonpermanent"));

        Excel(xlfRegister, 0, 14, &xDll,
            TempStrNoSize("\x18""createMonthlyFixingCurve"),
            TempStrNoSize("\x06""CCPPL#"),
            TempStrNoSize("\x18""createMonthlyFixingCurve"),
            TempStrNoSize("\x1E""ObjectID,Dates,Rates,Permanent"),
            TempStrNoSize("\x01""1"),
            TempStrNoSize("\x9""prObjects"),
            TempStrNoSize("\x00"""),          
            TempStrNoSize("\x00"""),          
            TempStrNoSize("\x42""Construct an object of class MonthlyFixingCurve and returns its id"),
            TempStrNoSize("\x1A""id of object to be created"), 
            TempStrNoSize("\xB""Curve dates"),
            TempStrNoSize("\xE""Rate Set Rates"),
            TempStrNoSize("\x1D""object permanent/nonpermanent"));

        Excel(xlfRegister, 0, 12, &xDll,
            TempStrNoSize("\x6""getFix"),
            TempStrNoSize("\x05""PCPP#"),           
            TempStrNoSize("\x6""getFix"),
            TempStrNoSize("\x16""ObjectID,Dates,Trigger"),
            TempStrNoSize("\x01""1"),                   
            TempStrNoSize("\x9""prObjects"),
            TempStrNoSize("\x00"""),                    
            TempStrNoSize("\x00"""),                    
            TempStrNoSize("\x2A""Returns the rate set for the relevant date"),
            TempStrNoSize("\x33""ID of the FixingRateSource to use for interpolation"),
            TempStrNoSize("\x7""Trigger"));  

}
inline void unregisterxlInstrumentYield(const XLOPER & xDll) {

        XLOPER xlRegID ;

             // Libère la fonction xlInstrumentTheoreticalYield
        Excel(xlfRegister, 0, 15, & xDll,
            TempStrNoSize("\x11""xlInstrumentYield"),
            TempStrNoSize("\x07""PCEPCP#"),
            TempStrNoSize("\x13""INSTRUMENT.TAUX.NEW"),
            TempStrNoSize("\x49""Identifiant de l'instrument,prix,date de règlement,convention,déclencheur"),
            TempStrNoSize("\x01""1"),
            TempStrNoSize("\x15""xlObjectTools - Bond"),
            TempStrNoSize("\x00"""),
            TempStrNoSize("\x00"""),
            TempStrNoSize("\x56""Cette fonction calcule le taux de l'instument selectionné selon la convention désignée"),
            TempStrNoSize("\x18""L'instrument à valoriser"),
            TempStrNoSize("\x17""Le prix de l'instrument"),
            TempStrNoSize("\x14""La date de règlement"),
            TempStrNoSize("\x28""L'identifiant de la convention de calcul"),
            TempStrNoSize("\x1C""Le déclencheur du recalcul  ")) ;

        Excel4(xlfRegisterId, & xlRegID, 2, & xDll,
            TempStrNoSize("\x11""xlInstrumentYield")) ;

        Excel4(xlfUnregister, 0, 1, & xlRegID) ;

    }
inline void unregisterxlPricingDate(const XLOPER & xDll) {

    XLOPER xlRegID ;

            // libère la fonction xlPricingDate
    Excel(xlfRegister, 0, 12, & xDll,
        TempStrNoSize("\x0D""xlPricingDate"),
        TempStrNoSize("\x04""BPP#"),
        TempStrNoSize("\x12""ADDIN.PRICING.DATE"),
        TempStrNoSize("\x0C""date,trigger"),
        TempStrNoSize("\x01""1"),
        TempStrNoSize("\x16""xlObjectTools - addin"),
        TempStrNoSize("\x00"""),
        TempStrNoSize("\x00"""),
        TempStrNoSize("\x3B""This function sets the system pricing date (default: today)"),
        TempStrNoSize("\x10""Calculation date"),
        TempStrNoSize("\x07""trigger"));

    Excel4(xlfRegisterId, & xlRegID, 2, & xDll,
        TempStrNoSize("\x0D""xlPricingDate"));

    Excel4(xlfUnregister, 0, 1, & xlRegID);

    }
inline void unregisterxlCovarianceMatrixEWMA(const XLOPER & xDll) {

        XLOPER xlRegID ;

             // Enregistre la fonction xlCovarianceMatrixEWMA
        Excel(xlfRegister, 0, 14, & xDll,
            TempStrNoSize("\x16""xlCovarianceMatrixEWMA"),
            TempStrNoSize("\x07""PPEELP#"),
            TempStrNoSize("\x17""MATRICE.COVARIANCE.EWMA"),
            TempStrNoSize("\x56""plage des séries,facteur d'obsolescence, date d'évaluation,indicateur de norme,trigger"),
            TempStrNoSize("\x01""1"),
            TempStrNoSize("\x15""xlObjectTools - Math"),
            TempStrNoSize("\x00"""),
            TempStrNoSize("\x00"""),
            TempStrNoSize("\x9D""Cette fonction calcule la matrice des variances-covariances d'un ensemble de séries pour une valeur du facteur d'obsolescence et une date d'évaluation donnée"),
            TempStrNoSize("\x2E""La plage des identifiants des séries à estimer"),
            TempStrNoSize("\x25""La valeur du paramètre d'obsolescence"),
            TempStrNoSize("\x29""Indique si la volatilité doit être normée"),
            TempStrNoSize("\x17""Déclenche le recalcul  ")) ;

        Excel4(xlfRegisterId, & xlRegID, 2, & xDll,
            TempStrNoSize("\x16""xlCovarianceMatrixEWMA")) ;

        Excel4(xlfUnregister, 0, 1, & xlRegID) ;

    }
void registerContractsForwardAsian(const XLOPER &xDll) 
{

        Excel(xlfRegister, 0, 18, &xDll,
            TempStrNoSize("\x1A""createContractForwardAsian"),
            TempStrNoSize("\xA""CCPPPBBCL#"),
            TempStrNoSize("\x1A""createContractForwardAsian"),
            TempStrNoSize("\x3D""ObjectID,AveStart,AveEnd,SettDate,Strike,Volume,B/S,Permanent"),
            TempStrNoSize("\x01""1"),                   // function type (0 = hidden function, 1 = worksheet function, 2 = command macro)
            TempStrNoSize("\x9""prObjects"),            // function category            
            TempStrNoSize("\x00"""),                    // shortcut text (command macros only)            
            TempStrNoSize("\x00"""),                    // path to help file
            TempStrNoSize("\x26""Constructs an Oil Average Rate Forward"),
            TempStrNoSize("\x1A""id of object to be created"),  // parameter descriptions
            TempStrNoSize("\x19""Start of averaging period"),
            TempStrNoSize("\x17""End of averaging period"),
            TempStrNoSize("\xF""Settlement date"),
            TempStrNoSize("\x6""Strike"),
            TempStrNoSize("\x6""Volume"),
            TempStrNoSize("\x1D""Buy or Sell at the fixed rate"),
            TempStrNoSize("\x1D""object permanent/nonpermanent"));
}
void registerInstruments(const XLOPER &xDll) {

        Excel(xlfRegister, 0, 12, &xDll,
            // function code name
            TempStrNoSize("\x19""qlInstrumentErrorEstimate"),
            // parameter codes
            TempStrNoSize("\x04""ECP#"),
            // function display name
            TempStrNoSize("\x19""qlInstrumentErrorEstimate"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x10""ObjectId,Trigger"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""1"),
            // function category
            TempStrNoSize("\x14""QuantLib - Financial"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x63""Returns the NPV error estimation (for e.g. Monte Carlo simulation) for the given Instrument object."),
            // parameter descriptions
            TempStrNoSize("\x2A""id of existing QuantLib::Instrument object"),
            TempStrNoSize("\x1D""dependency tracking trigger  "));

        Excel(xlfRegister, 0, 12, &xDll,
            // function code name
            TempStrNoSize("\x15""qlInstrumentIsExpired"),
            // parameter codes
            TempStrNoSize("\x04""LCP#"),
            // function display name
            TempStrNoSize("\x15""qlInstrumentIsExpired"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x10""ObjectId,Trigger"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""1"),
            // function category
            TempStrNoSize("\x14""QuantLib - Financial"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x37""Returns TRUE if the given Instrument object is expired."),
            // parameter descriptions
            TempStrNoSize("\x2A""id of existing QuantLib::Instrument object"),
            TempStrNoSize("\x1D""dependency tracking trigger  "));

        Excel(xlfRegister, 0, 12, &xDll,
            // function code name
            TempStrNoSize("\x0F""qlInstrumentNPV"),
            // parameter codes
            TempStrNoSize("\x04""ECP#"),
            // function display name
            TempStrNoSize("\x0F""qlInstrumentNPV"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x10""ObjectId,Trigger"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""1"),
            // function category
            TempStrNoSize("\x14""QuantLib - Financial"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x30""Returns the NPV for the given Instrument object."),
            // parameter descriptions
            TempStrNoSize("\x2A""id of existing QuantLib::Instrument object"),
            TempStrNoSize("\x1D""dependency tracking trigger  "));

        Excel(xlfRegister, 0, 13, &xDll,
            // function code name
            TempStrNoSize("\x13""qlInstrumentResults"),
            // parameter codes
            TempStrNoSize("\x05""ECCP#"),
            // function display name
            TempStrNoSize("\x13""qlInstrumentResults"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x1B""ObjectId,ResultType,Trigger"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""1"),
            // function category
            TempStrNoSize("\x14""QuantLib - Financial"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x4B""Returns the required result (if available) for the given Instrument object."),
            // parameter descriptions
            TempStrNoSize("\x2A""id of existing QuantLib::Instrument object"),
            TempStrNoSize("\x1A""result type (e.g. 'vega')."),
            TempStrNoSize("\x1D""dependency tracking trigger  "));

        Excel(xlfRegister, 0, 13, &xDll,
            // function code name
            TempStrNoSize("\x1C""qlInstrumentSetPricingEngine"),
            // parameter codes
            TempStrNoSize("\x05""LCCP#"),
            // function display name
            TempStrNoSize("\x1C""qlInstrumentSetPricingEngine"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x1E""ObjectId,PricingEngine,Trigger"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""1"),
            // function category
            TempStrNoSize("\x14""QuantLib - Financial"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x39""Sets a new pricing engine to the given Instrument pbject."),
            // parameter descriptions
            TempStrNoSize("\x2F""id of existing QuantLibAddin::Instrument object"),
            TempStrNoSize("\x18""PricingEngine object ID."),
            TempStrNoSize("\x1D""dependency tracking trigger  "));

        Excel(xlfRegister, 0, 12, &xDll,
            // function code name
            TempStrNoSize("\x19""qlInstrumentValuationDate"),
            // parameter codes
            TempStrNoSize("\x04""NCP#"),
            // function display name
            TempStrNoSize("\x19""qlInstrumentValuationDate"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x10""ObjectId,Trigger"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""1"),
            // function category
            TempStrNoSize("\x14""QuantLib - Financial"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x30""Returns the NPV for the given Instrument object."),
            // parameter descriptions
            TempStrNoSize("\x2A""id of existing QuantLib::Instrument object"),
            TempStrNoSize("\x1D""dependency tracking trigger  "));



}
Exemple #10
0
DLLEXPORT int xlAutoOpen() {

    // Instantiate the ObjectHandler Repository
    static ObjectHandler::RepositoryXL repositoryXL;

    static XLOPER xDll;

    try {

        Excel(xlGetName, &xDll, 0);

        ObjectHandler::Configuration::instance().init();

        registerOhFunctions(xDll);

        Excel(xlfRegister, 0, 7, &xDll,
            // function code name
            TempStrNoSize("\x07""qlClose"),
            // parameter codes
            TempStrNoSize("\x04""LEE#"),
            // function display name
            TempStrNoSize("\x07""qlClose"),
            // comma-delimited list of parameters
            TempStrNoSize("\x03""x,y"),
            // function type (0 = hidden function, 1 = worksheet function, 2 = command macro)
            TempStrNoSize("\x01""1"),
            // function category
            TempStrNoSize("\x07""Example"));

        Excel(xlfRegister, 0, 7, &xDll,
            // function code name
            TempStrNoSize("\x0D""qlSimpleQuote"),
            // parameter codes
            TempStrNoSize("\x04""CCE#"),
            // function display name
            TempStrNoSize("\x0D""qlSimpleQuote"),
            // comma-delimited list of parameters
            TempStrNoSize("\x0e""ObjectId,value"),
            // function type (0 = hidden function, 1 = worksheet function, 2 = command macro)
            TempStrNoSize("\x01""1"),
            // function category
            TempStrNoSize("\x07""Example"));

        Excel(xlfRegister, 0, 7, &xDll,
            // function code name
            TempStrNoSize("\xF3""qlSimpleQuoteValue"),
            // parameter codes
            TempStrNoSize("\x03""EC#"),
            // function display name
            TempStrNoSize("\xF3""qlSimpleQuoteValue"),
            // comma-delimited list of parameters
            TempStrNoSize("\x08""ObjectId"),
            // function type (0 = hidden function, 1 = worksheet function, 2 = command macro)
            TempStrNoSize("\x01""1"),
            // function category
            TempStrNoSize("\x07""Example"));

        Excel(xlFree, 0, 1, &xDll);
        return 1;

    } catch (const std::exception &e) {

        std::ostringstream err;
        err << "Error loading AddinXlHw: " << e.what();
        Excel(xlcAlert, 0, 1, TempStrStl(err.str()));
        Excel(xlFree, 0, 1, &xDll);
        return 0;

    } catch (...) {

        Excel(xlFree, 0, 1, &xDll);
        return 0;

    }
}
inline void unregisterxlInstrumentPreviousCashFlowAmount(const XLOPER & xDll) {


        XLOPER xlRegID ;

             // libère la fonction registerxlInstrumentPreviousCashFlowAmount
        Excel(xlfRegister, 0, 13, & xDll,
            TempStrNoSize("\x22""xlInstrumentPreviousCashFlowAmount"),
            TempStrNoSize("\x05""PCPP#"),
            TempStrNoSize("\x25""INSTRUMENT.MONTANT.CASHFLOW.PRECEDENT"),
            TempStrNoSize("\x39""Identifiant de l'instrument,date de règlement,déclencheur"),
            TempStrNoSize("\x01""1"),
            TempStrNoSize("\x15""xlObjectTools - Bond"),
            TempStrNoSize("\x00"""),
            TempStrNoSize("\x00"""),
            TempStrNoSize("\x34""Cette fonction calcule la valeur du cashflow précédent"),
            TempStrNoSize("\x1D""L'identifiant de l'instrument"),
            TempStrNoSize("\x14""La date de règlement"),
            TempStrNoSize("\x17""Déclenche le recalcul  ")) ;

        Excel4(xlfRegisterId, & xlRegID, 2, & xDll,
            TempStrNoSize("\x22""xlInstrumentPreviousCashFlowAmount")) ;

        Excel4(xlfUnregister, 0, 1, & xlRegID) ;


    }
void registerAlphaform(const XLOPER &xDll) {

        Excel(xlfRegister, 0, 16, &xDll,
            // function code name
            TempStrNoSize("\x18""qlAlphaFormInverseLinear"),
            // parameter codes
            TempStrNoSize("\x08""CCPEPPL#"),
            // function display name
            TempStrNoSize("\x18""qlAlphaFormInverseLinear"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x34""ObjectId,RateTimes,Alpha,Permanent,Trigger,Overwrite"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""1"),
            // function category
            TempStrNoSize("\x14""QuantLib - Financial"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x45""Construct an object of class AlphaFormInverseLinear and return its id"),
            // parameter descriptions
            TempStrNoSize("\x1A""id of object to be created"),
            TempStrNoSize("\x12""rate fixing times."),
            TempStrNoSize("\x12""alpha coefficient."),
            TempStrNoSize("\x1D""object permanent/nonpermanent"),
            TempStrNoSize("\x1B""dependency tracking trigger"),
            TempStrNoSize("\x10""overwrite flag  "));

        Excel(xlfRegister, 0, 16, &xDll,
            // function code name
            TempStrNoSize("\x1B""qlAlphaFormLinearHyperbolic"),
            // parameter codes
            TempStrNoSize("\x08""CCPEPPL#"),
            // function display name
            TempStrNoSize("\x1B""qlAlphaFormLinearHyperbolic"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x34""ObjectId,RateTimes,Alpha,Permanent,Trigger,Overwrite"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""1"),
            // function category
            TempStrNoSize("\x14""QuantLib - Financial"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x48""Construct an object of class AlphaFormLinearHyperbolic and return its id"),
            // parameter descriptions
            TempStrNoSize("\x1A""id of object to be created"),
            TempStrNoSize("\x12""rate fixing times."),
            TempStrNoSize("\x12""alpha coefficient."),
            TempStrNoSize("\x1D""object permanent/nonpermanent"),
            TempStrNoSize("\x1B""dependency tracking trigger"),
            TempStrNoSize("\x10""overwrite flag  "));

        Excel(xlfRegister, 0, 13, &xDll,
            // function code name
            TempStrNoSize("\x13""qlAlphaFormOperator"),
            // parameter codes
            TempStrNoSize("\x05""PCNP#"),
            // function display name
            TempStrNoSize("\x13""qlAlphaFormOperator"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x15""ObjectId,Time,Trigger"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""1"),
            // function category
            TempStrNoSize("\x14""QuantLib - Financial"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x27""returns the Alpha Form value at time i."),
            // parameter descriptions
            TempStrNoSize("\x29""id of existing QuantLib::AlphaForm object"),
            TempStrNoSize("\x23""integer corresponding to i-th time."),
            TempStrNoSize("\x1D""dependency tracking trigger  "));

        Excel(xlfRegister, 0, 13, &xDll,
            // function code name
            TempStrNoSize("\x13""qlAlphaFormSetAlpha"),
            // parameter codes
            TempStrNoSize("\x05""LCEP#"),
            // function display name
            TempStrNoSize("\x13""qlAlphaFormSetAlpha"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x16""ObjectId,Alpha,Trigger"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""1"),
            // function category
            TempStrNoSize("\x14""QuantLib - Financial"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x2C""set the Alpha parameter value to Alpha Form."),
            // parameter descriptions
            TempStrNoSize("\x29""id of existing QuantLib::AlphaForm object"),
            TempStrNoSize("\x25""Alpha parameter value for Alpha Form."),
            TempStrNoSize("\x1D""dependency tracking trigger  "));



}
inline void unregisterxlSwapCurrentFixing(const XLOPER & xDll) {

        XLOPER xlRegID ;

            // libère la fonction xlSwapAccruedAmount
        Excel(xlfRegister, 0, 14, & xDll,
            TempStrNoSize("\x13""xlSwapCurrentFixing"),
            TempStrNoSize("\x06""PCEPP#"),
            TempStrNoSize("\x19""SWAP.FIXING"),
            TempStrNoSize("\x4C""Identifiant de l'instrument,date de règlement,index de référence,déclencheur"),
            TempStrNoSize("\x01""1"),
            TempStrNoSize("\x15""xlObjectTools - Swap"),
            TempStrNoSize("\x00"""),
            TempStrNoSize("\x00"""),
            TempStrNoSize("\x64""Cette fonction détermine le taux de fixing d'une jambe variable pour une date de règlement donnée"),
            TempStrNoSize("\x16""Le nom de l'instrument"),
            TempStrNoSize("\x24""La date de règlement de l'instrument"),
            TempStrNoSize("\x2E""L'index des fixings de la jambe flottante"),
            TempStrNoSize("\x1C""Le déclencheur du recalcul  ")) ;

        Excel4(xlfRegisterId, & xlRegID, 2, & xDll,
            TempStrNoSize("\x19""xlSwapCurrentFixing")) ;

        Excel4(xlfUnregister, 0, 1, & xlRegID) ;

    }
Exemple #14
0
void unregisterMathf(const XLOPER &xDll) {

    XLOPER xlRegID;

    // Unregister each function.  Due to a bug in Excel's C API this is a
    // two-step process.  Thanks to Laurent Longre for discovering the
    // workaround implemented here.

        Excel(xlfRegister, 0, 13, &xDll,
            // function code name
            TempStrNoSize("\x17""qlCholeskyDecomposition"),
            // parameter codes
            TempStrNoSize("\x05""PKPP#"),
            // function display name
            TempStrNoSize("\x17""qlCholeskyDecomposition"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x17""Matrix,Flexible,Trigger"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""0"),
            // function category
            TempStrNoSize("\x0F""QuantLib - Math"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x3E""Returns the Cholesky decomposition of a real symmetric matrix."),
            // parameter descriptions
            TempStrNoSize("\x3D""symmetric matrix (hopefully positive semi-definite at least)."),
            TempStrNoSize("\x5A""If TRUE it returns a result also for positive semi-definite matrix. Default value = false."),
            TempStrNoSize("\x1D""dependency tracking trigger  "));

        Excel4(xlfRegisterId, &xlRegID, 2, &xDll,
            TempStrNoSize("\x17""qlCholeskyDecomposition"));
        Excel4(xlfUnregister, 0, 1, &xlRegID);

        Excel(xlfRegister, 0, 16, &xDll,
            // function code name
            TempStrNoSize("\x19""qlCovarianceDecomposition"),
            // parameter codes
            TempStrNoSize("\x08""CCKPPPL#"),
            // function display name
            TempStrNoSize("\x19""qlCovarianceDecomposition"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x3E""ObjectId,SymmetricMatrix,Tolerance,Permanent,Trigger,Overwrite"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""0"),
            // function category
            TempStrNoSize("\x0F""QuantLib - Math"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x46""Construct an object of class CovarianceDecomposition and return its id"),
            // parameter descriptions
            TempStrNoSize("\x1A""id of object to be created"),
            TempStrNoSize("\x2D""Symmetrix covariance matrix to be decomposed."),
            TempStrNoSize("\x45""numerical tolerance for non symmetric matrix. Default value = 1.0e12."),
            TempStrNoSize("\x1D""object permanent/nonpermanent"),
            TempStrNoSize("\x1B""dependency tracking trigger"),
            TempStrNoSize("\x10""overwrite flag  "));

        Excel4(xlfRegisterId, &xlRegID, 2, &xDll,
            TempStrNoSize("\x19""qlCovarianceDecomposition"));
        Excel4(xlfUnregister, 0, 1, &xlRegID);

        Excel(xlfRegister, 0, 12, &xDll,
            // function code name
            TempStrNoSize("\x2A""qlCovarianceDecompositionCorrelationMatrix"),
            // parameter codes
            TempStrNoSize("\x04""PCP#"),
            // function display name
            TempStrNoSize("\x2A""qlCovarianceDecompositionCorrelationMatrix"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x10""ObjectId,Trigger"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""0"),
            // function category
            TempStrNoSize("\x0F""QuantLib - Math"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x4C""Returns the correlation matrix for the given CovarianceDecomposition object."),
            // parameter descriptions
            TempStrNoSize("\x37""id of existing QuantLib::CovarianceDecomposition object"),
            TempStrNoSize("\x1D""dependency tracking trigger  "));

        Excel4(xlfRegisterId, &xlRegID, 2, &xDll,
            TempStrNoSize("\x2A""qlCovarianceDecompositionCorrelationMatrix"));
        Excel4(xlfUnregister, 0, 1, &xlRegID);

        Excel(xlfRegister, 0, 12, &xDll,
            // function code name
            TempStrNoSize("\x2B""qlCovarianceDecompositionStandardDeviations"),
            // parameter codes
            TempStrNoSize("\x04""PCP#"),
            // function display name
            TempStrNoSize("\x2B""qlCovarianceDecompositionStandardDeviations"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x10""ObjectId,Trigger"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""0"),
            // function category
            TempStrNoSize("\x0F""QuantLib - Math"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x7F""Returns the standard deviation (i.e. volatility times square root of time) vector for the given CovarianceDecomposition object."),
            // parameter descriptions
            TempStrNoSize("\x37""id of existing QuantLib::CovarianceDecomposition object"),
            TempStrNoSize("\x1D""dependency tracking trigger  "));

        Excel4(xlfRegisterId, &xlRegID, 2, &xDll,
            TempStrNoSize("\x2B""qlCovarianceDecompositionStandardDeviations"));
        Excel4(xlfUnregister, 0, 1, &xlRegID);

        Excel(xlfRegister, 0, 12, &xDll,
            // function code name
            TempStrNoSize("\x22""qlCovarianceDecompositionVariances"),
            // parameter codes
            TempStrNoSize("\x04""PCP#"),
            // function display name
            TempStrNoSize("\x22""qlCovarianceDecompositionVariances"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x10""ObjectId,Trigger"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""0"),
            // function category
            TempStrNoSize("\x0F""QuantLib - Math"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x49""Returns the variance vector for the given CovarianceDecomposition object."),
            // parameter descriptions
            TempStrNoSize("\x37""id of existing QuantLib::CovarianceDecomposition object"),
            TempStrNoSize("\x1D""dependency tracking trigger  "));

        Excel4(xlfRegisterId, &xlRegID, 2, &xDll,
            TempStrNoSize("\x22""qlCovarianceDecompositionVariances"));
        Excel4(xlfUnregister, 0, 1, &xlRegID);

        Excel(xlfRegister, 0, 14, &xDll,
            // function code name
            TempStrNoSize("\x0F""qlGetCovariance"),
            // parameter codes
            TempStrNoSize("\x06""PPKPP#"),
            // function display name
            TempStrNoSize("\x0F""qlGetCovariance"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x1D""Vols,Matrix,Tolerance,Trigger"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""0"),
            // function category
            TempStrNoSize("\x0F""QuantLib - Math"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x92""Returns the covariance matrix generated using the correlation matrix and the standard deviation (i.e. volatility times square root of time) array."),
            // parameter descriptions
            TempStrNoSize("\x12""volatility vector."),
            TempStrNoSize("\x3D""symmetric matrix (hopefully positive semi-definite at least)."),
            TempStrNoSize("\x45""numerical tolerance for non symmetric matrix. Default value = 1.0e12."),
            TempStrNoSize("\x1D""dependency tracking trigger  "));

        Excel4(xlfRegisterId, &xlRegID, 2, &xDll,
            TempStrNoSize("\x0F""qlGetCovariance"));
        Excel4(xlfUnregister, 0, 1, &xlRegID);

        Excel(xlfRegister, 0, 15, &xDll,
            // function code name
            TempStrNoSize("\x0A""qlNormDist"),
            // parameter codes
            TempStrNoSize("\x07""EEPPPP#"),
            // function display name
            TempStrNoSize("\x0A""qlNormDist"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x26""X,Mean,Standard_dev,Cumulative,Trigger"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""0"),
            // function category
            TempStrNoSize("\x0F""QuantLib - Math"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x59""Returns the normal cumulative distribution for the specified mean and standard deviation."),
            // parameter descriptions
            TempStrNoSize("\x31""is the value for which you want the distribution."),
            TempStrNoSize("\x40""is the arithmetic mean of the distribution. Default value = 0.0."),
            TempStrNoSize("\x56""is the standard deviation of the distribution, a positive number. Default value = 1.0."),
            TempStrNoSize("\x8B""is a logical value: for the cumulative distribution function, use TRUE; for the probability mass function, use FALSE. Default value = TRUE."),
            TempStrNoSize("\x1D""dependency tracking trigger  "));

        Excel4(xlfRegisterId, &xlRegID, 2, &xDll,
            TempStrNoSize("\x0A""qlNormDist"));
        Excel4(xlfUnregister, 0, 1, &xlRegID);

        Excel(xlfRegister, 0, 14, &xDll,
            // function code name
            TempStrNoSize("\x09""qlNormInv"),
            // parameter codes
            TempStrNoSize("\x06""EEPPP#"),
            // function display name
            TempStrNoSize("\x09""qlNormInv"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x25""Probability,Mean,Standard_dev,Trigger"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""0"),
            // function category
            TempStrNoSize("\x0F""QuantLib - Math"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x68""Returns the inverse of the normal cumulative distribution for the specified mean and standard deviation."),
            // parameter descriptions
            TempStrNoSize("\x5E""is a probability corresponding to the normal distribution, a number between 0 and 1 inclusive."),
            TempStrNoSize("\x40""is the arithmetic mean of the distribution. Default value = 0.0."),
            TempStrNoSize("\x56""is the standard deviation of the distribution, a positive number. Default value = 1.0."),
            TempStrNoSize("\x1D""dependency tracking trigger  "));

        Excel4(xlfRegisterId, &xlRegID, 2, &xDll,
            TempStrNoSize("\x09""qlNormInv"));
        Excel4(xlfUnregister, 0, 1, &xlRegID);

        Excel(xlfRegister, 0, 12, &xDll,
            // function code name
            TempStrNoSize("\x0B""qlNormSDist"),
            // parameter codes
            TempStrNoSize("\x04""EEP#"),
            // function display name
            TempStrNoSize("\x0B""qlNormSDist"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x09""Z,Trigger"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""0"),
            // function category
            TempStrNoSize("\x0F""QuantLib - Math"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x67""Returns the standard normal cumulative distribution (has a mean of zero and standard deviation of one)."),
            // parameter descriptions
            TempStrNoSize("\x31""is the value for which you want the distribution."),
            TempStrNoSize("\x1D""dependency tracking trigger  "));

        Excel4(xlfRegisterId, &xlRegID, 2, &xDll,
            TempStrNoSize("\x0B""qlNormSDist"));
        Excel4(xlfUnregister, 0, 1, &xlRegID);

        Excel(xlfRegister, 0, 12, &xDll,
            // function code name
            TempStrNoSize("\x0A""qlNormSInv"),
            // parameter codes
            TempStrNoSize("\x04""EEP#"),
            // function display name
            TempStrNoSize("\x0A""qlNormSInv"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x13""Probability,Trigger"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""0"),
            // function category
            TempStrNoSize("\x0F""QuantLib - Math"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x76""Returns the inverse of the standard normal cumulative distribution (has a mean of zero and standard deviation of one)."),
            // parameter descriptions
            TempStrNoSize("\x5E""is a probability corresponding to the normal distribution, a number between 0 and 1 inclusive."),
            TempStrNoSize("\x1D""dependency tracking trigger  "));

        Excel4(xlfRegisterId, &xlRegID, 2, &xDll,
            TempStrNoSize("\x0A""qlNormSInv"));
        Excel4(xlfUnregister, 0, 1, &xlRegID);

        Excel(xlfRegister, 0, 12, &xDll,
            // function code name
            TempStrNoSize("\x0D""qlPrimeNumber"),
            // parameter codes
            TempStrNoSize("\x04""NNP#"),
            // function display name
            TempStrNoSize("\x0D""qlPrimeNumber"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x09""N,Trigger"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""0"),
            // function category
            TempStrNoSize("\x0F""QuantLib - Math"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x1E""returns the N-th prime number."),
            // parameter descriptions
            TempStrNoSize("\x2E""index of the prime number (e.g N=2 returns 3)."),
            TempStrNoSize("\x1D""dependency tracking trigger  "));

        Excel4(xlfRegisterId, &xlRegID, 2, &xDll,
            TempStrNoSize("\x0D""qlPrimeNumber"));
        Excel4(xlfUnregister, 0, 1, &xlRegID);

        Excel(xlfRegister, 0, 13, &xDll,
            // function code name
            TempStrNoSize("\x0C""qlPseudoSqrt"),
            // parameter codes
            TempStrNoSize("\x05""PKCP#"),
            // function display name
            TempStrNoSize("\x0C""qlPseudoSqrt"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x21""Matrix,SalvagingAlgorithm,Trigger"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""0"),
            // function category
            TempStrNoSize("\x0F""QuantLib - Math"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x3A""Returns the pseudo square root of a real symmetric matrix."),
            // parameter descriptions
            TempStrNoSize("\x3D""symmetric matrix (hopefully positive semi-definite at least)."),
            TempStrNoSize("\x55""Salvaging algorithm for symmetric matrix not positive semi-definite (None, Spectral)."),
            TempStrNoSize("\x1D""dependency tracking trigger  "));

        Excel4(xlfRegisterId, &xlRegID, 2, &xDll,
            TempStrNoSize("\x0C""qlPseudoSqrt"));
        Excel4(xlfUnregister, 0, 1, &xlRegID);

        Excel(xlfRegister, 0, 15, &xDll,
            // function code name
            TempStrNoSize("\x11""qlRankReducedSqrt"),
            // parameter codes
            TempStrNoSize("\x07""PKNECP#"),
            // function display name
            TempStrNoSize("\x11""qlRankReducedSqrt"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x3D""Matrix,MaxRank,ComponentPercentage,SalvagingAlgorithm,Trigger"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""0"),
            // function category
            TempStrNoSize("\x0F""QuantLib - Math"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x47""Returns the rank reduced pseudo square root of a real symmetric matrix."),
            // parameter descriptions
            TempStrNoSize("\x3D""symmetric matrix (hopefully positive semi-definite at least)."),
            TempStrNoSize("\x4D""number of principal components retained, i.e. max rank for the result matrix."),
            TempStrNoSize("\x40""principal components retained as percentage of eigenvalues' sum."),
            TempStrNoSize("\x55""Salvaging algorithm for symmetric matrix not positive semi-definite (None, Spectral)."),
            TempStrNoSize("\x1D""dependency tracking trigger  "));

        Excel4(xlfRegisterId, &xlRegID, 2, &xDll,
            TempStrNoSize("\x11""qlRankReducedSqrt"));
        Excel4(xlfUnregister, 0, 1, &xlRegID);

        Excel(xlfRegister, 0, 15, &xDll,
            // function code name
            TempStrNoSize("\x1D""qlSymmetricSchurDecomposition"),
            // parameter codes
            TempStrNoSize("\x07""CCKPPL#"),
            // function display name
            TempStrNoSize("\x1D""qlSymmetricSchurDecomposition"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x34""ObjectId,SymmetricMatrix,Permanent,Trigger,Overwrite"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""0"),
            // function category
            TempStrNoSize("\x0F""QuantLib - Math"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x4A""Construct an object of class SymmetricSchurDecomposition and return its id"),
            // parameter descriptions
            TempStrNoSize("\x1A""id of object to be created"),
            TempStrNoSize("\x22""Symmetrix matrix to be decomposed."),
            TempStrNoSize("\x1D""object permanent/nonpermanent"),
            TempStrNoSize("\x1B""dependency tracking trigger"),
            TempStrNoSize("\x10""overwrite flag  "));

        Excel4(xlfRegisterId, &xlRegID, 2, &xDll,
            TempStrNoSize("\x1D""qlSymmetricSchurDecomposition"));
        Excel4(xlfUnregister, 0, 1, &xlRegID);

        Excel(xlfRegister, 0, 12, &xDll,
            // function code name
            TempStrNoSize("\x28""qlSymmetricSchurDecompositionEigenvalues"),
            // parameter codes
            TempStrNoSize("\x04""PCP#"),
            // function display name
            TempStrNoSize("\x28""qlSymmetricSchurDecompositionEigenvalues"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x10""ObjectId,Trigger"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""0"),
            // function category
            TempStrNoSize("\x0F""QuantLib - Math"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x49""Returns the eigenvalues for the given SymmetricSchurDecomposition object."),
            // parameter descriptions
            TempStrNoSize("\x3B""id of existing QuantLib::SymmetricSchurDecomposition object"),
            TempStrNoSize("\x1D""dependency tracking trigger  "));

        Excel4(xlfRegisterId, &xlRegID, 2, &xDll,
            TempStrNoSize("\x28""qlSymmetricSchurDecompositionEigenvalues"));
        Excel4(xlfUnregister, 0, 1, &xlRegID);

        Excel(xlfRegister, 0, 12, &xDll,
            // function code name
            TempStrNoSize("\x29""qlSymmetricSchurDecompositionEigenvectors"),
            // parameter codes
            TempStrNoSize("\x04""PCP#"),
            // function display name
            TempStrNoSize("\x29""qlSymmetricSchurDecompositionEigenvectors"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x10""ObjectId,Trigger"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""0"),
            // function category
            TempStrNoSize("\x0F""QuantLib - Math"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x71""Returns the eigenvectors  for the given SymmetricSchurDecomposition object. Eigenvectors are returned columnwise."),
            // parameter descriptions
            TempStrNoSize("\x3B""id of existing QuantLib::SymmetricSchurDecomposition object"),
            TempStrNoSize("\x1D""dependency tracking trigger  "));

        Excel4(xlfRegisterId, &xlRegID, 2, &xDll,
            TempStrNoSize("\x29""qlSymmetricSchurDecompositionEigenvectors"));
        Excel4(xlfUnregister, 0, 1, &xlRegID);



}
inline void unregisterxlCurveForwardRate(const XLOPER & xDll) {

        XLOPER xlRegID ;

		// Unregister the function xlCurveForwardRate
		Excel(xlfRegister, 0, 15, &xDll,
			TempStrNoSize("\x12""xlCurveForwardRate"),
			TempStrNoSize("\x07""BCEECP#"),
			TempStrNoSize("\x12""CURVE.FORWARD.RATE"),
			TempStrNoSize("\x31""curve identifier,time 1,time 2,convention,trigger"),
			TempStrNoSize("\x01""1"),
			TempStrNoSize("\x1B""xlObjectTools - Yield Curve"),
			TempStrNoSize("\x00"""),
			TempStrNoSize("\x00"""),
			TempStrNoSize("\x43""This function computes the forward rate for the corresponding dates"),
			TempStrNoSize("\x10""Curve identifier"),
			TempStrNoSize("\x10""The forward date"),
			TempStrNoSize("\x11""The maturity date"),
			TempStrNoSize("\x20""The identifier of the convention"),
			TempStrNoSize("\x1B""Trigger for recalculation  "));

        Excel4(xlfRegisterId, & xlRegID, 2, & xDll,
            TempStrNoSize("\x12""xlCurveForwardRate")) ;

        Excel4(xlfUnregister, 0, 1, & xlRegID) ;

    }
inline void unregisterxlInitiateAussieBill (const XLOPER & xDll) {

        XLOPER xlRegID ;

             // décharge la fonction xlInitiateAussieBill
        Excel(xlfRegister, 0, 15, & xDll,
            TempStrNoSize("\x14""xlInitiateAussieBill"),
            TempStrNoSize("\x07""PCEEPP#"),
            TempStrNoSize("\x14""INSTANCE.AUSSIE.BILL"),
            TempStrNoSize("\x57""identifiant de l'instrument,date d'emission,date de maturité,jours de règlement,trigger"),
            TempStrNoSize("\x01""1"),
            TempStrNoSize("\x17""xlObjectTools - Object"),
            TempStrNoSize("\x00"""),
            TempStrNoSize("\x00"""),
            TempStrNoSize("\x3E""Cette fonction instancie un bill émis par le trésor australien"),
            TempStrNoSize("\x1D""L'identifiant de l'instrument"),
            TempStrNoSize("\x1B""La date d'émission du titre"),
            TempStrNoSize("\x1C""La date de maturité du titre"),
            TempStrNoSize("\x1F""Le nombre de jours de règlement"),
            TempStrNoSize("\x17""Déclenche le recalcul  ")) ;

        Excel4(xlfRegisterId, & xlRegID, 2, & xDll,
            TempStrNoSize("\x14""xlInitiateAussieBill")) ;

        Excel4(xlfUnregister, 0, 1, & xlRegID) ;

    }
void unregisterOvernightindexedswap(const XLOPER &xDll) {

    XLOPER xlRegID;

    // Unregister each function.  Due to a bug in Excel's C API this is a
    // two-step process.  Thanks to Laurent Longre for discovering the
    // workaround implemented here.

        Excel(xlfRegister, 0, 20, &xDll,
            // function code name
            TempStrNoSize("\x0E""qlMakeDatedOIS"),
            // parameter codes
            TempStrNoSize("\x0C""CCPPCPPPPPL#"),
            // function display name
            TempStrNoSize("\x0E""qlMakeDatedOIS"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x64""ObjectId,StartDate,EndDate,OvernightIndex,FixedRate,FixDayCounter,Spread,Permanent,Trigger,Overwrite"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""0"),
            // function category
            TempStrNoSize("\x14""QuantLib - Financial"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x43""Construct an object of class OvernightIndexedSwap and return its id"),
            // parameter descriptions
            TempStrNoSize("\x1A""id of object to be created"),
            TempStrNoSize("\x54""ois start date. If missing first ECB date is used. Default value = QuantLib::Date()."),
            TempStrNoSize("\x63""ois end date. If missing first ECB date after start date is used. Default value = QuantLib::Date()."),
            TempStrNoSize("\x19""OvernightIndex object ID."),
            TempStrNoSize("\x62""the fixed leg rate. If missing atm rate is used. Default value = QuantLib::Null<QuantLib::Rate>()."),
            TempStrNoSize("\x32""fixed leg day counter. Default value = Actual/360."),
            TempStrNoSize("\x3A""the spread in the overnight leg rate. Default value = 0.0."),
            TempStrNoSize("\x1D""object permanent/nonpermanent"),
            TempStrNoSize("\x1B""dependency tracking trigger"),
            TempStrNoSize("\x10""overwrite flag  "));

        Excel4(xlfRegisterId, &xlRegID, 2, &xDll,
            TempStrNoSize("\x0E""qlMakeDatedOIS"));
        Excel4(xlfUnregister, 0, 1, &xlRegID);

        Excel(xlfRegister, 0, 21, &xDll,
            // function code name
            TempStrNoSize("\x09""qlMakeOIS"),
            // parameter codes
            TempStrNoSize("\x0D""CCPCCPCPPPPL#"),
            // function display name
            TempStrNoSize("\x09""qlMakeOIS"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x73""ObjectId,SettlDays,SwapTenor,OvernightIndex,FixedRate,ForwardStart,FixDayCounter,Spread,Permanent,Trigger,Overwrite"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""0"),
            // function category
            TempStrNoSize("\x14""QuantLib - Financial"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x43""Construct an object of class OvernightIndexedSwap and return its id"),
            // parameter descriptions
            TempStrNoSize("\x1A""id of object to be created"),
            TempStrNoSize("\x2F""Number of days to spot date. Default value = 2."),
            TempStrNoSize("\x1C""swap tenor period (e.g. 5Y)."),
            TempStrNoSize("\x19""OvernightIndex object ID."),
            TempStrNoSize("\x62""the fixed leg rate. If missing atm rate is used. Default value = QuantLib::Null<QuantLib::Rate>()."),
            TempStrNoSize("\x26""forward start period (from spot date)."),
            TempStrNoSize("\x32""fixed leg day counter. Default value = Actual/360."),
            TempStrNoSize("\x3A""the spread in the overnight leg rate. Default value = 0.0."),
            TempStrNoSize("\x1D""object permanent/nonpermanent"),
            TempStrNoSize("\x1B""dependency tracking trigger"),
            TempStrNoSize("\x10""overwrite flag  "));

        Excel4(xlfRegisterId, &xlRegID, 2, &xDll,
            TempStrNoSize("\x09""qlMakeOIS"));
        Excel4(xlfUnregister, 0, 1, &xlRegID);

        Excel(xlfRegister, 0, 21, &xDll,
            // function code name
            TempStrNoSize("\x16""qlOvernightIndexedSwap"),
            // parameter codes
            TempStrNoSize("\x0D""CCPPCPCCPPPL#"),
            // function display name
            TempStrNoSize("\x16""qlOvernightIndexedSwap"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x71""ObjectId,PayerReceiver,Nominal,Schedule,FixedRate,FixDayCounter,OvernightIndex,Spread,Permanent,Trigger,Overwrite"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""0"),
            // function category
            TempStrNoSize("\x14""QuantLib - Financial"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x43""Construct an object of class OvernightIndexedSwap and return its id"),
            // parameter descriptions
            TempStrNoSize("\x1A""id of object to be created"),
            TempStrNoSize("\x4B""PAYER to pay the fixed rate, RECEIVER to receive it. Default value = Payer."),
            TempStrNoSize("\x25""Notional Amount. Default value = 100."),
            TempStrNoSize("\x13""Schedule object ID."),
            TempStrNoSize("\x28""the fixed leg rate. Default value = 0.0."),
            TempStrNoSize("\x28""fixed leg day counter (e.g. Actual/360)."),
            TempStrNoSize("\x27""overnight leg OvernightIndex object ID."),
            TempStrNoSize("\x2A""overnight leg spread. Default value = 0.0."),
            TempStrNoSize("\x1D""object permanent/nonpermanent"),
            TempStrNoSize("\x1B""dependency tracking trigger"),
            TempStrNoSize("\x10""overwrite flag  "));

        Excel4(xlfRegisterId, &xlRegID, 2, &xDll,
            TempStrNoSize("\x16""qlOvernightIndexedSwap"));
        Excel4(xlfUnregister, 0, 1, &xlRegID);

        Excel(xlfRegister, 0, 12, &xDll,
            // function code name
            TempStrNoSize("\x1E""qlOvernightIndexedSwapFairRate"),
            // parameter codes
            TempStrNoSize("\x04""ECP#"),
            // function display name
            TempStrNoSize("\x1E""qlOvernightIndexedSwapFairRate"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x10""ObjectId,Trigger"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""0"),
            // function category
            TempStrNoSize("\x14""QuantLib - Financial"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x68""returns the fair fixed leg rate which would zero the swap NPV for the given OvernightIndexedSwap object."),
            // parameter descriptions
            TempStrNoSize("\x34""id of existing QuantLib::OvernightIndexedSwap object"),
            TempStrNoSize("\x1D""dependency tracking trigger  "));

        Excel4(xlfRegisterId, &xlRegID, 2, &xDll,
            TempStrNoSize("\x1E""qlOvernightIndexedSwapFairRate"));
        Excel4(xlfUnregister, 0, 1, &xlRegID);

        Excel(xlfRegister, 0, 12, &xDll,
            // function code name
            TempStrNoSize("\x20""qlOvernightIndexedSwapFairSpread"),
            // parameter codes
            TempStrNoSize("\x04""ECP#"),
            // function display name
            TempStrNoSize("\x20""qlOvernightIndexedSwapFairSpread"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x10""ObjectId,Trigger"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""0"),
            // function category
            TempStrNoSize("\x14""QuantLib - Financial"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x78""returns the fair spread over the overnight rate which would zero the swap NPV for the given OvernightIndexedSwap object."),
            // parameter descriptions
            TempStrNoSize("\x34""id of existing QuantLib::OvernightIndexedSwap object"),
            TempStrNoSize("\x1D""dependency tracking trigger  "));

        Excel4(xlfRegisterId, &xlRegID, 2, &xDll,
            TempStrNoSize("\x20""qlOvernightIndexedSwapFairSpread"));
        Excel4(xlfUnregister, 0, 1, &xlRegID);

        Excel(xlfRegister, 0, 12, &xDll,
            // function code name
            TempStrNoSize("\x23""qlOvernightIndexedSwapFixedDayCount"),
            // parameter codes
            TempStrNoSize("\x04""CCP#"),
            // function display name
            TempStrNoSize("\x23""qlOvernightIndexedSwapFixedDayCount"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x10""ObjectId,Trigger"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""0"),
            // function category
            TempStrNoSize("\x14""QuantLib - Financial"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x56""returns the fixed rate day count convention for the given OvernightIndexedSwap object."),
            // parameter descriptions
            TempStrNoSize("\x34""id of existing QuantLib::OvernightIndexedSwap object"),
            TempStrNoSize("\x1D""dependency tracking trigger  "));

        Excel4(xlfRegisterId, &xlRegID, 2, &xDll,
            TempStrNoSize("\x23""qlOvernightIndexedSwapFixedDayCount"));
        Excel4(xlfUnregister, 0, 1, &xlRegID);

        Excel(xlfRegister, 0, 13, &xDll,
            // function code name
            TempStrNoSize("\x26""qlOvernightIndexedSwapFixedLegAnalysis"),
            // parameter codes
            TempStrNoSize("\x05""PCPP#"),
            // function display name
            TempStrNoSize("\x26""qlOvernightIndexedSwapFixedLegAnalysis"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x1A""ObjectId,AfterDate,Trigger"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""0"),
            // function category
            TempStrNoSize("\x14""QuantLib - Financial"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x57""returns the fixed rate leg cash flow analysis of the given OvernightIndexedSwap object."),
            // parameter descriptions
            TempStrNoSize("\x39""id of existing QuantLibAddin::OvernightIndexedSwap object"),
            TempStrNoSize("\x47""Shows only cashflows after given date Default value = QuantLib::Date()."),
            TempStrNoSize("\x1D""dependency tracking trigger  "));

        Excel4(xlfRegisterId, &xlRegID, 2, &xDll,
            TempStrNoSize("\x26""qlOvernightIndexedSwapFixedLegAnalysis"));
        Excel4(xlfUnregister, 0, 1, &xlRegID);

        Excel(xlfRegister, 0, 12, &xDll,
            // function code name
            TempStrNoSize("\x21""qlOvernightIndexedSwapFixedLegBPS"),
            // parameter codes
            TempStrNoSize("\x04""ECP#"),
            // function display name
            TempStrNoSize("\x21""qlOvernightIndexedSwapFixedLegBPS"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x10""ObjectId,Trigger"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""0"),
            // function category
            TempStrNoSize("\x14""QuantLib - Financial"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x50""returns the BPS of the fixed rate leg for the given OvernightIndexedSwap object."),
            // parameter descriptions
            TempStrNoSize("\x34""id of existing QuantLib::OvernightIndexedSwap object"),
            TempStrNoSize("\x1D""dependency tracking trigger  "));

        Excel4(xlfRegisterId, &xlRegID, 2, &xDll,
            TempStrNoSize("\x21""qlOvernightIndexedSwapFixedLegBPS"));
        Excel4(xlfUnregister, 0, 1, &xlRegID);

        Excel(xlfRegister, 0, 12, &xDll,
            // function code name
            TempStrNoSize("\x21""qlOvernightIndexedSwapFixedLegNPV"),
            // parameter codes
            TempStrNoSize("\x04""ECP#"),
            // function display name
            TempStrNoSize("\x21""qlOvernightIndexedSwapFixedLegNPV"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x10""ObjectId,Trigger"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""0"),
            // function category
            TempStrNoSize("\x14""QuantLib - Financial"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x50""returns the NPV of the fixed rate leg for the given OvernightIndexedSwap object."),
            // parameter descriptions
            TempStrNoSize("\x34""id of existing QuantLib::OvernightIndexedSwap object"),
            TempStrNoSize("\x1D""dependency tracking trigger  "));

        Excel4(xlfRegisterId, &xlRegID, 2, &xDll,
            TempStrNoSize("\x21""qlOvernightIndexedSwapFixedLegNPV"));
        Excel4(xlfUnregister, 0, 1, &xlRegID);

        Excel(xlfRegister, 0, 12, &xDll,
            // function code name
            TempStrNoSize("\x1F""qlOvernightIndexedSwapFixedRate"),
            // parameter codes
            TempStrNoSize("\x04""ECP#"),
            // function display name
            TempStrNoSize("\x1F""qlOvernightIndexedSwapFixedRate"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x10""ObjectId,Trigger"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""0"),
            // function category
            TempStrNoSize("\x14""QuantLib - Financial"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x41""returns the fixed rate for the given OvernightIndexedSwap object."),
            // parameter descriptions
            TempStrNoSize("\x34""id of existing QuantLib::OvernightIndexedSwap object"),
            TempStrNoSize("\x1D""dependency tracking trigger  "));

        Excel4(xlfRegisterId, &xlRegID, 2, &xDll,
            TempStrNoSize("\x1F""qlOvernightIndexedSwapFixedRate"));
        Excel4(xlfUnregister, 0, 1, &xlRegID);

        Excel(xlfRegister, 0, 15, &xDll,
            // function code name
            TempStrNoSize("\x27""qlOvernightIndexedSwapFromOISRateHelper"),
            // parameter codes
            TempStrNoSize("\x07""CCCPPL#"),
            // function display name
            TempStrNoSize("\x27""qlOvernightIndexedSwapFromOISRateHelper"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x32""ObjectId,OISRateHelper,Permanent,Trigger,Overwrite"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""0"),
            // function category
            TempStrNoSize("\x14""QuantLib - Financial"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x43""Construct an object of class OvernightIndexedSwap and return its id"),
            // parameter descriptions
            TempStrNoSize("\x1A""id of object to be created"),
            TempStrNoSize("\x18""OISRateHelper object ID."),
            TempStrNoSize("\x1D""object permanent/nonpermanent"),
            TempStrNoSize("\x1B""dependency tracking trigger"),
            TempStrNoSize("\x10""overwrite flag  "));

        Excel4(xlfRegisterId, &xlRegID, 2, &xDll,
            TempStrNoSize("\x27""qlOvernightIndexedSwapFromOISRateHelper"));
        Excel4(xlfUnregister, 0, 1, &xlRegID);

        Excel(xlfRegister, 0, 12, &xDll,
            // function code name
            TempStrNoSize("\x1D""qlOvernightIndexedSwapNominal"),
            // parameter codes
            TempStrNoSize("\x04""ECP#"),
            // function display name
            TempStrNoSize("\x1D""qlOvernightIndexedSwapNominal"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x10""ObjectId,Trigger"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""0"),
            // function category
            TempStrNoSize("\x14""QuantLib - Financial"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x43""returns the swap nominal for the given OvernightIndexedSwap object."),
            // parameter descriptions
            TempStrNoSize("\x34""id of existing QuantLib::OvernightIndexedSwap object"),
            TempStrNoSize("\x1D""dependency tracking trigger  "));

        Excel4(xlfRegisterId, &xlRegID, 2, &xDll,
            TempStrNoSize("\x1D""qlOvernightIndexedSwapNominal"));
        Excel4(xlfUnregister, 0, 1, &xlRegID);

        Excel(xlfRegister, 0, 13, &xDll,
            // function code name
            TempStrNoSize("\x2A""qlOvernightIndexedSwapOvernightLegAnalysis"),
            // parameter codes
            TempStrNoSize("\x05""PCPP#"),
            // function display name
            TempStrNoSize("\x2A""qlOvernightIndexedSwapOvernightLegAnalysis"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x1A""ObjectId,AfterDate,Trigger"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""0"),
            // function category
            TempStrNoSize("\x14""QuantLib - Financial"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x32""returns the overnight rate leg cash flow analysis."),
            // parameter descriptions
            TempStrNoSize("\x39""id of existing QuantLibAddin::OvernightIndexedSwap object"),
            TempStrNoSize("\x47""Shows only cashflows after given date Default value = QuantLib::Date()."),
            TempStrNoSize("\x1D""dependency tracking trigger  "));

        Excel4(xlfRegisterId, &xlRegID, 2, &xDll,
            TempStrNoSize("\x2A""qlOvernightIndexedSwapOvernightLegAnalysis"));
        Excel4(xlfUnregister, 0, 1, &xlRegID);

        Excel(xlfRegister, 0, 12, &xDll,
            // function code name
            TempStrNoSize("\x25""qlOvernightIndexedSwapOvernightLegBPS"),
            // parameter codes
            TempStrNoSize("\x04""ECP#"),
            // function display name
            TempStrNoSize("\x25""qlOvernightIndexedSwapOvernightLegBPS"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x10""ObjectId,Trigger"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""0"),
            // function category
            TempStrNoSize("\x14""QuantLib - Financial"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x54""returns the BPS of the overnight rate leg for the given OvernightIndexedSwap object."),
            // parameter descriptions
            TempStrNoSize("\x34""id of existing QuantLib::OvernightIndexedSwap object"),
            TempStrNoSize("\x1D""dependency tracking trigger  "));

        Excel4(xlfRegisterId, &xlRegID, 2, &xDll,
            TempStrNoSize("\x25""qlOvernightIndexedSwapOvernightLegBPS"));
        Excel4(xlfUnregister, 0, 1, &xlRegID);

        Excel(xlfRegister, 0, 12, &xDll,
            // function code name
            TempStrNoSize("\x25""qlOvernightIndexedSwapOvernightLegNPV"),
            // parameter codes
            TempStrNoSize("\x04""ECP#"),
            // function display name
            TempStrNoSize("\x25""qlOvernightIndexedSwapOvernightLegNPV"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x10""ObjectId,Trigger"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""0"),
            // function category
            TempStrNoSize("\x14""QuantLib - Financial"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x54""returns the NPV of the overnight rate leg for the given OvernightIndexedSwap object."),
            // parameter descriptions
            TempStrNoSize("\x34""id of existing QuantLib::OvernightIndexedSwap object"),
            TempStrNoSize("\x1D""dependency tracking trigger  "));

        Excel4(xlfRegisterId, &xlRegID, 2, &xDll,
            TempStrNoSize("\x25""qlOvernightIndexedSwapOvernightLegNPV"));
        Excel4(xlfUnregister, 0, 1, &xlRegID);

        Excel(xlfRegister, 0, 12, &xDll,
            // function code name
            TempStrNoSize("\x1C""qlOvernightIndexedSwapSpread"),
            // parameter codes
            TempStrNoSize("\x04""ECP#"),
            // function display name
            TempStrNoSize("\x1C""qlOvernightIndexedSwapSpread"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x10""ObjectId,Trigger"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""0"),
            // function category
            TempStrNoSize("\x14""QuantLib - Financial"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x51""returns the spread over overnight rate for the given OvernightIndexedSwap object."),
            // parameter descriptions
            TempStrNoSize("\x34""id of existing QuantLib::OvernightIndexedSwap object"),
            TempStrNoSize("\x1D""dependency tracking trigger  "));

        Excel4(xlfRegisterId, &xlRegID, 2, &xDll,
            TempStrNoSize("\x1C""qlOvernightIndexedSwapSpread"));
        Excel4(xlfUnregister, 0, 1, &xlRegID);

        Excel(xlfRegister, 0, 12, &xDll,
            // function code name
            TempStrNoSize("\x1A""qlOvernightIndexedSwapType"),
            // parameter codes
            TempStrNoSize("\x04""CCP#"),
            // function display name
            TempStrNoSize("\x1A""qlOvernightIndexedSwapType"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x10""ObjectId,Trigger"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""0"),
            // function category
            TempStrNoSize("\x14""QuantLib - Financial"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x53""returns the swap type (Payer or Receiver) of the given OvernightIndexedSwap object."),
            // parameter descriptions
            TempStrNoSize("\x34""id of existing QuantLib::OvernightIndexedSwap object"),
            TempStrNoSize("\x1D""dependency tracking trigger  "));

        Excel4(xlfRegisterId, &xlRegID, 2, &xDll,
            TempStrNoSize("\x1A""qlOvernightIndexedSwapType"));
        Excel4(xlfUnregister, 0, 1, &xlRegID);



}
void unregisterFixingCurves(const XLOPER &xDll) {
    XLOPER xlRegID;
    // Unregister each function.  Due to a bug in Excel's C API this is a
    // two-step process.  Thanks to Laurent Longre for discovering the
    // workaround implemented here.


        Excel(xlfRegister, 0, 14, &xDll,
            TempStrNoSize("\x16""createDailyFixingCurve"),
            TempStrNoSize("\x06""CCPPL#"),
            TempStrNoSize("\x16""createDailyFixingCurve"),
            TempStrNoSize("\x1E""ObjectID,Dates,Rates,Permanent"),
            TempStrNoSize("\x01""1"),
            TempStrNoSize("\x9""prObjects"),
            TempStrNoSize("\x00"""),          
            TempStrNoSize("\x00"""),          
            TempStrNoSize("\x40""Construct an object of class DailyFixingCurve and returns its id"),
            TempStrNoSize("\x1A""id of object to be created"), 
            TempStrNoSize("\xB""Curve dates"),
            TempStrNoSize("\xE""Rate Set Rates"),
            TempStrNoSize("\x1D""object permanent/nonpermanent"));

        Excel4(xlfRegisterId, &xlRegID, 2, &xDll,
            TempStrNoSize("\x16""createDailyFixingCurve"));
        Excel4(xlfUnregister, 0, 1, &xlRegID);

        Excel(xlfRegister, 0, 14, &xDll,
            TempStrNoSize("\x18""createMonthlyFixingCurve"),
            TempStrNoSize("\x06""CCPPL#"),
            TempStrNoSize("\x18""createMonthlyFixingCurve"),
            TempStrNoSize("\x1E""ObjectID,Dates,Rates,Permanent"),
            TempStrNoSize("\x01""1"),
            TempStrNoSize("\x9""prObjects"),
            TempStrNoSize("\x00"""),          
            TempStrNoSize("\x00"""),          
            TempStrNoSize("\x42""Construct an object of class MonthlyFixingCurve and returns its id"),
            TempStrNoSize("\x1A""id of object to be created"), 
            TempStrNoSize("\xB""Curve dates"),
            TempStrNoSize("\xE""Rate Set Rates"),
            TempStrNoSize("\x1D""object permanent/nonpermanent"));

        Excel4(xlfRegisterId, &xlRegID, 2, &xDll,
            TempStrNoSize("\x18""createMonthlyFixingCurve"));
        Excel4(xlfUnregister, 0, 1, &xlRegID);

        Excel(xlfRegister, 0, 12, &xDll,
            TempStrNoSize("\x6""getFix"),
            TempStrNoSize("\x05""PCPP#"),           
            TempStrNoSize("\x6""getFix"),
            TempStrNoSize("\x16""ObjectID,Dates,Trigger"),
            TempStrNoSize("\x01""1"),                   
            TempStrNoSize("\x9""prObjects"),
            TempStrNoSize("\x00"""),                    
            TempStrNoSize("\x00"""),                    
            TempStrNoSize("\x2A""Returns the rate set for the relevant date"),
            TempStrNoSize("\x33""ID of the FixingRateSource to use for interpolation"),
            TempStrNoSize("\x7""Trigger"));  

        Excel4(xlfRegisterId, &xlRegID, 2, &xDll,
            TempStrNoSize("\x6""getFix"));
        Excel4(xlfUnregister, 0, 1, &xlRegID);

    
}
void registerExercise(const XLOPER &xDll) {

        Excel(xlfRegister, 0, 17, &xDll,
            // function code name
            TempStrNoSize("\x12""qlAmericanExercise"),
            // parameter codes
            TempStrNoSize("\x09""CCPPPPPL#"),
            // function display name
            TempStrNoSize("\x12""qlAmericanExercise"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x4B""ObjectId,EarliestDate,LatestDate,PayoffAtExpiry,Permanent,Trigger,Overwrite"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""1"),
            // function category
            TempStrNoSize("\x14""QuantLib - Financial"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x3F""Construct an object of class AmericanExercise and return its id"),
            // parameter descriptions
            TempStrNoSize("\x1A""id of object to be created"),
            TempStrNoSize("\x17""earliest exercise date."),
            TempStrNoSize("\x15""latest exercise date."),
            TempStrNoSize("\x28""payoff at expiry. Default value = false."),
            TempStrNoSize("\x1D""object permanent/nonpermanent"),
            TempStrNoSize("\x1B""dependency tracking trigger"),
            TempStrNoSize("\x10""overwrite flag  "));

        Excel(xlfRegister, 0, 16, &xDll,
            // function code name
            TempStrNoSize("\x12""qlBermudanExercise"),
            // parameter codes
            TempStrNoSize("\x08""CCPPPPL#"),
            // function display name
            TempStrNoSize("\x12""qlBermudanExercise"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x39""ObjectId,Dates,PayoffAtExpiry,Permanent,Trigger,Overwrite"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""1"),
            // function category
            TempStrNoSize("\x14""QuantLib - Financial"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x3F""Construct an object of class BermudanExercise and return its id"),
            // parameter descriptions
            TempStrNoSize("\x1A""id of object to be created"),
            TempStrNoSize("\x06""dates."),
            TempStrNoSize("\x28""payoff at expiry. Default value = false."),
            TempStrNoSize("\x1D""object permanent/nonpermanent"),
            TempStrNoSize("\x1B""dependency tracking trigger"),
            TempStrNoSize("\x10""overwrite flag  "));

        Excel(xlfRegister, 0, 15, &xDll,
            // function code name
            TempStrNoSize("\x12""qlEuropeanExercise"),
            // parameter codes
            TempStrNoSize("\x07""CCPPPL#"),
            // function display name
            TempStrNoSize("\x12""qlEuropeanExercise"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x2F""ObjectId,ExpiryDate,Permanent,Trigger,Overwrite"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""1"),
            // function category
            TempStrNoSize("\x14""QuantLib - Financial"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x3F""Construct an object of class EuropeanExercise and return its id"),
            // parameter descriptions
            TempStrNoSize("\x1A""id of object to be created"),
            TempStrNoSize("\x0C""expiry date."),
            TempStrNoSize("\x1D""object permanent/nonpermanent"),
            TempStrNoSize("\x1B""dependency tracking trigger"),
            TempStrNoSize("\x10""overwrite flag  "));

        Excel(xlfRegister, 0, 12, &xDll,
            // function code name
            TempStrNoSize("\x0F""qlExerciseDates"),
            // parameter codes
            TempStrNoSize("\x04""PCP#"),
            // function display name
            TempStrNoSize("\x0F""qlExerciseDates"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x10""ObjectId,Trigger"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""1"),
            // function category
            TempStrNoSize("\x14""QuantLib - Financial"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x1B""Returns all exercise dates."),
            // parameter descriptions
            TempStrNoSize("\x28""id of existing QuantLib::Exercise object"),
            TempStrNoSize("\x1D""dependency tracking trigger  "));

        Excel(xlfRegister, 0, 12, &xDll,
            // function code name
            TempStrNoSize("\x12""qlExerciseLastDate"),
            // parameter codes
            TempStrNoSize("\x04""NCP#"),
            // function display name
            TempStrNoSize("\x12""qlExerciseLastDate"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x10""ObjectId,Trigger"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""1"),
            // function category
            TempStrNoSize("\x14""QuantLib - Financial"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x1B""Returns last exercise date."),
            // parameter descriptions
            TempStrNoSize("\x28""id of existing QuantLib::Exercise object"),
            TempStrNoSize("\x1D""dependency tracking trigger  "));



}
inline void unregisterxlInstrumentPrice(const XLOPER & xDll) {

    XLOPER xlRegID ;

    // release the function registerxlInstrumentPrice
	Excel(	xlfRegister, 0, 15, &xDll,
			TempStrNoSize("\x11""xlInstrumentPrice"),
			TempStrNoSize("\x07""PCPEPP#"),
			TempStrNoSize("\x0A""BOND.PRICE"),
			TempStrNoSize("\x33""identifier,settlement date,yield,convention,trigger"),
			TempStrNoSize("\x01""1"),
			TempStrNoSize("\x15""xlObjectTools - Bond"),
			TempStrNoSize("\x00"""),
			TempStrNoSize("\x00"""),
			TempStrNoSize("\x4D""This function computes the bond price from its yield for the given convention"),
			TempStrNoSize("\x15""Instrument identifier"),
			TempStrNoSize("\x25""instrument settlement date (optional)"),
			TempStrNoSize("\x10""instrument yield"),
			TempStrNoSize("\x24""rate convention identifer (optional)"),
			TempStrNoSize("\x25""Triggers the computation (optional)  "));

    Excel4(xlfRegisterId, & xlRegID, 2, & xDll,
            TempStrNoSize("\x11""xlInstrumentPrice")) ;

    Excel4(xlfUnregister, 0, 1, & xlRegID) ;

}
void registerRandomsequencegenerator(const XLOPER &xDll) {

        Excel(xlfRegister, 0, 15, &xDll,
            // function code name
            TempStrNoSize("\x0A""qlFaureRsg"),
            // parameter codes
            TempStrNoSize("\x07""CCNPPL#"),
            // function display name
            TempStrNoSize("\x0A""qlFaureRsg"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x2E""ObjectId,Dimension,Permanent,Trigger,Overwrite"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""1"),
            // function category
            TempStrNoSize("\x0F""QuantLib - Math"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x37""Construct an object of class FaureRsg and return its id"),
            // parameter descriptions
            TempStrNoSize("\x1A""id of object to be created"),
            TempStrNoSize("\x0A""dimension."),
            TempStrNoSize("\x1D""object permanent/nonpermanent"),
            TempStrNoSize("\x1B""dependency tracking trigger"),
            TempStrNoSize("\x10""overwrite flag  "));

        Excel(xlfRegister, 0, 16, &xDll,
            // function code name
            TempStrNoSize("\x0B""qlHaltonRsg"),
            // parameter codes
            TempStrNoSize("\x08""CCNNPPL#"),
            // function display name
            TempStrNoSize("\x0B""qlHaltonRsg"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x33""ObjectId,Dimension,Seed,Permanent,Trigger,Overwrite"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""1"),
            // function category
            TempStrNoSize("\x0F""QuantLib - Math"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x38""Construct an object of class HaltonRsg and return its id"),
            // parameter descriptions
            TempStrNoSize("\x1A""id of object to be created"),
            TempStrNoSize("\x0A""dimension."),
            TempStrNoSize("\x05""seed."),
            TempStrNoSize("\x1D""object permanent/nonpermanent"),
            TempStrNoSize("\x1B""dependency tracking trigger"),
            TempStrNoSize("\x10""overwrite flag  "));

        Excel(xlfRegister, 0, 16, &xDll,
            // function code name
            TempStrNoSize("\x14""qlMersenneTwisterRsg"),
            // parameter codes
            TempStrNoSize("\x08""CCNNPPL#"),
            // function display name
            TempStrNoSize("\x14""qlMersenneTwisterRsg"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x33""ObjectId,Dimension,Seed,Permanent,Trigger,Overwrite"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""1"),
            // function category
            TempStrNoSize("\x0F""QuantLib - Math"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x41""Construct an object of class MersenneTwisterRsg and return its id"),
            // parameter descriptions
            TempStrNoSize("\x1A""id of object to be created"),
            TempStrNoSize("\x0A""dimension."),
            TempStrNoSize("\x05""seed."),
            TempStrNoSize("\x1D""object permanent/nonpermanent"),
            TempStrNoSize("\x1B""dependency tracking trigger"),
            TempStrNoSize("\x10""overwrite flag  "));

        Excel(xlfRegister, 0, 11, &xDll,
            // function code name
            TempStrNoSize("\x06""qlRand"),
            // parameter codes
            TempStrNoSize("\x03""EP#"),
            // function display name
            TempStrNoSize("\x06""qlRand"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x07""Trigger"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""1"),
            // function category
            TempStrNoSize("\x0F""QuantLib - Math"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x28""returns a random number between 0 and 1."),
            // parameter descriptions
            TempStrNoSize("\x1D""dependency tracking trigger  "));

        Excel(xlfRegister, 0, 12, &xDll,
            // function code name
            TempStrNoSize("\x0B""qlRandomize"),
            // parameter codes
            TempStrNoSize("\x04""LNP#"),
            // function display name
            TempStrNoSize("\x0B""qlRandomize"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x0C""Seed,Trigger"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""1"),
            // function category
            TempStrNoSize("\x0F""QuantLib - Math"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x4C""initialize with the given seed the random number generator used by qlRand()."),
            // parameter descriptions
            TempStrNoSize("\x38""the seed used to initialize the random number generator."),
            TempStrNoSize("\x1D""dependency tracking trigger  "));

        Excel(xlfRegister, 0, 16, &xDll,
            // function code name
            TempStrNoSize("\x0A""qlSobolRsg"),
            // parameter codes
            TempStrNoSize("\x08""CCNNPPL#"),
            // function display name
            TempStrNoSize("\x0A""qlSobolRsg"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x33""ObjectId,Dimension,Seed,Permanent,Trigger,Overwrite"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""1"),
            // function category
            TempStrNoSize("\x0F""QuantLib - Math"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x37""Construct an object of class SobolRsg and return its id"),
            // parameter descriptions
            TempStrNoSize("\x1A""id of object to be created"),
            TempStrNoSize("\x0A""dimension."),
            TempStrNoSize("\x05""seed."),
            TempStrNoSize("\x1D""object permanent/nonpermanent"),
            TempStrNoSize("\x1B""dependency tracking trigger"),
            TempStrNoSize("\x10""overwrite flag  "));

        Excel(xlfRegister, 0, 13, &xDll,
            // function code name
            TempStrNoSize("\x0A""qlVariates"),
            // parameter codes
            TempStrNoSize("\x05""PCNP#"),
            // function display name
            TempStrNoSize("\x0A""qlVariates"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x18""ObjectId,Samples,Trigger"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""1"),
            // function category
            TempStrNoSize("\x0F""QuantLib - Math"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x12""generate variates."),
            // parameter descriptions
            TempStrNoSize("\x3C""id of existing QuantLibAddin::RandomSequenceGenerator object"),
            TempStrNoSize("\x12""number of samples."),
            TempStrNoSize("\x1D""dependency tracking trigger  "));



}
inline void unregisterxlInitiateOvernightIndexedBootstrapHelper(const XLOPER & xDll) {

    XLOPER xlRegID ;

	// unregister the xlInitiateDepositBootstrapHelper function
	Excel(xlfRegister, 0, 15, &xDll,
		TempStrNoSize("\x29""xlInitiateOvernightIndexedBootstrapHelper"),
		TempStrNoSize("\x07""PCCEEP#"),
		TempStrNoSize("\x22""OBJECT.CURVE.HELPER.OVERNIGHT.SWAP"),
		TempStrNoSize("\x39""object indentifier,index identifier,maturity,rate,trigger"),
		TempStrNoSize("\x01""1"),
		TempStrNoSize("\x16""xlObjectTools - Object"),
		TempStrNoSize("\x00"""),
		TempStrNoSize("\x00"""),
		TempStrNoSize("\x40""This function creates an OIS swap helper for curve bootstrapping"),
		TempStrNoSize("\x11""Object Identifier"),
		TempStrNoSize("\x11""Index indentifier"),
		TempStrNoSize("\x19""Maturity date of the swap"),
		TempStrNoSize("\x16""Fixed rate of the swap"),
		TempStrNoSize("\x19""Trigger for recalculation"));

    Excel4(xlfRegisterId, & xlRegID, 2, & xDll,
        TempStrNoSize("\x29""xlInitiateOvernightIndexedBootstrapHelper")) ;

    Excel4(xlfUnregister, 0, 1, & xlRegID) ;

}
void unregisterContractsForwardAsian(const XLOPER &xDll) 
{
    XLOPER xlRegID;
    // Unregister each function.  Due to a bug in Excel's C API this is a
    // two-step process.  Thanks to Laurent Longre for discovering the
    // workaround implemented here.

        Excel(xlfRegister, 0, 18, &xDll,
            TempStrNoSize("\x1A""createContractForwardAsian"),
            TempStrNoSize("\xA""CCPPPBBCL#"),
            TempStrNoSize("\x1A""createContractForwardAsian"),
            TempStrNoSize("\x3D""ObjectID,AveStart,AveEnd,SettDate,Strike,Volume,B/S,Permanent"),
            TempStrNoSize("\x01""1"),                   // function type (0 = hidden function, 1 = worksheet function, 2 = command macro)
            TempStrNoSize("\x9""prObjects"),            // function category            
            TempStrNoSize("\x00"""),                    // shortcut text (command macros only)            
            TempStrNoSize("\x00"""),                    // path to help file
            TempStrNoSize("\x26""Constructs an Oil Average Rate Forward"),
            TempStrNoSize("\x1A""id of object to be created"),  // parameter descriptions
            TempStrNoSize("\x19""Start of averaging period"),
            TempStrNoSize("\x17""End of averaging period"),
            TempStrNoSize("\xF""Settlement date"),
            TempStrNoSize("\x6""Strike"),
            TempStrNoSize("\x6""Volume"),
            TempStrNoSize("\x1D""Buy or Sell at the fixed rate"),
            TempStrNoSize("\x1D""object permanent/nonpermanent"));

        Excel4(xlfRegisterId, &xlRegID, 2, &xDll,
            TempStrNoSize("\x1A""createContractForwardAsian"));
        Excel4(xlfUnregister, 0, 1, &xlRegID);
}
inline void registerxlMeanEWMA(const XLOPER & xDll) {

             // Enregistre la fonction xlMeanEWMA
        Excel(xlfRegister, 0, 14, & xDll,
            TempStrNoSize("\x0A""xlMeanEWMA"),
            TempStrNoSize("\x06""PCEEP#"),
            TempStrNoSize("\x0C""MOYENNE.EWMA"),
            TempStrNoSize("\x41""série à estimer,facteur d'obsolescence,date de la moyenne,trigger"),
            TempStrNoSize("\x01""1"),
            TempStrNoSize("\x15""xlObjectTools - Math"),
            TempStrNoSize("\x00"""),
            TempStrNoSize("\x00"""),
            TempStrNoSize("\x77""Cette fonction calcule la moyenne d'une série pour une valeur du facteur d'obsolescence donnée et une date d'évaluation"),
            TempStrNoSize("\x21""Identifiant de la série à estimer"),
            TempStrNoSize("\x25""La valeur du paramètre d'obsolescence"),
            TempStrNoSize("\x21""La date d'évalation de la moyenne"),
            TempStrNoSize("\x17""Déclenche le recalcul  ")) ;


    }
inline void registerxlPricingDate(const XLOPER & xDll) {

             // Enregistre la fonction xlPricingDate
	Excel(xlfRegister, 0, 12, &xDll,
		TempStrNoSize("\x0D""xlPricingDate"),
		TempStrNoSize("\x04""BPP#"),
		TempStrNoSize("\x12""ADDIN.PRICING.DATE"),
		TempStrNoSize("\x0C""date,trigger"),
		TempStrNoSize("\x01""1"),
		TempStrNoSize("\x15""xlObjectTools - addin"),
		TempStrNoSize("\x00"""),
		TempStrNoSize("\x00"""),
		TempStrNoSize("\x39""This function sets system's pricing date (default: today)"),
		TempStrNoSize("\x10""Calculation date"),
		TempStrNoSize("\x07""trigger"));

    }
void registerObjects(const XLOPER &xDll) {

        Excel(xlfRegister, 0, 12, &xDll,
            // function code name
            TempStrNoSize("\x15""ohObjectCallerAddress"),
            // parameter codes
            TempStrNoSize("\x04""PPP#"),
            // function display name
            TempStrNoSize("\x15""ohObjectCallerAddress"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x10""ObjectId,Trigger"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""1"),
            // function category
            TempStrNoSize("\x0D""ObjectHandler"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x31""retrieve address of cell in which object resides."),
            // parameter descriptions
            TempStrNoSize("\x1B""ID of object to be queried."),
            TempStrNoSize("\x1D""dependency tracking trigger  "));

        Excel(xlfRegister, 0, 12, &xDll,
            // function code name
            TempStrNoSize("\x11""ohObjectCallerKey"),
            // parameter codes
            TempStrNoSize("\x04""PPP#"),
            // function display name
            TempStrNoSize("\x11""ohObjectCallerKey"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x10""ObjectId,Trigger"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""1"),
            // function category
            TempStrNoSize("\x0D""ObjectHandler"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x5F""retrieve unique ID of the CallingRange object associated with the cell in which object resides."),
            // parameter descriptions
            TempStrNoSize("\x1B""ID of object to be queried."),
            TempStrNoSize("\x1D""dependency tracking trigger  "));

        Excel(xlfRegister, 0, 12, &xDll,
            // function code name
            TempStrNoSize("\x11""ohObjectClassName"),
            // parameter codes
            TempStrNoSize("\x04""PPP#"),
            // function display name
            TempStrNoSize("\x11""ohObjectClassName"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x10""ObjectID,Trigger"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""1"),
            // function category
            TempStrNoSize("\x0D""ObjectHandler"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x19""get the object class name"),
            // parameter descriptions
            TempStrNoSize("\x0F""Object ID name."),
            TempStrNoSize("\x1D""dependency tracking trigger  "));

        Excel(xlfRegister, 0, 12, &xDll,
            // function code name
            TempStrNoSize("\x14""ohObjectCreationTime"),
            // parameter codes
            TempStrNoSize("\x04""PPP#"),
            // function display name
            TempStrNoSize("\x14""ohObjectCreationTime"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x10""ObjectID,Trigger"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""1"),
            // function category
            TempStrNoSize("\x0D""ObjectHandler"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x56""The time at which the Object was initially created, return the time of initing object."),
            // parameter descriptions
            TempStrNoSize("\x0A""object ID."),
            TempStrNoSize("\x1D""dependency tracking trigger  "));

        Excel(xlfRegister, 0, 12, &xDll,
            // function code name
            TempStrNoSize("\x0E""ohObjectExists"),
            // parameter codes
            TempStrNoSize("\x04""PPP#"),
            // function display name
            TempStrNoSize("\x0E""ohObjectExists"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x10""ObjectID,Trigger"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""1"),
            // function category
            TempStrNoSize("\x0D""ObjectHandler"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x35""list the IDs of objects in repository matching regex."),
            // parameter descriptions
            TempStrNoSize("\x0F""Object ID name."),
            TempStrNoSize("\x1D""dependency tracking trigger  "));

        Excel(xlfRegister, 0, 12, &xDll,
            // function code name
            TempStrNoSize("\x10""ohObjectIsOrphan"),
            // parameter codes
            TempStrNoSize("\x04""PPP#"),
            // function display name
            TempStrNoSize("\x10""ohObjectIsOrphan"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x10""ObjectId,Trigger"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""1"),
            // function category
            TempStrNoSize("\x0D""ObjectHandler"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x1F""get the object property orphan "),
            // parameter descriptions
            TempStrNoSize("\x0F""Object ID name."),
            TempStrNoSize("\x1D""dependency tracking trigger  "));

        Excel(xlfRegister, 0, 12, &xDll,
            // function code name
            TempStrNoSize("\x13""ohObjectIsPermanent"),
            // parameter codes
            TempStrNoSize("\x04""PPP#"),
            // function display name
            TempStrNoSize("\x13""ohObjectIsPermanent"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x10""ObjectID,Trigger"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""1"),
            // function category
            TempStrNoSize("\x0D""ObjectHandler"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x21""get the object property permanent"),
            // parameter descriptions
            TempStrNoSize("\x0F""Object ID name."),
            TempStrNoSize("\x1D""dependency tracking trigger  "));

        Excel(xlfRegister, 0, 12, &xDll,
            // function code name
            TempStrNoSize("\x14""ohObjectPrecedentIDs"),
            // parameter codes
            TempStrNoSize("\x04""PCP#"),
            // function display name
            TempStrNoSize("\x14""ohObjectPrecedentIDs"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x10""ObjectID,Trigger"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""1"),
            // function category
            TempStrNoSize("\x0D""ObjectHandler"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x43""A list of the Object's precedent Objects, return the object's list."),
            // parameter descriptions
            TempStrNoSize("\x0A""object ID."),
            TempStrNoSize("\x1D""dependency tracking trigger  "));

        Excel(xlfRegister, 0, 12, &xDll,
            // function code name
            TempStrNoSize("\x15""ohObjectUpdateCounter"),
            // parameter codes
            TempStrNoSize("\x04""PPP#"),
            // function display name
            TempStrNoSize("\x15""ohObjectUpdateCounter"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x10""ObjectID,Trigger"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""1"),
            // function category
            TempStrNoSize("\x0D""ObjectHandler"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x26""get the object property update counter"),
            // parameter descriptions
            TempStrNoSize("\x0F""Object ID name."),
            TempStrNoSize("\x1D""dependency tracking trigger  "));

        Excel(xlfRegister, 0, 12, &xDll,
            // function code name
            TempStrNoSize("\x12""ohObjectUpdateTime"),
            // parameter codes
            TempStrNoSize("\x04""PPP#"),
            // function display name
            TempStrNoSize("\x12""ohObjectUpdateTime"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x10""ObjectID,Trigger"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""1"),
            // function category
            TempStrNoSize("\x0D""ObjectHandler"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x4C""The time at which the Object was last recreated, return the last udate time."),
            // parameter descriptions
            TempStrNoSize("\x0A""object ID."),
            TempStrNoSize("\x1D""dependency tracking trigger  "));



}
inline void unregisterxlZScoreEWMA(const XLOPER & xDll) {

        XLOPER xlRegID ;

             // Enregistre la fonction xlZScoreEWMA
        Excel(xlfRegister, 0, 14, & xDll,
            TempStrNoSize("\x0C""xlZScoreEWMA"),
            TempStrNoSize("\x06""PCEEP#"),
            TempStrNoSize("\x0C""Z.SCORE.EWMA"),
            TempStrNoSize("\x40""série à estimer,facteur d'obsolescence,date d'évaluation,trigger"),
            TempStrNoSize("\x01""1"),
            TempStrNoSize("\x15""xlObjectTools - Math"),
            TempStrNoSize("\x00"""),
            TempStrNoSize("\x00"""),
            TempStrNoSize("\x5E""Cette fonction calcule le z-score d'une série pour une valeur du facteur d'obsolescence donnée"),
            TempStrNoSize("\x21""Identifiant de la série à estimer"),
            TempStrNoSize("\x25""La valeur du paramètre d'obsolescence"),
            TempStrNoSize("\x1F""La date d'évaluation du z-score"),
            TempStrNoSize("\x17""Déclenche le recalcul  ")) ;


        Excel4(xlfRegisterId, & xlRegID, 2, & xDll,
            TempStrNoSize("\x0C""xlZScoreEWMA")) ;

        Excel4(xlfUnregister, 0, 1, & xlRegID) ;

    }
inline void unregisterxlInitiateTreasuryNote (const XLOPER & xDll) {

        XLOPER xlRegID ;

             // Enregistre la fonction xlInitiateMatrix
        Excel(xlfRegister, 0, 18, & xDll,
            TempStrNoSize("\x16""xlInitiateTreasuryNote"),
            TempStrNoSize("\x0A""PCEEEEEEP#"),
            TempStrNoSize("\x0F""INSTANCE.TNOTE"),
            TempStrNoSize("\x83""identifiant de l'instrument,date d'emission,date effective,premier coupon,penultième coupon,date de maturité,taux de coupon,trigger"),
            TempStrNoSize("\x01""1"),
            TempStrNoSize("\x17""xlObjectTools - Object"),
            TempStrNoSize("\x00"""),
            TempStrNoSize("\x00"""),
            TempStrNoSize("\x34""Cette fonction instancie une obligation du trésor US"),
            TempStrNoSize("\x1D""L'identifiant de l'instrument"),
            TempStrNoSize("\x1B""La date d'émission du titre"),
            TempStrNoSize("\x2B""La date de début de cumul de premier coupon"),
            TempStrNoSize("\x25""La date de paiement du premier coupon"),
            TempStrNoSize("\x1C""La date du penultième coupon"),
            TempStrNoSize("\x1C""La date de maturité du titre"),
            TempStrNoSize("\x21""Le taux de coupon de l'obligation"),
            TempStrNoSize("\x17""Déclenche le recalcul  ")) ;

        Excel4(xlfRegisterId, & xlRegID, 2, & xDll,
            TempStrNoSize("\x0F""xlInitiateTNote")) ;

        Excel4(xlfUnregister, 0, 1, & xlRegID) ;

    }
void unregisterShortratemodels(const XLOPER &xDll) {

    XLOPER xlRegID;

    // Unregister each function.  Due to a bug in Excel's C API this is a
    // two-step process.  Thanks to Laurent Longre for discovering the
    // workaround implemented here.

        Excel(xlfRegister, 0, 16, &xDll,
            // function code name
            TempStrNoSize("\x16""qlFuturesConvexityBias"),
            // parameter codes
            TempStrNoSize("\x08""EEEEEPP#"),
            // function display name
            TempStrNoSize("\x16""qlFuturesConvexityBias"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x22""FuturesPrice,T1,T2,Sigma,A,Trigger"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""0"),
            // function category
            TempStrNoSize("\x14""QuantLib - Financial"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\xAB""Returns Futures convexity bias (ForwardRate = FuturesImpliedRate - ConvexityBias) calculated as in G. Kirikos, D. Novak, 'Convexity Conundrums', Risk Magazine, March 1997."),
            // parameter descriptions
            TempStrNoSize("\x1B""Futures price (e.g. 94.56)."),
            TempStrNoSize("\x39""Maturity date of the futures contract in years(e.g. 5.0)."),
            TempStrNoSize("\x3E""Maturity of the underlying Libor deposit in years (e.g. 5.25)."),
            TempStrNoSize("\x23""Hull-White volatility (e.g. 0.015)."),
            TempStrNoSize("\x30""Hull-White mean reversion. Default value = 0.03."),
            TempStrNoSize("\x1D""dependency tracking trigger  "));

        Excel4(xlfRegisterId, &xlRegID, 2, &xDll,
            TempStrNoSize("\x16""qlFuturesConvexityBias"));
        Excel4(xlfUnregister, 0, 1, &xlRegID);

        Excel(xlfRegister, 0, 17, &xDll,
            // function code name
            TempStrNoSize("\x0B""qlHullWhite"),
            // parameter codes
            TempStrNoSize("\x09""CCCEEPPL#"),
            // function display name
            TempStrNoSize("\x0B""qlHullWhite"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x37""ObjectId,YieldCurve,A,Sigma,Permanent,Trigger,Overwrite"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""0"),
            // function category
            TempStrNoSize("\x14""QuantLib - Financial"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x38""Construct an object of class HullWhite and return its id"),
            // parameter descriptions
            TempStrNoSize("\x1A""id of object to be created"),
            TempStrNoSize("\x1D""YieldTermStructure object ID."),
            TempStrNoSize("\x02""a."),
            TempStrNoSize("\x0B""volatility."),
            TempStrNoSize("\x1D""object permanent/nonpermanent"),
            TempStrNoSize("\x1B""dependency tracking trigger"),
            TempStrNoSize("\x10""overwrite flag  "));

        Excel4(xlfRegisterId, &xlRegID, 2, &xDll,
            TempStrNoSize("\x0B""qlHullWhite"));
        Excel4(xlfUnregister, 0, 1, &xlRegID);

        Excel(xlfRegister, 0, 20, &xDll,
            // function code name
            TempStrNoSize("\x09""qlModelG2"),
            // parameter codes
            TempStrNoSize("\x0C""CCCPPPPPPPL#"),
            // function display name
            TempStrNoSize("\x09""qlModelG2"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x49""ObjectId,YieldCurve,A,Sigma,B,Eta,Correlation,Permanent,Trigger,Overwrite"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""0"),
            // function category
            TempStrNoSize("\x14""QuantLib - Financial"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x31""Construct an object of class G2 and return its id"),
            // parameter descriptions
            TempStrNoSize("\x1A""id of object to be created"),
            TempStrNoSize("\x1D""YieldTermStructure object ID."),
            TempStrNoSize("\x43""drift of x(t) dynamics with r(t)= x(t) + y(t). Default value = 0.1."),
            TempStrNoSize("\x49""volatility of x(t) dynamics with r(t)= x(t) + y(t). Default value = 0.01."),
            TempStrNoSize("\x43""drift of y(t) dynamics with r(t)= x(t) + y(t). Default value = 0.1."),
            TempStrNoSize("\x49""volatility of y(t) dynamics with r(t)= x(t) + y(t). Default value = 0.01."),
            TempStrNoSize("\x38""Correlation between x(t) and y(t) Default value = -0.75."),
            TempStrNoSize("\x1D""object permanent/nonpermanent"),
            TempStrNoSize("\x1B""dependency tracking trigger"),
            TempStrNoSize("\x10""overwrite flag  "));

        Excel4(xlfRegisterId, &xlRegID, 2, &xDll,
            TempStrNoSize("\x09""qlModelG2"));
        Excel4(xlfUnregister, 0, 1, &xlRegID);

        Excel(xlfRegister, 0, 12, &xDll,
            // function code name
            TempStrNoSize("\x0A""qlModelG2A"),
            // parameter codes
            TempStrNoSize("\x04""PCP#"),
            // function display name
            TempStrNoSize("\x0A""qlModelG2A"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x10""ObjectId,Trigger"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""0"),
            // function category
            TempStrNoSize("\x14""QuantLib - Financial"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x3B""returns the drift of x(t) dynamics with r(t) = x(t) + y(t)."),
            // parameter descriptions
            TempStrNoSize("\x22""id of existing QuantLib::G2 object"),
            TempStrNoSize("\x1D""dependency tracking trigger  "));

        Excel4(xlfRegisterId, &xlRegID, 2, &xDll,
            TempStrNoSize("\x0A""qlModelG2A"));
        Excel4(xlfUnregister, 0, 1, &xlRegID);

        Excel(xlfRegister, 0, 12, &xDll,
            // function code name
            TempStrNoSize("\x0A""qlModelG2B"),
            // parameter codes
            TempStrNoSize("\x04""PCP#"),
            // function display name
            TempStrNoSize("\x0A""qlModelG2B"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x10""ObjectId,Trigger"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""0"),
            // function category
            TempStrNoSize("\x14""QuantLib - Financial"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x3B""returns the drift of y(t) dynamics with r(t) = x(t) + y(t)."),
            // parameter descriptions
            TempStrNoSize("\x22""id of existing QuantLib::G2 object"),
            TempStrNoSize("\x1D""dependency tracking trigger  "));

        Excel4(xlfRegisterId, &xlRegID, 2, &xDll,
            TempStrNoSize("\x0A""qlModelG2B"));
        Excel4(xlfUnregister, 0, 1, &xlRegID);

        Excel(xlfRegister, 0, 12, &xDll,
            // function code name
            TempStrNoSize("\x0C""qlModelG2eta"),
            // parameter codes
            TempStrNoSize("\x04""PCP#"),
            // function display name
            TempStrNoSize("\x0C""qlModelG2eta"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x10""ObjectId,Trigger"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""0"),
            // function category
            TempStrNoSize("\x14""QuantLib - Financial"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x40""returns the volatility of y(t) dynamics with r(t) = x(t) + y(t)."),
            // parameter descriptions
            TempStrNoSize("\x22""id of existing QuantLib::G2 object"),
            TempStrNoSize("\x1D""dependency tracking trigger  "));

        Excel4(xlfRegisterId, &xlRegID, 2, &xDll,
            TempStrNoSize("\x0C""qlModelG2eta"));
        Excel4(xlfUnregister, 0, 1, &xlRegID);

        Excel(xlfRegister, 0, 12, &xDll,
            // function code name
            TempStrNoSize("\x0C""qlModelG2rho"),
            // parameter codes
            TempStrNoSize("\x04""PCP#"),
            // function display name
            TempStrNoSize("\x0C""qlModelG2rho"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x10""ObjectId,Trigger"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""0"),
            // function category
            TempStrNoSize("\x14""QuantLib - Financial"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x46""returns the correlation between x(t) and y(t) with r(t) = x(t) + y(t)."),
            // parameter descriptions
            TempStrNoSize("\x22""id of existing QuantLib::G2 object"),
            TempStrNoSize("\x1D""dependency tracking trigger  "));

        Excel4(xlfRegisterId, &xlRegID, 2, &xDll,
            TempStrNoSize("\x0C""qlModelG2rho"));
        Excel4(xlfUnregister, 0, 1, &xlRegID);

        Excel(xlfRegister, 0, 12, &xDll,
            // function code name
            TempStrNoSize("\x0E""qlModelG2sigma"),
            // parameter codes
            TempStrNoSize("\x04""PCP#"),
            // function display name
            TempStrNoSize("\x0E""qlModelG2sigma"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x10""ObjectId,Trigger"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""0"),
            // function category
            TempStrNoSize("\x14""QuantLib - Financial"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x40""returns the volatility of x(t) dynamics with r(t) = x(t) + y(t)."),
            // parameter descriptions
            TempStrNoSize("\x22""id of existing QuantLib::G2 object"),
            TempStrNoSize("\x1D""dependency tracking trigger  "));

        Excel4(xlfRegisterId, &xlRegID, 2, &xDll,
            TempStrNoSize("\x0E""qlModelG2sigma"));
        Excel4(xlfUnregister, 0, 1, &xlRegID);

        Excel(xlfRegister, 0, 19, &xDll,
            // function code name
            TempStrNoSize("\x09""qlVasicek"),
            // parameter codes
            TempStrNoSize("\x0B""CCPPPPPPPL#"),
            // function display name
            TempStrNoSize("\x09""qlVasicek"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x38""ObjectId,R0,A,B,Sigma,Lambda,Permanent,Trigger,Overwrite"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""0"),
            // function category
            TempStrNoSize("\x14""QuantLib - Financial"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x36""Construct an object of class Vasicek and return its id"),
            // parameter descriptions
            TempStrNoSize("\x1A""id of object to be created"),
            TempStrNoSize("\x24""initial value. Default value = 0.05."),
            TempStrNoSize("\x2A""mean reverting speed. Default value = 0.1."),
            TempStrNoSize("\x2D""short-rate limit value. Default value = 0.05."),
            TempStrNoSize("\x21""volatility. Default value = 0.01."),
            TempStrNoSize("\x22""risk premium. Default value = 0.0."),
            TempStrNoSize("\x1D""object permanent/nonpermanent"),
            TempStrNoSize("\x1B""dependency tracking trigger"),
            TempStrNoSize("\x10""overwrite flag  "));

        Excel4(xlfRegisterId, &xlRegID, 2, &xDll,
            TempStrNoSize("\x09""qlVasicek"));
        Excel4(xlfUnregister, 0, 1, &xlRegID);

        Excel(xlfRegister, 0, 12, &xDll,
            // function code name
            TempStrNoSize("\x0A""qlVasicekA"),
            // parameter codes
            TempStrNoSize("\x04""PCP#"),
            // function display name
            TempStrNoSize("\x0A""qlVasicekA"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x10""ObjectId,Trigger"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""0"),
            // function category
            TempStrNoSize("\x14""QuantLib - Financial"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x47""returns mean reverting speed a, with dr(t) = a(b-r(t))dt + sigma dW(t)."),
            // parameter descriptions
            TempStrNoSize("\x27""id of existing QuantLib::Vasicek object"),
            TempStrNoSize("\x1D""dependency tracking trigger  "));

        Excel4(xlfRegisterId, &xlRegID, 2, &xDll,
            TempStrNoSize("\x0A""qlVasicekA"));
        Excel4(xlfUnregister, 0, 1, &xlRegID);

        Excel(xlfRegister, 0, 12, &xDll,
            // function code name
            TempStrNoSize("\x0A""qlVasicekB"),
            // parameter codes
            TempStrNoSize("\x04""PCP#"),
            // function display name
            TempStrNoSize("\x0A""qlVasicekB"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x10""ObjectId,Trigger"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""0"),
            // function category
            TempStrNoSize("\x14""QuantLib - Financial"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x49""returns short-rate limit value b, with dr(t) = a(b-r(t))dt + sigma dW(t)."),
            // parameter descriptions
            TempStrNoSize("\x27""id of existing QuantLib::Vasicek object"),
            TempStrNoSize("\x1D""dependency tracking trigger  "));

        Excel4(xlfRegisterId, &xlRegID, 2, &xDll,
            TempStrNoSize("\x0A""qlVasicekB"));
        Excel4(xlfUnregister, 0, 1, &xlRegID);

        Excel(xlfRegister, 0, 12, &xDll,
            // function code name
            TempStrNoSize("\x0F""qlVasicekLambda"),
            // parameter codes
            TempStrNoSize("\x04""PCP#"),
            // function display name
            TempStrNoSize("\x0F""qlVasicekLambda"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x10""ObjectId,Trigger"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""0"),
            // function category
            TempStrNoSize("\x14""QuantLib - Financial"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x19""returns the risk premium."),
            // parameter descriptions
            TempStrNoSize("\x27""id of existing QuantLib::Vasicek object"),
            TempStrNoSize("\x1D""dependency tracking trigger  "));

        Excel4(xlfRegisterId, &xlRegID, 2, &xDll,
            TempStrNoSize("\x0F""qlVasicekLambda"));
        Excel4(xlfUnregister, 0, 1, &xlRegID);

        Excel(xlfRegister, 0, 12, &xDll,
            // function code name
            TempStrNoSize("\x0E""qlVasicekSigma"),
            // parameter codes
            TempStrNoSize("\x04""PCP#"),
            // function display name
            TempStrNoSize("\x0E""qlVasicekSigma"),
            // comma-delimited list of parameter names
            TempStrNoSize("\x10""ObjectId,Trigger"),
            // function type (0 = hidden, 1 = worksheet)
            TempStrNoSize("\x01""0"),
            // function category
            TempStrNoSize("\x14""QuantLib - Financial"),
            // shortcut text (command macros only)
            TempStrNoSize("\x00"""),
            // path to help file
            TempStrNoSize("\x00"""),
            // function description
            TempStrNoSize("\x45""returns the volatility sigma, with dr(t) = a(b-r(t))dt + sigma dW(t)."),
            // parameter descriptions
            TempStrNoSize("\x27""id of existing QuantLib::Vasicek object"),
            TempStrNoSize("\x1D""dependency tracking trigger  "));

        Excel4(xlfRegisterId, &xlRegID, 2, &xDll,
            TempStrNoSize("\x0E""qlVasicekSigma"));
        Excel4(xlfUnregister, 0, 1, &xlRegID);



}
inline void unregisterxlInstrumentRollDown(const XLOPER & xDll) {

    XLOPER xlRegID ;

    Excel(xlfRegister, 0, 16, & xDll,
          TempStrNoSize("\x14""xlInstrumentRollDown"),
          TempStrNoSize("\x08""PCCEPPP#"),
          TempStrNoSize("\x14""INSTRUMENT.ROLL.DOWN"),
          TempStrNoSize("\x6E""Identifiant de l'instrument,identifiant de la courbe,date de fin,spread initial,convention de taux,déclencheur"),
          TempStrNoSize("\x01""1"),
          TempStrNoSize("\x15""xlObjectTools - Bond"),
          TempStrNoSize("\x00"""),
          TempStrNoSize("\x00"""),
          TempStrNoSize("\x79""Cette fonction calcule le prix à terme d'un instrument pour un spread et une courbe spot et à un horizon de portage donné"),
          TempStrNoSize("\x1D""L'identifiant de l'instrument"),
          TempStrNoSize("\x1A""L'identifiant de la courbe"),
          TempStrNoSize("\x19""La date de fin de portage"),
          TempStrNoSize("\x2B""Le spread de l'instrument en points de base"),
          TempStrNoSize("\x27""L'identifiant de la convention employée"),
          TempStrNoSize("\x1C""Le déclencheur du recalcul  ")) ;

    Excel4(xlfRegisterId, & xlRegID, 2, & xDll,
           TempStrNoSize("\x14""xlInstrumentRollDown")) ;

    Excel4(xlfUnregister, 0, 1, & xlRegID) ;

}