Hi Mindaugas, Przemyslaw

I have an OLE dll that I am trying to use. I think it returns a safearray of IUnknown.

To understand a bit better I put the following 3 debug lines in olecore.c:


void hb_oleVariantToItem( PHB_ITEM pItem, VARIANT* pVariant )
{
char debug[ 100 ];
   if( pVariant->n1.n2.vt == ( VT_VARIANT | VT_BYREF ) )
      pVariant = pVariant->n1.n2.n3.pvarVal;

sprintf( debug, "hb_oleVariantToItem - pVariant->n1.n2.vt = %x, VT_UNKNOWN | VT_ARRAY = %x", pVariant->n1.n2.vt, VT_UNKNOWN | VT_ARRAY );
OutputDebugString( debug );
   switch( pVariant->n1.n2.vt )
...


and I get:


hb_oleVariantToItem - pVariant->n1.n2.vt = 200d, VT_UNKNOWN | VT_ARRAY = 200d


In the accompanying IDL file it is the return from:

    interface _CardCOM : IDispatch {
        [id(0x00000001)]
        HRESULT Validate(
                        [in] BSTR number,
                        [in] BSTR code,
                        [out, retval] SAFEARRAY(_CardComRetValidate*)* pRetVal);


Is it possible to add support for this?

Regards
Alex

// Generated .IDL file (by the OLE/COM Object Viewer)
// 
// typelib filename: RetainComObj.tlb

[
  uuid(B45867AA-2DFE-4383-A846-4F5E9380B55D),
  version(1.16)
]
library RetainComObj
{
    // TLib :     // TLib : mscorlib.dll : 
{BED7F4EA-1A96-11D2-8F08-00A0C9A6186D}
    importlib("mscorlib.tlb");
    // TLib : OLE Automation : {00020430-0000-0000-C000-000000000046}
    importlib("stdole2.tlb");

    // Forward declare all types defined in this typelib
    interface _CardCOM;
    interface _CardComInit;
    interface _CardComRetAddValue;
    interface _CardComRetCancel;
    interface _CardComRetHistory;
    interface _CardComRetHistoryExpire;
    interface _CardComRetHistoryTime;
    interface _CardComRetRedeem;
    interface _CardComRetRefund;
    interface _CardComRetSale;
    interface _CardComRetSalesTemplate;
    interface _CardComRetStatus;
    interface _CardComRetTransactionReport;
    interface _CardComRetTransactionReportItem;
    interface _CardComRetTransactionReportSum;
    interface _CardComRetValidate;
    interface _CardComXML;
    interface _common;
    interface _Utils;

    [
      uuid(7F0D071E-D45C-44A2-9994-E410A5465EB4),
      version(1.0),
        custom({0F21F359-AB84-41E8-9A78-36D110E6D2F9}, "RetainComObj.CardCOM")
    ]
    coclass CardCOM {
        interface _Object;
        [default] interface _CardCOM;
    };

    [
      odl,
      uuid(ECC7E3CD-E3A3-4349-A122-4858507C83A1),
      version(1.0),
      dual,
      oleautomation,
        custom({0F21F359-AB84-41E8-9A78-36D110E6D2F9}, 
"RetainComObj.CardCOM+_CardCOM")    

    ]
    interface _CardCOM : IDispatch {
        [id(0x00000001)]
        HRESULT Validate(
                        [in] BSTR number, 
                        [in] BSTR code, 
                        [out, retval] SAFEARRAY(_CardComRetValidate*)* pRetVal);
        [id(0x00000002)]
        HRESULT AddValue(
                        [in] BSTR number, 
                        [in] double amount, 
                        [in, optional, defaultvalue("")] BSTR code, 
                        [out, retval] _CardComRetAddValue** pRetVal);
        [id(0x00000003)]
        HRESULT Redeem(
                        [in] BSTR number, 
                        [in] BSTR code, 
                        [in] double amount, 
                        [in, optional, defaultvalue("")] BSTR redeem_reference, 
                        [out, retval] SAFEARRAY(_CardComRetRedeem*)* pRetVal);
        [id(0x00000004)]
        HRESULT Refund(
                        [in] BSTR number, 
                        [in] BSTR code, 
                        [in] double amount, 
                        [in, optional, defaultvalue("")] BSTR redeem_reference, 
                        [out, retval] SAFEARRAY(_CardComRetRefund*)* pRetVal);
        [id(0x00000005)]
        HRESULT History(
                        [in] BSTR number, 
                        [in] BSTR code, 
                        [out, retval] SAFEARRAY(_CardComRetHistory*)* pRetVal);
        [id(0x00000006)]
        HRESULT CheckStatus(
                        [in] BSTR number, 
                        [in, optional, defaultvalue("")] BSTR code, 
                        [out, retval] SAFEARRAY(_CardComRetStatus*)* pRetVal);
        [id(0x00000007)]
        HRESULT SalesTemplates([out, retval] 
SAFEARRAY(_CardComRetSalesTemplate*)* pRetVal);
        [id(0x00000008)]
        HRESULT Cancel(
                        [in] SAFEARRAY(_CardComRetValidate*) valueDocuments, 
                        [out, retval] SAFEARRAY(_CardComRetCancel*)* pRetVal);
        [id(0x00000009)]
        HRESULT Sale(
                        [in] _CardComRetSalesTemplate* salesTemplate, 
                        [in] double amount, 
                        [in, optional, defaultvalue("")] BSTR SMS_msisdn, 
                        [in, optional, defaultvalue("")] BSTR EMAIL_address, 
                        [in, optional, defaultvalue("")] BSTR POSTAL_firstname, 
                        [in, optional, defaultvalue("")] BSTR POSTAL_lastname, 
                        [in, optional, defaultvalue("")] BSTR POSTAL_address, 
                        [in, optional, defaultvalue("")] BSTR POSTAL_address2, 
                        [in, optional, defaultvalue("")] BSTR POSTAL_zipcode, 
                        [in, optional, defaultvalue("")] BSTR POSTAL_city, 
                        [in, optional, defaultvalue("")] BSTR POSTAL_country, 
                        [in, optional, defaultvalue("")] BSTR text, 
                        [in, optional, defaultvalue(12:00:00 AM)] DATE 
send_date, 
                        [out, retval] _CardComRetSale** pRetVal);
        [id(0x0000000a)]
        HRESULT TransactionReport(
                        [in] DATE startDate, 
                        [in] DATE endDate, 
                        [in] long voucherType, 
                        [out, retval] _CardComRetTransactionReport** pRetVal);
        [id(0x0000000b)]
        HRESULT GetInstalledCertsName([out, retval] SAFEARRAY(BSTR)* pRetVal);
        [id(0x0000000c)]
        HRESULT rAW(
                        [in] BSTR UrlExcludedServer, 
                        [out, retval] BSTR* pRetVal);
        [id(0x0000000d)]
        HRESULT RawXmlDoc(
                        [in] BSTR UrlExcludedServer, 
                        [out, retval] IUnknown** pRetVal);
        [id(0x0000000e)]
        HRESULT installClientCert(
                        [in] BSTR clientCertFile, 
                        [in] BSTR clientCertPassword, 
                        [out, retval] VARIANT_BOOL* pRetVal);
        [id(0x0000000f)]
        HRESULT AddAccessToCertificate(
                        [in] BSTR machineName, 
                        [in] BSTR userName, 
                        [out, retval] VARIANT_BOOL* pRetVal);
        [id(0x00000010)]
        HRESULT Init(
                        [in] _CardComInit* inpinit, 
                        [out, retval] enuResult* pRetVal);
        [id(0x00000011)]
        HRESULT Close();
    };

    [
      uuid(82B4004F-351C-46A5-A8BD-F585A3C74D40),
      version(1.0),
        custom({0F21F359-AB84-41E8-9A78-36D110E6D2F9}, 
"RetainComObj.CardComInit")
    ]
    coclass CardComInit {
        interface _Object;
        [default] interface _CardComInit;
    };

    [
      odl,
      uuid(24BA6A74-7083-4B64-B8E5-65ED7D3D2A4B),
      version(1.0),
      dual,
      oleautomation,
        custom({0F21F359-AB84-41E8-9A78-36D110E6D2F9}, 
"RetainComObj.CardComInit+_CardComInit")    

    ]
    interface _CardComInit : IDispatch {
        [id(0x00000001), propget]
        HRESULT server([out, retval] BSTR* pRetVal);
        [id(0x00000001), propput]
        HRESULT server([in] BSTR pRetVal);
        [id(0x00000002), propget]
        HRESULT store([out, retval] BSTR* pRetVal);
        [id(0x00000002), propput]
        HRESULT store([in] BSTR pRetVal);
        [id(0x00000003), propget]
        HRESULT IngoreInvalidCertificates([out, retval] VARIANT_BOOL* pRetVal);
        [id(0x00000003), propput]
        HRESULT IngoreInvalidCertificates([in] VARIANT_BOOL pRetVal);
        [id(0x00000004), propget]
        HRESULT serverCertFile([out, retval] BSTR* pRetVal);
        [id(0x00000004), propput]
        HRESULT serverCertFile([in] BSTR pRetVal);
        [id(0x00000005), propget]
        HRESULT useGlobalStore([out, retval] VARIANT_BOOL* pRetVal);
        [id(0x00000005), propput]
        HRESULT useGlobalStore([in] VARIANT_BOOL pRetVal);
        [id(0x00000006), propget]
        HRESULT AppID([out, retval] long* pRetVal);
        [id(0x00000006), propput]
        HRESULT AppID([in] long pRetVal);
        [id(0x00000007), propget]
        HRESULT AppVersion([out, retval] BSTR* pRetVal);
        [id(0x00000007), propput]
        HRESULT AppVersion([in] BSTR pRetVal);
    };

    [
      uuid(729CDC6F-84B3-46F7-8198-762B9F4B858F),
      version(1.0),
        custom({0F21F359-AB84-41E8-9A78-36D110E6D2F9}, 
"RetainComObj.CardComRetAddValue")
    ]
    coclass CardComRetAddValue {
        interface _Object;
        [default] interface _CardComRetAddValue;
    };

    [
      odl,
      uuid(AC418A01-98D2-4000-A1DB-53AEC7567EB7),
      version(1.0),
      dual,
      oleautomation,
        custom({0F21F359-AB84-41E8-9A78-36D110E6D2F9}, 
"RetainComObj.CardComRetAddValue+_CardComRetAddValue")    

    ]
    interface _CardComRetAddValue : IDispatch {
        [id(0x00000001), propget]
        HRESULT ID([out, retval] BSTR* pRetVal);
        [id(0x00000002), propget]
        HRESULT Result([out, retval] enuResult* pRetVal);
        [id(0x00000003), propget]
        HRESULT ResultDesc([out, retval] BSTR* pRetVal);
    };

    [
      uuid(58B82461-5146-4BE9-81F8-74AEBF98AB1B),
      version(1.0),
        custom({0F21F359-AB84-41E8-9A78-36D110E6D2F9}, 
"RetainComObj.CardComRetCancel")
    ]
    coclass CardComRetCancel {
        interface _Object;
        [default] interface _CardComRetCancel;
    };

    [
      odl,
      uuid(B6DD4613-E829-4DC4-8300-C79BC879C26C),
      version(1.0),
      dual,
      oleautomation,
        custom({0F21F359-AB84-41E8-9A78-36D110E6D2F9}, 
"RetainComObj.CardComRetCancel+_CardComRetCancel")    

    ]
    interface _CardComRetCancel : IDispatch {
        [id(0x00000001), propget]
        HRESULT ID([out, retval] BSTR* pRetVal);
        [id(0x00000002), propget]
        HRESULT Status([out, retval] BSTR* pRetVal);
        [id(0x00000003), propget]
        HRESULT ErrorCode([out, retval] enuResult* pRetVal);
        [id(0x00000004), propget]
        HRESULT Message([out, retval] BSTR* pRetVal);
        [id(0x00000005), propget,
            custom({54FC8F55-38DE-4703-9C4E-250351302B1C}, "1")]
        HRESULT ToString([out, retval] BSTR* pRetVal);
    };

    [
      uuid(58750570-1100-438B-A8A1-DAE99998BC9A),
      version(1.0),
        custom({0F21F359-AB84-41E8-9A78-36D110E6D2F9}, 
"RetainComObj.CardComRetHistory")
    ]
    coclass CardComRetHistory {
        interface _Object;
        [default] interface _CardComRetHistory;
    };

    [
      odl,
      uuid(6C2A46C1-A9C2-486E-AA45-D318011A245E),
      version(1.0),
      dual,
      oleautomation,
        custom({0F21F359-AB84-41E8-9A78-36D110E6D2F9}, 
"RetainComObj.CardComRetHistory+_CardComRetHistory")    

    ]
    interface _CardComRetHistory : IDispatch {
        [id(0x00000001), propget]
        HRESULT Result([out, retval] enuResult* pRetVal);
        [id(0x00000002), propget]
        HRESULT ResultDesc([out, retval] BSTR* pRetVal);
        [id(0x00000003), propget]
        HRESULT ValidateInfo([out, retval] BSTR* pRetVal);
        [id(0x00000004), propget]
        HRESULT amount([out, retval] double* pRetVal);
        [id(0x00000005), propget]
        HRESULT Currency([out, retval] BSTR* pRetVal);
        [id(0x00000006), propget]
        HRESULT ExpireList([out, retval] SAFEARRAY(_CardComRetHistoryExpire*)* 
pRetVal);
        [id(0x00000007), propget]
        HRESULT History([out, retval] SAFEARRAY(_CardComRetHistoryTime*)* 
pRetVal);
        [id(0x00000008), propget,
            custom({54FC8F55-38DE-4703-9C4E-250351302B1C}, "1")]
        HRESULT ToString([out, retval] BSTR* pRetVal);
    };

    [
      uuid(C5F4E3B5-0850-482A-8DC5-4F0158D79D83),
      version(1.0),
        custom({0F21F359-AB84-41E8-9A78-36D110E6D2F9}, 
"RetainComObj.CardComRetHistoryExpire")
    ]
    coclass CardComRetHistoryExpire {
        interface _Object;
        [default] interface _CardComRetHistoryExpire;
    };

    [
      odl,
      uuid(767B84C2-7FEF-45AC-BC61-82D018621811),
      version(1.0),
      dual,
      oleautomation,
        custom({0F21F359-AB84-41E8-9A78-36D110E6D2F9}, 
"RetainComObj.CardComRetHistoryExpire+_CardComRetHistoryExpire")    

    ]
    interface _CardComRetHistoryExpire : IDispatch {
        [id(0x00000001), propget]
        HRESULT Result([out, retval] enuResult* pRetVal);
        [id(0x00000002), propget]
        HRESULT ResultDesc([out, retval] BSTR* pRetVal);
        [id(0x00000003), propget]
        HRESULT Currency([out, retval] BSTR* pRetVal);
        [id(0x00000004), propget]
        HRESULT ExpireDate([out, retval] DATE* pRetVal);
        [id(0x00000005), propget]
        HRESULT amount([out, retval] double* pRetVal);
    };

    [
      uuid(9ECFCC19-5AD5-481D-880A-41E850DC69AC),
      version(1.0),
        custom({0F21F359-AB84-41E8-9A78-36D110E6D2F9}, 
"RetainComObj.CardComRetHistoryTime")
    ]
    coclass CardComRetHistoryTime {
        interface _Object;
        [default] interface _CardComRetHistoryTime;
    };

    [
      odl,
      uuid(1938C262-92EC-4762-A178-836FFF989C14),
      version(1.0),
      dual,
      oleautomation,
        custom({0F21F359-AB84-41E8-9A78-36D110E6D2F9}, 
"RetainComObj.CardComRetHistoryTime+_CardComRetHistoryTime")    

    ]
    interface _CardComRetHistoryTime : IDispatch {
        [id(0x00000001), propget]
        HRESULT Result([out, retval] enuResult* pRetVal);
        [id(0x00000002), propget]
        HRESULT ResultDesc([out, retval] BSTR* pRetVal);
        [id(0x00000003), propget]
        HRESULT amount([out, retval] double* pRetVal);
        [id(0x00000004), propget]
        HRESULT TransType([out, retval] long* pRetVal);
        [id(0x00000005), propget]
        HRESULT TransTypeDesc([out, retval] BSTR* pRetVal);
        [id(0x00000006), propget]
        HRESULT Currency([out, retval] BSTR* pRetVal);
        [id(0x00000007), propget]
        HRESULT dateOfTransaction([out, retval] DATE* pRetVal);
        [id(0x00000008), propget]
        HRESULT User([out, retval] BSTR* pRetVal);
    };

    [
      uuid(6B41263B-BCFB-4427-BF73-FF0190396CF7),
      version(1.0),
        custom({0F21F359-AB84-41E8-9A78-36D110E6D2F9}, 
"RetainComObj.CardComRetRedeem")
    ]
    coclass CardComRetRedeem {
        interface _Object;
        [default] interface _CardComRetRedeem;
    };

    [
      odl,
      uuid(BF72FC01-4802-49AB-9DFE-3B726EBDB0BB),
      version(1.0),
      dual,
      oleautomation,
        custom({0F21F359-AB84-41E8-9A78-36D110E6D2F9}, 
"RetainComObj.CardComRetRedeem+_CardComRetRedeem")    

    ]
    interface _CardComRetRedeem : IDispatch {
        [id(0x00000001), propget]
        HRESULT ID([out, retval] BSTR* pRetVal);
        [id(0x00000002), propget]
        HRESULT Result([out, retval] enuResult* pRetVal);
        [id(0x00000003), propget]
        HRESULT Result_Desc([out, retval] BSTR* pRetVal);
        [id(0x00000004), propget]
        HRESULT amount([out, retval] double* pRetVal);
        [id(0x00000005), propget,
            custom({54FC8F55-38DE-4703-9C4E-250351302B1C}, "1")]
        HRESULT ToString([out, retval] BSTR* pRetVal);
    };

    [
      uuid(DCE82CA8-668E-476A-A7BF-7A3903BDECAB),
      version(1.0),
        custom({0F21F359-AB84-41E8-9A78-36D110E6D2F9}, 
"RetainComObj.CardComRetRefund")
    ]
    coclass CardComRetRefund {
        interface _Object;
        [default] interface _CardComRetRefund;
    };

    [
      odl,
      uuid(EF01CF06-06AB-4F7E-8AEB-3712644C75AC),
      version(1.0),
      dual,
      oleautomation,
        custom({0F21F359-AB84-41E8-9A78-36D110E6D2F9}, 
"RetainComObj.CardComRetRefund+_CardComRetRefund")    

    ]
    interface _CardComRetRefund : IDispatch {
        [id(0x00000001), propget]
        HRESULT ID([out, retval] BSTR* pRetVal);
        [id(0x00000002), propget]
        HRESULT Result([out, retval] enuResult* pRetVal);
        [id(0x00000003), propget]
        HRESULT Result_Desc([out, retval] BSTR* pRetVal);
        [id(0x00000004), propget]
        HRESULT amount([out, retval] double* pRetVal);
        [id(0x00000005), propget,
            custom({54FC8F55-38DE-4703-9C4E-250351302B1C}, "1")]
        HRESULT ToString([out, retval] BSTR* pRetVal);
    };

    [
      uuid(86C1EA21-44DE-4738-85F6-02617C4E8ACC),
      version(1.0),
        custom({0F21F359-AB84-41E8-9A78-36D110E6D2F9}, 
"RetainComObj.CardComRetSale")
    ]
    coclass CardComRetSale {
        interface _Object;
        [default] interface _CardComRetSale;
    };

    [
      odl,
      uuid(BB3CA1D4-CDDF-4822-BE88-B1985729C04C),
      version(1.0),
      dual,
      oleautomation,
        custom({0F21F359-AB84-41E8-9A78-36D110E6D2F9}, 
"RetainComObj.CardComRetSale+_CardComRetSale")    

    ]
    interface _CardComRetSale : IDispatch {
        [id(0x00000001), propget]
        HRESULT Status([out, retval] BSTR* pRetVal);
        [id(0x00000002), propget]
        HRESULT ID([out, retval] BSTR* pRetVal);
        [id(0x00000003), propget]
        HRESULT multicode([out, retval] BSTR* pRetVal);
        [id(0x00000004), propget]
        HRESULT pin([out, retval] BSTR* pRetVal);
        [id(0x00000005), propget]
        HRESULT msisdn([out, retval] BSTR* pRetVal);
        [id(0x00000006), propget]
        HRESULT EMAIL_address([out, retval] BSTR* pRetVal);
        [id(0x00000007), propget]
        HRESULT distribData([out, retval] BSTR* pRetVal);
        [id(0x00000007), propput]
        HRESULT distribData([in] BSTR pRetVal);
        [id(0x00000008), propget]
        HRESULT distributionIsHandled([out, retval] VARIANT_BOOL* pRetVal);
        [id(0x00000008), propput]
        HRESULT distributionIsHandled([in] VARIANT_BOOL pRetVal);
        [id(0x00000009), propget]
        HRESULT ErrorCode([out, retval] enuResult* pRetVal);
        [id(0x0000000a), propget]
        HRESULT Message([out, retval] BSTR* pRetVal);
        [id(0x0000000b), propget,
            custom({54FC8F55-38DE-4703-9C4E-250351302B1C}, "1")]
        HRESULT ToString([out, retval] BSTR* pRetVal);
    };

    [
      uuid(E5755BC6-42B9-4E23-9D4F-20900E22CCEE),
      version(1.0),
        custom({0F21F359-AB84-41E8-9A78-36D110E6D2F9}, 
"RetainComObj.CardComRetSalesTemplate")
    ]
    coclass CardComRetSalesTemplate {
        interface _Object;
        [default] interface _CardComRetSalesTemplate;
    };

    [
      odl,
      uuid(0A906071-3FF6-4C7C-8C66-F889289A8453),
      version(1.0),
      dual,
      oleautomation,
        custom({0F21F359-AB84-41E8-9A78-36D110E6D2F9}, 
"RetainComObj.CardComRetSalesTemplate+_CardComRetSalesTemplate")    

    ]
    interface _CardComRetSalesTemplate : IDispatch {
        [id(0x00000001), propget]
        HRESULT ID([out, retval] BSTR* pRetVal);
        [id(0x00000002), propget]
        HRESULT Name([out, retval] BSTR* pRetVal);
        [id(0x00000003), propget]
        HRESULT Type([out, retval] BSTR* pRetVal);
        [id(0x00000004), propget]
        HRESULT TypeDesc([out, retval] BSTR* pRetVal);
        [id(0x00000005), propget]
        HRESULT ChannelCode([out, retval] BSTR* pRetVal);
        [id(0x00000006), propget]
        HRESULT ChannelText([out, retval] BSTR* pRetVal);
        [id(0x00000007), propget]
        HRESULT Owner([out, retval] BSTR* pRetVal);
        [id(0x00000008), propget]
        HRESULT SMSText([out, retval] BSTR* pRetVal);
        [id(0x00000009), propget]
        HRESULT EmailText([out, retval] BSTR* pRetVal);
        [id(0x0000000a), propget]
        HRESULT showPreview([out, retval] BSTR* pRetVal);
        [id(0x0000000b), propget]
        HRESULT SMSFreeSpace([out, retval] long* pRetVal);
        [id(0x0000000c), propget]
        HRESULT UsageStart([out, retval] DATE* pRetVal);
        [id(0x0000000d), propget]
        HRESULT UsageEnd([out, retval] DATE* pRetVal);
        [id(0x0000000e), propget]
        HRESULT AddCustomValue([out, retval] VARIANT_BOOL* pRetVal);
        [id(0x0000000f), propget]
        HRESULT Qty_value([out, retval] double* pRetVal);
        [id(0x00000010), propget]
        HRESULT MaxSalesPrice([out, retval] double* pRetVal);
        [id(0x00000011), propget]
        HRESULT MinAddValue([out, retval] double* pRetVal);
        [id(0x00000012), propget]
        HRESULT MaxAddValue([out, retval] double* pRetVal);
        [id(0x00000013), propget]
        HRESULT Discount([out, retval] double* pRetVal);
        [id(0x00000014), propget]
        HRESULT Currency([out, retval] BSTR* pRetVal);
        [id(0x00000015), propget,
            custom({54FC8F55-38DE-4703-9C4E-250351302B1C}, "1")]
        HRESULT ToString([out, retval] BSTR* pRetVal);
    };

    [
      uuid(000F9616-A0D9-49CC-A9F7-CE0C69F2E629),
      version(1.0),
        custom({0F21F359-AB84-41E8-9A78-36D110E6D2F9}, 
"RetainComObj.CardComRetStatus")
    ]
    coclass CardComRetStatus {
        interface _Object;
        [default] interface _CardComRetStatus;
    };

    [
      odl,
      uuid(7FB8E72B-BB30-40A3-923A-0565C0FD716F),
      version(1.0),
      dual,
      oleautomation,
        custom({0F21F359-AB84-41E8-9A78-36D110E6D2F9}, 
"RetainComObj.CardComRetStatus+_CardComRetStatus")    

    ]
    interface _CardComRetStatus : IDispatch {
        [id(0x00000001), propget]
        HRESULT ID([out, retval] BSTR* pRetVal);
        [id(0x00000002), propget]
        HRESULT Result([out, retval] enuResult* pRetVal);
        [id(0x00000003), propget]
        HRESULT ResultDesc([out, retval] BSTR* pRetVal);
        [id(0x00000004), propget]
        HRESULT voucherType([out, retval] long* pRetVal);
        [id(0x00000005), propget]
        HRESULT VoucherStatus([out, retval] BSTR* pRetVal);
        [id(0x00000006), propget]
        HRESULT PossibleToLoad([out, retval] VARIANT_BOOL* pRetVal);
        [id(0x00000007), propget]
        HRESULT Currency([out, retval] BSTR* pRetVal);
        [id(0x00000008), propget]
        HRESULT MaxAmount([out, retval] double* pRetVal);
        [id(0x00000009), propget]
        HRESULT MinAmount([out, retval] double* pRetVal);
        [id(0x0000000a), propget]
        HRESULT Balance([out, retval] double* pRetVal);
        [id(0x0000000b), propget]
        HRESULT UsageStart([out, retval] DATE* pRetVal);
        [id(0x0000000c), propget]
        HRESULT UsageEnd([out, retval] DATE* pRetVal);
        [id(0x0000000d), propget,
            custom({54FC8F55-38DE-4703-9C4E-250351302B1C}, "1")]
        HRESULT ToString([out, retval] BSTR* pRetVal);
    };

    [
      uuid(6B3C268B-A144-4D1B-9D72-37DEB3D4D980),
      version(1.0),
        custom({0F21F359-AB84-41E8-9A78-36D110E6D2F9}, 
"RetainComObj.CardComRetTransactionReport")
    ]
    coclass CardComRetTransactionReport {
        interface _Object;
        [default] interface _CardComRetTransactionReport;
    };

    [
      odl,
      uuid(9A5B3E98-1A65-45A2-BA9B-9089A73D613F),
      version(1.0),
      dual,
      oleautomation,
        custom({0F21F359-AB84-41E8-9A78-36D110E6D2F9}, 
"RetainComObj.CardComRetTransactionReport+_CardComRetTransactionReport")    

    ]
    interface _CardComRetTransactionReport : IDispatch {
        [id(0x00000001), propget]
        HRESULT Result([out, retval] enuResult* pRetVal);
        [id(0x00000002), propget]
        HRESULT ResultDesc([out, retval] BSTR* pRetVal);
        [id(0x00000003), propget]
        HRESULT UserID([out, retval] long* pRetVal);
        [id(0x00000004), propget]
        HRESULT userName([out, retval] BSTR* pRetVal);
        [id(0x00000005), propget]
        HRESULT Items([out, retval] 
SAFEARRAY(_CardComRetTransactionReportItem*)* pRetVal);
        [id(0x00000006), propget]
        HRESULT Sums([out, retval] SAFEARRAY(_CardComRetTransactionReportSum*)* 
pRetVal);
        [id(0x00000007), propget,
            custom({54FC8F55-38DE-4703-9C4E-250351302B1C}, "1")]
        HRESULT ToString([out, retval] BSTR* pRetVal);
    };

    [
      uuid(53E5D9A6-C960-4200-8A0F-98D49C425984),
      version(1.0),
        custom({0F21F359-AB84-41E8-9A78-36D110E6D2F9}, 
"RetainComObj.CardComRetTransactionReportItem")
    ]
    coclass CardComRetTransactionReportItem {
        interface _Object;
        [default] interface _CardComRetTransactionReportItem;
    };

    [
      odl,
      uuid(8CC9D578-B353-48DF-8A5D-BFF33F3A93FB),
      version(1.0),
      dual,
      oleautomation,
        custom({0F21F359-AB84-41E8-9A78-36D110E6D2F9}, 
"RetainComObj.CardComRetTransactionReportItem+_CardComRetTransactionReportItem")
    

    ]
    interface _CardComRetTransactionReportItem : IDispatch {
        [id(0x00000001), propget]
        HRESULT TransDate([out, retval] DATE* pRetVal);
        [id(0x00000002), propget]
        HRESULT TransIdentity([out, retval] BSTR* pRetVal);
        [id(0x00000003), propget]
        HRESULT TransType([out, retval] long* pRetVal);
        [id(0x00000004), propget]
        HRESULT TransTypeDesc([out, retval] BSTR* pRetVal);
        [id(0x00000005), propget]
        HRESULT TransUserID([out, retval] long* pRetVal);
        [id(0x00000006), propget]
        HRESULT TransUserName([out, retval] BSTR* pRetVal);
        [id(0x00000007), propget]
        HRESULT TransValue([out, retval] double* pRetVal);
        [id(0x00000008), propget]
        HRESULT TransCurrency([out, retval] BSTR* pRetVal);
        [id(0x00000009), propget,
            custom({54FC8F55-38DE-4703-9C4E-250351302B1C}, "1")]
        HRESULT ToString([out, retval] BSTR* pRetVal);
    };

    [
      uuid(93FE6B63-D58B-4DF1-941A-00E0CF0F7AED),
      version(1.0),
        custom({0F21F359-AB84-41E8-9A78-36D110E6D2F9}, 
"RetainComObj.CardComRetTransactionReportSum")
    ]
    coclass CardComRetTransactionReportSum {
        interface _Object;
        [default] interface _CardComRetTransactionReportSum;
    };

    [
      odl,
      uuid(F9833025-449E-4F7C-82B6-32706DAFA463),
      version(1.0),
      dual,
      oleautomation,
        custom({0F21F359-AB84-41E8-9A78-36D110E6D2F9}, 
"RetainComObj.CardComRetTransactionReportSum+_CardComRetTransactionReportSum")  
  

    ]
    interface _CardComRetTransactionReportSum : IDispatch {
        [id(0x00000001), propget]
        HRESULT SumSale([out, retval] double* pRetVal);
        [id(0x00000002), propget]
        HRESULT SumDiscount([out, retval] double* pRetVal);
        [id(0x00000003), propget]
        HRESULT SumRedeem([out, retval] double* pRetVal);
        [id(0x00000004), propget]
        HRESULT SumRefund([out, retval] double* pRetVal);
        [id(0x00000005), propget]
        HRESULT SumUnvalid([out, retval] double* pRetVal);
        [id(0x00000006), propget]
        HRESULT SumCanceled([out, retval] double* pRetVal);
        [id(0x00000007), propget]
        HRESULT SumTotal([out, retval] double* pRetVal);
        [id(0x00000008), propget]
        HRESULT SumCurrency([out, retval] BSTR* pRetVal);
        [id(0x00000009), propget,
            custom({54FC8F55-38DE-4703-9C4E-250351302B1C}, "1")]
        HRESULT ToString([out, retval] BSTR* pRetVal);
    };

    [
      uuid(E8AB96E2-4182-41E4-B5C4-E52CE698688C),
      version(1.0),
        custom({0F21F359-AB84-41E8-9A78-36D110E6D2F9}, 
"RetainComObj.CardComRetValidate")
    ]
    coclass CardComRetValidate {
        interface _Object;
        [default] interface _CardComRetValidate;
    };

    [
      odl,
      uuid(D58B30BF-696C-45C5-8334-3C68B4AB65DB),
      version(1.0),
      dual,
      oleautomation,
        custom({0F21F359-AB84-41E8-9A78-36D110E6D2F9}, 
"RetainComObj.CardComRetValidate+_CardComRetValidate")    

    ]
    interface _CardComRetValidate : IDispatch {
        [id(0x00000001), propget]
        HRESULT AddValue([out, retval] VARIANT_BOOL* pRetVal);
        [id(0x00000002), propget]
        HRESULT MaxQty([out, retval] long* pRetVal);
        [id(0x00000003), propget]
        HRESULT MaxAmount([out, retval] double* pRetVal);
        [id(0x00000004), propget]
        HRESULT MinAddAmount([out, retval] double* pRetVal);
        [id(0x00000005), propget]
        HRESULT Status([out, retval] long* pRetVal);
        [id(0x00000006), propget]
        HRESULT ValidateInfo([out, retval] BSTR* pRetVal);
        [id(0x00000007), propget]
        HRESULT voucherType([out, retval] long* pRetVal);
        [id(0x00000008), propget]
        HRESULT Result([out, retval] enuResult* pRetVal);
        [id(0x00000009), propget]
        HRESULT Result_Desc([out, retval] BSTR* pRetVal);
        [id(0x0000000a), propget]
        HRESULT Balance([out, retval] double* pRetVal);
        [id(0x0000000b), propget]
        HRESULT Qty([out, retval] long* pRetVal);
        [id(0x0000000c), propget]
        HRESULT Qty_value([out, retval] double* pRetVal);
        [id(0x0000000d), propget]
        HRESULT Currency([out, retval] BSTR* pRetVal);
        [id(0x0000000e), propget,
            custom({54FC8F55-38DE-4703-9C4E-250351302B1C}, "1")]
        HRESULT ToString([out, retval] BSTR* pRetVal);
    };

    [
      uuid(531DAF6C-3F37-4047-9A17-D3DF8ACE3D87),
      version(1.0),
        custom({0F21F359-AB84-41E8-9A78-36D110E6D2F9}, 
"RetainComObj.CardComXML")
    ]
    coclass CardComXML {
        interface _Object;
        [default] interface _CardComXML;
    };

    [
      odl,
      uuid(79605D01-3A68-4ECD-B760-8E4E7A2D6406),
      version(1.0),
      dual,
      oleautomation,
        custom({0F21F359-AB84-41E8-9A78-36D110E6D2F9}, 
"RetainComObj.CardComXML+_CardComXML")    

    ]
    interface _CardComXML : IDispatch {
        [id(0x00000001), propget]
        HRESULT Xml([out, retval] VARIANT* pRetVal);
        [id(0x00000002)]
        HRESULT NewRequest(
                        [in] BSTR number, 
                        [in] BSTR Qty, 
                        [in] BSTR REFERENCE_nbr, 
                        [in] BSTR pincode, 
                        [out, retval] BSTR* pRetVal);
        [id(0x00000003)]
        HRESULT NewValidate(
                        [in] BSTR msisdn, 
                        [in] BSTR pin, 
                        [in] BSTR multicode, 
                        [out, retval] BSTR* pRetVal);
        [id(0x00000004)]
        HRESULT NewReedem(
                        [in] _ArrayList* valueArray, 
                        [in] BSTR pincode, 
                        [in, optional, defaultvalue("")] BSTR redeem_reference, 
                        [out, retval] BSTR* pRetVal);
        [id(0x00000005)]
        HRESULT NewRefound(
                        [in] _ArrayList* CPNSELECTION, 
                        [in] double amount, 
                        [in, optional, defaultvalue("")] BSTR redeem_reference, 
                        [out, retval] BSTR* pRetVal);
        [id(0x00000006)]
        HRESULT NewResend(
                        [in] BSTR CPNSELECTION, 
                        [out, retval] BSTR* pRetVal);
        [id(0x00000007)]
        HRESULT NewCancel(
                        [in] SAFEARRAY(_CardComRetValidate*) list, 
                        [out, retval] BSTR* pRetVal);
        [id(0x00000008)]
        HRESULT NewStatus(
                        [in] BSTR CPNSELECTION, 
                        [out, retval] BSTR* pRetVal);
        [id(0x00000009)]
        HRESULT NewTransactionReport(
                        [in] BSTR startDate, 
                        [in] BSTR endDate, 
                        [in] BSTR cpntype, 
                        [out, retval] BSTR* pRetVal);
        [id(0x0000000a)]
        HRESULT NewValidationReport(
                        [in] BSTR startDate, 
                        [in] BSTR endDate, 
                        [out, retval] BSTR* pRetVal);
        [id(0x0000000b)]
        HRESULT NewDelivery(
                        [in] BSTR startDate, 
                        [in] BSTR endDate, 
                        [out, retval] BSTR* pRetVal);
        [id(0x0000000c)]
        HRESULT NewDeliveryReport(
                        [in] BSTR CPNSELECTION, 
                        [in] BSTR Status, 
                        [out, retval] BSTR* pRetVal);
        [id(0x0000000d),
            custom({0F21F359-AB84-41E8-9A78-36D110E6D2F9}, "NewRequest")]
        HRESULT NewRequest_2([out, retval] BSTR* pRetVal);
        [id(0x0000000e)]
        HRESULT NewTemplate(
                        [in] BSTR ID, 
                        [out, retval] BSTR* pRetVal);
        [id(0x0000000f)]
        HRESULT NewIssueAndSend(
                        [in] BSTR template, 
                        [in] BSTR Qty, 
                        [in] BSTR msisdn, 
                        [in] BSTR EMAIL_address, 
                        [in] BSTR sms_text, 
                        [in] BSTR validation_text, 
                        [in] BSTR email_text, 
                        [in] BSTR REFERENCE_nbr, 
                        [in] BSTR REPLACE_SUBJECT, 
                        [in] BSTR send_date, 
                        [in] BSTR receive_date, 
                        [in] BSTR FIRSTNAME, 
                        [in] BSTR lastname, 
                        [in] BSTR ADDRESS, 
                        [in] BSTR address2, 
                        [in] BSTR zipcode, 
                        [in] BSTR city, 
                        [in] BSTR country, 
                        [out, retval] BSTR* pRetVal);
        [id(0x00000010)]
        HRESULT NewIssue(
                        [in] BSTR template, 
                        [in] BSTR Qty, 
                        [in] BSTR msisdn, 
                        [in] BSTR EMAIL_address, 
                        [in] BSTR sms_text, 
                        [in] BSTR validation_text, 
                        [in] BSTR email_text, 
                        [in] BSTR REFERENCE_nbr, 
                        [in] BSTR REPLACE_SUBJECT, 
                        [out, retval] BSTR* pRetVal);
        [id(0x00000011)]
        HRESULT NewFindSendCoupon(
                        [in] BSTR startDate, 
                        [in] BSTR endDate, 
                        [in] BSTR msisdn, 
                        [in] BSTR EMAIL, 
                        [in] BSTR FIRSTNAME, 
                        [in] BSTR lastname, 
                        [in] BSTR ADDRESS, 
                        [in] BSTR address2, 
                        [in] BSTR zipcode, 
                        [in] BSTR city, 
                        [in] BSTR country, 
                        [out, retval] BSTR* pRetVal);
        [id(0x00000012)]
        HRESULT NewAppLog(
                        [in] long i_appID, 
                        [in] BSTR i_appVersion, 
                        [in] BSTR i_identStr, 
                        [in] BSTR i_ip, 
                        [in] BSTR i_comp_username, 
                        [in, optional, defaultvalue("")] BSTR i_log_data, 
                        [out, retval] BSTR* pRetVal);
    };

    [
      uuid(286BFC5B-4D33-3B52-B4B1-86B957BB3F89),
      version(1.0),
      noncreatable,
        custom({0F21F359-AB84-41E8-9A78-36D110E6D2F9}, "RetainComObj.common")
    ]
    coclass common {
        [default] interface _common;
        interface _Object;
    };

    typedef [uuid(E6C93F6F-83FA-3E3E-B621-B1A336FA8C6B), version(1.0)    ,
    custom({0F21F359-AB84-41E8-9A78-36D110E6D2F9}, 
"RetainComObj.common+enuResult")    
]
    enum {
        enuResult_Ok = 0,
        enuResult_UndefinedError = 1,
        enuResult_InternalErrorTryLater = 10001,
        enuResult_IncorrectPhone = 10002,
        enuResult_SMSTextToLong = 10003,
        enuResult_ValidationTextToLong = 10004,
        enuResult_SMSTextError = 10008,
        enuResult_IllegalStartDate = 15002,
        enuResult_IllegalEndDate = 15003,
        enuResult_InternalErrorClass = 24010,
        enuResult_NotEnoughDataForPost = 24019,
        enuResult_NoRetailValuable = 24012,
        enuResult_IncorrectAmount = 24020,
        enuResult_CouldNotBeUpdated = 24211,
        enuResult_InvalidRetailValuableType = 24212,
        enuResult_NotCorrectPin = 25008,
        enuResult_CreditLimitPassed = 25009,
        enuResult_UnknownError = 25000,
        enuResult_RetailValuableIsClosedForUse = 25001,
        enuResult_RetailValuableIsClosedOrCancelled = 25002,
        enuResult_NoUsageLeft = 25003,
        enuResult_CannotBeUsedYet = 25004,
        enuResult_Expired = 25005,
        enuResult_InvalidRedeemReferenceLength = 25010,
        enuResult_InvalidRetailValuableTID = 25050,
        enuResult_InvalidRetailValuableCID = 25051,
        enuResult_IllegalAmount = 25052,
        enuResult_AmountExceeded = 25053,
        enuResult_InvalidStatus = 25054,
        enuResult_NotActivatedYet = 25070,
        enuResult_UndefinedErrorClass = 30000,
        enuResult_InternalError = 30001,
        enuResult_InvalidInitParam = -1
    } enuResult;

    [
      uuid(B0389CAB-233E-3F26-B14C-0A6DC9C4F8D3),
      version(1.0),
        custom({0F21F359-AB84-41E8-9A78-36D110E6D2F9}, "RetainComObj.Utils")
    ]
    coclass Utils {
        [default] interface _Utils;
        interface _Object;
    };

    [
      odl,
      uuid(B99FCD23-50B8-334C-B7A3-9C6E1DED3B85),
      hidden,
      dual,
      oleautomation,
        custom({0F21F359-AB84-41E8-9A78-36D110E6D2F9}, "RetainComObj.common")   
 

    ]
    interface _common : IDispatch {
    };

    [
      odl,
      uuid(59D7ABC1-B59B-3522-B0FB-E7746676DC23),
      hidden,
      dual,
      oleautomation,
        custom({0F21F359-AB84-41E8-9A78-36D110E6D2F9}, "RetainComObj.Utils")    

    ]
    interface _Utils : IDispatch {
    };
};
_______________________________________________
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour

Reply via email to